@visactor/vseed 0.1.5 → 0.1.7

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.
Files changed (84) hide show
  1. package/dist/builder/builder/builder.d.ts +2 -4
  2. package/dist/index.cjs +574 -498
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +574 -498
  5. package/dist/index.js.map +1 -1
  6. package/dist/pipeline/advanced/chart/pipes/{init/autoDimensions.d.ts → default/defaultDimensions.d.ts} +1 -1
  7. package/dist/pipeline/advanced/{table/pipes/init/autoMeasures.d.ts → chart/pipes/default/defaultMeasureName.d.ts} +1 -1
  8. package/dist/pipeline/advanced/chart/pipes/default/defaultMeasures.d.ts +5 -0
  9. package/dist/pipeline/advanced/chart/pipes/default/index.d.ts +3 -0
  10. package/dist/pipeline/advanced/chart/pipes/encoding/bar.d.ts +19 -0
  11. package/dist/pipeline/advanced/chart/pipes/encoding/column.d.ts +19 -0
  12. package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +19 -0
  13. package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +17 -0
  14. package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +19 -0
  15. package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +18 -0
  16. package/dist/pipeline/advanced/chart/pipes/encoding/pie.d.ts +18 -0
  17. package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +19 -0
  18. package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +19 -0
  19. package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +18 -0
  20. package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
  21. package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +0 -2
  22. package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +3 -18
  23. package/dist/pipeline/advanced/table/pipes/{init/autoPivotMeasures.d.ts → default/defaultDimensions.d.ts} +1 -1
  24. package/dist/pipeline/advanced/table/pipes/default/defaultMeasureName.d.ts +2 -0
  25. package/dist/pipeline/advanced/table/pipes/default/defaultMeasures.d.ts +5 -0
  26. package/dist/pipeline/advanced/table/pipes/default/index.d.ts +3 -0
  27. package/dist/pipeline/advanced/table/pipes/encoding/index.d.ts +1 -0
  28. package/dist/pipeline/advanced/table/pipes/encoding/pivotTable.d.ts +2 -0
  29. package/dist/pipeline/advanced/table/pipes/index.d.ts +3 -0
  30. package/dist/pipeline/advanced/table/pipes/init/index.d.ts +0 -3
  31. package/dist/pipeline/advanced/table/pipes/reshape/index.d.ts +1 -0
  32. package/dist/pipeline/advanced/table/pipes/{init/autoDimensions.d.ts → reshape/reshapePivotTable.d.ts} +1 -1
  33. package/dist/types/advancedVSeed.d.ts +2 -5
  34. package/dist/types/chartType/area/area.d.ts +19 -3
  35. package/dist/types/chartType/area/zArea.d.ts +2 -5
  36. package/dist/types/chartType/areaPercent/areaPercent.d.ts +15 -1
  37. package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +2 -5
  38. package/dist/types/chartType/bar/bar.d.ts +17 -1
  39. package/dist/types/chartType/bar/zBar.d.ts +2 -5
  40. package/dist/types/chartType/barParallel/barParallel.d.ts +17 -1
  41. package/dist/types/chartType/barParallel/zBarParallel.d.ts +2 -5
  42. package/dist/types/chartType/barPercent/barPercent.d.ts +17 -1
  43. package/dist/types/chartType/barPercent/zBarPercent.d.ts +2 -5
  44. package/dist/types/chartType/column/column.d.ts +17 -1
  45. package/dist/types/chartType/column/zColumn.d.ts +2 -5
  46. package/dist/types/chartType/columnParallel/columnParallel.d.ts +17 -1
  47. package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +2 -5
  48. package/dist/types/chartType/columnPercent/columnPercent.d.ts +17 -1
  49. package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +2 -5
  50. package/dist/types/chartType/donut/donut.d.ts +16 -1
  51. package/dist/types/chartType/donut/zDonut.d.ts +2 -5
  52. package/dist/types/chartType/dualAxis/dualAxis.d.ts +17 -1
  53. package/dist/types/chartType/dualAxis/zDualAxis.d.ts +10 -5
  54. package/dist/types/chartType/funnel/funnel.d.ts +15 -1
  55. package/dist/types/chartType/funnel/zFunnel.d.ts +2 -5
  56. package/dist/types/chartType/heatmap/heatmap.d.ts +17 -1
  57. package/dist/types/chartType/heatmap/zHeatmap.d.ts +2 -5
  58. package/dist/types/chartType/line/line.d.ts +16 -4
  59. package/dist/types/chartType/line/zLine.d.ts +2 -5
  60. package/dist/types/chartType/pie/pie.d.ts +16 -1
  61. package/dist/types/chartType/pie/zPie.d.ts +2 -5
  62. package/dist/types/chartType/pivotTable/pivotTable.d.ts +10 -3
  63. package/dist/types/chartType/pivotTable/zPivotTable.d.ts +2 -5
  64. package/dist/types/chartType/radar/radar.d.ts +17 -1
  65. package/dist/types/chartType/radar/zRadar.d.ts +2 -5
  66. package/dist/types/chartType/rose/rose.d.ts +17 -1
  67. package/dist/types/chartType/rose/zRose.d.ts +2 -5
  68. package/dist/types/chartType/roseParallel/roseParallel.d.ts +17 -1
  69. package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +2 -5
  70. package/dist/types/chartType/scatter/scatter.d.ts +16 -1
  71. package/dist/types/chartType/scatter/zScatter.d.ts +10 -5
  72. package/dist/types/chartType/table/table.d.ts +2 -0
  73. package/dist/types/chartType/table/zTable.d.ts +2 -5
  74. package/dist/types/properties/dimensions/dimensions.d.ts +0 -4
  75. package/dist/types/properties/dimensions/zDimensions.d.ts +0 -15
  76. package/dist/types/properties/measures/measures.d.ts +3 -1
  77. package/dist/types/properties/measures/zDualMeasures.d.ts +16 -0
  78. package/dist/types/properties/measures/zMeasures.d.ts +6 -0
  79. package/dist/types/properties/measures/zScatterMeasures.d.ts +16 -0
  80. package/dist/types/zVseed.d.ts +56 -100
  81. package/dist/umd/index.js +606 -530
  82. package/dist/umd/index.js.map +1 -1
  83. package/package.json +2 -2
  84. package/dist/pipeline/advanced/chart/pipes/init/utils.d.ts +0 -2
package/dist/umd/index.js CHANGED
@@ -491,24 +491,24 @@
491
491
  locale: locale || 'zh-CN'
492
492
  };
493
493
  };
494
- const autoMeasures = (advancedVSeed, context)=>{
495
- const result = {
496
- ...advancedVSeed
497
- };
494
+ const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
498
495
  const { vseed } = context;
499
496
  const { measures, dataset } = vseed;
497
+ if (measures && measures.length > 0) return {
498
+ ...advancedVSeed,
499
+ measures
500
+ };
500
501
  if (!dataset) throw new Error('dataset is required');
501
- if (0 === dataset.length) return result;
502
- if (measures) {
503
- result.measures = measures;
504
- return result;
505
- }
502
+ if (0 === dataset.length) return {
503
+ ...advancedVSeed,
504
+ measures: []
505
+ };
506
506
  const top100dataset = dataset.slice(0, 100);
507
507
  const sample = top100dataset.reduce((prev, cur)=>({
508
508
  ...prev,
509
509
  ...cur
510
510
  }), {});
511
- result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
511
+ const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
512
512
  '',
513
513
  null,
514
514
  void 0
@@ -516,7 +516,10 @@
516
516
  id: measure,
517
517
  alias: measure
518
518
  }));
519
- return result;
519
+ return {
520
+ ...advancedVSeed,
521
+ measures: defaultMeasures
522
+ };
520
523
  };
521
524
  const preorderTraverse = (tree, callback)=>{
522
525
  if (!tree || 0 === tree.length) return;
@@ -570,37 +573,36 @@
570
573
  });
571
574
  return result;
572
575
  };
573
- const autoDimensions = (advancedVSeed, context)=>{
576
+ const defaultDimensions = (advancedVSeed, context)=>{
574
577
  const result = {
575
578
  ...advancedVSeed
576
579
  };
577
580
  const { vseed } = context;
578
581
  const { dimensions, dataset } = vseed;
579
- const measures = findAllMeasures(advancedVSeed.measures);
582
+ if (dimensions && dimensions.length > 0) return {
583
+ ...result,
584
+ dimensions
585
+ };
580
586
  if (!dataset) throw new Error('dataset is required');
581
587
  if (0 === dataset.length) return result;
582
- if (dimensions) {
583
- result.dimensions = dimensions.map((dim)=>({
584
- location: 'dimension',
585
- ...dim
586
- }));
587
- return result;
588
- }
588
+ const measures = findAllMeasures(advancedVSeed.measures);
589
589
  const top100dataset = dataset.slice(0, 100);
590
590
  const sample = top100dataset.reduce((prev, cur)=>({
591
591
  ...prev,
592
592
  ...cur
593
593
  }), {});
594
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
594
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
595
595
  '',
596
596
  null,
597
597
  void 0
598
598
  ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
599
599
  id: dim,
600
- alias: dim,
601
- location: 'dimension'
600
+ alias: dim
602
601
  }));
603
- return result;
602
+ return {
603
+ ...result,
604
+ dimensions: newDimensions
605
+ };
604
606
  };
605
607
  const records_records = (advancedVSeed, context)=>{
606
608
  const { vseed } = context;
@@ -754,8 +756,8 @@
754
756
  };
