@visactor/vseed 0.1.5 → 0.1.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.
Files changed (52) hide show
  1. package/dist/builder/builder/builder.d.ts +2 -2
  2. package/dist/index.cjs +347 -285
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +347 -285
  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/chart/pipes/default/defaultMeasureName.d.ts +2 -0
  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/column.d.ts +19 -0
  11. package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +17 -0
  12. package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
  13. package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +0 -2
  14. package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +3 -18
  15. package/dist/pipeline/advanced/table/pipes/reshape/index.d.ts +1 -0
  16. package/dist/pipeline/advanced/table/pipes/reshape/reshapePivotTable.d.ts +2 -0
  17. package/dist/types/advancedVSeed.d.ts +2 -0
  18. package/dist/types/chartType/area/area.d.ts +20 -3
  19. package/dist/types/chartType/area/zArea.d.ts +2 -0
  20. package/dist/types/chartType/areaPercent/areaPercent.d.ts +16 -0
  21. package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +2 -0
  22. package/dist/types/chartType/bar/zBar.d.ts +2 -0
  23. package/dist/types/chartType/barParallel/zBarParallel.d.ts +2 -0
  24. package/dist/types/chartType/barPercent/zBarPercent.d.ts +2 -0
  25. package/dist/types/chartType/column/column.d.ts +17 -1
  26. package/dist/types/chartType/column/zColumn.d.ts +2 -0
  27. package/dist/types/chartType/columnParallel/columnParallel.d.ts +17 -0
  28. package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +2 -0
  29. package/dist/types/chartType/columnPercent/columnPercent.d.ts +17 -1
  30. package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +2 -0
  31. package/dist/types/chartType/donut/zDonut.d.ts +2 -0
  32. package/dist/types/chartType/dualAxis/zDualAxis.d.ts +10 -0
  33. package/dist/types/chartType/funnel/zFunnel.d.ts +2 -0
  34. package/dist/types/chartType/heatmap/zHeatmap.d.ts +2 -0
  35. package/dist/types/chartType/line/line.d.ts +16 -0
  36. package/dist/types/chartType/line/zLine.d.ts +2 -0
  37. package/dist/types/chartType/pie/zPie.d.ts +2 -0
  38. package/dist/types/chartType/pivotTable/zPivotTable.d.ts +2 -0
  39. package/dist/types/chartType/radar/zRadar.d.ts +2 -0
  40. package/dist/types/chartType/rose/zRose.d.ts +2 -0
  41. package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +2 -0
  42. package/dist/types/chartType/scatter/zScatter.d.ts +10 -0
  43. package/dist/types/chartType/table/zTable.d.ts +2 -0
  44. package/dist/types/properties/measures/measures.d.ts +3 -1
  45. package/dist/types/properties/measures/zDualMeasures.d.ts +16 -0
  46. package/dist/types/properties/measures/zMeasures.d.ts +6 -0
  47. package/dist/types/properties/measures/zScatterMeasures.d.ts +16 -0
  48. package/dist/types/zVseed.d.ts +56 -0
  49. package/dist/umd/index.js +368 -306
  50. package/dist/umd/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/pipeline/advanced/chart/pipes/init/utils.d.ts +0 -2
package/dist/umd/index.js CHANGED
@@ -514,7 +514,8 @@
514
514
  void 0
515
515
  ].includes(key)).map((measure)=>({
516
516
  id: measure,
517
- alias: measure
517
+ alias: measure,
518
+ encoding: 'column'
518
519
  }));
519
520
  return result;
520
521
  };
@@ -598,7 +599,7 @@
598
599
  ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
599
600
  id: dim,
600
601
  alias: dim,
601
- location: 'dimension'
602
+ encoding: 'column'
602
603
  }));
603
604
  return result;
604
605
  };
@@ -1118,10 +1119,27 @@
1118
1119
  void 0
1119
1120
  ].includes(key)).map((measure)=>({
1120
1121
  id: measure,
1121
- alias: measure
1122
+ alias: measure,
1123
+ encoding: 'detail'
1122
1124
  }));
1123
1125
  return result;
1124
1126
  };
1127
+ const ORIGINAL_DATA = '__OriginalData__';
1128
+ const Separator = '-';
1129
+ const FoldMeasureName = '__MeaName__';
1130
+ const FoldMeasureId = '__MeaId__';
1131
+ const FoldMeasureValue = '__MeaValue__';
1132
+ const MeasureName = FoldMeasureName;
1133
+ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1134
+ const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1135
+ const FoldXMeasureValue = '__MeaXValue__';
1136
+ const FoldYMeasureValue = '__MeaYValue__';
1137
+ const XEncoding = '__Dim_X__';
1138
+ const YEncoding = '__Dim_Y__';
1139
+ const AngleEncoding = '__Dim_Angle__';
1140
+ const DetailEncoding = '__Dim_Detail__';
1141
+ const ColorEncoding = '__Dim_Color__';
1142
+ const ColorIdEncoding = '__Dim_ColorId__';
1125
1143
  const findAllDimensions = (dimensions = [])=>{
1126
1144
  if (!dimensions) return [];
1127
1145
  const result = [];
@@ -1138,15 +1156,21 @@
1138
1156
  const { vseed } = context;
1139
1157
  const { dimensions, dataset } = vseed;
1140
1158
  const measures = findAllMeasures(advancedVSeed.measures);
1159
+ const MeaName = {
1160
+ id: MeasureName,
1161
+ alias: intl.i18n`指标名称`
1162
+ };
1141
1163
  if (!dataset) throw new Error('dataset is required');
1142
1164
  if (0 === dataset.length) return result;
1143
1165
  if (dimensions) {
1144
1166
  const newDimensions = findAllDimensions(dimensions);
1167
+ if (!newDimensions.some((dim)=>dim.id === MeasureName)) newDimensions.push(MeaName);
1145
1168
  result.dimensions = newDimensions.map((item, index)=>{
1169
+ if ('row' === item.encoding || 'column' === item.encoding) return item;
1146
1170
  if ('rowDimension' === item.location || 'columnDimension' === item.location) return item;
1147
1171
  return {
1148
1172
  ...item,
1149
- location: index % 2 === 0 ? 'columnDimension' : 'rowDimension'
1173
+ encoding: index % 2 === 0 ? 'column' : 'row'
1150
1174
  };
1151
1175
  });
1152
1176
  return result;
@@ -1156,15 +1180,19 @@
1156
1180
  ...prev,
1157
1181
  ...cur
1158
1182
  }), {});
