@visactor/vseed 0.3.13 → 0.3.15

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 (207) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +3135 -25697
  4. package/dist/esm/builder/register/all.js +4 -1
  5. package/dist/esm/builder/register/all.js.map +1 -1
  6. package/dist/esm/builder/register/chartType/index.d.ts +3 -0
  7. package/dist/esm/builder/register/chartType/index.js +4 -1
  8. package/dist/esm/builder/register/chartType/raceBar.d.ts +5 -0
  9. package/dist/esm/builder/register/chartType/raceBar.js +9 -0
  10. package/dist/esm/builder/register/chartType/raceBar.js.map +1 -0
  11. package/dist/esm/builder/register/chartType/raceColumn.d.ts +5 -0
  12. package/dist/esm/builder/register/chartType/raceColumn.js +9 -0
  13. package/dist/esm/builder/register/chartType/raceColumn.js.map +1 -0
  14. package/dist/esm/builder/register/chartType/raceScatter.d.ts +5 -0
  15. package/dist/esm/builder/register/chartType/raceScatter.js +9 -0
  16. package/dist/esm/builder/register/chartType/raceScatter.js.map +1 -0
  17. package/dist/esm/pipeline/advanced/chart/pipeline/index.d.ts +3 -0
  18. package/dist/esm/pipeline/advanced/chart/pipeline/index.js +4 -1
  19. package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.d.ts +2 -0
  20. package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js +5 -0
  21. package/dist/esm/pipeline/advanced/chart/pipeline/raceBar.js.map +1 -0
  22. package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.d.ts +2 -0
  23. package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js +5 -0
  24. package/dist/esm/pipeline/advanced/chart/pipeline/raceColumn.js.map +1 -0
  25. package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.d.ts +2 -0
  26. package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js +5 -0
  27. package/dist/esm/pipeline/advanced/chart/pipeline/raceScatter.js.map +1 -0
  28. package/dist/esm/pipeline/spec/chart/index.d.ts +1 -0
  29. package/dist/esm/pipeline/spec/chart/index.js +1 -0
  30. package/dist/esm/pipeline/spec/chart/pipeline/area.js +2 -2
  31. package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
  32. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js +2 -2
  33. package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
  34. package/dist/esm/pipeline/spec/chart/pipeline/bar.js +2 -2
  35. package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
  36. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js +2 -2
  37. package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
  38. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js +2 -2
  39. package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
  40. package/dist/esm/pipeline/spec/chart/pipeline/column.js +2 -2
  41. package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
  42. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js +2 -2
  43. package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
  44. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js +2 -2
  45. package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
  46. package/dist/esm/pipeline/spec/chart/pipeline/donut.js +2 -2
  47. package/dist/esm/pipeline/spec/chart/pipeline/donut.js.map +1 -1
  48. package/dist/esm/pipeline/spec/chart/pipeline/funnel.js +2 -2
  49. package/dist/esm/pipeline/spec/chart/pipeline/funnel.js.map +1 -1
  50. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +2 -2
  51. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
  52. package/dist/esm/pipeline/spec/chart/pipeline/index.d.ts +3 -0
  53. package/dist/esm/pipeline/spec/chart/pipeline/index.js +4 -1
  54. package/dist/esm/pipeline/spec/chart/pipeline/line.js +2 -2
  55. package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
  56. package/dist/esm/pipeline/spec/chart/pipeline/pie.js +2 -2
  57. package/dist/esm/pipeline/spec/chart/pipeline/pie.js.map +1 -1
  58. package/dist/esm/pipeline/spec/chart/pipeline/raceBar.d.ts +2 -0
  59. package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js +26 -0
  60. package/dist/esm/pipeline/spec/chart/pipeline/raceBar.js.map +1 -0
  61. package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.d.ts +2 -0
  62. package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js +26 -0
  63. package/dist/esm/pipeline/spec/chart/pipeline/raceColumn.js.map +1 -0
  64. package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.d.ts +2 -0
  65. package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js +24 -0
  66. package/dist/esm/pipeline/spec/chart/pipeline/raceScatter.js.map +1 -0
  67. package/dist/esm/pipeline/spec/chart/pipeline/radar.js +2 -2
  68. package/dist/esm/pipeline/spec/chart/pipeline/radar.js.map +1 -1
  69. package/dist/esm/pipeline/spec/chart/pipeline/rose.js +2 -2
  70. package/dist/esm/pipeline/spec/chart/pipeline/rose.js.map +1 -1
  71. package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js +2 -2
  72. package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js.map +1 -1
  73. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +2 -2
  74. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
  75. package/dist/esm/pipeline/spec/chart/pipes/init/scatter.js +4 -0
  76. package/dist/esm/pipeline/spec/chart/pipes/init/scatter.js.map +1 -1
  77. package/dist/esm/pipeline/spec/chart/pipes/player/index.d.ts +8 -1
  78. package/dist/esm/pipeline/spec/chart/pipes/player/index.js +8 -2
  79. package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.d.ts +2 -0
  80. package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js +11 -0
  81. package/dist/esm/pipeline/spec/chart/pipes/player/isPlayer.js.map +1 -0
  82. package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.d.ts +2 -0
  83. package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js +10 -0
  84. package/dist/esm/pipeline/spec/chart/pipes/player/playerXBand.js.map +1 -0
  85. package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.d.ts +2 -0
  86. package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js +14 -0
  87. package/dist/esm/pipeline/spec/chart/pipes/player/playerXLinear.js.map +1 -0
  88. package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.d.ts +2 -0
  89. package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js +171 -0
  90. package/dist/esm/pipeline/spec/chart/pipes/player/playerXY.js.map +1 -0
  91. package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.d.ts +2 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js +13 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/player/playerYBand.js.map +1 -0
  94. package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.d.ts +2 -0
  95. package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js +14 -0
  96. package/dist/esm/pipeline/spec/chart/pipes/player/playerYLinear.js.map +1 -0
  97. package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.d.ts +2 -0
  98. package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js +157 -0
  99. package/dist/esm/pipeline/spec/chart/pipes/player/playerYX.js.map +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.d.ts +2 -0
  101. package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js +173 -0
  102. package/dist/esm/pipeline/spec/chart/pipes/player/playerYY.js.map +1 -0
  103. package/dist/esm/pipeline/spec/chart/utils/condition.d.ts +3 -0
  104. package/dist/esm/pipeline/spec/chart/utils/condition.js +7 -0
  105. package/dist/esm/pipeline/spec/chart/utils/condition.js.map +1 -0
  106. package/dist/esm/pipeline/spec/chart/utils/index.d.ts +1 -0
  107. package/dist/esm/pipeline/spec/chart/utils/index.js +1 -0
  108. package/dist/esm/pipeline/utils/chatType.d.ts +1 -1
  109. package/dist/esm/pipeline/utils/chatType.js +4 -1
  110. package/dist/esm/pipeline/utils/chatType.js.map +1 -1
  111. package/dist/esm/pipeline/utils/constant.d.ts +3 -0
  112. package/dist/esm/pipeline/utils/constant.js +3 -0
  113. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  114. package/dist/esm/theme/dark/dark.js +74 -29
  115. package/dist/esm/theme/dark/dark.js.map +1 -1
  116. package/dist/esm/theme/light/light.js +61 -15
  117. package/dist/esm/theme/light/light.js.map +1 -1
  118. package/dist/esm/types/advancedVSeed.d.ts +35 -18880
  119. package/dist/esm/types/advancedVSeed.js.map +1 -1
  120. package/dist/esm/types/chartType/area/area.d.ts +1 -5
  121. package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +1 -5
  122. package/dist/esm/types/chartType/bar/bar.d.ts +1 -5
  123. package/dist/esm/types/chartType/barParallel/barParallel.d.ts +1 -5
  124. package/dist/esm/types/chartType/barPercent/barPercent.d.ts +1 -5
  125. package/dist/esm/types/chartType/column/column.d.ts +1 -5
  126. package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +1 -5
  127. package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +1 -5
  128. package/dist/esm/types/chartType/donut/donut.d.ts +1 -5
  129. package/dist/esm/types/chartType/funnel/funnel.d.ts +1 -5
  130. package/dist/esm/types/chartType/heatmap/heatmap.d.ts +1 -6
  131. package/dist/esm/types/chartType/index.d.ts +3 -0
  132. package/dist/esm/types/chartType/index.js +3 -0
  133. package/dist/esm/types/chartType/line/line.d.ts +1 -5
  134. package/dist/esm/types/chartType/pie/pie.d.ts +1 -5
  135. package/dist/esm/types/chartType/raceBar/index.d.ts +2 -0
  136. package/dist/esm/types/chartType/raceBar/index.js +1 -0
  137. package/dist/esm/types/chartType/raceBar/raceBar.d.ts +118 -0
  138. package/dist/esm/types/chartType/raceBar/raceBar.js +0 -0
  139. package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +1217 -0
  140. package/dist/esm/types/chartType/raceBar/zRaceBar.js +36 -0
  141. package/dist/esm/types/chartType/raceBar/zRaceBar.js.map +1 -0
  142. package/dist/esm/types/chartType/raceColumn/index.d.ts +2 -0
  143. package/dist/esm/types/chartType/raceColumn/index.js +1 -0
  144. package/dist/esm/types/chartType/raceColumn/raceColumn.d.ts +31 -0
  145. package/dist/esm/types/chartType/raceColumn/raceColumn.js +0 -0
  146. package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +1217 -0
  147. package/dist/esm/types/chartType/raceColumn/zRaceColumn.js +36 -0
  148. package/dist/esm/types/chartType/raceColumn/zRaceColumn.js.map +1 -0
  149. package/dist/esm/types/chartType/raceScatter/index.d.ts +2 -0
  150. package/dist/esm/types/chartType/raceScatter/index.js +1 -0
  151. package/dist/esm/types/chartType/raceScatter/raceScatter.d.ts +27 -0
  152. package/dist/esm/types/chartType/raceScatter/raceScatter.js +0 -0
  153. package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +1416 -0
  154. package/dist/esm/types/chartType/raceScatter/zRaceScatter.js +33 -0
  155. package/dist/esm/types/chartType/raceScatter/zRaceScatter.js.map +1 -0
  156. package/dist/esm/types/chartType/radar/radar.d.ts +1 -5
  157. package/dist/esm/types/chartType/rose/rose.d.ts +1 -6
  158. package/dist/esm/types/chartType/roseParallel/roseParallel.d.ts +1 -6
  159. package/dist/esm/types/chartType/scatter/scatter.d.ts +1 -5
  160. package/dist/esm/types/properties/chartType/chartType.d.ts +2 -1
  161. package/dist/esm/types/properties/chartType/chartType.js +1 -0
  162. package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
  163. package/dist/esm/types/properties/config/area.d.ts +0 -38
  164. package/dist/esm/types/properties/config/area.js +0 -2
  165. package/dist/esm/types/properties/config/area.js.map +1 -1
  166. package/dist/esm/types/properties/config/bar.d.ts +0 -57
  167. package/dist/esm/types/properties/config/bar.js +0 -2
  168. package/dist/esm/types/properties/config/bar.js.map +1 -1
  169. package/dist/esm/types/properties/config/column.d.ts +0 -57
  170. package/dist/esm/types/properties/config/column.js +0 -2
  171. package/dist/esm/types/properties/config/column.js.map +1 -1
  172. package/dist/esm/types/properties/config/config.d.ts +1820 -441
  173. package/dist/esm/types/properties/config/config.js +4 -0
  174. package/dist/esm/types/properties/config/config.js.map +1 -1
  175. package/dist/esm/types/properties/config/funnel.d.ts +0 -19
  176. package/dist/esm/types/properties/config/funnel.js +0 -2
  177. package/dist/esm/types/properties/config/funnel.js.map +1 -1
  178. package/dist/esm/types/properties/config/heatmap.d.ts +0 -19
  179. package/dist/esm/types/properties/config/heatmap.js +0 -2
  180. package/dist/esm/types/properties/config/heatmap.js.map +1 -1
  181. package/dist/esm/types/properties/config/line.d.ts +0 -19
  182. package/dist/esm/types/properties/config/line.js +1 -3
  183. package/dist/esm/types/properties/config/line.js.map +1 -1
  184. package/dist/esm/types/properties/config/pie.d.ts +0 -57
  185. package/dist/esm/types/properties/config/pie.js +0 -2
  186. package/dist/esm/types/properties/config/pie.js.map +1 -1
  187. package/dist/esm/types/properties/config/race.d.ts +1706 -0
  188. package/dist/esm/types/properties/config/race.js +18 -0
  189. package/dist/esm/types/properties/config/race.js.map +1 -0
  190. package/dist/esm/types/properties/config/rose.d.ts +0 -38
  191. package/dist/esm/types/properties/config/rose.js +0 -2
  192. package/dist/esm/types/properties/config/rose.js.map +1 -1
  193. package/dist/esm/types/properties/config/scatter.d.ts +0 -19
  194. package/dist/esm/types/properties/config/scatter.js +0 -2
  195. package/dist/esm/types/properties/config/scatter.js.map +1 -1
  196. package/dist/esm/types/properties/measures/baseMeasure.d.ts +8 -6
  197. package/dist/esm/types/properties/theme/customTheme.d.ts +5548 -2790
  198. package/dist/esm/types/vseed.d.ts +2 -2
  199. package/dist/esm/types/zVseed.d.ts +3844 -0
  200. package/dist/esm/types/zVseed.js +4 -1
  201. package/dist/esm/types/zVseed.js.map +1 -1
  202. package/dist/umd/index.js +1599 -872
  203. package/dist/umd/index.js.map +1 -1
  204. package/package.json +8 -7
  205. package/dist/esm/pipeline/spec/chart/pipes/player/playerAdapter.d.ts +0 -2
  206. package/dist/esm/pipeline/spec/chart/pipes/player/playerAdapter.js +0 -88
  207. package/dist/esm/pipeline/spec/chart/pipes/player/playerAdapter.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -42,6 +42,7 @@
42
42
  selectByValue: ()=>selectByValue,
43
43
  zAnnotationPointConfig: ()=>zAnnotationPointConfig,
44
44
  columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
45
+ raceColumnSpecPipeline: ()=>raceColumnSpecPipeline,
45
46
  zColumnConfig: ()=>zColumnConfig,
46
47
  zDualMeasure: ()=>zDualMeasure,
47
48
  DEFAULT_PARENT_ID: ()=>DEFAULT_PARENT_ID,
@@ -124,6 +125,7 @@
124
125
  zAnnotationHorizontalLineConfig: ()=>zAnnotationHorizontalLineConfig,
125
126
  columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
126
127
  zAnnotationPoint: ()=>zAnnotationPoint,
128
+ zRaceColumn: ()=>zRaceColumn,
127
129
  DATUM_HIDE_KEY: ()=>DATUM_HIDE_KEY,
128
130
  isMeasure: ()=>isMeasure,
129
131
  FoldSecondaryMeasureValue: ()=>FoldSecondaryMeasureValue,
@@ -154,8 +156,8 @@
154
156
  boxplotSpecPipeline: ()=>boxplotSpecPipeline,
155
157
  autoNumFormatter: ()=>autoNumFormatter,
156
158
  tableSpecPipeline: ()=>tableSpecPipeline,
157
- zConfig: ()=>zConfig,
158
159
  isCombination: ()=>isCombination,
160
+ zConfig: ()=>zConfig,
159
161
  zBarStyle: ()=>zBarStyle,
160
162
  deleteDimensionTreeByCallback: ()=>deleteDimensionTreeByCallback,
161
163
  zRoseParallelConfig: ()=>zRoseParallelConfig,
@@ -177,14 +179,14 @@
177
179
  Q3MeasureValue: ()=>"__Q3__",
178
180
  createFormatter: ()=>createFormatter,
179
181
  registerBoxPlot: ()=>registerBoxPlot,
180
- BAND_AXIS_INNER_OFFSET_IN_PIVOT: ()=>2,
181
182
  selectByPartial: ()=>selectByPartial,
182
183
  columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
183
- zBarConfig: ()=>zBarConfig,
184
184
  isMeasureSelector: ()=>isMeasureSelector,
185
+ zBarConfig: ()=>zBarConfig,
185
186
  areaAdvancedPipeline: ()=>areaAdvancedPipeline,
186
187
  areaPercentSpecPipeline: ()=>areaPercentSpecPipeline,
187
188
  barParallelSpecPipeline: ()=>barParallelSpecPipeline,
189
+ BAND_AXIS_INNER_OFFSET_IN_PIVOT: ()=>2,
188
190
  zPie: ()=>zPie,
189
191
  zBar: ()=>zBar,
190
192
  pieAdvancedPipeline: ()=>pieAdvancedPipeline,
@@ -209,6 +211,7 @@
209
211
  Separator: ()=>"-",
210
212
  zDimensionLinkage: ()=>zDimensionLinkage,
211
213
  findAllMeasures: ()=>findAllMeasures,
214
+ raceBarSpecPipeline: ()=>raceBarSpecPipeline,
212
215
  zColorLegend: ()=>zColorLegend,
213
216
  UpperWhisker: ()=>UpperWhisker,
214
217
  EncodingEnum: ()=>EncodingEnum,
@@ -218,9 +221,11 @@
218
221
  zRoseParallel: ()=>zRoseParallel,
219
222
  MeasureName: ()=>MeasureName,
220
223
  hasMultipleMeasureInSingleView: ()=>hasMultipleMeasureInSingleView,
224
+ raceScatterSpecPipeline: ()=>raceScatterSpecPipeline,
221
225
  selectorDatum: ()=>selectorDatum,
222
- zRegressionLine: ()=>zRegressionLine,
223
226
  zNumFormat: ()=>zNumFormat,
227
+ zRaceBar: ()=>zRaceBar,
228
+ zRegressionLine: ()=>zRegressionLine,
224
229
  FoldYMeasureValue: ()=>FoldYMeasureValue,
225
230
  zPivotTableConfig: ()=>zPivotTableConfig,
226
231
  zArea: ()=>zArea,
@@ -286,6 +291,7 @@
286
291
  zAnnotationArea: ()=>zAnnotationArea,
287
292
  DetailEncoding: ()=>DetailEncoding,