755
757
  const tableAdvancedPipeline = [
756
758
  initAdvancedVSeed,
757
- autoMeasures,
758
- autoDimensions,
759
+ defaultMeasures_defaultMeasures,
760
+ defaultDimensions,
759
761
  records_records,
760
762
  tableConfig_tableConfig,
761
763
  theme_theme
@@ -979,9 +981,9 @@
979
981
  borderColor: borderColor,
980
982
  borderLineWidth: 1,
981
983
  padding: [
982
- 8.6,
984
+ 8,
983
985
  12,
984
- 8.6,
986
+ 8,
985
987
  12
986
988
  ],
987
989
  textAlign: 'right',
@@ -1094,79 +1096,177 @@
1094
1096
  Builder._advancedPipelineMap.table = tableAdvancedPipeline;
1095
1097
  Builder._specPipelineMap.table = tableSpecPipeline;
1096
1098
  };
1097
- const autoPivotMeasures = (advancedVSeed, context)=>{
1099
+ const ORIGINAL_DATA = '__OriginalData__';
1100
+ const Separator = '-';
1101
+ const FoldMeasureName = '__MeaName__';
1102
+ const FoldMeasureId = '__MeaId__';
1103
+ const FoldMeasureValue = '__MeaValue__';
1104
+ const MeasureName = FoldMeasureName;
1105
+ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1106
+ const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1107
+ const FoldXMeasureValue = '__MeaXValue__';
1108
+ const FoldYMeasureValue = '__MeaYValue__';
1109
+ const XEncoding = '__Dim_X__';
1110
+ const YEncoding = '__Dim_Y__';
1111
+ const AngleEncoding = '__Dim_Angle__';
1112
+ const DetailEncoding = '__Dim_Detail__';
1113
+ const ColorEncoding = '__Dim_Color__';
1114
+ const ColorIdEncoding = '__Dim_ColorId__';
1115
+ const defaultMeasureName = (advancedVSeed)=>{
1098
1116
  const result = {
1099
1117
  ...advancedVSeed
1100
1118
  };
1101
- const { vseed } = context;
1102
- const { dataset } = vseed;
1103
- const measures = findAllMeasures(vseed.measures);
1104
- if (!dataset) throw new Error('dataset is required');
1105
- if (0 === dataset.length) return result;
1106
- if (vseed.measures) {
1107
- result.measures = findAllMeasures(measures);
1108
- return result;
1109
- }
1110
- const top100dataset = dataset.slice(0, 100);
1111
- const sample = top100dataset.reduce((prev, cur)=>({
1112
- ...prev,
1113
- ...cur
1114
- }), {});
1115
- result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1116
- '',
1117
- null,
1118
- void 0
1119
- ].includes(key)).map((measure)=>({
1120
- id: measure,
1121
- alias: measure
1122
- }));
1119
+ const MeaName = {
1120
+ id: MeasureName,
1121
+ alias: intl.i18n`指标名称`
1122
+ };
1123
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1123
1124
  return result;
1124
1125
  };
1125
- const findAllDimensions = (dimensions = [])=>{
1126
- if (!dimensions) return [];
1127
- const result = [];
1128
- preorderTraverse(dimensions, (node)=>{
1129
- if (!('children' in node)) result.push(node);
1130
- return false;
1126
+ const encodingForPivotTable = (advancedVSeed)=>{
1127
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1128
+ const measures = findAllMeasures(vseedMeasures);
1129
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1130
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
1131
+ const encoding = {};
1132
+ if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
1133
+ else generateDefaultDimensionEncoding(dimensions, encoding);
1134
+ if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
1135
+ else generateDefaultMeasureEncoding(measures, encoding);
1136
+ return {
1137
+ ...advancedVSeed,
1138
+ encoding
1139
+ };
1140
+ };
1141
+ const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1142
+ const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1143
+ encoding.tooltip = uniqueDimIds;
1144
+ encoding.row = [];
1145
+ encoding.column = [];
1146
+ uniqueDimIds.forEach((item, index)=>{
1147
+ if (index % 2 === 0) encoding.column.push(item);
1148
+ else encoding.row.push(item);
1131
1149
  });
1132
- return result;
1133
1150
  };
1134
- const autoPivotDimensions = (advancedVSeed, context)=>{
1151
+ const generateDimensionEncoding = (dimensions, encoding)=>{
1152
+ const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1153
+ encoding.tooltip = uniqueDimIds;
1154
+ encoding.row = [];
1155
+ encoding.column = [];
1156
+ dimensions.forEach((dim, index)=>{
1157
+ const id = dim.id;
1158
+ if ('row' === dim.encoding) encoding.row.push(id);
1159
+ else if ('column' === dim.encoding) encoding.column.push(id);
1160
+ else if (index % 2 === 0) encoding.column.push(id);
1161
+ else encoding.row.push(id);
1162
+ });
1163
+ };
1164
+ const generateDefaultMeasureEncoding = (measures, encoding)=>{
1165
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
1166
+ encoding.detail = chunk_QJLMYOTX_i(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
1167
+ };
1168
+ const generateMeasureEncoding = (measures, encoding)=>{
1169
+ encoding.tooltip = measures.map((item)=>item.id);
1170
+ encoding.detail = chunk_QJLMYOTX_i(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
1171
+ };
1172
+ function chunk_AIG3BDKO_i(...e) {
1173
+ return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
1174
+ }
1175
+ var chunk_AIG3BDKO_n = (e, r)=>e.length >= r;
1176
+ function chunk_KI5X74E2_y(...t) {
1177
+ return chunk_WIMGWYZL_u(chunk_KI5X74E2_f, t);
1178
+ }
1179
+ function chunk_KI5X74E2_f(t, e) {
1180
+ if (!chunk_AIG3BDKO_i(e, 1)) return {
1181
+ ...t
1182
+ };
1183
+ if (!chunk_AIG3BDKO_i(e, 2)) {
1184
+ let { [e[0]]: r, ...m } = t;
1185
+ return m;
1186
+ }
1187
+ let o = {
1188
+ ...t
1189
+ };
1190
+ for (let r of e)delete o[r];
1191
+ return o;
1192
+ }
1193
+ const foldMeasures = (dataset, measures, options)=>{
1194
+ const { measureId, measureName, measureValue, colorMeasureId } = options || {};
1195
+ const foldInfo = {
1196
+ measureId,
1197
+ measureName,
1198
+ measureValue,
1199
+ colorRange: [
1200
+ 0,
1201
+ 1
1202
+ ],
1203
+ measureRange: [
1204
+ 0,
1205
+ 1
1206
+ ],
1207
+ foldMap: {}
1208
+ };
1209
+ const result = new Array(dataset.length * measures.length);
1210
+ let index = 0;
1211
+ const ids = measures.map((d)=>d.id);
1212
+ for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1213
+ const datum = chunk_KI5X74E2_y({
1214
+ ...dataset[i]
1215
+ }, ids);
1216
+ datum[ORIGINAL_DATA] = dataset[i];
1217
+ const measure = measures[j];
1218
+ const { id, alias } = measure;
1219
+ datum[id] = dataset[i][id];
1220
+ datum[measureId] = id;
1221
+ datum[measureName] = alias || id;
1222
+ datum[measureValue] = dataset[i][id];
1223
+ if (colorMeasureId) {
1224
+ const value = datum[ORIGINAL_DATA][colorMeasureId];
1225
+ datum[ColorEncoding] = value;
1226
+ datum[ColorIdEncoding] = colorMeasureId;
1227
+ foldInfo.colorRange = [
1228
+ Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1229
+ Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1230
+ ];
1231
+ }
1232
+ foldInfo.measureRange = [
1233
+ Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1234
+ Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1235
+ ];
1236
+ foldInfo.foldMap[id] = alias;
1237
+ result[index++] = datum;
1238
+ }
1239
+ return {
1240
+ dataset: result,
1241
+ foldInfo
1242
+ };
1243
+ };
1244
+ const reshapePivotTable = (advancedVSeed, context)=>{
1135
1245
  const result = {
1136
1246
  ...advancedVSeed
1137
1247
  };
1138
1248
  const { vseed } = context;
1139
- const { dimensions, dataset } = vseed;
1140
- const measures = findAllMeasures(advancedVSeed.measures);
1141
- if (!dataset) throw new Error('dataset is required');
1142
- if (0 === dataset.length) return result;
1143
- if (dimensions) {
1144
- const newDimensions = findAllDimensions(dimensions);
1145
- result.dimensions = newDimensions.map((item, index)=>{
1146
- if ('rowDimension' === item.location || 'columnDimension' === item.location) return item;
1147
- return {
1148
- ...item,
1149
- location: index % 2 === 0 ? 'columnDimension' : 'rowDimension'
1150
- };
1151
- });
1152
- return result;
1153
- }
1154
- const top100dataset = dataset.slice(0, 100);
1155
- const sample = top100dataset.reduce((prev, cur)=>({
1156
- ...prev,
1157
- ...cur
1158
- }), {});
1159
- let i = 0;
1160
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1161
- '',
1162
- null,
1163
- void 0
1164
- ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1165
- id: dim,
1166
- alias: dim,
1167
- location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension'
1168
- }));
1169
- return result;
1249
+ const { dataset, chartType } = vseed;
1250
+ const { dimensions, measures } = advancedVSeed;
1251
+ const { dataset: newDatasets, foldInfo } = foldMeasures(dataset, findAllMeasures(measures), {
1252
+ measureId: FoldMeasureId,
1253
+ measureName: FoldMeasureName,
1254
+ measureValue: FoldMeasureValue
1255
+ });
1256
+ const datasetReshapeInfo = [
1257
+ {
1258
+ id: String(chartType),
1259
+ index: 0,
1260
+ foldInfo
1261
+ }
1262
+ ];
1263
+ return {
1264
+ ...result,
1265
+ dataset: newDatasets,
1266
+ datasetReshapeInfo: datasetReshapeInfo,
1267
+ dimensions,
1268
+ measures
1269
+ };
1170
1270
  };
1171
1271
  const pivotTableConfig = (advancedVSeed, context)=>{
1172
1272
  const { vseed } = context;
@@ -1197,9 +1297,11 @@
1197
1297
  };
1198
1298
  const pivotTableAdvancedPipeline = [
1199
1299
  initAdvancedVSeed,
1200
- autoPivotMeasures,
1201
- autoPivotDimensions,
1202
- records_records,
1300
+ defaultMeasures_defaultMeasures,
1301
+ defaultDimensions,
1302
+ defaultMeasureName,
1303
+ encodingForPivotTable,
1304
+ reshapePivotTable,
1203
1305
  pivotTableConfig,
1204
1306
  theme_theme
1205
1307
  ];
@@ -1245,8 +1347,9 @@
1245
1347
  };
