@visactor/vseed 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/builder/builder/builder.d.ts +116 -0
  2. package/dist/dataReshape/constant.d.ts +0 -8
  3. package/dist/dataReshape/foldMeasures.d.ts +6 -24
  4. package/dist/index.cjs +571 -299
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.js +554 -261
  7. package/dist/index.js.map +1 -1
  8. package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -0
  9. package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +2 -0
  10. package/dist/pipeline/spec/chart/pipes/color/colorAdapter.d.ts +3 -0
  11. package/dist/pipeline/spec/chart/pipes/color/colorAreaStyleFill.d.ts +2 -0
  12. package/dist/pipeline/spec/chart/pipes/color/colorBarStyleFill.d.ts +2 -0
  13. package/dist/pipeline/spec/chart/pipes/color/colorLineStyleFill.d.ts +2 -0
  14. package/dist/pipeline/spec/chart/pipes/color/colorPointStyleFill.d.ts +2 -0
  15. package/dist/pipeline/spec/chart/pipes/color/index.d.ts +6 -0
  16. package/dist/pipeline/spec/chart/pipes/{tooltip/tooltipDisable.d.ts → color/linearColor.d.ts} +1 -1
  17. package/dist/pipeline/spec/chart/pipes/legend/colorLegend.d.ts +2 -0
  18. package/dist/pipeline/spec/chart/pipes/legend/index.d.ts +2 -0
  19. package/dist/pipeline/spec/chart/pipes/legend/pivotColorLegend.d.ts +2 -0
  20. package/dist/pipeline/spec/chart/pipes/tooltip/index.d.ts +0 -1
  21. package/dist/pipeline/utils/dimensions/find.d.ts +0 -2
  22. package/dist/pipeline/utils/dimensions/index.d.ts +0 -1
  23. package/dist/pipeline/utils/dimensions/typeGuard.d.ts +0 -4
  24. package/dist/types/advancedVSeed.d.ts +40 -0
  25. package/dist/types/chartType/area/area.d.ts +5 -2
  26. package/dist/types/chartType/area/zArea.d.ts +1 -0
  27. package/dist/types/chartType/areaPercent/areaPercent.d.ts +5 -2
  28. package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +1 -0
  29. package/dist/types/chartType/bar/bar.d.ts +5 -2
  30. package/dist/types/chartType/bar/zBar.d.ts +1 -0
  31. package/dist/types/chartType/barParallel/barParallel.d.ts +5 -2
  32. package/dist/types/chartType/barParallel/zBarParallel.d.ts +1 -0
  33. package/dist/types/chartType/barPercent/barPercent.d.ts +5 -2
  34. package/dist/types/chartType/barPercent/zBarPercent.d.ts +1 -0
  35. package/dist/types/chartType/column/column.d.ts +5 -2
  36. package/dist/types/chartType/column/zColumn.d.ts +1 -0
  37. package/dist/types/chartType/columnParallel/columnParallel.d.ts +6 -3
  38. package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +1 -0
  39. package/dist/types/chartType/columnPercent/columnPercent.d.ts +6 -3
  40. package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +1 -0
  41. package/dist/types/chartType/donut/donut.d.ts +8 -6
  42. package/dist/types/chartType/donut/zDonut.d.ts +1 -0
  43. package/dist/types/chartType/dualAxis/dualAxis.d.ts +7 -3
  44. package/dist/types/chartType/dualAxis/zDualAxis.d.ts +1 -0
  45. package/dist/types/chartType/funnel/funnel.d.ts +5 -2
  46. package/dist/types/chartType/funnel/zFunnel.d.ts +2 -0
  47. package/dist/types/chartType/heatmap/heatmap.d.ts +5 -2
  48. package/dist/types/chartType/heatmap/zHeatmap.d.ts +2 -0
  49. package/dist/types/chartType/line/line.d.ts +5 -2
  50. package/dist/types/chartType/line/zLine.d.ts +1 -0
  51. package/dist/types/chartType/pie/pie.d.ts +7 -5
  52. package/dist/types/chartType/pie/zPie.d.ts +1 -0
  53. package/dist/types/chartType/radar/radar.d.ts +5 -2
  54. package/dist/types/chartType/radar/zRadar.d.ts +1 -0
  55. package/dist/types/chartType/rose/rose.d.ts +5 -2
  56. package/dist/types/chartType/rose/zRose.d.ts +1 -0
  57. package/dist/types/chartType/roseParallel/roseParallel.d.ts +6 -3
  58. package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +1 -0
  59. package/dist/types/chartType/scatter/scatter.d.ts +6 -2
  60. package/dist/types/chartType/scatter/zScatter.d.ts +1 -0
  61. package/dist/types/properties/config/color/color.d.ts +8 -2
  62. package/dist/types/properties/config/config.d.ts +36 -0
  63. package/dist/types/properties/config/legend/legend.d.ts +9 -5
  64. package/dist/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
  65. package/dist/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +6 -0
  66. package/dist/types/properties/theme/customTheme.d.ts +36 -0
  67. package/dist/types/zVseed.d.ts +20 -0
  68. package/dist/umd/index.js +571 -285
  69. package/dist/umd/index.js.map +1 -1
  70. package/package.json +1 -1
package/dist/umd/index.js CHANGED
@@ -30,7 +30,6 @@
30
30
  var __webpack_exports__ = {};
31
31
  __webpack_require__.r(__webpack_exports__);
32
32
  __webpack_require__.d(__webpack_exports__, {
33
- zTooltip: ()=>zTooltip,
34
33
  funnelAdvancedPipeline: ()=>funnelAdvancedPipeline,
35
34
  zHeatmapConfig: ()=>zHeatmapConfig,
36
35
  zBar: ()=>zBar,
@@ -80,12 +79,10 @@
80
79
  zRoseParallel: ()=>zRoseParallel,
81
80
  MeasureName: ()=>MeasureName,
82
81
  zDataset: ()=>zDataset,
83
- UnfoldDimensionGroupId: ()=>UnfoldDimensionGroupId,
84
82
  zNumFormat: ()=>zNumFormat,
85
83
  barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
86
84
  findAllDimensions: ()=>findAllDimensions,
87
85
  FoldYMeasureValue: ()=>FoldYMeasureValue,
88
- findDimensionById: ()=>findDimensionById,
89
86
  zPivotTableConfig: ()=>zPivotTableConfig,
90
87
  zArea: ()=>zArea,
91
88
  zColumnParallel: ()=>zColumnParallel,
@@ -111,31 +108,31 @@
111
108
  registerLightTheme: ()=>registerLightTheme,
112
109
  roseAdvancedPipeline: ()=>roseAdvancedPipeline,
113
110
  zBarParallel: ()=>zBarParallel,
114
- registerDarkTheme: ()=>registerDarkTheme,
115
- registerPivotTable: ()=>registerPivotTable,
116
111
  isPartialDatumSelector: ()=>isPartialDatumSelector,
117
- pieSpecPipeline: ()=>pieSpecPipeline,
118
- isDimensionGroup: ()=>isDimensionGroup,
119
- dualAxisSpecPipeline: ()=>dualAxisSpecPipeline,
112
+ registerPivotTable: ()=>registerPivotTable,
120
113
  tableAdvancedPipeline: ()=>tableAdvancedPipeline,
121
- barSpecPipeline: ()=>barSpecPipeline,
114
+ registerDarkTheme: ()=>registerDarkTheme,
115
+ dualAxisSpecPipeline: ()=>dualAxisSpecPipeline,
116
+ pieSpecPipeline: ()=>pieSpecPipeline,
122
117
  zAnnotationVerticalLine: ()=>zAnnotationVerticalLine,
123
- registerRose: ()=>registerRose,
118
+ barSpecPipeline: ()=>barSpecPipeline,
124
119
  zChartType: ()=>zChartType,
120
+ registerRose: ()=>registerRose,
121
+ zMeasureTree: ()=>zMeasureTree,
125
122
  unfoldDimensions: ()=>unfoldDimensions,
126
123
  roseParallelAdvancedPipeline: ()=>roseParallelAdvancedPipeline,
127
124
  registerTable: ()=>registerTable,
128
- Builder: ()=>Builder,
129
125
  isMeasureGroup: ()=>isMeasureGroup,
126
+ autoFormatter: ()=>autoFormatter,
130
127
  YEncoding: ()=>YEncoding,
131
128
  registerAll: ()=>registerAll,
132
129
  registerBar: ()=>registerBar,
133
130
  isVChart: ()=>isVChart,
134
131
  radarSpecPipeline: ()=>radarSpecPipeline,
135
- findFirstDimension: ()=>findFirstDimension,
136
- autoFormatter: ()=>autoFormatter,
137
- zMeasureTree: ()=>zMeasureTree,
132
+ Builder: ()=>Builder,
138
133
  zPieConfig: ()=>zPieConfig,
134
+ zPivotTable: ()=>zPivotTable,
135
+ zRadar: ()=>zRadar,
139
136
  registerLine: ()=>registerLine,
140
137
  registerCustomTheme: ()=>registerCustomTheme,
141
138
  zColor: ()=>zColor,
@@ -155,21 +152,19 @@
155
152
  zAxis: ()=>zAxis,
156
153
  isVTable: ()=>isVTable,
157
154
  zMeasures: ()=>zMeasures,
158
- zPivotTable: ()=>zPivotTable,
155
+ zRadarConfig: ()=>zRadarConfig,
159
156
  zLine: ()=>zLine,
160
157
  columnSpecPipeline: ()=>columnSpecPipeline,
161
- UnfoldDimensionGroup: ()=>UnfoldDimensionGroup,
162
- zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
163
158
  zFoldInfo: ()=>zFoldInfo,
159
+ zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
164
160
  zLinearColor: ()=>zLinearColor,
161
+ zStackCornerRadius: ()=>zStackCornerRadius,
165
162
  zAreaStyle: ()=>zAreaStyle,
166
163
  ORIGINAL_DATA: ()=>ORIGINAL_DATA,
167
- zRadarConfig: ()=>zRadarConfig,
164
+ zUnfoldInfo: ()=>zUnfoldInfo,
168
165
  zAnnotationArea: ()=>zAnnotationArea,
169
- zStackCornerRadius: ()=>zStackCornerRadius,
170
166
  DetailEncoding: ()=>DetailEncoding,
171
167
  zRose: ()=>zRose,
172
- zUnfoldInfo: ()=>zUnfoldInfo,
173
168
  columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
174
169
  i18n: ()=>i18n,
175
170
  zPointStyle: ()=>zPointStyle,
@@ -178,7 +173,6 @@
178
173
  registerColumnParallel: ()=>registerColumnParallel,
179
174
  updateAdvanced: ()=>updateAdvanced,
180
175
  zDimension: ()=>zDimension,
181
- zRadar: ()=>zRadar,
182
176
  zTable: ()=>zTable,
183
177
  isMeasure: ()=>isMeasure,
184
178
  FoldSecondaryMeasureValue: ()=>FoldSecondaryMeasureValue,
@@ -202,9 +196,9 @@
202
196
  registerBarParallel: ()=>registerBarParallel,
203
197
  registerRadar: ()=>registerRadar,
204
198
  zEncodings: ()=>zEncodings,
205
- isDimension: ()=>isDimension,
206
199
  pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
207
200
  zLocale: ()=>zLocale,
201
+ zMeasure: ()=>zMeasure,
208
202
  FoldXMeasureValue: ()=>FoldXMeasureValue,
209
203
  dualAxisAdvancedPipeline: ()=>dualAxisAdvancedPipeline,
210
204
  registerScatter: ()=>registerScatter,
@@ -216,10 +210,9 @@
216
210
  zAdvancedVSeed: ()=>zAdvancedVSeed,
217
211
  zConfig: ()=>zConfig,
218
212
  zBarStyle: ()=>zBarStyle,
219
- zMeasure: ()=>zMeasure,
220
213
  zRoseParallelConfig: ()=>zRoseParallelConfig,
221
- zAreaPercent: ()=>zAreaPercent,
222
214
  zXLinearAxis: ()=>zXLinearAxis,
215
+ zAreaPercent: ()=>zAreaPercent,
223
216
  columnParallelAdvancedPipeline: ()=>columnParallelAdvancedPipeline,
224
217
  isValueSelector: ()=>isValueSelector,
225
218
  donutAdvancedPipeline: ()=>donutAdvancedPipeline,
@@ -237,8 +230,8 @@
237
230
  lineAdvancedPipeline: ()=>lineAdvancedPipeline,
238
231
  dataReshapeByEncoding: ()=>dataReshapeByEncoding,
239
232
  lineSpecPipeline: ()=>lineSpecPipeline,
240
- isDimensions: ()=>isDimensions,
241
233
  zBarPercentConfig: ()=>zBarPercentConfig,
234
+ zTooltip: ()=>zTooltip,
242
235
  createFormatter: ()=>createFormatter,
243
236
  zDimensionGroup: ()=>zDimensionGroup,
244
237
  isMeasureSelector: ()=>isMeasureSelector,
@@ -1130,32 +1123,6 @@
1130
1123
  }));