288
293
  isPivot: ()=>chatType_isPivot,
294
+ raceScatterAdvancedPipeline: ()=>raceScatterAdvancedPipeline,
289
295
  zPlayer: ()=>zPlayer,
290
296
  zPointStyle: ()=>zPointStyle,
291
297
  zDimension: ()=>zDimension,
@@ -293,6 +299,7 @@
293
299
  registerColumnParallel: ()=>registerColumnParallel,
294
300
  updateAdvanced: ()=>updateAdvanced,
295
301
  histogramAdvancedPipeline: ()=>histogramAdvancedPipeline,
302
+ condition: ()=>condition_condition,
296
303
  isAreaPercent: ()=>isAreaPercent,
297
304
  zColumn: ()=>zColumn,
298
305
  zCustomTheme: ()=>zCustomTheme,
@@ -304,6 +311,7 @@
304
311
  radarAdvancedPipeline: ()=>radarAdvancedPipeline,
305
312
  registerDualAxis: ()=>registerDualAxis,
306
313
  zBoxPlot: ()=>zBoxPlot,
314
+ zRaceScatter: ()=>zRaceScatter,
307
315
  registerBarParallel: ()=>registerBarParallel,
308
316
  pivotTableSpecPipeline: ()=>pivotTableSpecPipeline,
309
317
  DUAL_AXIS_LABEL_Z_INDEX: ()=>1002,
@@ -332,7 +340,9 @@
332
340
  dataReshapeByEncoding: ()=>dataReshapeByEncoding,
333
341
  lineSpecPipeline: ()=>lineSpecPipeline,
334
342
  deleteMeasureTreeByCallback: ()=>deleteMeasureTreeByCallback,
343
+ raceBarAdvancedPipeline: ()=>raceBarAdvancedPipeline,
335
344
  zDimensionGroup: ()=>zDimensionGroup,
345
+ raceColumnAdvancedPipeline: ()=>raceColumnAdvancedPipeline,
336
346
  isPositionMeasure: ()=>isPositionMeasure
337
347
  });
338
348
  const execPipeline = (pipeline, context, initialValue = {})=>{
@@ -540,6 +550,9 @@
540
550
  ColumnPercent: 'columnPercent',
541
551
  ColumnParallel: 'columnParallel',
542
552
  Bar: 'bar',
553
+ RaceBar: 'raceBar',
554
+ RaceColumn: 'raceColumn',
555
+ RaceScatter: 'raceScatter',
543
556
  BarPercent: 'barPercent',
544
557
  BarParallel: 'barParallel',
545
558
  Area: 'area',
@@ -611,7 +624,7 @@
611
624
  const isAreaPercent = (vseed)=>vseed.chartType === ChartTypeEnum.AreaPercent;
612
625
  const isColumnPercent = (vseed)=>vseed.chartType === ChartTypeEnum.ColumnPercent;
613
626
  const isBarPercent = (vseed)=>vseed.chartType === ChartTypeEnum.BarPercent;
614
- const isBarLikeChart = (vseed)=>vseed.chartType === ChartTypeEnum.Bar || vseed.chartType === ChartTypeEnum.BarPercent || vseed.chartType === ChartTypeEnum.BarParallel;
627
+ const isBarLikeChart = (vseed)=>vseed.chartType === ChartTypeEnum.Bar || vseed.chartType === ChartTypeEnum.RaceBar || vseed.chartType === ChartTypeEnum.BarPercent || vseed.chartType === ChartTypeEnum.BarParallel;
615
628
  const isVTable = (vseed)=>[
616
629
  'table',
617
630
  'pivotTable'
@@ -657,6 +670,9 @@
657
670
  };
658
671
  const isRectungularCoordinate = (chartType)=>[
659
672
  ChartTypeEnum.Bar,
673
+ ChartTypeEnum.RaceBar,
674
+ ChartTypeEnum.RaceColumn,
675
+ ChartTypeEnum.RaceScatter,
660
676
  ChartTypeEnum.BarPercent,
661
677
  ChartTypeEnum.BarParallel,
662
678
  ChartTypeEnum.Column,
@@ -2886,105 +2902,6 @@
2886
2902
  background: backgroundColor
2887
2903
  };
2888
2904
  };