1246
1348
  const pivotColumns = (spec, context)=>{
1247
1349
  const { advancedVSeed } = context;
1350
+ const { encoding } = advancedVSeed;
1248
1351
  const dimensions = advancedVSeed.dimensions;
1249
- const columns = dimensions.filter((item)=>'columnDimension' === item['location']);
1352
+ const columns = dimensions.filter((item)=>encoding.column?.includes(item.id));
1250
1353
  return {
1251
1354
  ...spec,
1252
1355
  columns: columns.map((item)=>({
@@ -1259,7 +1362,8 @@
1259
1362
  const pivotRows = (spec, context)=>{
1260
1363
  const { advancedVSeed } = context;
1261
1364
  const dimensions = advancedVSeed.dimensions;
1262
- const rows = dimensions.filter((item)=>'rowDimension' === item['location']);
1365
+ const { encoding } = advancedVSeed;
1366
+ const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
1263
1367
  return {
1264
1368
  ...spec,
1265
1369
  rows: rows.map((item)=>({
@@ -1271,25 +1375,32 @@
1271
1375
  };
1272
1376
  const pivotIndicators = (spec, context)=>{
1273
1377
  const { advancedVSeed } = context;
1274
- const { locale } = advancedVSeed;
1275
- const measures = advancedVSeed.measures;
1378
+ const { locale, measures, datasetReshapeInfo } = advancedVSeed;
1379
+ const { foldInfo } = datasetReshapeInfo[0];
1276
1380
  return {
1277
1381
  ...spec,
1278
1382
  indicatorsAsCol: true,
1279
1383
  indicatorTitle: intl.i18n`指标名称`,
1280
- indicators: measures.map((item)=>{
1281
- if (isMeasure(item)) return {
1384
+ hideIndicatorName: true,
1385
+ indicators: [
1386
+ {
1282
1387
  cellType: 'text',
1283
- indicatorKey: item.id,
1284
- title: item.alias || item.id,
1388
+ indicatorKey: foldInfo.measureValue,
1389
+ title: 'indicator',
1285
1390
  width: 'auto',
1286
- format: pivotIndicators_fieldFormat(item, locale)
1287
- };
1288
- return {};
1289
- })
1391
+ format: pivotIndicators_fieldFormat(measures, foldInfo, locale)
1392
+ }
1393
+ ]
1290
1394
  };
1291
1395
  };
1292
- const pivotIndicators_fieldFormat = (node, locale)=>(value)=>{
1396
+ const pivotIndicators_fieldFormat = (measures, foldInfo, locale)=>(value, col, row, table)=>{
1397
+ if (!chunk_6GTAPB47_e(col) || !chunk_6GTAPB47_e(row) || !table) return value;
1398
+ const datum = table.getCellOriginRecord(col, row);
1399
+ if (!datum[0]) return value;
1400
+ const { measureId: foldMeasureId } = foldInfo;
1401
+ const measureId = datum[0][foldMeasureId];
1402
+ const node = findMeasureById(measures, measureId);
1403
+ if (!node) return value;
1293
1404
  const { format = {}, autoFormat = true } = node;
1294
1405
  if (!chunk_VCYTMP4D_n(format)) {
1295
1406
  const formatter = createFormatter(format);
@@ -1315,9 +1426,9 @@
1315
1426
  borderColor: borderColor,
1316
1427
  borderLineWidth: 1,
1317
1428
  padding: [
1318
- 8.6,
1429
+ 8,
1319
1430
  12,
1320
- 8.6,
1431
+ 8,
1321
1432
  12
1322
1433
  ],
1323
1434
  textAlign: 'left',
@@ -1445,111 +1556,94 @@
1445
1556
  locale: locale || 'zh-CN'
1446
1557
  };
1447
1558
  };
1448
- const ORIGINAL_DATA = '__OriginalData__';
1449
- const Separator = '-';
1450
- const FoldMeasureName = '__MeaName__';
1451
- const FoldMeasureId = '__MeaId__';
1452
- const FoldMeasureValue = '__MeaValue__';
1453
- const MeasureName = FoldMeasureName;
1454
- const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1455
- const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1456
- const FoldXMeasureValue = '__MeaXValue__';
1457
- const FoldYMeasureValue = '__MeaYValue__';
1458
- const XEncoding = '__Dim_X__';
1459
- const YEncoding = '__Dim_Y__';
1460
- const AngleEncoding = '__Dim_Angle__';
1461
- const DetailEncoding = '__Dim_Detail__';
1462
- const ColorEncoding = '__Dim_Color__';
1463
- const ColorIdEncoding = '__Dim_ColorId__';
1464
- const getBasicDimensions = (vseed)=>{
1465
- const { dimensions, dataset } = vseed;
1466
- const MeaName = {
1467
- id: MeasureName,
1468
- alias: intl.i18n`指标名称`
1559
+ const default_defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
1560
+ const { vseed } = context;
1561
+ const { measures, dataset } = vseed;
1562
+ if (measures && measures.length > 0) return {
1563
+ ...advancedVSeed,
1564
+ measures
1469
1565
  };
1470
1566
  if (!dataset) throw new Error('dataset is required');
1471
- if (0 === dataset.length) return [];
1472
- if (dimensions) {
1473
- const basicDimensions = dimensions.map((dim)=>({
1474
- location: 'dimension',
1475
- ...dim
1476
- }));
1477
- if (basicDimensions.some((dim)=>dim.id === MeasureName)) return basicDimensions;
1478
- basicDimensions.push(MeaName);
1479
- return basicDimensions;
1480
- }
1567
+ if (0 === dataset.length) return {
1568
+ ...advancedVSeed,
1569
+ measures: []
1570
+ };
1481
1571
  const top100dataset = dataset.slice(0, 100);
1482
1572
  const sample = top100dataset.reduce((prev, cur)=>({
1483
1573
  ...prev,
1484
1574
  ...cur
1485
1575
  }), {});
1486
- const basicDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1576
+ const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1487
1577
  '',
1488
1578
  null,
1489
1579
  void 0
1490
- ].includes(key)).map((dim)=>({
1491
- id: dim,
1492
- alias: dim,
1493
- location: 'dimension'
1580
+ ].includes(key)).map((measure)=>({
1581
+ id: measure,
1582
+ alias: measure
1494
1583
  }));
1495
- basicDimensions.push(MeaName);
1496
- return basicDimensions;
1497
- };
1498
- const getBasicMeasures = (vseed)=>{
1499
- const { dataset, measures } = vseed;
1500
- if (!measures || 0 === measures.length) return generateMeasuresByDataset(dataset);
1501
- return measures;
1584
+ return {
1585
+ ...advancedVSeed,
1586
+ measures: defaultMeasures
1587
+ };
1502
1588
  };
1503
- const generateMeasuresByDataset = (dataset)=>{
1589
+ const defaultDimensions_defaultDimensions = (advancedVSeed, context)=>{
1590
+ const result = {
1591
+ ...advancedVSeed
1592
+ };
1593
+ const { vseed } = context;
1594
+ const { dimensions, dataset } = vseed;
1595
+ if (dimensions && dimensions.length > 0) return {
1596
+ ...result,
1597
+ dimensions
1598
+ };
1504
1599
  if (!dataset) throw new Error('dataset is required');
1505
- if (0 === dataset.length) return [];
1600
+ if (0 === dataset.length) return result;
1601
+ const measures = findAllMeasures(advancedVSeed.measures);
1506
1602
  const top100dataset = dataset.slice(0, 100);
1507
1603
  const sample = top100dataset.reduce((prev, cur)=>({
1508
1604
  ...prev,
1509
1605
  ...cur
1510
1606
  }), {});
1511
- const basicMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1607
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1512
1608
  '',
1513
1609
  null,
1514
1610
  void 0
1515
- ].includes(key)).map((measure)=>({
1516
- id: measure,
1517
- alias: measure
1611
+ ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1612
+ id: dim,
1613
+ alias: dim
1518
1614
  }));
1519
- return basicMeasures;
1520
- };
1521
- const isMeasureTreeWithChildren = (vseed)=>{
1522
- const { measures } = vseed;
1523
- if (!measures) return false;
1524
- return measures.some((measure)=>'children' in measure);
1615
+ return {
1616
+ ...result,
1617
+ dimensions: newDimensions
1618
+ };
1525
1619
  };
1526
- const isMeasureTreeWithParentId = (vseed)=>{
1527
- const { measures } = vseed;
1528
- if (!measures) return false;
1529
- return measures.some((measure)=>'parentId' in measure);
1620
+ const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
1621
+ const result = {
1622
+ ...advancedVSeed
1623
+ };
1624
+ const MeaName = {
1625
+ id: MeasureName,
1626
+ alias: intl.i18n`指标名称`
1627
+ };
1628
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1629
+ return result;
1530
1630
  };
1531
- const encodingForLine = (advancedVSeed, context)=>{
1532
- const { vseed } = context;
1533
- const { measures: vseedMeasures = [] } = vseed;
1534
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
1535
- const dimensions = getBasicDimensions(vseed);
1631
+ const encodingForLine = (advancedVSeed)=>{
1632
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1633
+ const measures = findAllMeasures(vseedMeasures);
1536
1634
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1537
1635
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
1538
1636
  const encoding = {};
1539
- if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
1540
- else generateDefaultDimensionEncoding(dimensions, encoding);
1541
- if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
1542
- else generateDefaultMeasureEncoding(measures, encoding);
1637
+ if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding);
1638
+ else line_generateDefaultDimensionEncoding(dimensions, encoding);
1639
+ if (hasMeasureEncoding) line_generateMeasureEncoding(measures, encoding);
1640
+ else line_generateDefaultMeasureEncoding(measures, encoding);
1543
1641
  return {
1544
1642
  ...advancedVSeed,
1545
1643
  encoding
1546
1644
  };
1547
1645
  };
1548
- const generateDefaultMeasureEncoding = (measures, encoding)=>{
1549
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
1550
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1551
- };
1552
- const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1646
+ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1553
1647
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1554
1648
  encoding.x = uniqueDimIds.slice(0, 1);
1555
1649
  encoding.color = uniqueDimIds.slice(1);
@@ -1559,20 +1653,39 @@
1559
1653
  encoding.row = [];
1560
1654
  encoding.column = [];
1561
1655
  };
1562
- const generateMeasureEncoding = (measures, encoding)=>{
1563
- encoding.tooltip = measures.map((item)=>item.id);
1564
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1565
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1566
- if (color.length > 0) encoding.color = color;
1567
- };
1568
- const generateDimensionEncoding = (dimensions, encoding)=>{
1656
+ const line_generateDimensionEncoding = (dimensions, encoding)=>{
1569
1657
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1570
1658
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1571
- encoding.detail = [];
1659
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1572
1660
  if (0 === encoding.x.length) encoding.x = [
1573
1661
  dimensions[0].id
1574
1662
  ];
1575
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
1663
+ if (0 === encoding.color.length) encoding.color = [
1664
+ MeasureName
1665
+ ];
1666
+ if (0 === encoding.detail.length) encoding.detail = [
1667
+ MeasureName
1668
+ ];
1669
+ };
1670
+ const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
1671
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
1672
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1673
+ };
1674
+ const line_generateMeasureEncoding = (measures, encoding)=>{
1675
+ encoding.tooltip = measures.map((item)=>item.id);
1676
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1677
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1678
+ if (color.length > 0) encoding.color = color;
1679
+ };
1680
+ const isMeasureTreeWithChildren = (vseed)=>{
1681
+ const { measures } = vseed;
1682
+ if (!measures) return false;
1683
+ return measures.some((measure)=>'children' in measure);
1684
+ };
1685
+ const isMeasureTreeWithParentId = (vseed)=>{
1686
+ const { measures } = vseed;
1687
+ if (!measures) return false;
1688
+ return measures.some((measure)=>'parentId' in measure);
1576
1689
  };
1577
1690
  const measureDepth = (measures = [])=>{
1578
1691
  if (!measures) return 0;
@@ -1598,7 +1711,7 @@
1598
1711
  }
1599
1712
  if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
1600
1713
  const { dimensions = [] } = vseed;
1601
- const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
1714
+ const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
1602
1715
  if (hasRowOrColumnDimension) return true;
1603
1716
  if ('scatter' === vseed.chartType) {
1604
1717
  if (isMeasureTreeWithChildren(vseed)) {
@@ -1618,7 +1731,7 @@
1618
1731
  return false;
1619
1732
  }
1620
1733
  const { measures = [], dimensions = [] } = vseed;
1621
- const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
1734
+ const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
1622
1735
  const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
1623
1736
  return hasRowOrColumnDimension || hasMeasureGroup;
1624
1737
  };
@@ -1632,9 +1745,7 @@
1632
1745
  advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
1633
1746
  return advancedVSeed;
1634
1747
  }
1635
- const basicMeasures = getBasicMeasures(vseed);
1636
- if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
1637
- else advancedVSeed.measures = basicMeasures;
1748
+ if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(advancedVSeed.measures);
1638
1749
  return advancedVSeed;
1639
1750
  };
1640
1751
  const generateMeasuresByParentId = (measures)=>{
@@ -1656,146 +1767,35 @@
1656
1767
  };
1657
1768
  const basicMeasuresToMeasureTree = (measures)=>{
1658
1769
  const id = measures.map((item)=>item.id).join('-');
1659
- const alias = measures.map((item)=>item.alias || item.id).join('-');
1660
- return [
1661
- {
1662
- id,
1663
- alias,
1664
- children: measures
1665
- }
1666
- ];
1667
- };
1668
- const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
1669
- const result = {
1670
- ...advancedVSeed
1671
- };
1672
- const { vseed } = context;
1673
- const { dimensions, dataset } = vseed;
1674
- const measures = findAllMeasures(advancedVSeed.measures);
1675
- const MeaName = {
1676
- id: MeasureName,
1677
- alias: intl.i18n`指标名称`
1678
- };
1679
- if (!dataset) throw new Error('dataset is required');
1680
- if (0 === dataset.length) return result;
1681
- if (dimensions) {
1682
- result.dimensions = dimensions.map((dim)=>({
1683
- location: 'dimension',
1684
- ...dim
1685
- }));
1686
- if (result.dimensions.some((dim)=>dim.id === MeasureName)) return result;
1687
- result.dimensions.push(MeaName);
1688
- return result;
1689
- }
1690
- const top100dataset = dataset.slice(0, 100);
1691
- const sample = top100dataset.reduce((prev, cur)=>({
1692
- ...prev,
1693
- ...cur
1694
- }), {});
1695
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1696
- '',
1697
- null,
1698
- void 0
1699
- ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1700
- id: dim,
1701
- alias: dim,
1702
- location: 'dimension'
1703
- }));
1704
- result.dimensions.push(MeaName);
1705
- return result;
1706
- };
1707
- const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
1708
- const { vseed } = context;
1709
- const usePivotChart = isPivotChart(vseed);
1710
- if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
1711
- return execPipeline(pipeline, context, advancedVSeed);
1712
- };
1713
- function T(...e) {
1714
- return chunk_LFJW7BOT_y(chunk_7ZI6JRPB_y, e);
1715
- }
1716
- function chunk_7ZI6JRPB_y(e) {
1717
- let u = e, n = new Set;
1718
- return (t, i, d)=>{
1719
- let r = u(t, i, d);
1720
- return n.has(r) ? chunk_ANXBDSUI_s : (n.add(r), {
1721
- done: !1,
1722
- hasNext: !0,
1723
- next: t
1724
- });
1725
- };
1726
- }
1727
- function chunk_AIG3BDKO_i(...e) {
1728
- return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
1729
- }
1730
- var chunk_AIG3BDKO_n = (e, r)=>e.length >= r;
1731
- function chunk_KI5X74E2_y(...t) {
1732
- return chunk_WIMGWYZL_u(chunk_KI5X74E2_f, t);
1733
- }
1734
- function chunk_KI5X74E2_f(t, e) {
1735
- if (!chunk_AIG3BDKO_i(e, 1)) return {
1736
- ...t
1737
- };
1738
- if (!chunk_AIG3BDKO_i(e, 2)) {
1739
- let { [e[0]]: r, ...m } = t;
1740
- return m;
1741
- }
1742
- let o = {
1743
- ...t
1744
- };
1745
- for (let r of e)delete o[r];
1746
- return o;
1747
- }
1748
- const foldMeasures = (dataset, measures, options)=>{
1749
- const { measureId, measureName, measureValue, colorMeasureId } = options || {};
1750
- const foldInfo = {
1751
- measureId,
1752
- measureName,
1753
- measureValue,
1754
- colorRange: [
1755
- 0,
1756
- 1
1757
- ],
1758
- measureRange: [
1759
- 0,
1760
- 1
1761
- ],
1762
- foldMap: {}
1763
- };
1764
- const result = new Array(dataset.length * measures.length);
1765
- let index = 0;
1766
- const ids = measures.map((d)=>d.id);
1767
- for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1768
- const datum = chunk_KI5X74E2_y({
1769
- ...dataset[i]
1770
- }, ids);
1771
- datum[ORIGINAL_DATA] = dataset[i];
1772
- const measure = measures[j];
1773
- const { id, alias } = measure;
1774
- datum[id] = dataset[i][id];
1775
- datum[measureId] = id;
1776
- datum[measureName] = alias || id;
1777
- datum[measureValue] = dataset[i][id];
1778
- if (colorMeasureId) {
1779
- const value = datum[ORIGINAL_DATA][colorMeasureId];
1780
- datum[ColorEncoding] = value;
1781
- datum[ColorIdEncoding] = colorMeasureId;
1782
- foldInfo.colorRange = [
1783
- Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1784
- Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1785
- ];
1786
- }
1787
- foldInfo.measureRange = [
1788
- Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1789
- Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1790
- ];
1791
- foldInfo.foldMap[id] = alias;
1792
- result[index++] = datum;
1793
- }
1794
- return {
1795
- dataset: result,
1796
- foldInfo
1797
- };
1770
+ const alias = measures.map((item)=>item.alias || item.id).join('-');
1771
+ return [
1772
+ {
1773
+ id,
1774
+ alias,
1775
+ children: measures
1776
+ }
1777
+ ];
1798
1778
  };