1159
- let i = 0;
1160
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1183
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1161
1184
  '',
1162
1185
  null,
1163
1186
  void 0
1164
- ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1187
+ ].includes(key) && !measures.some((measure)=>measure.id === key));
1188
+ result.dimensions = newDimensions.map((dim)=>({
1165
1189
  id: dim,
1166
- alias: dim,
1167
- location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension'
1190
+ alias: dim
1191
+ }));
1192
+ result.dimensions.push(MeaName);
1193
+ result.dimensions = result.dimensions.map((dim, index)=>({
1194
+ ...dim,
1195
+ encoding: index % 2 === 0 ? 'column' : 'row'
1168
1196
  }));
1169
1197
  return result;
1170
1198
  };
@@ -1195,11 +1223,110 @@
1195
1223
  };
1196
1224
  return result;
1197
1225
  };
1226
+ function chunk_AIG3BDKO_i(...e) {
1227
+ return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
1228
+ }
1229
+ var chunk_AIG3BDKO_n = (e, r)=>e.length >= r;
1230
+ function chunk_KI5X74E2_y(...t) {
1231
+ return chunk_WIMGWYZL_u(chunk_KI5X74E2_f, t);
1232
+ }
1233
+ function chunk_KI5X74E2_f(t, e) {
1234
+ if (!chunk_AIG3BDKO_i(e, 1)) return {
1235
+ ...t
1236
+ };
1237
+ if (!chunk_AIG3BDKO_i(e, 2)) {
1238
+ let { [e[0]]: r, ...m } = t;
1239
+ return m;
1240
+ }
1241
+ let o = {
1242
+ ...t
1243
+ };
1244
+ for (let r of e)delete o[r];
1245
+ return o;
1246
+ }
1247
+ const foldMeasures = (dataset, measures, options)=>{
1248
+ const { measureId, measureName, measureValue, colorMeasureId } = options || {};
1249
+ const foldInfo = {
1250
+ measureId,
1251
+ measureName,
1252
+ measureValue,
1253
+ colorRange: [
1254
+ 0,
1255
+ 1
1256
+ ],
1257
+ measureRange: [
1258
+ 0,
1259
+ 1
1260
+ ],
1261
+ foldMap: {}
1262
+ };
1263
+ const result = new Array(dataset.length * measures.length);
1264
+ let index = 0;
1265
+ const ids = measures.map((d)=>d.id);
1266
+ for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1267
+ const datum = chunk_KI5X74E2_y({
1268
+ ...dataset[i]
1269
+ }, ids);
1270
+ datum[ORIGINAL_DATA] = dataset[i];
1271
+ const measure = measures[j];
1272
+ const { id, alias } = measure;
1273
+ datum[id] = dataset[i][id];
1274
+ datum[measureId] = id;
1275
+ datum[measureName] = alias || id;
1276
+ datum[measureValue] = dataset[i][id];
1277
+ if (colorMeasureId) {
1278
+ const value = datum[ORIGINAL_DATA][colorMeasureId];
1279
+ datum[ColorEncoding] = value;
1280
+ datum[ColorIdEncoding] = colorMeasureId;
1281
+ foldInfo.colorRange = [
1282
+ Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1283
+ Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1284
+ ];
1285
+ }
1286
+ foldInfo.measureRange = [
1287
+ Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1288
+ Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1289
+ ];
1290
+ foldInfo.foldMap[id] = alias;
1291
+ result[index++] = datum;
1292
+ }
1293
+ return {
1294
+ dataset: result,
1295
+ foldInfo
1296
+ };
1297
+ };
1298
+ const reshapePivotTable = (advancedVSeed, context)=>{
1299
+ const result = {
1300
+ ...advancedVSeed
1301
+ };
1302
+ const { vseed } = context;
1303
+ const { dataset, chartType } = vseed;
1304
+ const { dimensions, measures } = advancedVSeed;
1305
+ const { dataset: newDatasets, foldInfo } = foldMeasures(dataset, findAllMeasures(measures), {
1306
+ measureId: FoldMeasureId,
1307
+ measureName: FoldMeasureName,
1308
+ measureValue: FoldMeasureValue
1309
+ });
1310
+ const datasetReshapeInfo = [
1311
+ {
1312
+ id: String(chartType),
1313
+ index: 0,
1314
+ foldInfo
1315
+ }
1316
+ ];
1317
+ return {
1318
+ ...result,
1319
+ dataset: newDatasets,
1320
+ datasetReshapeInfo: datasetReshapeInfo,
1321
+ dimensions,
1322
+ measures
1323
+ };
1324
+ };
1198
1325
  const pivotTableAdvancedPipeline = [
1199
1326
  initAdvancedVSeed,
1200
1327
  autoPivotMeasures,
1201
1328
  autoPivotDimensions,
1202
- records_records,
1329
+ reshapePivotTable,
1203
1330
  pivotTableConfig,
1204
1331
  theme_theme
1205
1332
  ];