2889
- function chunk_HVPVHFDT_i(...e) {
2890
- return chunk_WIMGWYZL_u(chunk_HVPVHFDT_p, e);
2891
- }
2892
- var chunk_HVPVHFDT_p = (e, d)=>{
2893
- let r = Object.create(null);
2894
- for(let n = 0; n < e.length; n++){
2895
- let t = e[n], y = d(t, n, e);
2896
- if (void 0 !== y) {
2897
- let o = r[y];
2898
- void 0 === o ? r[y] = [
2899
- t
2900
- ] : o.push(t);
2901
- }
2902
- }
2903
- return Object.setPrototypeOf(r, Object.prototype), r;
2904
- };
2905
- const playerAdapter = (pipe)=>(spec, context)=>{
2906
- const { vseed, advancedVSeed } = context;
2907
- const { datasetReshapeInfo, chartType } = advancedVSeed;
2908
- const baseConfig = advancedVSeed.config[chartType];
2909
- if (!('player' in vseed) || !baseConfig || !baseConfig.player || isVTable(vseed) || chatType_isPivotChart(vseed)) return pipe(spec, context);
2910
- const { player } = baseConfig;
2911
- const id = datasetReshapeInfo[0].id;
2912
- const nextSpec = pipe(spec, context);
2913
- const { field, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
2914
- const dataGroups = chunk_HVPVHFDT_i(advancedVSeed.dataset, (item)=>item[field]);
2915
- const specs = Object.values(dataGroups).map((items)=>({
2916
- data: {
2917
- id: id,
2918
- values: items
2919
- }
2920
- }));
2921
- return {
2922
- ...nextSpec,
2923
- player: {
2924
- visible: true,
2925
- auto: autoPlay,
2926
- interval: interval,
2927
- loop: loop,
2928
- alternate: false,
2929
- position: 'middle',
2930
- orient: position,
2931
- type: 'discrete',
2932
- specs,
2933
- controller: {
2934
- visible: true,
2935
- start: {
2936
- visible: true,
2937
- order: 0,
2938
- style: {
2939
- fill: startButtonColor
2940
- }
2941
- },
2942
- pause: {
2943
- visible: true,
2944
- order: 1,
2945
- style: {
2946
- fill: pauseButtonColor
2947
- }
2948
- },
2949
- backward: {
2950
- visible: true,
2951
- order: 2,
2952
- style: {
2953
- fill: backwardButtonColor
2954
- }
2955
- },
2956
- forward: {
2957
- visible: true,
2958
- order: 3,
2959
- position: 'end',
2960
- style: {
2961
- fill: forwardButtonColor
2962
- }
2963
- }
2964
- },
2965
- slider: {
2966
- visible: true,
2967
- railStyle: {
2968
- visible: true,
2969
- fill: railColor,
2970
- ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
2971
- },
2972
- trackStyle: {
2973
- visible: true,
2974
- fill: trackColor,
2975
- ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
2976
- },
2977
- handlerStyle: {
2978
- visible: true,
2979
- lineWidth: 2,
2980
- stroke: sliderHandleBorderColor,
2981
- fill: sliderHandleColor,
2982
- size: 9
2983
- }
2984
- }
2985
- }
2986
- };
2987
- };
2988
2905
  const datasetXY = (spec, context)=>{
2989
2906
  const { advancedVSeed, vseed } = context;
2990
2907
  const { analysis, datasetReshapeInfo } = advancedVSeed;
@@ -5815,7 +5732,7 @@
5815
5732
  initLine,
5816
5733
  colorAdapter(color_color, linearColor),
5817
5734
  background_backgroundColor,
5818
- playerAdapter(datasetXY),
5735
+ datasetXY,
5819
5736
  progressive,
5820
5737
  xBand,
5821
5738
  yLinear,
@@ -6805,7 +6722,7 @@
6805
6722
  stackInverse,
6806
6723
  colorAdapter(color_color, linearColor),
6807
6724
  background_backgroundColor,
6808
- playerAdapter(datasetXY),
6725
+ datasetXY,
6809
6726
  progressive,
6810
6727
  xBand,
6811
6728
  yLinear,
@@ -7014,7 +6931,7 @@
7014
6931
  barGapInGroup_barGapInGroup,
7015
6932
  colorAdapter(color_color, linearColor),
7016
6933
  background_backgroundColor,
7017
- playerAdapter(datasetXY),
6934
+ datasetXY,
7018
6935
  progressive,
7019
6936
  xBand,
7020
6937
  yLinear,
@@ -7114,7 +7031,7 @@
7114
7031
  colorAdapter(color_color, linearColor),
7115
7032
  background_backgroundColor,
7116
7033
  percent_percent,
7117
- playerAdapter(datasetXY),
7034
+ datasetXY,
7118
7035
  progressive,
7119
7036
  xBand,
7120
7037
  yLinear,
@@ -7471,7 +7388,7 @@
7471
7388
  barMaxWidth_barMaxWidth,
7472
7389
  colorAdapter(color_color, linearColor),
7473
7390
  background_backgroundColor,
7474
- playerAdapter(datasetYX),
7391
+ datasetYX,
7475
7392
  progressive,
7476
7393
  xLinear,
7477
7394
  yBand,
@@ -7524,77 +7441,203 @@
7524
7441
  Builder.registerAdvancedPipeline('bar', barAdvancedPipeline);
7525
7442
  Builder.registerSpecPipeline('bar', barSpecPipeline);
7526
7443
  };
7527
- const barParallelAdvancedPipeline = [
7528
- page_page_page,
7529
- initAdvancedVSeed_initAdvancedVSeed,
7530
- default_defaultMeasures_defaultMeasures,
7531
- defaultDimensions_defaultDimensions,
7532
- defaultMeasureId_defaultMeasureId,
7533
- encodingAdapter([
7534
- buildMeasures([
7535
- 'xAxis',
7536
- 'detail'
7537
- ]),
7538
- defaultEncodingForBar
7539
- ], [
7540
- buildMeasures([
7541
- 'xAxis',
7542
- 'detail'
7543
- ]),
7544
- encodingForBar,
7545
- pickDimensionsForReshape
7546
- ]),
7547
- pivotAdapter([
7548
- reshapeWithEncoding
7549
- ], [
7550
- pivotReshapeWithEncoding
7551
- ]),
7552
- sortYBandAxis,
7553
- sortLegend_sortLegend,
7554
- barParallelConfig,
7555
- theme_theme,
7556
- markStyle_markStyle,
7557
- annotation_annotation
7558
- ];
7559
- const initBarParallel = (spec, context)=>{
7560
- const result = {
7561
- ...spec
7562
- };
7563
- const { advancedVSeed } = context;
7564
- const { datasetReshapeInfo, encoding } = advancedVSeed;
7565
- const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
7566
- const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.y, encoding.color);
7567
- result.type = 'bar';
7568
- result.direction = 'horizontal';
7569
- result.yField = [
7570
- unfoldInfo.encodingY
7571
- ];
7572
- if (!sameDimensionsMode) {
7573
- result.yField.push(unfoldInfo.encodingDetail);
7574
- if (encoding.detail?.[0] === MeasureId && encoding.x?.length === 1) result.yField.pop();
7444
+ const raceBarAdvancedPipeline = barAdvancedPipeline;
7445
+ function chunk_HVPVHFDT_i(...e) {
7446
+ return chunk_WIMGWYZL_u(chunk_HVPVHFDT_p, e);
7447
+ }
7448
+ var chunk_HVPVHFDT_p = (e, d)=>{
7449
+ let r = Object.create(null);
7450
+ for(let n = 0; n < e.length; n++){
7451
+ let t = e[n], y = d(t, n, e);
7452
+ if (void 0 !== y) {
7453
+ let o = r[y];
7454
+ void 0 === o ? r[y] = [
7455
+ t
7456
+ ] : o.push(t);
7457
+ }
7575
7458
  }
7576
- result.xField = foldInfo.measureValue;
7577
- result.seriesField = unfoldInfo.encodingColorId;
7578
- result.padding = 0;
7579
- result.region = [
7580
- {
7581
- clip: true
7459
+ return Object.setPrototypeOf(r, Object.prototype), r;
7460
+ };
7461
+ const playerYX = (spec, context)=>{
7462
+ const { vseed, advancedVSeed } = context;
7463
+ const { datasetReshapeInfo, chartType } = advancedVSeed;
7464
+ const baseConfig = advancedVSeed.config[chartType];
7465
+ const result = datasetYX(spec, context);
7466
+ if (!('player' in vseed) || !baseConfig || !baseConfig.player || isVTable(vseed) || chatType_isPivotChart(vseed)) return result;
7467
+ const { player } = baseConfig;
7468
+ const id = datasetReshapeInfo[0].id;
7469
+ const { field, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
7470
+ const dataGroups = chunk_HVPVHFDT_i(advancedVSeed.dataset, (item)=>item[field]);
7471
+ if (result.data && 'values' in result.data) result.data.values = [];
7472
+ const specs = Object.values(dataGroups).map((items)=>({
7473
+ data: {
7474
+ id: id,
7475
+ values: items.slice(0, 10)
7476
+ }
7477
+ }));
7478
+ const duration = interval;
7479
+ const exchangeDuration = 0.6 * interval;
7480
+ return {
7481
+ ...result,
7482
+ stackCornerRadius: void 0,
7483
+ animationUpdate: {
7484
+ bar: [
7485
+ {
7486
+ type: 'update',
7487
+ options: {
7488
+ excludeChannels: [
7489
+ 'y'
7490
+ ]
7491
+ },
7492
+ easing: 'linear',
7493
+ duration
7494
+ },
7495
+ {
7496
+ channel: [
7497
+ 'y'
7498
+ ],
7499
+ easing: 'circInOut',
7500
+ duration: exchangeDuration
7501
+ }
7502
+ ],
7503
+ axis: {
7504
+ duration: exchangeDuration,
7505
+ easing: 'circInOut'
7506
+ }
7507
+ },
7508
+ animationEnter: {
7509
+ bar: [
7510
+ {
7511
+ type: 'moveIn',
7512
+ duration: exchangeDuration,
7513
+ easing: 'circInOut',
7514
+ options: {
7515
+ direction: 'y',
7516
+ orient: 'negative'
7517
+ }
7518
+ }
7519
+ ]
7520
+ },
7521
+ animationExit: {
7522
+ bar: [
7523
+ {
7524
+ type: 'fadeOut',
7525
+ duration: exchangeDuration
7526
+ }
7527
+ ]
7528
+ },
7529
+ customMark: [
7530
+ {
7531
+ type: 'text',
7532
+ dataId: 'year',
7533
+ style: {
7534
+ textBaseline: 'bottom',
7535
+ fontSize: 24,
7536
+ textAlign: 'right',
7537
+ fontFamily: 'PingFang SC',
7538
+ fontWeight: 600,
7539
+ text: (datum)=>datum.year,
7540
+ x: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - 50,
7541
+ y: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height - 50,
7542
+ fill: 'grey',
7543
+ fillOpacity: 0.5
7544
+ }
7545
+ }
7546
+ ],
7547
+ player: {
7548
+ visible: true,
7549
+ auto: autoPlay,
7550
+ interval: interval,
7551
+ loop: loop,
7552
+ alternate: false,
7553
+ position: 'middle',
7554
+ orient: position,
7555
+ type: 'discrete',
7556
+ specs,
7557
+ controller: {
7558
+ visible: true,
7559
+ start: {
7560
+ visible: true,
7561
+ order: 0,
7562
+ style: {
7563
+ fill: startButtonColor
7564
+ }
7565
+ },
7566
+ pause: {
7567
+ visible: true,
7568
+ order: 1,
7569
+ style: {
7570
+ fill: pauseButtonColor
7571
+ }
7572
+ },
7573
+ backward: {
7574
+ visible: true,
7575
+ order: 2,
7576
+ style: {
7577
+ fill: backwardButtonColor
7578
+ }
7579
+ },
7580
+ forward: {
7581
+ visible: true,
7582
+ order: 3,
7583
+ position: 'end',
7584
+ style: {
7585
+ fill: forwardButtonColor
7586
+ }
7587
+ }
7588
+ },
7589
+ slider: {
7590
+ visible: true,
7591
+ railStyle: {
7592
+ visible: true,
7593
+ fill: railColor,
7594
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
7595
+ },
7596
+ trackStyle: {
7597
+ visible: true,
7598
+ fill: trackColor,
7599
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
7600
+ },
7601
+ handlerStyle: {
7602
+ visible: true,
7603
+ lineWidth: 2,
7604
+ stroke: sliderHandleBorderColor,
7605
+ fill: sliderHandleColor,
7606
+ size: 9
7607
+ }
7608
+ }
7582
7609
  }
7583
- ];
7584
- result.animation = true;
7610
+ };
7611
+ };
7612
+ const playerXLinear = (spec, context)=>{
7613
+ const result = xLinear(spec, context);
7614
+ const linearAxis = result.axes?.find((axis)=>axis?.type === 'linear');
7615
+ if (linearAxis) {
7616
+ linearAxis.animation = true;
7617
+ linearAxis.nice = false;
7618
+ if (linearAxis.tick) linearAxis.tick.tickStep = 10000;
7619
+ }
7585
7620
  return result;
7586
7621
  };
7587
- const barParallel = [
7588
- initBarParallel,
7622
+ const playerYBand = (spec, context)=>{
7623
+ const result = yBand(spec, context);
7624
+ const bandAxis = result.axes?.find((axis)=>axis?.type === 'band');
7625
+ if (bandAxis) {
7626
+ bandAxis.animation = true;
7627
+ bandAxis.width = '15%';
7628
+ }
7629
+ return result;
7630
+ };
7631
+ const raceBar = [
7632
+ initBar,
7589
7633
  stackCornerRadius_stackCornerRadius,
7590
7634
  barMaxWidth_barMaxWidth,
7591
- barGapInGroup_barGapInGroup,
7592
7635
  colorAdapter(color_color, linearColor),
7593
7636
  background_backgroundColor,
7594
- playerAdapter(datasetYX),
7637
+ playerYX,
7595
7638
  progressive,
7596
- xLinear,
7597
- yBand,
7639
+ playerXLinear,
7640
+ playerYBand,
7598
7641
  label_label,
7599
7642
  brush_brush,
7600
7643
  tooltip_tooltip,
@@ -7606,86 +7649,203 @@
7606
7649
  annotationHorizontalLine_annotationHorizontalLine,
7607
7650
  annotationAreaBand
7608
7651
  ];
7609
- const pivotBarParallel = [
7610
- initPivot,
7611
- pivotGridStyle,
7612
- pivotIndicatorsAsCol,
7613
- datasetPivot,
7614
- pivotIndicators_pivotIndicators([
7615
- initBarParallel,
7616
- stackCornerRadius_stackCornerRadius,
7617
- barMaxWidth_barMaxWidth,
7618
- colorAdapter(color_color, linearColor),
7619
- background_backgroundColor,
7620
- datasetYX,
7621
- xLinear,
7622
- pivotAxisStyle(yBand),
7623
- brush_brush,
7624
- label_label,
7625
- tooltip_tooltip,
7626
- colorBarStyleFill(barStyle_barStyle),
7627
- horizontalCrosshairRect,
7628
- annotationPoint_annotationPoint,
7629
- annotationVerticalLine_annotationVerticalLine,
7630
- annotationHorizontalLine_annotationHorizontalLine,
7631
- annotationAreaBand
7632
- ]),
7633
- pivotRowDimensions,
7634
- pivotColumnDimensions,
7635
- pivotTitle,
7636
- colorAdapter(pivotDiscreteLegend, pivotColorLegend),
7637
- dimensionLinkage
7638
- ];
7639
- const barParallelSpecPipeline = [
7640
- pivotAdapter_pivotAdapter(barParallel, pivotBarParallel)
7641
- ];
7642
- const registerBarParallel = ()=>{
7643
- Builder.registerAdvancedPipeline('barParallel', barParallelAdvancedPipeline);
7644
- Builder.registerSpecPipeline('barParallel', barParallelSpecPipeline);
7652
+ const raceBarSpecPipeline = raceBar;
7653
+ const registerRaceBar = ()=>{
7654
+ Builder.registerAdvancedPipeline('raceBar', raceBarAdvancedPipeline);
7655
+ Builder.registerSpecPipeline('raceBar', raceBarSpecPipeline);
7645
7656
  };
7646
- const barPercentAdvancedPipeline = [
7647
- page_page_page,
7648
- initAdvancedVSeed_initAdvancedVSeed,
7649
- default_defaultMeasures_defaultMeasures,
7650
- defaultDimensions_defaultDimensions,
7651
- defaultMeasureId_defaultMeasureId,
7652
- encodingAdapter([
7653
- buildMeasures([
7654
- 'xAxis',
7655
- 'detail'
7656
- ]),
7657
- defaultEncodingForBar
7658
- ], [
7659
- buildMeasures([
7660
- 'xAxis',
7661
- 'detail'
7662
- ]),
7663
- encodingForBar,
7664
- pickDimensionsForReshape
7665
- ]),
7666
- pivotAdapter([
7667
- reshapeWithEncoding
7668
- ], [
7669
- pivotReshapeWithEncoding
7670
- ]),
7671
- sortYBandAxis,
7672
- sortLegend_sortLegend,
7673
- barPercentConfig,
7674
- theme_theme,
7675
- markStyle_markStyle,
7676
- annotation_annotation
7677
- ];
7678
- const barPercent = [
7679
- initBar,
7657
+ const raceColumnAdvancedPipeline = columnAdvancedPipeline;
7658
+ const playerXY = (spec, context)=>{
7659
+ const { vseed, advancedVSeed } = context;
7660
+ const { datasetReshapeInfo, chartType } = advancedVSeed;
7661
+ const baseConfig = advancedVSeed.config[chartType];
7662
+ const result = datasetXY(spec, context);
7663
+ if (!('player' in vseed) || !baseConfig || !baseConfig.player || isVTable(vseed) || chatType_isPivotChart(vseed)) return result;
7664
+ const { player } = baseConfig;
7665
+ const id = datasetReshapeInfo[0].id;
7666
+ const { field, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
7667
+ const dataGroups = chunk_HVPVHFDT_i(advancedVSeed.dataset, (item)=>item[field]);
7668
+ if (result.data && 'values' in result.data) result.data.values = [];
7669
+ const specs = Object.values(dataGroups).map((items)=>({
7670
+ data: {
7671
+ id: id,
7672
+ values: items.slice(0, 10)
7673
+ }
7674
+ }));
7675
+ const duration = interval;
7676
+ const exchangeDuration = 0.6 * interval;
7677
+ return {
7678
+ ...result,
7679
+ stackCornerRadius: void 0,
7680
+ animationUpdate: {
7681
+ bar: [
7682
+ {
7683
+ type: 'update',
7684
+ options: {
7685
+ excludeChannels: [
7686
+ 'x'
7687
+ ]
7688
+ },
7689
+ easing: 'linear',
7690
+ duration
7691
+ },
7692
+ {
7693
+ channel: [
7694
+ 'x'
7695
+ ],
7696
+ easing: 'circInOut',
7697
+ duration: exchangeDuration
7698
+ }
7699
+ ],
7700
+ point: [
7701
+ {
7702
+ type: 'update',
7703
+ easing: 'linear',
7704
+ duration
7705
+ }
7706
+ ],
7707
+ line: [
7708
+ {
7709
+ type: 'update',
7710
+ easing: 'linear',
7711
+ duration
7712
+ }
7713
+ ],
7714
+ axis: {
7715
+ duration: exchangeDuration,
7716
+ easing: 'circInOut'
7717
+ }
7718
+ },
7719
+ animationEnter: {
7720
+ bar: [
7721
+ {
7722
+ type: 'moveIn',
7723
+ duration: exchangeDuration,
7724
+ easing: 'circInOut',
7725
+ options: {
7726
+ direction: 'x',
7727
+ orient: 'negative'
7728
+ }
7729
+ }
7730
+ ]
7731
+ },
7732
+ animationExit: {
7733
+ bar: [
7734
+ {
7735
+ type: 'fadeOut',
7736
+ duration: exchangeDuration
7737
+ }
7738
+ ]
7739
+ },
7740
+ customMark: [
7741
+ {
7742
+ type: 'text',
7743
+ dataId: 'year',
7744
+ style: {
7745
+ textBaseline: 'bottom',
7746
+ fontSize: 24,
7747
+ textAlign: 'right',
7748
+ fontFamily: 'PingFang SC',
7749
+ fontWeight: 600,
7750
+ text: (datum)=>datum.year,
7751
+ x: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - 50,
7752
+ y: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height - 50,
7753
+ fill: 'grey',
7754
+ fillOpacity: 0.5
7755
+ }
7756
+ }
7757
+ ],
7758
+ player: {
7759
+ visible: true,
7760
+ auto: autoPlay,
7761
+ interval: interval,
7762
+ loop: loop,
7763
+ alternate: false,
7764
+ position: 'middle',
7765
+ orient: position,
7766
+ type: 'discrete',
7767
+ specs,
7768
+ controller: {
7769
+ visible: true,
7770
+ start: {
7771
+ visible: true,
7772
+ order: 0,
7773
+ style: {
7774
+ fill: startButtonColor
7775
+ }
7776
+ },
7777
+ pause: {
7778
+ visible: true,
7779
+ order: 1,
7780
+ style: {
7781
+ fill: pauseButtonColor
7782
+ }
7783
+ },
7784
+ backward: {
7785
+ visible: true,
7786
+ order: 2,
7787
+ style: {
7788
+ fill: backwardButtonColor
7789
+ }
7790
+ },
7791
+ forward: {
7792
+ visible: true,
7793
+ order: 3,
7794
+ position: 'end',
7795
+ style: {
7796
+ fill: forwardButtonColor
7797
+ }
7798
+ }
7799
+ },
7800
+ slider: {
7801
+ visible: true,
7802
+ railStyle: {
7803
+ visible: true,
7804
+ fill: railColor,
7805
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
7806
+ },
7807
+ trackStyle: {
7808
+ visible: true,
7809
+ fill: trackColor,
7810
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
7811
+ },
7812
+ handlerStyle: {
7813
+ visible: true,
7814
+ lineWidth: 2,
7815
+ stroke: sliderHandleBorderColor,
7816
+ fill: sliderHandleColor,
7817
+ size: 9
7818
+ }
7819
+ }
7820
+ }
7821
+ };
7822
+ };
7823
+ const playerXBand = (spec, context)=>{
7824
+ const result = xBand(spec, context);
7825
+ const bandAxis = result.axes?.find((axis)=>axis?.type === 'band');
7826
+ if (bandAxis) bandAxis.animation = true;
7827
+ return result;
7828
+ };
7829
+ const playerYLinear = (spec, context)=>{
7830
+ const result = yLinear(spec, context);
7831
+ const linearAxis = result.axes?.find((axis)=>axis?.type === 'linear');
7832
+ if (linearAxis) {
7833
+ linearAxis.animation = true;
7834
+ linearAxis.nice = false;
7835
+ if (linearAxis.tick) linearAxis.tick.tickStep = 10000;
7836
+ }
7837
+ return result;
7838
+ };
7839
+ const raceColumn = [
7840
+ initColumn,
7680
7841
  stackCornerRadius_stackCornerRadius,
7681
7842
  barMaxWidth_barMaxWidth,
7682
7843
  colorAdapter(color_color, linearColor),
7683
7844
  background_backgroundColor,
7684
- percent_percent,
7685
- playerAdapter(datasetYX),
7845
+ playerXY,
7686
7846
  progressive,
7687
- xLinear,
7688
- yBand,
7847
+ playerXBand,
7848
+ playerYLinear,
7689
7849
  label_label,
7690
7850
  brush_brush,
7691
7851
  tooltip_tooltip,
@@ -7697,216 +7857,657 @@
7697
7857
  annotationHorizontalLine_annotationHorizontalLine,
7698
7858
  annotationAreaBand
7699
7859
  ];
7700
- const pivotBarPercent = [
7701
- initPivot,
7702
- pivotGridStyle,
7703
- pivotIndicatorsAsCol,
7704
- datasetPivot,
7705
- pivotIndicators_pivotIndicators([
7706
- initBar,
7707
- stackCornerRadius_stackCornerRadius,
7708
- barMaxWidth_barMaxWidth,
7709
- colorAdapter(color_color, linearColor),
7710
- background_backgroundColor,
7711
- percent_percent,
7712
- datasetYX,
7713
- xLinear,
7714
- pivotAxisStyle(yBand),
7715
- brush_brush,
7716
- label_label,
7717
- tooltip_tooltip,
7718
- colorBarStyleFill(barStyle_barStyle),
7719
- horizontalCrosshairRect,
7720
- annotationPoint_annotationPoint,
7721
- annotationVerticalLine_annotationVerticalLine,
7722
- annotationHorizontalLine_annotationHorizontalLine,
7723
- annotationAreaBand
7724
- ]),
7725
- pivotRowDimensions,
7726
- pivotColumnDimensions,
7727
- pivotTitle,
7728
- colorAdapter(pivotDiscreteLegend, pivotColorLegend),
7729
- dimensionLinkage
7730
- ];
7731
- const barPercentSpecPipeline = [
7732
- pivotAdapter_pivotAdapter(barPercent, pivotBarPercent)
7733
- ];
7734
- const registerBarPercent = ()=>{
7735
- Builder.registerAdvancedPipeline('barPercent', barPercentAdvancedPipeline);
7736
- Builder.registerSpecPipeline('barPercent', barPercentSpecPipeline);
7860
+ const raceColumnSpecPipeline = raceColumn;
7861
+ const registerRaceColumn = ()=>{
7862
+ Builder.registerAdvancedPipeline('raceColumn', raceColumnAdvancedPipeline);
7863
+ Builder.registerSpecPipeline('raceColumn', raceColumnSpecPipeline);
7737
7864
  };
7738
- const areaAdvancedPipeline = [
7739
- page_page_page,
7740
- initAdvancedVSeed_initAdvancedVSeed,
7741
- default_defaultMeasures_defaultMeasures,
7742
- defaultDimensions_defaultDimensions,
7743
- defaultMeasureId_defaultMeasureId,
7744
- encodingAdapter([
7745
- buildMeasures([
7746
- 'yAxis',
7747
- 'detail'
7748
- ]),
7749
- defaultEncodingForLine
7750
- ], [
7751
- buildMeasures([
7752
- 'yAxis',
7753
- 'detail'
7754
- ]),
7755
- encodingForLine,
7756
- pickDimensionsForReshape
7757
- ]),
7758
- pivotAdapter([
7759
- reshapeWithEncoding
7760
- ], [
7761
- pivotReshapeWithEncoding
7762
- ]),
7763
- sortXBandAxis,
7764
- sortLegend_sortLegend,
7765
- areaConfig,
7766
- theme_theme,
7767
- markStyle_markStyle,
7768
- annotation_annotation
7769
- ];
7770
- const initArea = (spec, context)=>{
7771
- const result = {
7772
- ...spec
7773
- };
7774
- const { advancedVSeed, vseed } = context;
7775
- const { datasetReshapeInfo } = advancedVSeed;
7776
- const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
7777
- result.type = 'area';
7778
- result.direction = 'vertical';
7779
- result.yField = foldInfo.measureValue;
7780
- result.xField = unfoldInfo.encodingX;
7781
- result.seriesField = isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
7782
- result.padding = 0;
7783
- result.region = [
7784
- {
7785
- clip: true
7865
+ const buildMeasuresForScatter = (advancedVSeed)=>{
7866
+ const { measures = [] } = advancedVSeed;
7867
+ const encodedMeasures = [];
7868
+ for(let index = 0; index < measures.length; index++){
7869
+ const item = measures[index];
7870
+ const encoding = item.encoding;
7871
+ const isYAxis = 'yAxis' === encoding;
7872
+ const isXAxis = 'xAxis' === encoding;
7873
+ const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
7874
+ if (isYAxis) encodedMeasures.push(item);
7875
+ else if (isXAxis) encodedMeasures.push(item);
7876
+ else if (!isOtherEncoding && 'size' !== encoding) {
7877
+ const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
7878
+ item.encoding = 0 === xCount ? 'xAxis' : 'yAxis';
7879
+ encodedMeasures.push(item);
7786
7880
  }
7787
- ];
7788
- result.animation = true;
7789
- return result;
7881
+ }
7882
+ const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
7883
+ const yCount = encodedMeasures.filter((m)=>'yAxis' === m.encoding).length;
7884
+ if (0 === yCount && xCount > 0) {
7885
+ const cloneMeasure = chunk_BCBB46UE_d(encodedMeasures[0]);
7886
+ cloneMeasure.encoding = 'yAxis';
7887
+ encodedMeasures.push(cloneMeasure);
7888
+ }
7889
+ advancedVSeed.reshapeMeasures = encodedMeasures.length > 0 ? [
7890
+ encodedMeasures
7891
+ ] : [];
7892
+ return advancedVSeed;
7790
7893
  };
7791
- const colorAreaStyleFill = (stylePipe)=>(spec, context)=>{
7792
- const result = stylePipe(spec, context);
7793
- const { advancedVSeed, vseed } = context;
7794
- const { datasetReshapeInfo } = advancedVSeed;
7795
- const { unfoldInfo } = datasetReshapeInfo[0];
7796
- if (isLinearColor(advancedVSeed, vseed)) {
7797
- if (result?.area?.style) result.area.style.fill = {
7798
- field: unfoldInfo.encodingColor,
7799
- scale: 'color'
7800
- };
7894
+ const addPivotDimensionsForScatter = (advancedVSeed)=>{
7895
+ const { reshapeMeasures = [] } = advancedVSeed;
7896
+ if (reshapeMeasures[0]?.length >= 2) {
7897
+ const dimensions = advancedVSeed.dimensions ?? [];
7898
+ const xMeasures = reshapeMeasures[0].filter((m)=>'xAxis' === m.encoding);
7899
+ const yMeasures = reshapeMeasures[0].filter((m)=>'yAxis' === m.encoding);
7900
+ if (xMeasures.length > 1 || yMeasures.length > 1) {
7901
+ dimensions.push({
7902
+ id: FoldXMeasureId,
7903
+ alias: ' ',
7904
+ encoding: 'column'
7905
+ });
7906
+ dimensions.push({
7907
+ id: FoldYMeasureId,
7908
+ alias: ' ',
7909
+ encoding: 'row'
7910
+ });
7801
7911
  }
7802
- return result;
7912
+ return {
7913
+ ...advancedVSeed,
7914
+ dimensions
7915
+ };
7916
+ }
7917
+ return advancedVSeed;
7918
+ };
7919
+ const defaultEncodingForScatter = (advancedVSeed)=>{
7920
+ const { measures = [], dimensions = [] } = advancedVSeed;
7921
+ const encoding = {};
7922
+ scatter_generateDefaultDimensionEncoding(dimensions, encoding);
7923
+ scatter_generateDefaultMeasureEncoding(measures, encoding);
7924
+ return {
7925
+ ...advancedVSeed,
7926
+ encoding
7803
7927
  };
7804
- const areaStyle_areaStyle = (spec, context)=>{
7805
- const { advancedVSeed } = context;
7806
- const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
7807
- const { areaStyle, lineStyle } = markStyle;
7808
- const { unfoldInfo } = datasetReshapeInfo[0];
7928
+ };
7929
+ const encodingForScatter = (advancedVSeed)=>{
7930
+ const { measures = [], dimensions = [] } = advancedVSeed;
7931
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7932
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
7933
+ const encoding = {};
7934
+ if (hasDimensionEncoding) scatter_generateDimensionEncoding(dimensions, encoding);
7935
+ else scatter_generateDefaultDimensionEncoding(dimensions, encoding);
7936
+ if (hasMeasureEncoding) scatter_generateMeasureEncoding(measures, encoding);
7937
+ else scatter_generateDefaultMeasureEncoding(measures, encoding);
7938
+ return {
7939
+ ...advancedVSeed,
7940
+ encoding
7941
+ };
7942
+ };
7943
+ const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7944
+ const dimensionsWithoutMeasureId = dimensions.filter((item)=>item.id !== MeasureId);
7945
+ const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureId.map((d)=>d.id));
7946
+ encoding.detail = encoding.color;
7947
+ encoding.tooltip = uniqueDimIds.filter((d)=>![
7948
+ MeasureId,
7949
+ FoldYMeasureId,
7950
+ FoldXMeasureId
7951
+ ].includes(d));
7952
+ encoding.label = [];
7953
+ encoding.row = [];
7954
+ encoding.column = [];
7955
+ };
7956
+ const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
7957
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7958
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7959
+ if (0 === encoding.detail.length) encoding.detail = [
7960
+ MeasureId
7961
+ ];
7962
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7963
+ encoding.tooltip = encoding.tooltip.filter((d)=>![
7964
+ MeasureId,
7965
+ FoldYMeasureId,
7966
+ FoldXMeasureId
7967
+ ].includes(d));
7968
+ encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
7969
+ encoding.label = encoding.label.filter((d)=>d !== MeasureId);
7970
+ };
7971
+ const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
7972
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
7973
+ };
7974
+ const scatter_generateMeasureEncoding = (measures, encoding)=>{
7975
+ encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
7976
+ const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7977
+ if (color.length > 0) encoding.color = [
7978
+ color[0]
7979
+ ];
7980
+ encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding).map((item)=>item.id));
7981
+ const label = chunk_QJLMYOTX_i(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
7982
+ encoding.label = chunk_QJLMYOTX_i([
7983
+ ...encoding.label || [],
7984
+ ...label
7985
+ ]);
7986
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7987
+ encoding.tooltip = chunk_QJLMYOTX_i([
7988
+ ...encoding.tooltip || [],
7989
+ ...label,
7990
+ ...tooltip,
7991
+ ...color,
7992
+ ...encoding.size
7993
+ ]);
7994
+ };
7995
+ const scatterConfig = (advancedVSeed, context)=>{
7996
+ const { vseed } = context;
7997
+ const { chartType } = vseed;
7809
7998
  const result = {
7810
- ...spec,
7811
- area: {
7812
- visible: true,
7813
- style: {}
7999
+ ...advancedVSeed
8000
+ };
8001
+ const pickedConfig = chunk_2T7K3PFL_i(vseed, [
8002
+ 'backgroundColor',
8003
+ 'color',
8004
+ 'label',
8005
+ 'legend',
8006
+ 'tooltip',
8007
+ 'xAxis',
8008
+ 'yAxis',
8009
+ 'sizeRange',
8010
+ 'size',
8011
+ 'crosshairLine',
8012
+ 'player',
8013
+ 'brush',
8014
+ 'dimensionLinkage'
8015
+ ]);
8016
+ const config = replaceNullToUndefined(pickedConfig);
8017
+ result.config = {
8018
+ ...result.config,
8019
+ [chartType]: {
8020
+ ...config
7814
8021
  }
7815
8022
  };
7816
- if (chunk_JK3VNB42_n(areaStyle) || chunk_VCYTMP4D_n(areaStyle)) return result;
7817
- const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
7818
- areaStyle
7819
- ];
7820
- const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
7821
- lineStyle
8023
+ return result;
8024
+ };
8025
+ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
8026
+ const result = {
8027
+ ...advancedVSeed
8028
+ };
8029
+ const { vseed } = context;
8030
+ const { dataset } = vseed;
8031
+ const { encoding, chartType, reshapeMeasures } = advancedVSeed;
8032
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8033
+ const measures = reshapeMeasures?.[0] ?? [];
8034
+ const foldInfoList = [];
8035
+ const unfoldInfoList = [];
8036
+ const sizeEncodingIds = encoding?.size ?? [];
8037
+ const datasets = [];
8038
+ const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
8039
+ const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
8040
+ const xResult = dataReshapeByEncoding(dataset, T(dimensions, (d)=>d.id), T(xMeasures, (d)=>d.id), encoding, {
8041
+ foldMeasureValue: FoldXMeasureValue,
8042
+ foldMeasureId: FoldXMeasureId,
8043
+ colorItemAsId: true,
8044
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8045
+ omitIds: xMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
8046
+ });
8047
+ datasets.push(xResult.dataset);
8048
+ foldInfoList.push(xResult.foldInfo);
8049
+ unfoldInfoList.push(xResult.unfoldInfo);
8050
+ const yResult = dataReshapeByEncoding(datasets[0], T(dimensions, (d)=>d.id), T(yMeasures, (d)=>d.id), encoding, {
8051
+ foldMeasureValue: FoldYMeasureValue,
8052
+ foldMeasureId: FoldYMeasureId,
8053
+ colorItemAsId: true,
8054
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8055
+ omitIds: yMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
8056
+ });
8057
+ datasets[0] = yResult.dataset;
8058
+ foldInfoList.push(yResult.foldInfo);
8059
+ unfoldInfoList.push(yResult.unfoldInfo);
8060
+ const unfoldInfo = {
8061
+ ...unfoldInfoList[0],
8062
+ colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
8063
+ colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
8064
+ ...prev,
8065
+ ...cur.colorIdMap
8066
+ }), {})
8067
+ };
8068
+ return {
8069
+ ...result,
8070
+ dataset: datasets[0],
8071
+ datasetReshapeInfo: [
8072
+ {
8073
+ id: String(chartType),
8074
+ index: 0,
8075
+ foldInfo: foldInfoList[0],
8076
+ foldInfoList: foldInfoList,
8077
+ unfoldInfo: unfoldInfo
8078
+ }
8079
+ ]
8080
+ };
8081
+ };
8082
+ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
8083
+ const result = {
8084
+ ...advancedVSeed
8085
+ };
8086
+ const { vseed } = context;
8087
+ const { dataset } = vseed;
8088
+ const { encoding, chartType } = advancedVSeed;
8089
+ const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
8090
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8091
+ let allMeasuresIds = chunk_QJLMYOTX_i(reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id)));
8092
+ if (encoding?.size?.length) allMeasuresIds = allMeasuresIds.filter((mId)=>!encoding.size.includes(mId));
8093
+ const datasetList = [];
8094
+ const datasetReshapeInfo = [];
8095
+ reshapeMeasures.forEach((measures, index)=>{
8096
+ const foldInfoList = [];
8097
+ const unfoldInfoList = [];
8098
+ const datasets = [];
8099
+ const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
8100
+ const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
8101
+ const xResult = dataReshapeByEncoding(dataset, dimensions, xMeasures, encoding, {
8102
+ foldMeasureValue: `${FoldXMeasureValue}${index}`,
8103
+ foldMeasureId: FoldXMeasureId,
8104
+ colorItemAsId: true,
8105
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8106
+ omitIds: allMeasuresIds
8107
+ });
8108
+ datasets.push(xResult.dataset);
8109
+ foldInfoList.push(xResult.foldInfo);
8110
+ unfoldInfoList.push(xResult.unfoldInfo);
8111
+ const yResult = dataReshapeByEncoding(dataset, dimensions, yMeasures, encoding, {
8112
+ foldMeasureValue: `${FoldYMeasureValue}${index}`,
8113
+ foldMeasureId: FoldYMeasureId,
8114
+ colorItemAsId: true,
8115
+ colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8116
+ omitIds: allMeasuresIds
8117
+ });
8118
+ datasets.push(yResult.dataset);
8119
+ foldInfoList.push(yResult.foldInfo);
8120
+ unfoldInfoList.push(yResult.unfoldInfo);
8121
+ const unfoldInfo = {
8122
+ ...unfoldInfoList[0],
8123
+ colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
8124
+ colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
8125
+ ...prev,
8126
+ ...cur.colorIdMap
8127
+ }), {})
8128
+ };
8129
+ const reshapeInfo = {
8130
+ id: `${chartType}-${index}`,
8131
+ index,
8132
+ foldInfo: foldInfoList[0],
8133
+ foldInfoList: foldInfoList,
8134
+ unfoldInfo: unfoldInfo
8135
+ };
8136
+ datasetReshapeInfo.push(reshapeInfo);
8137
+ datasetList.push(datasets[0].flatMap((d)=>datasets[1].filter((yDatum)=>yDatum[ORIGINAL_DATA] === d[ORIGINAL_DATA]).map((yDatum)=>({
8138
+ ...d,
8139
+ ...yDatum
8140
+ }))));
8141
+ });
8142
+ return {
8143
+ ...result,
8144
+ dataset: datasetList,
8145
+ datasetReshapeInfo: datasetReshapeInfo
8146
+ };
8147
+ };
8148
+ const scatterAdvancedPipeline = [
8149
+ page_page_page,
8150
+ initAdvancedVSeed_initAdvancedVSeed,
8151
+ default_defaultMeasures_defaultMeasures,
8152
+ defaultDimensions_defaultDimensions,
8153
+ defaultMeasureId_defaultMeasureId,
8154
+ encodingAdapter([
8155
+ buildMeasuresForScatter,
8156
+ addPivotDimensionsForScatter,
8157
+ defaultEncodingForScatter
8158
+ ], [
8159
+ buildMeasuresForScatter,
8160
+ addPivotDimensionsForScatter,
8161
+ encodingForScatter,
8162
+ pickDimensionsForReshape
8163
+ ]),
8164
+ pivotAdapter([
8165
+ reshapeWithScatterEncoding
8166
+ ], [
8167
+ pivotReshapeWithScatterEncoding
8168
+ ]),
8169
+ scatterConfig,
8170
+ theme_theme,
8171
+ markStyle_markStyle,
8172
+ annotation_annotation,
8173
+ regressionLine_regressionLine
8174
+ ];
8175
+ const raceScatterAdvancedPipeline = scatterAdvancedPipeline;
8176
+ const initScatter = (spec, context)=>{
8177
+ const result = {
8178
+ ...spec
8179
+ };
8180
+ const { advancedVSeed } = context;
8181
+ const { datasetReshapeInfo } = advancedVSeed;
8182
+ const { unfoldInfo, foldInfoList } = datasetReshapeInfo[0];
8183
+ result.type = 'scatter';
8184
+ result.direction = 'vertical';
8185
+ result.xField = foldInfoList?.[0].measureValue;
8186
+ if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
8187
+ else if (unfoldInfo.encodingX) {
8188
+ result.xField = unfoldInfo.encodingX;
8189
+ result.yField = foldInfoList?.[0].measureValue;
8190
+ }
8191
+ result.seriesField = unfoldInfo.encodingColorId;
8192
+ result.padding = 0;
8193
+ result.region = [
8194
+ {
8195
+ clip: true
8196
+ }
7822
8197
  ];
7823
- const group = unfoldInfo.encodingColorId;
7824
- const areaGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[group ?? '']);
7825
- const customMap = areaStyles.reduce((result, style, index)=>{
7826
- const { areaColor, areaColorOpacity, areaVisible = true } = style;
7827
- const curveType = getCurveType(context.vseed, lineStyles[index]?.lineSmooth);
7828
- const curveTension = getCurveTension(context.vseed, lineStyles[index]?.lineSmooth);
7829
- return {
7830
- ...result,
7831
- [`custom${index + 1}`]: {
7832
- level: index + 1,
7833
- filter: (datum)=>{
7834
- const lineData = areaGroups[datum[group ?? '']];
7835
- for (const d of lineData)if (selector_selector(d, style.selector)) return true;
7836
- return false;
8198
+ result.animation = true;
8199
+ return result;
8200
+ };
8201
+ const datasetScatter = (spec, context)=>{
8202
+ const { advancedVSeed, vseed } = context;
8203
+ const { datasetReshapeInfo } = advancedVSeed;
8204
+ const id = datasetReshapeInfo[0].id;
8205
+ const fields = {};
8206
+ return {
8207
+ ...spec,
8208
+ data: {
8209
+ id,
8210
+ values: chatType_isPivotChart(vseed) ? void 0 : advancedVSeed.dataset.flat(),
8211
+ fields: fields
8212
+ }
8213
+ };
8214
+ };
8215
+ const playerYY = (spec, context)=>{
8216
+ const { vseed, advancedVSeed } = context;
8217
+ const { datasetReshapeInfo, chartType, encoding } = advancedVSeed;
8218
+ const baseConfig = advancedVSeed.config[chartType];
8219
+ const result = datasetScatter(spec, context);
8220
+ if (!('player' in vseed) || !baseConfig || !baseConfig.player || isVTable(vseed) || chatType_isPivotChart(vseed)) return result;
8221
+ const { player } = baseConfig;
8222
+ const id = datasetReshapeInfo[0].id;
8223
+ const { field, autoPlay = true, interval = 1000, loop = false, position, railColor, trackColor, sliderHandleColor, sliderHandleBorderColor, startButtonColor, pauseButtonColor, backwardButtonColor, forwardButtonColor } = player;
8224
+ const dataGroups = chunk_HVPVHFDT_i(advancedVSeed.dataset, (item)=>item[field]);
8225
+ if (result.data && 'values' in result.data) result.data.values = [];
8226
+ const specs = Object.values(dataGroups).map((items)=>({
8227
+ data: {
8228
+ id: id,
8229
+ values: items
8230
+ }
8231
+ }));
8232
+ const dataKey = encoding.color;
8233
+ const duration = interval;
8234
+ const exchangeDuration = 0.6 * interval;
8235
+ return {
8236
+ ...result,
8237
+ dataKey,
8238
+ stackCornerRadius: void 0,
8239
+ animationUpdate: {
8240
+ bar: [
8241
+ {
8242
+ type: 'update',
8243
+ options: {
8244
+ excludeChannels: [
8245
+ 'x'
8246
+ ]
8247
+ },
8248
+ easing: 'linear',
8249
+ duration
7837
8250
  },
8251
+ {
8252
+ channel: [
8253
+ 'x'
8254
+ ],
8255
+ easing: 'circInOut',
8256
+ duration: exchangeDuration
8257
+ }
8258
+ ],
8259
+ point: [
8260
+ {
8261
+ type: 'update',
8262
+ easing: 'linear',
8263
+ duration
8264
+ }
8265
+ ],
8266
+ line: [
8267
+ {
8268
+ type: 'update',
8269
+ easing: 'linear',
8270
+ duration
8271
+ }
8272
+ ],
8273
+ axis: {
8274
+ duration: exchangeDuration,
8275
+ easing: 'circInOut'
8276
+ }
8277
+ },
8278
+ animationEnter: {
8279
+ bar: [
8280
+ {
8281
+ type: 'moveIn',
8282
+ duration: exchangeDuration,
8283
+ easing: 'circInOut',
8284
+ options: {
8285
+ direction: 'x',
8286
+ orient: 'negative'
8287
+ }
8288
+ }
8289
+ ]
8290
+ },
8291
+ animationExit: {
8292
+ bar: [
8293
+ {
8294
+ type: 'fadeOut',
8295
+ duration: exchangeDuration
8296
+ }
8297
+ ]
8298
+ },
8299
+ customMark: [
8300
+ {
8301
+ type: 'text',
8302
+ dataId: 'year',
7838
8303
  style: {
7839
- curveType,
7840
- curveTension,
7841
- visible: areaVisible,
7842
- fill: areaColor,
7843
- fillOpacity: areaColorOpacity
8304
+ textBaseline: 'bottom',
8305
+ fontSize: 24,
8306
+ textAlign: 'right',
8307
+ fontFamily: 'PingFang SC',
8308
+ fontWeight: 600,
8309
+ text: (datum)=>datum.year,
8310
+ x: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.width - 50,
8311
+ y: (datum, ctx)=>ctx.vchart.getChart().getCanvasRect()?.height - 50,
8312
+ fill: 'grey',
8313
+ fillOpacity: 0.5
7844
8314
  }
7845
8315
  }
7846
- };
7847
- }, {});
7848
- return {
7849
- ...result,
7850
- area: {
7851
- ...result.area,
8316
+ ],
8317
+ player: {
7852
8318
  visible: true,
7853
- state: {
7854
- ...customMap
8319
+ auto: autoPlay,
8320
+ interval: interval,
8321
+ loop: loop,
8322
+ alternate: false,
8323
+ position: 'middle',
8324
+ orient: position,
8325
+ type: 'discrete',
8326
+ specs,
8327
+ controller: {
8328
+ visible: true,
8329
+ start: {
8330
+ visible: true,
8331
+ order: 0,
8332
+ style: {
8333
+ fill: startButtonColor
8334
+ }
8335
+ },
8336
+ pause: {
8337
+ visible: true,
8338
+ order: 1,
8339
+ style: {
8340
+ fill: pauseButtonColor
8341
+ }
8342
+ },
8343
+ backward: {
8344
+ visible: true,
8345
+ order: 2,
8346
+ style: {
8347
+ fill: backwardButtonColor
8348
+ }
8349
+ },
8350
+ forward: {
8351
+ visible: true,
8352
+ order: 3,
8353
+ position: 'end',
8354
+ style: {
8355
+ fill: forwardButtonColor
8356
+ }
8357
+ }
8358
+ },
8359
+ slider: {
8360
+ visible: true,
8361
+ railStyle: {
8362
+ visible: true,
8363
+ fill: railColor,
8364
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
8365
+ },
8366
+ trackStyle: {
8367
+ visible: true,
8368
+ fill: trackColor,
8369
+ ['top' === position || 'bottom' === position ? 'height' : 'width']: 2
8370
+ },
8371
+ handlerStyle: {
8372
+ visible: true,
8373
+ lineWidth: 2,
8374
+ stroke: sliderHandleBorderColor,
8375
+ fill: sliderHandleColor,
8376
+ size: 9
8377
+ }
7855
8378
  }
7856
8379
  }
7857
8380
  };
7858
8381
  };
7859
- const area_area = [
7860
- initArea,
7861
- stackInverse,
8382
+ const raceScatter = [
8383
+ initScatter,
8384
+ colorAdapter(color_color, linearColor),
8385
+ background_backgroundColor,
8386
+ playerYY,
8387
+ playerXLinear,
8388
+ playerYLinear,
8389
+ label_label,
8390
+ brush_brush,
8391
+ tooltip_tooltip,
8392
+ progressive,
8393
+ colorAdapter(discreteLegend, colorLegend),
8394
+ verticalCrosshairLine,
8395
+ colorPointStyleFill(pointStyle_pointStyle),
8396
+ annotationPoint_annotationPoint,
8397
+ annotationVerticalLine_annotationVerticalLine,
8398
+ annotationHorizontalLine_annotationHorizontalLine,
8399
+ annotationAreaBand
8400
+ ];
8401
+ const raceScatterSpecPipeline = raceScatter;
8402
+ const registerRaceScatter = ()=>{
8403
+ Builder.registerAdvancedPipeline('raceScatter', raceScatterAdvancedPipeline);
8404
+ Builder.registerSpecPipeline('raceScatter', raceScatterSpecPipeline);
8405
+ };
8406
+ const barParallelAdvancedPipeline = [
8407
+ page_page_page,
8408
+ initAdvancedVSeed_initAdvancedVSeed,
8409
+ default_defaultMeasures_defaultMeasures,
8410
+ defaultDimensions_defaultDimensions,
8411
+ defaultMeasureId_defaultMeasureId,
8412
+ encodingAdapter([
8413
+ buildMeasures([
8414
+ 'xAxis',
8415
+ 'detail'
8416
+ ]),
8417
+ defaultEncodingForBar
8418
+ ], [
8419
+ buildMeasures([
8420
+ 'xAxis',
8421
+ 'detail'
8422
+ ]),
8423
+ encodingForBar,
8424
+ pickDimensionsForReshape
8425
+ ]),
8426
+ pivotAdapter([
8427
+ reshapeWithEncoding
8428
+ ], [
8429
+ pivotReshapeWithEncoding
8430
+ ]),
8431
+ sortYBandAxis,
8432
+ sortLegend_sortLegend,
8433
+ barParallelConfig,
8434
+ theme_theme,
8435
+ markStyle_markStyle,
8436
+ annotation_annotation
8437
+ ];
8438
+ const initBarParallel = (spec, context)=>{
8439
+ const result = {
8440
+ ...spec
8441
+ };
8442
+ const { advancedVSeed } = context;
8443
+ const { datasetReshapeInfo, encoding } = advancedVSeed;
8444
+ const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
8445
+ const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.y, encoding.color);
8446
+ result.type = 'bar';
8447
+ result.direction = 'horizontal';
8448
+ result.yField = [
8449
+ unfoldInfo.encodingY
8450
+ ];
8451
+ if (!sameDimensionsMode) {
8452
+ result.yField.push(unfoldInfo.encodingDetail);
8453
+ if (encoding.detail?.[0] === MeasureId && encoding.x?.length === 1) result.yField.pop();
8454
+ }
8455
+ result.xField = foldInfo.measureValue;
8456
+ result.seriesField = unfoldInfo.encodingColorId;
8457
+ result.padding = 0;
8458
+ result.region = [
8459
+ {
8460
+ clip: true
8461
+ }
8462
+ ];
8463
+ result.animation = true;
8464
+ return result;
8465
+ };
8466
+ const barParallel = [
8467
+ initBarParallel,
8468
+ stackCornerRadius_stackCornerRadius,
8469
+ barMaxWidth_barMaxWidth,
8470
+ barGapInGroup_barGapInGroup,
7862
8471
  colorAdapter(color_color, linearColor),
7863
8472
  background_backgroundColor,
7864
- playerAdapter(datasetXY),
8473
+ datasetYX,
7865
8474
  progressive,
7866
- xBand,
7867
- yLinear,
8475
+ xLinear,
8476
+ yBand,
7868
8477
  label_label,
7869
8478
  brush_brush,
7870
8479
  tooltip_tooltip,
7871
8480
  colorAdapter(discreteLegend, colorLegend),
7872
- verticalCrosshairLine,
7873
- colorPointStyleFill(pointStyle_pointStyle),
7874
- pointStateDimensionHover,
7875
- colorLineStyleFill(lineStyle_lineStyle),
7876
- colorAreaStyleFill(areaStyle_areaStyle),
8481
+ horizontalCrosshairRect,
8482
+ colorBarStyleFill(barStyle_barStyle),
7877
8483
  annotationPoint_annotationPoint,
7878
8484
  annotationVerticalLine_annotationVerticalLine,
7879
8485
  annotationHorizontalLine_annotationHorizontalLine,
7880
- annotationArea_annotationArea,
7881
- splitLine
8486
+ annotationAreaBand
7882
8487
  ];
7883
- const pivotArea = [
8488
+ const pivotBarParallel = [
7884
8489
  initPivot,
7885
8490
  pivotGridStyle,
7886
- pivotIndicatorsAsRow,
8491
+ pivotIndicatorsAsCol,
7887
8492
  datasetPivot,
7888
8493
  pivotIndicators_pivotIndicators([
7889
- initArea,
8494
+ initBarParallel,
8495
+ stackCornerRadius_stackCornerRadius,
8496
+ barMaxWidth_barMaxWidth,
7890
8497
  colorAdapter(color_color, linearColor),
7891
8498
  background_backgroundColor,
7892
- stackInverse,
7893
- datasetXY,
7894
- progressive,
7895
- xBand,
7896
- pivotAxisStyle(yLinear),
7897
- label_label,
8499
+ datasetYX,
8500
+ xLinear,
8501
+ pivotAxisStyle(yBand),
7898
8502
  brush_brush,
8503
+ label_label,
7899
8504
  tooltip_tooltip,
7900
- verticalCrosshairLine,
7901
- colorPointStyleFill(pointStyle_pointStyle),
7902
- pointStateDimensionHover,
7903
- colorLineStyleFill(lineStyle_lineStyle),
7904
- colorAreaStyleFill(areaStyle_areaStyle),
8505
+ colorBarStyleFill(barStyle_barStyle),
8506
+ horizontalCrosshairRect,
7905
8507
  annotationPoint_annotationPoint,
7906
8508
  annotationVerticalLine_annotationVerticalLine,
7907
8509
  annotationHorizontalLine_annotationHorizontalLine,
7908
- annotationArea_annotationArea,
7909
- splitLine
8510
+ annotationAreaBand
7910
8511
  ]),
7911
8512
  pivotRowDimensions,
7912
8513
  pivotColumnDimensions,
@@ -7914,14 +8515,14 @@
7914
8515
  colorAdapter(pivotDiscreteLegend, pivotColorLegend),
7915
8516
  dimensionLinkage
7916
8517
  ];
7917
- const areaSpecPipeline = [
7918
- pivotAdapter_pivotAdapter(area_area, pivotArea)
8518
+ const barParallelSpecPipeline = [
8519
+ pivotAdapter_pivotAdapter(barParallel, pivotBarParallel)
7919
8520
  ];
7920
- const registerArea = ()=>{
7921
- Builder.registerAdvancedPipeline('area', areaAdvancedPipeline);
7922
- Builder.registerSpecPipeline('area', areaSpecPipeline);
8521
+ const registerBarParallel = ()=>{
8522
+ Builder.registerAdvancedPipeline('barParallel', barParallelAdvancedPipeline);
8523
+ Builder.registerSpecPipeline('barParallel', barParallelSpecPipeline);
7923
8524
  };
7924
- const areaPercentAdvancedPipeline = [
8525
+ const barPercentAdvancedPipeline = [
7925
8526
  page_page_page,
7926
8527
  initAdvancedVSeed_initAdvancedVSeed,
7927
8528
  default_defaultMeasures_defaultMeasures,
@@ -7929,16 +8530,16 @@
7929
8530
  defaultMeasureId_defaultMeasureId,
7930
8531
  encodingAdapter([
7931
8532
  buildMeasures([
7932
- 'yAxis',
8533
+ 'xAxis',
7933
8534
  'detail'
7934
8535
  ]),
7935
- defaultEncodingForLine
8536
+ defaultEncodingForBar
7936
8537
  ], [
7937
8538
  buildMeasures([
7938
- 'yAxis',
8539
+ 'xAxis',
7939
8540
  'detail'
7940
8541
  ]),
7941
- encodingForLine,
8542
+ encodingForBar,
7942
8543
  pickDimensionsForReshape
7943
8544
  ]),
7944
8545
  pivotAdapter([
@@ -7946,422 +8547,355 @@
7946
8547
  ], [
7947
8548
  pivotReshapeWithEncoding
7948
8549
  ]),
7949
- sortXBandAxis,
8550
+ sortYBandAxis,
7950
8551
  sortLegend_sortLegend,
7951
- areaPercentConfig,
8552
+ barPercentConfig,
7952
8553
  theme_theme,
7953
8554
  markStyle_markStyle,
7954
8555
  annotation_annotation
7955
8556
  ];
7956
- const areaPercent = [
7957
- initArea,
7958
- stackInverse,
8557
+ const barPercent = [
8558
+ initBar,
8559
+ stackCornerRadius_stackCornerRadius,
8560
+ barMaxWidth_barMaxWidth,
7959
8561
  colorAdapter(color_color, linearColor),
7960
8562
  background_backgroundColor,
7961
8563
  percent_percent,
7962
- playerAdapter(datasetXY),
8564
+ datasetYX,
7963
8565
  progressive,
7964
- xBand,
7965
- yLinear,
8566
+ xLinear,
8567
+ yBand,
7966
8568
  label_label,
7967
8569
  brush_brush,
7968
8570
  tooltip_tooltip,
7969
8571
  colorAdapter(discreteLegend, colorLegend),
7970
- verticalCrosshairLine,
7971
- colorPointStyleFill(pointStyle_pointStyle),
7972
- pointStateDimensionHover,
7973
- colorLineStyleFill(lineStyle_lineStyle),
7974
- colorAreaStyleFill(areaStyle_areaStyle),
8572
+ horizontalCrosshairRect,
8573
+ colorBarStyleFill(barStyle_barStyle),
7975
8574
  annotationPoint_annotationPoint,
7976
8575
  annotationVerticalLine_annotationVerticalLine,
7977
8576
  annotationHorizontalLine_annotationHorizontalLine,
7978
- annotationArea_annotationArea
8577
+ annotationAreaBand
7979
8578
  ];
7980
- const pivotAreaPercent = [
8579
+ const pivotBarPercent = [
7981
8580
  initPivot,
7982
8581
  pivotGridStyle,
7983
- pivotIndicatorsAsRow,
8582
+ pivotIndicatorsAsCol,
7984
8583
  datasetPivot,
7985
8584
  pivotIndicators_pivotIndicators([
7986
- initArea,
7987
- stackInverse,
8585
+ initBar,
8586
+ stackCornerRadius_stackCornerRadius,
8587
+ barMaxWidth_barMaxWidth,
7988
8588
  colorAdapter(color_color, linearColor),
7989
8589
  background_backgroundColor,
7990
8590
  percent_percent,
7991
- datasetXY,
7992
- progressive,
7993
- xBand,
7994
- pivotAxisStyle(yLinear),
7995
- label_label,
8591
+ datasetYX,
8592
+ xLinear,
8593
+ pivotAxisStyle(yBand),
7996
8594
  brush_brush,
8595
+ label_label,
7997
8596
  tooltip_tooltip,
7998
- verticalCrosshairLine,
7999
- colorPointStyleFill(pointStyle_pointStyle),
8000
- pointStateDimensionHover,
8001
- colorLineStyleFill(lineStyle_lineStyle),
8002
- colorAreaStyleFill(areaStyle_areaStyle),
8597
+ colorBarStyleFill(barStyle_barStyle),
8598
+ horizontalCrosshairRect,
8003
8599
  annotationPoint_annotationPoint,
8004
8600
  annotationVerticalLine_annotationVerticalLine,
8005
8601
  annotationHorizontalLine_annotationHorizontalLine,
8006
- annotationArea_annotationArea
8602
+ annotationAreaBand
8007
8603
  ]),
8008
8604
  pivotRowDimensions,
8009
8605
  pivotColumnDimensions,
8010
8606
  pivotTitle,
8011
8607
  colorAdapter(pivotDiscreteLegend, pivotColorLegend),
8012
- dimensionLinkage
8013
- ];
8014
- const areaPercentSpecPipeline = [
8015
- pivotAdapter_pivotAdapter(areaPercent, pivotAreaPercent)
8016
- ];
8017
- const registerAreaPercent = ()=>{
8018
- Builder.registerAdvancedPipeline('areaPercent', areaPercentAdvancedPipeline);
8019
- Builder.registerSpecPipeline('areaPercent', areaPercentSpecPipeline);
8020
- };
8021
- const buildMeasuresForScatter = (advancedVSeed)=>{
8022
- const { measures = [] } = advancedVSeed;
8023
- const encodedMeasures = [];
8024
- for(let index = 0; index < measures.length; index++){
8025
- const item = measures[index];
8026
- const encoding = item.encoding;
8027
- const isYAxis = 'yAxis' === encoding;
8028
- const isXAxis = 'xAxis' === encoding;
8029
- const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
8030
- if (isYAxis) encodedMeasures.push(item);
8031
- else if (isXAxis) encodedMeasures.push(item);
8032
- else if (!isOtherEncoding && 'size' !== encoding) {
8033
- const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
8034
- item.encoding = 0 === xCount ? 'xAxis' : 'yAxis';
8035
- encodedMeasures.push(item);
8036
- }
8037
- }
8038
- const xCount = encodedMeasures.filter((m)=>'xAxis' === m.encoding).length;
8039
- const yCount = encodedMeasures.filter((m)=>'yAxis' === m.encoding).length;
8040
- if (0 === yCount && xCount > 0) {
8041
- const cloneMeasure = chunk_BCBB46UE_d(encodedMeasures[0]);
8042
- cloneMeasure.encoding = 'yAxis';
8043
- encodedMeasures.push(cloneMeasure);
8044
- }
8045
- advancedVSeed.reshapeMeasures = encodedMeasures.length > 0 ? [
8046
- encodedMeasures
8047
- ] : [];
8048
- return advancedVSeed;
8049
- };
8050
- const addPivotDimensionsForScatter = (advancedVSeed)=>{
8051
- const { reshapeMeasures = [] } = advancedVSeed;
8052
- if (reshapeMeasures[0]?.length >= 2) {
8053
- const dimensions = advancedVSeed.dimensions ?? [];
8054
- const xMeasures = reshapeMeasures[0].filter((m)=>'xAxis' === m.encoding);
8055
- const yMeasures = reshapeMeasures[0].filter((m)=>'yAxis' === m.encoding);
8056
- if (xMeasures.length > 1 || yMeasures.length > 1) {
8057
- dimensions.push({
8058
- id: FoldXMeasureId,
8059
- alias: ' ',
8060
- encoding: 'column'
8061
- });
8062
- dimensions.push({
8063
- id: FoldYMeasureId,
8064
- alias: ' ',
8065
- encoding: 'row'
8066
- });
8067
- }
8068
- return {
8069
- ...advancedVSeed,
8070
- dimensions
8071
- };
8072
- }
8073
- return advancedVSeed;
8074
- };
8075
- const defaultEncodingForScatter = (advancedVSeed)=>{
8076
- const { measures = [], dimensions = [] } = advancedVSeed;
8077
- const encoding = {};
8078
- scatter_generateDefaultDimensionEncoding(dimensions, encoding);
8079
- scatter_generateDefaultMeasureEncoding(measures, encoding);
8080
- return {
8081
- ...advancedVSeed,
8082
- encoding
8083
- };
8084
- };
8085
- const encodingForScatter = (advancedVSeed)=>{
8086
- const { measures = [], dimensions = [] } = advancedVSeed;
8087
- const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
8088
- const hasMeasureEncoding = measures.some((item)=>item.encoding);
8089
- const encoding = {};
8090
- if (hasDimensionEncoding) scatter_generateDimensionEncoding(dimensions, encoding);
8091
- else scatter_generateDefaultDimensionEncoding(dimensions, encoding);
8092
- if (hasMeasureEncoding) scatter_generateMeasureEncoding(measures, encoding);
8093
- else scatter_generateDefaultMeasureEncoding(measures, encoding);
8094
- return {
8095
- ...advancedVSeed,
8096
- encoding
8097
- };
8098
- };
8099
- const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
8100
- const dimensionsWithoutMeasureId = dimensions.filter((item)=>item.id !== MeasureId);
8101
- const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureId.map((d)=>d.id));
8102
- encoding.detail = encoding.color;
8103
- encoding.tooltip = uniqueDimIds.filter((d)=>![
8104
- MeasureId,
8105
- FoldYMeasureId,
8106
- FoldXMeasureId
8107
- ].includes(d));
8108
- encoding.label = [];
8109
- encoding.row = [];
8110
- encoding.column = [];
8111
- };
8112
- const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
8113
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8114
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8115
- if (0 === encoding.detail.length) encoding.detail = [
8116
- MeasureId
8117
- ];
8118
- encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
8119
- encoding.tooltip = encoding.tooltip.filter((d)=>![
8120
- MeasureId,
8121
- FoldYMeasureId,
8122
- FoldXMeasureId
8123
- ].includes(d));
8124
- encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
8125
- encoding.label = encoding.label.filter((d)=>d !== MeasureId);
8126
- };
8127
- const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
8128
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
8129
- };
8130
- const scatter_generateMeasureEncoding = (measures, encoding)=>{
8131
- encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
8132
- const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8133
- if (color.length > 0) encoding.color = [
8134
- color[0]
8135
- ];
8136
- encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding).map((item)=>item.id));
8137
- const label = chunk_QJLMYOTX_i(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
8138
- encoding.label = chunk_QJLMYOTX_i([
8139
- ...encoding.label || [],
8140
- ...label
8141
- ]);
8142
- const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
8143
- encoding.tooltip = chunk_QJLMYOTX_i([
8144
- ...encoding.tooltip || [],
8145
- ...label,
8146
- ...tooltip,
8147
- ...color,
8148
- ...encoding.size
8149
- ]);
8608
+ dimensionLinkage
8609
+ ];
8610
+ const barPercentSpecPipeline = [
8611
+ pivotAdapter_pivotAdapter(barPercent, pivotBarPercent)
8612
+ ];
8613
+ const registerBarPercent = ()=>{
8614
+ Builder.registerAdvancedPipeline('barPercent', barPercentAdvancedPipeline);
8615
+ Builder.registerSpecPipeline('barPercent', barPercentSpecPipeline);
8150
8616
  };
8151
- const scatterConfig = (advancedVSeed, context)=>{
8152
- const { vseed } = context;
8153
- const { chartType } = vseed;
8617
+ const areaAdvancedPipeline = [
8618
+ page_page_page,
8619
+ initAdvancedVSeed_initAdvancedVSeed,
8620
+ default_defaultMeasures_defaultMeasures,
8621
+ defaultDimensions_defaultDimensions,
8622
+ defaultMeasureId_defaultMeasureId,
8623
+ encodingAdapter([
8624
+ buildMeasures([
8625
+ 'yAxis',
8626
+ 'detail'
8627
+ ]),
8628
+ defaultEncodingForLine
8629
+ ], [
8630
+ buildMeasures([
8631
+ 'yAxis',
8632
+ 'detail'
8633
+ ]),
8634
+ encodingForLine,
8635
+ pickDimensionsForReshape
8636
+ ]),
8637
+ pivotAdapter([
8638
+ reshapeWithEncoding
8639
+ ], [
8640
+ pivotReshapeWithEncoding
8641
+ ]),
8642
+ sortXBandAxis,
8643
+ sortLegend_sortLegend,
8644
+ areaConfig,
8645
+ theme_theme,
8646
+ markStyle_markStyle,
8647
+ annotation_annotation
8648
+ ];
8649
+ const initArea = (spec, context)=>{
8154
8650
  const result = {
8155
- ...advancedVSeed
8651
+ ...spec
8156
8652
  };
8157
- const pickedConfig = chunk_2T7K3PFL_i(vseed, [
8158
- 'backgroundColor',
8159
- 'color',
8160
- 'label',
8161
- 'legend',
8162
- 'tooltip',
8163
- 'xAxis',
8164
- 'yAxis',
8165
- 'sizeRange',
8166
- 'size',
8167
- 'crosshairLine',
8168
- 'player',
8169
- 'brush',
8170
- 'dimensionLinkage'
8171
- ]);
8172
- const config = replaceNullToUndefined(pickedConfig);
8173
- result.config = {
8174
- ...result.config,
8175
- [chartType]: {
8176
- ...config
8653
+ const { advancedVSeed, vseed } = context;
8654
+ const { datasetReshapeInfo } = advancedVSeed;
8655
+ const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
8656
+ result.type = 'area';
8657
+ result.direction = 'vertical';
8658
+ result.yField = foldInfo.measureValue;
8659
+ result.xField = unfoldInfo.encodingX;
8660
+ result.seriesField = isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
8661
+ result.padding = 0;
8662
+ result.region = [
8663
+ {
8664
+ clip: true
8177
8665
  }
8178
- };
8666
+ ];
8667
+ result.animation = true;
8179
8668
  return result;
8180
8669
  };
8181
- const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
8182
- const result = {
8183
- ...advancedVSeed
8184
- };
8185
- const { vseed } = context;
8186
- const { dataset } = vseed;
8187
- const { encoding, chartType, reshapeMeasures } = advancedVSeed;
8188
- const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8189
- const measures = reshapeMeasures?.[0] ?? [];
8190
- const foldInfoList = [];
8191
- const unfoldInfoList = [];
8192
- const sizeEncodingIds = encoding?.size ?? [];
8193
- const datasets = [];
8194
- const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
8195
- const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
8196
- const xResult = dataReshapeByEncoding(dataset, T(dimensions, (d)=>d.id), T(xMeasures, (d)=>d.id), encoding, {
8197
- foldMeasureValue: FoldXMeasureValue,
8198
- foldMeasureId: FoldXMeasureId,
8199
- colorItemAsId: true,
8200
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8201
- omitIds: xMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
8202
- });
8203
- datasets.push(xResult.dataset);
8204
- foldInfoList.push(xResult.foldInfo);
8205
- unfoldInfoList.push(xResult.unfoldInfo);
8206
- const yResult = dataReshapeByEncoding(datasets[0], T(dimensions, (d)=>d.id), T(yMeasures, (d)=>d.id), encoding, {
8207
- foldMeasureValue: FoldYMeasureValue,
8208
- foldMeasureId: FoldYMeasureId,
8209
- colorItemAsId: true,
8210
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8211
- omitIds: yMeasures.map((m)=>m.id).filter((id)=>!sizeEncodingIds.includes(id))
8212
- });
8213
- datasets[0] = yResult.dataset;
8214
- foldInfoList.push(yResult.foldInfo);
8215
- unfoldInfoList.push(yResult.unfoldInfo);
8216
- const unfoldInfo = {
8217
- ...unfoldInfoList[0],
8218
- colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
8219
- colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
8220
- ...prev,
8221
- ...cur.colorIdMap
8222
- }), {})
8223
- };
8224
- return {
8225
- ...result,
8226
- dataset: datasets[0],
8227
- datasetReshapeInfo: [
8228
- {
8229
- id: String(chartType),
8230
- index: 0,
8231
- foldInfo: foldInfoList[0],
8232
- foldInfoList: foldInfoList,
8233
- unfoldInfo: unfoldInfo
8234
- }
8235
- ]
8670
+ const colorAreaStyleFill = (stylePipe)=>(spec, context)=>{
8671
+ const result = stylePipe(spec, context);
8672
+ const { advancedVSeed, vseed } = context;
8673
+ const { datasetReshapeInfo } = advancedVSeed;
8674
+ const { unfoldInfo } = datasetReshapeInfo[0];
8675
+ if (isLinearColor(advancedVSeed, vseed)) {
8676
+ if (result?.area?.style) result.area.style.fill = {
8677
+ field: unfoldInfo.encodingColor,
8678
+ scale: 'color'
8679
+ };
8680
+ }
8681
+ return result;
8236
8682
  };
8237
- };
8238
- const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
8683
+ const areaStyle_areaStyle = (spec, context)=>{
8684
+ const { advancedVSeed } = context;
8685
+ const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
8686
+ const { areaStyle, lineStyle } = markStyle;
8687
+ const { unfoldInfo } = datasetReshapeInfo[0];
8239
8688
  const result = {
8240
- ...advancedVSeed
8689
+ ...spec,
8690
+ area: {
8691
+ visible: true,
8692
+ style: {}
8693
+ }
8241
8694
  };
8242
- const { vseed } = context;
8243
- const { dataset } = vseed;
8244
- const { encoding, chartType } = advancedVSeed;
8245
- const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
8246
- const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
8247
- let allMeasuresIds = chunk_QJLMYOTX_i(reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id)));
8248
- if (encoding?.size?.length) allMeasuresIds = allMeasuresIds.filter((mId)=>!encoding.size.includes(mId));
8249
- const datasetList = [];
8250
- const datasetReshapeInfo = [];
8251
- reshapeMeasures.forEach((measures, index)=>{
8252
- const foldInfoList = [];
8253
- const unfoldInfoList = [];
8254
- const datasets = [];
8255
- const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
8256
- const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
8257
- const xResult = dataReshapeByEncoding(dataset, dimensions, xMeasures, encoding, {
8258
- foldMeasureValue: `${FoldXMeasureValue}${index}`,
8259
- foldMeasureId: FoldXMeasureId,
8260
- colorItemAsId: true,
8261
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8262
- omitIds: allMeasuresIds
8263
- });
8264
- datasets.push(xResult.dataset);
8265
- foldInfoList.push(xResult.foldInfo);
8266
- unfoldInfoList.push(xResult.unfoldInfo);
8267
- const yResult = dataReshapeByEncoding(dataset, dimensions, yMeasures, encoding, {
8268
- foldMeasureValue: `${FoldYMeasureValue}${index}`,
8269
- foldMeasureId: FoldYMeasureId,
8270
- colorItemAsId: true,
8271
- colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
8272
- omitIds: allMeasuresIds
8273
- });
8274
- datasets.push(yResult.dataset);
8275
- foldInfoList.push(yResult.foldInfo);
8276
- unfoldInfoList.push(yResult.unfoldInfo);
8277
- const unfoldInfo = {
8278
- ...unfoldInfoList[0],
8279
- colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
8280
- colorIdMap: unfoldInfoList.reduce((prev, cur)=>({
8281
- ...prev,
8282
- ...cur.colorIdMap
8283
- }), {})
8284
- };
8285
- const reshapeInfo = {
8286
- id: `${chartType}-${index}`,
8287
- index,
8288
- foldInfo: foldInfoList[0],
8289
- foldInfoList: foldInfoList,
8290
- unfoldInfo: unfoldInfo
8695
+ if (chunk_JK3VNB42_n(areaStyle) || chunk_VCYTMP4D_n(areaStyle)) return result;
8696
+ const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
8697
+ areaStyle
8698
+ ];
8699
+ const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
8700
+ lineStyle
8701
+ ];
8702
+ const group = unfoldInfo.encodingColorId;
8703
+ const areaGroups = chunk_HVPVHFDT_i(dataset, (d)=>d[group ?? '']);
8704
+ const customMap = areaStyles.reduce((result, style, index)=>{
8705
+ const { areaColor, areaColorOpacity, areaVisible = true } = style;
8706
+ const curveType = getCurveType(context.vseed, lineStyles[index]?.lineSmooth);
8707
+ const curveTension = getCurveTension(context.vseed, lineStyles[index]?.lineSmooth);
8708
+ return {
8709
+ ...result,
8710
+ [`custom${index + 1}`]: {
8711
+ level: index + 1,
8712
+ filter: (datum)=>{
8713
+ const lineData = areaGroups[datum[group ?? '']];
8714
+ for (const d of lineData)if (selector_selector(d, style.selector)) return true;
8715
+ return false;
8716
+ },
8717
+ style: {
8718
+ curveType,
8719
+ curveTension,
8720
+ visible: areaVisible,
8721
+ fill: areaColor,
8722
+ fillOpacity: areaColorOpacity
8723
+ }
8724
+ }
8291
8725
  };
8292
- datasetReshapeInfo.push(reshapeInfo);
8293
- datasetList.push(datasets[0].flatMap((d)=>datasets[1].filter((yDatum)=>yDatum[ORIGINAL_DATA] === d[ORIGINAL_DATA]).map((yDatum)=>({
8294
- ...d,
8295
- ...yDatum
8296
- }))));
8297
- });
8726
+ }, {});
8298
8727
  return {
8299
8728
  ...result,
8300
- dataset: datasetList,
8301
- datasetReshapeInfo: datasetReshapeInfo
8729
+ area: {
8730
+ ...result.area,
8731
+ visible: true,
8732
+ state: {
8733
+ ...customMap
8734
+ }
8735
+ }
8302
8736
  };
8303
8737
  };
8304
- const scatterAdvancedPipeline = [
8738
+ const area_area = [
8739
+ initArea,
8740
+ stackInverse,
8741
+ colorAdapter(color_color, linearColor),
8742
+ background_backgroundColor,
8743
+ datasetXY,
8744
+ progressive,
8745
+ xBand,
8746
+ yLinear,
8747
+ label_label,
8748
+ brush_brush,
8749
+ tooltip_tooltip,
8750
+ colorAdapter(discreteLegend, colorLegend),
8751
+ verticalCrosshairLine,
8752
+ colorPointStyleFill(pointStyle_pointStyle),
8753
+ pointStateDimensionHover,
8754
+ colorLineStyleFill(lineStyle_lineStyle),
8755
+ colorAreaStyleFill(areaStyle_areaStyle),
8756
+ annotationPoint_annotationPoint,
8757
+ annotationVerticalLine_annotationVerticalLine,
8758
+ annotationHorizontalLine_annotationHorizontalLine,
8759
+ annotationArea_annotationArea,
8760
+ splitLine
8761
+ ];
8762
+ const pivotArea = [
8763
+ initPivot,
8764
+ pivotGridStyle,
8765
+ pivotIndicatorsAsRow,
8766
+ datasetPivot,
8767
+ pivotIndicators_pivotIndicators([
8768
+ initArea,
8769
+ colorAdapter(color_color, linearColor),
8770
+ background_backgroundColor,
8771
+ stackInverse,
8772
+ datasetXY,
8773
+ progressive,
8774
+ xBand,
8775
+ pivotAxisStyle(yLinear),
8776
+ label_label,
8777
+ brush_brush,
8778
+ tooltip_tooltip,
8779
+ verticalCrosshairLine,
8780
+ colorPointStyleFill(pointStyle_pointStyle),
8781
+ pointStateDimensionHover,
8782
+ colorLineStyleFill(lineStyle_lineStyle),
8783
+ colorAreaStyleFill(areaStyle_areaStyle),
8784
+ annotationPoint_annotationPoint,
8785
+ annotationVerticalLine_annotationVerticalLine,
8786
+ annotationHorizontalLine_annotationHorizontalLine,
8787
+ annotationArea_annotationArea,
8788
+ splitLine
8789
+ ]),
8790
+ pivotRowDimensions,
8791
+ pivotColumnDimensions,
8792
+ pivotTitle,
8793
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
8794
+ dimensionLinkage
8795
+ ];
8796
+ const areaSpecPipeline = [
8797
+ pivotAdapter_pivotAdapter(area_area, pivotArea)
8798
+ ];
8799
+ const registerArea = ()=>{
8800
+ Builder.registerAdvancedPipeline('area', areaAdvancedPipeline);
8801
+ Builder.registerSpecPipeline('area', areaSpecPipeline);
8802
+ };
8803
+ const areaPercentAdvancedPipeline = [
8305
8804
  page_page_page,
8306
8805
  initAdvancedVSeed_initAdvancedVSeed,
8307
8806
  default_defaultMeasures_defaultMeasures,
8308
8807
  defaultDimensions_defaultDimensions,
8309
8808
  defaultMeasureId_defaultMeasureId,
8310
8809
  encodingAdapter([
8311
- buildMeasuresForScatter,
8312
- addPivotDimensionsForScatter,
8313
- defaultEncodingForScatter
8810
+ buildMeasures([
8811
+ 'yAxis',
8812
+ 'detail'
8813
+ ]),
8814
+ defaultEncodingForLine
8314
8815
  ], [
8315
- buildMeasuresForScatter,
8316
- addPivotDimensionsForScatter,
8317
- encodingForScatter,
8816
+ buildMeasures([
8817
+ 'yAxis',
8818
+ 'detail'
8819
+ ]),
8820
+ encodingForLine,
8318
8821
  pickDimensionsForReshape
8319
8822
  ]),
8320
8823
  pivotAdapter([
8321
- reshapeWithScatterEncoding
8824
+ reshapeWithEncoding
8322
8825
  ], [
8323
- pivotReshapeWithScatterEncoding
8826
+ pivotReshapeWithEncoding
8324
8827
  ]),
8325
- scatterConfig,
8828
+ sortXBandAxis,
8829
+ sortLegend_sortLegend,
8830
+ areaPercentConfig,
8326
8831
  theme_theme,
8327
8832
  markStyle_markStyle,
8328
- annotation_annotation,
8329
- regressionLine_regressionLine
8833
+ annotation_annotation
8330
8834
  ];
8331
- const initScatter = (spec, context)=>{
8332
- const result = {
8333
- ...spec
8334
- };
8335
- const { advancedVSeed } = context;
8336
- const { datasetReshapeInfo } = advancedVSeed;
8337
- const { unfoldInfo, foldInfoList } = datasetReshapeInfo[0];
8338
- result.type = 'scatter';
8339
- result.direction = 'vertical';
8340
- result.xField = foldInfoList?.[0].measureValue;
8341
- if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
8342
- result.seriesField = unfoldInfo.encodingColorId;
8343
- result.padding = 0;
8344
- result.region = [
8345
- {
8346
- clip: true
8347
- }
8348
- ];
8349
- result.animation = true;
8350
- return result;
8351
- };
8352
- const datasetScatter = (spec, context)=>{
8353
- const { advancedVSeed, vseed } = context;
8354
- const { datasetReshapeInfo } = advancedVSeed;
8355
- const id = datasetReshapeInfo[0].id;
8356
- const fields = {};
8357
- return {
8358
- ...spec,
8359
- data: {
8360
- id,
8361
- values: chatType_isPivotChart(vseed) ? void 0 : advancedVSeed.dataset.flat(),
8362
- fields: fields
8363
- }
8364
- };
8835
+ const areaPercent = [
8836
+ initArea,
8837
+ stackInverse,
8838
+ colorAdapter(color_color, linearColor),
8839
+ background_backgroundColor,
8840
+ percent_percent,
8841
+ datasetXY,
8842
+ progressive,
8843
+ xBand,
8844
+ yLinear,
8845
+ label_label,
8846
+ brush_brush,
8847
+ tooltip_tooltip,
8848
+ colorAdapter(discreteLegend, colorLegend),
8849
+ verticalCrosshairLine,
8850
+ colorPointStyleFill(pointStyle_pointStyle),
8851
+ pointStateDimensionHover,
8852
+ colorLineStyleFill(lineStyle_lineStyle),
8853
+ colorAreaStyleFill(areaStyle_areaStyle),
8854
+ annotationPoint_annotationPoint,
8855
+ annotationVerticalLine_annotationVerticalLine,
8856
+ annotationHorizontalLine_annotationHorizontalLine,
8857
+ annotationArea_annotationArea
8858
+ ];
8859
+ const pivotAreaPercent = [
8860
+ initPivot,
8861
+ pivotGridStyle,
8862
+ pivotIndicatorsAsRow,
8863
+ datasetPivot,
8864
+ pivotIndicators_pivotIndicators([
8865
+ initArea,
8866
+ stackInverse,
8867
+ colorAdapter(color_color, linearColor),
8868
+ background_backgroundColor,
8869
+ percent_percent,
8870
+ datasetXY,
8871
+ progressive,
8872
+ xBand,
8873
+ pivotAxisStyle(yLinear),
8874
+ label_label,
8875
+ brush_brush,
8876
+ tooltip_tooltip,
8877
+ verticalCrosshairLine,
8878
+ colorPointStyleFill(pointStyle_pointStyle),
8879
+ pointStateDimensionHover,
8880
+ colorLineStyleFill(lineStyle_lineStyle),
8881
+ colorAreaStyleFill(areaStyle_areaStyle),
8882
+ annotationPoint_annotationPoint,
8883
+ annotationVerticalLine_annotationVerticalLine,
8884
+ annotationHorizontalLine_annotationHorizontalLine,
8885
+ annotationArea_annotationArea
8886
+ ]),
8887
+ pivotRowDimensions,
8888
+ pivotColumnDimensions,
8889
+ pivotTitle,
8890
+ colorAdapter(pivotDiscreteLegend, pivotColorLegend),
8891
+ dimensionLinkage
8892
+ ];
8893
+ const areaPercentSpecPipeline = [
8894
+ pivotAdapter_pivotAdapter(areaPercent, pivotAreaPercent)
8895
+ ];
8896
+ const registerAreaPercent = ()=>{
8897
+ Builder.registerAdvancedPipeline('areaPercent', areaPercentAdvancedPipeline);
8898
+ Builder.registerSpecPipeline('areaPercent', areaPercentSpecPipeline);
8365
8899
  };
8366
8900
  const scatterSize = (spec, context)=>{
8367
8901
  const result = {
@@ -8983,7 +9517,7 @@
8983
9517
  initScatter,
8984
9518
  colorAdapter(color_color, linearColor),
8985
9519
  background_backgroundColor,
8986
- playerAdapter(datasetScatter),
9520
+ datasetScatter,
8987
9521
  progressive,
8988
9522
  xLinear,
8989
9523
  yLinear,
@@ -9734,21 +10268,21 @@
9734
10268
  };
9735
10269
  const isObjectLike = (value)=>"object" == typeof value && null !== value;
9736
10270
  const common_isObjectLike = isObjectLike;
9737
- const isPlainObject_isPlainObject = function(value) {
10271
+ const isPlainObject = function(value) {
9738
10272
  if (!common_isObjectLike(value) || !isType(value, "Object")) return !1;
9739
10273
  if (null === Object.getPrototypeOf(value)) return !0;
9740
10274
  let proto = value;
9741
10275
  for(; null !== Object.getPrototypeOf(proto);)proto = Object.getPrototypeOf(proto);
9742
10276
  return Object.getPrototypeOf(value) === proto;
9743
10277
  };
9744
- const isPlainObject = isPlainObject_isPlainObject;
10278
+ const common_isPlainObject = isPlainObject;
9745
10279
  const isString = (value, fuzzy = !1)=>{
9746
10280
  const type = typeof value;
9747
10281
  return fuzzy ? "string" === type : "string" === type || isType(value, "String");
9748
10282
  };
9749
10283
  const common_isString = isString;
9750
10284
  function pickWithout(obj, keys) {
9751
- if (!obj || !isPlainObject(obj)) return obj;
10285
+ if (!obj || !common_isPlainObject(obj)) return obj;
9752
10286
  const result = {};
9753
10287
  return Object.keys(obj).forEach((k)=>{
9754
10288
  const v = obj[k];
@@ -10045,7 +10579,7 @@
10045
10579
  initPie,
10046
10580
  colorAdapter(color_color, linearColor),
10047
10581
  background_backgroundColor,
10048
- playerAdapter(datasetXY),
10582
+ datasetXY,
10049
10583
  progressive,
10050
10584
  brush_brush,
10051
10585
  colorPieStyleFill(pieStyle),
@@ -10146,7 +10680,7 @@
10146
10680
  initDonut,
10147
10681
  colorAdapter(color_color, linearColor),
10148
10682
  background_backgroundColor,
10149
- playerAdapter(datasetXY),
10683
+ datasetXY,
10150
10684
  progressive,
10151
10685
  brush_brush,
10152
10686
  labelPie,
@@ -10374,7 +10908,7 @@
10374
10908
  stackInverse,
10375
10909
  colorAdapter(color_color, linearColor),
10376
10910
  background_backgroundColor,
10377
- playerAdapter(datasetXY),
10911
+ datasetXY,
10378
10912
  progressive,
10379
10913
  radiusAxis,
10380
10914
  verticalCrosshairRect,
@@ -10495,7 +11029,7 @@
10495
11029
  stackCornerRadius_stackCornerRadius,
10496
11030
  colorAdapter(color_color, linearColor),
10497
11031
  background_backgroundColor,
10498
- playerAdapter(datasetXY),
11032
+ datasetXY,
10499
11033
  progressive,
10500
11034
  radiusAxis,
10501
11035
  colorRoseStyleFill(roseStyle),
@@ -10717,7 +11251,7 @@
10717
11251
  initRadar,
10718
11252
  colorAdapter(color_color, linearColor),
10719
11253
  background_backgroundColor,
10720
- playerAdapter(datasetXY),
11254
+ datasetXY,
10721
11255
  progressive,
10722
11256
  radarAngleAxis,
10723
11257
  radarRadiusAxis,
@@ -10940,7 +11474,7 @@
10940
11474
  const funnel = [
10941
11475
  initFunnel,
10942
11476
  background_backgroundColor,
10943
- playerAdapter(datasetXY),
11477
+ datasetXY,
10944
11478
  colorAdapter(color_color, linearColor),
10945
11479
  label_label,
10946
11480
  colorAdapter(discreteLegend, colorLegend),
@@ -11309,7 +11843,7 @@
11309
11843
  const heatmap = [
11310
11844
  initHeatmap,
11311
11845
  background_backgroundColor,
11312
- playerAdapter(datasetXY),
11846
+ datasetXY,
11313
11847
  colorAdapter(color_color, linearColor),
11314
11848
  label_label,
11315
11849
  heatmapBandAxis,
@@ -12176,7 +12710,7 @@
12176
12710
  const length = objValue.length;
12177
12711
  for(; ++index < length;)newValue[index] = objValue[index];
12178
12712
  }
12179
- } else isPlainObject(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
12713
+ } else common_isPlainObject(srcValue) ? (newValue = null != objValue ? objValue : {}, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
12180
12714
  isCommon && baseMerge(newValue, srcValue, shallowArray, skipTargetArray), assignMergeValue(target, key, newValue);
12181
12715
  }
12182
12716
  function assignMergeValue(target, key, value) {
@@ -14010,7 +14544,6 @@
14010
14544
  xAxis: bandAxis,
14011
14545
  yAxis: linearAxis,
14012
14546
  crosshairLine,
14013
- player,
14014
14547
  pivotGrid: getLightPivotChartGridConfig(),
14015
14548
  annotation: getLightAnnotation()
14016
14549
  },
@@ -14019,7 +14552,6 @@
14019
14552
  xAxis: bandAxis,
14020
14553
  yAxis: linearAxis,
14021
14554
  crosshairRect,
14022
- player,
14023
14555
  stackCornerRadius: [
14024
14556
  4,
14025
14557
  4,
@@ -14035,7 +14567,6 @@
14035
14567
  xAxis: bandAxis,
14036
14568
  yAxis: linearAxis,
14037
14569
  crosshairRect,
14038
- player,
14039
14570
  stackCornerRadius: [
14040
14571
  4,
14041
14572
  4,
@@ -14051,7 +14582,6 @@
14051
14582
  yAxis: {
14052
14583
  ...linearAxis
14053
14584
  },
14054
- player,
14055
14585
  crosshairRect,
14056
14586
  stackCornerRadius: [
14057
14587
  4,
@@ -14067,15 +14597,76 @@
14067
14597
  xAxis: linearAxis,
14068
14598
  yAxis: barBandAxis,
14069
14599
  crosshairRect,
14600
+ stackCornerRadius: [
14601
+ 0,
14602
+ 4,
14603
+ 4,
14604
+ 0
14605
+ ],
14606
+ pivotGrid: getLightPivotChartGridConfig(),
14607
+ annotation: getLightAnnotation()
14608
+ },
14609
+ raceBar: {
14610
+ ...baseConfig,
14611
+ xAxis: linearAxis,
14612
+ yAxis: barBandAxis,
14613
+ crosshairRect,
14614
+ player,
14615
+ stackCornerRadius: [
14616
+ 0,
14617
+ 4,
14618
+ 4,
14619
+ 0
14620
+ ],
14621
+ pivotGrid: getLightPivotChartGridConfig(),
14622
+ annotation: getLightAnnotation()
14623
+ },
14624
+ raceColumn: {
14625
+ ...baseConfig,
14626
+ xAxis: bandAxis,
14627
+ yAxis: linearAxis,
14628
+ crosshairRect,
14629
+ player,
14630
+ stackCornerRadius: [
14631
+ 4,
14632
+ 4,
14633
+ 0,
14634
+ 0
14635
+ ],
14636
+ pivotGrid: getLightPivotChartGridConfig(),
14637
+ annotation: getLightAnnotation(),
14638
+ regressionLine: getLightRegressionLine()
14639
+ },
14640
+ raceScatter: {
14641
+ ...baseConfig,
14642
+ crosshairLine,
14643
+ sizeRange: [
14644
+ 8,
14645
+ 24
14646
+ ],
14647
+ xAxis: {
14648
+ ...linearAxis,
14649
+ line: {
14650
+ ...linearAxis.line,
14651
+ visible: true
14652
+ }
14653
+ },
14654
+ yAxis: {
14655
+ ...linearAxis,
14656
+ line: {
14657
+ ...linearAxis.line,
14658
+ visible: true
14659
+ }
14660
+ },
14661
+ label: {
14662
+ ...baseConfig.label,
14663
+ showValue: false,
14664
+ showValuePercent: false
14665
+ },
14070
14666
  player,
14071
- stackCornerRadius: [
14072
- 0,
14073
- 4,
14074
- 4,
14075
- 0
14076
- ],
14077
14667
  pivotGrid: getLightPivotChartGridConfig(),
14078
- annotation: getLightAnnotation()
14668
+ annotation: getLightAnnotation(),
14669
+ regressionLine: getLightRegressionLine()
14079
14670
  },
14080
14671
  barParallel: {
14081
14672
  ...baseConfig,
@@ -14098,7 +14689,6 @@
14098
14689
  },
14099
14690
  yAxis: barBandAxis,
14100
14691
  crosshairRect,
14101
- player,
14102
14692
  stackCornerRadius: [
14103
14693
  0,
14104
14694
  4,
@@ -14113,7 +14703,6 @@
14113
14703
  xAxis: bandAxis,
14114
14704
  yAxis: linearAxis,
14115
14705
  crosshairLine,
14116
- player,
14117
14706
  pivotGrid: getLightPivotChartGridConfig(),
14118
14707
  annotation: getLightAnnotation()
14119
14708
  },
@@ -14123,7 +14712,6 @@
14123
14712
  yAxis: {
14124
14713
  ...linearAxis
14125
14714
  },
14126
- player,
14127
14715
  crosshairLine,
14128
14716
  pivotGrid: getLightPivotChartGridConfig(),
14129
14717
  annotation: getLightAnnotation()
@@ -14154,7 +14742,6 @@
14154
14742
  showValue: false,
14155
14743
  showValuePercent: false
14156
14744
  },
14157
- player,
14158
14745
  pivotGrid: getLightPivotChartGridConfig(),
14159
14746
  annotation: getLightAnnotation(),
14160
14747
  regressionLine: getLightRegressionLine()
@@ -14181,7 +14768,6 @@
14181
14768
  labelLayout: 'arc',
14182
14769
  showDimension: true
14183
14770
  },
14184
- player,
14185
14771
  pivotGrid: getLightPivotChartGridConfig()
14186
14772
  },
14187
14773
  donut: {
@@ -14192,12 +14778,10 @@
14192
14778
  labelLayout: 'arc',
14193
14779
  showDimension: true
14194
14780
  },
14195
- player,
14196
14781
  pivotGrid: getLightPivotChartGridConfig()
14197
14782
  },
14198
14783
  radar: {
14199
14784
  ...baseConfig,
14200
- player,
14201
14785
  pivotGrid: getLightPivotChartGridConfig()
14202
14786
  },
14203
14787
  rose: {
@@ -14207,7 +14791,6 @@
14207
14791
  showValuePercent: true,
14208
14792
  showDimension: true
14209
14793
  },
14210
- player,
14211
14794
  pivotGrid: getLightPivotChartGridConfig()
14212
14795
  },
14213
14796
  roseParallel: {
@@ -14217,14 +14800,12 @@
14217
14800
  showValuePercent: true,
14218
14801
  showDimension: true
14219
14802
  },
14220
- player,
14221
14803
  pivotGrid: getLightPivotChartGridConfig()
14222
14804
  },
14223
14805
  funnel: {
14224
14806
  ...baseConfig,
14225
14807
  label: getFunnelLightLabel(),
14226
14808
  transform: getLightFunnelTransformTheme(),
14227
- player,
14228
14809
  pivotGrid: getLightPivotChartGridConfig()
14229
14810
  },
14230
14811
  heatmap: {
@@ -14236,7 +14817,6 @@
14236
14817
  ...baseConfig.label,
14237
14818
  labelColorSmartInvert: true
14238
14819
  },
14239
- player,
14240
14820
  cell: getLightHeatmapCellTheme(),
14241
14821
  pivotGrid: getLightPivotChartGridConfig()
14242
14822
  },
@@ -14299,7 +14879,6 @@
14299
14879
  xAxis: bandAxis,
14300
14880
  yAxis: linearAxis,
14301
14881
  crosshairLine: crosshairLine,
14302
- player,
14303
14882
  pivotGrid: getDarkPivotChartGridConfig(),
14304
14883
  annotation: getDarkAnnotation()
14305
14884
  },
@@ -14316,7 +14895,6 @@
14316
14895
  ],
14317
14896
  pivotGrid: getDarkPivotChartGridConfig(),
14318
14897
  annotation: getDarkAnnotation(),
14319
- player,
14320
14898
  regressionLine: getDarkRegressionLine()
14321
14899
  },