1779
+ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
1780
+ const { vseed } = context;
1781
+ const usePivotChart = isPivotChart(vseed);
1782
+ if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
1783
+ return execPipeline(pipeline, context, advancedVSeed);
1784
+ };
1785
+ function T(...e) {
1786
+ return chunk_LFJW7BOT_y(chunk_7ZI6JRPB_y, e);
1787
+ }
1788
+ function chunk_7ZI6JRPB_y(e) {
1789
+ let u = e, n = new Set;
1790
+ return (t, i, d)=>{
1791
+ let r = u(t, i, d);
1792
+ return n.has(r) ? chunk_ANXBDSUI_s : (n.add(r), {
1793
+ done: !1,
1794
+ hasNext: !0,
1795
+ next: t
1796
+ });
1797
+ };
1798
+ }
1799
1799
  const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
1800
1800
  const { foldMeasureId, separator, colorItemAsId } = options;
1801
1801
  const unfoldInfo = {
@@ -1890,7 +1890,9 @@
1890
1890
  const { dimensions, measures, encoding } = advancedVSeed;
1891
1891
  if (!measures || !dimensions || !dataset || !encoding) return result;
1892
1892
  if (0 === measures.length) throw new Error('measures can not be empty');
1893
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1893
1894
  const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(findAllMeasures(measures), (item)=>item.id), encoding, {
1895
+ colorItemAsId: hasEncoding,
1894
1896
  colorMeasureId: getColorMeasureId(advancedVSeed)
1895
1897
  });