1131
1124
  return result;
1132
1125
  };
1133
- const findDimensionById = (dimensions = [], id)=>{
1134
- if (!dimensions) return;
1135
- let result;
1136
- preorderTraverse(dimensions, (node)=>{
1137
- if (!('children' in node)) {
1138
- if (node.id === id) {
1139
- result = node;
1140
- return true;
1141
- }
1142
- }
1143
- return false;
1144
- });
1145
- return result;
1146
- };
1147
- const findFirstDimension = (dimensions = [])=>{
1148
- if (!dimensions) return;
1149
- let result;
1150
- preorderTraverse(dimensions, (node)=>{
1151
- if (!('children' in node)) {
1152
- result = node;
1153
- return true;
1154
- }
1155
- return false;
1156
- });
1157
- return result;
1158
- };
1159
1126
  const findAllDimensions = (dimensions = [])=>{
1160
1127
  if (!dimensions) return [];
1161
1128
  const result = [];
@@ -1611,8 +1578,6 @@
1611
1578
  const DetailEncoding = '__Dim_Detail__';
1612
1579
  const ColorEncoding = '__Dim_Color__';
1613
1580
  const ColorIdEncoding = '__Dim_ColorId__';
1614
- const UnfoldDimensionGroup = '__DimGroup__';
1615
- const UnfoldDimensionGroupId = '__DimGroupID__';
1616
1581
  const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
1617
1582
  const result = {
1618
1583
  ...advancedVSeed
@@ -1652,23 +1617,26 @@
1652
1617
  result.dimensions.push(MeaName);
1653
1618
  return result;
1654
1619
  };
1655
- const encodingForColumn = (advancedVSeed, context)=>{
1620
+ const encodingForLine = (advancedVSeed, context)=>{
1656
1621
  const { vseed } = context;
1657
1622
  const { dimensions } = advancedVSeed;
1658
1623
  if (!dimensions) return advancedVSeed;
1659
1624
  const encoding = vseed.encoding;
1660
1625
  if (encoding) {
1661
- const x = encoding.x || [];
1662
- const detail = encoding.detail || [];
1663
- const color = encoding.color || [];
1664
- const mergedDetail = [
1665
- ...color.filter((d)=>!x.includes(d)),
1666
- ...detail
1626
+ const x = encoding.x || [
1627
+ dimensions[0].id
1628
+ ];
1629
+ const color = encoding.color || [
1630
+ (dimensions[1] || dimensions[0]).id
1667
1631
  ];
1632
+ const detail = encoding.detail || [];
1633
+ const mergedDetail = 0 === detail.length ? dimensions.map((d)=>d.id).filter((id)=>!x.includes(id)) : encoding.detail;
1668
1634
  return {
1669
1635
  ...advancedVSeed,
1670
1636
  encoding: {
1671
1637
  ...encoding,
1638
+ x,
1639
+ color,
1672
1640
  detail: mergedDetail
1673
1641
  }
1674
1642
  };
@@ -1676,7 +1644,7 @@
1676
1644
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
1677
1645
  const mergedEncoding = {
1678
1646
  x: dimensions.slice(0, 1).map((item)=>item.id),
1679
- color: dimensions.slice(1).map((item)=>item.id),
1647
+ color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
1680
1648
  detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
1681
1649
  tooltip: dimensions.map((item)=>item.id),
1682
1650
  label: [],
@@ -1715,11 +1683,21 @@
1715
1683
  for (let r of e)delete o[r];
1716
1684
  return o;
1717
1685
  }
1718
- const foldMeasures = (dataset, measures, measureId = FoldMeasureId, measureName = FoldMeasureName, measureValue = FoldMeasureValue)=>{
1686
+ const foldMeasures = (dataset, measures, encoding, options)=>{
1687
+ const { measureId = FoldMeasureId, measureName = FoldMeasureName, measureValue = FoldMeasureValue } = options || {};
1688
+ const colorMeasureId = encoding?.color?.length === 1 && measures.some((m)=>m.id === encoding?.color?.[0]) ? encoding?.color?.[0] : void 0;
1719
1689
  const foldInfo = {
1720
1690
  measureId,
1721
1691
  measureName,
1722
1692
  measureValue,
1693
+ colorRange: [
1694
+ 0,
1695
+ 1
1696
+ ],
1697
+ measureRange: [
1698
+ 0,
1699
+ 1
1700
+ ],
1723
1701
  foldMap: {}
1724
1702
  };
1725
1703
  const result = new Array(dataset.length * measures.length);
@@ -1736,6 +1714,19 @@
1736
1714
  datum[measureId] = id;
1737
1715
  datum[measureName] = alias || id;
1738
1716
  datum[measureValue] = dataset[i][id];
1717
+ if (colorMeasureId) {
1718
+ const value = datum[ORIGINAL_DATA][colorMeasureId];
1719
+ datum[ColorEncoding] = value;
1720
+ datum[ColorIdEncoding] = colorMeasureId;
1721
+ foldInfo.colorRange = [
1722
+ Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1723
+ Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1724
+ ];
1725
+ }
1726
+ foldInfo.measureRange = [
1727
+ Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1728
+ Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1729
+ ];
1739
1730
  foldInfo.foldMap[id] = alias;
1740
1731
  result[index++] = datum;
1741
1732
  }
@@ -1771,7 +1762,7 @@
1771
1762
  applyEncoding(YEncoding, yDimensions, datum, separator);
1772
1763
  applyEncoding(ColorEncoding, colorDimensions, datum, separator);
1773
1764
  applyEncoding(DetailEncoding, detailDimensions, datum, separator);
1774
- if (!datum[ColorEncoding]) continue;
1765
+ if (!colorDimensions.length || !datum[ColorEncoding]) continue;
1775
1766
  const measureId = String(datum[foldMeasureId]);
1776
1767
  const colorItem = String(datum[ColorEncoding]);
1777
1768
  const colorId = colorItemAsId ? colorItem : measureId ? [
@@ -1792,29 +1783,13 @@
1792
1783
  const applyEncoding = (encoding, dimensions, datum, separator)=>{
1793
1784
  if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
1794
1785
  };
1795
- const emptyReshapeResult = {
1796
- dataset: [],
1797
- foldInfo: {
1798
- foldMap: {},
1799
- measureId: '',
1800
- measureName: '',
1801
- measureValue: ''
1802
- },
1803
- unfoldInfo: {
1804
- encodingAngle: AngleEncoding,
1805
- encodingX: XEncoding,
1806
- encodingY: YEncoding,
1807
- encodingDetail: DetailEncoding,
1808
- encodingColor: ColorEncoding,
1809
- encodingColorId: ColorIdEncoding,
1810
- colorItems: [],
1811
- colorIdMap: {}
1812
- }
1813
- };
1814
1786
  const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
1815
1787
  const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
1816
- if (0 === dimensions.length && 0 === measures.length) return emptyReshapeResult;
1817
- const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, foldMeasureId, foldMeasureName, foldMeasureValue);
1788
+ const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, encoding, {
1789
+ measureId: foldMeasureId,
1790
+ measureName: foldMeasureName,
1791
+ measureValue: foldMeasureValue
1792
+ });
1818
1793
  const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
1819
1794
  foldMeasureId,
1820
1795
  separator: Separator,
@@ -2089,7 +2064,7 @@
2089
2064
  initAdvancedVSeed_initAdvancedVSeed,
2090
2065
  autoMeasures_autoMeasures,
2091
2066
  autoDimensions_autoDimensions,
2092
- encodingForColumn,
2067
+ encodingForLine,
2093
2068
  pivotAdapter([
2094
2069
  reshapeWithEncoding
2095
2070
  ], [
@@ -2102,6 +2077,17 @@
2102
2077
  markStyle_markStyle,
2103
2078
  annotation_annotation
2104
2079
  ];
2080
+ const colorAdapter = (ordinalPipe, linearPipe)=>(spec, context)=>{
2081
+ const { advancedVSeed } = context;
2082
+ if (isLinearColor(advancedVSeed)) return linearPipe(spec, context);
2083
+ return ordinalPipe(spec, context);
2084
+ };
2085
+ const isLinearColor = (advancedVSeed)=>{
2086
+ const { encoding, measures } = advancedVSeed;
2087
+ const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
2088
+ const { color } = encoding;
2089
+ return color?.length === 1 && measureIdList.includes(color[0]);
2090
+ };
2105
2091
  const initLine = (spec, context)=>{
2106
2092
  const result = {
2107
2093
  ...spec
@@ -2113,7 +2099,7 @@
2113
2099
  result.direction = 'vertical';
2114
2100
  result.xField = unfoldInfo.encodingX;
2115
2101
  result.yField = foldInfo.measureValue;
2116
- result.seriesField = unfoldInfo.encodingColorId;
2102
+ result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
2117
2103
  result.padding = 0;
2118
2104
  result.region = [
2119
2105
  {
@@ -2174,6 +2160,31 @@
2174
2160
  ...accurateMap
2175
2161
  };
2176
2162
  };
2163
+ const linearColor = (spec, context)=>{
2164
+ const result = {
2165
+ ...spec
2166
+ };
2167
+ const { advancedVSeed } = context;
2168
+ const { datasetReshapeInfo, chartType } = advancedVSeed;
2169
+ const { unfoldInfo, id } = datasetReshapeInfo[0];
2170
+ const baseConfig = advancedVSeed.config[chartType];
2171
+ if (!baseConfig || !baseConfig.color) return result;
2172
+ const { color } = baseConfig;
2173
+ const { colorScheme, linearColorScheme } = color;
2174
+ result.color = {
2175
+ type: 'linear',
2176
+ range: linearColorScheme || colorScheme || [],
2177
+ domain: [
2178
+ {
2179
+ dataId: id,
2180
+ fields: [
2181
+ unfoldInfo.encodingColor
2182
+ ]
2183
+ }
2184
+ ]
2185
+ };
2186
+ return result;
2187
+ };
2177
2188
  const background_backgroundColor = (spec, context)=>{
2178
2189
  const result = {
2179
2190
  ...spec
@@ -2681,6 +2692,95 @@
2681
2692
  };
2682
2693
  return result;
2683
2694
  };
2695
+ const colorLegend = (spec, context)=>{
2696
+ const result = {
2697
+ ...spec
2698
+ };
2699
+ const { advancedVSeed } = context;
2700
+ const { datasetReshapeInfo, chartType } = advancedVSeed;
2701
+ const { unfoldInfo } = datasetReshapeInfo[0];
2702
+ const baseConfig = advancedVSeed.config[chartType];
2703
+ if (!baseConfig || !baseConfig.legend) return result;
2704
+ const { legend } = baseConfig;
2705
+ const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight } = legend || {};
2706
+ const orient = [
2707
+ 'bottom',
2708
+ 'bottomLeft',
2709
+ 'bottomRight',
2710
+ 'bl',
2711
+ 'br'
2712
+ ].includes(position) ? 'bottom' : [
2713
+ 'top',
2714
+ 'topLeft',
2715
+ 'topRight',
2716
+ 'tl',
2717
+ 'tr'
2718
+ ].includes(position) ? 'top' : [
2719
+ 'left',
2720
+ 'leftTop',
2721
+ 'leftBottom',
2722
+ 'lt',
2723
+ 'lb'
2724
+ ].includes(position) ? 'left' : 'right';
2725
+ const legendPosition = [
2726
+ 'topLeft',
2727
+ 'bottomLeft',
2728
+ 'leftTop',
2729
+ 'rightTop',
2730
+ 'lt',
2731
+ 'rt',
2732
+ 'tl',
2733
+ 'bl'
2734
+ ].includes(position) ? 'start' : [
2735
+ 'topRight',
2736
+ 'bottomRight',
2737
+ 'leftBottom',
2738
+ 'rightBottom',
2739
+ 'lb',
2740
+ 'rb',
2741
+ 'rt',
2742
+ 'br'
2743
+ ].includes(position) ? 'end' : 'middle';
2744
+ result.legends = {
2745
+ type: 'color',
2746
+ visible: enable,
2747
+ orient,
2748
+ position: legendPosition,
2749
+ padding: 0,
2750
+ field: unfoldInfo.encodingColor,
2751
+ maxWidth: '30%',
2752
+ startText: {
2753
+ visible: true,
2754
+ style: {
2755
+ fill: labelFontColor,
2756
+ fontSize: labelFontSize,
2757
+ fontWeight: labelFontWeight
2758
+ }
2759
+ },
2760
+ endText: {
2761
+ visible: true,
2762
+ style: {
2763
+ fill: labelFontColor,
2764
+ fontSize: labelFontSize,
2765
+ fontWeight: labelFontWeight
2766
+ }
2767
+ }
2768
+ };
2769
+ return result;
2770
+ };
2771
+ const colorPointStyleFill = (stylePipe)=>(spec, context)=>{
2772
+ const result = stylePipe(spec, context);
2773
+ const { advancedVSeed } = context;
2774
+ const { datasetReshapeInfo } = advancedVSeed;
2775
+ const { unfoldInfo } = datasetReshapeInfo[0];
2776
+ if (isLinearColor(advancedVSeed)) {
2777
+ if (result?.point?.style) result.point.style.fill = {
2778
+ field: unfoldInfo.encodingColor,
2779
+ scale: 'color'
2780
+ };
2781
+ }
2782
+ return result;
2783
+ };
2684
2784
  const selector_selector = (vchartDatum, selector)=>{
2685
2785
  if (!selector) return true;
2686
2786
  const selectorMode = 'And';
@@ -2777,7 +2877,10 @@
2777
2877
  const { markStyle } = advancedVSeed;
2778
2878
  const { pointStyle } = markStyle;
2779
2879
  const result = {
2780
- ...spec
2880
+ ...spec,
2881
+ point: {
2882
+ style: {}
2883
+ }
2781
2884
  };
2782
2885
  if (!pointStyle) return result;
2783
2886
  const pointStyles = Array.isArray(pointStyle) ? pointStyle : [
@@ -2821,6 +2924,7 @@
2821
2924
  return {
2822
2925
  ...result,
2823
2926
  point: {
2927
+ ...result.point,
2824
2928
  state: {
2825
2929
  ...customMap
2826
2930
  }
@@ -2876,6 +2980,19 @@
2876
2980
  };
2877
2981
  return result;
2878
2982
  };
2983
+ const colorLineStyleFill = (stylePipe)=>(spec, context)=>{
2984
+ const result = stylePipe(spec, context);
2985
+ const { advancedVSeed } = context;
2986
+ const { datasetReshapeInfo } = advancedVSeed;
2987
+ const { unfoldInfo } = datasetReshapeInfo[0];
2988
+ if (isLinearColor(advancedVSeed)) {
2989
+ if (result?.line?.style) result.line.style.stroke = {
2990
+ field: unfoldInfo.encodingColor,
2991
+ scale: 'color'
2992
+ };
2993
+ }
2994
+ return result;
2995
+ };
2879
2996
  function chunk_HVPVHFDT_i(...e) {
2880
2997
  return chunk_WIMGWYZL_u(chunk_HVPVHFDT_p, e);
2881
2998
  }
@@ -2897,10 +3014,13 @@
2897
3014
  const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
2898
3015
  const { unfoldInfo } = datasetReshapeInfo[0];
2899
3016
  const { lineStyle } = markStyle;
2900
- if (!lineStyle) return spec;
2901
3017
  const result = {
2902
- ...spec
3018
+ ...spec,
3019
+ line: {
3020
+ style: {}
3021
+ }
2903
3022
  };
3023
+ if (!lineStyle) return result;
2904
3024
  const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
2905
3025
  lineStyle
2906
3026
  ];
@@ -2944,6 +3064,7 @@
2944
3064
  return {
2945
3065
  ...result,
2946
3066
  line: {
3067
+ ...result.line,
2947
3068
  state: {
2948
3069
  ...customMap
2949
3070
  }
@@ -3719,7 +3840,7 @@
3719
3840
  };
3720
3841
  const line_line = [
3721
3842
  initLine,
3722
- color_color,
3843
+ colorAdapter(color_color, linearColor),
3723
3844
  background_backgroundColor,
3724
3845
  datasetXY,
3725
3846
  progressive,
@@ -3728,10 +3849,10 @@
3728
3849
  label_label,
3729
3850
  tooltip_tooltip,
3730
3851
  verticalCrosshairLine,
3731
- discreteLegend,
3732
- pointStyle_pointStyle,
3852
+ colorAdapter(discreteLegend, colorLegend),
3853
+ colorPointStyleFill(pointStyle_pointStyle),
3733
3854
  pointStateDimensionHover,
3734
- lineStyle_lineStyle,
3855
+ colorLineStyleFill(lineStyle_lineStyle),
3735
3856
  annotationPoint_annotationPoint,
3736
3857
  annotationVerticalLine_annotationVerticalLine,
3737
3858
  annotationHorizontalLine_annotationHorizontalLine,
@@ -3772,6 +3893,48 @@
3772
3893
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
3773
3894
  Builder._specPipelineMap.line = lineSpecPipeline;
3774
3895
  };
3896
+ const encodingForColumn = (advancedVSeed, context)=>{
3897
+ const { vseed } = context;
3898
+ const { dimensions } = advancedVSeed;
3899
+ if (!dimensions) return advancedVSeed;
3900
+ const encoding = vseed.encoding;
3901
+ if (encoding) {
3902
+ const x = encoding.x || [
3903
+ dimensions[0].id
3904
+ ];
3905
+ const color = encoding.color || [
3906
+ (dimensions[1] || dimensions[0]).id
3907
+ ];
3908
+ const detail = encoding.detail || [];
3909
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
3910
+ ...color,
3911
+ ...detail
3912
+ ]) : detail;
3913
+ return {
3914
+ ...advancedVSeed,
3915
+ encoding: {
3916
+ ...encoding,
3917
+ x,
3918
+ color,
3919
+ detail: mergedDetail
3920
+ }
3921
+ };
3922
+ }
3923
+ const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
3924
+ const mergedEncoding = {
3925
+ x: dimensions.slice(0, 1).map((item)=>item.id),
3926
+ color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
3927
+ detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
3928
+ tooltip: dimensions.map((item)=>item.id),
3929
+ label: [],
3930
+ row: [],
3931
+ column: []
3932
+ };
3933
+ return {
3934
+ ...advancedVSeed,
3935
+ encoding: mergedEncoding
3936
+ };
3937
+ };
3775
3938
  const columnAdvancedPipeline = [
3776
3939
  initAdvancedVSeed_initAdvancedVSeed,
3777
3940
  autoMeasures_autoMeasures,
@@ -3814,9 +3977,14 @@
3814
3977
  const { advancedVSeed, vseed } = context;
3815
3978
  const { chartType } = vseed;
3816
3979
  const stackCornerRadius = advancedVSeed.config?.[chartType]?.stackCornerRadius;
3980
+ const { datasetReshapeInfo } = advancedVSeed;
3981
+ const { foldInfo } = datasetReshapeInfo[0];
3817
3982
  return {
3818
3983
  ...spec,
3819
- stackCornerRadius
3984
+ stackCornerRadius: (_, datum)=>{
3985
+ if (datum[foldInfo.measureValue] > 0) return stackCornerRadius;
3986
+ return 0;
3987
+ }
3820
3988
  };
3821
3989
  };
3822
3990
  const stackInverse = (spec)=>{
@@ -3866,6 +4034,19 @@
3866
4034
  };
3867
4035
  return result;
3868
4036
  };
4037
+ const colorBarStyleFill = (stylePipe)=>(spec, context)=>{
4038
+ const result = stylePipe(spec, context);
4039
+ const { advancedVSeed } = context;
4040
+ const { datasetReshapeInfo } = advancedVSeed;
4041
+ const { unfoldInfo } = datasetReshapeInfo[0];
4042
+ if (isLinearColor(advancedVSeed)) {
4043
+ if (result?.bar?.style) result.bar.style.fill = {
4044
+ field: unfoldInfo.encodingColor,
4045
+ scale: 'color'
4046
+ };
4047
+ }
4048
+ return result;
4049
+ };
3869
4050
  const barStyle_barStyle = (spec, context)=>{
3870
4051
  const { advancedVSeed } = context;
3871
4052
  const { markStyle, dataset = [] } = advancedVSeed;
@@ -4061,11 +4242,98 @@
4061
4242
  markArea: markArea
4062
4243
  };
4063
4244
  };
4245
+ const pivotColorLegend = (spec, context)=>{
4246
+ const result = {
4247
+ ...spec
4248
+ };
4249
+ const { advancedVSeed } = context;
4250
+ const { chartType } = advancedVSeed;
4251
+ const baseConfig = advancedVSeed.config[chartType];
4252
+ if (!baseConfig || !baseConfig.legend) return result;
4253
+ const { datasetReshapeInfo } = advancedVSeed;
4254
+ const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[1]));
4255
+ const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[0]));
4256
+ const { legend, color } = baseConfig;
4257
+ const { colorScheme, linearColorScheme } = color;
4258
+ const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
4259
+ const orient = [
4260
+ 'bottom',
4261
+ 'bottomLeft',
4262
+ 'bottomRight',
4263
+ 'bl',
4264
+ 'br'
4265
+ ].includes(position) ? 'bottom' : [
4266
+ 'top',
4267
+ 'topLeft',
4268
+ 'topRight',
4269
+ 'tl',
4270
+ 'tr'
4271
+ ].includes(position) ? 'top' : [
4272
+ 'left',
4273
+ 'leftTop',
4274
+ 'leftBottom',
4275
+ 'lt',
4276
+ 'lb'
4277
+ ].includes(position) ? 'left' : 'right';
4278
+ const legendPosition = [
4279
+ 'topLeft',
4280
+ 'bottomLeft',
4281
+ 'leftTop',
4282
+ 'rightTop',
4283
+ 'lt',
4284
+ 'rt',
4285
+ 'tl',
4286
+ 'bl'
4287
+ ].includes(position) ? 'start' : [
4288
+ 'topRight',
4289
+ 'bottomRight',
4290
+ 'leftBottom',
4291
+ 'rightBottom',
4292
+ 'lb',
4293
+ 'rb',
4294
+ 'rt',
4295
+ 'br'
4296
+ ].includes(position) ? 'end' : 'middle';
4297
+ const legends = {
4298
+ visible: enable,
4299
+ type: 'color',
4300
+ orient,
4301
+ position: legendPosition,
4302
+ colors: linearColorScheme || colorScheme || [],
4303
+ value: [
4304
+ min,
4305
+ max
4306
+ ],
4307
+ min: min,
4308
+ max: max,
4309
+ maxWidth: '30%',
4310
+ startText: {
4311
+ visible: true,
4312
+ style: {
4313
+ fill: labelFontColor,
4314
+ fontSize: labelFontSize,
4315
+ fontWeight: labelFontWeight
4316
+ }
4317
+ },
4318
+ endText: {
4319
+ visible: true,
4320
+ style: {
4321
+ fill: labelFontColor,
4322
+ fontSize: labelFontSize,
4323
+ fontWeight: labelFontWeight
4324
+ }
4325
+ }
4326
+ };
4327
+ return {
4328
+ ...result,
4329
+ legends
4330
+ };
4331
+ };
4064
4332
  const column = [
4065
4333
  initColumn,
4066
4334
  stackCornerRadius_stackCornerRadius,
4067
4335
  stackInverse,
4068
- color_color,
4336
+ colorAdapter(color_color, linearColor),
4069
4337
  background_backgroundColor,
4070
4338
  datasetXY,
4071
4339
  progressive,
@@ -4074,8 +4342,8 @@
4074
4342
  label_label,
4075
4343
  tooltip_tooltip,
4076
4344
  verticalCrosshairRect,
4077
- discreteLegend,
4078
- barStyle_barStyle,
4345
+ colorAdapter(discreteLegend, colorLegend),
4346
+ colorBarStyleFill(barStyle_barStyle),
4079
4347
  annotationPoint_annotationPoint,
4080
4348
  annotationVerticalLine_annotationVerticalLine,
4081
4349
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4090,7 +4358,7 @@
4090
4358
  initColumn,
4091
4359
  stackCornerRadius_stackCornerRadius,
4092
4360
  stackInverse,
4093
- color_color,
4361
+ colorAdapter(color_color, linearColor),
4094
4362
  background_backgroundColor,
4095
4363
  datasetXY,
4096
4364
  progressive,
@@ -4099,7 +4367,7 @@
4099
4367
  label_label,
4100
4368
  tooltip_tooltip,
4101
4369
  verticalCrosshairRect,
4102
- barStyle_barStyle,
4370
+ colorBarStyleFill(barStyle_barStyle),
4103
4371
  annotationPoint_annotationPoint,
4104
4372
  annotationVerticalLine_annotationVerticalLine,
4105
4373
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4107,7 +4375,7 @@
4107
4375
  ]),