14322
14900
  columnParallel: {
@@ -14331,8 +14909,7 @@
14331
14909
  0
14332
14910
  ],
14333
14911
  pivotGrid: getDarkPivotChartGridConfig(),
14334
- annotation: getDarkAnnotation(),
14335
- player
14912
+ annotation: getDarkAnnotation()
14336
14913
  },
14337
14914
  columnPercent: {
14338
14915
  ...baseConfig,
@@ -14346,8 +14923,7 @@
14346
14923
  0
14347
14924
  ],
14348
14925
  pivotGrid: getDarkPivotChartGridConfig(),
14349
- annotation: getDarkAnnotation(),
14350
- player
14926
+ annotation: getDarkAnnotation()
14351
14927
  },
14352
14928
  bar: {
14353
14929
  ...baseConfig,
@@ -14361,7 +14937,68 @@
14361
14937
  0
14362
14938
  ],
14363
14939
  pivotGrid: getDarkPivotChartGridConfig(),
14940
+ annotation: getDarkAnnotation()
14941
+ },
14942
+ raceBar: {
14943
+ ...baseConfig,
14944
+ xAxis: linearAxis,
14945
+ yAxis: barBandAxis,
14946
+ crosshairRect: crosshairRect,
14947
+ stackCornerRadius: [
14948
+ 0,
14949
+ 4,
14950
+ 4,
14951
+ 0
14952
+ ],
14953
+ pivotGrid: getDarkPivotChartGridConfig(),
14954
+ annotation: getDarkAnnotation(),
14955
+ player
14956
+ },
14957
+ raceColumn: {
14958
+ ...baseConfig,
14959
+ xAxis: bandAxis,
14960
+ yAxis: linearAxis,
14961
+ crosshairRect: crosshairRect,
14962
+ stackCornerRadius: [
14963
+ 4,
14964
+ 4,
14965
+ 0,
14966
+ 0
14967
+ ],
14968
+ pivotGrid: getDarkPivotChartGridConfig(),
14969
+ annotation: getDarkAnnotation(),
14970
+ player,
14971
+ regressionLine: getDarkRegressionLine()
14972
+ },
14973
+ raceScatter: {
14974
+ ...baseConfig,
14975
+ crosshairLine,
14976
+ sizeRange: [
14977
+ 8,
14978
+ 24
14979
+ ],
14980
+ xAxis: {
14981
+ ...linearAxis,
14982
+ line: {
14983
+ ...linearAxis.line,
14984
+ visible: true
14985
+ }
14986
+ },
14987
+ yAxis: {
14988
+ ...linearAxis,
14989
+ line: {
14990
+ ...linearAxis.line,
14991
+ visible: true
14992
+ }
14993
+ },
14994
+ label: {
14995
+ ...baseConfig.label,
14996
+ showValue: false,
14997
+ showValuePercent: false
14998
+ },
14999
+ pivotGrid: getDarkPivotChartGridConfig(),
14364
15000
  annotation: getDarkAnnotation(),
15001
+ regressionLine: getDarkRegressionLine(),
14365
15002
  player
14366
15003
  },