1896
1898
  return {
@@ -1921,6 +1923,7 @@
1921
1923
  if (measures) measures.forEach((measure)=>{
1922
1924
  if (measure.children && measure.children.length > 0) measureGroups.push(measure);
1923
1925
  });
1926
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1924
1927
  const datasets = [];
1925
1928
  const datasetReshapeInfo = [];
1926
1929
  measureGroups.forEach((measureGroup, index)=>{
@@ -1928,6 +1931,7 @@
1928
1931
  if (!measures) return;
1929
1932
  const groupId = measureGroup.id;
1930
1933
  const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(measures, (item)=>item.id), encoding, {
1934
+ colorItemAsId: hasEncoding,
1931
1935
  foldMeasureValue: `${FoldMeasureValue}${groupId}`,
1932
1936
  colorMeasureId: getColorMeasureId(advancedVSeed)
1933
1937
  });
@@ -2145,9 +2149,11 @@
2145
2149
  };
2146
2150
  const lineAdvancedPipeline = [
2147
2151
  initAdvancedVSeed_initAdvancedVSeed,
2152
+ default_defaultMeasures_defaultMeasures,
2153
+ defaultDimensions_defaultDimensions,
2154
+ defaultMeasureName_defaultMeasureName,
2148
2155
  encodingForLine,
2149
2156
  buildMeasures,
2150
- autoDimensions_autoDimensions,
2151
2157
  pivotAdapter([
2152
2158
  reshapeWithEncoding
2153
2159
  ], [
@@ -3218,7 +3224,7 @@
3218
3224
  const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
3219
3225
  const { advancedVSeed } = context;
3220
3226
  const { annotation, datasetReshapeInfo } = advancedVSeed;
3221
- const { unfoldInfo } = datasetReshapeInfo[0];
3227
+ const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
3222
3228
  if (!annotation || !annotation.annotationVerticalLine) return spec;
3223
3229
  const { annotationVerticalLine } = annotation;
3224
3230
  const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
@@ -3298,9 +3304,9 @@
3298
3304
  }
3299
3305
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
3300
3306
  return selectedData.map((datum)=>{
3301
- const x = unfoldInfo.encodingX;
3302
- if (!x) return {};
3303
- return generateOneMarkLine(datum[x]);
3307
+ if (datum[unfoldInfo.encodingX]) return generateOneMarkLine(datum[unfoldInfo.encodingX]);
3308
+ if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
3309
+ return {};
3304
3310
  });
3305
3311
  });
3306
3312
  const specMarkLine = spec.markLine || [];
@@ -3316,10 +3322,10 @@
3316
3322
  const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
3317
3323
  const { advancedVSeed } = context;
3318
3324
  const { annotation, datasetReshapeInfo } = advancedVSeed;
3319
- const { unfoldInfo } = datasetReshapeInfo[0];
3325
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
3320
3326
  if (!annotation || !annotation.annotationHorizontalLine) return spec;
3321
3327
  const { annotationHorizontalLine } = annotation;
3322
- const annotationVerticalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
3328
+ const annotationHorizontalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
3323
3329
  annotationHorizontalLine
3324
3330
  ];
3325
3331
  const positionMap = {
@@ -3330,8 +3336,8 @@
3330
3336
  insideMiddle: 'insideMiddleTop',
3331
3337
  insideEnd: 'insideEndTop'
3332
3338
  };
3333
- const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine)=>{
3334
- const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'right', textBaseline = 'top', lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1, textBackgroundVisible = true, textBackgroundColor = '#212121', textBackgroundBorderColor = '#212121', textBackgroundBorderRadius = 4, textBackgroundBorderWidth = 1, textBackgroundPadding = 2 } = annotationVerticalLine;
3339
+ const markLine = annotationHorizontalLineList.flatMap((annotationHorizontalLine)=>{
3340
+ const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'right', textBaseline = 'top', lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1, textBackgroundVisible = true, textBackgroundColor = '#212121', textBackgroundBorderColor = '#212121', textBackgroundBorderRadius = 4, textBackgroundBorderWidth = 1, textBackgroundPadding = 2 } = annotationHorizontalLine;
3335
3341
  const dataset = advancedVSeed.dataset.flat();
3336
3342
  const generateOneMarkLine = (y)=>({
3337
3343
  y,
@@ -3396,9 +3402,9 @@
3396
3402
  }
3397
3403
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
3398
3404
  return selectedData.map((datum)=>{
3399
- const y = unfoldInfo.encodingY;
3400
- if (!y) return {};
3401
- return generateOneMarkLine(datum[y]);
3405
+ if (datum[unfoldInfo.encodingY]) return generateOneMarkLine(datum[unfoldInfo.encodingY]);
3406
+ if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
3407
+ return {};
3402
3408
  });
3403
3409
  });
3404
3410
  const specMarkLine = spec.markLine || [];
@@ -3762,7 +3768,7 @@
3762
3768
  const { advancedVSeed } = context;
3763
3769
  const dimensions = advancedVSeed.dimensions;
3764
3770
  if (!dimensions) return result;
