@visactor/vseed 0.1.43 → 0.1.44

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 (213) hide show
  1. package/dist/cjs/index.cjs +3 -3
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +4380 -0
  4. package/dist/esm/dataSelector/selector.d.ts +1 -1
  5. package/dist/esm/dataSelector/selector.js +1 -2
  6. package/dist/esm/dataSelector/selector.js.map +1 -1
  7. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +2 -0
  8. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  9. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.d.ts +1 -0
  10. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js +35 -2
  11. package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
  12. package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js +1 -1
  13. package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js.map +1 -1
  14. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +22 -2
  15. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  16. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +22 -3
  17. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js +3 -2
  19. package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/table/pipeline/table.js +2 -1
  21. package/dist/esm/pipeline/advanced/table/pipeline/table.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/table/pipes/{default/defaultMeasureName.d.ts → cellStyle/cellStyle.d.ts} +1 -1
  23. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js +16 -0
  24. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js.map +1 -0
  25. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/index.d.ts +1 -0
  26. package/dist/esm/pipeline/advanced/table/pipes/cellStyle/index.js +2 -0
  27. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.d.ts +2 -0
  28. package/dist/esm/pipeline/advanced/table/pipes/default/{defaultMeasureName.js → defaultMeasureId.js} +5 -5
  29. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -0
  30. package/dist/esm/pipeline/advanced/table/pipes/default/index.d.ts +1 -1
  31. package/dist/esm/pipeline/advanced/table/pipes/default/index.js +2 -2
  32. package/dist/esm/pipeline/advanced/table/pipes/index.d.ts +1 -0
  33. package/dist/esm/pipeline/advanced/table/pipes/index.js +1 -0
  34. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  35. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js +2 -0
  36. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js.map +1 -1
  37. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js +2 -0
  38. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js.map +1 -1
  39. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js +22 -3
  40. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js.map +1 -1
  41. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js +2 -0
  42. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js.map +1 -1
  43. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js +20 -1
  44. package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js.map +1 -1
  45. package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js +23 -7
  46. package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
  47. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +2 -1
  48. package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
  49. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +2 -1
  50. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  51. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +2 -1
  52. package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
  53. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +2 -1
  54. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  55. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +2 -1
  56. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  57. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +2 -1
  58. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  59. package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js +4 -0
  60. package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js.map +1 -1
  61. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +2 -1
  62. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  63. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js +1 -1
  64. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
  65. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js +1 -0
  66. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
  67. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js +5 -7
  68. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js.map +1 -1
  69. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +23 -6
  70. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
  71. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +39 -34
  72. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
  73. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +10 -3
  74. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
  75. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +1 -1
  76. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  77. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +1 -1
  78. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
  79. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +4 -2
  80. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  81. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +2 -0
  82. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  83. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +2 -0
  84. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  85. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +2 -0
  86. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  87. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +2 -0
  88. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  89. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +2 -0
  90. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  91. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.d.ts +3 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js +31 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js.map +1 -0
  94. package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js +3 -2
  95. package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js.map +1 -1
  96. package/dist/esm/pipeline/spec/table/pipeline/table.js +3 -2
  97. package/dist/esm/pipeline/spec/table/pipeline/table.js.map +1 -1
  98. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.d.ts +2 -0
  99. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js +14 -0
  100. package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js.map +1 -0
  101. package/dist/esm/pipeline/spec/table/pipes/cellStyle/index.d.ts +2 -0
  102. package/dist/esm/pipeline/spec/table/pipes/cellStyle/index.js +2 -0
  103. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.d.ts +2 -0
  104. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js +49 -0
  105. package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js.map +1 -0
  106. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.d.ts +2 -0
  107. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js +41 -0
  108. package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js.map +1 -0
  109. package/dist/esm/pipeline/spec/table/pipes/index.d.ts +1 -0
  110. package/dist/esm/pipeline/spec/table/pipes/index.js +1 -0
  111. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js +13 -3
  112. package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
  113. package/dist/esm/pipeline/utils/constant.d.ts +3 -1
  114. package/dist/esm/pipeline/utils/constant.js +4 -2
  115. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  116. package/dist/esm/pipeline/utils/measures/depth.js.map +1 -1
  117. package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
  118. package/dist/esm/pipeline/utils/tree/traverse.d.ts +1 -11
  119. package/dist/esm/pipeline/utils/tree/traverse.js +3 -4
  120. package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
  121. package/dist/esm/theme/common/axes.js +2 -2
  122. package/dist/esm/theme/common/axes.js.map +1 -1
  123. package/dist/esm/theme/common/table.d.ts +30 -22
  124. package/dist/esm/theme/common/table.js +12 -2
  125. package/dist/esm/theme/common/table.js.map +1 -1
  126. package/dist/esm/theme/common/tooltip.d.ts +3 -2
  127. package/dist/esm/theme/common/tooltip.js +24 -2
  128. package/dist/esm/theme/common/tooltip.js.map +1 -1
  129. package/dist/esm/theme/dark/dark.js +2 -2
  130. package/dist/esm/theme/dark/dark.js.map +1 -1
  131. package/dist/esm/theme/light/light.js +2 -2
  132. package/dist/esm/theme/light/light.js.map +1 -1
  133. package/dist/esm/types/advancedVSeed.d.ts +3442 -0
  134. package/dist/esm/types/advancedVSeed.js +2 -0
  135. package/dist/esm/types/advancedVSeed.js.map +1 -1
  136. package/dist/esm/types/chartType/area/zArea.d.ts +80 -0
  137. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +80 -0
  138. package/dist/esm/types/chartType/bar/zBar.d.ts +80 -0
  139. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +80 -0
  140. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +80 -0
  141. package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +80 -0
  142. package/dist/esm/types/chartType/column/zColumn.d.ts +82 -0
  143. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +80 -0
  144. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +80 -0
  145. package/dist/esm/types/chartType/donut/zDonut.d.ts +80 -0
  146. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +80 -0
  147. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +80 -0
  148. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +80 -0
  149. package/dist/esm/types/chartType/histogram/histogram.d.ts +2 -2
  150. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +88 -4
  151. package/dist/esm/types/chartType/histogram/zHistogram.js +2 -2
  152. package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
  153. package/dist/esm/types/chartType/line/zLine.d.ts +80 -0
  154. package/dist/esm/types/chartType/pie/zPie.d.ts +80 -0
  155. package/dist/esm/types/chartType/pivotTable/pivotTable.d.ts +5 -1
  156. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +76 -0
  157. package/dist/esm/types/chartType/pivotTable/zPivotTable.js +2 -1
  158. package/dist/esm/types/chartType/pivotTable/zPivotTable.js.map +1 -1
  159. package/dist/esm/types/chartType/radar/zRadar.d.ts +80 -0
  160. package/dist/esm/types/chartType/rose/zRose.d.ts +80 -0
  161. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +80 -0
  162. package/dist/esm/types/chartType/scatter/zScatter.d.ts +88 -0
  163. package/dist/esm/types/chartType/table/table.d.ts +5 -1
  164. package/dist/esm/types/chartType/table/zTable.d.ts +76 -0
  165. package/dist/esm/types/chartType/table/zTable.js +2 -1
  166. package/dist/esm/types/chartType/table/zTable.js.map +1 -1
  167. package/dist/esm/types/properties/cellStyle/bodyCellStyle.d.ts +138 -0
  168. package/dist/esm/types/properties/cellStyle/bodyCellStyle.js +16 -0
  169. package/dist/esm/types/properties/cellStyle/bodyCellStyle.js.map +1 -0
  170. package/dist/esm/types/properties/cellStyle/cellStyle.d.ts +80 -0
  171. package/dist/esm/types/properties/cellStyle/cellStyle.js +8 -0
  172. package/dist/esm/types/properties/cellStyle/cellStyle.js.map +1 -0
  173. package/dist/esm/types/properties/cellStyle/index.d.ts +1 -0
  174. package/dist/esm/types/properties/cellStyle/index.js +1 -0
  175. package/dist/esm/types/properties/config/area.d.ts +164 -0
  176. package/dist/esm/types/properties/config/bar.d.ts +246 -0
  177. package/dist/esm/types/properties/config/boxplot.d.ts +82 -0
  178. package/dist/esm/types/properties/config/column.d.ts +258 -0
  179. package/dist/esm/types/properties/config/config.d.ts +1676 -0
  180. package/dist/esm/types/properties/config/dualAxis.d.ts +82 -0
  181. package/dist/esm/types/properties/config/funnel.d.ts +82 -0
  182. package/dist/esm/types/properties/config/heatmap.d.ts +82 -0
  183. package/dist/esm/types/properties/config/histogram.d.ts +94 -0
  184. package/dist/esm/types/properties/config/label/label.d.ts +5 -0
  185. package/dist/esm/types/properties/config/label/zLabel.d.ts +69 -0
  186. package/dist/esm/types/properties/config/label/zLabel.js +6 -1
  187. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  188. package/dist/esm/types/properties/config/label/zPieLabel.d.ts +69 -0
  189. package/dist/esm/types/properties/config/line.d.ts +82 -0
  190. package/dist/esm/types/properties/config/pie.d.ts +246 -0
  191. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.d.ts +2 -0
  192. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js +3 -1
  193. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -1
  194. package/dist/esm/types/properties/config/rose.d.ts +164 -0
  195. package/dist/esm/types/properties/config/scatter.d.ts +94 -0
  196. package/dist/esm/types/properties/config/tooltip/tooltip.d.ts +12 -0
  197. package/dist/esm/types/properties/config/tooltip/tooltip.js +12 -1
  198. package/dist/esm/types/properties/config/tooltip/tooltip.js.map +1 -1
  199. package/dist/esm/types/properties/index.d.ts +1 -0
  200. package/dist/esm/types/properties/index.js +1 -0
  201. package/dist/esm/types/properties/markStyle/barStyle.d.ts +5 -0
  202. package/dist/esm/types/properties/markStyle/barStyle.js.map +1 -1
  203. package/dist/esm/types/properties/regressionLine/ecdfRegressionLine.d.ts +4 -0
  204. package/dist/esm/types/properties/regressionLine/kdeRegressionLine.d.ts +4 -0
  205. package/dist/esm/types/properties/regressionLine/zRegressionLine.d.ts +18 -0
  206. package/dist/esm/types/properties/regressionLine/zRegressionLine.js +1 -0
  207. package/dist/esm/types/properties/regressionLine/zRegressionLine.js.map +1 -1
  208. package/dist/esm/types/properties/theme/customTheme.d.ts +3352 -0
  209. package/dist/esm/types/zVseed.d.ts +1890 -124
  210. package/dist/umd/index.js +726 -349
  211. package/dist/umd/index.js.map +1 -1
  212. package/package.json +3 -3
  213. package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureName.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import { isNullish, pipe, uniqueBy } from "remeda";