14367
15004
  barParallel: {
@@ -14376,8 +15013,7 @@
14376
15013
  0
14377
15014
  ],
14378
15015
  pivotGrid: getDarkPivotChartGridConfig(),
14379
- annotation: getDarkAnnotation(),
14380
- player
15016
+ annotation: getDarkAnnotation()
14381
15017
  },
14382
15018
  barPercent: {
14383
15019
  ...baseConfig,
@@ -14391,8 +15027,7 @@
14391
15027
  0
14392
15028
  ],
14393
15029
  pivotGrid: getDarkPivotChartGridConfig(),
14394
- annotation: getDarkAnnotation(),
14395
- player
15030
+ annotation: getDarkAnnotation()
14396
15031
  },
14397
15032
  area: {
14398
15033
  ...baseConfig,
@@ -14400,8 +15035,7 @@
14400
15035
  yAxis: linearAxis,
14401
15036
  crosshairLine: crosshairLine,
14402
15037
  pivotGrid: getDarkPivotChartGridConfig(),
14403
- annotation: getDarkAnnotation(),
14404
- player
15038
+ annotation: getDarkAnnotation()
14405
15039
  },
14406
15040
  areaPercent: {
14407
15041
  ...baseConfig,
@@ -14409,8 +15043,7 @@
14409
15043
  yAxis: linearAxis,
14410
15044
  crosshairLine: crosshairLine,
14411
15045
  pivotGrid: getDarkPivotChartGridConfig(),
14412
- annotation: getDarkAnnotation(),
14413
- player
15046
+ annotation: getDarkAnnotation()
14414
15047
  },