3765
- const rowDimensions = dimensions.filter((dim)=>'rowDimension' === dim.location);
3771
+ const rowDimensions = dimensions.filter((dim)=>'row' === dim.encoding);
3766
3772
  const rows = rowDimensions.map((dim)=>({
3767
3773
  dimensionKey: dim.id,
3768
3774
  title: dim.alias || dim.id
@@ -3779,7 +3785,7 @@
3779
3785
  const { advancedVSeed } = context;
3780
3786
  const dimensions = advancedVSeed.dimensions;
3781
3787
  if (!dimensions) return result;
3782
- const columnDimensions = dimensions.filter((dim)=>'columnDimension' === dim.location);
3788
+ const columnDimensions = dimensions.filter((dim)=>'column' === dim.encoding);
3783
3789
  const columns = columnDimensions.map((dim)=>({
3784
3790
  dimensionKey: dim.id,
3785
3791
  title: dim.alias || dim.id
@@ -4052,11 +4058,9 @@
4052
4058
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
4053
4059
  Builder._specPipelineMap.line = lineSpecPipeline;
4054
4060
  };
4055
- const encodingForColumn = (advancedVSeed, context)=>{
4056
- const { vseed } = context;
4057
- const { measures: vseedMeasures = [] } = vseed;
4058
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
4059
- const dimensions = getBasicDimensions(vseed);
4061
+ const encodingForColumn = (advancedVSeed)=>{
4062
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4063
+ const measures = findAllMeasures(vseedMeasures);
4060
4064
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4061
4065
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4062
4066
  const encoding = {};
@@ -4069,10 +4073,6 @@
4069
4073
  encoding
4070
4074
  };
4071
4075
  };
4072
- const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
4073
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4074
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4075
- };
4076
4076
  const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4077
4077
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
4078
4078
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -4084,13 +4084,6 @@
4084
4084
  encoding.row = [];
4085
4085
  encoding.column = [];
4086
4086
  };
4087
- const column_generateMeasureEncoding = (measures, encoding)=>{
4088
- encoding.tooltip = measures.map((item)=>item.id);
4089
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4090
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4091
- if (color.length > 0) encoding.color = color;
4092
- return encoding;
4093
- };
4094
4087
  const column_generateDimensionEncoding = (dimensions, encoding)=>{
4095
4088
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
4096
4089
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -4098,14 +4091,31 @@
4098
4091
  if (0 === encoding.x.length) encoding.x = [
4099
4092
  dimensions[0].id
4100
4093
  ];
4101
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
4102
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
4094
+ if (0 === encoding.color.length) encoding.color = [
4095
+ MeasureName
4096
+ ];
4097
+ if (0 === encoding.detail.length) encoding.detail = [
4098
+ MeasureName
4099
+ ];
4100
+ };
4101
+ const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
4102
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4103
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4104
+ };
4105
+ const column_generateMeasureEncoding = (measures, encoding)=>{
4106
+ encoding.tooltip = measures.map((item)=>item.id);
4107
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4108
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4109
+ if (color.length > 0) encoding.color = color;
4110
+ return encoding;
4103
4111
  };
4104
4112
  const columnAdvancedPipeline = [
4105
4113
  initAdvancedVSeed_initAdvancedVSeed,
4114
+ default_defaultMeasures_defaultMeasures,
4115
+ defaultDimensions_defaultDimensions,
4116
+ defaultMeasureName_defaultMeasureName,
4106
4117
  encodingForColumn,
4107
4118
  buildMeasures,
4108
- autoDimensions_autoDimensions,
4109
4119
  pivotAdapter([
4110
4120
  reshapeWithEncoding
4111
4121
  ], [
@@ -4465,9 +4475,11 @@
4465
4475
  };
4466
4476
  const columnParallelAdvancedPipeline = [
4467
4477
  initAdvancedVSeed_initAdvancedVSeed,
4478
+ default_defaultMeasures_defaultMeasures,
4479
+ defaultDimensions_defaultDimensions,
4480
+ defaultMeasureName_defaultMeasureName,
4468
4481
  encodingForColumn,
4469
4482
  buildMeasures,
4470
- autoDimensions_autoDimensions,
4471
4483
  pivotAdapter([
4472
4484
  reshapeWithEncoding
4473
4485
  ], [
@@ -4562,9 +4574,11 @@
4562
4574
  };
4563
4575
  const columnPercentAdvancedPipeline = [
4564
4576
  initAdvancedVSeed_initAdvancedVSeed,
4577
+ default_defaultMeasures_defaultMeasures,
4578
+ defaultDimensions_defaultDimensions,
4579
+ defaultMeasureName_defaultMeasureName,
4565
4580
  encodingForColumn,
4566
4581
  buildMeasures,
4567
- autoDimensions_autoDimensions,
4568
4582
  pivotAdapter([
4569
4583
  reshapeWithEncoding
4570
4584
  ], [
@@ -4641,11 +4655,9 @@
4641
4655
  Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
4642
4656
  Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
4643
4657
  };
4644
- const encodingForBar = (advancedVSeed, context)=>{
4645
- const { vseed } = context;
4646
- const { measures: vseedMeasures = [] } = vseed;
4647
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
4648
- const dimensions = getBasicDimensions(vseed);
4658
+ const encodingForBar = (advancedVSeed)=>{
4659
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4660
+ const measures = findAllMeasures(vseedMeasures);
4649
4661
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4650
4662
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4651
4663
  const encoding = {};
@@ -4658,10 +4670,6 @@
4658
4670
  encoding
4659
4671
  };
4660
4672
  };
4661
- const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4662
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4663
- encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4664
- };
4665
4673
  const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4666
4674
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
4667
4675
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -4673,13 +4681,6 @@
4673
4681
  encoding.row = [];
4674
4682
  encoding.column = [];
4675
4683
  };
4676
- const bar_generateMeasureEncoding = (measures, encoding)=>{
4677
- encoding.tooltip = measures.map((item)=>item.id);
4678
- encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4679
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4680
- if (color.length > 0) encoding.color = color;
4681
- return encoding;
4682
- };
4683
4684
  const bar_generateDimensionEncoding = (dimensions, encoding)=>{
4684
4685
  encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
4685
4686
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -4687,8 +4688,23 @@
4687
4688
  if (0 === encoding.y.length) encoding.y = [
4688
4689
  dimensions[0].id
4689
4690
  ];
4690
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4691
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4691
+ if (0 === encoding.color.length) encoding.color = [
4692
+ MeasureName
4693
+ ];
4694
+ if (0 === encoding.detail.length) encoding.detail = [
4695
+ MeasureName
4696
+ ];
4697
+ };
4698
+ const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4699
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4700
+ encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4701
+ };
4702
+ const bar_generateMeasureEncoding = (measures, encoding)=>{
4703
+ encoding.tooltip = measures.map((item)=>item.id);
4704
+ encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4705
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4706
+ if (color.length > 0) encoding.color = color;
4707
+ return encoding;
4692
4708
  };
4693
4709
  const sortYBandAxis = (advancedVSeed, context)=>{
4694
4710
  const result = {
@@ -4708,9 +4724,11 @@
4708
4724
  };
4709
4725
  const barAdvancedPipeline = [
4710
4726
  initAdvancedVSeed_initAdvancedVSeed,
4727
+ default_defaultMeasures_defaultMeasures,
4728
+ defaultDimensions_defaultDimensions,
4729
+ defaultMeasureName_defaultMeasureName,
4711
4730
  encodingForBar,
4712
4731
  buildMeasures,
4713
- autoDimensions_autoDimensions,
4714
4732
  pivotAdapter([
4715
4733
  reshapeWithEncoding
4716
4734
  ], [
@@ -5061,9 +5079,11 @@
5061
5079
  };
5062
5080
  const barParallelAdvancedPipeline = [
5063
5081
  initAdvancedVSeed_initAdvancedVSeed,
5064
- buildMeasures,
5065
- autoDimensions_autoDimensions,
5082
+ default_defaultMeasures_defaultMeasures,
5083
+ defaultDimensions_defaultDimensions,
5084
+ defaultMeasureName_defaultMeasureName,
5066
5085
  encodingForBar,
5086
+ buildMeasures,
5067
5087
  pivotAdapter([
5068
5088
  reshapeWithEncoding
5069
5089
  ], [
@@ -5157,9 +5177,11 @@
5157
5177
  };
5158
5178
  const barPercentAdvancedPipeline = [
5159
5179
  initAdvancedVSeed_initAdvancedVSeed,
5160
- buildMeasures,
5161
- autoDimensions_autoDimensions,
5180
+ default_defaultMeasures_defaultMeasures,
5181
+ defaultDimensions_defaultDimensions,
5182
+ defaultMeasureName_defaultMeasureName,
5162
5183
  encodingForBar,
5184
+ buildMeasures,
5163
5185
  pivotAdapter([
5164
5186
  reshapeWithEncoding
5165
5187
  ], [
@@ -5228,9 +5250,11 @@
5228
5250
  };
5229
5251
  const areaAdvancedPipeline = [
5230
5252
  initAdvancedVSeed_initAdvancedVSeed,
5253
+ default_defaultMeasures_defaultMeasures,
5254
+ defaultDimensions_defaultDimensions,
5255
+ defaultMeasureName_defaultMeasureName,
5231
5256
  encodingForLine,
5232
5257
  buildMeasures,
5233
- autoDimensions_autoDimensions,
5234
5258
  pivotAdapter([
5235
5259
  reshapeWithEncoding
5236
5260
  ], [
@@ -5386,9 +5410,11 @@
5386
5410
  };
5387
5411
  const areaPercentAdvancedPipeline = [
5388
5412
  initAdvancedVSeed_initAdvancedVSeed,
5413
+ default_defaultMeasures_defaultMeasures,
5414
+ defaultDimensions_defaultDimensions,
5415
+ defaultMeasureName_defaultMeasureName,
5389
5416
  encodingForLine,
5390
5417
  buildMeasures,
5391
- autoDimensions_autoDimensions,
5392
5418
  pivotAdapter([
5393
5419
  reshapeWithEncoding
5394
5420
  ], [
@@ -5462,11 +5488,9 @@
5462
5488
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5463
5489
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5464
5490
  };
5465
- const encodingForScatter = (advancedVSeed, context)=>{
5466
- const { vseed } = context;
5467
- const { measures: vseedMeasures = [] } = vseed;
5468
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
5469
- const dimensions = getBasicDimensions(vseed);
5491
+ const encodingForScatter = (advancedVSeed)=>{
5492
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5493
+ const measures = findAllMeasures(vseedMeasures);
5470
5494
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5471
5495
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5472
5496
  const encoding = {};
@@ -5479,10 +5503,6 @@
5479
5503
  encoding
5480
5504
  };
5481
5505
  };
5482
- const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5483
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5484
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5485
- };
5486
5506
  const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5487
5507
  const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
5488
5508
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureName.map((d)=>d.id));
@@ -5493,17 +5513,27 @@
5493
5513
  encoding.row = [];
5494
5514
  encoding.column = [];
5495
5515
  };
5516
+ const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5517
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5518
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5519
+ if (0 === encoding.color.length) encoding.color = [
5520
+ MeasureName
5521
+ ];
5522
+ if (0 === encoding.detail.length) encoding.detail = [
5523
+ MeasureName
5524
+ ];
5525
+ };
5526
+ const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5527
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5528
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5529
+ };
5496
5530
  const scatter_generateMeasureEncoding = (measures, encoding)=>{
5497
5531
  encoding.tooltip = measures.map((item)=>item.id);
5498
5532
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5499
5533
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5500
- if (color.length > 0) encoding.color = color;
5501
- };
5502
- const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5503
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5504
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5505
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5506
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5534
+ if (color.length > 0) encoding.color = [
5535
+ color[0]
5536
+ ];
5507
5537
  };
5508
5538
  const buildMeasuresForScatter = (advancedVSeed, context)=>{
5509
5539
  const { vseed } = context;
@@ -5515,8 +5545,7 @@
5515
5545
  advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
5516
5546
  return advancedVSeed;
5517
5547
  }
5518
- const basicMeasures = getBasicMeasures(vseed);
5519
- const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(basicMeasures);
5548
+ const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
5520
5549
  advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
5521
5550
  return advancedVSeed;
5522
5551
  };
@@ -5532,7 +5561,7 @@
5532
5561
  const isXAxis = encoding.includes('xAxis');
5533
5562
  if (isYAxis) yMeasures.push(item);
5534
5563
  else if (isXAxis) xMeasures.push(item);
5535
- else if (0 === index) yMeasures.push(item);
5564
+ else if (0 !== index) yMeasures.push(item);
5536
5565
  else xMeasures.push(item);
5537
5566
  }
5538
5567
  return [
@@ -5600,7 +5629,7 @@
5600
5629
  const isEmpty = !encoding.length;
5601
5630
  if (isY) scatterChart.yMeasures.push(item);
5602
5631
  else if (isX) scatterChart.xMeasures.push(item);
5603
- else if (isEmpty) if (0 === scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
5632
+ else if (isEmpty) if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
5604
5633
  else scatterChart.xMeasures.push(item);
5605
5634
  });
5606
5635
  return scatterMeasuresToMeasureTree(scatterMeasures);
@@ -5735,9 +5764,11 @@
5735
5764
  };
5736
5765
  const scatterAdvancedPipeline = [
5737
5766
  initAdvancedVSeed_initAdvancedVSeed,
5767
+ default_defaultMeasures_defaultMeasures,
5768
+ defaultDimensions_defaultDimensions,
5769
+ defaultMeasureName_defaultMeasureName,
5738
5770
  encodingForScatter,
5739
5771
  buildMeasuresForScatter,
5740
- autoDimensions_autoDimensions,
5741
5772
  pivotAdapter([
5742
5773
  reshapeWithScatterEncoding
5743
5774
  ], [
@@ -5882,11 +5913,9 @@
5882
5913
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
5883
5914
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
5884
5915
  };
5885
- const encodingForDualAxis = (advancedVSeed, context)=>{
5886
- const { vseed } = context;
5887
- const { measures: vseedMeasures = [] } = vseed;
5888
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
5889
- const dimensions = getBasicDimensions(vseed);
5916
+ const encodingForDualAxis = (advancedVSeed)=>{
5917
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5918
+ const measures = findAllMeasures(vseedMeasures);
5890
5919
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5891
5920
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5892
5921
  const encoding = {};
@@ -5899,10 +5928,6 @@
5899
5928
  encoding
5900
5929
  };
5901
5930
  };
5902
- const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5903
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5904
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5905
- };
5906
5931
  const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5907
5932
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
5908
5933
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -5914,13 +5939,6 @@
5914
5939
  encoding.row = [];
5915
5940
  encoding.column = [];
5916
5941
  };
5917
- const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5918
- encoding.tooltip = measures.map((item)=>item.id);
5919
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5920
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5921
- if (color.length > 0) encoding.color = color;
5922
- return encoding;
5923
- };
5924
5942
  const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
5925
5943
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
5926
5944
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -5928,8 +5946,23 @@
5928
5946
  if (0 === encoding.x.length) encoding.x = [
5929
5947
  dimensions[0].id
5930
5948
  ];
5931
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5932
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5949
+ if (0 === encoding.color.length) encoding.color = [
5950
+ MeasureName
5951
+ ];
5952
+ if (0 === encoding.detail.length) encoding.detail = [
5953
+ MeasureName
5954
+ ];
5955
+ };
5956
+ const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5957
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5958
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5959
+ };
5960
+ const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5961
+ encoding.tooltip = measures.map((item)=>item.id);
5962
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5963
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5964
+ if (color.length > 0) encoding.color = color;
5965
+ return encoding;
5933
5966
  };
5934
5967
  const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5935
5968
  const { vseed } = context;
@@ -5941,8 +5974,7 @@
5941
5974
  advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
5942
5975
  return advancedVSeed;
5943
5976
  }
5944
- const basicMeasures = getBasicMeasures(vseed);
5945
- const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(basicMeasures);
5977
+ const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(advancedVSeed.measures || []);
5946
5978
  advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
5947
5979
  return advancedVSeed;
5948
5980
  };
@@ -6046,8 +6078,10 @@
6046
6078
  const datasets = [];
6047
6079
  const primaryMeasures = measures[0];
6048
6080
  const secondaryMeasures = measures[1] || [];
6081
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
6049
6082
  if (primaryMeasures && primaryMeasures.children) {
6050
6083
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
6084
+ colorItemAsId: hasEncoding,
6051
6085
  foldMeasureValue: FoldPrimaryMeasureValue,
6052
6086
  colorMeasureId: getColorMeasureId(advancedVSeed)
6053
6087
  });