4108
4376
  pivotRowDimensions,
4109
4377
  pivotColumnDimensions,
4110
- pivotDiscreteLegend
4378
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4111
4379
  ];
4112
4380
  const columnSpecPipeline = [
4113
4381
  pivotAdapter_pivotAdapter(column, pivotColumn)
@@ -4163,7 +4431,7 @@
4163
4431
  const columnParallel = [
4164
4432
  initColumnParallel,
4165
4433
  stackCornerRadius_stackCornerRadius,
4166
- color_color,
4434
+ colorAdapter(color_color, linearColor),
4167
4435
  background_backgroundColor,
4168
4436
  datasetXY,
4169
4437
  progressive,
@@ -4171,9 +4439,9 @@
4171
4439
  yLinear,
4172
4440
  label_label,
4173
4441
  tooltip_tooltip,
4174
- discreteLegend,
4442
+ colorAdapter(discreteLegend, colorLegend),
4175
4443
  verticalCrosshairRect,
4176
- barStyle_barStyle,
4444
+ colorBarStyleFill(barStyle_barStyle),
4177
4445
  annotationPoint_annotationPoint,
4178
4446
  annotationVerticalLine_annotationVerticalLine,
4179
4447
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4187,7 +4455,7 @@
4187
4455
  pivotIndicators_pivotIndicators([
4188
4456
  initColumnParallel,
4189
4457
  stackCornerRadius_stackCornerRadius,
4190
- color_color,
4458
+ colorAdapter(color_color, linearColor),
4191
4459
  background_backgroundColor,
4192
4460
  datasetXY,
4193
4461
  progressive,
@@ -4196,7 +4464,7 @@
4196
4464
  label_label,
4197
4465
  tooltip_tooltip,
4198
4466
  verticalCrosshairRect,
4199
- barStyle_barStyle,
4467
+ colorBarStyleFill(barStyle_barStyle),
4200
4468
  annotationPoint_annotationPoint,
4201
4469
  annotationVerticalLine_annotationVerticalLine,
4202
4470
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4204,7 +4472,7 @@
4204
4472
  ]),
4205
4473
  pivotRowDimensions,
4206
4474
  pivotColumnDimensions,
4207
- pivotDiscreteLegend
4475
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4208
4476
  ];
4209
4477
  const columnParallelSpecPipeline = [
4210
4478
  pivotAdapter_pivotAdapter(columnParallel, pivotColumnParallel)
@@ -4241,7 +4509,7 @@
4241
4509
  initColumn,
4242
4510
  stackCornerRadius_stackCornerRadius,
4243
4511
  stackInverse,
4244
- color_color,
4512
+ colorAdapter(color_color, linearColor),
4245
4513
  background_backgroundColor,
4246
4514
  percent,
4247
4515
  datasetXY,
@@ -4250,9 +4518,9 @@
4250
4518
  yLinear,
4251
4519
  label_label,
4252
4520
  tooltip_tooltip,
4521
+ colorAdapter(discreteLegend, colorLegend),
4253
4522
  verticalCrosshairRect,
4254
- discreteLegend,
4255
- barStyle_barStyle,
4523
+ colorBarStyleFill(barStyle_barStyle),
4256
4524
  annotationPoint_annotationPoint,
4257
4525
  annotationVerticalLine_annotationVerticalLine,
4258
4526
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4267,7 +4535,7 @@
4267
4535
  initColumn,
4268
4536
  stackCornerRadius_stackCornerRadius,
4269
4537
  stackInverse,
4270
- color_color,
4538
+ colorAdapter(color_color, linearColor),
4271
4539
  percent,
4272
4540
  background_backgroundColor,
4273
4541
  datasetXY,
@@ -4277,7 +4545,7 @@
4277
4545
  label_label,
4278
4546
  tooltip_tooltip,
4279
4547
  verticalCrosshairRect,
4280
- barStyle_barStyle,
4548
+ colorBarStyleFill(barStyle_barStyle),
4281
4549
  annotationPoint_annotationPoint,
4282
4550
  annotationVerticalLine_annotationVerticalLine,
4283
4551
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4285,7 +4553,7 @@
4285
4553
  ]),