14415
15048
  scatter: {
14416
15049
  ...baseConfig,
@@ -14440,8 +15073,7 @@
14440
15073
  },
14441
15074
  pivotGrid: getDarkPivotChartGridConfig(),
14442
15075
  annotation: getDarkAnnotation(),
14443
- regressionLine: getDarkRegressionLine(),
14444
- player
15076
+ regressionLine: getDarkRegressionLine()
14445
15077
  },
14446
15078
  dualAxis: {
14447
15079
  ...baseConfig,
@@ -14465,8 +15097,7 @@
14465
15097
  labelLayout: 'arc',
14466
15098
  showDimension: true
14467
15099
  },
14468
- pivotGrid: getDarkPivotChartGridConfig(),
14469
- player
15100
+ pivotGrid: getDarkPivotChartGridConfig()
14470
15101
  },
14471
15102
  donut: {
14472
15103
  ...baseConfig,
@@ -14476,13 +15107,11 @@
14476
15107
  labelLayout: 'arc',
14477
15108
  showDimension: true
14478
15109
  },
14479
- pivotGrid: getDarkPivotChartGridConfig(),
14480
- player
15110
+ pivotGrid: getDarkPivotChartGridConfig()
14481
15111
  },
14482
15112
  radar: {
14483
15113
  ...baseConfig,
14484
- pivotGrid: getDarkPivotChartGridConfig(),
14485
- player
15114
+ pivotGrid: getDarkPivotChartGridConfig()
14486
15115
  },