@@ -6094,6 +6128,7 @@
6094
6128
  const { dataset } = vseed;
6095
6129
  const { dimensions, measures, encoding, chartType } = advancedVSeed;
6096
6130
  if (!measures || !dimensions || !dataset || !encoding) return result;
6131
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
6097
6132
  const datasetList = [];
6098
6133
  const datasetReshapeInfo = [];
6099
6134
  const measureGroups = [];
@@ -6112,6 +6147,7 @@
6112
6147
  const secondaryMeasures = measures[1] || [];
6113
6148
  if (primaryMeasures && primaryMeasures.children) {
6114
6149
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
6150
+ colorItemAsId: hasEncoding,
6115
6151
  foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
6116
6152
  colorMeasureId: getColorMeasureId(advancedVSeed)
6117
6153
  });
@@ -6180,9 +6216,11 @@
6180
6216
  };
6181
6217
  const dualAxisAdvancedPipeline = [
6182
6218
  initAdvancedVSeed_initAdvancedVSeed,
6219
+ default_defaultMeasures_defaultMeasures,
6220
+ defaultDimensions_defaultDimensions,
6221
+ defaultMeasureName_defaultMeasureName,
6183
6222
  encodingForDualAxis,
6184
6223
  buildMeasuresForDualAxis,
6185
- autoDimensions_autoDimensions,
6186
6224
  pivotAdapter([
6187
6225
  reshapeWithDualEncoding
6188
6226
  ], [
@@ -7015,11 +7053,9 @@
7015
7053
  Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
7016
7054
  Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
7017
7055
  };
7018
- const encodingForPie = (advancedVSeed, context)=>{
7019
- const { vseed } = context;
7020
- const { measures: vseedMeasures = [] } = vseed;
7021
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7022
- const dimensions = getBasicDimensions(vseed);
7056
+ const encodingForPie = (advancedVSeed)=>{
7057
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7058
+ const measures = findAllMeasures(vseedMeasures);
7023
7059
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7024
7060
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7025
7061
  const encoding = {};
@@ -7032,10 +7068,6 @@
7032
7068
  encoding
7033
7069
  };
7034
7070
  };
7035
- const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
7036
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7037
- encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
7038
- };
7039
7071
  const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7040
7072
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7041
7073
  encoding.color = uniqueDimIds.slice(0);
@@ -7045,23 +7077,33 @@
7045
7077
  encoding.row = [];
7046
7078
  encoding.column = [];
7047
7079
  };
7080
+ const pie_generateDimensionEncoding = (dimensions, encoding)=>{
7081
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7082
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7083
+ if (0 === encoding.color.length) encoding.color = [
7084
+ MeasureName
7085
+ ];
7086
+ if (0 === encoding.detail.length) encoding.detail = [
7087
+ MeasureName
7088
+ ];
7089
+ };
7090
+ const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
7091
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7092
+ encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
7093
+ };
7048
7094
  const pie_generateMeasureEncoding = (measures, encoding)=>{
7049
7095
  encoding.tooltip = measures.map((item)=>item.id);
7050
7096
  encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
7051
7097
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7052
7098
  if (color.length > 0) encoding.color = color;
7053
7099
  };
7054
- const pie_generateDimensionEncoding = (dimensions, encoding)=>{
7055
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7056
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7057
- if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
7058
- if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
7059
- };
7060
7100
  const pieAdvancedPipeline = [
7061
7101
  initAdvancedVSeed_initAdvancedVSeed,
7102
+ default_defaultMeasures_defaultMeasures,
7103
+ defaultDimensions_defaultDimensions,
7104
+ defaultMeasureName_defaultMeasureName,
7062
7105
  encodingForPie,
7063
7106
  buildMeasures,
7064
- autoDimensions_autoDimensions,
7065
7107
  pivotAdapter([
7066
7108
  reshapeWithEncoding
7067
7109
  ], [
@@ -7177,8 +7219,10 @@
7177
7219
  };
7178
7220
  const donutAdvancedPipeline = [
7179
7221
  initAdvancedVSeed_initAdvancedVSeed,
7222
+ default_defaultMeasures_defaultMeasures,
7223
+ defaultDimensions_defaultDimensions,
7224
+ defaultMeasureName_defaultMeasureName,
7180
7225
  buildMeasures,
7181
- autoDimensions_autoDimensions,
7182
7226
  encodingForPie,
7183
7227
  pivotAdapter([
7184
7228
  reshapeWithEncoding
@@ -7255,11 +7299,9 @@
7255
7299
  Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
7256
7300
  Builder._specPipelineMap.donut = donutSpecPipeline;
7257
7301
  };
7258
- const encodingForRose = (advancedVSeed, context)=>{
7259
- const { vseed } = context;
7260
- const { measures: vseedMeasures = [] } = vseed;
7261
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7262
- const dimensions = getBasicDimensions(vseed);
7302
+ const encodingForRose = (advancedVSeed)=>{
7303
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7304
+ const measures = findAllMeasures(vseedMeasures);
7263
7305
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7264
7306
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7265
7307
  const encoding = {};
@@ -7272,10 +7314,6 @@
7272
7314
  encoding
7273
7315
  };
7274
7316
  };
7275
- const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7276
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7277
- encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7278
- };
7279
7317
  const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7280
7318
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
7281
7319
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -7287,12 +7325,6 @@
7287
7325
  encoding.row = [];
7288
7326
  encoding.column = [];
7289
7327
  };
7290
- const rose_generateMeasureEncoding = (measures, encoding)=>{
7291
- encoding.tooltip = measures.map((item)=>item.id);
7292
- encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7293
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7294
- if (color.length > 0) encoding.color = color;
7295
- };
7296
7328
  const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7297
7329
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7298
7330
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -7300,14 +7332,30 @@
7300
7332
  if (0 === encoding.angle.length) encoding.angle = [
7301
7333
  dimensions[0].id
7302
7334
  ];
7303
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7304
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7335
+ if (0 === encoding.color.length) encoding.color = [
7336
+ MeasureName
7337
+ ];
7338
+ if (0 === encoding.detail.length) encoding.detail = [
7339
+ MeasureName
7340
+ ];
7341
+ };
7342
+ const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7343
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7344
+ encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7345
+ };
7346
+ const rose_generateMeasureEncoding = (measures, encoding)=>{
7347
+ encoding.tooltip = measures.map((item)=>item.id);
7348
+ encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7349
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7350
+ if (color.length > 0) encoding.color = color;
7305
7351
  };