4286
4554
  pivotRowDimensions,
4287
4555
  pivotColumnDimensions,
4288
- pivotDiscreteLegend
4556
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4289
4557
  ];
4290
4558
  const columnPercentSpecPipeline = [
4291
4559
  pivotAdapter_pivotAdapter(columnPercent, pivotColumnPercent)
@@ -4300,17 +4568,23 @@
4300
4568
  if (!dimensions) return advancedVSeed;
4301
4569
  const encoding = vseed.encoding;
4302
4570
  if (encoding) {
4303
- const y = encoding.y || [];
4571
+ const y = encoding.y || [
4572
+ dimensions[0].id
4573
+ ];
4574
+ const color = encoding.color || [
4575
+ (dimensions[1] || dimensions[0]).id
4576
+ ];
4304
4577
  const detail = encoding.detail || [];
4305
- const color = encoding.color || [];
4306
- const mergedDetail = [
4307
- ...color.filter((d)=>!y.includes(d)),
4578
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
4579
+ ...color,
4308
4580
  ...detail
4309
- ];
4581
+ ]) : detail;
4310
4582
  return {
4311
4583
  ...advancedVSeed,
4312
4584
  encoding: {
4313
4585
  ...encoding,
4586
+ y,
4587
+ color,
4314
4588
  detail: mergedDetail
4315
4589
  }
4316
4590
  };