14487
15116
  rose: {
14488
15117
  ...baseConfig,
@@ -14491,8 +15120,7 @@
14491
15120
  showValuePercent: true,
14492
15121
  showDimension: true
14493
15122
  },
14494
- pivotGrid: getDarkPivotChartGridConfig(),
14495
- player
15123
+ pivotGrid: getDarkPivotChartGridConfig()
14496
15124
  },
14497
15125
  roseParallel: {
14498
15126
  ...baseConfig,
@@ -14501,15 +15129,13 @@
14501
15129
  showValuePercent: true,
14502
15130
  showDimension: true
14503
15131
  },
14504
- pivotGrid: getDarkPivotChartGridConfig(),
14505
- player
15132
+ pivotGrid: getDarkPivotChartGridConfig()
14506
15133
  },
14507
15134
  funnel: {
14508
15135
  ...baseConfig,
14509
15136
  label: getFunnelDarkLabel(),
14510
15137
  transform: getDarkFunnelTransformTheme(),
14511
- pivotGrid: getDarkPivotChartGridConfig(),
14512
- player
15138
+ pivotGrid: getDarkPivotChartGridConfig()
14513
15139
  },
14514
15140
  heatmap: {
14515
15141
  ...baseConfig,
@@ -14520,7 +15146,6 @@
14520
15146
  ...baseConfig.label,
14521
15147
  labelColorSmartInvert: true
14522
15148
  },
