@visactor/vseed 0.1.3 → 0.1.5
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 -2
- package/dist/dataReshape/foldMeasures.d.ts +2 -2
- package/dist/index.cjs +1001 -765
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1014 -778
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/init/utils.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/measures/index.d.ts +1 -0
- package/dist/pipeline/spec/chart/pipes/color/colorCellStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorFunnelStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorPieStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorRoseStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/index.d.ts +4 -0
- package/dist/pipeline/spec/chart/pipes/markStyle/cellStyle.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/markStyle/funnelStyle.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/markStyle/index.d.ts +5 -1
- package/dist/pipeline/spec/chart/pipes/markStyle/pieStyle.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/markStyle/roseStyle.d.ts +2 -0
- package/dist/types/advancedVSeed.d.ts +16 -5
- package/dist/types/chartType/area/zArea.d.ts +16 -5
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +16 -5
- package/dist/types/chartType/bar/zBar.d.ts +16 -5
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +16 -5
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +16 -5
- package/dist/types/chartType/column/zColumn.d.ts +16 -5
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +16 -5
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +16 -5
- package/dist/types/chartType/donut/zDonut.d.ts +16 -5
- package/dist/types/chartType/dualAxis/zDualAxis.d.ts +36 -25
- package/dist/types/chartType/funnel/zFunnel.d.ts +16 -5
- package/dist/types/chartType/heatmap/zHeatmap.d.ts +16 -5
- package/dist/types/chartType/line/zLine.d.ts +16 -5
- package/dist/types/chartType/pie/zPie.d.ts +16 -5
- package/dist/types/chartType/pivotTable/zPivotTable.d.ts +16 -5
- package/dist/types/chartType/radar/zRadar.d.ts +16 -5
- package/dist/types/chartType/rose/zRose.d.ts +16 -5
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +16 -5
- package/dist/types/chartType/scatter/zScatter.d.ts +36 -25
- package/dist/types/chartType/table/zTable.d.ts +16 -5
- package/dist/types/properties/dimensions/dimensions.d.ts +16 -0
- package/dist/types/properties/dimensions/zDimensions.d.ts +33 -0
- package/dist/types/properties/measures/zDualMeasures.d.ts +40 -40
- package/dist/types/properties/measures/zMeasures.d.ts +15 -15
- package/dist/types/properties/measures/zScatterMeasures.d.ts +40 -40
- package/dist/types/zVseed.d.ts +360 -140
- package/dist/umd/index.js +953 -703
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
package/dist/umd/index.js
CHANGED
@@ -1445,6 +1445,56 @@
|
|
1445
1445
|
locale: locale || 'zh-CN'
|
1446
1446
|
};
|
1447
1447
|
};
|
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`指标名称`
|
1469
|
+
};
|
1470
|
+
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
|
+
}
|
1481
|
+
const top100dataset = dataset.slice(0, 100);
|
1482
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
1483
|
+
...prev,
|
1484
|
+
...cur
|
1485
|
+
}), {});
|
1486
|
+
const basicDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
|
1487
|
+
'',
|
1488
|
+
null,
|
1489
|
+
void 0
|
1490
|
+
].includes(key)).map((dim)=>({
|
1491
|
+
id: dim,
|
1492
|
+
alias: dim,
|
1493
|
+
location: 'dimension'
|
1494
|
+
}));
|
1495
|
+
basicDimensions.push(MeaName);
|
1496
|
+
return basicDimensions;
|
1497
|
+
};
|
1448
1498
|
const getBasicMeasures = (vseed)=>{
|
1449
1499
|
const { dataset, measures } = vseed;
|
1450
1500
|
if (!measures || 0 === measures.length) return generateMeasuresByDataset(dataset);
|
@@ -1478,6 +1528,52 @@
|
|
1478
1528
|
if (!measures) return false;
|
1479
1529
|
return measures.some((measure)=>'parentId' in measure);
|
1480
1530
|
};
|
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);
|
1536
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
1537
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
1538
|
+
const encoding = {};
|
1539
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
|
1540
|
+
else generateDefaultDimensionEncoding(dimensions, encoding);
|
1541
|
+
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
1542
|
+
else generateDefaultMeasureEncoding(measures, encoding);
|
1543
|
+
return {
|
1544
|
+
...advancedVSeed,
|
1545
|
+
encoding
|
1546
|
+
};
|
1547
|
+
};
|
1548
|
+
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
1549
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
1550
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1551
|
+
};
|
1552
|
+
const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
1553
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
1554
|
+
encoding.x = uniqueDimIds.slice(0, 1);
|
1555
|
+
encoding.color = uniqueDimIds.slice(1);
|
1556
|
+
encoding.tooltip = uniqueDimIds;
|
1557
|
+
encoding.detail = [];
|
1558
|
+
encoding.label = [];
|
1559
|
+
encoding.row = [];
|
1560
|
+
encoding.column = [];
|
1561
|
+
};
|
1562
|
+
const generateMeasureEncoding = (measures, encoding)=>{
|
1563
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
1564
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1565
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1566
|
+
if (color.length > 0) encoding.color = color;
|
1567
|
+
};
|
1568
|
+
const generateDimensionEncoding = (dimensions, encoding)=>{
|
1569
|
+
encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
1570
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1571
|
+
encoding.detail = [];
|
1572
|
+
if (0 === encoding.x.length) encoding.x = [
|
1573
|
+
dimensions[0].id
|
1574
|
+
];
|
1575
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
1576
|
+
};
|
1481
1577
|
const measureDepth = (measures = [])=>{
|
1482
1578
|
if (!measures) return 0;
|
1483
1579
|
let depth = 1;
|
@@ -1498,7 +1594,7 @@
|
|
1498
1594
|
if (isVTable(vseed)) return false;
|
1499
1595
|
if (isMeasureTreeWithParentId(vseed)) {
|
1500
1596
|
const parentIds = vseed.measures?.map((measure)=>measure.parentId);
|
1501
|
-
return parentIds && parentIds.length > 1;
|
1597
|
+
return parentIds && chunk_QJLMYOTX_i(parentIds).length > 1;
|
1502
1598
|
}
|
1503
1599
|
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1504
1600
|
const { dimensions = [] } = vseed;
|
@@ -1569,22 +1665,6 @@
|
|
1569
1665
|
}
|
1570
1666
|
];
|
1571
1667
|
};
|
1572
|
-
const ORIGINAL_DATA = '__OriginalData__';
|
1573
|
-
const Separator = '-';
|
1574
|
-
const FoldMeasureName = '__MeaName__';
|
1575
|
-
const FoldMeasureId = '__MeaId__';
|
1576
|
-
const FoldMeasureValue = '__MeaValue__';
|
1577
|
-
const MeasureName = FoldMeasureName;
|
1578
|
-
const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
|
1579
|
-
const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
|
1580
|
-
const FoldXMeasureValue = '__MeaXValue__';
|
1581
|
-
const FoldYMeasureValue = '__MeaYValue__';
|
1582
|
-
const XEncoding = '__Dim_X__';
|
1583
|
-
const YEncoding = '__Dim_Y__';
|
1584
|
-
const AngleEncoding = '__Dim_Angle__';
|
1585
|
-
const DetailEncoding = '__Dim_Detail__';
|
1586
|
-
const ColorEncoding = '__Dim_Color__';
|
1587
|
-
const ColorIdEncoding = '__Dim_ColorId__';
|
1588
1668
|
const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
|
1589
1669
|
const result = {
|
1590
1670
|
...advancedVSeed
|
@@ -1624,51 +1704,26 @@
|
|
1624
1704
|
result.dimensions.push(MeaName);
|
1625
1705
|
return result;
|
1626
1706
|
};
|
1627
|
-
const encodingForLine = (advancedVSeed, context)=>{
|
1628
|
-
const { vseed } = context;
|
1629
|
-
const { dimensions } = advancedVSeed;
|
1630
|
-
if (!dimensions) return advancedVSeed;
|
1631
|
-
const encoding = vseed.encoding;
|
1632
|
-
if (encoding) {
|
1633
|
-
const x = encoding.x || [
|
1634
|
-
dimensions[0].id
|
1635
|
-
];
|
1636
|
-
const color = encoding.color || [
|
1637
|
-
(dimensions[1] || dimensions[0]).id
|
1638
|
-
];
|
1639
|
-
const detail = encoding.detail || [];
|
1640
|
-
const mergedDetail = 0 === detail.length ? dimensions.map((d)=>d.id).filter((id)=>!x.includes(id)) : encoding.detail;
|
1641
|
-
return {
|
1642
|
-
...advancedVSeed,
|
1643
|
-
encoding: {
|
1644
|
-
...encoding,
|
1645
|
-
x,
|
1646
|
-
color,
|
1647
|
-
detail: mergedDetail
|
1648
|
-
}
|
1649
|
-
};
|
1650
|
-
}
|
1651
|
-
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
1652
|
-
const mergedEncoding = {
|
1653
|
-
x: dimensions.slice(0, 1).map((item)=>item.id),
|
1654
|
-
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
1655
|
-
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
1656
|
-
tooltip: dimensions.map((item)=>item.id),
|
1657
|
-
label: [],
|
1658
|
-
row: [],
|
1659
|
-
column: []
|
1660
|
-
};
|
1661
|
-
return {
|
1662
|
-
...advancedVSeed,
|
1663
|
-
encoding: mergedEncoding
|
1664
|
-
};
|
1665
|
-
};
|
1666
1707
|
const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
1667
1708
|
const { vseed } = context;
|
1668
1709
|
const usePivotChart = isPivotChart(vseed);
|
1669
1710
|
if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
|
1670
1711
|
return execPipeline(pipeline, context, advancedVSeed);
|
1671
1712
|
};
|
1713
|
+
function T(...e) {
|
1714
|
+
return chunk_LFJW7BOT_y(chunk_7ZI6JRPB_y, e);
|
1715
|
+
}
|
1716
|
+
function chunk_7ZI6JRPB_y(e) {
|
1717
|
+
let u = e, n = new Set;
|
1718
|
+
return (t, i, d)=>{
|
1719
|
+
let r = u(t, i, d);
|
1720
|
+
return n.has(r) ? chunk_ANXBDSUI_s : (n.add(r), {
|
1721
|
+
done: !1,
|
1722
|
+
hasNext: !0,
|
1723
|
+
next: t
|
1724
|
+
});
|
1725
|
+
};
|
1726
|
+
}
|
1672
1727
|
function chunk_AIG3BDKO_i(...e) {
|
1673
1728
|
return chunk_WIMGWYZL_u(chunk_AIG3BDKO_n, e);
|
1674
1729
|
}
|
@@ -1690,7 +1745,7 @@
|
|
1690
1745
|
for (let r of e)delete o[r];
|
1691
1746
|
return o;
|
1692
1747
|
}
|
1693
|
-
const foldMeasures = (dataset, measures,
|
1748
|
+
const foldMeasures = (dataset, measures, options)=>{
|
1694
1749
|
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
1695
1750
|
const foldInfo = {
|
1696
1751
|
measureId,
|
@@ -1791,7 +1846,7 @@
|
|
1791
1846
|
};
|
1792
1847
|
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1793
1848
|
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId } = options || {};
|
1794
|
-
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures,
|
1849
|
+
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, {
|
1795
1850
|
measureId: foldMeasureId,
|
1796
1851
|
measureName: foldMeasureName,
|
1797
1852
|
measureValue: foldMeasureValue,
|
@@ -1835,7 +1890,7 @@
|
|
1835
1890
|
const { dimensions, measures, encoding } = advancedVSeed;
|
1836
1891
|
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1837
1892
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1838
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1893
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(findAllMeasures(measures), (item)=>item.id), encoding, {
|
1839
1894
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1840
1895
|
});
|
1841
1896
|
return {
|
@@ -1872,7 +1927,7 @@
|
|
1872
1927
|
const measures = measureGroup.children;
|
1873
1928
|
if (!measures) return;
|
1874
1929
|
const groupId = measureGroup.id;
|
1875
|
-
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1930
|
+
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(measures, (item)=>item.id), encoding, {
|
1876
1931
|
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
1877
1932
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1878
1933
|
});
|
@@ -2090,9 +2145,9 @@
|
|
2090
2145
|
};
|
2091
2146
|
const lineAdvancedPipeline = [
|
2092
2147
|
initAdvancedVSeed_initAdvancedVSeed,
|
2148
|
+
encodingForLine,
|
2093
2149
|
buildMeasures,
|
2094
2150
|
autoDimensions_autoDimensions,
|
2095
|
-
encodingForLine,
|
2096
2151
|
pivotAdapter([
|
2097
2152
|
reshapeWithEncoding
|
2098
2153
|
], [
|
@@ -2453,117 +2508,6 @@
|
|
2453
2508
|
];
|
2454
2509
|
return result;
|
2455
2510
|
};
|
2456
|
-
const label_label = (spec, context)=>{
|
2457
|
-
const result = {
|
2458
|
-
...spec
|
2459
|
-
};
|
2460
|
-
const { advancedVSeed } = context;
|
2461
|
-
const { measures, datasetReshapeInfo, locale } = advancedVSeed;
|
2462
|
-
const { chartType } = advancedVSeed;
|
2463
|
-
const baseConfig = advancedVSeed.config[chartType];
|
2464
|
-
if (!baseConfig || !baseConfig.label) return result;
|
2465
|
-
const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo;
|
2466
|
-
const { label } = baseConfig;
|
2467
|
-
const { enable } = label;
|
2468
|
-
result.label = {
|
2469
|
-
visible: enable,
|
2470
|
-
formatMethod: (value, datum)=>{
|
2471
|
-
const result = [];
|
2472
|
-
const formatValue = (value)=>{
|
2473
|
-
const id = datum[measureId];
|
2474
|
-
const measure = findMeasureById(measures, id);
|
2475
|
-
if (!measure) return value;
|
2476
|
-
const { format = {}, autoFormat = true } = measure;
|
2477
|
-
if (!chunk_VCYTMP4D_n(format)) {
|
2478
|
-
const formatter = createFormatter(format);
|
2479
|
-
return formatter(value);
|
2480
|
-
}
|
2481
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2482
|
-
return String(value);
|
2483
|
-
};
|
2484
|
-
result.push(formatValue(datum[measureValue]));
|
2485
|
-
return result.join(' ');
|
2486
|
-
}
|
2487
|
-
};
|
2488
|
-
return result;
|
2489
|
-
};
|
2490
|
-
const tooltip_tooltip = (spec, context)=>{
|
2491
|
-
const result = {
|
2492
|
-
...spec
|
2493
|
-
};
|
2494
|
-
const { advancedVSeed } = context;
|
2495
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
2496
|
-
const baseConfig = advancedVSeed.config[chartType];
|
2497
|
-
const { tooltip = {
|
2498
|
-
enable: true
|
2499
|
-
} } = baseConfig;
|
2500
|
-
const { enable } = tooltip;
|
2501
|
-
const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
|
2502
|
-
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
2503
|
-
result.tooltip = {
|
2504
|
-
visible: enable,
|
2505
|
-
mark: {
|
2506
|
-
title: {
|
2507
|
-
visible: true
|
2508
|
-
},
|
2509
|
-
content: [
|
2510
|
-
...dimensions.map((item)=>({
|
2511
|
-
visible: true,
|
2512
|
-
hasShape: true,
|
2513
|
-
shapeType: 'rectRound',
|
2514
|
-
key: (datum)=>{
|
2515
|
-
if (item.alias || item.id) return item.alias || item.id;
|
2516
|
-
return datum && datum[item.id];
|
2517
|
-
},
|
2518
|
-
value: (datum)=>datum && datum[item.id]
|
2519
|
-
})),
|
2520
|
-
{
|
2521
|
-
visible: true,
|
2522
|
-
hasShape: true,
|
2523
|
-
key: (datum)=>datum && datum[measureName || colorName] || '',
|
2524
|
-
value: (datum)=>{
|
2525
|
-
if (!datum) return '';
|
2526
|
-
const value = datum[measureValue];
|
2527
|
-
const id = datum[measureId];
|
2528
|
-
const measure = findMeasureById(measures, id);
|
2529
|
-
if (!measure) return String(value);
|
2530
|
-
const { format = {}, autoFormat = true } = measure;
|
2531
|
-
if (!chunk_VCYTMP4D_n(format)) {
|
2532
|
-
const formatter = createFormatter(format);
|
2533
|
-
return formatter(value);
|
2534
|
-
}
|
2535
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2536
|
-
return String(value);
|
2537
|
-
}
|
2538
|
-
}
|
2539
|
-
]
|
2540
|
-
},
|
2541
|
-
dimension: {
|
2542
|
-
content: [
|
2543
|
-
{
|
2544
|
-
visible: true,
|
2545
|
-
key: (datum)=>datum && datum[colorName] || '',
|
2546
|
-
value: (datum)=>{
|
2547
|
-
if (!datum) return '';
|
2548
|
-
const value = datum[measureValue];
|
2549
|
-
const id = datum[measureId];
|
2550
|
-
const measure = findMeasureById(measures, id);
|
2551
|
-
if (!measure) return String(value);
|
2552
|
-
const { format = {}, autoFormat = true } = measure;
|
2553
|
-
if (!chunk_VCYTMP4D_n(format)) {
|
2554
|
-
const formatter = createFormatter(format);
|
2555
|
-
return formatter(value);
|
2556
|
-
}
|
2557
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2558
|
-
return String(value);
|
2559
|
-
},
|
2560
|
-
shapeType: 'rectRound'
|
2561
|
-
}
|
2562
|
-
]
|
2563
|
-
}
|
2564
|
-
};
|
2565
|
-
return result;
|
2566
|
-
};
|
2567
2511
|
const verticalCrosshairLine = (spec, context)=>{
|
2568
2512
|
const result = {
|
2569
2513
|
...spec
|
@@ -3088,6 +3032,117 @@
|
|
3088
3032
|
}
|
3089
3033
|
};
|
3090
3034
|
};
|
3035
|
+
const label_label = (spec, context)=>{
|
3036
|
+
const result = {
|
3037
|
+
...spec
|
3038
|
+
};
|
3039
|
+
const { advancedVSeed } = context;
|
3040
|
+
const { measures, datasetReshapeInfo, locale } = advancedVSeed;
|
3041
|
+
const { chartType } = advancedVSeed;
|
3042
|
+
const baseConfig = advancedVSeed.config[chartType];
|
3043
|
+
if (!baseConfig || !baseConfig.label) return result;
|
3044
|
+
const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo;
|
3045
|
+
const { label } = baseConfig;
|
3046
|
+
const { enable } = label;
|
3047
|
+
result.label = {
|
3048
|
+
visible: enable,
|
3049
|
+
formatMethod: (value, datum)=>{
|
3050
|
+
const result = [];
|
3051
|
+
const formatValue = (value)=>{
|
3052
|
+
const id = datum[measureId];
|
3053
|
+
const measure = findMeasureById(measures, id);
|
3054
|
+
if (!measure) return value;
|
3055
|
+
const { format = {}, autoFormat = true } = measure;
|
3056
|
+
if (!chunk_VCYTMP4D_n(format)) {
|
3057
|
+
const formatter = createFormatter(format);
|
3058
|
+
return formatter(value);
|
3059
|
+
}
|
3060
|
+
if (autoFormat) return autoFormatter(value, locale);
|
3061
|
+
return String(value);
|
3062
|
+
};
|
3063
|
+
result.push(formatValue(datum[measureValue]));
|
3064
|
+
return result.join(' ');
|
3065
|
+
}
|
3066
|
+
};
|
3067
|
+
return result;
|
3068
|
+
};
|
3069
|
+
const tooltip_tooltip = (spec, context)=>{
|
3070
|
+
const result = {
|
3071
|
+
...spec
|
3072
|
+
};
|
3073
|
+
const { advancedVSeed } = context;
|
3074
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
3075
|
+
const baseConfig = advancedVSeed.config[chartType];
|
3076
|
+
const { tooltip = {
|
3077
|
+
enable: true
|
3078
|
+
} } = baseConfig;
|
3079
|
+
const { enable } = tooltip;
|
3080
|
+
const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
|
3081
|
+
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
3082
|
+
result.tooltip = {
|
3083
|
+
visible: enable,
|
3084
|
+
mark: {
|
3085
|
+
title: {
|
3086
|
+
visible: true
|
3087
|
+
},
|
3088
|
+
content: [
|
3089
|
+
...dimensions.map((item)=>({
|
3090
|
+
visible: true,
|
3091
|
+
hasShape: true,
|
3092
|
+
shapeType: 'rectRound',
|
3093
|
+
key: (datum)=>{
|
3094
|
+
if (item.alias || item.id) return item.alias || item.id;
|
3095
|
+
return datum && datum[item.id];
|
3096
|
+
},
|
3097
|
+
value: (datum)=>datum && datum[item.id]
|
3098
|
+
})),
|
3099
|
+
{
|
3100
|
+
visible: true,
|
3101
|
+
hasShape: true,
|
3102
|
+
key: (datum)=>datum && datum[measureName || colorName] || '',
|
3103
|
+
value: (datum)=>{
|
3104
|
+
if (!datum) return '';
|
3105
|
+
const value = datum[measureValue];
|
3106
|
+
const id = datum[measureId];
|
3107
|
+
const measure = findMeasureById(measures, id);
|
3108
|
+
if (!measure) return String(value);
|
3109
|
+
const { format = {}, autoFormat = true } = measure;
|
3110
|
+
if (!chunk_VCYTMP4D_n(format)) {
|
3111
|
+
const formatter = createFormatter(format);
|
3112
|
+
return formatter(value);
|
3113
|
+
}
|
3114
|
+
if (autoFormat) return autoFormatter(value, locale);
|
3115
|
+
return String(value);
|
3116
|
+
}
|
3117
|
+
}
|
3118
|
+
]
|
3119
|
+
},
|
3120
|
+
dimension: {
|
3121
|
+
content: [
|
3122
|
+
{
|
3123
|
+
visible: true,
|
3124
|
+
key: (datum)=>datum && datum[colorName] || '',
|
3125
|
+
value: (datum)=>{
|
3126
|
+
if (!datum) return '';
|
3127
|
+
const value = datum[measureValue];
|
3128
|
+
const id = datum[measureId];
|
3129
|
+
const measure = findMeasureById(measures, id);
|
3130
|
+
if (!measure) return String(value);
|
3131
|
+
const { format = {}, autoFormat = true } = measure;
|
3132
|
+
if (!chunk_VCYTMP4D_n(format)) {
|
3133
|
+
const formatter = createFormatter(format);
|
3134
|
+
return formatter(value);
|
3135
|
+
}
|
3136
|
+
if (autoFormat) return autoFormatter(value, locale);
|
3137
|
+
return String(value);
|
3138
|
+
},
|
3139
|
+
shapeType: 'rectRound'
|
3140
|
+
}
|
3141
|
+
]
|
3142
|
+
}
|
3143
|
+
};
|
3144
|
+
return result;
|
3145
|
+
};
|
3091
3146
|
const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
|
3092
3147
|
if ('string' == typeof value) return obj[key] === value;
|
3093
3148
|
if ('number' == typeof value) return obj[key] === value;
|
@@ -3849,6 +3904,93 @@
|
|
3849
3904
|
legends
|
3850
3905
|
};
|
3851
3906
|
};
|
3907
|
+
const pivotColorLegend = (spec, context)=>{
|
3908
|
+
const result = {
|
3909
|
+
...spec
|
3910
|
+
};
|
3911
|
+
const { advancedVSeed } = context;
|
3912
|
+
const { chartType } = advancedVSeed;
|
3913
|
+
const baseConfig = advancedVSeed.config[chartType];
|
3914
|
+
if (!baseConfig || !baseConfig.legend) return result;
|
3915
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3916
|
+
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[1]));
|
3917
|
+
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[0]));
|
3918
|
+
const { legend, color } = baseConfig;
|
3919
|
+
const { colorScheme, linearColorScheme } = color;
|
3920
|
+
const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
|
3921
|
+
const orient = [
|
3922
|
+
'bottom',
|
3923
|
+
'bottomLeft',
|
3924
|
+
'bottomRight',
|
3925
|
+
'bl',
|
3926
|
+
'br'
|
3927
|
+
].includes(position) ? 'bottom' : [
|
3928
|
+
'top',
|
3929
|
+
'topLeft',
|
3930
|
+
'topRight',
|
3931
|
+
'tl',
|
3932
|
+
'tr'
|
3933
|
+
].includes(position) ? 'top' : [
|
3934
|
+
'left',
|
3935
|
+
'leftTop',
|
3936
|
+
'leftBottom',
|
3937
|
+
'lt',
|
3938
|
+
'lb'
|
3939
|
+
].includes(position) ? 'left' : 'right';
|
3940
|
+
const legendPosition = [
|
3941
|
+
'topLeft',
|
3942
|
+
'bottomLeft',
|
3943
|
+
'leftTop',
|
3944
|
+
'rightTop',
|
3945
|
+
'lt',
|
3946
|
+
'rt',
|
3947
|
+
'tl',
|
3948
|
+
'bl'
|
3949
|
+
].includes(position) ? 'start' : [
|
3950
|
+
'topRight',
|
3951
|
+
'bottomRight',
|
3952
|
+
'leftBottom',
|
3953
|
+
'rightBottom',
|
3954
|
+
'lb',
|
3955
|
+
'rb',
|
3956
|
+
'rt',
|
3957
|
+
'br'
|
3958
|
+
].includes(position) ? 'end' : 'middle';
|
3959
|
+
const legends = {
|
3960
|
+
visible: enable,
|
3961
|
+
type: 'color',
|
3962
|
+
orient,
|
3963
|
+
position: legendPosition,
|
3964
|
+
colors: linearColorScheme || colorScheme || [],
|
3965
|
+
value: [
|
3966
|
+
min,
|
3967
|
+
max
|
3968
|
+
],
|
3969
|
+
min: min,
|
3970
|
+
max: max,
|
3971
|
+
maxWidth: '30%',
|
3972
|
+
startText: {
|
3973
|
+
visible: true,
|
3974
|
+
style: {
|
3975
|
+
fill: labelFontColor,
|
3976
|
+
fontSize: labelFontSize,
|
3977
|
+
fontWeight: labelFontWeight
|
3978
|
+
}
|
3979
|
+
},
|
3980
|
+
endText: {
|
3981
|
+
visible: true,
|
3982
|
+
style: {
|
3983
|
+
fill: labelFontColor,
|
3984
|
+
fontSize: labelFontSize,
|
3985
|
+
fontWeight: labelFontWeight
|
3986
|
+
}
|
3987
|
+
}
|
3988
|
+
};
|
3989
|
+
return {
|
3990
|
+
...result,
|
3991
|
+
legends
|
3992
|
+
};
|
3993
|
+
};
|
3852
3994
|
const pivotAdapter_pivotAdapter = (pipeline, pivotPipeline)=>(spec, context)=>{
|
3853
3995
|
const { vseed } = context;
|
3854
3996
|
const usePivotChart = isPivotChart(vseed);
|
@@ -3863,13 +4005,13 @@
|
|
3863
4005
|
progressive,
|
3864
4006
|
xBand,
|
3865
4007
|
yLinear,
|
3866
|
-
label_label,
|
3867
|
-
tooltip_tooltip,
|
3868
4008
|
verticalCrosshairLine,
|
3869
4009
|
colorAdapter(discreteLegend, colorLegend),
|
3870
4010
|
colorPointStyleFill(pointStyle_pointStyle),
|
3871
4011
|
pointStateDimensionHover,
|
3872
4012
|
colorLineStyleFill(lineStyle_lineStyle),
|
4013
|
+
label_label,
|
4014
|
+
tooltip_tooltip,
|
3873
4015
|
annotationPoint_annotationPoint,
|
3874
4016
|
annotationVerticalLine_annotationVerticalLine,
|
3875
4017
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3882,18 +4024,18 @@
|
|
3882
4024
|
datasetPivot,
|
3883
4025
|
pivotIndicators_pivotIndicators([
|
3884
4026
|
initLine,
|
3885
|
-
color_color,
|
4027
|
+
colorAdapter(color_color, linearColor),
|
3886
4028
|
background_backgroundColor,
|
3887
4029
|
datasetXY,
|
3888
4030
|
progressive,
|
3889
4031
|
xBand,
|
3890
4032
|
yLinear,
|
3891
|
-
label_label,
|
3892
|
-
tooltip_tooltip,
|
3893
4033
|
verticalCrosshairLine,
|
3894
|
-
pointStyle_pointStyle,
|
4034
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
3895
4035
|
pointStateDimensionHover,
|
3896
|
-
lineStyle_lineStyle,
|
4036
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
4037
|
+
label_label,
|
4038
|
+
tooltip_tooltip,
|
3897
4039
|
annotationPoint_annotationPoint,
|
3898
4040
|
annotationVerticalLine_annotationVerticalLine,
|
3899
4041
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3901,7 +4043,7 @@
|
|
3901
4043
|
]),
|
3902
4044
|
pivotRowDimensions,
|
3903
4045
|
pivotColumnDimensions,
|
3904
|
-
pivotDiscreteLegend
|
4046
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
3905
4047
|
];
|
3906
4048
|
const lineSpecPipeline = [
|
3907
4049
|
pivotAdapter_pivotAdapter(line_line, pivotLine)
|
@@ -3912,51 +4054,58 @@
|
|
3912
4054
|
};
|
3913
4055
|
const encodingForColumn = (advancedVSeed, context)=>{
|
3914
4056
|
const { vseed } = context;
|
3915
|
-
const {
|
3916
|
-
|
3917
|
-
const
|
3918
|
-
|
3919
|
-
|
3920
|
-
|
3921
|
-
|
3922
|
-
|
3923
|
-
|
3924
|
-
|
3925
|
-
const detail = encoding.detail || [];
|
3926
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
3927
|
-
...color,
|
3928
|
-
...detail
|
3929
|
-
]) : detail;
|
3930
|
-
return {
|
3931
|
-
...advancedVSeed,
|
3932
|
-
encoding: {
|
3933
|
-
...encoding,
|
3934
|
-
x,
|
3935
|
-
color,
|
3936
|
-
detail: mergedDetail
|
3937
|
-
}
|
3938
|
-
};
|
3939
|
-
}
|
3940
|
-
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
3941
|
-
const mergedEncoding = {
|
3942
|
-
x: dimensions.slice(0, 1).map((item)=>item.id),
|
3943
|
-
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
3944
|
-
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
3945
|
-
tooltip: dimensions.map((item)=>item.id),
|
3946
|
-
label: [],
|
3947
|
-
row: [],
|
3948
|
-
column: []
|
3949
|
-
};
|
4057
|
+
const { measures: vseedMeasures = [] } = vseed;
|
4058
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
4059
|
+
const dimensions = getBasicDimensions(vseed);
|
4060
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
4061
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
4062
|
+
const encoding = {};
|
4063
|
+
if (hasDimensionEncoding) column_generateDimensionEncoding(dimensions, encoding);
|
4064
|
+
else column_generateDefaultDimensionEncoding(dimensions, encoding);
|
4065
|
+
if (hasMeasureEncoding) column_generateMeasureEncoding(measures, encoding);
|
4066
|
+
else column_generateDefaultMeasureEncoding(measures, encoding);
|
3950
4067
|
return {
|
3951
4068
|
...advancedVSeed,
|
3952
|
-
encoding
|
4069
|
+
encoding
|
3953
4070
|
};
|
3954
4071
|
};
|
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
|
+
const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
4077
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4078
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
4079
|
+
encoding.x = uniqueDimIds.slice(0, 1);
|
4080
|
+
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4081
|
+
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4082
|
+
encoding.tooltip = uniqueDimIds;
|
4083
|
+
encoding.label = [];
|
4084
|
+
encoding.row = [];
|
4085
|
+
encoding.column = [];
|
4086
|
+
};
|
4087
|
+
const column_generateMeasureEncoding = (measures, encoding)=>{
|
4088
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
4089
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4090
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4091
|
+
if (color.length > 0) encoding.color = color;
|
4092
|
+
return encoding;
|
4093
|
+
};
|
4094
|
+
const column_generateDimensionEncoding = (dimensions, encoding)=>{
|
4095
|
+
encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
4096
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4097
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4098
|
+
if (0 === encoding.x.length) encoding.x = [
|
4099
|
+
dimensions[0].id
|
4100
|
+
];
|
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);
|
4103
|
+
};
|
3955
4104
|
const columnAdvancedPipeline = [
|
3956
4105
|
initAdvancedVSeed_initAdvancedVSeed,
|
4106
|
+
encodingForColumn,
|
3957
4107
|
buildMeasures,
|
3958
4108
|
autoDimensions_autoDimensions,
|
3959
|
-
encodingForColumn,
|
3960
4109
|
pivotAdapter([
|
3961
4110
|
reshapeWithEncoding
|
3962
4111
|
], [
|
@@ -4259,93 +4408,6 @@
|
|
4259
4408
|
markArea: markArea
|
4260
4409
|
};
|
4261
4410
|
};
|
4262
|
-
const pivotColorLegend = (spec, context)=>{
|
4263
|
-
const result = {
|
4264
|
-
...spec
|
4265
|
-
};
|
4266
|
-
const { advancedVSeed } = context;
|
4267
|
-
const { chartType } = advancedVSeed;
|
4268
|
-
const baseConfig = advancedVSeed.config[chartType];
|
4269
|
-
if (!baseConfig || !baseConfig.legend) return result;
|
4270
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
4271
|
-
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[1]));
|
4272
|
-
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[0]));
|
4273
|
-
const { legend, color } = baseConfig;
|
4274
|
-
const { colorScheme, linearColorScheme } = color;
|
4275
|
-
const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
|
4276
|
-
const orient = [
|
4277
|
-
'bottom',
|
4278
|
-
'bottomLeft',
|
4279
|
-
'bottomRight',
|
4280
|
-
'bl',
|
4281
|
-
'br'
|
4282
|
-
].includes(position) ? 'bottom' : [
|
4283
|
-
'top',
|
4284
|
-
'topLeft',
|
4285
|
-
'topRight',
|
4286
|
-
'tl',
|
4287
|
-
'tr'
|
4288
|
-
].includes(position) ? 'top' : [
|
4289
|
-
'left',
|
4290
|
-
'leftTop',
|
4291
|
-
'leftBottom',
|
4292
|
-
'lt',
|
4293
|
-
'lb'
|
4294
|
-
].includes(position) ? 'left' : 'right';
|
4295
|
-
const legendPosition = [
|
4296
|
-
'topLeft',
|
4297
|
-
'bottomLeft',
|
4298
|
-
'leftTop',
|
4299
|
-
'rightTop',
|
4300
|
-
'lt',
|
4301
|
-
'rt',
|
4302
|
-
'tl',
|
4303
|
-
'bl'
|
4304
|
-
].includes(position) ? 'start' : [
|
4305
|
-
'topRight',
|
4306
|
-
'bottomRight',
|
4307
|
-
'leftBottom',
|
4308
|
-
'rightBottom',
|
4309
|
-
'lb',
|
4310
|
-
'rb',
|
4311
|
-
'rt',
|
4312
|
-
'br'
|
4313
|
-
].includes(position) ? 'end' : 'middle';
|
4314
|
-
const legends = {
|
4315
|
-
visible: enable,
|
4316
|
-
type: 'color',
|
4317
|
-
orient,
|
4318
|
-
position: legendPosition,
|
4319
|
-
colors: linearColorScheme || colorScheme || [],
|
4320
|
-
value: [
|
4321
|
-
min,
|
4322
|
-
max
|
4323
|
-
],
|
4324
|
-
min: min,
|
4325
|
-
max: max,
|
4326
|
-
maxWidth: '30%',
|
4327
|
-
startText: {
|
4328
|
-
visible: true,
|
4329
|
-
style: {
|
4330
|
-
fill: labelFontColor,
|
4331
|
-
fontSize: labelFontSize,
|
4332
|
-
fontWeight: labelFontWeight
|
4333
|
-
}
|
4334
|
-
},
|
4335
|
-
endText: {
|
4336
|
-
visible: true,
|
4337
|
-
style: {
|
4338
|
-
fill: labelFontColor,
|
4339
|
-
fontSize: labelFontSize,
|
4340
|
-
fontWeight: labelFontWeight
|
4341
|
-
}
|
4342
|
-
}
|
4343
|
-
};
|
4344
|
-
return {
|
4345
|
-
...result,
|
4346
|
-
legends
|
4347
|
-
};
|
4348
|
-
};
|
4349
4411
|
const column = [
|
4350
4412
|
initColumn,
|
4351
4413
|
stackCornerRadius_stackCornerRadius,
|
@@ -4403,9 +4465,9 @@
|
|
4403
4465
|
};
|
4404
4466
|
const columnParallelAdvancedPipeline = [
|
4405
4467
|
initAdvancedVSeed_initAdvancedVSeed,
|
4468
|
+
encodingForColumn,
|
4406
4469
|
buildMeasures,
|
4407
4470
|
autoDimensions_autoDimensions,
|
4408
|
-
encodingForColumn,
|
4409
4471
|
pivotAdapter([
|
4410
4472
|
reshapeWithEncoding
|
4411
4473
|
], [
|
@@ -4500,9 +4562,9 @@
|
|
4500
4562
|
};
|
4501
4563
|
const columnPercentAdvancedPipeline = [
|
4502
4564
|
initAdvancedVSeed_initAdvancedVSeed,
|
4565
|
+
encodingForColumn,
|
4503
4566
|
buildMeasures,
|
4504
4567
|
autoDimensions_autoDimensions,
|
4505
|
-
encodingForColumn,
|
4506
4568
|
pivotAdapter([
|
4507
4569
|
reshapeWithEncoding
|
4508
4570
|
], [
|
@@ -4581,46 +4643,53 @@
|
|
4581
4643
|
};
|
4582
4644
|
const encodingForBar = (advancedVSeed, context)=>{
|
4583
4645
|
const { vseed } = context;
|
4584
|
-
const {
|
4585
|
-
|
4586
|
-
const
|
4587
|
-
|
4588
|
-
|
4589
|
-
|
4590
|
-
|
4591
|
-
|
4592
|
-
|
4593
|
-
|
4594
|
-
const detail = encoding.detail || [];
|
4595
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
4596
|
-
...color,
|
4597
|
-
...detail
|
4598
|
-
]) : detail;
|
4599
|
-
return {
|
4600
|
-
...advancedVSeed,
|
4601
|
-
encoding: {
|
4602
|
-
...encoding,
|
4603
|
-
y,
|
4604
|
-
color,
|
4605
|
-
detail: mergedDetail
|
4606
|
-
}
|
4607
|
-
};
|
4608
|
-
}
|
4609
|
-
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4610
|
-
const mergedEncoding = {
|
4611
|
-
y: dimensions.slice(0, 1).map((item)=>item.id),
|
4612
|
-
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
4613
|
-
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
4614
|
-
tooltip: dimensions.map((item)=>item.id),
|
4615
|
-
label: [],
|
4616
|
-
row: [],
|
4617
|
-
column: []
|
4618
|
-
};
|
4646
|
+
const { measures: vseedMeasures = [] } = vseed;
|
4647
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
4648
|
+
const dimensions = getBasicDimensions(vseed);
|
4649
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
4650
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
4651
|
+
const encoding = {};
|
4652
|
+
if (hasDimensionEncoding) bar_generateDimensionEncoding(dimensions, encoding);
|
4653
|
+
else bar_generateDefaultDimensionEncoding(dimensions, encoding);
|
4654
|
+
if (hasMeasureEncoding) bar_generateMeasureEncoding(measures, encoding);
|
4655
|
+
else bar_generateDefaultMeasureEncoding(measures, encoding);
|
4619
4656
|
return {
|
4620
4657
|
...advancedVSeed,
|
4621
|
-
encoding
|
4658
|
+
encoding
|
4622
4659
|
};
|
4623
4660
|
};
|
4661
|
+
const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
4662
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
4663
|
+
encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4664
|
+
};
|
4665
|
+
const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
4666
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4667
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
4668
|
+
encoding.y = uniqueDimIds.slice(0, 1);
|
4669
|
+
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4670
|
+
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4671
|
+
encoding.tooltip = uniqueDimIds;
|
4672
|
+
encoding.label = [];
|
4673
|
+
encoding.row = [];
|
4674
|
+
encoding.column = [];
|
4675
|
+
};
|
4676
|
+
const bar_generateMeasureEncoding = (measures, encoding)=>{
|
4677
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
4678
|
+
encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4679
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4680
|
+
if (color.length > 0) encoding.color = color;
|
4681
|
+
return encoding;
|
4682
|
+
};
|
4683
|
+
const bar_generateDimensionEncoding = (dimensions, encoding)=>{
|
4684
|
+
encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
4685
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4686
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4687
|
+
if (0 === encoding.y.length) encoding.y = [
|
4688
|
+
dimensions[0].id
|
4689
|
+
];
|
4690
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
|
4691
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
|
4692
|
+
};
|
4624
4693
|
const sortYBandAxis = (advancedVSeed, context)=>{
|
4625
4694
|
const result = {
|
4626
4695
|
...advancedVSeed
|
@@ -4639,9 +4708,9 @@
|
|
4639
4708
|
};
|
4640
4709
|
const barAdvancedPipeline = [
|
4641
4710
|
initAdvancedVSeed_initAdvancedVSeed,
|
4711
|
+
encodingForBar,
|
4642
4712
|
buildMeasures,
|
4643
4713
|
autoDimensions_autoDimensions,
|
4644
|
-
encodingForBar,
|
4645
4714
|
pivotAdapter([
|
4646
4715
|
reshapeWithEncoding
|
4647
4716
|
], [
|
@@ -5159,9 +5228,9 @@
|
|
5159
5228
|
};
|
5160
5229
|
const areaAdvancedPipeline = [
|
5161
5230
|
initAdvancedVSeed_initAdvancedVSeed,
|
5231
|
+
encodingForLine,
|
5162
5232
|
buildMeasures,
|
5163
5233
|
autoDimensions_autoDimensions,
|
5164
|
-
encodingForColumn,
|
5165
5234
|
pivotAdapter([
|
5166
5235
|
reshapeWithEncoding
|
5167
5236
|
], [
|
@@ -5317,9 +5386,9 @@
|
|
5317
5386
|
};
|
5318
5387
|
const areaPercentAdvancedPipeline = [
|
5319
5388
|
initAdvancedVSeed_initAdvancedVSeed,
|
5389
|
+
encodingForLine,
|
5320
5390
|
buildMeasures,
|
5321
5391
|
autoDimensions_autoDimensions,
|
5322
|
-
encodingForColumn,
|
5323
5392
|
pivotAdapter([
|
5324
5393
|
reshapeWithEncoding
|
5325
5394
|
], [
|
@@ -5393,6 +5462,49 @@
|
|
5393
5462
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5394
5463
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5395
5464
|
};
|
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);
|
5470
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
5471
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
5472
|
+
const encoding = {};
|
5473
|
+
if (hasDimensionEncoding) scatter_generateDimensionEncoding(dimensions, encoding);
|
5474
|
+
else scatter_generateDefaultDimensionEncoding(dimensions, encoding);
|
5475
|
+
if (hasMeasureEncoding) scatter_generateMeasureEncoding(measures, encoding);
|
5476
|
+
else scatter_generateDefaultMeasureEncoding(measures, encoding);
|
5477
|
+
return {
|
5478
|
+
...advancedVSeed,
|
5479
|
+
encoding
|
5480
|
+
};
|
5481
|
+
};
|
5482
|
+
const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5483
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
5484
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5485
|
+
};
|
5486
|
+
const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
5487
|
+
const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
|
5488
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureName.map((d)=>d.id));
|
5489
|
+
encoding.color = uniqueDimIds.slice(0);
|
5490
|
+
encoding.detail = uniqueDimIds.slice(0);
|
5491
|
+
encoding.tooltip = uniqueDimIds;
|
5492
|
+
encoding.label = [];
|
5493
|
+
encoding.row = [];
|
5494
|
+
encoding.column = [];
|
5495
|
+
};
|
5496
|
+
const scatter_generateMeasureEncoding = (measures, encoding)=>{
|
5497
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
5498
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5499
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5500
|
+
if (color.length > 0) encoding.color = color;
|
5501
|
+
};
|
5502
|
+
const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
|
5503
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5504
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5505
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
5506
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
5507
|
+
};
|
5396
5508
|
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
5397
5509
|
const { vseed } = context;
|
5398
5510
|
if (isMeasureTreeWithChildren(vseed)) {
|
@@ -5483,52 +5595,16 @@
|
|
5483
5595
|
const encoding = Array.isArray(item.encoding) ? item.encoding : [
|
5484
5596
|
item.encoding
|
5485
5597
|
];
|
5486
|
-
const isY = encoding.includes('yAxis');
|
5487
5598
|
const isX = encoding.includes('xAxis');
|
5599
|
+
const isY = encoding.includes('yAxis');
|
5600
|
+
const isEmpty = !encoding.length;
|
5488
5601
|
if (isY) scatterChart.yMeasures.push(item);
|
5489
5602
|
else if (isX) scatterChart.xMeasures.push(item);
|
5490
|
-
else if (
|
5603
|
+
else if (isEmpty) if (0 === scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
5491
5604
|
else scatterChart.xMeasures.push(item);
|
5492
5605
|
});
|
5493
5606
|
return scatterMeasuresToMeasureTree(scatterMeasures);
|
5494
5607
|
};
|
5495
|
-
const encodingForScatter = (advancedVSeed, context)=>{
|
5496
|
-
const { vseed } = context;
|
5497
|
-
const { dimensions } = advancedVSeed;
|
5498
|
-
if (!dimensions) return advancedVSeed;
|
5499
|
-
const encoding = vseed.encoding;
|
5500
|
-
if (encoding) {
|
5501
|
-
const detail = encoding.detail || [];
|
5502
|
-
const color = encoding.color || [
|
5503
|
-
(dimensions[1] || dimensions[0]).id
|
5504
|
-
];
|
5505
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
5506
|
-
...color,
|
5507
|
-
...detail
|
5508
|
-
]) : detail;
|
5509
|
-
return {
|
5510
|
-
...advancedVSeed,
|
5511
|
-
encoding: {
|
5512
|
-
...encoding,
|
5513
|
-
color,
|
5514
|
-
detail: mergedDetail
|
5515
|
-
}
|
5516
|
-
};
|
5517
|
-
}
|
5518
|
-
const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
|
5519
|
-
const mergedEncoding = {
|
5520
|
-
color: dimensions.slice(0).map((item)=>item.id),
|
5521
|
-
detail: dimensionsWithoutMeasureName.slice(0).map((item)=>item.id),
|
5522
|
-
tooltip: dimensionsWithoutMeasureName.map((item)=>item.id),
|
5523
|
-
label: [],
|
5524
|
-
row: [],
|
5525
|
-
column: []
|
5526
|
-
};
|
5527
|
-
return {
|
5528
|
-
...advancedVSeed,
|
5529
|
-
encoding: mergedEncoding
|
5530
|
-
};
|
5531
|
-
};
|
5532
5608
|
const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
5533
5609
|
const result = {
|
5534
5610
|
...advancedVSeed
|
@@ -5545,7 +5621,7 @@
|
|
5545
5621
|
const xMeasures = measures[0];
|
5546
5622
|
const yMeasures = measures[1] || xMeasures;
|
5547
5623
|
if (xMeasures && xMeasures.children) {
|
5548
|
-
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
5624
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (d)=>d.id), T(xMeasures.children, (d)=>d.id), encoding, {
|
5549
5625
|
foldMeasureValue: FoldXMeasureValue,
|
5550
5626
|
colorItemAsId: true,
|
5551
5627
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
@@ -5555,7 +5631,7 @@
|
|
5555
5631
|
unfoldInfoList.push(unfoldInfo);
|
5556
5632
|
}
|
5557
5633
|
if (yMeasures && yMeasures.children) {
|
5558
|
-
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
5634
|
+
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], T(dimensions, (d)=>d.id), T(yMeasures.children, (d)=>d.id), encoding, {
|
5559
5635
|
foldMeasureValue: FoldYMeasureValue,
|
5560
5636
|
colorItemAsId: true,
|
5561
5637
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
@@ -5659,9 +5735,9 @@
|
|
5659
5735
|
};
|
5660
5736
|
const scatterAdvancedPipeline = [
|
5661
5737
|
initAdvancedVSeed_initAdvancedVSeed,
|
5738
|
+
encodingForScatter,
|
5662
5739
|
buildMeasuresForScatter,
|
5663
5740
|
autoDimensions_autoDimensions,
|
5664
|
-
encodingForScatter,
|
5665
5741
|
pivotAdapter([
|
5666
5742
|
reshapeWithScatterEncoding
|
5667
5743
|
], [
|
@@ -5797,7 +5873,7 @@
|
|
5797
5873
|
]),
|
5798
5874
|
pivotRowDimensions,
|
5799
5875
|
pivotColumnDimensions,
|
5800
|
-
pivotDiscreteLegend
|
5876
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
5801
5877
|
];
|
5802
5878
|
const scatterSpecPipeline = [
|
5803
5879
|
pivotAdapter_pivotAdapter(scatter, pivotScatter)
|
@@ -5806,6 +5882,55 @@
|
|
5806
5882
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5807
5883
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5808
5884
|
};
|
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);
|
5890
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
5891
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
5892
|
+
const encoding = {};
|
5893
|
+
if (hasDimensionEncoding) dualAxis_generateDimensionEncoding(dimensions, encoding);
|
5894
|
+
else dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
|
5895
|
+
if (hasMeasureEncoding) dualAxis_generateMeasureEncoding(measures, encoding);
|
5896
|
+
else dualAxis_generateDefaultMeasureEncoding(measures, encoding);
|
5897
|
+
return {
|
5898
|
+
...advancedVSeed,
|
5899
|
+
encoding
|
5900
|
+
};
|
5901
|
+
};
|
5902
|
+
const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5903
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
5904
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5905
|
+
};
|
5906
|
+
const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
5907
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
5908
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
5909
|
+
encoding.x = uniqueDimIds.slice(0, 1);
|
5910
|
+
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5911
|
+
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5912
|
+
encoding.tooltip = uniqueDimIds;
|
5913
|
+
encoding.label = [];
|
5914
|
+
encoding.row = [];
|
5915
|
+
encoding.column = [];
|
5916
|
+
};
|
5917
|
+
const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
|
5918
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
5919
|
+
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5920
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5921
|
+
if (color.length > 0) encoding.color = color;
|
5922
|
+
return encoding;
|
5923
|
+
};
|
5924
|
+
const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
|
5925
|
+
encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
5926
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5927
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5928
|
+
if (0 === encoding.x.length) encoding.x = [
|
5929
|
+
dimensions[0].id
|
5930
|
+
];
|
5931
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
5932
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
5933
|
+
};
|
5809
5934
|
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5810
5935
|
const { vseed } = context;
|
5811
5936
|
if (isMeasureTreeWithChildren(vseed)) {
|
@@ -5898,54 +6023,14 @@
|
|
5898
6023
|
];
|
5899
6024
|
const isPrimary = encoding.includes('primaryYAxis');
|
5900
6025
|
const isSecondary = encoding.includes('secondaryYAxis');
|
6026
|
+
const isEmpty = !item.encoding;
|
5901
6027
|
if (isPrimary) dualChart.primaryMeasures.push(item);
|
5902
6028
|
else if (isSecondary) dualChart.secondaryMeasures.push(item);
|
5903
|
-
else if (
|
6029
|
+
else if (isEmpty) if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
|
5904
6030
|
else dualChart.secondaryMeasures.push(item);
|
5905
6031
|
});
|
5906
6032
|
return dualMeasuresToMeasureTree(dualMeasures);
|
5907
6033
|
};
|
5908
|
-
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5909
|
-
const { vseed } = context;
|
5910
|
-
const { dimensions } = advancedVSeed;
|
5911
|
-
if (!dimensions) return advancedVSeed;
|
5912
|
-
const encoding = vseed.encoding;
|
5913
|
-
if (encoding) {
|
5914
|
-
const x = encoding.x || [
|
5915
|
-
dimensions[0].id
|
5916
|
-
];
|
5917
|
-
const color = encoding.color || [
|
5918
|
-
(dimensions[1] || dimensions[0]).id
|
5919
|
-
];
|
5920
|
-
const detail = encoding.detail || [];
|
5921
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
5922
|
-
...color,
|
5923
|
-
...detail
|
5924
|
-
]) : detail;
|
5925
|
-
return {
|
5926
|
-
...advancedVSeed,
|
5927
|
-
encoding: {
|
5928
|
-
...encoding,
|
5929
|
-
x,
|
5930
|
-
color,
|
5931
|
-
detail: mergedDetail
|
5932
|
-
}
|
5933
|
-
};
|
5934
|
-
}
|
5935
|
-
const mergedEncoding = {
|
5936
|
-
x: dimensions.slice(0, 1).map((item)=>item.id),
|
5937
|
-
color: dimensions.slice(1).map((item)=>item.id),
|
5938
|
-
detail: dimensions.slice(1).map((item)=>item.id),
|
5939
|
-
tooltip: dimensions.map((item)=>item.id),
|
5940
|
-
label: [],
|
5941
|
-
row: [],
|
5942
|
-
column: []
|
5943
|
-
};
|
5944
|
-
return {
|
5945
|
-
...advancedVSeed,
|
5946
|
-
encoding: mergedEncoding
|
5947
|
-
};
|
5948
|
-
};
|
5949
6034
|
const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
5950
6035
|
const result = {
|
5951
6036
|
...advancedVSeed
|
@@ -6095,9 +6180,9 @@
|
|
6095
6180
|
};
|
6096
6181
|
const dualAxisAdvancedPipeline = [
|
6097
6182
|
initAdvancedVSeed_initAdvancedVSeed,
|
6183
|
+
encodingForDualAxis,
|
6098
6184
|
buildMeasuresForDualAxis,
|
6099
6185
|
autoDimensions_autoDimensions,
|
6100
|
-
encodingForDualAxis,
|
6101
6186
|
pivotAdapter([
|
6102
6187
|
reshapeWithDualEncoding
|
6103
6188
|
], [
|
@@ -6932,33 +7017,51 @@
|
|
6932
7017
|
};
|
6933
7018
|
const encodingForPie = (advancedVSeed, context)=>{
|
6934
7019
|
const { vseed } = context;
|
6935
|
-
const {
|
6936
|
-
|
6937
|
-
const
|
6938
|
-
|
6939
|
-
|
6940
|
-
|
6941
|
-
|
6942
|
-
|
6943
|
-
|
6944
|
-
|
6945
|
-
color: dimensions.slice(0).map((item)=>item.id),
|
6946
|
-
detail: dimensions.slice(0).map((item)=>item.id),
|
6947
|
-
tooltip: dimensions.map((item)=>item.id),
|
6948
|
-
label: [],
|
6949
|
-
row: [],
|
6950
|
-
column: []
|
6951
|
-
};
|
7020
|
+
const { measures: vseedMeasures = [] } = vseed;
|
7021
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
7022
|
+
const dimensions = getBasicDimensions(vseed);
|
7023
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
7024
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
7025
|
+
const encoding = {};
|
7026
|
+
if (hasDimensionEncoding) pie_generateDimensionEncoding(dimensions, encoding);
|
7027
|
+
else pie_generateDefaultDimensionEncoding(dimensions, encoding);
|
7028
|
+
if (hasMeasureEncoding) pie_generateMeasureEncoding(measures, encoding);
|
7029
|
+
else pie_generateDefaultMeasureEncoding(measures, encoding);
|
6952
7030
|
return {
|
6953
7031
|
...advancedVSeed,
|
6954
|
-
encoding
|
6955
|
-
};
|
7032
|
+
encoding
|
7033
|
+
};
|
7034
|
+
};
|
7035
|
+
const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7036
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
7037
|
+
encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
7038
|
+
};
|
7039
|
+
const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7040
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
7041
|
+
encoding.color = uniqueDimIds.slice(0);
|
7042
|
+
encoding.detail = uniqueDimIds.slice(0);
|
7043
|
+
encoding.tooltip = uniqueDimIds;
|
7044
|
+
encoding.label = [];
|
7045
|
+
encoding.row = [];
|
7046
|
+
encoding.column = [];
|
7047
|
+
};
|
7048
|
+
const pie_generateMeasureEncoding = (measures, encoding)=>{
|
7049
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
7050
|
+
encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
7051
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7052
|
+
if (color.length > 0) encoding.color = color;
|
7053
|
+
};
|
7054
|
+
const pie_generateDimensionEncoding = (dimensions, encoding)=>{
|
7055
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7056
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7057
|
+
if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
|
7058
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
|
6956
7059
|
};
|
6957
7060
|
const pieAdvancedPipeline = [
|
6958
7061
|
initAdvancedVSeed_initAdvancedVSeed,
|
7062
|
+
encodingForPie,
|
6959
7063
|
buildMeasures,
|
6960
7064
|
autoDimensions_autoDimensions,
|
6961
|
-
encodingForPie,
|
6962
7065
|
pivotAdapter([
|
6963
7066
|
reshapeWithEncoding
|
6964
7067
|
], [
|
@@ -6973,9 +7076,8 @@
|
|
6973
7076
|
...spec
|
6974
7077
|
};
|
6975
7078
|
const { advancedVSeed } = context;
|
6976
|
-
const { datasetReshapeInfo
|
7079
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
6977
7080
|
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
6978
|
-
const showStroke = dataset.length <= 30;
|
6979
7081
|
result.type = 'pie';
|
6980
7082
|
result.outerRadius = 0.8;
|
6981
7083
|
result.innerRadius = 0;
|
@@ -6987,30 +7089,57 @@
|
|
6987
7089
|
clip: true
|
6988
7090
|
}
|
6989
7091
|
];
|
6990
|
-
result.
|
6991
|
-
|
6992
|
-
|
6993
|
-
|
6994
|
-
|
6995
|
-
}
|
6996
|
-
|
6997
|
-
|
6998
|
-
|
7092
|
+
result.animation = true;
|
7093
|
+
return result;
|
7094
|
+
};
|
7095
|
+
const colorPieStyleFill = (stylePipe)=>(spec, context)=>{
|
7096
|
+
const result = stylePipe(spec, context);
|
7097
|
+
const { advancedVSeed } = context;
|
7098
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7099
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
7100
|
+
if (isLinearColor(advancedVSeed)) {
|
7101
|
+
if (result?.pie?.style) result.pie.style.fill = {
|
7102
|
+
field: unfoldInfo.encodingColor,
|
7103
|
+
scale: 'color'
|
7104
|
+
};
|
7105
|
+
}
|
7106
|
+
return result;
|
7107
|
+
};
|
7108
|
+
const pieStyle = (spec, context)=>{
|
7109
|
+
const { advancedVSeed } = context;
|
7110
|
+
const { dataset } = advancedVSeed;
|
7111
|
+
const showStroke = dataset.length <= 30;
|
7112
|
+
const result = {
|
7113
|
+
...spec,
|
7114
|
+
pie: {
|
7115
|
+
style: {}
|
7116
|
+
}
|
7117
|
+
};
|
7118
|
+
return {
|
7119
|
+
...result,
|
7120
|
+
pie: {
|
7121
|
+
style: {
|
7122
|
+
stroke: '#ffffff',
|
7123
|
+
lineWidth: showStroke ? 1 : 0
|
7124
|
+
},
|
7125
|
+
state: {
|
7126
|
+
hover: {
|
7127
|
+
outerRadius: 1.1 * result.outerRadius
|
7128
|
+
}
|
6999
7129
|
}
|
7000
7130
|
}
|
7001
7131
|
};
|
7002
|
-
result.animation = true;
|
7003
|
-
return result;
|
7004
7132
|
};
|
7005
7133
|
const pie = [
|
7006
7134
|
initPie,
|
7007
|
-
color_color,
|
7135
|
+
colorAdapter(color_color, linearColor),
|
7008
7136
|
background_backgroundColor,
|
7009
7137
|
datasetXY,
|
7010
7138
|
progressive,
|
7139
|
+
colorPieStyleFill(pieStyle),
|
7140
|
+
colorAdapter(discreteLegend, colorLegend),
|
7011
7141
|
label_label,
|
7012
7142
|
tooltip_tooltip,
|
7013
|
-
discreteLegend,
|
7014
7143
|
annotationPoint_annotationPoint,
|
7015
7144
|
annotationVerticalLine_annotationVerticalLine,
|
7016
7145
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7023,10 +7152,11 @@
|
|
7023
7152
|
datasetPivot,
|
7024
7153
|
pivotIndicators_pivotIndicators([
|
7025
7154
|
initPie,
|
7026
|
-
color_color,
|
7155
|
+
colorAdapter(color_color, linearColor),
|
7027
7156
|
background_backgroundColor,
|
7028
7157
|
datasetXY,
|
7029
7158
|
progressive,
|
7159
|
+
colorPieStyleFill(pieStyle),
|
7030
7160
|
label_label,
|
7031
7161
|
tooltip_tooltip,
|
7032
7162
|
annotationPoint_annotationPoint,
|
@@ -7036,7 +7166,7 @@
|
|
7036
7166
|
]),
|
7037
7167
|
pivotRowDimensions,
|
7038
7168
|
pivotColumnDimensions,
|
7039
|
-
pivotDiscreteLegend
|
7169
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7040
7170
|
];
|
7041
7171
|
const pieSpecPipeline = [
|
7042
7172
|
pivotAdapter_pivotAdapter(pie, pivotPie)
|
@@ -7064,43 +7194,32 @@
|
|
7064
7194
|
...spec
|
7065
7195
|
};
|
7066
7196
|
const { advancedVSeed } = context;
|
7067
|
-
const { datasetReshapeInfo
|
7197
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7068
7198
|
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
7069
|
-
const showStroke = dataset.length <= 30;
|
7070
7199
|
result.type = 'pie';
|
7071
7200
|
result.outerRadius = 0.8;
|
7072
7201
|
result.innerRadius = 0.8 * result.outerRadius;
|
7073
7202
|
result.valueField = foldInfo.measureValue;
|
7074
7203
|
result.categoryField = unfoldInfo.encodingColorId;
|
7075
7204
|
result.padding = 0;
|
7076
|
-
result.region = [
|
7077
|
-
{
|
7078
|
-
clip: true
|
7079
|
-
}
|
7080
|
-
];
|
7081
|
-
result.pie = {
|
7082
|
-
style: {
|
7083
|
-
stroke: '#ffffff',
|
7084
|
-
lineWidth: showStroke ? 1 : 0
|
7085
|
-
},
|
7086
|
-
state: {
|
7087
|
-
hover: {
|
7088
|
-
outerRadius: 1.1 * result.outerRadius
|
7089
|
-
}
|
7205
|
+
result.region = [
|
7206
|
+
{
|
7207
|
+
clip: true
|
7090
7208
|
}
|
7091
|
-
|
7209
|
+
];
|
7092
7210
|
result.animation = true;
|
7093
7211
|
return result;
|
7094
7212
|
};
|
7095
7213
|
const donut = [
|
7096
7214
|
initDonut,
|
7097
|
-
color_color,
|
7215
|
+
colorAdapter(color_color, linearColor),
|
7098
7216
|
background_backgroundColor,
|
7099
7217
|
datasetXY,
|
7100
7218
|
progressive,
|
7101
7219
|
label_label,
|
7220
|
+
colorPieStyleFill(pieStyle),
|
7221
|
+
colorAdapter(discreteLegend, colorLegend),
|
7102
7222
|
tooltip_tooltip,
|
7103
|
-
discreteLegend,
|
7104
7223
|
annotationPoint_annotationPoint,
|
7105
7224
|
annotationVerticalLine_annotationVerticalLine,
|
7106
7225
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7113,11 +7232,12 @@
|
|
7113
7232
|
datasetPivot,
|
7114
7233
|
pivotIndicators_pivotIndicators([
|
7115
7234
|
initDonut,
|
7116
|
-
color_color,
|
7235
|
+
colorAdapter(color_color, linearColor),
|
7117
7236
|
background_backgroundColor,
|
7118
7237
|
datasetXY,
|
7119
7238
|
progressive,
|
7120
7239
|
label_label,
|
7240
|
+
colorPieStyleFill(pieStyle),
|
7121
7241
|
tooltip_tooltip,
|
7122
7242
|
annotationPoint_annotationPoint,
|
7123
7243
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -7126,7 +7246,7 @@
|
|
7126
7246
|
]),
|
7127
7247
|
pivotRowDimensions,
|
7128
7248
|
pivotColumnDimensions,
|
7129
|
-
pivotDiscreteLegend
|
7249
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7130
7250
|
];
|
7131
7251
|
const donutSpecPipeline = [
|
7132
7252
|
pivotAdapter_pivotAdapter(donut, pivotDonut)
|
@@ -7137,51 +7257,57 @@
|
|
7137
7257
|
};
|
7138
7258
|
const encodingForRose = (advancedVSeed, context)=>{
|
7139
7259
|
const { vseed } = context;
|
7140
|
-
const {
|
7141
|
-
|
7142
|
-
const
|
7143
|
-
|
7144
|
-
|
7145
|
-
|
7146
|
-
|
7147
|
-
|
7148
|
-
|
7149
|
-
|
7150
|
-
const detail = encoding.detail || [];
|
7151
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
7152
|
-
...color,
|
7153
|
-
...detail
|
7154
|
-
]) : detail;
|
7155
|
-
return {
|
7156
|
-
...advancedVSeed,
|
7157
|
-
encoding: {
|
7158
|
-
...encoding,
|
7159
|
-
angle,
|
7160
|
-
color,
|
7161
|
-
detail: mergedDetail
|
7162
|
-
}
|
7163
|
-
};
|
7164
|
-
}
|
7165
|
-
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7166
|
-
const mergedEncoding = {
|
7167
|
-
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
7168
|
-
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
7169
|
-
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
7170
|
-
tooltip: dimensions.map((item)=>item.id),
|
7171
|
-
label: [],
|
7172
|
-
row: [],
|
7173
|
-
column: []
|
7174
|
-
};
|
7260
|
+
const { measures: vseedMeasures = [] } = vseed;
|
7261
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
7262
|
+
const dimensions = getBasicDimensions(vseed);
|
7263
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
7264
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
7265
|
+
const encoding = {};
|
7266
|
+
if (hasDimensionEncoding) rose_generateDimensionEncoding(dimensions, encoding);
|
7267
|
+
else rose_generateDefaultDimensionEncoding(dimensions, encoding);
|
7268
|
+
if (hasMeasureEncoding) rose_generateMeasureEncoding(measures, encoding);
|
7269
|
+
else rose_generateDefaultMeasureEncoding(measures, encoding);
|
7175
7270
|
return {
|
7176
7271
|
...advancedVSeed,
|
7177
|
-
encoding
|
7272
|
+
encoding
|
7178
7273
|
};
|
7179
7274
|
};
|
7275
|
+
const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7276
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
7277
|
+
encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7278
|
+
};
|
7279
|
+
const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7280
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7281
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
7282
|
+
encoding.angle = uniqueDimIds.slice(0, 1);
|
7283
|
+
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7284
|
+
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7285
|
+
encoding.tooltip = uniqueDimIds;
|
7286
|
+
encoding.label = [];
|
7287
|
+
encoding.row = [];
|
7288
|
+
encoding.column = [];
|
7289
|
+
};
|
7290
|
+
const rose_generateMeasureEncoding = (measures, encoding)=>{
|
7291
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
7292
|
+
encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7293
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7294
|
+
if (color.length > 0) encoding.color = color;
|
7295
|
+
};
|
7296
|
+
const rose_generateDimensionEncoding = (dimensions, encoding)=>{
|
7297
|
+
encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
7298
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7299
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7300
|
+
if (0 === encoding.angle.length) encoding.angle = [
|
7301
|
+
dimensions[0].id
|
7302
|
+
];
|
7303
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
|
7304
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
|
7305
|
+
};
|
7180
7306
|
const roseAdvancedPipeline = [
|
7181
7307
|
initAdvancedVSeed_initAdvancedVSeed,
|
7308
|
+
encodingForRose,
|
7182
7309
|
buildMeasures,
|
7183
7310
|
autoDimensions_autoDimensions,
|
7184
|
-
encodingForRose,
|
7185
7311
|
pivotAdapter([
|
7186
7312
|
reshapeWithEncoding
|
7187
7313
|
], [
|
@@ -7208,18 +7334,6 @@
|
|
7208
7334
|
result.innerRadius = 0;
|
7209
7335
|
const hasNegativeValue = dataset.flat().find((d)=>d[foldInfo.measureValue] < 0);
|
7210
7336
|
if (hasNegativeValue) result.innerRadius = 0.05;
|
7211
|
-
result.rose = {
|
7212
|
-
style: {
|
7213
|
-
stroke: '#ffffff',
|
7214
|
-
lineWidth: 1
|
7215
|
-
},
|
7216
|
-
state: {
|
7217
|
-
hover: {
|
7218
|
-
lineWidth: 1,
|
7219
|
-
fillOpacity: 0.6
|
7220
|
-
}
|
7221
|
-
}
|
7222
|
-
};
|
7223
7337
|
result.region = [
|
7224
7338
|
{
|
7225
7339
|
clip: true
|
@@ -7228,7 +7342,7 @@
|
|
7228
7342
|
result.animation = true;
|
7229
7343
|
return result;
|
7230
7344
|
};
|
7231
|
-
const
|
7345
|
+
const angleAxis = (spec, context)=>{
|
7232
7346
|
const result = {
|
7233
7347
|
...spec
|
7234
7348
|
};
|
@@ -7240,26 +7354,37 @@
|
|
7240
7354
|
const showAxis = !(is0D || is1M1D);
|
7241
7355
|
if (!result.axes) result.axes = [];
|
7242
7356
|
result.axes.push({
|
7243
|
-
orient: '
|
7357
|
+
orient: 'angle',
|
7244
7358
|
visible: showAxis,
|
7245
7359
|
zero: true,
|
7246
7360
|
nice: !!showAxis,
|
7361
|
+
paddingInner: showAxis ? [
|
7362
|
+
0.15,
|
7363
|
+
0.1
|
7364
|
+
] : [
|
7365
|
+
0,
|
7366
|
+
0
|
7367
|
+
],
|
7368
|
+
paddingOuter: showAxis ? [
|
7369
|
+
0.075,
|
7370
|
+
0.1
|
7371
|
+
] : [
|
7372
|
+
0,
|
7373
|
+
0
|
7374
|
+
],
|
7247
7375
|
grid: {
|
7248
7376
|
visible: showAxis
|
7249
7377
|
},
|
7250
|
-
|
7251
|
-
visible: showAxis
|
7252
|
-
},
|
7253
|
-
label: {
|
7378
|
+
domainLine: {
|
7254
7379
|
visible: showAxis
|
7255
7380
|
},
|
7256
|
-
|
7381
|
+
tick: {
|
7257
7382
|
visible: showAxis
|
7258
7383
|
}
|
7259
7384
|
});
|
7260
7385
|
return result;
|
7261
7386
|
};
|
7262
|
-
const
|
7387
|
+
const radiusAxis = (spec, context)=>{
|
7263
7388
|
const result = {
|
7264
7389
|
...spec
|
7265
7390
|
};
|
@@ -7271,50 +7396,79 @@
|
|
7271
7396
|
const showAxis = !(is0D || is1M1D);
|
7272
7397
|
if (!result.axes) result.axes = [];
|
7273
7398
|
result.axes.push({
|
7274
|
-
orient: '
|
7399
|
+
orient: 'radius',
|
7275
7400
|
visible: showAxis,
|
7276
7401
|
zero: true,
|
7277
7402
|
nice: !!showAxis,
|
7278
|
-
paddingInner: showAxis ? [
|
7279
|
-
0.15,
|
7280
|
-
0.1
|
7281
|
-
] : [
|
7282
|
-
0,
|
7283
|
-
0
|
7284
|
-
],
|
7285
|
-
paddingOuter: showAxis ? [
|
7286
|
-
0.075,
|
7287
|
-
0.1
|
7288
|
-
] : [
|
7289
|
-
0,
|
7290
|
-
0
|
7291
|
-
],
|
7292
7403
|
grid: {
|
7293
7404
|
visible: showAxis
|
7294
7405
|
},
|
7295
|
-
|
7406
|
+
tick: {
|
7296
7407
|
visible: showAxis
|
7297
7408
|
},
|
7298
|
-
|
7409
|
+
label: {
|
7410
|
+
visible: showAxis
|
7411
|
+
},
|
7412
|
+
domainLine: {
|
7299
7413
|
visible: showAxis
|
7300
7414
|
}
|
7301
7415
|
});
|
7302
7416
|
return result;
|
7303
7417
|
};
|
7418
|
+
const colorRoseStyleFill = (stylePipe)=>(spec, context)=>{
|
7419
|
+
const result = stylePipe(spec, context);
|
7420
|
+
const { advancedVSeed } = context;
|
7421
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7422
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
7423
|
+
if (isLinearColor(advancedVSeed)) {
|
7424
|
+
if (result?.rose?.style) result.rose.style.fill = {
|
7425
|
+
field: unfoldInfo.encodingColor,
|
7426
|
+
scale: 'color'
|
7427
|
+
};
|
7428
|
+
}
|
7429
|
+
return result;
|
7430
|
+
};
|
7431
|
+
const roseStyle = (spec, context)=>{
|
7432
|
+
const { advancedVSeed } = context;
|
7433
|
+
const { dataset } = advancedVSeed;
|
7434
|
+
const showStroke = dataset.length <= 30;
|
7435
|
+
const result = {
|
7436
|
+
...spec,
|
7437
|
+
rose: {
|
7438
|
+
style: {}
|
7439
|
+
}
|
7440
|
+
};
|
7441
|
+
return {
|
7442
|
+
...result,
|
7443
|
+
rose: {
|
7444
|
+
style: {
|
7445
|
+
stroke: '#ffffff',
|
7446
|
+
lineWidth: showStroke ? 1 : 0
|
7447
|
+
},
|
7448
|
+
state: {
|
7449
|
+
hover: {
|
7450
|
+
lineWidth: 1,
|
7451
|
+
fillOpacity: 0.6
|
7452
|
+
}
|
7453
|
+
}
|
7454
|
+
}
|
7455
|
+
};
|
7456
|
+
};
|
7304
7457
|
const rose = [
|
7305
7458
|
initRose,
|
7306
7459
|
stackCornerRadius_stackCornerRadius,
|
7307
7460
|
stackInverse,
|
7308
|
-
color_color,
|
7461
|
+
colorAdapter(color_color, linearColor),
|
7309
7462
|
background_backgroundColor,
|
7310
7463
|
datasetXY,
|
7311
7464
|
progressive,
|
7312
|
-
radiusAxis,
|
7313
7465
|
angleAxis,
|
7314
|
-
|
7315
|
-
tooltip_tooltip,
|
7466
|
+
radiusAxis,
|
7316
7467
|
verticalCrosshairRect,
|
7317
|
-
|
7468
|
+
colorRoseStyleFill(roseStyle),
|
7469
|
+
colorAdapter(discreteLegend, colorLegend),
|
7470
|
+
label_label,
|
7471
|
+
tooltip_tooltip
|
7318
7472
|
];
|
7319
7473
|
const pivotRose = [
|
7320
7474
|
initPivot,
|
@@ -7325,19 +7479,20 @@
|
|
7325
7479
|
initRose,
|
7326
7480
|
stackCornerRadius_stackCornerRadius,
|
7327
7481
|
stackInverse,
|
7328
|
-
color_color,
|
7482
|
+
colorAdapter(color_color, linearColor),
|
7329
7483
|
background_backgroundColor,
|
7330
7484
|
datasetXY,
|
7331
7485
|
progressive,
|
7332
7486
|
radiusAxis,
|
7333
7487
|
angleAxis,
|
7488
|
+
verticalCrosshairRect,
|
7489
|
+
colorRoseStyleFill(roseStyle),
|
7334
7490
|
label_label,
|
7335
|
-
tooltip_tooltip
|
7336
|
-
verticalCrosshairRect
|
7491
|
+
tooltip_tooltip
|
7337
7492
|
]),
|
7338
7493
|
pivotRowDimensions,
|
7339
7494
|
pivotColumnDimensions,
|
7340
|
-
pivotDiscreteLegend
|
7495
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7341
7496
|
];
|
7342
7497
|
const roseSpecPipeline = [
|
7343
7498
|
pivotAdapter_pivotAdapter(rose, pivotRose)
|
@@ -7348,9 +7503,9 @@
|
|
7348
7503
|
};
|
7349
7504
|
const roseParallelAdvancedPipeline = [
|
7350
7505
|
initAdvancedVSeed_initAdvancedVSeed,
|
7506
|
+
encodingForRose,
|
7351
7507
|
buildMeasures,
|
7352
7508
|
autoDimensions_autoDimensions,
|
7353
|
-
encodingForRose,
|
7354
7509
|
pivotAdapter([
|
7355
7510
|
reshapeWithEncoding
|
7356
7511
|
], [
|
@@ -7406,15 +7561,16 @@
|
|
7406
7561
|
const roseParallel = [
|
7407
7562
|
initRoseParallel,
|
7408
7563
|
stackCornerRadius_stackCornerRadius,
|
7409
|
-
color_color,
|
7564
|
+
colorAdapter(color_color, linearColor),
|
7410
7565
|
background_backgroundColor,
|
7411
7566
|
datasetXY,
|
7412
7567
|
progressive,
|
7413
7568
|
radiusAxis,
|
7414
7569
|
angleAxis,
|
7570
|
+
colorRoseStyleFill(roseStyle),
|
7571
|
+
colorAdapter(discreteLegend, colorLegend),
|
7415
7572
|
label_label,
|
7416
7573
|
tooltip_tooltip,
|
7417
|
-
discreteLegend,
|
7418
7574
|
verticalCrosshairRect,
|
7419
7575
|
annotationPoint_annotationPoint,
|
7420
7576
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -7429,15 +7585,16 @@
|
|
7429
7585
|
pivotIndicators_pivotIndicators([
|
7430
7586
|
initRoseParallel,
|
7431
7587
|
stackCornerRadius_stackCornerRadius,
|
7432
|
-
color_color,
|
7588
|
+
colorAdapter(color_color, linearColor),
|
7433
7589
|
background_backgroundColor,
|
7434
7590
|
datasetXY,
|
7435
7591
|
progressive,
|
7436
7592
|
radiusAxis,
|
7437
7593
|
angleAxis,
|
7594
|
+
verticalCrosshairRect,
|
7595
|
+
colorRoseStyleFill(roseStyle),
|
7438
7596
|
label_label,
|
7439
7597
|
tooltip_tooltip,
|
7440
|
-
verticalCrosshairRect,
|
7441
7598
|
annotationPoint_annotationPoint,
|
7442
7599
|
annotationVerticalLine_annotationVerticalLine,
|
7443
7600
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7445,7 +7602,7 @@
|
|
7445
7602
|
]),
|
7446
7603
|
pivotRowDimensions,
|
7447
7604
|
pivotColumnDimensions,
|
7448
|
-
pivotDiscreteLegend
|
7605
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7449
7606
|
];
|
7450
7607
|
const roseParallelSpecPipeline = [
|
7451
7608
|
pivotAdapter_pivotAdapter(roseParallel, pivotRoseParallel)
|
@@ -7456,50 +7613,55 @@
|
|
7456
7613
|
};
|
7457
7614
|
const encodingForRadar = (advancedVSeed, context)=>{
|
7458
7615
|
const { vseed } = context;
|
7459
|
-
const {
|
7460
|
-
|
7461
|
-
const
|
7462
|
-
|
7463
|
-
|
7464
|
-
|
7465
|
-
|
7466
|
-
|
7467
|
-
|
7468
|
-
|
7469
|
-
const detail = encoding.detail || [];
|
7470
|
-
const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
|
7471
|
-
...color,
|
7472
|
-
...detail
|
7473
|
-
]) : detail;
|
7474
|
-
return {
|
7475
|
-
...advancedVSeed,
|
7476
|
-
encoding: {
|
7477
|
-
...encoding,
|
7478
|
-
angle,
|
7479
|
-
color,
|
7480
|
-
detail: mergedDetail
|
7481
|
-
}
|
7482
|
-
};
|
7483
|
-
}
|
7484
|
-
const mergedEncoding = {
|
7485
|
-
angle: dimensions.slice(0, 1).map((item)=>item.id),
|
7486
|
-
color: dimensions.slice(1).map((item)=>item.id),
|
7487
|
-
detail: dimensions.slice(1).map((item)=>item.id),
|
7488
|
-
tooltip: dimensions.map((item)=>item.id),
|
7489
|
-
label: [],
|
7490
|
-
row: [],
|
7491
|
-
column: []
|
7492
|
-
};
|
7616
|
+
const { measures: vseedMeasures = [] } = vseed;
|
7617
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
7618
|
+
const dimensions = getBasicDimensions(vseed);
|
7619
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
7620
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
7621
|
+
const encoding = {};
|
7622
|
+
if (hasDimensionEncoding) radar_generateDimensionEncoding(dimensions, encoding);
|
7623
|
+
else radar_generateDefaultDimensionEncoding(dimensions, encoding);
|
7624
|
+
if (hasMeasureEncoding) radar_generateMeasureEncoding(measures, encoding);
|
7625
|
+
else radar_generateDefaultMeasureEncoding(measures, encoding);
|
7493
7626
|
return {
|
7494
7627
|
...advancedVSeed,
|
7495
|
-
encoding
|
7496
|
-
};
|
7628
|
+
encoding
|
7629
|
+
};
|
7630
|
+
};
|
7631
|
+
const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7632
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
7633
|
+
encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7634
|
+
};
|
7635
|
+
const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7636
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
7637
|
+
encoding.angle = uniqueDimIds.slice(0, 1);
|
7638
|
+
encoding.color = uniqueDimIds.slice(1);
|
7639
|
+
encoding.tooltip = uniqueDimIds;
|
7640
|
+
encoding.detail = [];
|
7641
|
+
encoding.label = [];
|
7642
|
+
encoding.row = [];
|
7643
|
+
encoding.column = [];
|
7644
|
+
};
|
7645
|
+
const radar_generateMeasureEncoding = (measures, encoding)=>{
|
7646
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
7647
|
+
encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7648
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7649
|
+
if (color.length > 0) encoding.color = color;
|
7650
|
+
};
|
7651
|
+
const radar_generateDimensionEncoding = (dimensions, encoding)=>{
|
7652
|
+
encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
7653
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7654
|
+
encoding.detail = [];
|
7655
|
+
if (0 === encoding.angle.length) encoding.angle = [
|
7656
|
+
dimensions[0].id
|
7657
|
+
];
|
7658
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
|
7497
7659
|
};
|
7498
7660
|
const radarAdvancedPipeline = [
|
7499
7661
|
initAdvancedVSeed_initAdvancedVSeed,
|
7662
|
+
encodingForRadar,
|
7500
7663
|
buildMeasures,
|
7501
7664
|
autoDimensions_autoDimensions,
|
7502
|
-
encodingForRadar,
|
7503
7665
|
pivotAdapter([
|
7504
7666
|
reshapeWithEncoding
|
7505
7667
|
], [
|
@@ -7635,33 +7797,51 @@
|
|
7635
7797
|
};
|
7636
7798
|
const encodingForFunnel = (advancedVSeed, context)=>{
|
7637
7799
|
const { vseed } = context;
|
7638
|
-
const {
|
7639
|
-
|
7640
|
-
const
|
7641
|
-
|
7642
|
-
|
7643
|
-
|
7644
|
-
|
7645
|
-
|
7646
|
-
|
7647
|
-
|
7648
|
-
color: dimensions.slice(0).map((item)=>item.id),
|
7649
|
-
detail: dimensions.slice(0).map((item)=>item.id),
|
7650
|
-
tooltip: dimensions.map((item)=>item.id),
|
7651
|
-
label: [],
|
7652
|
-
row: [],
|
7653
|
-
column: []
|
7654
|
-
};
|
7800
|
+
const { measures: vseedMeasures = [] } = vseed;
|
7801
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
7802
|
+
const dimensions = getBasicDimensions(vseed);
|
7803
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
7804
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
7805
|
+
const encoding = {};
|
7806
|
+
if (hasDimensionEncoding) funnel_generateDimensionEncoding(dimensions, encoding);
|
7807
|
+
else funnel_generateDefaultDimensionEncoding(dimensions, encoding);
|
7808
|
+
if (hasMeasureEncoding) funnel_generateMeasureEncoding(measures, encoding);
|
7809
|
+
else funnel_generateDefaultMeasureEncoding(measures, encoding);
|
7655
7810
|
return {
|
7656
7811
|
...advancedVSeed,
|
7657
|
-
encoding
|
7658
|
-
};
|
7812
|
+
encoding
|
7813
|
+
};
|
7814
|
+
};
|
7815
|
+
const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7816
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
7817
|
+
encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7818
|
+
};
|
7819
|
+
const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7820
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
7821
|
+
encoding.color = uniqueDimIds.slice(0);
|
7822
|
+
encoding.detail = uniqueDimIds.slice(0);
|
7823
|
+
encoding.tooltip = uniqueDimIds;
|
7824
|
+
encoding.label = [];
|
7825
|
+
encoding.row = [];
|
7826
|
+
encoding.column = [];
|
7827
|
+
};
|
7828
|
+
const funnel_generateMeasureEncoding = (measures, encoding)=>{
|
7829
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
7830
|
+
encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7831
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7832
|
+
if (color.length > 0) encoding.color = color;
|
7833
|
+
};
|
7834
|
+
const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
|
7835
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7836
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7837
|
+
if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
|
7838
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
|
7659
7839
|
};
|
7660
7840
|
const funnelAdvancedPipeline = [
|
7661
7841
|
initAdvancedVSeed_initAdvancedVSeed,
|
7842
|
+
encodingForFunnel,
|
7662
7843
|
buildMeasures,
|
7663
7844
|
autoDimensions_autoDimensions,
|
7664
|
-
encodingForFunnel,
|
7665
7845
|
pivotAdapter([
|
7666
7846
|
reshapeWithEncoding
|
7667
7847
|
], [
|
@@ -7691,34 +7871,55 @@
|
|
7691
7871
|
clip: true
|
7692
7872
|
}
|
7693
7873
|
];
|
7694
|
-
result.funnel = {
|
7695
|
-
style: {
|
7696
|
-
cornerRadius: 4,
|
7697
|
-
fill: {
|
7698
|
-
field: unfoldInfo.encodingColorId,
|
7699
|
-
scale: 'color'
|
7700
|
-
}
|
7701
|
-
},
|
7702
|
-
state: {
|
7703
|
-
hover: {
|
7704
|
-
fillOpacity: 0.6
|
7705
|
-
}
|
7706
|
-
}
|
7707
|
-
};
|
7708
7874
|
result.transformLabel = {
|
7709
7875
|
visible: true
|
7710
7876
|
};
|
7711
7877
|
result.animation = true;
|
7712
7878
|
return result;
|
7713
7879
|
};
|
7880
|
+
const colorFunnelStyleFill = (stylePipe)=>(spec, context)=>{
|
7881
|
+
const result = stylePipe(spec, context);
|
7882
|
+
const { advancedVSeed } = context;
|
7883
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
7884
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
7885
|
+
if (isLinearColor(advancedVSeed)) {
|
7886
|
+
if (result?.funnel?.style) result.funnel.style.fill = {
|
7887
|
+
field: unfoldInfo.encodingColor,
|
7888
|
+
scale: 'color'
|
7889
|
+
};
|
7890
|
+
}
|
7891
|
+
return result;
|
7892
|
+
};
|
7893
|
+
const funnelStyle = (spec)=>{
|
7894
|
+
const result = {
|
7895
|
+
...spec,
|
7896
|
+
funnel: {
|
7897
|
+
style: {}
|
7898
|
+
}
|
7899
|
+
};
|
7900
|
+
return {
|
7901
|
+
...result,
|
7902
|
+
funnel: {
|
7903
|
+
style: {
|
7904
|
+
cornerRadius: 4
|
7905
|
+
},
|
7906
|
+
state: {
|
7907
|
+
hover: {
|
7908
|
+
fillOpacity: 0.6
|
7909
|
+
}
|
7910
|
+
}
|
7911
|
+
}
|
7912
|
+
};
|
7913
|
+
};
|
7714
7914
|
const funnel = [
|
7715
7915
|
initFunnel,
|
7716
7916
|
background_backgroundColor,
|
7717
7917
|
datasetXY,
|
7718
|
-
color_color,
|
7918
|
+
colorAdapter(color_color, linearColor),
|
7719
7919
|
label_label,
|
7920
|
+
colorAdapter(discreteLegend, colorLegend),
|
7921
|
+
colorFunnelStyleFill(funnelStyle),
|
7720
7922
|
tooltip_tooltip,
|
7721
|
-
discreteLegend,
|
7722
7923
|
annotationPoint_annotationPoint,
|
7723
7924
|
annotationVerticalLine_annotationVerticalLine,
|
7724
7925
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7733,17 +7934,18 @@
|
|
7733
7934
|
initFunnel,
|
7734
7935
|
background_backgroundColor,
|
7735
7936
|
datasetXY,
|
7736
|
-
color_color,
|
7937
|
+
colorAdapter(color_color, linearColor),
|
7737
7938
|
label_label,
|
7738
7939
|
tooltip_tooltip,
|
7739
|
-
|
7940
|
+
colorFunnelStyleFill(funnelStyle),
|
7740
7941
|
annotationPoint_annotationPoint,
|
7741
7942
|
annotationVerticalLine_annotationVerticalLine,
|
7742
7943
|
annotationHorizontalLine_annotationHorizontalLine,
|
7743
7944
|
annotationArea_annotationArea
|
7744
7945
|
]),
|
7745
7946
|
pivotRowDimensions,
|
7746
|
-
pivotColumnDimensions
|
7947
|
+
pivotColumnDimensions,
|
7948
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7747
7949
|
];
|
7748
7950
|
const funnelSpecPipeline = [
|
7749
7951
|
pivotAdapter_pivotAdapter(funnel, pivotFunnel)
|
@@ -7754,45 +7956,61 @@
|
|
7754
7956
|
};
|
7755
7957
|
const encodingForHeatmap = (advancedVSeed, context)=>{
|
7756
7958
|
const { vseed } = context;
|
7757
|
-
const {
|
7758
|
-
|
7759
|
-
const
|
7760
|
-
|
7761
|
-
|
7762
|
-
|
7763
|
-
|
7764
|
-
|
7765
|
-
|
7766
|
-
|
7767
|
-
return {
|
7768
|
-
...advancedVSeed,
|
7769
|
-
encoding: {
|
7770
|
-
x,
|
7771
|
-
y,
|
7772
|
-
...encoding
|
7773
|
-
}
|
7774
|
-
};
|
7775
|
-
}
|
7776
|
-
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7777
|
-
const mergedEncoding = {
|
7778
|
-
x: dimensions.slice(0, 1).map((item)=>item.id),
|
7779
|
-
y: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
7780
|
-
color: dimensions.slice(0).map((item)=>item.id),
|
7781
|
-
tooltip: dimensions.map((item)=>item.id),
|
7782
|
-
label: [],
|
7783
|
-
row: [],
|
7784
|
-
column: []
|
7785
|
-
};
|
7959
|
+
const { measures: vseedMeasures = [] } = vseed;
|
7960
|
+
const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
|
7961
|
+
const dimensions = getBasicDimensions(vseed);
|
7962
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
7963
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
7964
|
+
const encoding = {};
|
7965
|
+
if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding);
|
7966
|
+
else heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
7967
|
+
if (hasMeasureEncoding) heatmap_generateMeasureEncoding(measures, encoding);
|
7968
|
+
else heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
7786
7969
|
return {
|
7787
7970
|
...advancedVSeed,
|
7788
|
-
encoding
|
7971
|
+
encoding
|
7789
7972
|
};
|
7790
7973
|
};
|
7974
|
+
const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7975
|
+
encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
|
7976
|
+
encoding.color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
|
7977
|
+
};
|
7978
|
+
const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7979
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7980
|
+
const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
|
7981
|
+
encoding.x = uniqueDimIds.slice(0, 1);
|
7982
|
+
encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7983
|
+
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7984
|
+
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7985
|
+
encoding.tooltip = uniqueDimIds;
|
7986
|
+
encoding.label = [];
|
7987
|
+
encoding.row = [];
|
7988
|
+
encoding.column = [];
|
7989
|
+
};
|
7990
|
+
const heatmap_generateMeasureEncoding = (measures, encoding)=>{
|
7991
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
7992
|
+
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7993
|
+
if (color.length > 0) encoding.color = color;
|
7994
|
+
return encoding;
|
7995
|
+
};
|
7996
|
+
const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
|
7997
|
+
encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
7998
|
+
encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
7999
|
+
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
8000
|
+
encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
8001
|
+
if (0 === encoding.x.length) encoding.x = [
|
8002
|
+
dimensions[0].id
|
8003
|
+
];
|
8004
|
+
if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
|
8005
|
+
else encoding.y = dimensions.slice(0).map((item)=>item.id);
|
8006
|
+
if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
8007
|
+
if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
|
8008
|
+
};
|
7791
8009
|
const heatmapAdvancedPipeline = [
|
7792
8010
|
initAdvancedVSeed_initAdvancedVSeed,
|
8011
|
+
encodingForHeatmap,
|
7793
8012
|
buildMeasures,
|
7794
8013
|
autoDimensions_autoDimensions,
|
7795
|
-
encodingForHeatmap,
|
7796
8014
|
pivotAdapter([
|
7797
8015
|
reshapeWithEncoding
|
7798
8016
|
], [
|
@@ -7814,6 +8032,37 @@
|
|
7814
8032
|
};
|
7815
8033
|
return result;
|
7816
8034
|
};
|
8035
|
+
const colorCellStyleFill = (stylePipe)=>(spec, context)=>{
|
8036
|
+
const result = stylePipe(spec, context);
|
8037
|
+
const { advancedVSeed } = context;
|
8038
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
8039
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
8040
|
+
if (isLinearColor(advancedVSeed)) {
|
8041
|
+
if (result?.cell?.style) result.cell.style.fill = {
|
8042
|
+
field: unfoldInfo.encodingColor,
|
8043
|
+
scale: 'color'
|
8044
|
+
};
|
8045
|
+
}
|
8046
|
+
return result;
|
8047
|
+
};
|
8048
|
+
const cellStyle = (spec)=>{
|
8049
|
+
const result = {
|
8050
|
+
...spec,
|
8051
|
+
cell: {
|
8052
|
+
style: {}
|
8053
|
+
}
|
8054
|
+
};
|
8055
|
+
return {
|
8056
|
+
...result,
|
8057
|
+
cell: {
|
8058
|
+
style: {
|
8059
|
+
shape: 'rect',
|
8060
|
+
stroke: '#ffffff',
|
8061
|
+
lineWidth: 1
|
8062
|
+
}
|
8063
|
+
}
|
8064
|
+
};
|
8065
|
+
};
|
7817
8066
|
const initHeatmap = (spec, context)=>{
|
7818
8067
|
const result = {
|
7819
8068
|
...spec
|
@@ -7828,13 +8077,6 @@
|
|
7828
8077
|
result.seriesField = unfoldInfo.encodingColorId;
|
7829
8078
|
result.valueField = foldInfo.measureValue;
|
7830
8079
|
result.padding = 0;
|
7831
|
-
result.cell = {
|
7832
|
-
style: {
|
7833
|
-
shape: 'rect',
|
7834
|
-
stroke: '#ffffff',
|
7835
|
-
lineWidth: 1
|
7836
|
-
}
|
7837
|
-
};
|
7838
8080
|
result.axes = [
|
7839
8081
|
{
|
7840
8082
|
type: 'band',
|
@@ -7859,14 +8101,12 @@
|
|
7859
8101
|
initHeatmap,
|
7860
8102
|
background_backgroundColor,
|
7861
8103
|
datasetXY,
|
7862
|
-
color_color,
|
8104
|
+
colorAdapter(color_color, linearColor),
|
7863
8105
|
label_label,
|
7864
8106
|
labelColorInversion,
|
7865
|
-
discreteLegend,
|
8107
|
+
colorAdapter(discreteLegend, colorLegend),
|
8108
|
+
colorCellStyleFill(cellStyle),
|
7866
8109
|
tooltip_tooltip,
|
7867
|
-
pointStyle_pointStyle,
|
7868
|
-
pointStateDimensionHover,
|
7869
|
-
lineStyle_lineStyle,
|
7870
8110
|
annotationPoint_annotationPoint,
|
7871
8111
|
annotationVerticalLine_annotationVerticalLine,
|
7872
8112
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7881,21 +8121,20 @@
|
|
7881
8121
|
initHeatmap,
|
7882
8122
|
background_backgroundColor,
|
7883
8123
|
datasetXY,
|
7884
|
-
color_color,
|
8124
|
+
colorAdapter(color_color, linearColor),
|
7885
8125
|
label_label,
|
7886
8126
|
labelColorInversion,
|
7887
8127
|
discreteLegend,
|
7888
8128
|
tooltip_tooltip,
|
7889
|
-
|
7890
|
-
pointStateDimensionHover,
|
7891
|
-
lineStyle_lineStyle,
|
8129
|
+
colorCellStyleFill(cellStyle),
|
7892
8130
|
annotationPoint_annotationPoint,
|
7893
8131
|
annotationVerticalLine_annotationVerticalLine,
|
7894
8132
|
annotationHorizontalLine_annotationHorizontalLine,
|
7895
8133
|
annotationArea_annotationArea
|
7896
8134
|
]),
|
7897
8135
|
pivotRowDimensions,
|
7898
|
-
pivotColumnDimensions
|
8136
|
+
pivotColumnDimensions,
|
8137
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
7899
8138
|
];
|
7900
8139
|
const heatmapSpecPipeline = [
|
7901
8140
|
pivotAdapter_pivotAdapter(heatmap, pivotHeatmap)
|
@@ -11895,7 +12134,18 @@
|
|
11895
12134
|
'dimension',
|
11896
12135
|
'rowDimension',
|
11897
12136
|
'columnDimension'
|
11898
|
-
]).default('dimension')
|
12137
|
+
]).default('dimension'),
|
12138
|
+
encoding: schemas_enum([
|
12139
|
+
'xAxis',
|
12140
|
+
'yAxis',
|
12141
|
+
'angle',
|
12142
|
+
'color',
|
12143
|
+
'detail',
|
12144
|
+
'tooltip',
|
12145
|
+
'label',
|
12146
|
+
'row',
|
12147
|
+
'column'
|
12148
|
+
]).optional()
|
11899
12149
|
});
|
11900
12150
|
const zDimensionGroup = schemas_object({
|
11901
12151
|
id: schemas_string(),
|