@@ -1246,7 +1373,7 @@
1246
1373
  const pivotColumns = (spec, context)=>{
1247
1374
  const { advancedVSeed } = context;
1248
1375
  const dimensions = advancedVSeed.dimensions;
1249
- const columns = dimensions.filter((item)=>'columnDimension' === item['location']);
1376
+ const columns = dimensions.filter((item)=>'columnDimension' === item['location'] || 'column' === item['encoding']);
1250
1377
  return {
1251
1378
  ...spec,
1252
1379
  columns: columns.map((item)=>({
@@ -1259,7 +1386,7 @@
1259
1386
  const pivotRows = (spec, context)=>{
1260
1387
  const { advancedVSeed } = context;
1261
1388
  const dimensions = advancedVSeed.dimensions;
1262
- const rows = dimensions.filter((item)=>'rowDimension' === item['location']);
1389
+ const rows = dimensions.filter((item)=>'rowDimension' === item['location'] || 'row' === item['encoding']);
1263
1390
  return {
1264
1391
  ...spec,
1265
1392
  rows: rows.map((item)=>({
@@ -1271,25 +1398,31 @@
1271
1398
  };
1272
1399
  const pivotIndicators = (spec, context)=>{
1273
1400
  const { advancedVSeed } = context;
1274
- const { locale } = advancedVSeed;
1275
- const measures = advancedVSeed.measures;
1401
+ const { locale, measures, datasetReshapeInfo } = advancedVSeed;
1402
+ const { foldInfo } = datasetReshapeInfo[0];
1276
1403
  return {
1277
1404
  ...spec,
1278
1405
  indicatorsAsCol: true,
1279
1406
  indicatorTitle: intl.i18n`指标名称`,
1280
- indicators: measures.map((item)=>{
1281
- if (isMeasure(item)) return {
1407
+ hideIndicatorName: true,
1408
+ indicators: [
1409
+ {
1282
1410
  cellType: 'text',
1283
- indicatorKey: item.id,
1284
- title: item.alias || item.id,
1411
+ indicatorKey: foldInfo.measureValue,
1412
+ title: 'indicator',
1285
1413
  width: 'auto',
1286
- format: pivotIndicators_fieldFormat(item, locale)
1287
- };
1288
- return {};
1289
- })
1414
+ format: pivotIndicators_fieldFormat(measures, foldInfo, locale)
1415
+ }
1416
+ ]
1290
1417
  };
1291
1418
  };
1292
- const pivotIndicators_fieldFormat = (node, locale)=>(value)=>{
1419
+ const pivotIndicators_fieldFormat = (measures, foldInfo, locale)=>(value, col, row, table)=>{
1420
+ if (!chunk_6GTAPB47_e(col) || !chunk_6GTAPB47_e(row) || !table) return value;
1421
+ const datum = table.getCellOriginRecord(col, row);
1422
+ const { measureId: foldMeasureId } = foldInfo;
1423
+ const measureId = datum[0][foldMeasureId];
1424
+ const node = findMeasureById(measures, measureId);
1425
+ if (!node) return value;
1293
1426
  const { format = {}, autoFormat = true } = node;
1294
1427
  if (!chunk_VCYTMP4D_n(format)) {
1295
1428
  const formatter = createFormatter(format);
@@ -1445,94 +1578,81 @@
1445
1578
  locale: locale || 'zh-CN'
1446
1579
  };
1447
1580
  };
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`指标名称`
1581
+ const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
1582
+ const { vseed } = context;
1583
+ const { measures, dataset } = vseed;
1584
+ if (measures && measures.length > 0) return {
1585
+ ...advancedVSeed,
1586
+ measures
1469
1587
  };
1470
1588
  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
- }
1589
+ if (0 === dataset.length) return {
1590
+ ...advancedVSeed,
1591
+ measures: []
1592
+ };
1481
1593
  const top100dataset = dataset.slice(0, 100);
1482
1594
  const sample = top100dataset.reduce((prev, cur)=>({
1483
1595
  ...prev,
1484
1596
  ...cur
1485
1597
  }), {});
1486
- const basicDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1598
+ const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1487
1599
  '',
1488
1600
  null,
1489
1601
  void 0
1490
- ].includes(key)).map((dim)=>({
1491
- id: dim,
1492
- alias: dim,
1493
- location: 'dimension'
1602
+ ].includes(key)).map((measure)=>({
1603
+ id: measure,
1604
+ alias: measure
1494
1605
  }));
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;
1606
+ return {
1607
+ ...advancedVSeed,
1608
+ measures: defaultMeasures
1609
+ };
1502
1610
  };
1503
- const generateMeasuresByDataset = (dataset)=>{
1611
+ const defaultDimensions = (advancedVSeed, context)=>{
1612
+ const result = {
1613
+ ...advancedVSeed
1614
+ };
1615
+ const { vseed } = context;
1616
+ const { dimensions, dataset } = vseed;
1617
+ if (dimensions && dimensions.length > 0) return {
1618
+ ...result,
1619
+ dimensions
1620
+ };
1504
1621
  if (!dataset) throw new Error('dataset is required');
1505
- if (0 === dataset.length) return [];
1622
+ if (0 === dataset.length) return result;
1623
+ const measures = findAllMeasures(advancedVSeed.measures);
1506
1624
  const top100dataset = dataset.slice(0, 100);
1507
1625
  const sample = top100dataset.reduce((prev, cur)=>({
1508
1626
  ...prev,
1509
1627
  ...cur
1510
1628
  }), {});
1511
- const basicMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1629
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1512
1630
  '',
1513
1631
  null,
1514
1632
  void 0
1515
- ].includes(key)).map((measure)=>({
1516
- id: measure,
1517
- alias: measure
1633
+ ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1634
+ id: dim,
1635
+ alias: dim
1518
1636
  }));
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);
1637
+ return {
1638
+ ...result,
1639
+ dimensions: newDimensions
1640
+ };
1525
1641
  };
1526
- const isMeasureTreeWithParentId = (vseed)=>{
1527
- const { measures } = vseed;
1528
- if (!measures) return false;
1529
- return measures.some((measure)=>'parentId' in measure);
1642
+ const defaultMeasureName = (advancedVSeed)=>{
1643
+ const result = {
1644
+ ...advancedVSeed
1645
+ };
1646
+ const MeaName = {
1647
+ id: MeasureName,
1648
+ alias: intl.i18n`指标名称`
1649
+ };
1650
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1651
+ return result;
1530
1652
  };
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);
1653
+ const encodingForLine = (advancedVSeed)=>{
1654
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1655
+ const measures = findAllMeasures(vseedMeasures);
1536
1656
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1537
1657
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
1538
1658
  const encoding = {};
@@ -1545,10 +1665,6 @@
1545
1665
  encoding
1546
1666
  };
1547
1667
  };
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
1668
  const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1553
1669
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1554
1670
  encoding.x = uniqueDimIds.slice(0, 1);
@@ -1559,20 +1675,36 @@
1559
1675
  encoding.row = [];
1560
1676
  encoding.column = [];
1561
1677
  };
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
1678
  const generateDimensionEncoding = (dimensions, encoding)=>{
1569
1679
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1570
1680
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1571
- encoding.detail = [];
1681
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1572
1682
  if (0 === encoding.x.length) encoding.x = [
1573
1683
  dimensions[0].id
1574
1684
  ];
1575
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
1685
+ if (0 === encoding.color.length) encoding.color = [
1686
+ MeasureName
1687
+ ];
1688
+ };
1689
+ const generateDefaultMeasureEncoding = (measures, encoding)=>{
1690
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
1691
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1692
+ };
1693
+ const generateMeasureEncoding = (measures, encoding)=>{
1694
+ encoding.tooltip = measures.map((item)=>item.id);
1695
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1696
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1697
+ if (color.length > 0) encoding.color = color;
1698
+ };
1699
+ const isMeasureTreeWithChildren = (vseed)=>{
1700
+ const { measures } = vseed;
1701
+ if (!measures) return false;
1702
+ return measures.some((measure)=>'children' in measure);
1703
+ };
1704
+ const isMeasureTreeWithParentId = (vseed)=>{
1705
+ const { measures } = vseed;
1706
+ if (!measures) return false;
1707
+ return measures.some((measure)=>'parentId' in measure);
1576
1708
  };
1577
1709
  const measureDepth = (measures = [])=>{
1578
1710
  if (!measures) return 0;
@@ -1632,9 +1764,7 @@
1632
1764
  advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
1633
1765
  return advancedVSeed;
1634
1766
  }
1635
- const basicMeasures = getBasicMeasures(vseed);
1636
- if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
1637
- else advancedVSeed.measures = basicMeasures;
1767
+ if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(advancedVSeed.measures);
1638
1768
  return advancedVSeed;
1639
1769
  };
1640
1770
  const generateMeasuresByParentId = (measures)=>{
@@ -1665,45 +1795,6 @@
1665
1795
  }
1666
1796
  ];
1667
1797
  };
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
1798
  const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