14523
- player,
14524
15149
  cell: getDarkHeatmapCellTheme(),
14525
15150
  pivotGrid: getDarkPivotChartGridConfig()
14526
15151
  },
@@ -14567,6 +15192,9 @@
14567
15192
  registerColumnParallel();
14568
15193
  registerColumnPercent();
14569
15194
  registerBar();
15195
+ registerRaceBar();
15196
+ registerRaceColumn();
15197
+ registerRaceScatter();
14570
15198
  registerBarParallel();
14571
15199
  registerBarPercent();
14572
15200
  registerArea();
@@ -14591,6 +15219,10 @@
14591
15219
  const updateSpec = (chartType, specPipe)=>{
14592
15220
  Builder.updateSpec(chartType, specPipe);
14593
15221
  };
15222
+ const condition_condition = (condition, truePipe, falsePipe)=>(spec, context)=>{
15223
+ if (condition(context)) return truePipe(spec, context);
15224
+ return falsePipe(spec, context);
15225
+ };
14594
15226
  const measureDepth = (measures = [])=>{
14595
15227
  if (!measures) return 0;
14596
15228
  let depth = 1;
@@ -14740,7 +15372,7 @@
14740
15372
  const xid = /^[0-9a-vA-V]{20}$/;
14741
15373
  const ksuid = /^[A-Za-z0-9]{27}$/;
14742
15374
  const nanoid = /^[a-zA-Z0-9_-]{21}$/;
14743
- const duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
15375
+ const regexes_duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
14744
15376
  const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
14745
15377
  const uuid = (version)=>{
14746
15378
  if (!version) return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;
@@ -15886,7 +16518,7 @@
15886
16518
  $ZodStringFormat.init(inst, def);
15887
16519
  });
15888
16520
  const $ZodISODuration = /*@__PURE__*/ $constructor("$ZodISODuration", (inst, def)=>{
15889
- def.pattern ?? (def.pattern = duration);
16521
+ def.pattern ?? (def.pattern = regexes_duration);
15890
16522
  $ZodStringFormat.init(inst, def);
15891
16523
  });
15892
16524
  const $ZodIPv4 = /*@__PURE__*/ $constructor("$ZodIPv4", (inst, def)=>{
@@ -17976,6 +18608,7 @@
17976
18608
  'bar',
17977
18609
  'barPercent',
17978
18610
  'barParallel',
18611
+ 'raceBar',
17979
18612
  'area',
17980
18613
  'areaPercent',
17981
18614
  'scatter',
@@ -18759,25 +19392,6 @@
18759
19392
  inBrushStyle: zBrushStyleConfig.optional(),
18760
19393
  outOfBrushStyle: zBrushStyleConfig.optional()
18761
19394
  });
18762
- const zPlayer = schemas_object({
18763
- field: schemas_string(),
18764
- interval: schemas_number().optional(),
18765
- autoPlay: schemas_boolean().optional(),
18766
- loop: schemas_boolean().optional(),
18767
- position: schemas_enum([
18768
- 'top',
18769
- 'bottom',
18770
- 'left',
18771
- 'right'
18772
- ]).optional(),
18773
- railColor: schemas_string().optional(),
18774
- trackColor: schemas_string().optional(),
18775
- sliderHandleColor: schemas_string().optional(),
18776
- startButtonColor: schemas_string().optional(),
18777
- pauseButtonColor: schemas_string().optional(),
18778
- backwardButtonColor: schemas_string().optional(),
18779
- forwardButtonColor: schemas_string().optional()
18780
- });
18781
19395
  const zLineConfig = schemas_object({
18782
19396
  backgroundColor: zBackgroundColor.nullish(),
18783
19397
  label: zLabel.nullish(),
@@ -18790,8 +19404,7 @@
18790
19404
  pivotGrid: zPivotChartGridConfig.nullish(),
18791
19405
  annotation: zAnnotationConfig.nullish(),
18792
19406
  dimensionLinkage: zDimensionLinkage.nullish(),
18793
- brush: zBrushConfig.nullish(),
18794
- player: zPlayer.nullish()
19407
+ brush: zBrushConfig.nullish()
18795
19408
  });
18796
19409
  const zStackCornerRadius = schemas_number().or(schemas_array(schemas_number())).default([
18797
19410
  3,
@@ -18840,7 +19453,6 @@
18840
19453
  color: zColor.nullish(),
18841
19454
  tooltip: zTooltip.nullish(),
18842
19455
  legend: zLegend.nullish(),
18843
- player: zPlayer.nullish(),
18844
19456
  xAxis: zXBandAxis.nullish(),
18845
19457
  yAxis: zYLinearAxis.nullish(),
18846
19458
  crosshairRect: zCrosshairRect.nullish(),
@@ -18862,7 +19474,6 @@
18862
19474
  color: zColor.nullish(),
18863
19475
  tooltip: zTooltip.nullish(),
18864
19476
  legend: zLegend.nullish(),
18865
- player: zPlayer.nullish(),
18866
19477
  xAxis: zXLinearAxis.nullish(),
18867
19478
  yAxis: zYBandAxis.nullish(),
18868
19479
  crosshairRect: zCrosshairRect.nullish(),
@@ -18880,7 +19491,6 @@
18880
19491
  color: zColor.nullish(),
18881
19492
  tooltip: zTooltip.nullish(),
18882
19493
  legend: zLegend.nullish(),
18883
- player: zPlayer.nullish(),
18884
19494
  xAxis: zXBandAxis.nullish(),
18885
19495
  yAxis: zYLinearAxis.nullish(),
18886
19496
  crosshairLine: zCrosshairLine.nullish(),
@@ -18896,7 +19506,6 @@
18896
19506
  color: zColor.nullish(),
18897
19507
  tooltip: zTooltip.nullish(),
18898
19508
  legend: zLegend.nullish(),
18899
- player: zPlayer.nullish(),
18900
19509
  xAxis: zXLinearAxis.nullish(),
18901
19510
  yAxis: zYLinearAxis.nullish(),
18902
19511
  crosshairLine: zCrosshairLine.nullish(),
@@ -18936,7 +19545,6 @@
18936
19545
  color: zColor.nullish(),
18937
19546
  tooltip: zTooltip.nullish(),
18938
19547
  legend: zLegend.nullish(),
18939
- player: zPlayer.nullish(),
18940
19548
  pivotGrid: zPivotChartGridConfig.nullish(),
18941
19549
  cornerRadius: schemas_number().nullish(),
18942
19550
  brush: zBrushConfig.nullish()
@@ -18949,7 +19557,6 @@
18949
19557
  color: zColor.nullish(),
18950
19558
  tooltip: zTooltip.nullish(),
18951
19559
  legend: zLegend.nullish(),
18952
- player: zPlayer.nullish(),
18953
19560
  pivotGrid: zPivotChartGridConfig.nullish()
18954
19561
  });
18955
19562
  const zRoseParallelConfig = zRoseConfig;
@@ -18963,7 +19570,6 @@
18963
19570
  color: zColor.nullish(),
18964
19571
  tooltip: zTooltip.nullish(),
18965
19572
  legend: zLegend.nullish(),
18966
- player: zPlayer.nullish(),
18967
19573
  pivotGrid: zPivotChartGridConfig.nullish(),
18968
19574
  transform: zFunnelTransform.nullish()
18969
19575
  });
@@ -18979,7 +19585,6 @@
18979
19585
  color: zColor.nullish(),
18980
19586
  tooltip: zTooltip.nullish(),
18981
19587
  legend: zColorLegend.nullish(),
18982
- player: zPlayer.nullish(),
18983
19588
  pivotGrid: zPivotChartGridConfig.nullish(),
18984
19589
  cell: zHeatmapCell.nullish(),
18985
19590
  xAxis: zXBandAxis.nullish(),
@@ -19060,6 +19665,35 @@
19060
19665
  dimensionLinkage: zDimensionLinkage.nullish(),
19061
19666
  brush: zBrushConfig.nullish()
19062
19667
  });
19668
+ const zPlayer = schemas_object({
19669
+ field: schemas_string(),
19670
+ interval: schemas_number().optional(),
19671
+ autoPlay: schemas_boolean().optional(),
19672
+ loop: schemas_boolean().optional(),
19673
+ position: schemas_enum([
19674
+ 'top',
19675
+ 'bottom',
19676
+ 'left',
19677
+ 'right'
19678
+ ]).optional(),
19679
+ railColor: schemas_string().optional(),
19680
+ trackColor: schemas_string().optional(),
19681
+ sliderHandleColor: schemas_string().optional(),
19682
+ startButtonColor: schemas_string().optional(),
19683
+ pauseButtonColor: schemas_string().optional(),
19684
+ backwardButtonColor: schemas_string().optional(),
19685
+ forwardButtonColor: schemas_string().optional()
19686
+ });
19687
+ const zRaceBarConfig = zBarConfig.extend({
19688
+ player: zPlayer.nullish()
19689
+ });
19690
+ const zRaceColumnConfig = zColumnConfig.extend({
19691
+ player: zPlayer.nullish()
19692
+ });
19693
+ const zRaceScatterConfig = zScatterConfig.extend({
19694
+ xAxis: zXBandAxis.nullish(),
19695
+ player: zPlayer.nullish()
19696
+ });
19063
19697
  const zConfig = schemas_object({
19064
19698
  table: zTableConfig.nullish(),
19065
19699
  pivotTable: zPivotTableConfig.nullish(),
@@ -19079,6 +19713,9 @@
19079
19713
  pie: zPieConfig.nullish(),
19080
19714
  donut: zDonutConfig.nullish(),
19081
19715
  radar: zRadarConfig.nullish(),
19716
+ raceBar: zRaceBarConfig.nullish(),
19717
+ raceColumn: zRaceColumnConfig.nullish(),
19718
+ raceScatter: zRaceScatterConfig.nullish(),
19082
19719
  funnel: zFunnelConfig.nullish(),
19083
19720
  heatmap: zHeatmapConfig.nullish(),
19084
19721
  boxPlot: zBoxplotConfig.nullish(),
@@ -19443,6 +20080,93 @@
19443
20080
  dimensionLinkage: zDimensionLinkage.nullish(),
19444
20081
  locale: zLocale.nullish()
19445
20082
  });
20083
+ const zRaceBar = schemas_object({
20084
+ chartType: literal('raceBar'),
20085
+ dataset: zDataset.nullish(),
20086
+ encoding: zEncoding.nullish(),
20087
+ dimensions: zDimensions.nullish(),
20088
+ measures: zMeasures.nullish(),
20089
+ page: zPage.nullish(),
20090
+ player: zPlayer.nullish(),
20091
+ sort: zSort.nullish(),
20092
+ backgroundColor: zBackgroundColor.nullish(),
20093
+ color: zColor.nullish(),
20094
+ label: zLabel.nullish(),
20095
+ legend: zLegend.nullish(),
20096
+ tooltip: zTooltip.nullish(),
20097
+ brush: zBrush.nullish(),
20098
+ xAxis: zXLinearAxis.nullish(),
20099
+ yAxis: zYBandAxis.nullish(),
20100
+ crosshairRect: zCrosshairRect.nullish(),
20101
+ stackCornerRadius: zStackCornerRadius.nullish(),
20102
+ barMaxWidth: zBarMaxWidth.nullish(),
20103
+ sortLegend: zSortLegend.nullish(),
20104
+ theme: zTheme.nullish(),
20105
+ barStyle: schemas_array(zBarStyle).or(zBarStyle).nullish(),
20106
+ annotationPoint: schemas_array(zAnnotationPoint).or(zAnnotationPoint).nullish(),
20107
+ annotationVerticalLine: schemas_array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),
20108
+ annotationHorizontalLine: schemas_array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),
20109
+ annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
20110
+ dimensionLinkage: zDimensionLinkage.nullish(),
20111
+ locale: zLocale.nullish()
20112
+ });
20113
+ const zRaceColumn = schemas_object({
20114
+ chartType: literal('raceColumn'),
20115
+ dataset: zDataset.nullish(),
20116
+ encoding: zEncoding.nullish(),
20117
+ dimensions: zDimensions.nullish(),
20118
+ measures: zMeasures.nullish(),
20119
+ page: zPage.nullish(),
20120
+ player: zPlayer.nullish(),
20121
+ sort: zSort.nullish(),
20122
+ backgroundColor: zBackgroundColor.nullish(),
20123
+ color: zColor.nullish(),
20124
+ label: zLabel.nullish(),
20125
+ legend: zLegend.nullish(),
20126
+ tooltip: zTooltip.nullish(),
20127
+ brush: zBrush.nullish(),
20128
+ xAxis: zYBandAxis.nullish(),
20129
+ yAxis: zXLinearAxis.nullish(),
20130
+ crosshairRect: zCrosshairRect.nullish(),
20131
+ stackCornerRadius: zStackCornerRadius.nullish(),
20132
+ barMaxWidth: zBarMaxWidth.nullish(),
20133
+ sortLegend: zSortLegend.nullish(),
20134
+ theme: zTheme.nullish(),
20135
+ barStyle: schemas_array(zBarStyle).or(zBarStyle).nullish(),
20136
+ annotationPoint: schemas_array(zAnnotationPoint).or(zAnnotationPoint).nullish(),
20137
+ annotationVerticalLine: schemas_array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),
20138
+ annotationHorizontalLine: schemas_array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),
20139
+ annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
20140
+ dimensionLinkage: zDimensionLinkage.nullish(),
20141
+ locale: zLocale.nullish()
20142
+ });
20143
+ const zRaceScatter = schemas_object({
20144
+ chartType: literal('raceScatter'),
20145
+ dataset: zDataset.nullish(),
20146
+ encoding: zEncoding.nullish(),
20147
+ dimensions: zDimensions.nullish(),
20148
+ measures: zMeasures.nullish(),
20149
+ page: zPage.nullish(),
20150
+ player: zPlayer.nullish(),
20151
+ sort: zSort.nullish(),
20152
+ backgroundColor: zBackgroundColor.nullish(),
20153
+ color: zColor.nullish(),
20154
+ label: zLabel.nullish(),
20155
+ legend: zLegend.nullish(),
20156
+ tooltip: zTooltip.nullish(),
20157
+ brush: zBrush.nullish(),
20158
+ xAxis: zXLinearAxis.nullish(),
20159
+ yAxis: zYLinearAxis.nullish(),
20160
+ crosshairLine: zCrosshairLine.nullish(),
20161
+ theme: zTheme.nullish(),
20162
+ pointStyle: schemas_array(zPointStyle).or(zPointStyle).nullish(),
20163
+ annotationPoint: schemas_array(zAnnotationPoint).or(zAnnotationPoint).nullish(),
20164
+ annotationVerticalLine: schemas_array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),
20165
+ annotationHorizontalLine: schemas_array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),
20166
+ annotationArea: schemas_array(zAnnotationArea).or(zAnnotationArea).nullish(),
20167
+ regressionLine: zRegressionLine.nullish(),
20168
+ locale: zLocale.nullish()
20169
+ });
19446
20170
  const zBarParallel = schemas_object({
19447
20171
  chartType: literal('barParallel'),
19448
20172
  dataset: zDataset.nullish(),
@@ -19807,6 +20531,9 @@
19807
20531
  zRose,
19808
20532
  zRoseParallel,
19809
20533
  zRadar,
20534
+ zRaceBar,
20535
+ zRaceColumn,
20536
+ zRaceScatter,
19810
20537
  zFunnel,
19811
20538
  zHeatmap,
19812
20539
  zBoxPlot,