2
2
  import { BinEndMeasureId, BinStartMeasureId, ColorEncoding, FoldMeasureValue, XEncoding } from "../../../../../dataReshape/index.js";
3
+ import { getTooltipStyle } from "./tooltipStyle.js";
3
4
  const VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE';
4
5
  const tooltipHistogram = (spec, context)=>{
5
6
  const result = {
@@ -13,6 +14,7 @@ const tooltipHistogram = (spec, context)=>{
13
14
  } } = baseConfig;
14
15
  const { enable } = tooltip;
15
16
  result.tooltip = {
17
+ style: getTooltipStyle(tooltip),
16
18
  visible: enable,
17
19
  mark: {
18
20
  title: {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.ts"],"sourcesContent":["import { pipe, uniqueBy, isNullish } from 'remeda'\nimport type { Dimension, Dimensions, Encoding, Spec, SpecPipe, Tooltip } from 'src/types'\nimport type { Datum, ISpec, ITooltipLinePattern } from '@visactor/vchart'\nimport { BinEndMeasureId, BinStartMeasureId, ColorEncoding, FoldMeasureValue, XEncoding } from 'src/dataReshape'\n\nconst VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE'\n\nexport const tooltipHistogram: SpecPipe = (spec, context): Partial<Spec> => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n result.tooltip = {\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n },\n dimension: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n },\n }\n return result as unknown as ISpec\n}\n\nconst createMarkContent = (tooltip: string[], dimensions: Dimensions, encoding: Encoding) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Dimension) => item.id),\n uniqueBy((item: Dimension) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias ?? item.id,\n value: (datum: Datum | undefined) => {\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n if (encoding.color?.includes(item.id)) {\n return datum?.[ColorEncoding] as string\n }\n if (encoding.x?.includes(item.id)) {\n return datum?.[XEncoding] as string\n }\n }\n\n return datum?.[item.id] as string\n },\n }))\n\n const defaultContent = [\n {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return `${datum[BinStartMeasureId]} ~ ${datum[BinEndMeasureId]}`\n },\n value: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return datum[FoldMeasureValue] as string | number\n },\n },\n ]\n\n return [...dimContent, defaultContent] as ITooltipLinePattern[]\n}\n"],"names":["VCHART_OUTLIER_KEY","tooltipHistogram","spec","context","result","advancedVSeed","chartType","dimensions","encoding","baseConfig","tooltip","enable","createMarkContent","dims","pipe","item","uniqueBy","dimContent","datum","isNullish","ColorEncoding","XEncoding","defaultContent","BinStartMeasureId","BinEndMeasureId","FoldMeasureValue"],"mappings":";;AAKA,MAAMA,qBAAqB;AAEpB,MAAMC,mBAA6B,CAACC,MAAMC;IAC/C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;IAC5C,MAAMI,aAAaJ,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;IAEnBN,OAAO,OAAO,GAAG;QACf,SAASO;QACT,MAAM;YACJ,OAAO;gBACL,SAAS;YACX;YACA,SAASC,kBAAkBJ,SAAS,OAAO,IAAI,EAAE,EAAED,YAAYC;QACjE;QACA,WAAW;YACT,OAAO;gBACL,SAAS;YACX;YACA,SAASI,kBAAkBJ,SAAS,OAAO,IAAI,EAAE,EAAED,YAAYC;QACjE;IACF;IACA,OAAOJ;AACT;AAEA,MAAMQ,oBAAoB,CAACF,SAAmBH,YAAwBC;IACpE,MAAMK,OAAOC,KACXP,WAAW,MAAM,CAAC,CAACQ,OAASL,QAAQ,QAAQ,CAACK,KAAK,EAAE,IACpDC,SAAS,CAACD,OAAoBA,KAAK,EAAE,GACrCC,SAAS,CAACD,OAAoBA,KAAK,KAAK;IAG1C,MAAME,aAAaJ,KAAK,GAAG,CAAC,CAACE,OAAqB;YAChD,SAAS;YACT,UAAU;YACV,WAAW;YACX,KAAKA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAC1B,OAAO,CAACG;gBACN,IAAI,CAACC,UAAUD,OAAO,CAAClB,mBAAmB,GAAG;oBAC3C,IAAIQ,SAAS,KAAK,EAAE,SAASO,KAAK,EAAE,GAClC,OAAOG,OAAO,CAACE,cAAc;oBAE/B,IAAIZ,SAAS,CAAC,EAAE,SAASO,KAAK,EAAE,GAC9B,OAAOG,OAAO,CAACG,UAAU;gBAE7B;gBAEA,OAAOH,OAAO,CAACH,KAAK,EAAE,CAAC;YACzB;QACF;IAEA,MAAMO,iBAAiB;QACrB;YACE,SAAS;YACT,UAAU;YACV,WAAW;YACX,KAAK,CAACJ;gBACJ,IAAI,CAACA,OACH,OAAO;gBAET,OAAO,GAAGA,KAAK,CAACK,kBAAkB,CAAC,GAAG,EAAEL,KAAK,CAACM,gBAAgB,EAAE;YAClE;YACA,OAAO,CAACN;gBACN,IAAI,CAACA,OACH,OAAO;gBAET,OAAOA,KAAK,CAACO,iBAAiB;YAChC;QACF;KACD;IAED,OAAO;WAAIR;QAAYK;KAAe;AACxC"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.ts"],"sourcesContent":["import { pipe, uniqueBy, isNullish } from 'remeda'\nimport type { Dimension, Dimensions, Encoding, Spec, SpecPipe, Tooltip } from 'src/types'\nimport type { Datum, ISpec, ITooltipLinePattern } from '@visactor/vchart'\nimport { BinEndMeasureId, BinStartMeasureId, ColorEncoding, FoldMeasureValue, XEncoding } from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\n\nconst VCHART_OUTLIER_KEY = '__VCHART_BOX_PLOT_OUTLIER_VALUE'\n\nexport const tooltipHistogram: SpecPipe = (spec, context): Partial<Spec> => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n visible: enable,\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n },\n dimension: {\n title: {\n visible: false,\n },\n content: createMarkContent(encoding.tooltip || [], dimensions, encoding as Encoding),\n },\n }\n return result as unknown as ISpec\n}\n\nconst createMarkContent = (tooltip: string[], dimensions: Dimensions, encoding: Encoding) => {\n const dims = pipe(\n dimensions.filter((item) => tooltip.includes(item.id)),\n uniqueBy((item: Dimension) => item.id),\n uniqueBy((item: Dimension) => item.alias),\n )\n\n const dimContent = dims.map((item: Dimension) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias ?? item.id,\n value: (datum: Datum | undefined) => {\n if (!isNullish(datum?.[VCHART_OUTLIER_KEY])) {\n if (encoding.color?.includes(item.id)) {\n return datum?.[ColorEncoding] as string\n }\n if (encoding.x?.includes(item.id)) {\n return datum?.[XEncoding] as string\n }\n }\n\n return datum?.[item.id] as string\n },\n }))\n\n const defaultContent = [\n {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return `${datum[BinStartMeasureId]} ~ ${datum[BinEndMeasureId]}`\n },\n value: (datum: Datum | undefined) => {\n if (!datum) {\n return ''\n }\n return datum[FoldMeasureValue] as string | number\n },\n },\n ]\n\n return [...dimContent, defaultContent] as ITooltipLinePattern[]\n}\n"],"names":["VCHART_OUTLIER_KEY","tooltipHistogram","spec","context","result","advancedVSeed","chartType","dimensions","encoding","baseConfig","tooltip","enable","getTooltipStyle","createMarkContent","dims","pipe","item","uniqueBy","dimContent","datum","isNullish","ColorEncoding","XEncoding","defaultContent","BinStartMeasureId","BinEndMeasureId","FoldMeasureValue"],"mappings":";;;AAMA,MAAMA,qBAAqB;AAEpB,MAAMC,mBAA6B,CAACC,MAAMC;IAC/C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAE,GAAGH;IAC5C,MAAMI,aAAaJ,cAAc,MAAM,CAACC,UAAU;IAClD,MAAM,EAAEI,UAAU;QAAE,QAAQ;IAAK,CAAC,EAAE,GAAGD;IACvC,MAAM,EAAEE,MAAM,EAAE,GAAGD;IAEnBN,OAAO,OAAO,GAAG;QACf,OAAOQ,gBAAgBF;QACvB,SAASC;QACT,MAAM;YACJ,OAAO;gBACL,SAAS;YACX;YACA,SAASE,kBAAkBL,SAAS,OAAO,IAAI,EAAE,EAAED,YAAYC;QACjE;QACA,WAAW;YACT,OAAO;gBACL,SAAS;YACX;YACA,SAASK,kBAAkBL,SAAS,OAAO,IAAI,EAAE,EAAED,YAAYC;QACjE;IACF;IACA,OAAOJ;AACT;AAEA,MAAMS,oBAAoB,CAACH,SAAmBH,YAAwBC;IACpE,MAAMM,OAAOC,KACXR,WAAW,MAAM,CAAC,CAACS,OAASN,QAAQ,QAAQ,CAACM,KAAK,EAAE,IACpDC,SAAS,CAACD,OAAoBA,KAAK,EAAE,GACrCC,SAAS,CAACD,OAAoBA,KAAK,KAAK;IAG1C,MAAME,aAAaJ,KAAK,GAAG,CAAC,CAACE,OAAqB;YAChD,SAAS;YACT,UAAU;YACV,WAAW;YACX,KAAKA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAC1B,OAAO,CAACG;gBACN,IAAI,CAACC,UAAUD,OAAO,CAACnB,mBAAmB,GAAG;oBAC3C,IAAIQ,SAAS,KAAK,EAAE,SAASQ,KAAK,EAAE,GAClC,OAAOG,OAAO,CAACE,cAAc;oBAE/B,IAAIb,SAAS,CAAC,EAAE,SAASQ,KAAK,EAAE,GAC9B,OAAOG,OAAO,CAACG,UAAU;gBAE7B;gBAEA,OAAOH,OAAO,CAACH,KAAK,EAAE,CAAC;YACzB;QACF;IAEA,MAAMO,iBAAiB;QACrB;YACE,SAAS;YACT,UAAU;YACV,WAAW;YACX,KAAK,CAACJ;gBACJ,IAAI,CAACA,OACH,OAAO;gBAET,OAAO,GAAGA,KAAK,CAACK,kBAAkB,CAAC,GAAG,EAAEL,KAAK,CAACM,gBAAgB,EAAE;YAClE;YACA,OAAO,CAACN;gBACN,IAAI,CAACA,OACH,OAAO;gBAET,OAAOA,KAAK,CAACO,iBAAiB;YAChC;QACF;KACD;IAED,OAAO;WAAIR;QAAYK;KAAe;AACxC"}
@@ -1,6 +1,7 @@
1
1
  import { uniqueBy } from "remeda";
2
2
  import { createFormatterByMeasure, findAllMeasures, findMeasureById } from "../../../../utils/index.js";
3
3
  import { ORIGINAL_DATA } from "../../../../../dataReshape/index.js";
4
+ import { getTooltipStyle } from "./tooltipStyle.js";
4
5
  const tooltipScatter = (spec, context)=>{
5
6
  const result = {
6
7
  ...spec
@@ -14,6 +15,7 @@ const tooltipScatter = (spec, context)=>{
14
15
  const { enable } = tooltip;
15
16
  const { foldInfoList } = datasetReshapeInfo[0];
16
17
  result.tooltip = {
18
+ style: getTooltipStyle(tooltip),
17
19
  visible: enable,
18
20
  mark: {
19
21
  title: {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n locale,\n foldInfoList,\n ),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = uniqueBy(\n dimensions.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n const meas = uniqueBy(\n measures.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: Object.values(foldInfo.foldMap)[0],\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n })\n return [...dimContent, ...foldMeaContent, ...meaContent]\n}\n"],"names":["tooltipScatter","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","locale","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","createMarkContent","findAllMeasures","measures","dims","uniqueBy","item","meas","dimContent","v","datum","meaContent","id","ORIGINAL_DATA","originalData","value","measure","findMeasureById","formatter","createFormatterByMeasure","foldMeaContent","foldInfo","Object","measureId","measureValue"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipScatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipScatter.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { createFormatterByMeasure, findAllMeasures, findMeasureById } from '../../../../utils'\nimport type { Datum, Dimensions, FoldInfo, Locale, Measures, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\nimport { ORIGINAL_DATA } from 'src/dataReshape'\nimport { getTooltipStyle } from './tooltipStyle'\n\nexport const tooltipScatter: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n const { foldInfoList } = datasetReshapeInfo[0] as unknown as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n result.tooltip = {\n style: getTooltipStyle(tooltip),\n visible: enable,\n\n mark: {\n title: {\n visible: false,\n },\n content: createMarkContent(\n encoding.tooltip || [],\n dimensions,\n findAllMeasures(vseed.measures),\n locale,\n foldInfoList,\n ),\n },\n dimension: {\n visible: false,\n },\n }\n return result\n}\n\nexport const createMarkContent = (\n tooltip: string[],\n dimensions: Dimensions,\n measures: Measures,\n locale: Locale,\n foldInfoList: FoldInfo[],\n) => {\n const dims = uniqueBy(\n dimensions.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n const meas = uniqueBy(\n measures.filter((item) => tooltip.includes(item.id)),\n (item) => item.id,\n )\n\n const dimContent = dims.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (v: unknown) => {\n const datum = v as Datum\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return datum && (datum[item.id] as string)\n },\n value: (v: unknown) => {\n const datum = v as Datum\n return datum && (datum[item.id] as string)\n },\n }))\n\n const meaContent = meas.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: item.alias || item.id,\n value: (v: unknown) => {\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const id = item.id\n if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) {\n return ''\n }\n const originalData = datum[ORIGINAL_DATA] as Datum\n const value = originalData[id] as string | number\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }))\n\n const foldMeaContent = foldInfoList.map((foldInfo) => {\n return {\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: Object.values(foldInfo.foldMap)[0],\n value: (v: unknown) => {\n const { measureId, measureValue } = foldInfo\n\n const datum = v as Datum\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n const formatter = createFormatterByMeasure(measure)\n return formatter(value)\n },\n }\n })\n return [...dimContent, ...foldMeaContent, ...meaContent]\n}\n"],"names":["tooltipScatter","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","locale","dimensions","encoding","baseConfig","tooltip","enable","foldInfoList","getTooltipStyle","createMarkContent","findAllMeasures","measures","dims","uniqueBy","item","meas","dimContent","v","datum","meaContent","id","ORIGINAL_DATA","originalData","value","measure","findMeasureById","formatter","createFormatterByMeasure","foldMeaContent","foldInfo","Object","measureId","measureValue"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ITooltipSpec } from '@visactor/vchart';
2
+ import type { TooltipConfig } from '../../../../../types/properties';
3
+ export declare const getTooltipStyle: (tooltipConfig: TooltipConfig) => ITooltipSpec["style"];
@@ -0,0 +1,31 @@
1
+ const getTooltipStyle = (tooltipConfig)=>({
2
+ panel: {
3
+ padding: tooltipConfig.padding,
4
+ border: {
5
+ radius: tooltipConfig.borderRadius,
6
+ width: tooltipConfig.borderWidth,
7
+ color: tooltipConfig.borderColor
8
+ },
9
+ backgroundColor: tooltipConfig.backgroundColor
10
+ },
11
+ keyLabel: {
12
+ lineHeight: tooltipConfig.lineHeight,
13
+ fontSize: tooltipConfig.fontSize,
14
+ fontColor: tooltipConfig.keyColor
15
+ },
16
+ valueLabel: {
17
+ lineHeight: tooltipConfig.lineHeight,
18
+ fontSize: tooltipConfig.fontSize,
19
+ fontColor: tooltipConfig.valueColor,
20
+ fontWeight: 'medium'
21
+ },
22
+ titleLabel: {
23
+ fontSize: tooltipConfig.fontSize,
24
+ lineHeight: tooltipConfig.lineHeight,
25
+ fontColor: tooltipConfig.titleColor,
26
+ fontWeight: 'bold'
27
+ }
28
+ });
29
+ export { getTooltipStyle };
30
+
31
+ //# sourceMappingURL=tooltipStyle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/tooltip/tooltipStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipStyle.ts"],"sourcesContent":["import type { ITooltipSpec } from '@visactor/vchart'\nimport type { TooltipConfig } from 'src/types/properties'\n\nexport const getTooltipStyle = (tooltipConfig: TooltipConfig) => {\n return {\n panel: {\n padding: tooltipConfig.padding,\n border: {\n radius: tooltipConfig.borderRadius,\n width: tooltipConfig.borderWidth,\n color: tooltipConfig.borderColor,\n },\n backgroundColor: tooltipConfig.backgroundColor,\n },\n keyLabel: {\n lineHeight: tooltipConfig.lineHeight,\n fontSize: tooltipConfig.fontSize,\n fontColor: tooltipConfig.keyColor,\n },\n valueLabel: {\n lineHeight: tooltipConfig.lineHeight,\n fontSize: tooltipConfig.fontSize,\n fontColor: tooltipConfig.valueColor,\n fontWeight: 'medium',\n },\n titleLabel: {\n fontSize: tooltipConfig.fontSize,\n lineHeight: tooltipConfig.lineHeight,\n fontColor: tooltipConfig.titleColor,\n fontWeight: 'bold',\n },\n } as ITooltipSpec['style']\n}\n"],"names":["getTooltipStyle","tooltipConfig"],"mappings":"AAGO,MAAMA,kBAAkB,CAACC,gBACvB;QACL,OAAO;YACL,SAASA,cAAc,OAAO;YAC9B,QAAQ;gBACN,QAAQA,cAAc,YAAY;gBAClC,OAAOA,cAAc,WAAW;gBAChC,OAAOA,cAAc,WAAW;YAClC;YACA,iBAAiBA,cAAc,eAAe;QAChD;QACA,UAAU;YACR,YAAYA,cAAc,UAAU;YACpC,UAAUA,cAAc,QAAQ;YAChC,WAAWA,cAAc,QAAQ;QACnC;QACA,YAAY;YACV,YAAYA,cAAc,UAAU;YACpC,UAAUA,cAAc,QAAQ;YAChC,WAAWA,cAAc,UAAU;YACnC,YAAY;QACd;QACA,YAAY;YACV,UAAUA,cAAc,QAAQ;YAChC,YAAYA,cAAc,UAAU;YACpC,WAAWA,cAAc,UAAU;YACnC,YAAY;QACd;IACF"}
@@ -1,4 +1,4 @@
1
- import { bodyStyle, cornerHeaderStyle, frameStyle, headerStyle, initPivotTable, pivotColumns, pivotIndicators, pivotRows, rowHeaderStyle, selectionStyle, titleOnDimension } from "../pipes/index.js";
1
+ import { bodyStyle, cornerHeaderStyle, frameStyle, headerStyle, initPivotTable, pivotColumns, pivotIndicators, pivotRows, pivotTableBodyCell, rowHeaderStyle, selectionStyle, titleOnDimension } from "../pipes/index.js";
2
2
  import { dataConfig } from "../pipes/indicators/pivotDataConfig.js";
3
3
  const pivotTableSpecPipeline = [
4
4
  initPivotTable,
@@ -12,7 +12,8 @@ const pivotTableSpecPipeline = [
12
12
  cornerHeaderStyle,
13
13
  frameStyle,
14
14
  selectionStyle,
15
- dataConfig
15
+ dataConfig,
16
+ pivotTableBodyCell
16
17
  ];
17
18
  export { pivotTableSpecPipeline };
18
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipeline/pivotTable.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/pivotTable.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n titleOnDimension,\n} from '../pipes'\nimport { dataConfig } from '../pipes/indicators/pivotDataConfig'\n\nexport const pivotTableSpecPipeline: SpecPipeline = [\n initPivotTable,\n pivotColumns,\n pivotRows,\n titleOnDimension,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n dataConfig,\n]\n"],"names":["pivotTableSpecPipeline","initPivotTable","pivotColumns","pivotRows","titleOnDimension","pivotIndicators","bodyStyle","headerStyle","rowHeaderStyle","cornerHeaderStyle","frameStyle","selectionStyle","dataConfig"],"mappings":";;AAgBO,MAAMA,yBAAuC;IAClDC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
1
+ {"version":3,"file":"pipeline/spec/table/pipeline/pivotTable.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/pivotTable.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n titleOnDimension,\n pivotTableBodyCell,\n} from '../pipes'\nimport { dataConfig } from '../pipes/indicators/pivotDataConfig'\n\nexport const pivotTableSpecPipeline: SpecPipeline = [\n initPivotTable,\n pivotColumns,\n pivotRows,\n titleOnDimension,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n dataConfig,\n pivotTableBodyCell,\n]\n"],"names":["pivotTableSpecPipeline","initPivotTable","pivotColumns","pivotRows","titleOnDimension","pivotIndicators","bodyStyle","headerStyle","rowHeaderStyle","cornerHeaderStyle","frameStyle","selectionStyle","dataConfig","pivotTableBodyCell"],"mappings":";;AAiBO,MAAMA,yBAAuC;IAClDC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
@@ -1,4 +1,4 @@
1
- import { bodyStyle, dimensionTreeToColumns, frameStyle, headerStyle, initTable, measureTreeToColumns, selectionStyle } from "../pipes/index.js";
1
+ import { bodyStyle, dimensionTreeToColumns, frameStyle, headerStyle, initTable, measureTreeToColumns, selectionStyle, tableBodyCell } from "../pipes/index.js";
2
2
  const tableSpecPipeline = [
3
3
  initTable,
4
4
  dimensionTreeToColumns,
@@ -6,7 +6,8 @@ const tableSpecPipeline = [
6
6
  bodyStyle,
7
7
  headerStyle,
8
8
  frameStyle,
9
- selectionStyle
9
+ selectionStyle,
10
+ tableBodyCell
10
11
  ];
11
12
  export { tableSpecPipeline };
12
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipeline/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/table.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n} from '../pipes'\n\nexport const tableSpecPipeline: SpecPipeline = [\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n]\n"],"names":["tableSpecPipeline","initTable","dimensionTreeToColumns","measureTreeToColumns","bodyStyle","headerStyle","frameStyle","selectionStyle"],"mappings":";AAWO,MAAMA,oBAAkC;IAC7CC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
1
+ {"version":3,"file":"pipeline/spec/table/pipeline/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/table.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n tableBodyCell,\n} from '../pipes'\n\nexport const tableSpecPipeline: SpecPipeline = [\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n tableBodyCell,\n]\n"],"names":["tableSpecPipeline","initTable","dimensionTreeToColumns","measureTreeToColumns","bodyStyle","headerStyle","frameStyle","selectionStyle","tableBodyCell"],"mappings":";AAYO,MAAMA,oBAAkC;IAC7CC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
@@ -0,0 +1,2 @@
1
+ import type { BodyCellStyle } from '../../../../../types';
2
+ export declare const pickBodyCellStyle: (bodyCellStyle: BodyCellStyle) => Record<string, any>;
@@ -0,0 +1,14 @@
1
+ const tableStyleMap = {
2
+ backgroundColor: 'bgColor',
3
+ textColor: 'color',
4
+ textFontSize: 'fontSize',
5
+ borderColor: 'borderColor',
6
+ borderLineWidth: 'borderLineWidth'
7
+ };
8
+ const pickBodyCellStyle = (bodyCellStyle)=>Object.keys(tableStyleMap).reduce((acc, key)=>{
9
+ if (key in bodyCellStyle) acc[tableStyleMap[key]] = bodyCellStyle[key];
10
+ return acc;
11
+ }, {});
12
+ export { pickBodyCellStyle };
13
+
14
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/table/pipes/cellStyle/common.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/common.ts"],"sourcesContent":["import type { BodyCellStyle } from 'src/types'\n\nconst tableStyleMap = {\n backgroundColor: 'bgColor',\n textColor: 'color',\n textFontSize: 'fontSize',\n borderColor: 'borderColor',\n borderLineWidth: 'borderLineWidth',\n}\n\nexport const pickBodyCellStyle = (bodyCellStyle: BodyCellStyle) => {\n return (Object.keys(tableStyleMap) as Array<keyof typeof tableStyleMap>).reduce<Record<string, any>>((acc, key) => {\n if (key in bodyCellStyle) {\n acc[tableStyleMap[key]] = bodyCellStyle[key]\n }\n\n return acc\n }, {})\n}\n"],"names":["tableStyleMap","pickBodyCellStyle","bodyCellStyle","Object","acc","key"],"mappings":"AAEA,MAAMA,gBAAgB;IACpB,iBAAiB;IACjB,WAAW;IACX,cAAc;IACd,aAAa;IACb,iBAAiB;AACnB;AAEO,MAAMC,oBAAoB,CAACC,gBACxBC,OAAO,IAAI,CAACH,eAAqD,MAAM,CAAsB,CAACI,KAAKC;QACzG,IAAIA,OAAOH,eACTE,GAAG,CAACJ,aAAa,CAACK,IAAI,CAAC,GAAGH,aAAa,CAACG,IAAI;QAG9C,OAAOD;IACT,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './table';
2
+ export * from './pivot';
@@ -0,0 +1,2 @@
1
+ export * from "./table.js";
2
+ export * from "./pivot.js";
@@ -0,0 +1,2 @@
1
+ import type { SpecPipe } from '../../../../../types';
2
+ export declare const pivotTableBodyCell: SpecPipe;
@@ -0,0 +1,49 @@
1
+ import { array } from "@visactor/vutils";
2
+ import { isNullish, isString } from "remeda";
3
+ import { selector } from "../../../../../dataSelector/selector.js";
4
+ import { pickBodyCellStyle } from "./common.js";
5
+ import { FoldMeasureValue, MeasureId } from "../../../../../dataReshape/index.js";
6
+ const pivotTableBodyCell = (spec, context)=>{
7
+ const { advancedVSeed } = context;
8
+ const { cellStyle } = advancedVSeed;
9
+ const bodyCellStyle = cellStyle?.bodyCellStyle;
10
+ if (!bodyCellStyle) return spec;
11
+ const bodyCellStyleList = array(bodyCellStyle);
12
+ const indicators = spec.indicators || [];
13
+ const newIndicators = indicators.map((ind)=>{
14
+ const newInd = isString(ind) ? {
15
+ indicatorKey: ind
16
+ } : ind;
17
+ const { indicatorKey } = newInd;
18
+ newInd.style = (datum)=>{
19
+ const { dataValue, cellHeaderPaths } = datum;
20
+ const headerPaths = [
21
+ ...cellHeaderPaths.colHeaderPaths,
22
+ ...cellHeaderPaths.rowHeaderPaths
23
+ ];
24
+ const originalDatum = {
25
+ [indicatorKey]: dataValue
26
+ };
27
+ headerPaths.forEach((path)=>{
28
+ if (path.dimensionKey) originalDatum[path.dimensionKey] = path.value;
29
+ });
30
+ if (!isNullish(originalDatum[MeasureId]) && !isNullish(originalDatum[FoldMeasureValue])) originalDatum[originalDatum[MeasureId]] = originalDatum[FoldMeasureValue];
31
+ const mergedStyle = bodyCellStyleList.reduce((result, style)=>{
32
+ if (selector(originalDatum, style.selector)) return {
33
+ ...result,
34
+ ...pickBodyCellStyle(style)
35
+ };
36
+ return result;
37
+ }, {});
38
+ return mergedStyle;
39
+ };
40
+ return newInd;
41
+ });
42
+ return {
43
+ ...spec,
44
+ indicators: newIndicators
45
+ };
46
+ };
47
+ export { pivotTableBodyCell };
48
+
49
+ //# sourceMappingURL=pivot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/table/pipes/cellStyle/pivot.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/pivot.ts"],"sourcesContent":["import type { IIndicator, PivotTableConstructorOptions } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isString } from 'remeda'\nimport { selector } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, Datum, SpecPipe } from 'src/types'\nimport { pickBodyCellStyle } from './common'\nimport { FoldMeasureValue, MeasureId } from 'src/dataReshape'\n\nexport const pivotTableBodyCell: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { cellStyle } = advancedVSeed\n const bodyCellStyle = cellStyle?.bodyCellStyle\n\n if (!bodyCellStyle) {\n return spec as PivotTableConstructorOptions\n }\n const bodyCellStyleList = array(bodyCellStyle) as BodyCellStyle[]\n const indicators = (spec as PivotTableConstructorOptions).indicators || []\n\n const newIndicators = indicators.map((ind) => {\n const newInd = isString(ind)\n ? ({\n indicatorKey: ind,\n } as IIndicator)\n : ind\n\n const { indicatorKey } = newInd\n\n newInd.style = (datum: any) => {\n const { dataValue, cellHeaderPaths } = datum\n const headerPaths = [...cellHeaderPaths.colHeaderPaths, ...cellHeaderPaths.rowHeaderPaths]\n\n const originalDatum: Datum = {\n [indicatorKey]: dataValue,\n }\n\n headerPaths.forEach((path: any) => {\n if (path.dimensionKey) {\n originalDatum[path.dimensionKey] = path.value\n }\n })\n\n if (!isNullish(originalDatum[MeasureId]) && !isNullish(originalDatum[FoldMeasureValue])) {\n originalDatum[originalDatum[MeasureId]] = originalDatum[FoldMeasureValue]\n }\n\n const mergedStyle = bodyCellStyleList.reduce<Record<string, any>>((result, style) => {\n if (selector(originalDatum, style.selector)) {\n return {\n ...result,\n ...pickBodyCellStyle(style),\n }\n }\n\n return result\n }, {})\n\n return mergedStyle\n }\n return newInd\n })\n return {\n ...spec,\n indicators: newIndicators,\n } as PivotTableConstructorOptions\n}\n"],"names":["pivotTableBodyCell","spec","context","advancedVSeed","cellStyle","bodyCellStyle","bodyCellStyleList","array","indicators","newIndicators","ind","newInd","isString","indicatorKey","datum","dataValue","cellHeaderPaths","headerPaths","originalDatum","path","isNullish","MeasureId","FoldMeasureValue","mergedStyle","result","style","selector","pickBodyCellStyle"],"mappings":";;;;;AAQO,MAAMA,qBAA+B,CAACC,MAAMC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,gBAAgBD,WAAW;IAEjC,IAAI,CAACC,eACH,OAAOJ;IAET,MAAMK,oBAAoBC,MAAMF;IAChC,MAAMG,aAAcP,KAAsC,UAAU,IAAI,EAAE;IAE1E,MAAMQ,gBAAgBD,WAAW,GAAG,CAAC,CAACE;QACpC,MAAMC,SAASC,SAASF,OACnB;YACC,cAAcA;QAChB,IACAA;QAEJ,MAAM,EAAEG,YAAY,EAAE,GAAGF;QAEzBA,OAAO,KAAK,GAAG,CAACG;YACd,MAAM,EAAEC,SAAS,EAAEC,eAAe,EAAE,GAAGF;YACvC,MAAMG,cAAc;mBAAID,gBAAgB,cAAc;mBAAKA,gBAAgB,cAAc;aAAC;YAE1F,MAAME,gBAAuB;gBAC3B,CAACL,aAAa,EAAEE;YAClB;YAEAE,YAAY,OAAO,CAAC,CAACE;gBACnB,IAAIA,KAAK,YAAY,EACnBD,aAAa,CAACC,KAAK,YAAY,CAAC,GAAGA,KAAK,KAAK;YAEjD;YAEA,IAAI,CAACC,UAAUF,aAAa,CAACG,UAAU,KAAK,CAACD,UAAUF,aAAa,CAACI,iBAAiB,GACpFJ,aAAa,CAACA,aAAa,CAACG,UAAU,CAAC,GAAGH,aAAa,CAACI,iBAAiB;YAG3E,MAAMC,cAAcjB,kBAAkB,MAAM,CAAsB,CAACkB,QAAQC;gBACzE,IAAIC,SAASR,eAAeO,MAAM,QAAQ,GACxC,OAAO;oBACL,GAAGD,MAAM;oBACT,GAAGG,kBAAkBF,MAAM;gBAC7B;gBAGF,OAAOD;YACT,GAAG,CAAC;YAEJ,OAAOD;QACT;QACA,OAAOZ;IACT;IACA,OAAO;QACL,GAAGV,IAAI;QACP,YAAYQ;IACd;AACF"}
@@ -0,0 +1,2 @@
1
+ import type { SpecPipe } from '../../../../../types';
2
+ export declare const tableBodyCell: SpecPipe;
@@ -0,0 +1,41 @@
1
+ import { array } from "@visactor/vutils";
2
+ import { isNullish, isNumber, isPlainObject, isString } from "remeda";
3
+ import { selector as selector_js_selector } from "../../../../../dataSelector/selector.js";
4
+ import { pickBodyCellStyle } from "./common.js";
5
+ import { preorderTraverse } from "../../../../utils/tree/traverse.js";
6
+ const tableBodyCell = (spec, context)=>{
7
+ const { advancedVSeed } = context;
8
+ const { cellStyle } = advancedVSeed;
9
+ const bodyCellStyle = cellStyle?.bodyCellStyle;
10
+ if (!bodyCellStyle) return spec;
11
+ const bodyCellStyleList = array(bodyCellStyle);
12
+ const columns = spec.columns || [];
13
+ const setStyleOfColumn = (col)=>{
14
+ const field = col.field;
15
+ const matchedStyles = bodyCellStyleList.filter((style)=>{
16
+ if (isNullish(style.selector)) return true;
17
+ const selectors = array(style.selector);
18
+ return selectors.some((selector)=>isPlainObject(selector) ? isNullish(selector.field) || selector.field === field : isNumber(selector) || isString(selector));
19
+ });
20
+ if (!matchedStyles.length) return false;
21
+ col.style = (datum)=>{
22
+ const originalDatum = {
23
+ [field]: datum.dataValue
24
+ };
25
+ const mergedStyle = matchedStyles.reduce((result, style)=>{
26
+ if (selector_js_selector(originalDatum, style.selector)) return {
27
+ ...result,
28
+ ...pickBodyCellStyle(style)
29
+ };
30
+ return result;
31
+ }, {});
32
+ return mergedStyle;
33
+ };
34
+ return false;
35
+ };
36
+ preorderTraverse(columns, setStyleOfColumn, 'columns');
37
+ return spec;
38
+ };
39
+ export { tableBodyCell };
40
+
41
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/table/pipes/cellStyle/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/table.ts"],"sourcesContent":["import type { ListTableConstructorOptions, ColumnDefine } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isNumber, isPlainObject, isString } from 'remeda'\nimport { selector } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, SpecPipe } from 'src/types'\nimport type { MeasureSelector, Selectors } from 'src/types/dataSelector'\nimport { pickBodyCellStyle } from './common'\nimport { preorderTraverse } from 'src/pipeline/utils/tree/traverse'\n\nexport const tableBodyCell: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { cellStyle } = advancedVSeed\n const bodyCellStyle = cellStyle?.bodyCellStyle\n\n if (!bodyCellStyle) {\n return spec as ListTableConstructorOptions\n }\n const bodyCellStyleList = array(bodyCellStyle) as BodyCellStyle[]\n const columns = (spec as ListTableConstructorOptions).columns || []\n const setStyleOfColumn = (col: ColumnDefine) => {\n const field = col.field as string\n const matchedStyles = bodyCellStyleList.filter((style) => {\n if (isNullish(style.selector)) {\n return true\n }\n const selectors = array(style.selector) as Selectors\n\n return selectors.some((selector) => {\n return isPlainObject(selector)\n ? isNullish(selector.field) || (selector as MeasureSelector).field === field\n : isNumber(selector) || isString(selector)\n })\n })\n\n if (!matchedStyles.length) {\n return false\n }\n\n col.style = (datum: any) => {\n const originalDatum = {\n [field]: datum.dataValue,\n }\n\n const mergedStyle = matchedStyles.reduce<Record<string, any>>((result, style) => {\n if (selector(originalDatum, style.selector)) {\n return {\n ...result,\n ...pickBodyCellStyle(style),\n }\n }\n\n return result\n }, {})\n\n return mergedStyle\n }\n return false\n }\n\n preorderTraverse<ColumnDefine, 'columns'>(columns, setStyleOfColumn, 'columns')\n\n return spec as ListTableConstructorOptions\n}\n"],"names":["tableBodyCell","spec","context","advancedVSeed","cellStyle","bodyCellStyle","bodyCellStyleList","array","columns","setStyleOfColumn","col","field","matchedStyles","style","isNullish","selectors","selector","isPlainObject","isNumber","isString","datum","originalDatum","mergedStyle","result","pickBodyCellStyle","preorderTraverse"],"mappings":";;;;;AASO,MAAMA,gBAA0B,CAACC,MAAMC;IAC5C,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,gBAAgBD,WAAW;IAEjC,IAAI,CAACC,eACH,OAAOJ;IAET,MAAMK,oBAAoBC,MAAMF;IAChC,MAAMG,UAAWP,KAAqC,OAAO,IAAI,EAAE;IACnE,MAAMQ,mBAAmB,CAACC;QACxB,MAAMC,QAAQD,IAAI,KAAK;QACvB,MAAME,gBAAgBN,kBAAkB,MAAM,CAAC,CAACO;YAC9C,IAAIC,UAAUD,MAAM,QAAQ,GAC1B,OAAO;YAET,MAAME,YAAYR,MAAMM,MAAM,QAAQ;YAEtC,OAAOE,UAAU,IAAI,CAAC,CAACC,WACdC,cAAcD,YACjBF,UAAUE,SAAS,KAAK,KAAMA,SAA6B,KAAK,KAAKL,QACrEO,SAASF,aAAaG,SAASH;QAEvC;QAEA,IAAI,CAACJ,cAAc,MAAM,EACvB,OAAO;QAGTF,IAAI,KAAK,GAAG,CAACU;YACX,MAAMC,gBAAgB;gBACpB,CAACV,MAAM,EAAES,MAAM,SAAS;YAC1B;YAEA,MAAME,cAAcV,cAAc,MAAM,CAAsB,CAACW,QAAQV;gBACrE,IAAIG,qBAASK,eAAeR,MAAM,QAAQ,GACxC,OAAO;oBACL,GAAGU,MAAM;oBACT,GAAGC,kBAAkBX,MAAM;gBAC7B;gBAGF,OAAOU;YACT,GAAG,CAAC;YAEJ,OAAOD;QACT;QACA,OAAO;IACT;IAEAG,iBAA0CjB,SAASC,kBAAkB;IAErE,OAAOR;AACT"}
@@ -4,3 +4,4 @@ export * from './rows';
4
4
  export * from './indicators';
5
5
  export * from './theme';
6
6
  export * from './corner';
7
+ export * from './cellStyle';
@@ -4,3 +4,4 @@ export * from "./rows/index.js";
4
4
  export * from "./indicators/index.js";
5
5
  export * from "./theme/index.js";
6
6
  export * from "./corner/index.js";
7
+ export * from "./cellStyle/index.js";
@@ -1,15 +1,25 @@
1
+ import { MeasureId } from "../../../../../dataReshape/index.js";
2
+ import { findAllMeasures } from "../../../../utils/measures/find.js";
1
3
  const pivotRows = (spec, context)=>{
2
4
  const { advancedVSeed } = context;
3
5
  const dimensions = advancedVSeed.dimensions;
4
- const { encoding } = advancedVSeed;
6
+ const { encoding, measures } = advancedVSeed;
5
7
  const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
8
+ const allMeasures = findAllMeasures(measures);
6
9
  return {
7
10
  ...spec,
8
- rows: rows.map((item)=>({
11
+ rows: rows.map((item)=>{
12
+ const res = {
9
13
  dimensionKey: item.id,
10
14
  title: item.alias || item.id,
11
15
  width: 'auto'
12
- }))
16
+ };
17
+ if (item.id === MeasureId) res.headerFormat = (measureId)=>{
18
+ const measure = allMeasures.find((m)=>m.id === measureId);
19
+ return measure?.alias ?? measureId;
20
+ };
21
+ return res;
22
+ })
13
23
  };
14
24
  };
15
25
  export { pivotRows };
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRows: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const { encoding } = advancedVSeed\n const rows = dimensions.filter((item) => encoding.row?.includes(item.id))\n\n return {\n ...spec,\n rows: rows.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n }\n}\n"],"names":["pivotRows","spec","context","advancedVSeed","dimensions","encoding","rows","item"],"mappings":"AAEO,MAAMA,YAAsB,CAACC,MAAMC;IACxC,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAaD,cAAc,UAAU;IAC3C,MAAM,EAAEE,QAAQ,EAAE,GAAGF;IACrB,MAAMG,OAAOF,WAAW,MAAM,CAAC,CAACG,OAASF,SAAS,GAAG,EAAE,SAASE,KAAK,EAAE;IAEvE,OAAO;QACL,GAAGN,IAAI;QACP,MAAMK,KAAK,GAAG,CAAC,CAACC,OACP;gBACL,cAAcA,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;IAEJ;AACF"}
1
+ {"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils/measures/find'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRows: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const { encoding, measures } = advancedVSeed\n const rows = dimensions.filter((item) => encoding.row?.includes(item.id))\n const allMeasures = findAllMeasures(measures)\n\n return {\n ...spec,\n rows: rows.map((item) => {\n const res = {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n\n if (item.id === MeasureId) {\n ;(res as any).headerFormat = (measureId: string) => {\n const measure = allMeasures.find((m) => m.id === measureId)\n\n return measure?.alias ?? measureId\n }\n }\n\n return res\n }),\n }\n}\n"],"names":["pivotRows","spec","context","advancedVSeed","dimensions","encoding","measures","rows","item","allMeasures","findAllMeasures","res","MeasureId","measureId","measure","m"],"mappings":";;AAIO,MAAMA,YAAsB,CAACC,MAAMC;IACxC,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAaD,cAAc,UAAU;IAC3C,MAAM,EAAEE,QAAQ,EAAEC,QAAQ,EAAE,GAAGH;IAC/B,MAAMI,OAAOH,WAAW,MAAM,CAAC,CAACI,OAASH,SAAS,GAAG,EAAE,SAASG,KAAK,EAAE;IACvE,MAAMC,cAAcC,gBAAgBJ;IAEpC,OAAO;QACL,GAAGL,IAAI;QACP,MAAMM,KAAK,GAAG,CAAC,CAACC;YACd,MAAMG,MAAM;gBACV,cAAcH,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;YAEA,IAAIA,KAAK,EAAE,KAAKI,WACZD,IAAY,YAAY,GAAG,CAACE;gBAC5B,MAAMC,UAAUL,YAAY,IAAI,CAAC,CAACM,IAAMA,EAAE,EAAE,KAAKF;gBAEjD,OAAOC,SAAS,SAASD;YAC3B;YAGF,OAAOF;QACT;IACF;AACF"}
@@ -1,9 +1,11 @@
1
1
  export declare const ANNOTATION_Z_INDEX = 1000;
2
- export declare const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
2
+ export declare const LINEAR_AXIS_INNER_OFFSET_TOP = 12;
3
3
  export declare const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
4
4
  export declare const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
5
5
  export declare const DUAL_AXIS_LABEL_Z_INDEX = 1002;
6
6
  export declare const DEFAULT_PARENT_ID = "__DefaultParentId__";
7
+ export declare const AXIS_LABEL_SPACE = 8;
8
+ export declare const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2;
7
9
  export declare const ChartTypeEnum: {
8
10
  readonly Table: "table";
9
11
  readonly PivotTable: "pivotTable";
@@ -1,9 +1,11 @@
1
1
  const ANNOTATION_Z_INDEX = 1000;
2
- const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
2
+ const LINEAR_AXIS_INNER_OFFSET_TOP = 12;
3
3
  const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
4
4
  const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
5
5
  const DUAL_AXIS_LABEL_Z_INDEX = 1002;
6
6
  const DEFAULT_PARENT_ID = '__DefaultParentId__';
7
+ const AXIS_LABEL_SPACE = 8;
8
+ const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2;
7
9
  const ChartTypeEnum = {
8
10
  Table: 'table',
9
11
  PivotTable: 'pivotTable',
@@ -29,6 +31,6 @@ const ChartTypeEnum = {
29
31
  Histogram: 'histogram'
30
32
  };
31
33
  const DATUM_HIDE_KEY = '__VSEED_HideItem__';
32
- export { ANNOTATION_Z_INDEX, ChartTypeEnum, DATUM_HIDE_KEY, DEFAULT_PARENT_ID, DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX, DUAL_AXIS_LABEL_Z_INDEX, LINEAR_AXIS_INNER_OFFSET_TOP };
34
+ export { ANNOTATION_Z_INDEX, AXIS_LABEL_SPACE, BAND_AXIS_INNER_OFFSET_IN_PIVOT, ChartTypeEnum, DATUM_HIDE_KEY, DEFAULT_PARENT_ID, DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX, DUAL_AXIS_LABEL_Z_INDEX, LINEAR_AXIS_INNER_OFFSET_TOP };
33
35
 
34
36
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/constant.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 7\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAG1B,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
1
+ {"version":3,"file":"pipeline/utils/constant.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 12\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n// 轴标签间距\nexport const AXIS_LABEL_SPACE = 8\n// 透视轴 band 类型内边距\nexport const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","AXIS_LABEL_SPACE","BAND_AXIS_INNER_OFFSET_IN_PIVOT","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAE1B,MAAMC,mBAAmB;AAEzB,MAAMC,kCAAkC;AAGxC,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/depth.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/depth.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree/traverse'\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children))\n }\n return false\n })\n return depth\n}\n"],"names":["measureDepth","measures","depth","preorderTraverse","node","Math"],"mappings":";AASO,MAAMA,eAAe,CAACC,WAAwB,EAAE;IACrD,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIC,QAAQ;IACZC,iBAAwCF,UAAU,CAACG;QACjD,IAAI,cAAcA,MAChBF,QAAQG,KAAK,GAAG,CAACH,OAAO,IAAIF,aAAaI,KAAK,QAAQ;QAExD,OAAO;IACT;IACA,OAAOF;AACT"}
1
+ {"version":3,"file":"pipeline/utils/measures/depth.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/depth.ts"],"sourcesContent":["import type { Measure, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree/traverse'\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children as MeasureTree))\n }\n return false\n })\n return depth\n}\n"],"names":["measureDepth","measures","depth","preorderTraverse","node","Math"],"mappings":";AASO,MAAMA,eAAe,CAACC,WAAwB,EAAE;IACrD,IAAI,CAACA,UAAU,OAAO;IACtB,IAAIC,QAAQ;IACZC,iBAAsCF,UAAU,CAACG;QAC/C,IAAI,cAAcA,MAChBF,QAAQG,KAAK,GAAG,CAACH,OAAO,IAAIF,aAAaI,KAAK,QAAQ;QAExD,OAAO;IACT;IACA,OAAOF;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/find.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/find.ts"],"sourcesContent":["import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node as Measure\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result = node as Measure\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node as Measure)\n }\n return false\n })\n return result\n}\n"],"names":["findMeasureById","measures","id","result","preorderTraverse","node","findFirstMeasure","findAllMeasures"],"mappings":";AAGO,MAAMA,kBAAkB,CAACC,WAAwB,EAAE,EAAEC;IAC1D,IAAI,CAACD,UAAU;IACf,IAAIE;IACJC,iBAAwCH,UAAU,CAACI;QACjD,IAAI,CAAE,eAAcA,IAAG,GACrB;YAAA,IAAIA,KAAK,EAAE,KAAKH,IAAI;gBAClBC,SAASE;gBACT,OAAO;YACT;QAAA;QAEF,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMG,mBAAmB,CAACL,WAAwB,EAAE;IACzD,IAAI,CAACA,UAAU;IACf,IAAIE;IACJC,iBAAwCH,UAAU,CAACI;QACjD,IAAI,CAAE,eAAcA,IAAG,GAAI;YACzBF,SAASE;YACT,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMI,kBAAkB,CAACN,WAAwB,EAAE;IACxD,IAAI,CAACA,UAAU,OAAO,EAAE;IACxB,MAAME,SAAoB,EAAE;IAC5BC,iBAAwCH,UAAU,CAACI;QACjD,IAAI,CAAE,eAAcA,IAAG,GACrBF,OAAO,IAAI,CAACE;QAEd,OAAO;IACT;IACA,OAAOF;AACT"}
1
+ {"version":3,"file":"pipeline/utils/measures/find.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/find.ts"],"sourcesContent":["import type { Measure, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result = node\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, 'children'>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node)\n }\n return false\n })\n return result\n}\n"],"names":["findMeasureById","measures","id","result","preorderTraverse","node","findFirstMeasure","findAllMeasures"],"mappings":";AAGO,MAAMA,kBAAkB,CAACC,WAAwB,EAAE,EAAEC;IAC1D,IAAI,CAACD,UAAU;IACf,IAAIE;IAEJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrB;YAAA,IAAIA,KAAK,EAAE,KAAKH,IAAI;gBAClBC,SAASE;gBACT,OAAO;YACT;QAAA;QAEF,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMG,mBAAmB,CAACL,WAAwB,EAAE;IACzD,IAAI,CAACA,UAAU;IACf,IAAIE;IACJC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GAAI;YACzBF,SAASE;YACT,OAAO;QACT;QACA,OAAO;IACT;IACA,OAAOF;AACT;AAEO,MAAMI,kBAAkB,CAACN,WAAwB,EAAE;IACxD,IAAI,CAACA,UAAU,OAAO,EAAE;IACxB,MAAME,SAAoB,EAAE;IAC5BC,iBAAsCH,UAAU,CAACI;QAC/C,IAAI,CAAE,eAAcA,IAAG,GACrBF,OAAO,IAAI,CAACE;QAEd,OAAO;IACT;IACA,OAAOF;AACT"}
@@ -1,11 +1 @@
1
- /**
2
- * 支持泛型的非递归前序遍历
3
- * @param tree 根节点数组
4
- * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历
5
- */
6
- export declare const preorderTraverse: <T extends {
7
- id: string;
8
- }, U extends {
9
- id: string;
10
- children?: (T | U)[];
11
- }>(tree: (T | U)[], callback: (node: T | U) => boolean) => void;
1
+ export declare const preorderTraverse: <Node, K extends string = "children">(tree: Node[], callback: (node: Node) => boolean, childrenKey?: K) => void;
@@ -1,4 +1,4 @@
1
- const preorderTraverse = (tree, callback)=>{
1
+ const preorderTraverse = (tree, callback, childrenKey = 'children')=>{
2
2
  if (!tree || 0 === tree.length) return;
3
3
  const stack = [
4
4
  ...tree
@@ -7,9 +7,8 @@ const preorderTraverse = (tree, callback)=>{
7
7
  const node = stack.pop();
8
8
  const stop = callback(node);
9
9
  if (true === stop) return;
10
- if (!('children' in node)) continue;
11
- const children = node.children;
12
- if (children && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
10
+ const children = node[childrenKey];
11
+ if (Array.isArray(children) && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
13
12
  const child = children[i];
14
13
  stack.push(child);
15
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/tree/traverse.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/tree/traverse.ts"],"sourcesContent":["/**\n * 支持泛型的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n */\nexport const preorderTraverse = <T extends { id: string }, U extends { id: string; children?: (T | U)[] }>(\n tree: (T | U)[],\n callback: (node: T | U) => boolean,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: (T | U)[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop()!\n const stop = callback(node)\n if (stop === true) {\n return\n }\n if (!('children' in node)) {\n continue\n }\n const children = node.children\n if (children && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n"],"names":["preorderTraverse","tree","callback","stack","node","stop","children","i","child"],"mappings":"AAKO,MAAMA,mBAAmB,CAC9BC,MACAC;IAEA,IAAI,CAACD,QAAQA,AAAgB,MAAhBA,KAAK,MAAM,EAAQ;IAEhC,MAAME,QAAmB;WAAIF;KAAK,CAAC,OAAO;IAE1C,MAAOE,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMC,OAAOD,MAAM,GAAG;QACtB,MAAME,OAAOH,SAASE;QACtB,IAAIC,AAAS,SAATA,MACF;QAEF,IAAI,CAAE,eAAcD,IAAG,GACrB;QAEF,MAAME,WAAWF,KAAK,QAAQ;QAC9B,IAAIE,YAAYA,SAAS,MAAM,GAAG,GAChC,IAAK,IAAIC,IAAID,SAAS,MAAM,GAAG,GAAGC,KAAK,GAAGA,IAAK;YAC7C,MAAMC,QAAQF,QAAQ,CAACC,EAAE;YACzBJ,MAAM,IAAI,CAACK;QACb;IAEJ;AACF"}
1
+ {"version":3,"file":"pipeline/utils/tree/traverse.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/tree/traverse.ts"],"sourcesContent":["/**\n * 支持泛型与可配置子节点键名的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n * @param childrenKey 子节点键名(默认 'children')\n */\ntype WithChildren<Node, K extends string> = Node & { [P in K]?: Node[] }\n\nexport const preorderTraverse = <Node, K extends string = 'children'>(\n tree: Node[],\n callback: (node: Node) => boolean,\n childrenKey: K = 'children' as K,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: Node[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop() as Node\n const stop = callback(node)\n if (stop === true) {\n return\n }\n\n const children = (node as WithChildren<Node, K>)[childrenKey]\n if (Array.isArray(children) && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n"],"names":["preorderTraverse","tree","callback","childrenKey","stack","node","stop","children","Array","i","child"],"mappings":"AAQO,MAAMA,mBAAmB,CAC9BC,MACAC,UACAC,cAAiB,UAAe;IAEhC,IAAI,CAACF,QAAQA,AAAgB,MAAhBA,KAAK,MAAM,EAAQ;IAEhC,MAAMG,QAAgB;WAAIH;KAAK,CAAC,OAAO;IAEvC,MAAOG,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMC,OAAOD,MAAM,GAAG;QACtB,MAAME,OAAOJ,SAASG;QACtB,IAAIC,AAAS,SAATA,MACF;QAGF,MAAMC,WAAYF,IAA8B,CAACF,YAAY;QAC7D,IAAIK,MAAM,OAAO,CAACD,aAAaA,SAAS,MAAM,GAAG,GAC/C,IAAK,IAAIE,IAAIF,SAAS,MAAM,GAAG,GAAGE,KAAK,GAAGA,IAAK;YAC7C,MAAMC,QAAQH,QAAQ,CAACE,EAAE;YACzBL,MAAM,IAAI,CAACM;QACb;IAEJ;AACF"}
@@ -5,7 +5,7 @@ const getLightLinearAxis = ()=>({
5
5
  label: {
6
6
  visible: true,
7
7
  labelAngle: 0,
8
- labelColor: '#797B85',
8
+ labelColor: '#8F959E',
9
9
  labelFontSize: 12,
10
10
  labelFontWeight: 400
11
11
  },
@@ -51,7 +51,7 @@ const getLightBandAxis = ()=>({
51
51
  label: {
52
52
  visible: true,
53
53
  labelAngle: 0,
54
- labelColor: '#797B85',
54
+ labelColor: '#8F959E',
55
55
  labelFontSize: 12,
56
56
  labelFontWeight: 400
57
57
  },
@@ -1 +1 @@
1
- {"version":3,"file":"theme/common/axes.js","sources":["webpack://@visactor/vseed/./src/theme/common/axes.ts"],"sourcesContent":["import type { YBandAxis, YLinearAxis } from 'src/types'\n\nexport const getLightLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#36415926',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n})\n\nexport const getLightBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#36415926',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n})\n\nexport const getDarkLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: false,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n})\n\nexport const getDarkBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: true,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n})\n"],"names":["getLightLinearAxis","getLightBandAxis","getDarkLinearAxis","getDarkBandAxis"],"mappings":"AAEO,MAAMA,qBAAqB,IAAoB;QACpD,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,mBAAmB,IAAkB;QAChD,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,oBAAoB,IAAoB;QACnD,MAAM;QACN,MAAM;QACN,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,kBAAkB,IAAkB;QAC/C,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF"}
1
+ {"version":3,"file":"theme/common/axes.js","sources":["webpack://@visactor/vseed/./src/theme/common/axes.ts"],"sourcesContent":["import type { YBandAxis, YLinearAxis } from 'src/types'\n\nexport const getLightLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#36415926',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n})\n\nexport const getLightBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#8F959E',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#36415926',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n})\n\nexport const getDarkLinearAxis = (): YLinearAxis => ({\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: false,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n})\n\nexport const getDarkBandAxis = (): YBandAxis => ({\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#303339',\n gridWidth: 0.5,\n gridLineDash: [4, 2],\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: true,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n})\n"],"names":["getLightLinearAxis","getLightBandAxis","getDarkLinearAxis","getDarkBandAxis"],"mappings":"AAEO,MAAMA,qBAAqB,IAAoB;QACpD,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,mBAAmB,IAAkB;QAChD,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,oBAAoB,IAAoB;QACnD,MAAM;QACN,MAAM;QACN,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF;AAEO,MAAMC,kBAAkB,IAAkB;QAC/C,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,sBAAsB;QACtB,iBAAiB;QACjB,2BAA2B;YAAC;YAAG;YAAK;SAAI;QACxC,OAAO;YACL,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,OAAO;YACL,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;QACnB;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;YACX,cAAc;gBAAC;gBAAG;aAAE;QACtB;QACA,MAAM;YACJ,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW;QACb;QACA,MAAM;YACJ,SAAS;YACT,WAAW;YACX,WAAW;QACb;IACF"}