1708
1799
  const { vseed } = context;
1709
1800
  const usePivotChart = isPivotChart(vseed);
@@ -1724,78 +1815,6 @@
1724
1815
  });
1725
1816
  };
1726
1817
  }
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
- };
1798
- };
1799
1818
  const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
1800
1819
  const { foldMeasureId, separator, colorItemAsId } = options;
1801
1820
  const unfoldInfo = {
@@ -1890,7 +1909,9 @@
1890
1909
  const { dimensions, measures, encoding } = advancedVSeed;
1891
1910
  if (!measures || !dimensions || !dataset || !encoding) return result;
1892
1911
  if (0 === measures.length) throw new Error('measures can not be empty');
1912
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1893
1913
  const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(findAllMeasures(measures), (item)=>item.id), encoding, {
1914
+ colorItemAsId: hasEncoding,
1894
1915
  colorMeasureId: getColorMeasureId(advancedVSeed)
1895
1916
  });
1896
1917
  return {
@@ -1921,6 +1942,7 @@
1921
1942
  if (measures) measures.forEach((measure)=>{
1922
1943
  if (measure.children && measure.children.length > 0) measureGroups.push(measure);
1923
1944
  });
1945
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1924
1946
  const datasets = [];
1925
1947
  const datasetReshapeInfo = [];
1926
1948
  measureGroups.forEach((measureGroup, index)=>{
@@ -1928,6 +1950,7 @@
1928
1950
  if (!measures) return;
1929
1951
  const groupId = measureGroup.id;
1930
1952
  const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(measures, (item)=>item.id), encoding, {
1953
+ colorItemAsId: hasEncoding,
1931
1954
  foldMeasureValue: `${FoldMeasureValue}${groupId}`,
1932
1955
  colorMeasureId: getColorMeasureId(advancedVSeed)
1933
1956
  });
@@ -2145,9 +2168,11 @@
2145
2168
  };
2146
2169
  const lineAdvancedPipeline = [
2147
2170
  initAdvancedVSeed_initAdvancedVSeed,
2171
+ defaultMeasures_defaultMeasures,
2172
+ defaultDimensions,
2173
+ defaultMeasureName,
2148
2174
  encodingForLine,
2149
2175
  buildMeasures,
2150
- autoDimensions_autoDimensions,
2151
2176
  pivotAdapter([
2152
2177
  reshapeWithEncoding
2153
2178
  ], [
@@ -3762,7 +3787,7 @@
3762
3787
  const { advancedVSeed } = context;
3763
3788
  const dimensions = advancedVSeed.dimensions;
3764
3789
  if (!dimensions) return result;
3765
- const rowDimensions = dimensions.filter((dim)=>'rowDimension' === dim.location);
3790
+ const rowDimensions = dimensions.filter((dim)=>'rowDimension' === dim.location || 'row' === dim.encoding);
3766
3791
  const rows = rowDimensions.map((dim)=>({
3767
3792
  dimensionKey: dim.id,
3768
3793
  title: dim.alias || dim.id
@@ -3779,7 +3804,7 @@
3779
3804
  const { advancedVSeed } = context;
3780
3805
  const dimensions = advancedVSeed.dimensions;
3781
3806
  if (!dimensions) return result;
3782
- const columnDimensions = dimensions.filter((dim)=>'columnDimension' === dim.location);
3807
+ const columnDimensions = dimensions.filter((dim)=>'columnDimension' === dim.location || 'column' === dim.encoding);
3783
3808
  const columns = columnDimensions.map((dim)=>({
3784
3809
  dimensionKey: dim.id,
3785
3810
  title: dim.alias || dim.id
@@ -4052,11 +4077,9 @@
4052
4077
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
4053
4078
  Builder._specPipelineMap.line = lineSpecPipeline;
4054
4079
  };
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);
4080
+ const encodingForColumn = (advancedVSeed)=>{
4081
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4082
+ const measures = findAllMeasures(vseedMeasures);
4060
4083
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4061
4084
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4062
4085
  const encoding = {};
@@ -4069,10 +4092,6 @@
4069
4092
  encoding
4070
4093
  };
4071
4094
  };
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
4095
  const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4077
4096
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
4078
4097
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
@@ -4084,13 +4103,6 @@
4084
4103
  encoding.row = [];
4085
4104
  encoding.column = [];
4086
4105
  };
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
4106
  const column_generateDimensionEncoding = (dimensions, encoding)=>{
4095
4107
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
4096
4108
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -4098,14 +4110,28 @@
4098
4110
  if (0 === encoding.x.length) encoding.x = [
4099
4111
  dimensions[0].id
4100
4112
  ];
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);
4113
+ if (0 === encoding.color.length) encoding.color = [
4114
+ MeasureName
4115
+ ];
4116
+ };
4117
+ const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
4118
+ encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4119
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4120
+ };
4121
+ const column_generateMeasureEncoding = (measures, encoding)=>{
4122
+ encoding.tooltip = measures.map((item)=>item.id);
4123
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4124
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4125
+ if (color.length > 0) encoding.color = color;
4126
+ return encoding;
4103
4127
  };
4104
4128
  const columnAdvancedPipeline = [
4105
4129
  initAdvancedVSeed_initAdvancedVSeed,
4130
+ defaultMeasures_defaultMeasures,
4131
+ defaultDimensions,
4132
+ defaultMeasureName,
4106
4133
  encodingForColumn,
4107
4134
  buildMeasures,
4108
- autoDimensions_autoDimensions,
4109
4135
  pivotAdapter([
4110
4136
  reshapeWithEncoding
4111
4137
  ], [
@@ -4465,9 +4491,11 @@
4465
4491
  };
4466
4492
  const columnParallelAdvancedPipeline = [
4467
4493
  initAdvancedVSeed_initAdvancedVSeed,
4494
+ defaultMeasures_defaultMeasures,
4495
+ defaultDimensions,
4496
+ defaultMeasureName,
4468
4497
  encodingForColumn,
4469
4498
  buildMeasures,
4470
- autoDimensions_autoDimensions,
4471
4499
  pivotAdapter([
4472
4500
  reshapeWithEncoding
4473
4501
  ], [
@@ -4562,9 +4590,11 @@
4562
4590
  };
4563
4591
  const columnPercentAdvancedPipeline = [
4564
4592
  initAdvancedVSeed_initAdvancedVSeed,
4593
+ defaultMeasures_defaultMeasures,
4594
+ defaultDimensions,
4595
+ defaultMeasureName,
4565
4596
  encodingForColumn,
4566
4597
  buildMeasures,
4567
- autoDimensions_autoDimensions,
4568
4598
  pivotAdapter([
4569
4599
  reshapeWithEncoding
4570
4600
  ], [
@@ -4641,11 +4671,9 @@
4641
4671
  Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
4642
4672
  Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
4643
4673
  };
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);
4674
+ const encodingForBar = (advancedVSeed)=>{
4675
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4676
+ const measures = findAllMeasures(vseedMeasures);
4649
4677
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4650
4678
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4651
4679
  const encoding = {};
@@ -4687,7 +4715,9 @@
4687
4715
  if (0 === encoding.y.length) encoding.y = [
4688
4716
  dimensions[0].id
4689
4717
  ];
4690
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4718
+ if (0 === encoding.color.length) encoding.color = [
4719
+ MeasureName
4720
+ ];
4691
4721
  if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4692
4722
  };
4693
4723
  const sortYBandAxis = (advancedVSeed, context)=>{
@@ -4708,9 +4738,11 @@
4708
4738
  };
4709
4739
  const barAdvancedPipeline = [
4710
4740
  initAdvancedVSeed_initAdvancedVSeed,
4741
+ defaultMeasures_defaultMeasures,
4742
+ defaultDimensions,
4743
+ defaultMeasureName,
4711
4744
  encodingForBar,
4712
4745
  buildMeasures,
4713
- autoDimensions_autoDimensions,
4714
4746
  pivotAdapter([
4715
4747
  reshapeWithEncoding
4716
4748
  ], [
@@ -5061,9 +5093,11 @@
5061
5093
  };
5062
5094
  const barParallelAdvancedPipeline = [
5063
5095
  initAdvancedVSeed_initAdvancedVSeed,
5064
- buildMeasures,
5065
- autoDimensions_autoDimensions,
5096
+ defaultMeasures_defaultMeasures,
5097
+ defaultDimensions,
5098
+ defaultMeasureName,
5066
5099
  encodingForBar,
5100
+ buildMeasures,
5067
5101
  pivotAdapter([
5068
5102
  reshapeWithEncoding
5069
5103
  ], [
@@ -5157,9 +5191,11 @@
5157
5191
  };
5158
5192
  const barPercentAdvancedPipeline = [
5159
5193
  initAdvancedVSeed_initAdvancedVSeed,
5160
- buildMeasures,
5161
- autoDimensions_autoDimensions,
5194
+ defaultMeasures_defaultMeasures,
5195
+ defaultDimensions,
5196
+ defaultMeasureName,
5162
5197
  encodingForBar,
5198
+ buildMeasures,
5163
5199
  pivotAdapter([
5164
5200
  reshapeWithEncoding
5165
5201
  ], [
@@ -5228,9 +5264,11 @@
5228
5264
  };
5229
5265
  const areaAdvancedPipeline = [
5230
5266
  initAdvancedVSeed_initAdvancedVSeed,
5267
+ defaultMeasures_defaultMeasures,
5268
+ defaultDimensions,
5269
+ defaultMeasureName,
5231
5270
  encodingForLine,
5232
5271
  buildMeasures,
5233
- autoDimensions_autoDimensions,
5234
5272
  pivotAdapter([
5235
5273
  reshapeWithEncoding
5236
5274
  ], [
@@ -5386,9 +5424,11 @@
5386
5424
  };
5387
5425
  const areaPercentAdvancedPipeline = [
5388
5426
  initAdvancedVSeed_initAdvancedVSeed,
5427
+ defaultMeasures_defaultMeasures,
5428
+ defaultDimensions,
5429
+ defaultMeasureName,
5389
5430
  encodingForLine,
5390
5431
  buildMeasures,
5391
- autoDimensions_autoDimensions,
5392
5432
  pivotAdapter([
5393
5433
  reshapeWithEncoding
5394
5434
  ], [
@@ -5462,11 +5502,9 @@
5462
5502
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5463
5503
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5464
5504
  };
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);
5505
+ const encodingForScatter = (advancedVSeed)=>{
5506
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5507
+ const measures = findAllMeasures(vseedMeasures);
5470
5508
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5471
5509
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5472
5510
  const encoding = {};
@@ -5502,7 +5540,9 @@
5502
5540
  const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5503
5541
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5504
5542
  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);
5543
+ if (0 === encoding.color.length) encoding.color = [
5544
+ MeasureName
5545
+ ];
5506
5546
  if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5507
5547
  };
5508
5548
  const buildMeasuresForScatter = (advancedVSeed, context)=>{
@@ -5515,8 +5555,7 @@
5515
5555
  advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
5516
5556
  return advancedVSeed;
5517
5557
  }
5518
- const basicMeasures = getBasicMeasures(vseed);
5519
- const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(basicMeasures);
5558
+ const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
5520
5559
  advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
5521
5560
  return advancedVSeed;
5522
5561
  };
@@ -5735,9 +5774,11 @@
5735
5774
  };
5736
5775
  const scatterAdvancedPipeline = [
5737
5776
  initAdvancedVSeed_initAdvancedVSeed,
5777
+ defaultMeasures_defaultMeasures,
5778
+ defaultDimensions,
5779
+ defaultMeasureName,
5738
5780
  encodingForScatter,
5739
5781
  buildMeasuresForScatter,
5740
- autoDimensions_autoDimensions,
5741
5782
  pivotAdapter([
5742
5783
  reshapeWithScatterEncoding
5743
5784
  ], [
@@ -5882,11 +5923,9 @@
5882
5923
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
5883
5924
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
5884
5925
  };
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);
5926
+ const encodingForDualAxis = (advancedVSeed)=>{
5927
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5928
+ const measures = findAllMeasures(vseedMeasures);
5890
5929
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5891
5930
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5892
5931
  const encoding = {};
@@ -5928,7 +5967,9 @@
5928
5967
  if (0 === encoding.x.length) encoding.x = [
5929
5968
  dimensions[0].id
5930
5969
  ];
5931
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5970
+ if (0 === encoding.color.length) encoding.color = [
5971
+ MeasureName
5972
+ ];
5932
5973
  if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5933
5974
  };
5934
5975
  const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
@@ -5941,8 +5982,7 @@
5941
5982
  advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
5942
5983
  return advancedVSeed;
5943
5984
  }
5944
- const basicMeasures = getBasicMeasures(vseed);
5945
- const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(basicMeasures);
5985
+ const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(advancedVSeed.measures || []);
5946
5986
  advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
5947
5987
  return advancedVSeed;
5948
5988
  };
@@ -6046,8 +6086,10 @@
6046
6086
  const datasets = [];
6047
6087
  const primaryMeasures = measures[0];
6048
6088
  const secondaryMeasures = measures[1] || [];
6089
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
6049
6090
  if (primaryMeasures && primaryMeasures.children) {
6050
6091
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
6092
+ colorItemAsId: hasEncoding,
6051
6093
  foldMeasureValue: FoldPrimaryMeasureValue,
6052
6094
  colorMeasureId: getColorMeasureId(advancedVSeed)
6053
6095
  });
@@ -6094,6 +6136,7 @@
6094
6136
  const { dataset } = vseed;
6095
6137
  const { dimensions, measures, encoding, chartType } = advancedVSeed;
6096
6138
  if (!measures || !dimensions || !dataset || !encoding) return result;
6139
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
6097
6140
  const datasetList = [];
6098
6141
  const datasetReshapeInfo = [];
6099
6142
  const measureGroups = [];
@@ -6112,6 +6155,7 @@
6112
6155
  const secondaryMeasures = measures[1] || [];
6113
6156
  if (primaryMeasures && primaryMeasures.children) {
6114
6157
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
6158
+ colorItemAsId: hasEncoding,
6115
6159
  foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
6116
6160
  colorMeasureId: getColorMeasureId(advancedVSeed)
6117
6161
  });
@@ -6180,9 +6224,11 @@
6180
6224
  };
6181
6225
  const dualAxisAdvancedPipeline = [
6182
6226
  initAdvancedVSeed_initAdvancedVSeed,
6227
+ defaultMeasures_defaultMeasures,
6228
+ defaultDimensions,
6229
+ defaultMeasureName,
6183
6230
  encodingForDualAxis,
6184
6231
  buildMeasuresForDualAxis,
6185
- autoDimensions_autoDimensions,
6186
6232
  pivotAdapter([
6187
6233
  reshapeWithDualEncoding
6188
6234
  ], [
@@ -7015,11 +7061,9 @@
7015
7061
  Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
7016
7062
  Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
7017
7063
  };
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);
7064
+ const encodingForPie = (advancedVSeed)=>{
7065
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7066
+ const measures = findAllMeasures(vseedMeasures);
7023
7067
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7024
7068
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7025
7069
  const encoding = {};
@@ -7054,14 +7098,18 @@
7054
7098
  const pie_generateDimensionEncoding = (dimensions, encoding)=>{
7055
7099
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7056
7100
  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);
7101
+ if (0 === encoding.color.length) encoding.color = [
7102
+ MeasureName
7103
+ ];
7058
7104
  if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
7059
7105
  };
7060
7106
  const pieAdvancedPipeline = [
7061
7107
  initAdvancedVSeed_initAdvancedVSeed,
7108
+ defaultMeasures_defaultMeasures,
7109
+ defaultDimensions,
7110
+ defaultMeasureName,
7062
7111
  encodingForPie,
7063
7112
  buildMeasures,
7064
- autoDimensions_autoDimensions,
7065
7113
  pivotAdapter([
7066
7114
  reshapeWithEncoding
7067
7115
  ], [
@@ -7177,8 +7225,10 @@
7177
7225
  };
7178
7226
  const donutAdvancedPipeline = [
7179
7227
  initAdvancedVSeed_initAdvancedVSeed,
7228
+ defaultMeasures_defaultMeasures,
7229
+ defaultDimensions,
7230
+ defaultMeasureName,
7180
7231
  buildMeasures,
7181
- autoDimensions_autoDimensions,
7182
7232
  encodingForPie,
7183
7233
  pivotAdapter([
7184
7234
  reshapeWithEncoding
@@ -7255,11 +7305,9 @@
7255
7305
  Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
7256
7306
  Builder._specPipelineMap.donut = donutSpecPipeline;
7257
7307
  };
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);
7308
+ const encodingForRose = (advancedVSeed)=>{
7309
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7310
+ const measures = findAllMeasures(vseedMeasures);
7263
7311
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7264
7312
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7265
7313
  const encoding = {};
@@ -7300,14 +7348,18 @@
7300
7348
  if (0 === encoding.angle.length) encoding.angle = [
7301
7349
  dimensions[0].id
7302
7350
  ];
7303
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7351
+ if (0 === encoding.color.length) encoding.color = [
7352
+ MeasureName
7353
+ ];
7304
7354
  if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7305
7355
  };
7306
7356
  const roseAdvancedPipeline = [
7307
7357
  initAdvancedVSeed_initAdvancedVSeed,
7358
+ defaultMeasures_defaultMeasures,
7359
+ defaultDimensions,
7360
+ defaultMeasureName,
7308
7361
  encodingForRose,
7309
7362
  buildMeasures,
7310
- autoDimensions_autoDimensions,
7311
7363
  pivotAdapter([
7312
7364
  reshapeWithEncoding
7313
7365
  ], [
@@ -7503,9 +7555,11 @@
7503
7555
  };
7504
7556
  const roseParallelAdvancedPipeline = [
7505
7557
  initAdvancedVSeed_initAdvancedVSeed,
7558
+ defaultMeasures_defaultMeasures,
7559
+ defaultDimensions,
7560
+ defaultMeasureName,
7506
7561
  encodingForRose,
7507
7562
  buildMeasures,
7508
- autoDimensions_autoDimensions,
7509
7563
  pivotAdapter([
7510
7564
  reshapeWithEncoding
7511
7565
  ], [
@@ -7611,11 +7665,9 @@
7611
7665
  Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
7612
7666
  Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
7613
7667
  };
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);
7668
+ const encodingForRadar = (advancedVSeed)=>{
7669
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7670
+ const measures = findAllMeasures(vseedMeasures);
7619
7671
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7620
7672
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7621
7673
  const encoding = {};
@@ -7655,13 +7707,17 @@
7655
7707
  if (0 === encoding.angle.length) encoding.angle = [
7656
7708
  dimensions[0].id
7657
7709
  ];
7658
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7710
+ if (0 === encoding.color.length) encoding.color = [
7711
+ MeasureName
7712
+ ];
7659
7713
  };
7660
7714
  const radarAdvancedPipeline = [
7661
7715
  initAdvancedVSeed_initAdvancedVSeed,
7716
+ defaultMeasures_defaultMeasures,
7717
+ defaultDimensions,
7718
+ defaultMeasureName,
7662
7719
  encodingForRadar,
7663
7720
  buildMeasures,
7664
- autoDimensions_autoDimensions,
7665
7721
  pivotAdapter([
7666
7722
  reshapeWithEncoding
7667
7723
  ], [
@@ -7795,11 +7851,9 @@
7795
7851
  Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
7796
7852
  Builder._specPipelineMap.radar = radarSpecPipeline;
7797
7853
  };
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);
7854
+ const encodingForFunnel = (advancedVSeed)=>{
7855
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7856
+ const measures = findAllMeasures(vseedMeasures);
7803
7857
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7804
7858
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7805
7859
  const encoding = {};
@@ -7834,14 +7888,18 @@
7834
7888
  const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7835
7889
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7836
7890
  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);
7891
+ if (0 === encoding.color.length) encoding.color = [
7892
+ MeasureName
7893
+ ];
7838
7894
  if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
7839
7895
  };
7840
7896
  const funnelAdvancedPipeline = [
7841
7897
  initAdvancedVSeed_initAdvancedVSeed,
7898
+ defaultMeasures_defaultMeasures,
7899
+ defaultDimensions,
7900
+ defaultMeasureName,
7842
7901
  encodingForFunnel,
7843
7902
  buildMeasures,
7844
- autoDimensions_autoDimensions,
7845
7903
  pivotAdapter([
7846
7904
  reshapeWithEncoding
7847
7905
  ], [
@@ -7954,11 +8012,9 @@
7954
8012
  Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
7955
8013
  Builder._specPipelineMap.funnel = funnelSpecPipeline;
7956
8014
  };
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);
8015
+ const encodingForHeatmap = (advancedVSeed)=>{
8016
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8017
+ const measures = findAllMeasures(vseedMeasures);
7962
8018
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7963
8019
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7964
8020
  const encoding = {};
@@ -8003,14 +8059,18 @@
8003
8059
  ];
8004
8060
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
8005
8061
  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);
8062
+ if (0 === encoding.color.length) encoding.color = [
8063
+ MeasureName
8064
+ ];
8007
8065
  if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
8008
8066
  };
8009
8067
  const heatmapAdvancedPipeline = [
8010
8068
  initAdvancedVSeed_initAdvancedVSeed,
8069
+ defaultMeasures_defaultMeasures,
8070
+ defaultDimensions,
8071
+ defaultMeasureName,
8011
8072
  encodingForHeatmap,
8012
8073
  buildMeasures,
8013
- autoDimensions_autoDimensions,
8014
8074
  pivotAdapter([
8015
8075
  reshapeWithEncoding
8016
8076
  ], [
@@ -12201,7 +12261,9 @@
12201
12261
  'size',
12202
12262
  'color',
12203
12263
  'label',
12204
- 'tooltip'
12264
+ 'tooltip',
12265
+ 'detail',
12266
+ 'column'
12205
12267
  ]).optional(),
12206
12268
  parentId: schemas_string().optional()
12207
12269
  });