@@ -4318,7 +4592,7 @@
4318
4592
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
4319
4593
  const mergedEncoding = {
4320
4594
  y: dimensions.slice(0, 1).map((item)=>item.id),
4321
- color: dimensions.slice(1).map((item)=>item.id),
4595
+ color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
4322
4596
  detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
4323
4597
  tooltip: dimensions.map((item)=>item.id),
4324
4598
  label: [],
@@ -4648,7 +4922,7 @@
4648
4922
  const bar = [
4649
4923
  initBar,
4650
4924
  stackCornerRadius_stackCornerRadius,
4651
- color_color,
4925
+ colorAdapter(color_color, linearColor),
4652
4926
  background_backgroundColor,
4653
4927
  datasetYX,
4654
4928
  progressive,
@@ -4656,9 +4930,9 @@
4656
4930
  yBand,
4657
4931
  label_label,
4658
4932
  tooltip_tooltip,
4933
+ colorAdapter(discreteLegend, colorLegend),
4659
4934
  horizontalCrosshairRect,
4660
- discreteLegend,
4661
- barStyle_barStyle,
4935
+ colorBarStyleFill(barStyle_barStyle),
4662
4936
  annotationPoint_annotationPoint,
4663
4937
  annotationVerticalLine_annotationVerticalLine,
4664
4938
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4672,7 +4946,7 @@
4672
4946
  pivotIndicators_pivotIndicators([
4673
4947
  initBar,
4674
4948
  stackCornerRadius_stackCornerRadius,
4675
- color_color,
4949
+ colorAdapter(color_color, linearColor),
4676
4950
  background_backgroundColor,
4677
4951
  datasetYX,
4678
4952
  progressive,
@@ -4681,8 +4955,8 @@
4681
4955
  label_label,
4682
4956
  label_label,
4683
4957
  tooltip_tooltip,
4958
+ colorBarStyleFill(barStyle_barStyle),
4684
4959
  horizontalCrosshairRect,
4685
- barStyle_barStyle,
4686
4960
  annotationPoint_annotationPoint,
4687
4961
  annotationVerticalLine_annotationVerticalLine,
4688
4962
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4690,7 +4964,7 @@
4690
4964
  ]),
4691
4965
  pivotRowDimensions,
4692
4966
  pivotColumnDimensions,
4693
- pivotDiscreteLegend
4967
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4694
4968
  ];
4695
4969
  const barSpecPipeline = [
4696
4970
  pivotAdapter_pivotAdapter(bar, pivotBar)
@@ -4746,7 +5020,7 @@
4746
5020
  const barParallel = [
4747
5021
  initBarParallel,
4748
5022
  stackCornerRadius_stackCornerRadius,
4749
- color_color,
5023
+ colorAdapter(color_color, linearColor),
4750
5024
  background_backgroundColor,
4751
5025
  datasetYX,
4752
5026
  progressive,
@@ -4754,9 +5028,9 @@
4754
5028
  yBand,
4755
5029
  label_label,
4756
5030
  tooltip_tooltip,
5031
+ colorAdapter(discreteLegend, colorLegend),
4757
5032
  horizontalCrosshairRect,
4758
- discreteLegend,
4759
- barStyle_barStyle,
5033
+ colorBarStyleFill(barStyle_barStyle),
4760
5034
  annotationPoint_annotationPoint,
4761
5035
  annotationVerticalLine_annotationVerticalLine,
4762
5036
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4770,15 +5044,15 @@
4770
5044
  pivotIndicators_pivotIndicators([
4771
5045
  initBarParallel,
4772
5046
  stackCornerRadius_stackCornerRadius,
4773
- color_color,
5047
+ colorAdapter(color_color, linearColor),
4774
5048
  background_backgroundColor,
4775
5049
  datasetYX,
4776
5050
  xLinear,
4777
5051
  yBand,
4778
5052
  label_label,
4779
5053
  tooltip_tooltip,
5054
+ colorBarStyleFill(barStyle_barStyle),
4780
5055
  horizontalCrosshairRect,
4781
- barStyle_barStyle,
4782
5056
  annotationPoint_annotationPoint,
4783
5057
  annotationVerticalLine_annotationVerticalLine,
4784
5058
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4786,7 +5060,7 @@
4786
5060
  ]),
4787
5061
  pivotRowDimensions,
4788
5062
  pivotColumnDimensions,
4789
- pivotDiscreteLegend
5063
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4790
5064
  ];
4791
5065
  const barParallelSpecPipeline = [
4792
5066
  pivotAdapter_pivotAdapter(barParallel, pivotBarParallel)
@@ -4815,7 +5089,7 @@
4815
5089
  const barPercent = [
4816
5090
  initBar,
4817
5091
  stackCornerRadius_stackCornerRadius,
4818
- color_color,
5092
+ colorAdapter(color_color, linearColor),
4819
5093
  background_backgroundColor,
4820
5094
  percent,
4821
5095
  datasetYX,
@@ -4824,9 +5098,9 @@
4824
5098
  yBand,
4825
5099
  label_label,
4826
5100
  tooltip_tooltip,
5101
+ colorAdapter(discreteLegend, colorLegend),
4827
5102
  horizontalCrosshairRect,
4828
- discreteLegend,
4829
- barStyle_barStyle,
5103
+ colorBarStyleFill(barStyle_barStyle),
4830
5104
  annotationPoint_annotationPoint,
4831
5105
  annotationVerticalLine_annotationVerticalLine,
4832
5106
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4840,7 +5114,7 @@
4840
5114
  pivotIndicators_pivotIndicators([
4841
5115
  initBar,
4842
5116
  stackCornerRadius_stackCornerRadius,
4843
- color_color,
5117
+ colorAdapter(color_color, linearColor),
4844
5118
  background_backgroundColor,
4845
5119
  percent,
4846
5120
  datasetYX,
@@ -4848,8 +5122,8 @@
4848
5122
  xLinear,
4849
5123
  label_label,
4850
5124
  tooltip_tooltip,
5125
+ colorBarStyleFill(barStyle_barStyle),
4851
5126
  horizontalCrosshairRect,
4852
- barStyle_barStyle,
4853
5127
  annotationPoint_annotationPoint,
4854
5128
  annotationVerticalLine_annotationVerticalLine,
4855
5129
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4857,7 +5131,7 @@
4857
5131
  ]),
4858
5132
  pivotRowDimensions,
4859
5133
  pivotColumnDimensions,
4860
- pivotDiscreteLegend
5134
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
4861
5135
  ];
4862
5136
  const barPercentSpecPipeline = [
4863
5137
  pivotAdapter_pivotAdapter(barPercent, pivotBarPercent)
@@ -4894,7 +5168,7 @@
4894
5168
  result.direction = 'vertical';
4895
5169
  result.yField = foldInfo.measureValue;
4896
5170
  result.xField = unfoldInfo.encodingX;
4897
- result.seriesField = unfoldInfo.encodingColorId;
5171
+ result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
4898
5172
  result.padding = 0;
4899
5173
  result.region = [
4900
5174
  {
@@ -4904,20 +5178,32 @@
4904
5178
  result.animation = true;
4905
5179
  return result;
4906
5180
  };
5181
+ const colorAreaStyleFill = (stylePipe)=>(spec, context)=>{
5182
+ const result = stylePipe(spec, context);
5183
+ const { advancedVSeed } = context;
5184
+ const { datasetReshapeInfo } = advancedVSeed;
5185
+ const { unfoldInfo } = datasetReshapeInfo[0];
5186
+ if (isLinearColor(advancedVSeed)) {
5187
+ if (result?.area?.style) result.area.style.fill = {
5188
+ field: unfoldInfo.encodingColor,
5189
+ scale: 'color'
5190
+ };
5191
+ }
5192
+ return result;
5193
+ };
4907
5194
  const areaStyle_areaStyle = (spec, context)=>{
4908
5195
  const { advancedVSeed } = context;
4909
5196
  const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
4910
5197
  const { areaStyle } = markStyle;
4911
5198
  const { unfoldInfo } = datasetReshapeInfo[0];
4912
- if (!areaStyle) return {
5199
+ const result = {
4913
5200
  ...spec,
4914
5201
  area: {
4915
- visible: true
5202
+ visible: true,
5203
+ style: {}
4916
5204
  }
4917
5205
  };
4918
- const result = {
4919
- ...spec
4920
- };
5206
+ if (!areaStyle) return result;
4921
5207
  const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
4922
5208
  areaStyle
4923
5209
  ];
@@ -4945,6 +5231,7 @@
4945
5231
  return {
4946
5232
  ...result,
4947
5233
  area: {
5234
+ ...result.area,
4948
5235
  visible: true,
4949
5236
  state: {
4950
5237
  ...customMap
@@ -4955,7 +5242,7 @@
4955
5242
  const area_area = [
4956
5243
  initArea,
4957
5244
  stackInverse,
4958
- color_color,
5245
+ colorAdapter(color_color, linearColor),
4959
5246
  background_backgroundColor,
4960
5247
  datasetXY,
4961
5248
  progressive,
@@ -4963,12 +5250,12 @@
4963
5250
  yLinear,
4964
5251
  label_label,
4965
5252
  tooltip_tooltip,
5253
+ colorAdapter(discreteLegend, colorLegend),
4966
5254
  verticalCrosshairLine,
4967
- discreteLegend,
4968
- pointStyle_pointStyle,
5255
+ colorPointStyleFill(pointStyle_pointStyle),
4969
5256
  pointStateDimensionHover,
4970
- lineStyle_lineStyle,
4971
- areaStyle_areaStyle,
5257
+ colorLineStyleFill(lineStyle_lineStyle),
5258
+ colorAreaStyleFill(areaStyle_areaStyle),
4972
5259
  annotationPoint_annotationPoint,
4973
5260
  annotationVerticalLine_annotationVerticalLine,
4974
5261
  annotationHorizontalLine_annotationHorizontalLine,
@@ -4981,7 +5268,7 @@
4981
5268
  datasetPivot,
4982
5269
  pivotIndicators_pivotIndicators([
4983
5270
  initArea,
4984
- color_color,
5271
+ colorAdapter(color_color, linearColor),
4985
5272
  background_backgroundColor,
4986
5273
  stackInverse,
4987
5274
  datasetXY,
@@ -4991,10 +5278,10 @@
4991
5278
  label_label,
4992
5279
  tooltip_tooltip,
4993
5280
  verticalCrosshairLine,
4994
- pointStyle_pointStyle,
5281
+ colorPointStyleFill(pointStyle_pointStyle),
4995
5282
  pointStateDimensionHover,
4996
- lineStyle_lineStyle,
4997
- areaStyle_areaStyle,
5283
+ colorLineStyleFill(lineStyle_lineStyle),
5284
+ colorAreaStyleFill(areaStyle_areaStyle),
4998
5285
  annotationPoint_annotationPoint,
4999
5286
  annotationVerticalLine_annotationVerticalLine,
5000
5287
  annotationHorizontalLine_annotationHorizontalLine,
@@ -5002,7 +5289,7 @@
5002
5289
  ]),
5003
5290
  pivotRowDimensions,
5004
5291
  pivotColumnDimensions,
5005
- pivotDiscreteLegend
5292
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
5006
5293
  ];
5007
5294
  const areaSpecPipeline = [
5008
5295
  pivotAdapter_pivotAdapter(area_area, pivotArea)
@@ -5031,7 +5318,7 @@
5031
5318
  const areaPercent = [
5032
5319
  initArea,
5033
5320
  stackInverse,
5034
- color_color,
5321
+ colorAdapter(color_color, linearColor),
5035
5322
  background_backgroundColor,
5036
5323
  percent,
5037
5324
  datasetXY,
@@ -5040,11 +5327,12 @@
5040
5327
  yLinear,
5041
5328
  label_label,
5042
5329
  tooltip_tooltip,
5330
+ colorAdapter(discreteLegend, colorLegend),
5043
5331
  verticalCrosshairLine,
5044
- discreteLegend,
5045
- pointStyle_pointStyle,
5046
- lineStyle_lineStyle,
5047
- areaStyle_areaStyle,
5332
+ colorPointStyleFill(pointStyle_pointStyle),
5333
+ pointStateDimensionHover,
5334
+ colorLineStyleFill(lineStyle_lineStyle),
5335
+ colorAreaStyleFill(areaStyle_areaStyle),
5048
5336
  annotationPoint_annotationPoint,
5049
5337
  annotationVerticalLine_annotationVerticalLine,
5050
5338
  annotationHorizontalLine_annotationHorizontalLine,
@@ -5058,7 +5346,7 @@
5058
5346
  pivotIndicators_pivotIndicators([
5059
5347
  initArea,
5060
5348
  stackInverse,
5061
- color_color,
5349
+ colorAdapter(color_color, linearColor),
5062
5350
  background_backgroundColor,
5063
5351
  percent,
5064
5352
  datasetXY,
@@ -5068,9 +5356,10 @@
5068
5356
  label_label,
5069
5357
  tooltip_tooltip,
5070
5358
  verticalCrosshairLine,
5071
- pointStyle_pointStyle,
5072
- lineStyle_lineStyle,
5073
- areaStyle_areaStyle,
5359
+ colorPointStyleFill(pointStyle_pointStyle),
5360
+ pointStateDimensionHover,
5361
+ colorLineStyleFill(lineStyle_lineStyle),
5362
+ colorAreaStyleFill(areaStyle_areaStyle),
5074
5363
  annotationPoint_annotationPoint,
5075
5364
  annotationVerticalLine_annotationVerticalLine,
5076
5365
  annotationHorizontalLine_annotationHorizontalLine,
@@ -5078,7 +5367,7 @@
5078
5367
  ]),
5079
5368
  pivotRowDimensions,
5080
5369
  pivotColumnDimensions,
5081
- pivotDiscreteLegend
5370
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
5082
5371
  ];
5083
5372
  const areaPercentSpecPipeline = [
5084
5373
  pivotAdapter_pivotAdapter(areaPercent, pivotAreaPercent)
@@ -5183,15 +5472,18 @@
5183
5472
  const encoding = vseed.encoding;
5184
5473
  if (encoding) {
5185
5474
  const detail = encoding.detail || [];
5186
- const color = encoding.color || [];
5187
- const mergedDetail = chunk_QJLMYOTX_i([
5475
+ const color = encoding.color || [
5476
+ (dimensions[1] || dimensions[0]).id
5477
+ ];
5478
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
5188
5479
  ...color,
5189
5480
  ...detail
5190
- ]);
5481
+ ]) : detail;
5191
5482
  return {
5192
5483
  ...advancedVSeed,
5193
5484
  encoding: {
5194
5485
  ...encoding,
5486
+ color,
5195
5487
  detail: mergedDetail
5196
5488
  }
5197
5489
  };
@@ -5430,7 +5722,7 @@
5430
5722
  };
5431
5723
  const scatter = [
5432
5724
  initScatter,
5433
- color_color,
5725
+ colorAdapter(color_color, linearColor),
5434
5726
  background_backgroundColor,
5435
5727
  datasetScatter,
5436
5728
  progressive,
@@ -5438,10 +5730,10 @@
5438
5730
  yLinear,
5439
5731
  label_label,
5440
5732
  tooltip_tooltip,
5733
+ colorAdapter(discreteLegend, colorLegend),
5441
5734
  verticalCrosshairLine,
5442
5735
  horizontalCrosshairLine,
5443
- discreteLegend,
5444
- pointStyle_pointStyle,
5736
+ colorPointStyleFill(pointStyle_pointStyle),
5445
5737
  pointStateHover,
5446
5738
  annotationPoint_annotationPoint,
5447
5739
  annotationVerticalLine_annotationVerticalLine,
@@ -5455,7 +5747,7 @@
5455
5747
  datasetPivot,
5456
5748
  pivotIndicators_pivotIndicators([
5457
5749
  initScatter,
5458
- color_color,
5750
+ colorAdapter(color_color, linearColor),
5459
5751
  background_backgroundColor,
5460
5752
  datasetScatter,
5461
5753
  progressive,
@@ -5465,7 +5757,7 @@
5465
5757
  tooltip_tooltip,
5466
5758
  verticalCrosshairLine,
5467
5759
  horizontalCrosshairLine,
5468
- pointStyle_pointStyle,
5760
+ colorPointStyleFill(pointStyle_pointStyle),
5469
5761
  pointStateHover,
5470
5762
  annotationPoint_annotationPoint,
5471
5763
  annotationVerticalLine_annotationVerticalLine,
@@ -5578,17 +5870,23 @@
5578
5870
  if (!dimensions) return advancedVSeed;
5579
5871
  const encoding = vseed.encoding;
5580
5872
  if (encoding) {
5581
- const x = encoding.x || [];
5873
+ const x = encoding.x || [
5874
+ dimensions[0].id
5875
+ ];
5876
+ const color = encoding.color || [
5877
+ (dimensions[1] || dimensions[0]).id
5878
+ ];
5582
5879
  const detail = encoding.detail || [];
5583
- const color = encoding.color || [];
5584
- const mergedDetail = [
5585
- ...color.filter((d)=>!x.includes(d)),
5880
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
5881
+ ...color,
5586
5882
  ...detail
5587
- ];
5883
+ ]) : detail;
5588
5884
  return {
5589
5885
  ...advancedVSeed,
5590
5886
  encoding: {
5591
5887
  ...encoding,
5888
+ x,
5889
+ color,
5592
5890
  detail: mergedDetail
5593
5891
  }
5594
5892
  };
@@ -6568,7 +6866,6 @@
6568
6866
  }
6569
6867
  };
6570
6868
  const mergedEncoding = {
6571
- angle: dimensions.slice(0, 1).map((item)=>item.id),
6572
6869
  color: dimensions.slice(0).map((item)=>item.id),
6573
6870
  detail: dimensions.slice(0).map((item)=>item.id),
6574
6871
  tooltip: dimensions.map((item)=>item.id),
@@ -6607,8 +6904,7 @@
6607
6904
  result.outerRadius = 0.8;
6608
6905
  result.innerRadius = 0;
6609
6906
  result.valueField = foldInfo.measureValue;
6610
- result.categoryField = unfoldInfo.encodingAngle;
6611
- result.seriesField = unfoldInfo.encodingColorId;
6907
+ result.categoryField = unfoldInfo.encodingColorId;
6612
6908
  result.padding = 0;
6613
6909
  result.region = [
6614
6910
  {
@@ -6699,8 +6995,7 @@
6699
6995
  result.outerRadius = 0.8;
6700
6996
  result.innerRadius = 0.8 * result.outerRadius;
6701
6997
  result.valueField = foldInfo.measureValue;
6702
- result.categoryField = unfoldInfo.encodingDetail;
6703
- result.seriesField = unfoldInfo.encodingColorId;
6998
+ result.categoryField = unfoldInfo.encodingColorId;
6704
6999
  result.padding = 0;
6705
7000
  result.region = [
6706
7001
  {
@@ -6770,17 +7065,23 @@
6770
7065
  if (!dimensions) return advancedVSeed;
6771
7066
  const encoding = vseed.encoding;
6772
7067
  if (encoding) {
6773
- const angle = encoding.angle || [];
7068
+ const angle = encoding.angle || [
7069
+ dimensions[0].id
7070
+ ];
7071
+ const color = encoding.color || [
7072
+ (dimensions[1] || dimensions[0]).id
7073
+ ];
6774
7074
  const detail = encoding.detail || [];
6775
- const color = encoding.color || [];
6776
- const mergedDetail = [
6777
- ...color.filter((d)=>!angle.includes(d)),
7075
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
7076
+ ...color,
6778
7077
  ...detail
6779
- ];
7078
+ ]) : detail;
6780
7079
  return {
6781
7080
  ...advancedVSeed,
6782
7081
  encoding: {
6783
7082
  ...encoding,
7083
+ angle,
7084
+ color,
6784
7085
  detail: mergedDetail
6785
7086
  }
6786
7087
  };
@@ -6788,7 +7089,7 @@
6788
7089
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
6789
7090
  const mergedEncoding = {
6790
7091
  angle: dimensions.slice(0, 1).map((item)=>item.id),
6791
- color: dimensions.slice(1).map((item)=>item.id),
7092
+ color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
6792
7093
  detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
6793
7094
  tooltip: dimensions.map((item)=>item.id),
6794
7095
  label: [],
@@ -6823,7 +7124,7 @@
6823
7124
  const { dataset, datasetReshapeInfo } = advancedVSeed;
6824
7125
  const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
6825
7126
  result.type = 'rose';
6826
- result.categoryField = unfoldInfo.encodingAngle;
7127
+ result.angleField = unfoldInfo.encodingAngle;
6827
7128
  result.seriesField = unfoldInfo.encodingColorId;
6828
7129
  result.valueField = foldInfo.measureValue;
6829
7130
  result.padding = 0;
@@ -6993,7 +7294,7 @@
6993
7294
  const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
6994
7295
  const sameDimensionsMode = dimensions.length > 1 && dimensions.every((dim)=>dim.id === dimensions[0].id);
6995
7296
  result.type = 'rose';
6996
- result.categoryField = sameDimensionsMode ? [
7297
+ result.angleField = sameDimensionsMode ? [
6997
7298
  unfoldInfo.encodingAngle
6998
7299
  ] : [
6999
7300
  unfoldInfo.encodingAngle,
@@ -7083,17 +7384,23 @@
7083
7384
  if (!dimensions) return advancedVSeed;
7084
7385
  const encoding = vseed.encoding;
7085
7386
  if (encoding) {
7086
- const angle = encoding.angle || [];
7387
+ const angle = encoding.angle || [
7388
+ dimensions[0].id
7389
+ ];
7390
+ const color = encoding.color || [
7391
+ (dimensions[1] || dimensions[0]).id
7392
+ ];
7087
7393
  const detail = encoding.detail || [];
7088
- const color = encoding.color || [];
7089
- const mergedDetail = [
7090
- ...color.filter((d)=>!angle.includes(d)),
7394
+ const mergedDetail = 0 === detail.length ? chunk_QJLMYOTX_i([
7395
+ ...color,
7091
7396
  ...detail
7092
- ];
7397
+ ]) : detail;
7093
7398
  return {
7094
7399
  ...advancedVSeed,
7095
7400
  encoding: {
7096
7401
  ...encoding,
7402
+ angle,
7403
+ color,
7097
7404
  detail: mergedDetail
7098
7405
  }
7099
7406
  };
@@ -7138,7 +7445,7 @@
7138
7445
  result.type = 'radar';
7139
7446
  result.angleField = unfoldInfo.encodingAngle;
7140
7447
  result.radiusField = foldInfo.measureValue;
7141
- result.seriesField = unfoldInfo.encodingColorId;
7448
+ result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
7142
7449
  result.padding = 0;
7143
7450
  result.region = [
7144
7451
  {
@@ -7203,7 +7510,7 @@
7203
7510
  };
7204
7511
  const radar = [
7205
7512
  initRadar,
7206
- color_color,
7513
+ colorAdapter(color_color, linearColor),
7207
7514
  background_backgroundColor,
7208
7515
  datasetXY,
7209
7516
  progressive,
@@ -7211,12 +7518,12 @@
7211
7518
  radarRadiusAxis,
7212
7519
  label_label,
7213
7520
  tooltip_tooltip,
7521
+ colorAdapter(discreteLegend, colorLegend),
7214
7522
  verticalCrosshairLine,
7215
- discreteLegend,
7216
- pointStyle_pointStyle,
7523
+ colorPointStyleFill(pointStyle_pointStyle),
7217
7524
  pointStateDimensionHover,
7218
- lineStyle_lineStyle,
7219
- areaStyle_areaStyle
7525
+ colorLineStyleFill(lineStyle_lineStyle),
7526
+ colorAreaStyleFill(areaStyle_areaStyle)
7220
7527
  ];
7221
7528
  const pivotRadar = [
7222
7529
  initPivot,
@@ -7225,7 +7532,7 @@
7225
7532
  datasetPivot,
7226
7533
  pivotIndicators_pivotIndicators([
7227
7534
  initRadar,
7228
- color_color,
7535
+ colorAdapter(color_color, linearColor),
7229
7536
  background_backgroundColor,
7230
7537
  datasetXY,
7231
7538
  progressive,
@@ -7234,14 +7541,14 @@
7234
7541
  label_label,
7235
7542
  tooltip_tooltip,
7236
7543
  verticalCrosshairLine,
7237
- pointStyle_pointStyle,
7544
+ colorPointStyleFill(pointStyle_pointStyle),
7238
7545
  pointStateDimensionHover,
7239
- lineStyle_lineStyle,
7240
- areaStyle_areaStyle
7546
+ colorLineStyleFill(lineStyle_lineStyle),
7547
+ colorAreaStyleFill(areaStyle_areaStyle)
7241
7548
  ]),
7242
7549
  pivotRowDimensions,
7243
7550
  pivotColumnDimensions,
7244
- pivotDiscreteLegend
7551
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend)
7245
7552
  ];
7246
7553
  const radarSpecPipeline = [
7247
7554
  pivotAdapter_pivotAdapter(radar, pivotRadar)
@@ -7297,8 +7604,7 @@
7297
7604
  const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
7298
7605
  result.type = 'funnel';
7299
7606
  result.valueField = foldInfo.measureValue;
7300
- result.categoryField = unfoldInfo.encodingDetail;
7301
- result.seriesField = unfoldInfo.encodingColorId;
7607
+ result.categoryField = unfoldInfo.encodingColorId;
7302
7608
  result.padding = 0;
7303
7609
  result.isTransform = true;
7304
7610
  result.shape = 'rect';
@@ -7333,6 +7639,7 @@
7333
7639
  initFunnel,
7334
7640
  background_backgroundColor,
7335
7641
  datasetXY,
7642
+ color_color,
7336
7643
  label_label,
7337
7644
  tooltip_tooltip,
7338
7645
  discreteLegend,
@@ -7350,6 +7657,7 @@
7350
7657
  initFunnel,
7351
7658
  background_backgroundColor,
7352
7659
  datasetXY,
7660
+ color_color,
7353
7661
  label_label,
7354
7662
  tooltip_tooltip,
7355
7663
  discreteLegend,
@@ -7373,12 +7681,22 @@
7373
7681
  const { dimensions } = advancedVSeed;
7374
7682
  if (!dimensions) return advancedVSeed;
7375
7683
  const encoding = vseed.encoding;
7376
- if (encoding) return {
7377
- ...advancedVSeed,
7378
- encoding: {
7379
- ...encoding
7380
- }
7381
- };
7684
+ if (encoding) {
7685
+ const x = encoding.x || [
7686
+ dimensions[0].id
7687
+ ];
7688
+ const y = encoding.y || [
7689
+ (dimensions[1] || dimensions[0]).id
7690
+ ];
7691
+ return {
7692
+ ...advancedVSeed,
7693
+ encoding: {
7694
+ x,
7695
+ y,
7696
+ ...encoding
7697
+ }
7698
+ };
7699
+ }
7382
7700
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
7383
7701
  const mergedEncoding = {
7384
7702
  x: dimensions.slice(0, 1).map((item)=>item.id),
@@ -7465,6 +7783,7 @@
7465
7783
  initHeatmap,
7466
7784
  background_backgroundColor,
7467
7785
  datasetXY,
7786
+ color_color,
7468
7787
  label_label,
7469
7788
  labelColorInversion,
7470
7789
  discreteLegend,
@@ -7486,6 +7805,7 @@
7486
7805
  initHeatmap,
7487
7806
  background_backgroundColor,
7488
7807
  datasetXY,
7808
+ color_color,
7489
7809
  label_label,
7490
7810
  labelColorInversion,
7491
7811
  discreteLegend,
@@ -7616,6 +7936,10 @@
7616
7936
  const baseConfig = {
7617
7937
  backgroundColor: 'transparent',
7618
7938
  color: {
7939
+ linearColorScheme: [
7940
+ '#C2CEFF',
7941
+ '#5766EC'
7942
+ ],
7619
7943
  colorScheme: [
7620
7944
  '#8D72F6',
7621
7945
  '#5766EC',
@@ -7680,8 +8004,8 @@
7680
8004
  stackCornerRadius: [
7681
8005
  4,
7682
8006
  4,
7683
- 4,
7684
- 4
8007
+ 0,
8008
+ 0
7685
8009
  ]
7686
8010
  },
7687
8011
  columnParallel: {
@@ -7692,8 +8016,8 @@
7692
8016
  stackCornerRadius: [
7693
8017
  4,
7694
8018
  4,
7695
- 4,
7696
- 4
8019
+ 0,
8020
+ 0
7697
8021
  ]
7698
8022
  },
7699
8023
  columnPercent: {
@@ -7704,8 +8028,8 @@
7704
8028
  stackCornerRadius: [
7705
8029
  4,
7706
8030
  4,
7707
- 4,
7708
- 4
8031
+ 0,
8032
+ 0
7709
8033
  ]
7710
8034
  },
7711
8035
  bar: {
@@ -7714,10 +8038,10 @@
7714
8038
  yAxis: barBandAxis,
7715
8039
  crosshairRect,
7716
8040
  stackCornerRadius: [
8041
+ 0,
7717
8042
  4,
7718
8043
  4,
7719
- 4,
7720
- 4
8044
+ 0
7721
8045
  ]
7722
8046
  },
7723
8047
  barParallel: {
@@ -7726,10 +8050,10 @@
7726
8050
  yAxis: barBandAxis,
7727
8051
  crosshairRect,
7728
8052
  stackCornerRadius: [
8053
+ 0,
7729
8054
  4,
7730
8055
  4,
7731
- 4,
7732
- 4
8056
+ 0
7733
8057
  ]
7734
8058
  },
7735
8059
  barPercent: {
@@ -7738,10 +8062,10 @@
7738
8062
  yAxis: barBandAxis,
7739
8063
  crosshairRect,
7740
8064
  stackCornerRadius: [
8065
+ 0,
7741
8066
  4,
7742
8067
  4,
7743
- 4,
7744
- 4
8068
+ 0
7745
8069
  ]
7746
8070
  },
7747
8071
  area: {
@@ -7806,38 +8130,10 @@
7806
8130
  ...baseConfig
7807
8131
  },
7808
8132
  funnel: {
7809
- ...baseConfig,
7810
- color: {
7811
- colorScheme: [
7812
- '#5766EC',
7813
- '#6372F0',
7814
- '#7080F4',
7815
- '#7C8CFA',
7816
- '#8998FF',
7817
- '#95A3FF',
7818
- '#A0AEFF',
7819
- '#ACB9FF',
7820
- '#B7C4FF',
7821
- '#C2CEFF'
7822
- ].reverse()
7823
- }
8133
+ ...baseConfig
7824
8134
  },
7825
8135
  heatmap: {
7826
- ...baseConfig,
7827
- color: {
7828
- colorScheme: [
7829
- '#5766EC',
7830
- '#6372F0',
7831
- '#7080F4',
7832
- '#7C8CFA',
7833
- '#8998FF',
7834
- '#95A3FF',
7835
- '#A0AEFF',
7836
- '#ACB9FF',
7837
- '#B7C4FF',
7838
- '#C2CEFF'
7839
- ].reverse()
7840
- }
8136
+ ...baseConfig
7841
8137
  }
7842
8138
  }
7843
8139
  };
@@ -7949,6 +8245,10 @@
7949
8245
  const baseConfig = {
7950
8246
  backgroundColor: 'transparent',
7951
8247
  color: {
8248
+ linearColorScheme: [
8249
+ '#A0CEFF',
8250
+ '#2E62F1'
8251
+ ],
7952
8252
  colorScheme: [
7953
8253
  '#2E62F1',
7954
8254
  '#4DC36A',
@@ -8012,8 +8312,8 @@
8012
8312
  stackCornerRadius: [
8013
8313
  4,
8014
8314
  4,
8015
- 4,
8016
- 4
8315
+ 0,
8316
+ 0
8017
8317
  ]
8018
8318
  },
8019
8319
  columnParallel: {
@@ -8024,8 +8324,8 @@
8024
8324
  stackCornerRadius: [
8025
8325
  4,
8026
8326
  4,
8027
- 4,
8028
- 4
8327
+ 0,
8328
+ 0
8029
8329
  ]
8030
8330
  },
8031
8331
  columnPercent: {
@@ -8036,8 +8336,8 @@
8036
8336
  stackCornerRadius: [
8037
8337
  4,
8038
8338
  4,
8039
- 4,
8040
- 4
8339
+ 0,
8340
+ 0
8041
8341
  ]
8042
8342
  },
8043
8343
  bar: {
@@ -8058,10 +8358,10 @@
8058
8358
  yAxis: barBandAxis,
8059
8359
  crosshairRect: crosshairRect,
8060
8360
  stackCornerRadius: [
8361
+ 0,
8061
8362
  4,
8062
8363
  4,
8063
- 4,
8064
- 4
8364
+ 0
8065
8365
  ]
8066
8366
  },
8067
8367
  barPercent: {
@@ -8070,10 +8370,10 @@
8070
8370
  yAxis: barBandAxis,
8071
8371
  crosshairRect: crosshairRect,
8072
8372
  stackCornerRadius: [
8373
+ 0,
8073
8374
  4,
8074
8375
  4,
8075
- 4,
8076
- 4
8376
+ 0
8077
8377
  ]
8078
8378
  },
8079
8379
  area: {
@@ -8138,21 +8438,7 @@
8138
8438
  ...baseConfig
8139
8439
  },
8140
8440
  funnel: {
8141
- ...baseConfig,
8142
- color: {
8143
- colorScheme: [
8144
- '#2E62F1',
8145
- '#3A6EF6',
8146
- '#4780FA',
8147
- '#548CFE',
8148
- '#6198FF',
8149
- '#6FA3FF',
8150
- '#7CACFF',
8151
- '#88B7FF',
8152
- '#94C2FF',
8153
- '#A0CEFF'
8154
- ]
8155
- }
8441
+ ...baseConfig
8156
8442
  },
8157
8443
  heatmap: {
8158
8444
  ...baseConfig
@@ -8203,9 +8489,6 @@
8203
8489
  const updateSpec = (chartType, specPipe)=>{
8204
8490
  Builder._customSpecPipe[chartType] = specPipe;
8205
8491
  };
8206
- const isDimension = (dimension)=>!('children' in dimension);
8207
- const isDimensionGroup = (dimension)=>'children' in dimension;
8208
- const isDimensions = (dimensions)=>dimensions.every(isDimension);
8209
8492
  Object.freeze({
8210
8493
  status: "aborted"
8211
8494
  });
@@ -11606,6 +11889,8 @@
11606
11889
  const zScatterMeasures = schemas_array(zScatterMeasure);
11607
11890
  const zFoldInfo = schemas_object({
11608
11891
  foldMap: record(schemas_string(), schemas_string().or(schemas_undefined())),
11892
+ colorRange: schemas_array(schemas_number()),
11893
+ measureRange: schemas_array(schemas_number()),
11609
11894
  measureId: schemas_string(),
11610
11895
  measureName: schemas_string(),
11611
11896
  measureValue: schemas_string()
@@ -11750,10 +12035,11 @@
11750
12035
  const zBackgroundColor = schemas_string().default('transparent').nullish();
11751
12036
  const zColor = schemas_object({
11752
12037
  colorScheme: schemas_array(schemas_string()).nullish(),
12038
+ linearColorScheme: schemas_array(schemas_string()).nullish(),
11753
12039
  colorMapping: record(schemas_string(), schemas_string()).nullish()
11754
12040
  });
11755
12041
  const zLinearColor = schemas_object({
11756
- colorScheme: schemas_array(schemas_string()).nullish()
12042
+ linearColorScheme: schemas_array(schemas_string()).nullish()
11757
12043
  });
11758
12044
  const zLabel = schemas_object({
11759
12045
  enable: schemas_boolean().default(true).nullish()
@@ -12734,7 +13020,7 @@
12734
13020
  dimensions: zDimensions.nullish(),
12735
13021
  measures: zMeasureTree.nullish(),
12736
13022
  backgroundColor: zBackgroundColor.nullish(),
12737
- color: zLinearColor.nullish(),
13023
+ color: zColor.nullish(),
12738
13024
  label: zLabel.nullish(),
12739
13025
  legend: zColorLegend.nullish(),
12740
13026
  tooltip: zTooltip.nullish(),
@@ -12747,7 +13033,7 @@
12747
13033
  dimensions: zDimensions.nullish(),
12748
13034
  measures: zMeasureTree.nullish(),
12749
13035
  backgroundColor: zBackgroundColor.nullish(),
12750
- color: zLinearColor.nullish(),
13036
+ color: zColor.nullish(),
12751
13037
  label: zLabel.nullish(),
12752
13038
  legend: zColorLegend.nullish(),
12753
13039
  tooltip: zTooltip.nullish(),