@visactor/vseed 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder/builder/builder.d.ts +4 -28
- package/dist/dataReshape/dataReshapeByEncoding.d.ts +1 -0
- package/dist/dataReshape/foldMeasures.d.ts +5 -4
- package/dist/index.cjs +335 -250
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +335 -247
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +0 -3
- package/dist/pipeline/advanced/chart/pipes/{init/autoMeasures.d.ts → measures/buildMeasures.d.ts} +1 -1
- package/dist/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/measures/index.d.ts +3 -0
- package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +28 -0
- package/dist/pipeline/spec/chart/pipes/color/colorAdapter.d.ts +2 -1
- package/dist/pipeline/spec/chart/pipes/color/index.d.ts +2 -1
- package/dist/pipeline/spec/chart/pipes/color/linearColorForDualAxis.d.ts +2 -0
- package/dist/pipeline/utils/chatType.d.ts +1 -1
- package/dist/types/advancedVSeed.d.ts +13 -14
- package/dist/types/chartType/area/zArea.d.ts +13 -0
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +13 -0
- package/dist/types/chartType/bar/zBar.d.ts +13 -0
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +13 -0
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +13 -0
- package/dist/types/chartType/column/zColumn.d.ts +13 -0
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +13 -0
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +13 -0
- package/dist/types/chartType/donut/zDonut.d.ts +13 -0
- package/dist/types/chartType/dualAxis/zDualAxis.d.ts +65 -0
- package/dist/types/chartType/funnel/zFunnel.d.ts +13 -0
- package/dist/types/chartType/heatmap/zHeatmap.d.ts +13 -0
- package/dist/types/chartType/line/line.d.ts +0 -1
- package/dist/types/chartType/line/zLine.d.ts +13 -0
- package/dist/types/chartType/pie/zPie.d.ts +13 -0
- package/dist/types/chartType/pivotTable/zPivotTable.d.ts +13 -0
- package/dist/types/chartType/radar/zRadar.d.ts +13 -0
- package/dist/types/chartType/rose/zRose.d.ts +13 -0
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +13 -0
- package/dist/types/chartType/scatter/zScatter.d.ts +65 -0
- package/dist/types/chartType/table/zTable.d.ts +13 -0
- package/dist/types/properties/encoding/encoding.d.ts +0 -1
- package/dist/types/properties/encoding/index.d.ts +2 -2
- package/dist/types/properties/encoding/zEncoding.d.ts +0 -14
- package/dist/types/properties/measures/dualMeasures.d.ts +1 -0
- package/dist/types/properties/measures/measures.d.ts +19 -0
- package/dist/types/properties/measures/scatterMeasures.d.ts +1 -0
- package/dist/types/properties/measures/zDualMeasures.d.ts +104 -0
- package/dist/types/properties/measures/zMeasures.d.ts +39 -0
- package/dist/types/properties/measures/zScatterMeasures.d.ts +104 -0
- package/dist/types/zVseed.d.ts +364 -0
- package/dist/umd/index.js +335 -248
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/pipeline/advanced/chart/pipes/init/autoDualMeasures.d.ts +0 -2
- package/dist/pipeline/advanced/chart/pipes/init/autoScatterMeasures.d.ts +0 -2
package/dist/index.cjs
CHANGED
@@ -189,9 +189,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
189
189
|
zBackgroundColor: ()=>zBackgroundColor,
|
190
190
|
registerBarParallel: ()=>registerBarParallel,
|
191
191
|
registerRadar: ()=>registerRadar,
|
192
|
-
zEncodings: ()=>zEncodings,
|
193
|
-
pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
|
194
192
|
zLocale: ()=>zLocale,
|
193
|
+
pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
|
195
194
|
zMeasure: ()=>zMeasure,
|
196
195
|
FoldXMeasureValue: ()=>FoldXMeasureValue,
|
197
196
|
dualAxisAdvancedPipeline: ()=>dualAxisAdvancedPipeline,
|
@@ -1272,6 +1271,39 @@ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
|
|
1272
1271
|
locale: locale || 'zh-CN'
|
1273
1272
|
};
|
1274
1273
|
};
|
1274
|
+
const getBasicMeasures = (vseed)=>{
|
1275
|
+
const { dataset, measures } = vseed;
|
1276
|
+
if (!measures || 0 === measures.length) return generateMeasuresByDataset(dataset);
|
1277
|
+
return measures;
|
1278
|
+
};
|
1279
|
+
const generateMeasuresByDataset = (dataset)=>{
|
1280
|
+
if (!dataset) throw new Error('dataset is required');
|
1281
|
+
if (0 === dataset.length) return [];
|
1282
|
+
const top100dataset = dataset.slice(0, 100);
|
1283
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
1284
|
+
...prev,
|
1285
|
+
...cur
|
1286
|
+
}), {});
|
1287
|
+
const basicMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
1288
|
+
'',
|
1289
|
+
null,
|
1290
|
+
void 0
|
1291
|
+
].includes(key)).map((measure)=>({
|
1292
|
+
id: measure,
|
1293
|
+
alias: measure
|
1294
|
+
}));
|
1295
|
+
return basicMeasures;
|
1296
|
+
};
|
1297
|
+
const isMeasureTreeWithChildren = (vseed)=>{
|
1298
|
+
const { measures } = vseed;
|
1299
|
+
if (!measures) return false;
|
1300
|
+
return measures.some((measure)=>'children' in measure);
|
1301
|
+
};
|
1302
|
+
const isMeasureTreeWithParentId = (vseed)=>{
|
1303
|
+
const { measures } = vseed;
|
1304
|
+
if (!measures) return false;
|
1305
|
+
return measures.some((measure)=>'parentId' in measure);
|
1306
|
+
};
|
1275
1307
|
const measureDepth = (measures = [])=>{
|
1276
1308
|
if (!measures) return 0;
|
1277
1309
|
let depth = 1;
|
@@ -1290,23 +1322,26 @@ const isVTable = (vseed)=>[
|
|
1290
1322
|
const isVChart = (vseed)=>!isVTable(vseed);
|
1291
1323
|
const isPivotChart = (vseed)=>{
|
1292
1324
|
if (isVTable(vseed)) return false;
|
1325
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
1326
|
+
const parentIds = vseed.measures?.map((measure)=>measure.parentId);
|
1327
|
+
return parentIds && parentIds.length > 1;
|
1328
|
+
}
|
1293
1329
|
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1294
1330
|
const { dimensions = [] } = vseed;
|
1295
1331
|
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
|
1296
1332
|
if (hasRowOrColumnDimension) return true;
|
1297
1333
|
if ('scatter' === vseed.chartType) {
|
1298
|
-
if (vseed
|
1334
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1299
1335
|
const depth = measureDepth(vseed.measures);
|
1300
|
-
|
1301
|
-
return false;
|
1336
|
+
return 3 === depth;
|
1302
1337
|
}
|
1303
1338
|
if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) return true;
|
1339
|
+
return false;
|
1304
1340
|
}
|
1305
1341
|
if ('dualAxis' === vseed.chartType) {
|
1306
|
-
if (vseed
|
1342
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1307
1343
|
const depth = measureDepth(vseed.measures);
|
1308
|
-
|
1309
|
-
return false;
|
1344
|
+
return 3 === depth;
|
1310
1345
|
}
|
1311
1346
|
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
1312
1347
|
}
|
@@ -1317,77 +1352,49 @@ const isPivotChart = (vseed)=>{
|
|
1317
1352
|
const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
|
1318
1353
|
return hasRowOrColumnDimension || hasMeasureGroup;
|
1319
1354
|
};
|
1320
|
-
const
|
1321
|
-
const result = {
|
1322
|
-
...advancedVSeed
|
1323
|
-
};
|
1355
|
+
const buildMeasures = (advancedVSeed, context)=>{
|
1324
1356
|
const { vseed } = context;
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
if (isPivotChart(vseed)) return autoMeasureGroup(advancedVSeed, context);
|
1329
|
-
if (measures) {
|
1330
|
-
result.measures = measures;
|
1331
|
-
return result;
|
1332
|
-
}
|
1333
|
-
const top100dataset = dataset.slice(0, 100);
|
1334
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
1335
|
-
...prev,
|
1336
|
-
...cur
|
1337
|
-
}), {});
|
1338
|
-
result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
1339
|
-
'',
|
1340
|
-
null,
|
1341
|
-
void 0
|
1342
|
-
].includes(key)).map((measure)=>({
|
1343
|
-
id: measure,
|
1344
|
-
alias: measure
|
1345
|
-
}));
|
1346
|
-
return result;
|
1347
|
-
};
|
1348
|
-
const autoMeasureGroup = (advancedVSeed, context)=>{
|
1349
|
-
const { vseed } = context;
|
1350
|
-
const { measures } = vseed;
|
1351
|
-
const hasMeasureGroup = measures?.some((measure)=>measure.children);
|
1352
|
-
if (!measures) return advancedVSeed;
|
1353
|
-
if (!hasMeasureGroup) {
|
1354
|
-
const newMeasures = [
|
1355
|
-
{
|
1356
|
-
id: 'measureGroup',
|
1357
|
-
alias: 'measureGroup',
|
1358
|
-
children: measures
|
1359
|
-
}
|
1360
|
-
];
|
1361
|
-
return {
|
1362
|
-
...advancedVSeed,
|
1363
|
-
measures: newMeasures
|
1364
|
-
};
|
1357
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1358
|
+
advancedVSeed.measures = vseed.measures;
|
1359
|
+
return advancedVSeed;
|
1365
1360
|
}
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
if (currentGroup.children?.length) {
|
1370
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1371
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1372
|
-
measureGroups.push(currentGroup);
|
1373
|
-
currentGroup = createEmptyMeasureGroup();
|
1374
|
-
}
|
1375
|
-
measureGroups.push(measure);
|
1376
|
-
} else currentGroup.children?.push(measure);
|
1377
|
-
if (currentGroup.children?.length) {
|
1378
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1379
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1380
|
-
measureGroups.push(currentGroup);
|
1381
|
-
currentGroup = createEmptyMeasureGroup();
|
1361
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
1362
|
+
advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
|
1363
|
+
return advancedVSeed;
|
1382
1364
|
}
|
1383
|
-
|
1365
|
+
const basicMeasures = getBasicMeasures(vseed);
|
1366
|
+
if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
|
1367
|
+
else advancedVSeed.measures = basicMeasures;
|
1384
1368
|
return advancedVSeed;
|
1385
1369
|
};
|
1386
|
-
const
|
1387
|
-
|
1388
|
-
|
1389
|
-
|
1370
|
+
const generateMeasuresByParentId = (measures)=>{
|
1371
|
+
const measureTree = [];
|
1372
|
+
measures.forEach((measure)=>{
|
1373
|
+
if (!measure.parentId) return;
|
1374
|
+
const parent = measureTree.find((item)=>item.id === measure.parentId);
|
1375
|
+
if (parent && 'children' in parent) {
|
1376
|
+
parent.children = parent.children || [];
|
1377
|
+
parent.children.push(measure);
|
1378
|
+
} else measureTree.push({
|
1379
|
+
id: measure.parentId,
|
1380
|
+
children: [
|
1381
|
+
measure
|
1382
|
+
]
|
1383
|
+
});
|
1390
1384
|
});
|
1385
|
+
return measureTree;
|
1386
|
+
};
|
1387
|
+
const basicMeasuresToMeasureTree = (measures)=>{
|
1388
|
+
const id = measures.map((item)=>item.id).join('-');
|
1389
|
+
const alias = measures.map((item)=>item.alias || item.id).join('-');
|
1390
|
+
return [
|
1391
|
+
{
|
1392
|
+
id,
|
1393
|
+
alias,
|
1394
|
+
children: measures
|
1395
|
+
}
|
1396
|
+
];
|
1397
|
+
};
|
1391
1398
|
const ORIGINAL_DATA = '__OriginalData__';
|
1392
1399
|
const Separator = '-';
|
1393
1400
|
const FoldMeasureName = '__MeaName__';
|
@@ -1489,8 +1496,7 @@ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
|
1489
1496
|
return execPipeline(pipeline, context, advancedVSeed);
|
1490
1497
|
};
|
1491
1498
|
const foldMeasures = (dataset, measures, encoding, options)=>{
|
1492
|
-
const { measureId
|
1493
|
-
const colorMeasureId = encoding?.color?.length === 1 && measures.some((m)=>m.id === encoding?.color?.[0]) ? encoding?.color?.[0] : void 0;
|
1499
|
+
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
1494
1500
|
const foldInfo = {
|
1495
1501
|
measureId,
|
1496
1502
|
measureName,
|
@@ -1589,11 +1595,12 @@ const applyEncoding = (encoding, dimensions, datum, separator)=>{
|
|
1589
1595
|
if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
|
1590
1596
|
};
|
1591
1597
|
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1592
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
|
1598
|
+
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId } = options || {};
|
1593
1599
|
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, encoding, {
|
1594
1600
|
measureId: foldMeasureId,
|
1595
1601
|
measureName: foldMeasureName,
|
1596
|
-
measureValue: foldMeasureValue
|
1602
|
+
measureValue: foldMeasureValue,
|
1603
|
+
colorMeasureId
|
1597
1604
|
});
|
1598
1605
|
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1599
1606
|
foldMeasureId,
|
@@ -1606,6 +1613,24 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
|
|
1606
1613
|
unfoldInfo
|
1607
1614
|
};
|
1608
1615
|
};
|
1616
|
+
const colorAdapter = (ordinalPipe, linearPipe)=>(spec, context)=>{
|
1617
|
+
const { advancedVSeed } = context;
|
1618
|
+
if (isLinearColor(advancedVSeed)) return linearPipe(spec, context);
|
1619
|
+
return ordinalPipe(spec, context);
|
1620
|
+
};
|
1621
|
+
const isLinearColor = (advancedVSeed)=>{
|
1622
|
+
const { encoding, measures } = advancedVSeed;
|
1623
|
+
const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
|
1624
|
+
const { color } = encoding;
|
1625
|
+
return color?.length === 1 && measureIdList.includes(color[0]);
|
1626
|
+
};
|
1627
|
+
const getColorMeasureId = (advancedVSeed)=>{
|
1628
|
+
if (isLinearColor(advancedVSeed)) {
|
1629
|
+
const { encoding } = advancedVSeed;
|
1630
|
+
const { color } = encoding;
|
1631
|
+
return color?.[0];
|
1632
|
+
}
|
1633
|
+
};
|
1609
1634
|
const reshapeWithEncoding = (advancedVSeed, context)=>{
|
1610
1635
|
const result = {
|
1611
1636
|
...advancedVSeed
|
@@ -1615,7 +1640,9 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1615
1640
|
const { dimensions, measures, encoding } = advancedVSeed;
|
1616
1641
|
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1617
1642
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1618
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding
|
1643
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1644
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1645
|
+
});
|
1619
1646
|
return {
|
1620
1647
|
...result,
|
1621
1648
|
dataset: newDatasets,
|
@@ -1651,7 +1678,8 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1651
1678
|
if (!measures) return;
|
1652
1679
|
const groupId = measureGroup.id;
|
1653
1680
|
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1654
|
-
foldMeasureValue: `${FoldMeasureValue}${groupId}
|
1681
|
+
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
1682
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1655
1683
|
});
|
1656
1684
|
const reshapeInfo = {
|
1657
1685
|
id: groupId,
|
@@ -1858,7 +1886,7 @@ const annotation_annotation = (advancedVSeed, context)=>{
|
|
1858
1886
|
};
|
1859
1887
|
const lineAdvancedPipeline = [
|
1860
1888
|
initAdvancedVSeed_initAdvancedVSeed,
|
1861
|
-
|
1889
|
+
buildMeasures,
|
1862
1890
|
autoDimensions_autoDimensions,
|
1863
1891
|
encodingForLine,
|
1864
1892
|
pivotAdapter([
|
@@ -1873,17 +1901,6 @@ const lineAdvancedPipeline = [
|
|
1873
1901
|
markStyle_markStyle,
|
1874
1902
|
annotation_annotation
|
1875
1903
|
];
|
1876
|
-
const colorAdapter = (ordinalPipe, linearPipe)=>(spec, context)=>{
|
1877
|
-
const { advancedVSeed } = context;
|
1878
|
-
if (isLinearColor(advancedVSeed)) return linearPipe(spec, context);
|
1879
|
-
return ordinalPipe(spec, context);
|
1880
|
-
};
|
1881
|
-
const isLinearColor = (advancedVSeed)=>{
|
1882
|
-
const { encoding, measures } = advancedVSeed;
|
1883
|
-
const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
|
1884
|
-
const { color } = encoding;
|
1885
|
-
return color?.length === 1 && measureIdList.includes(color[0]);
|
1886
|
-
};
|
1887
1904
|
const initLine = (spec, context)=>{
|
1888
1905
|
const result = {
|
1889
1906
|
...spec
|
@@ -3714,7 +3731,7 @@ const encodingForColumn = (advancedVSeed, context)=>{
|
|
3714
3731
|
};
|
3715
3732
|
const columnAdvancedPipeline = [
|
3716
3733
|
initAdvancedVSeed_initAdvancedVSeed,
|
3717
|
-
|
3734
|
+
buildMeasures,
|
3718
3735
|
autoDimensions_autoDimensions,
|
3719
3736
|
encodingForColumn,
|
3720
3737
|
pivotAdapter([
|
@@ -4163,7 +4180,7 @@ const registerColumn = ()=>{
|
|
4163
4180
|
};
|
4164
4181
|
const columnParallelAdvancedPipeline = [
|
4165
4182
|
initAdvancedVSeed_initAdvancedVSeed,
|
4166
|
-
|
4183
|
+
buildMeasures,
|
4167
4184
|
autoDimensions_autoDimensions,
|
4168
4185
|
encodingForColumn,
|
4169
4186
|
pivotAdapter([
|
@@ -4260,7 +4277,7 @@ const registerColumnParallel = ()=>{
|
|
4260
4277
|
};
|
4261
4278
|
const columnPercentAdvancedPipeline = [
|
4262
4279
|
initAdvancedVSeed_initAdvancedVSeed,
|
4263
|
-
|
4280
|
+
buildMeasures,
|
4264
4281
|
autoDimensions_autoDimensions,
|
4265
4282
|
encodingForColumn,
|
4266
4283
|
pivotAdapter([
|
@@ -4399,7 +4416,7 @@ const sortYBandAxis = (advancedVSeed, context)=>{
|
|
4399
4416
|
};
|
4400
4417
|
const barAdvancedPipeline = [
|
4401
4418
|
initAdvancedVSeed_initAdvancedVSeed,
|
4402
|
-
|
4419
|
+
buildMeasures,
|
4403
4420
|
autoDimensions_autoDimensions,
|
4404
4421
|
encodingForBar,
|
4405
4422
|
pivotAdapter([
|
@@ -4752,7 +4769,7 @@ const registerBar = ()=>{
|
|
4752
4769
|
};
|
4753
4770
|
const barParallelAdvancedPipeline = [
|
4754
4771
|
initAdvancedVSeed_initAdvancedVSeed,
|
4755
|
-
|
4772
|
+
buildMeasures,
|
4756
4773
|
autoDimensions_autoDimensions,
|
4757
4774
|
encodingForBar,
|
4758
4775
|
pivotAdapter([
|
@@ -4848,7 +4865,7 @@ const registerBarParallel = ()=>{
|
|
4848
4865
|
};
|
4849
4866
|
const barPercentAdvancedPipeline = [
|
4850
4867
|
initAdvancedVSeed_initAdvancedVSeed,
|
4851
|
-
|
4868
|
+
buildMeasures,
|
4852
4869
|
autoDimensions_autoDimensions,
|
4853
4870
|
encodingForBar,
|
4854
4871
|
pivotAdapter([
|
@@ -4919,7 +4936,7 @@ const registerBarPercent = ()=>{
|
|
4919
4936
|
};
|
4920
4937
|
const areaAdvancedPipeline = [
|
4921
4938
|
initAdvancedVSeed_initAdvancedVSeed,
|
4922
|
-
|
4939
|
+
buildMeasures,
|
4923
4940
|
autoDimensions_autoDimensions,
|
4924
4941
|
encodingForColumn,
|
4925
4942
|
pivotAdapter([
|
@@ -5077,7 +5094,7 @@ const registerArea = ()=>{
|
|
5077
5094
|
};
|
5078
5095
|
const areaPercentAdvancedPipeline = [
|
5079
5096
|
initAdvancedVSeed_initAdvancedVSeed,
|
5080
|
-
|
5097
|
+
buildMeasures,
|
5081
5098
|
autoDimensions_autoDimensions,
|
5082
5099
|
encodingForColumn,
|
5083
5100
|
pivotAdapter([
|
@@ -5153,95 +5170,105 @@ const registerAreaPercent = ()=>{
|
|
5153
5170
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5154
5171
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5155
5172
|
};
|
5156
|
-
const
|
5157
|
-
const result = {
|
5158
|
-
...advancedVSeed
|
5159
|
-
};
|
5173
|
+
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
5160
5174
|
const { vseed } = context;
|
5161
|
-
|
5162
|
-
|
5163
|
-
|
5164
|
-
if (scatterMeasures) {
|
5165
|
-
result.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
5166
|
-
return result;
|
5175
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
5176
|
+
advancedVSeed.measures = vseed.measures;
|
5177
|
+
return advancedVSeed;
|
5167
5178
|
}
|
5168
|
-
if (
|
5169
|
-
|
5170
|
-
return
|
5179
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
5180
|
+
advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
|
5181
|
+
return advancedVSeed;
|
5171
5182
|
}
|
5172
|
-
const
|
5173
|
-
const
|
5174
|
-
|
5175
|
-
|
5176
|
-
|
5177
|
-
|
5178
|
-
|
5179
|
-
|
5180
|
-
|
5181
|
-
]
|
5182
|
-
|
5183
|
-
|
5184
|
-
|
5185
|
-
|
5186
|
-
|
5187
|
-
|
5188
|
-
|
5189
|
-
|
5190
|
-
|
5191
|
-
|
5192
|
-
|
5193
|
-
else if (newMeasures.length > 1) result.measures = [
|
5194
|
-
{
|
5195
|
-
id: 'primary',
|
5196
|
-
alias: 'primary',
|
5197
|
-
children: newMeasures.slice(0, 1)
|
5198
|
-
},
|
5183
|
+
const basicMeasures = getBasicMeasures(vseed);
|
5184
|
+
const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(basicMeasures);
|
5185
|
+
advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
5186
|
+
return advancedVSeed;
|
5187
|
+
};
|
5188
|
+
const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
5189
|
+
const yMeasures = [];
|
5190
|
+
const xMeasures = [];
|
5191
|
+
for(let index = 0; index < basicMeasures.length; index++){
|
5192
|
+
const item = basicMeasures[index];
|
5193
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5194
|
+
item.encoding
|
5195
|
+
];
|
5196
|
+
const isYAxis = encoding.includes('yAxis');
|
5197
|
+
const isXAxis = encoding.includes('xAxis');
|
5198
|
+
if (isYAxis) yMeasures.push(item);
|
5199
|
+
else if (isXAxis) xMeasures.push(item);
|
5200
|
+
else if (0 === index) yMeasures.push(item);
|
5201
|
+
else xMeasures.push(item);
|
5202
|
+
}
|
5203
|
+
return [
|
5199
5204
|
{
|
5200
|
-
id: '
|
5201
|
-
|
5202
|
-
|
5205
|
+
id: 'scatterMeasures',
|
5206
|
+
xMeasures,
|
5207
|
+
yMeasures
|
5203
5208
|
}
|
5204
5209
|
];
|
5205
|
-
return result;
|
5206
5210
|
};
|
5207
5211
|
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
5208
5212
|
const measureTree = scatterMeasures.map((item, index)=>{
|
5209
|
-
const { xMeasures, yMeasures } = item;
|
5213
|
+
const { id, xMeasures, yMeasures } = item;
|
5210
5214
|
const groupChildren = [];
|
5211
|
-
let
|
5215
|
+
let groupId = `${id}-`;
|
5212
5216
|
if (xMeasures) {
|
5213
|
-
const
|
5217
|
+
const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
5214
5218
|
xMeasures
|
5215
5219
|
];
|
5216
|
-
const alias =
|
5217
|
-
|
5220
|
+
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5221
|
+
groupId += alias;
|
5218
5222
|
groupChildren.push({
|
5219
5223
|
id: `${index}-x`,
|
5220
|
-
alias:
|
5221
|
-
children:
|
5224
|
+
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5225
|
+
children: arrPrimaryMeasures
|
5222
5226
|
});
|
5223
5227
|
}
|
5224
5228
|
if (yMeasures) {
|
5225
|
-
const
|
5229
|
+
const arrSecondaryMeasures = Array.isArray(yMeasures) ? yMeasures : [
|
5226
5230
|
yMeasures
|
5227
5231
|
];
|
5228
|
-
const alias =
|
5229
|
-
|
5232
|
+
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5233
|
+
groupId += alias;
|
5230
5234
|
groupChildren.push({
|
5231
5235
|
id: `${index}-y`,
|
5232
|
-
alias:
|
5233
|
-
children:
|
5236
|
+
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5237
|
+
children: arrSecondaryMeasures
|
5234
5238
|
});
|
5235
5239
|
}
|
5236
5240
|
return {
|
5237
|
-
id,
|
5238
|
-
alias:
|
5241
|
+
id: groupId,
|
5242
|
+
alias: groupId,
|
5239
5243
|
children: groupChildren
|
5240
5244
|
};
|
5241
5245
|
});
|
5242
5246
|
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
5243
5247
|
return measureTree;
|
5244
5248
|
};
|
5249
|
+
const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
|
5250
|
+
const scatterMeasures = [];
|
5251
|
+
measures.forEach((item)=>{
|
5252
|
+
if (!item.parentId) return;
|
5253
|
+
if (!scatterMeasures.find((d)=>d.id === item.parentId)) scatterMeasures.push({
|
5254
|
+
id: item.parentId,
|
5255
|
+
yMeasures: [],
|
5256
|
+
xMeasures: []
|
5257
|
+
});
|
5258
|
+
const scatterChart = scatterMeasures.find((d)=>d.id === item.parentId);
|
5259
|
+
if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) return;
|
5260
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5261
|
+
item.encoding
|
5262
|
+
];
|
5263
|
+
const isY = encoding.includes('yAxis');
|
5264
|
+
const isX = encoding.includes('xAxis');
|
5265
|
+
if (isY) scatterChart.yMeasures.push(item);
|
5266
|
+
else if (isX) scatterChart.xMeasures.push(item);
|
5267
|
+
else if (!isY && !isX) if (0 === scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
5268
|
+
else scatterChart.xMeasures.push(item);
|
5269
|
+
});
|
5270
|
+
return scatterMeasuresToMeasureTree(scatterMeasures);
|
5271
|
+
};
|
5245
5272
|
const encodingForScatter = (advancedVSeed, context)=>{
|
5246
5273
|
const { vseed } = context;
|
5247
5274
|
const { dimensions } = advancedVSeed;
|
@@ -5297,7 +5324,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5297
5324
|
if (xMeasures && xMeasures.children) {
|
5298
5325
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5299
5326
|
foldMeasureValue: FoldXMeasureValue,
|
5300
|
-
colorItemAsId: true
|
5327
|
+
colorItemAsId: true,
|
5328
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5301
5329
|
});
|
5302
5330
|
datasets.push(newDataset);
|
5303
5331
|
foldInfoList.push(foldInfo);
|
@@ -5306,7 +5334,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5306
5334
|
if (yMeasures && yMeasures.children) {
|
5307
5335
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
5308
5336
|
foldMeasureValue: FoldYMeasureValue,
|
5309
|
-
colorItemAsId: true
|
5337
|
+
colorItemAsId: true,
|
5338
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5310
5339
|
});
|
5311
5340
|
datasets[0] = newDataset;
|
5312
5341
|
foldInfoList.push(foldInfo);
|
@@ -5361,7 +5390,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5361
5390
|
if (xMeasures && xMeasures.children) {
|
5362
5391
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5363
5392
|
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
5364
|
-
colorItemAsId: true
|
5393
|
+
colorItemAsId: true,
|
5394
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5365
5395
|
});
|
5366
5396
|
datasets.push(newDataset);
|
5367
5397
|
foldInfoList.push(foldInfo);
|
@@ -5370,7 +5400,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5370
5400
|
if (yMeasures && yMeasures.children) {
|
5371
5401
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
|
5372
5402
|
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
5373
|
-
colorItemAsId: true
|
5403
|
+
colorItemAsId: true,
|
5404
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5374
5405
|
});
|
5375
5406
|
datasets.push(newDataset);
|
5376
5407
|
foldInfoList.push(foldInfo);
|
@@ -5405,7 +5436,7 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5405
5436
|
};
|
5406
5437
|
const scatterAdvancedPipeline = [
|
5407
5438
|
initAdvancedVSeed_initAdvancedVSeed,
|
5408
|
-
|
5439
|
+
buildMeasuresForScatter,
|
5409
5440
|
autoDimensions_autoDimensions,
|
5410
5441
|
encodingForScatter,
|
5411
5442
|
pivotAdapter([
|
@@ -5552,68 +5583,55 @@ const registerScatter = ()=>{
|
|
5552
5583
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5553
5584
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5554
5585
|
};
|
5555
|
-
const
|
5556
|
-
const result = {
|
5557
|
-
...advancedVSeed
|
5558
|
-
};
|
5586
|
+
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5559
5587
|
const { vseed } = context;
|
5560
|
-
|
5561
|
-
|
5562
|
-
|
5563
|
-
if (dualMeasures) {
|
5564
|
-
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5565
|
-
return result;
|
5588
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
5589
|
+
advancedVSeed.measures = vseed.measures;
|
5590
|
+
return advancedVSeed;
|
5566
5591
|
}
|
5567
|
-
if (
|
5568
|
-
|
5569
|
-
return
|
5592
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
5593
|
+
advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
|
5594
|
+
return advancedVSeed;
|
5570
5595
|
}
|
5571
|
-
const
|
5572
|
-
const
|
5573
|
-
|
5574
|
-
|
5575
|
-
|
5576
|
-
|
5577
|
-
|
5578
|
-
|
5579
|
-
|
5580
|
-
]
|
5581
|
-
|
5582
|
-
|
5583
|
-
|
5584
|
-
|
5585
|
-
|
5586
|
-
|
5587
|
-
|
5588
|
-
|
5589
|
-
|
5590
|
-
|
5591
|
-
|
5592
|
-
else if (newMeasures.length > 1) result.measures = [
|
5593
|
-
{
|
5594
|
-
id: 'primary',
|
5595
|
-
alias: 'primary',
|
5596
|
-
children: newMeasures.slice(0, 1)
|
5597
|
-
},
|
5596
|
+
const basicMeasures = getBasicMeasures(vseed);
|
5597
|
+
const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(basicMeasures);
|
5598
|
+
advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5599
|
+
return advancedVSeed;
|
5600
|
+
};
|
5601
|
+
const basicMeasuresToDualMeasures = (basicMeasures)=>{
|
5602
|
+
const primaryMeasures = [];
|
5603
|
+
const secondaryMeasures = [];
|
5604
|
+
for(let index = 0; index < basicMeasures.length; index++){
|
5605
|
+
const item = basicMeasures[index];
|
5606
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5607
|
+
item.encoding
|
5608
|
+
];
|
5609
|
+
const isPrimaryYAxis = encoding.includes('primaryYAxis');
|
5610
|
+
const isSecondaryYAxis = encoding.includes('secondaryYAxis');
|
5611
|
+
if (isPrimaryYAxis) primaryMeasures.push(item);
|
5612
|
+
else if (isSecondaryYAxis) secondaryMeasures.push(item);
|
5613
|
+
else if (0 === index) primaryMeasures.push(item);
|
5614
|
+
else secondaryMeasures.push(item);
|
5615
|
+
}
|
5616
|
+
return [
|
5598
5617
|
{
|
5599
|
-
id: '
|
5600
|
-
|
5601
|
-
|
5618
|
+
id: 'dualMeasures',
|
5619
|
+
primaryMeasures,
|
5620
|
+
secondaryMeasures
|
5602
5621
|
}
|
5603
5622
|
];
|
5604
|
-
return result;
|
5605
5623
|
};
|
5606
5624
|
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
5607
5625
|
const measureTree = dualMeasures.map((item, index)=>{
|
5608
|
-
const { primaryMeasures, secondaryMeasures } = item;
|
5626
|
+
const { id, primaryMeasures, secondaryMeasures } = item;
|
5609
5627
|
const groupChildren = [];
|
5610
|
-
let
|
5628
|
+
let groupId = `${id}-`;
|
5611
5629
|
if (primaryMeasures) {
|
5612
5630
|
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
5613
5631
|
primaryMeasures
|
5614
5632
|
];
|
5615
5633
|
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5616
|
-
|
5634
|
+
groupId += alias;
|
5617
5635
|
groupChildren.push({
|
5618
5636
|
id: `${index}-primary`,
|
5619
5637
|
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5625,7 +5643,7 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5625
5643
|
secondaryMeasures
|
5626
5644
|
];
|
5627
5645
|
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5628
|
-
|
5646
|
+
groupId += alias;
|
5629
5647
|
groupChildren.push({
|
5630
5648
|
id: `${index}-secondary`,
|
5631
5649
|
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5633,14 +5651,37 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5633
5651
|
});
|
5634
5652
|
}
|
5635
5653
|
return {
|
5636
|
-
id,
|
5637
|
-
alias:
|
5654
|
+
id: groupId,
|
5655
|
+
alias: groupId,
|
5638
5656
|
children: groupChildren
|
5639
5657
|
};
|
5640
5658
|
});
|
5641
5659
|
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
5642
5660
|
return measureTree;
|
5643
5661
|
};
|
5662
|
+
const buildMeasuresForDualAxis_generateMeasuresByParentId = (measures)=>{
|
5663
|
+
const dualMeasures = [];
|
5664
|
+
measures.forEach((item)=>{
|
5665
|
+
if (!item.parentId) return;
|
5666
|
+
if (!dualMeasures.find((d)=>d.id === item.parentId)) dualMeasures.push({
|
5667
|
+
id: item.parentId,
|
5668
|
+
primaryMeasures: [],
|
5669
|
+
secondaryMeasures: []
|
5670
|
+
});
|
5671
|
+
const dualChart = dualMeasures.find((d)=>d.id === item.parentId);
|
5672
|
+
if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) return;
|
5673
|
+
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5674
|
+
item.encoding
|
5675
|
+
];
|
5676
|
+
const isPrimary = encoding.includes('primaryYAxis');
|
5677
|
+
const isSecondary = encoding.includes('secondaryYAxis');
|
5678
|
+
if (isPrimary) dualChart.primaryMeasures.push(item);
|
5679
|
+
else if (isSecondary) dualChart.secondaryMeasures.push(item);
|
5680
|
+
else if (!isPrimary && !isSecondary) if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
|
5681
|
+
else dualChart.secondaryMeasures.push(item);
|
5682
|
+
});
|
5683
|
+
return dualMeasuresToMeasureTree(dualMeasures);
|
5684
|
+
};
|
5644
5685
|
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5645
5686
|
const { vseed } = context;
|
5646
5687
|
const { dimensions } = advancedVSeed;
|
@@ -5699,7 +5740,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5699
5740
|
const secondaryMeasures = measures[1] || [];
|
5700
5741
|
if (primaryMeasures && primaryMeasures.children) {
|
5701
5742
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5702
|
-
foldMeasureValue: FoldPrimaryMeasureValue
|
5743
|
+
foldMeasureValue: FoldPrimaryMeasureValue,
|
5744
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5703
5745
|
});
|
5704
5746
|
datasets.push(newDataset);
|
5705
5747
|
foldInfoList.push(foldInfo);
|
@@ -5707,7 +5749,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5707
5749
|
}
|
5708
5750
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5709
5751
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5710
|
-
foldMeasureValue: FoldSecondaryMeasureValue
|
5752
|
+
foldMeasureValue: FoldSecondaryMeasureValue,
|
5753
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5711
5754
|
});
|
5712
5755
|
datasets.push(newDataset);
|
5713
5756
|
foldInfoList.push(foldInfo);
|
@@ -5761,7 +5804,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5761
5804
|
const secondaryMeasures = measures[1] || [];
|
5762
5805
|
if (primaryMeasures && primaryMeasures.children) {
|
5763
5806
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5764
|
-
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}
|
5807
|
+
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
5808
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5765
5809
|
});
|
5766
5810
|
datasets.push(newDataset);
|
5767
5811
|
foldInfoList.push(foldInfo);
|
@@ -5769,7 +5813,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5769
5813
|
}
|
5770
5814
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5771
5815
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5772
|
-
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}
|
5816
|
+
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
5817
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5773
5818
|
});
|
5774
5819
|
datasets.push(newDataset);
|
5775
5820
|
foldInfoList.push(foldInfo);
|
@@ -5827,7 +5872,7 @@ const dualAxisConfig = (advancedVSeed, context)=>{
|
|
5827
5872
|
};
|
5828
5873
|
const dualAxisAdvancedPipeline = [
|
5829
5874
|
initAdvancedVSeed_initAdvancedVSeed,
|
5830
|
-
|
5875
|
+
buildMeasuresForDualAxis,
|
5831
5876
|
autoDimensions_autoDimensions,
|
5832
5877
|
encodingForDualAxis,
|
5833
5878
|
pivotAdapter([
|
@@ -5914,7 +5959,7 @@ const initDualAxisSecondary = (spec, context)=>{
|
|
5914
5959
|
result.direction = 'vertical';
|
5915
5960
|
result.xField = unfoldInfo.encodingX;
|
5916
5961
|
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5917
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
5962
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
5918
5963
|
result.animation = true;
|
5919
5964
|
return result;
|
5920
5965
|
};
|
@@ -6540,6 +6585,37 @@ const yLinearSecondary = (spec, context)=>{
|
|
6540
6585
|
];
|
6541
6586
|
return result;
|
6542
6587
|
};
|
6588
|
+
const linearColorForDualAxis = (spec, context)=>{
|
6589
|
+
const result = {
|
6590
|
+
...spec
|
6591
|
+
};
|
6592
|
+
const { advancedVSeed } = context;
|
6593
|
+
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
6594
|
+
const { unfoldInfo, id } = datasetReshapeInfo[0];
|
6595
|
+
const baseConfig = advancedVSeed.config[chartType];
|
6596
|
+
if (!baseConfig || !baseConfig.color) return result;
|
6597
|
+
const { color } = baseConfig;
|
6598
|
+
const { colorScheme, linearColorScheme } = color;
|
6599
|
+
result.color = {
|
6600
|
+
type: 'linear',
|
6601
|
+
range: linearColorScheme || colorScheme || [],
|
6602
|
+
domain: [
|
6603
|
+
{
|
6604
|
+
dataId: `${id}-primary-dataset`,
|
6605
|
+
fields: [
|
6606
|
+
unfoldInfo.encodingColor
|
6607
|
+
]
|
6608
|
+
},
|
6609
|
+
{
|
6610
|
+
dataId: `${id}-secondary-dataset`,
|
6611
|
+
fields: [
|
6612
|
+
unfoldInfo.encodingColor
|
6613
|
+
]
|
6614
|
+
}
|
6615
|
+
]
|
6616
|
+
};
|
6617
|
+
return result;
|
6618
|
+
};
|
6543
6619
|
const dualAxis = [
|
6544
6620
|
seriesDualAxis([
|
6545
6621
|
initDualAxisPrimary,
|
@@ -6548,11 +6624,11 @@ const dualAxis = [
|
|
6548
6624
|
labelPrimary,
|
6549
6625
|
tooltipPrimary,
|
6550
6626
|
progressive,
|
6551
|
-
barStyle_barStyle,
|
6552
|
-
pointStyle_pointStyle,
|
6627
|
+
colorBarStyleFill(barStyle_barStyle),
|
6628
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6553
6629
|
pointStateDimensionHover,
|
6554
|
-
lineStyle_lineStyle,
|
6555
|
-
areaStyle_areaStyle
|
6630
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6631
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6556
6632
|
], [
|
6557
6633
|
initDualAxisSecondary,
|
6558
6634
|
dualChartTypeSecondary,
|
@@ -6560,18 +6636,18 @@ const dualAxis = [
|
|
6560
6636
|
labelSecondary,
|
6561
6637
|
tooltipSecondary,
|
6562
6638
|
progressive,
|
6563
|
-
barStyle_barStyle,
|
6564
|
-
pointStyle_pointStyle,
|
6639
|
+
colorBarStyleFill(barStyle_barStyle),
|
6640
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6565
6641
|
pointStateDimensionHover,
|
6566
|
-
lineStyle_lineStyle,
|
6567
|
-
areaStyle_areaStyle
|
6642
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6643
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6568
6644
|
]),
|
6569
6645
|
xBand,
|
6570
6646
|
yLinearPrimary,
|
6571
6647
|
yLinearSecondary,
|
6572
|
-
color_color,
|
6648
|
+
colorAdapter(color_color, linearColorForDualAxis),
|
6649
|
+
colorAdapter(discreteLegend, colorLegend),
|
6573
6650
|
background_backgroundColor,
|
6574
|
-
discreteLegend,
|
6575
6651
|
verticalCrosshairRect,
|
6576
6652
|
annotationPoint_annotationPoint,
|
6577
6653
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -6591,11 +6667,11 @@ const pivotDualAxis = [
|
|
6591
6667
|
labelPrimary,
|
6592
6668
|
tooltipPrimary,
|
6593
6669
|
progressive,
|
6594
|
-
barStyle_barStyle,
|
6595
|
-
pointStyle_pointStyle,
|
6670
|
+
colorBarStyleFill(barStyle_barStyle),
|
6671
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6596
6672
|
pointStateDimensionHover,
|
6597
|
-
lineStyle_lineStyle,
|
6598
|
-
areaStyle_areaStyle
|
6673
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6674
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6599
6675
|
], [
|
6600
6676
|
initDualAxisSecondary,
|
6601
6677
|
dualChartTypeSecondary,
|
@@ -6603,16 +6679,16 @@ const pivotDualAxis = [
|
|
6603
6679
|
labelSecondary,
|
6604
6680
|
tooltipSecondary,
|
6605
6681
|
progressive,
|
6606
|
-
barStyle_barStyle,
|
6607
|
-
pointStyle_pointStyle,
|
6682
|
+
colorBarStyleFill(barStyle_barStyle),
|
6683
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6608
6684
|
pointStateDimensionHover,
|
6609
|
-
lineStyle_lineStyle,
|
6610
|
-
areaStyle_areaStyle
|
6685
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6686
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6611
6687
|
]),
|
6612
6688
|
xBand,
|
6613
6689
|
yLinearPrimary,
|
6614
6690
|
yLinearSecondary,
|
6615
|
-
color_color,
|
6691
|
+
colorAdapter(color_color, linearColor),
|
6616
6692
|
background_backgroundColor,
|
6617
6693
|
verticalCrosshairRect,
|
6618
6694
|
annotationPoint_annotationPoint,
|
@@ -6622,7 +6698,7 @@ const pivotDualAxis = [
|
|
6622
6698
|
]),
|
6623
6699
|
pivotRowDimensions,
|
6624
6700
|
pivotColumnDimensions,
|
6625
|
-
pivotDiscreteLegend
|
6701
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
6626
6702
|
];
|
6627
6703
|
const dualAxisSpecPipeline = [
|
6628
6704
|
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
@@ -6657,7 +6733,7 @@ const encodingForPie = (advancedVSeed, context)=>{
|
|
6657
6733
|
};
|
6658
6734
|
const pieAdvancedPipeline = [
|
6659
6735
|
initAdvancedVSeed_initAdvancedVSeed,
|
6660
|
-
|
6736
|
+
buildMeasures,
|
6661
6737
|
autoDimensions_autoDimensions,
|
6662
6738
|
encodingForPie,
|
6663
6739
|
pivotAdapter([
|
@@ -6748,7 +6824,7 @@ const registerPie = ()=>{
|
|
6748
6824
|
};
|
6749
6825
|
const donutAdvancedPipeline = [
|
6750
6826
|
initAdvancedVSeed_initAdvancedVSeed,
|
6751
|
-
|
6827
|
+
buildMeasures,
|
6752
6828
|
autoDimensions_autoDimensions,
|
6753
6829
|
encodingForPie,
|
6754
6830
|
pivotAdapter([
|
@@ -6880,7 +6956,7 @@ const encodingForRose = (advancedVSeed, context)=>{
|
|
6880
6956
|
};
|
6881
6957
|
const roseAdvancedPipeline = [
|
6882
6958
|
initAdvancedVSeed_initAdvancedVSeed,
|
6883
|
-
|
6959
|
+
buildMeasures,
|
6884
6960
|
autoDimensions_autoDimensions,
|
6885
6961
|
encodingForRose,
|
6886
6962
|
pivotAdapter([
|
@@ -7049,7 +7125,7 @@ const registerRose = ()=>{
|
|
7049
7125
|
};
|
7050
7126
|
const roseParallelAdvancedPipeline = [
|
7051
7127
|
initAdvancedVSeed_initAdvancedVSeed,
|
7052
|
-
|
7128
|
+
buildMeasures,
|
7053
7129
|
autoDimensions_autoDimensions,
|
7054
7130
|
encodingForRose,
|
7055
7131
|
pivotAdapter([
|
@@ -7198,7 +7274,7 @@ const encodingForRadar = (advancedVSeed, context)=>{
|
|
7198
7274
|
};
|
7199
7275
|
const radarAdvancedPipeline = [
|
7200
7276
|
initAdvancedVSeed_initAdvancedVSeed,
|
7201
|
-
|
7277
|
+
buildMeasures,
|
7202
7278
|
autoDimensions_autoDimensions,
|
7203
7279
|
encodingForRadar,
|
7204
7280
|
pivotAdapter([
|
@@ -7360,7 +7436,7 @@ const encodingForFunnel = (advancedVSeed, context)=>{
|
|
7360
7436
|
};
|
7361
7437
|
const funnelAdvancedPipeline = [
|
7362
7438
|
initAdvancedVSeed_initAdvancedVSeed,
|
7363
|
-
|
7439
|
+
buildMeasures,
|
7364
7440
|
autoDimensions_autoDimensions,
|
7365
7441
|
encodingForFunnel,
|
7366
7442
|
pivotAdapter([
|
@@ -7491,7 +7567,7 @@ const encodingForHeatmap = (advancedVSeed, context)=>{
|
|
7491
7567
|
};
|
7492
7568
|
const heatmapAdvancedPipeline = [
|
7493
7569
|
initAdvancedVSeed_initAdvancedVSeed,
|
7494
|
-
|
7570
|
+
buildMeasures,
|
7495
7571
|
autoDimensions_autoDimensions,
|
7496
7572
|
encodingForHeatmap,
|
7497
7573
|
pivotAdapter([
|
@@ -8359,7 +8435,20 @@ const zMeasure = external_zod_namespaceObject.z.object({
|
|
8359
8435
|
id: external_zod_namespaceObject.z.string(),
|
8360
8436
|
alias: external_zod_namespaceObject.z.string().optional(),
|
8361
8437
|
autoFormat: external_zod_namespaceObject.z.boolean().default(true),
|
8362
|
-
format: zNumFormat["default"]({})
|
8438
|
+
format: zNumFormat["default"]({}),
|
8439
|
+
encoding: external_zod_namespaceObject.z["enum"]([
|
8440
|
+
'primaryYAxis',
|
8441
|
+
'secondaryYAxis',
|
8442
|
+
'xAxis',
|
8443
|
+
'yAxis',
|
8444
|
+
'angle',
|
8445
|
+
'radius',
|
8446
|
+
'size',
|
8447
|
+
'color',
|
8448
|
+
'label',
|
8449
|
+
'tooltip'
|
8450
|
+
]).optional(),
|
8451
|
+
parentId: external_zod_namespaceObject.z.string().optional()
|
8363
8452
|
});
|
8364
8453
|
const zMeasureGroup = external_zod_namespaceObject.z.object({
|
8365
8454
|
id: external_zod_namespaceObject.z.string(),
|
@@ -8421,7 +8510,6 @@ const zEncoding = external_zod_namespaceObject.z.object({
|
|
8421
8510
|
column: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).nullish(),
|
8422
8511
|
group: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).nullish().describe("\u5DF2\u5F03\u7528, \u8BF7\u4F7F\u7528\u989C\u8272\u66FF\u4EE3")
|
8423
8512
|
});
|
8424
|
-
const zEncodings = external_zod_namespaceObject.z.array(zEncoding);
|
8425
8513
|
const zXBandAxis = external_zod_namespaceObject.z.object({
|
8426
8514
|
visible: external_zod_namespaceObject.z.boolean().default(true).nullish(),
|
8427
8515
|
labelAutoHide: external_zod_namespaceObject.z.boolean().default(true).nullish(),
|
@@ -9564,7 +9652,6 @@ const zAdvancedVSeed = external_zod_namespaceObject.z.object({
|
|
9564
9652
|
dimensions: zDimensionTree,
|
9565
9653
|
measures: zMeasureTree,
|
9566
9654
|
encoding: zEncoding,
|
9567
|
-
encodings: zEncodings,
|
9568
9655
|
config: zConfig,
|
9569
9656
|
analysis: zAnalysis,
|
9570
9657
|
theme: zTheme,
|
@@ -9736,7 +9823,6 @@ exports.zDualChartType = __webpack_exports__.zDualChartType;
|
|
9736
9823
|
exports.zDualMeasure = __webpack_exports__.zDualMeasure;
|
9737
9824
|
exports.zDualMeasures = __webpack_exports__.zDualMeasures;
|
9738
9825
|
exports.zEncoding = __webpack_exports__.zEncoding;
|
9739
|
-
exports.zEncodings = __webpack_exports__.zEncodings;
|
9740
9826
|
exports.zFoldInfo = __webpack_exports__.zFoldInfo;
|
9741
9827
|
exports.zFunnel = __webpack_exports__.zFunnel;
|
9742
9828
|
exports.zFunnelConfig = __webpack_exports__.zFunnelConfig;
|
@@ -9947,7 +10033,6 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
9947
10033
|
"zDualMeasure",
|
9948
10034
|
"zDualMeasures",
|
9949
10035
|
"zEncoding",
|
9950
|
-
"zEncodings",
|
9951
10036
|
"zFoldInfo",
|
9952
10037
|
"zFunnel",
|
9953
10038
|
"zFunnelConfig",
|