7306
7352
  const roseAdvancedPipeline = [
7307
7353
  initAdvancedVSeed_initAdvancedVSeed,
7354
+ default_defaultMeasures_defaultMeasures,
7355
+ defaultDimensions_defaultDimensions,
7356
+ defaultMeasureName_defaultMeasureName,
7308
7357
  encodingForRose,
7309
7358
  buildMeasures,
7310
- autoDimensions_autoDimensions,
7311
7359
  pivotAdapter([
7312
7360
  reshapeWithEncoding
7313
7361
  ], [
@@ -7503,9 +7551,11 @@
7503
7551
  };
7504
7552
  const roseParallelAdvancedPipeline = [
7505
7553
  initAdvancedVSeed_initAdvancedVSeed,
7554
+ default_defaultMeasures_defaultMeasures,
7555
+ defaultDimensions_defaultDimensions,
7556
+ defaultMeasureName_defaultMeasureName,
7506
7557
  encodingForRose,
7507
7558
  buildMeasures,
7508
- autoDimensions_autoDimensions,
7509
7559
  pivotAdapter([
7510
7560
  reshapeWithEncoding
7511
7561
  ], [
@@ -7611,11 +7661,9 @@
7611
7661
  Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
7612
7662
  Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
7613
7663
  };
7614
- const encodingForRadar = (advancedVSeed, context)=>{
7615
- const { vseed } = context;
7616
- const { measures: vseedMeasures = [] } = vseed;
7617
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7618
- const dimensions = getBasicDimensions(vseed);
7664
+ const encodingForRadar = (advancedVSeed)=>{
7665
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7666
+ const measures = findAllMeasures(vseedMeasures);
7619
7667
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7620
7668
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7621
7669
  const encoding = {};
@@ -7628,10 +7676,6 @@
7628
7676
  encoding
7629
7677
  };
7630
7678
  };
7631
- const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7632
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7633
- encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7634
- };
7635
7679
  const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7636
7680
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7637
7681
  encoding.angle = uniqueDimIds.slice(0, 1);
@@ -7642,12 +7686,6 @@
7642
7686
  encoding.row = [];
7643
7687
  encoding.column = [];
7644
7688
  };
7645
- const radar_generateMeasureEncoding = (measures, encoding)=>{
7646
- encoding.tooltip = measures.map((item)=>item.id);
7647
- encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7648
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7649
- if (color.length > 0) encoding.color = color;
7650
- };
7651
7689
  const radar_generateDimensionEncoding = (dimensions, encoding)=>{
7652
7690
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7653
7691
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -7655,13 +7693,30 @@
7655
7693
  if (0 === encoding.angle.length) encoding.angle = [
7656
7694
  dimensions[0].id
7657
7695
  ];
7658
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7696
+ if (0 === encoding.color.length) encoding.color = [
7697
+ MeasureName
7698
+ ];
7699
+ if (0 === encoding.detail.length) encoding.detail = [
7700
+ MeasureName
7701
+ ];
7702
+ };
7703
+ const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7704
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7705
+ encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7706
+ };
7707
+ const radar_generateMeasureEncoding = (measures, encoding)=>{
7708
+ encoding.tooltip = measures.map((item)=>item.id);
7709
+ encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7710
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7711
+ if (color.length > 0) encoding.color = color;
7659
7712
  };
7660
7713
  const radarAdvancedPipeline = [
7661
7714
  initAdvancedVSeed_initAdvancedVSeed,
7715
+ default_defaultMeasures_defaultMeasures,
7716
+ defaultDimensions_defaultDimensions,
7717
+ defaultMeasureName_defaultMeasureName,
7662
7718
  encodingForRadar,
7663
7719
  buildMeasures,
7664
- autoDimensions_autoDimensions,
7665
7720
  pivotAdapter([
7666
7721
  reshapeWithEncoding
7667
7722
  ], [
@@ -7795,11 +7850,9 @@
7795
7850
  Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
7796
7851
  Builder._specPipelineMap.radar = radarSpecPipeline;
7797
7852
  };
7798
- const encodingForFunnel = (advancedVSeed, context)=>{
7799
- const { vseed } = context;
7800
- const { measures: vseedMeasures = [] } = vseed;
7801
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7802
- const dimensions = getBasicDimensions(vseed);
7853
+ const encodingForFunnel = (advancedVSeed)=>{
7854
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7855
+ const measures = findAllMeasures(vseedMeasures);
7803
7856
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7804
7857
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7805
7858
  const encoding = {};
@@ -7812,10 +7865,6 @@
7812
7865
  encoding
7813
7866
  };
7814
7867
  };
7815
- const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7816
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7817
- encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7818
- };
7819
7868
  const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7820
7869
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7821
7870
  encoding.color = uniqueDimIds.slice(0);
@@ -7825,23 +7874,35 @@
7825
7874
  encoding.row = [];
7826
7875
  encoding.column = [];
7827
7876
  };
7877
+ const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7878
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7879
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7880
+ if (0 === encoding.color.length) encoding.color = [
7881
+ MeasureName
7882
+ ];
7883
+ if (0 === encoding.detail.length) encoding.detail = [
7884
+ MeasureName
7885
+ ];
7886
+ };
7887
+ const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7888
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7889
+ encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7890
+ };
7828
7891
  const funnel_generateMeasureEncoding = (measures, encoding)=>{
7829
7892
  encoding.tooltip = measures.map((item)=>item.id);
7830
7893
  encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7831
7894
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7832
- if (color.length > 0) encoding.color = color;
7833
- };
7834
- const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7835
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7836
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7837
- if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
7838
- if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
7895
+ if (color.length > 0) encoding.color = [
7896
+ color[0]
7897
+ ];
7839
7898
  };
7840
7899
  const funnelAdvancedPipeline = [
7841
7900
  initAdvancedVSeed_initAdvancedVSeed,
7901
+ default_defaultMeasures_defaultMeasures,
7902
+ defaultDimensions_defaultDimensions,
7903
+ defaultMeasureName_defaultMeasureName,
7842
7904
  encodingForFunnel,
7843
7905
  buildMeasures,
7844
- autoDimensions_autoDimensions,
7845
7906
  pivotAdapter([
7846
7907
  reshapeWithEncoding
7847
7908
  ], [
@@ -7954,11 +8015,9 @@
7954
8015
  Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
7955
8016
  Builder._specPipelineMap.funnel = funnelSpecPipeline;
7956
8017
  };
7957
- const encodingForHeatmap = (advancedVSeed, context)=>{
7958
- const { vseed } = context;
7959
- const { measures: vseedMeasures = [] } = vseed;
7960
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7961
- const dimensions = getBasicDimensions(vseed);
8018
+ const encodingForHeatmap = (advancedVSeed)=>{
8019
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8020
+ const measures = findAllMeasures(vseedMeasures);
7962
8021
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7963
8022
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7964
8023
  const encoding = {};
@@ -7971,10 +8030,6 @@
7971
8030
  encoding
7972
8031
  };
7973
8032
  };
7974
- const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
7975
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7976
- encoding.color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
7977
- };
7978
8033
  const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7979
8034
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
7980
8035
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -7987,12 +8042,6 @@
7987
8042
  encoding.row = [];
7988
8043
  encoding.column = [];
7989
8044
  };
7990
- const heatmap_generateMeasureEncoding = (measures, encoding)=>{
7991
- encoding.tooltip = measures.map((item)=>item.id);
7992
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7993
- if (color.length > 0) encoding.color = color;
7994
- return encoding;
7995
- };
7996
8045
  const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
7997
8046
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
7998
8047
  encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
@@ -8003,14 +8052,35 @@
8003
8052
  ];
8004
8053
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
8005
8054
  else encoding.y = dimensions.slice(0).map((item)=>item.id);
8006
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
8007
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
8055
+ if (0 === encoding.color.length) encoding.color = [
8056
+ MeasureName
8057
+ ];
8058
+ if (0 === encoding.detail.length) encoding.detail = [
8059
+ MeasureName
8060
+ ];
8061
+ };
8062
+ const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
8063
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
8064
+ const colorDims = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
8065
+ if (colorDims.length > 0) encoding.color = [
8066
+ colorDims[0]
8067
+ ];
8068
+ };
8069
+ const heatmap_generateMeasureEncoding = (measures, encoding)=>{
8070
+ encoding.tooltip = measures.map((item)=>item.id);
8071
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8072
+ if (color.length > 0) encoding.color = [
8073
+ color[0]
8074
+ ];
8075
+ return encoding;
8008
8076
  };
8009
8077
  const heatmapAdvancedPipeline = [
8010
8078
  initAdvancedVSeed_initAdvancedVSeed,
8079
+ default_defaultMeasures_defaultMeasures,
8080
+ defaultDimensions_defaultDimensions,
8081
+ defaultMeasureName_defaultMeasureName,
8011
8082
  encodingForHeatmap,
8012
8083
  buildMeasures,
8013
- autoDimensions_autoDimensions,
8014
8084
  pivotAdapter([
8015
8085
  reshapeWithEncoding
8016
8086
  ], [
@@ -8804,6 +8874,15 @@
8804
8874
  const updateSpec = (chartType, specPipe)=>{
8805
8875
  Builder._customSpecPipe[chartType] = specPipe;
8806
8876
  };
8877
+ const findAllDimensions = (dimensions = [])=>{
8878
+ if (!dimensions) return [];
8879
+ const result = [];
8880
+ preorderTraverse(dimensions, (node)=>{
8881
+ if (!('children' in node)) result.push(node);
8882
+ return false;
8883
+ });
8884
+ return result;
8885
+ };
8807
8886
  Object.freeze({
8808
8887
  status: "aborted"
8809
8888
  });
@@ -12130,11 +12209,6 @@
12130
12209
  const zDimension = schemas_object({
12131
12210
  id: schemas_string(),
12132
12211
  alias: schemas_string().optional(),
12133
- location: schemas_enum([
12134
- 'dimension',
12135
- 'rowDimension',
12136
- 'columnDimension'
12137
- ]).default('dimension'),
12138
12212
  encoding: schemas_enum([
12139
12213
  'xAxis',
12140
12214
  'yAxis',
@@ -12201,7 +12275,9 @@
12201
12275
  'size',
12202
12276
  'color',
12203
12277
  'label',
12204
- 'tooltip'
12278
+ 'tooltip',
12279
+ 'detail',
12280
+ 'column'
12205
12281
  ]).optional(),
12206
12282
  parentId: schemas_string().optional()
12207
12283
  });