@visactor/vseed 0.1.45 → 0.1.47

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 (165) 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 +86 -14
  4. package/dist/esm/dataReshape/constant.d.ts +2 -2
  5. package/dist/esm/dataReshape/constant.js +3 -3
  6. package/dist/esm/dataReshape/constant.js.map +1 -1
  7. package/dist/esm/i18n/i18n.js +2 -2
  8. package/dist/esm/i18n/i18n.js.map +1 -1
  9. package/dist/esm/i18n/i18nData.d.ts +2 -0
  10. package/dist/esm/i18n/i18nData.js +41 -5
  11. package/dist/esm/i18n/i18nData.js.map +1 -0
  12. package/dist/esm/pipeline/advanced/chart/pipeline/area.js +3 -3
  13. package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
  14. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +3 -3
  15. package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
  16. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +3 -3
  17. package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +3 -3
  19. package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +3 -3
  21. package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +3 -3
  23. package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -3
  25. package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +3 -3
  27. package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
  28. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +3 -3
  29. package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
  30. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -3
  31. package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
  32. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +3 -3
  33. package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
  34. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +3 -3
  35. package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
  36. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +3 -3
  37. package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
  38. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +3 -3
  39. package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
  40. package/dist/esm/pipeline/advanced/chart/pipeline/line.js +3 -3
  41. package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
  42. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -3
  43. package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
  44. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +3 -3
  45. package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
  46. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +3 -3
  47. package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
  48. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +3 -3
  49. package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
  50. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -3
  51. package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
  52. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.d.ts +1 -1
  53. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.js +1 -1
  54. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.d.ts +2 -0
  55. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js +14 -0
  56. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -0
  57. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +1 -1
  58. package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +2 -2
  59. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.d.ts +2 -0
  60. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js +14 -0
  61. package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +1 -0
  62. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +35 -29
  63. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
  64. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +3 -1
  65. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
  66. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +3 -1
  67. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
  68. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +5 -3
  69. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
  70. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +3 -1
  71. package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
  72. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js +33 -28
  73. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
  74. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +3 -1
  75. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
  76. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +3 -5
  77. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
  78. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +3 -1
  79. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
  80. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +3 -1
  81. package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
  82. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +3 -2
  83. package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
  84. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -3
  85. package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
  86. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +11 -3
  87. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  88. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +11 -3
  89. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  90. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.d.ts +2 -0
  91. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js +27 -0
  92. package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js.map +1 -0
  93. package/dist/esm/pipeline/spec/chart/pipes/crosshair/index.d.ts +1 -0
  94. package/dist/esm/pipeline/spec/chart/pipes/crosshair/index.js +2 -1
  95. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js +3 -3
  96. package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js.map +1 -1
  97. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.d.ts +2 -0
  98. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js +15 -0
  99. package/dist/esm/pipeline/spec/chart/pipes/legend/boxLegend.js.map +1 -0
  100. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js +3 -4
  101. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
  102. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +31 -1
  103. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
  104. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +5 -1
  105. package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
  106. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +1 -1
  107. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +5 -1
  108. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  109. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +14 -5
  110. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
  111. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +6 -4
  112. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
  113. package/dist/esm/pipeline/spec/chart/utils/histogram.d.ts +2 -0
  114. package/dist/esm/pipeline/spec/chart/utils/histogram.js +12 -0
  115. package/dist/esm/pipeline/spec/chart/utils/histogram.js.map +1 -0
  116. package/dist/esm/pipeline/utils/measures/delete.d.ts +2 -2
  117. package/dist/esm/pipeline/utils/measures/delete.js +7 -3
  118. package/dist/esm/pipeline/utils/measures/delete.js.map +1 -1
  119. package/dist/esm/pipeline/utils/tree/traverse.d.ts +1 -0
  120. package/dist/esm/pipeline/utils/tree/traverse.js +12 -1
  121. package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
  122. package/dist/esm/types/advancedVSeed.d.ts +116 -3
  123. package/dist/esm/types/advancedVSeed.js +2 -0
  124. package/dist/esm/types/advancedVSeed.js.map +1 -1
  125. package/dist/esm/types/chartType/area/zArea.d.ts +12 -3
  126. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +12 -3
  127. package/dist/esm/types/chartType/bar/zBar.d.ts +12 -3
  128. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +12 -3
  129. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +12 -3
  130. package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +12 -3
  131. package/dist/esm/types/chartType/column/zColumn.d.ts +12 -3
  132. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +12 -3
  133. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +12 -3
  134. package/dist/esm/types/chartType/donut/zDonut.d.ts +12 -3
  135. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +42 -15
  136. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +12 -3
  137. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +12 -3
  138. package/dist/esm/types/chartType/histogram/zHistogram.d.ts +12 -3
  139. package/dist/esm/types/chartType/line/zLine.d.ts +12 -3
  140. package/dist/esm/types/chartType/pie/zPie.d.ts +12 -3
  141. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +12 -3
  142. package/dist/esm/types/chartType/radar/zRadar.d.ts +12 -3
  143. package/dist/esm/types/chartType/rose/zRose.d.ts +12 -3
  144. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +12 -3
  145. package/dist/esm/types/chartType/scatter/zScatter.d.ts +42 -15
  146. package/dist/esm/types/chartType/table/zTable.d.ts +12 -3
  147. package/dist/esm/types/properties/measures/zDualMeasures.d.ts +60 -24
  148. package/dist/esm/types/properties/measures/zMeasures.d.ts +36 -9
  149. package/dist/esm/types/properties/measures/zMeasures.js +13 -4
  150. package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
  151. package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +60 -24
  152. package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +5 -0
  153. package/dist/esm/types/properties/regressionLine/logisticRegressionLine.d.ts +5 -0
  154. package/dist/esm/types/properties/regressionLine/lowessRegressionLine.d.ts +5 -0
  155. package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.d.ts +5 -0
  156. package/dist/esm/types/zVseed.d.ts +324 -90
  157. package/dist/umd/index.js +349 -197
  158. package/dist/umd/index.js.map +1 -1
  159. package/package.json +1 -1
  160. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.d.ts +0 -2
  161. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js +0 -12
  162. package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js.map +0 -1
  163. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.d.ts +0 -2
  164. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.js +0 -12
  165. package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteEncodingForMeasure.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.ts"],"sourcesContent":["import { boxplot } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport {\n FoldMeasureId,\n FoldMeasureName,\n MaxMeasureId,\n MedianMeasureId,\n MinMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport type {\n AdvancedPipe,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\n Encoding,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithBoxplotEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed\n const uniqDims = uniqueBy(dimensions, (item: Dimension) => item.id)\n const chartConfig = config?.[chartType as 'boxPlot']\n const whiskers = chartConfig?.whiskers\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const subMeasures = measureGroup.children\n if (!subMeasures) {\n return\n }\n const groupId = measureGroup.id\n let newDatasets: any[] = []\n let foldInfo: any = {}\n let unfoldInfo: any = {}\n\n if (encoding.value?.length) {\n encoding.value.forEach((f) => {\n const m = subMeasures.find((m) => m.id === f)\n const boxPlotData = boxplot(dataset, {\n field: f,\n groupField: [\n ...(encoding.x ?? []),\n ...(encoding.color ?? []),\n ...rowColumnFields.map((item: Dimension) => item.id),\n ] as string[],\n whiskers,\n outputNames: {\n q1: Q1MeasureValue,\n q3: Q3MeasureValue,\n min: MinMeasureId,\n max: MaxMeasureId,\n median: MedianMeasureId,\n outliers: OutliersMeasureId,\n },\n }) as Dataset\n\n boxPlotData.forEach((datum) => {\n datum[FoldMeasureId] = f\n datum[FoldMeasureName] = m?.alias ?? f\n })\n\n const res = unfoldDimensions(boxPlotData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n })\n } else if (\n encoding.q1?.length &&\n encoding.q3?.length &&\n encoding.min?.length &&\n encoding.max?.length &&\n encoding.median?.length\n ) {\n const res = unfoldDimensions(dataset, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((datum) => {\n datum[MaxMeasureId] = datum[encoding.max![0]]\n datum[MinMeasureId] = datum[encoding.min![0]]\n datum[Q1MeasureValue] = datum[encoding.q1![0]]\n datum[Q3MeasureValue] = datum[encoding.q3![0]]\n datum[MedianMeasureId] = datum[encoding.median![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = {}\n unfoldInfo = res.unfoldInfo\n }\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newDatasets)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithBoxplotEncoding","advancedVSeed","context","result","vseed","dataset","chartType","dimensions","measures","encoding","config","uniqDims","uniqueBy","item","chartConfig","whiskers","measureGroups","measure","rowColumnFields","dim","datasets","datasetReshapeInfo","measureGroup","index","subMeasures","groupId","newDatasets","foldInfo","unfoldInfo","f","m","boxPlotData","boxplot","Q1MeasureValue","Q3MeasureValue","MinMeasureId","MaxMeasureId","MedianMeasureId","OutliersMeasureId","datum","FoldMeasureId","FoldMeasureName","res","unfoldDimensions","Separator","d","reshapeInfo"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.ts"],"sourcesContent":["import { boxplot } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport {\n FoldMeasureId,\n FoldMeasureName,\n LowerWhisker,\n MedianMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n Separator,\n unfoldDimensions,\n UpperWhisker,\n} from 'src/dataReshape'\nimport type {\n AdvancedPipe,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\n Encoding,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithBoxplotEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { encoding = {}, config } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const uniqDims = uniqueBy(dimensions, (item: Dimension) => item.id)\n const chartConfig = config?.[chartType as 'boxPlot']\n const whiskers = chartConfig?.whiskers\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const subMeasures = measureGroup.children\n if (!subMeasures) {\n return\n }\n const groupId = measureGroup.id\n let newDatasets: any[] = []\n let foldInfo: any = {}\n let unfoldInfo: any = {}\n const validEncodingIds = (encoding.value || []).filter((id) => subMeasures.find((field) => field.id === id))\n\n if (validEncodingIds.length) {\n const boxPlotDataList: Dataset = []\n validEncodingIds.forEach((f) => {\n const m = subMeasures.find((m) => m.id === f)\n const boxPlotData = boxplot(dataset, {\n field: f,\n groupField: [\n ...(encoding.x ?? []),\n ...(encoding.color ?? []),\n ...rowColumnFields.map((item: Dimension) => item.id),\n ] as string[],\n whiskers,\n outputNames: {\n q1: Q1MeasureValue,\n q3: Q3MeasureValue,\n lowerWhisker: LowerWhisker,\n upperWhisker: UpperWhisker,\n median: MedianMeasureId,\n outliers: OutliersMeasureId,\n },\n }) as Dataset\n\n boxPlotData.forEach((datum) => {\n datum[FoldMeasureId] = f\n datum[FoldMeasureName] = m?.alias ?? f\n })\n\n boxPlotDataList.push(...boxPlotData)\n })\n const res = unfoldDimensions(boxPlotDataList, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (\n encoding.q1?.length &&\n encoding.q3?.length &&\n encoding.min?.length &&\n encoding.max?.length &&\n encoding.median?.length\n ) {\n const res = unfoldDimensions(dataset, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((datum) => {\n datum[UpperWhisker] = datum[encoding.max![0]]\n datum[LowerWhisker] = datum[encoding.min![0]]\n datum[Q1MeasureValue] = datum[encoding.q1![0]]\n datum[Q3MeasureValue] = datum[encoding.q3![0]]\n datum[MedianMeasureId] = datum[encoding.median![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = {}\n unfoldInfo = res.unfoldInfo\n }\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newDatasets)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithBoxplotEncoding","advancedVSeed","context","result","vseed","dataset","chartType","encoding","config","measures","dimensions","uniqDims","uniqueBy","item","chartConfig","whiskers","measureGroups","measure","rowColumnFields","dim","datasets","datasetReshapeInfo","measureGroup","index","subMeasures","groupId","newDatasets","foldInfo","unfoldInfo","validEncodingIds","id","field","boxPlotDataList","f","m","boxPlotData","boxplot","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","MedianMeasureId","OutliersMeasureId","datum","FoldMeasureId","FoldMeasureName","res","unfoldDimensions","Separator","d","reshapeInfo"],"mappings":"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"}
@@ -8,7 +8,9 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
8
8
  };
9
9
  const { vseed } = context;
10
10
  const { dataset } = vseed;
11
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
11
+ const { encoding, chartType } = advancedVSeed;
12
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
13
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
12
14
  const allMeasures = findAllMeasures(measures);
13
15
  const datasetList = [];
14
16
  const datasetReshapeInfo = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures, measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed\n\n const allMeasures = findAllMeasures(measures)\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n const measureGroups: Array<MeasureGroup[]> = []\n\n const depth = measureDepth(measures)\n if (depth === 3) {\n measures.forEach((measure: MeasureGroup) => {\n measureGroups.push(measure.children as unknown as MeasureGroup[])\n })\n } else if (depth === 2) {\n measureGroups.push(measures as unknown as MeasureGroup[])\n }\n\n measureGroups.forEach((measures: MeasureGroup[], index) => {\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in dualAxis')\n }\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures[0]\n const secondaryMeasures = measures[1] || []\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(primaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(secondaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets.flat(2))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","dimensions","measures","encoding","chartType","allMeasures","findAllMeasures","datasetList","datasetReshapeInfo","measureGroups","depth","measureDepth","measure","index","Error","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","FoldSecondaryMeasureValue","d","prev","cur","reshapeInfo"],"mappings":";;;;AAgBO,MAAMA,+BAA6C,CAACC,eAAeC;IACxE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGR;IAEhE,MAAMS,cAAcC,gBAAgBJ;IACpC,MAAMK,cAAyB,EAAE;IACjC,MAAMC,qBAAyC,EAAE;IAEjD,MAAMC,gBAAuC,EAAE;IAE/C,MAAMC,QAAQC,aAAaT;IAC3B,IAAIQ,AAAU,MAAVA,OACFR,SAAS,OAAO,CAAC,CAACU;QAChBH,cAAc,IAAI,CAACG,QAAQ,QAAQ;IACrC;SACK,IAAIF,AAAU,MAAVA,OACTD,cAAc,IAAI,CAACP;IAGrBO,cAAc,OAAO,CAAC,CAACP,UAA0BW;QAC/C,IAAIX,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIY,MAAM;QAGlB,MAAMC,eAA2B,EAAE;QACnC,MAAMC,iBAA+B,EAAE;QAEvC,MAAMC,WAAsB,EAAE;QAC9B,MAAMC,kBAAkBhB,QAAQ,CAAC,EAAE;QACnC,MAAMiB,oBAAoBjB,QAAQ,CAAC,EAAE,IAAI,EAAE;QAE3C,IAAIgB,mBAAmBA,gBAAgB,QAAQ,EAAE;YAC/C,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFvB,SACAwB,SAASvB,YAAY,CAACwB,OAASA,KAAK,EAAE,GACtCD,SAASN,gBAAgB,QAAQ,EAAE,CAACO,OAASA,KAAK,EAAE,GACpDtB,UACA;gBACE,eAAe;gBACf,kBAAkB,GAAGuB,0BAA0Bb,OAAO;gBACtD,gBAAgBc,kBAAkB/B,eAAgCG;gBAClE,SAASM,YAAY,GAAG,CAAC,CAACoB,OAASA,KAAK,EAAE;YAC5C;YAGFR,SAAS,IAAI,CAACG;YACdL,aAAa,IAAI,CAACM;YAClBL,eAAe,IAAI,CAACM;QACtB;QAEA,IAAIH,qBAAqBA,kBAAkB,QAAQ,EAAE;YACnD,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFvB,SACAwB,SAASvB,YAAY,CAACwB,OAASA,KAAK,EAAE,GACtCD,SAASL,kBAAkB,QAAQ,EAAE,CAACM,OAASA,KAAK,EAAE,GACtDtB,UACA;gBACE,eAAe;gBACf,kBAAkB,GAAGyB,4BAA4Bf,OAAO;gBACxD,gBAAgBc,kBAAkB/B,eAAgCG;gBAClE,SAASM,YAAY,GAAG,CAAC,CAACoB,OAASA,KAAK,EAAE;YAC5C;YAGFR,SAAS,IAAI,CAACG;YACdL,aAAa,IAAI,CAACM;YAClBL,eAAe,IAAI,CAACM;QACtB;QAEA,MAAMA,aAAyB;YAC7B,GAAGN,cAAc,CAAC,EAAE;YACpB,YAAYA,eAAe,OAAO,CAAC,CAACa,IAAMA,EAAE,UAAU;YACtD,YAAYb,eAAe,MAAM,CAAC,CAACc,MAAMC,MAAS;oBAAE,GAAGD,IAAI;oBAAE,GAAGC,IAAI,UAAU;gBAAC,IAAI,CAAC;QACtF;QAEA,MAAMC,cAAc;YAClB,IAAI,GAAG5B,UAAU,CAAC,EAAES,OAAO;YAC3BA;YACA,UAAUE,YAAY,CAAC,EAAE;YACzB,cAAcA;YACd,YAAYO;QACd;QAEAd,mBAAmB,IAAI,CAACwB;QACxBzB,YAAY,IAAI,CAACU,SAAS,IAAI,CAAC;IACjC;IAEA,OAAO;QACL,GAAGnB,MAAM;QACT,SAASS;QACT,oBAAoBC;IACtB;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures, measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n const allMeasures = findAllMeasures(measures)\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n const measureGroups: Array<MeasureGroup[]> = []\n\n const depth = measureDepth(measures)\n if (depth === 3) {\n measures.forEach((measure: MeasureGroup) => {\n measureGroups.push(measure.children as unknown as MeasureGroup[])\n })\n } else if (depth === 2) {\n measureGroups.push(measures as unknown as MeasureGroup[])\n }\n\n measureGroups.forEach((measures: MeasureGroup[], index) => {\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in dualAxis')\n }\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures[0]\n const secondaryMeasures = measures[1] || []\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(primaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(secondaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets.flat(2))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","allMeasures","findAllMeasures","datasetList","datasetReshapeInfo","measureGroups","depth","measureDepth","measure","index","Error","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","FoldSecondaryMeasureValue","d","prev","cur","reshapeInfo"],"mappings":"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"}
@@ -8,7 +8,9 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
8
8
  };
9
9
  const { vseed } = context;
10
10
  const { dataset } = vseed;
11
- const { dimensions = [], measures = [], encoding } = advancedVSeed;
11
+ const { encoding } = advancedVSeed;
12
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
13
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
12
14
  const allMeasures = findAllMeasures(measures);
13
15
  const measureGroups = [];
14
16
  if (measures) measures.forEach((measure)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding } = advancedVSeed\n\n const allMeasures = findAllMeasures(measures)\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(measures, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldMeasureValue}${groupId}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithEncoding","advancedVSeed","context","result","vseed","dataset","dimensions","measures","encoding","allMeasures","findAllMeasures","measureGroups","measure","datasets","datasetReshapeInfo","measureGroup","index","groupId","newSubDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldMeasureValue","getColorMeasureId","reshapeInfo"],"mappings":";;;;AAcO,MAAMA,2BAAyC,CAACC,eAAeC;IACpE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAE,GAAGP;IAErD,MAAMQ,cAAcC,gBAAgBH;IACpC,MAAMI,gBAAgC,EAAE;IACxC,IAAIJ,UACFA,SAAS,OAAO,CAAC,CAACK;QAChB,IAAIA,QAAQ,QAAQ,IAAIA,QAAQ,QAAQ,CAAC,MAAM,GAAG,GAChDD,cAAc,IAAI,CAACC;IAEvB;IAGF,MAAMC,WAAoB,EAAE;IAC5B,MAAMC,qBAAyC,EAAE;IAEjDH,cAAc,OAAO,CAAC,CAACI,cAAcC;QACnC,MAAMT,WAAWQ,aAAa,QAAQ;QACtC,IAAI,CAACR,UACH;QAEF,MAAMU,UAAUF,aAAa,EAAE;QAC/B,MAAM,EACJ,SAASG,aAAa,EACtBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFhB,SACAiB,SAAShB,YAAY,CAACiB,OAASA,KAAK,EAAE,GACtCD,SAASf,UAAU,CAACgB,OAASA,KAAK,EAAE,GACpCf,UACA;YACE,eAAe;YACf,kBAAkB,GAAGgB,mBAAmBP,SAAS;YACjD,gBAAgBQ,kBAAkBxB,eAAgCG;YAClE,SAASK,YAAY,GAAG,CAAC,CAACc,OAASA,KAAK,EAAE;QAC5C;QAGF,MAAMG,cAAc;YAClB,IAAIT;YACJD;YACAG;YACAC;QACF;QACAP,SAAS,IAAI,CAACK;QACdJ,mBAAmB,IAAI,CAACY;IAC1B;IAEA,OAAO;QACL,GAAGvB,MAAM;QACT,SAASU;QACT,oBAAoBC;IACtB;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n const allMeasures = findAllMeasures(measures)\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(measures, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: `${FoldMeasureValue}${groupId}`,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n },\n )\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithEncoding","advancedVSeed","context","result","vseed","dataset","encoding","measures","dimensions","allMeasures","findAllMeasures","measureGroups","measure","datasets","datasetReshapeInfo","measureGroup","index","groupId","newSubDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldMeasureValue","getColorMeasureId","reshapeInfo"],"mappings":";;;;AAcO,MAAMA,2BAAyC,CAACC,eAAeC;IACpE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,QAAQ,EAAE,GAAGL;IACrB,MAAMM,WAAWN,cAAc,eAAe,IAAIA,cAAc,QAAQ,IAAI,EAAE;IAC9E,MAAMO,aAAaP,cAAc,iBAAiB,IAAIA,cAAc,UAAU,IAAI,EAAE;IAEpF,MAAMQ,cAAcC,gBAAgBH;IACpC,MAAMI,gBAAgC,EAAE;IACxC,IAAIJ,UACFA,SAAS,OAAO,CAAC,CAACK;QAChB,IAAIA,QAAQ,QAAQ,IAAIA,QAAQ,QAAQ,CAAC,MAAM,GAAG,GAChDD,cAAc,IAAI,CAACC;IAEvB;IAGF,MAAMC,WAAoB,EAAE;IAC5B,MAAMC,qBAAyC,EAAE;IAEjDH,cAAc,OAAO,CAAC,CAACI,cAAcC;QACnC,MAAMT,WAAWQ,aAAa,QAAQ;QACtC,IAAI,CAACR,UACH;QAEF,MAAMU,UAAUF,aAAa,EAAE;QAC/B,MAAM,EACJ,SAASG,aAAa,EACtBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFhB,SACAiB,SAASd,YAAY,CAACe,OAASA,KAAK,EAAE,GACtCD,SAASf,UAAU,CAACgB,OAASA,KAAK,EAAE,GACpCjB,UACA;YACE,eAAe;YACf,kBAAkB,GAAGkB,mBAAmBP,SAAS;YACjD,gBAAgBQ,kBAAkBxB,eAAgCG;YAClE,SAASK,YAAY,GAAG,CAAC,CAACc,OAASA,KAAK,EAAE;QAC5C;QAGF,MAAMG,cAAc;YAClB,IAAIT;YACJD;YACAG;YACAC;QACF;QACAP,SAAS,IAAI,CAACK;QACdJ,mBAAmB,IAAI,CAACY;IAC1B;IAEA,OAAO;QACL,GAAGvB,MAAM;QACT,SAASU;QACT,oBAAoBC;IACtB;AACF"}
@@ -8,7 +8,9 @@ const pivotReshapeWithHistogramEncoding = (advancedVSeed, context)=>{
8
8
  };
9
9
  const { vseed } = context;
10
10
  const { dataset, chartType } = vseed;
11
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
11
+ const { encoding = {}, config } = advancedVSeed;
12
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
13
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
12
14
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
13
15
  const uniqDims = uniqueBy(dimensions, (item)=>item.id);
14
16
  const chartConfig = config?.[chartType];
@@ -49,9 +51,9 @@ const pivotReshapeWithHistogramEncoding = (advancedVSeed, context)=>{
49
51
  field: valueField,
50
52
  groupField: [
51
53
  ...encoding.x ?? [],
52
- ...encoding.color ?? [],
53
- ...rowColumnFields.map((item)=>item.id)
54
+ ...encoding.color ?? []
54
55
  ],
56
+ facetField: rowColumnFields.map((item)=>item.id),
55
57
  bins: binCount,
56
58
  step: binStep,
57
59
  outputNames: {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.ts"],"sourcesContent":["import { bin } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport {\n BinCountMeasureId,\n BinEndMeasureId,\n BinPercentageMeasureId,\n BinStartMeasureId,\n dataReshapeByEncoding,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Datum,\n Dimension,\n Encoding,\n FoldInfo,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithHistogramEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const uniqDims = uniqueBy(dimensions, (item: Dimension) => item.id)\n const chartConfig = config?.[chartType as 'histogram']\n const binCount = chartConfig?.binCount\n const binStep = chartConfig?.binStep\n const binValueType = chartConfig?.binValueType\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const subMeasures = measureGroup.children\n if (!subMeasures) {\n return\n }\n const groupId = measureGroup.id\n\n let newDatasets: any[] = []\n let foldInfo: FoldInfo = {\n foldMap: {},\n measureId: FoldMeasureId,\n measureName: FoldMeasureName,\n measureValue: FoldMeasureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n }\n let unfoldInfo: any = {}\n\n if (encoding.value?.length) {\n const valueField = encoding.value[0]\n const m = subMeasures.find((m) => m.id === valueField)\n const binData = bin(dataset, {\n field: valueField,\n groupField: [\n ...(encoding.x ?? []),\n ...(encoding.color ?? []),\n ...rowColumnFields.map((item: Dimension) => item.id),\n ] as string[],\n bins: binCount,\n step: binStep,\n outputNames: {\n x0: BinStartMeasureId,\n x1: BinEndMeasureId,\n count: BinCountMeasureId,\n percentage: BinPercentageMeasureId,\n },\n }) as Dataset\n\n binData.forEach((datum: Datum) => {\n datum[FoldMeasureId] = valueField\n datum[FoldMeasureName] = m?.alias ?? valueField\n const valueNumber = binValueType === 'percentage' ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId]\n datum[FoldMeasureValue] = valueNumber\n datum[valueField] = valueNumber\n\n foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber)\n foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber)\n foldInfo.statistics.sum += valueNumber\n foldInfo.statistics.count++\n })\n if (m?.id) {\n foldInfo.foldMap[m?.id] = m?.alias\n }\n\n const res = unfoldDimensions(binData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {\n const res = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n subMeasures.filter((item) => encoding.y?.includes(item.id)).slice(0, 1),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n res.dataset.forEach((datum) => {\n datum[BinStartMeasureId] = datum[encoding.x0![0]]\n datum[BinEndMeasureId] = datum[encoding.x1![0]]\n datum[FoldMeasureId] = datum[encoding.y![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = res.foldInfo\n unfoldInfo = res.unfoldInfo\n }\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newDatasets)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithHistogramEncoding","advancedVSeed","context","result","vseed","dataset","chartType","dimensions","measures","encoding","config","colorMeasureId","getColorMeasureId","uniqDims","uniqueBy","item","chartConfig","binCount","binStep","binValueType","measureGroups","measure","rowColumnFields","dim","datasets","datasetReshapeInfo","measureGroup","index","subMeasures","groupId","newDatasets","foldInfo","FoldMeasureId","FoldMeasureName","FoldMeasureValue","Infinity","unfoldInfo","valueField","m","binData","bin","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","datum","valueNumber","Math","res","unfoldDimensions","Separator","d","dataReshapeByEncoding","reshapeInfo"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.ts"],"sourcesContent":["import { bin } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport {\n BinCountMeasureId,\n BinEndMeasureId,\n BinPercentageMeasureId,\n BinStartMeasureId,\n dataReshapeByEncoding,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Datum,\n Dimension,\n Encoding,\n FoldInfo,\n MeasureGroup,\n} from 'src/types'\n\nexport const pivotReshapeWithHistogramEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { encoding = {}, config } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const uniqDims = uniqueBy(dimensions, (item: Dimension) => item.id)\n const chartConfig = config?.[chartType as 'histogram']\n const binCount = chartConfig?.binCount\n const binStep = chartConfig?.binStep\n const binValueType = chartConfig?.binValueType\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n\n const datasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measureGroup, index) => {\n const subMeasures = measureGroup.children\n if (!subMeasures) {\n return\n }\n const groupId = measureGroup.id\n\n let newDatasets: any[] = []\n let foldInfo: FoldInfo = {\n foldMap: {},\n measureId: FoldMeasureId,\n measureName: FoldMeasureName,\n measureValue: FoldMeasureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n }\n let unfoldInfo: any = {}\n\n if (encoding.value?.length) {\n const valueField = encoding.value[0]\n const m = subMeasures.find((m) => m.id === valueField)\n const binData = bin(dataset, {\n field: valueField,\n groupField: [...(encoding.x ?? []), ...(encoding.color ?? [])] as string[],\n facetField: rowColumnFields.map((item: Dimension) => item.id),\n bins: binCount,\n step: binStep,\n outputNames: {\n x0: BinStartMeasureId,\n x1: BinEndMeasureId,\n count: BinCountMeasureId,\n percentage: BinPercentageMeasureId,\n },\n }) as Dataset\n\n binData.forEach((datum: Datum) => {\n datum[FoldMeasureId] = valueField\n datum[FoldMeasureName] = m?.alias ?? valueField\n const valueNumber = binValueType === 'percentage' ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId]\n datum[FoldMeasureValue] = valueNumber\n datum[valueField] = valueNumber\n\n foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber)\n foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber)\n foldInfo.statistics.sum += valueNumber\n foldInfo.statistics.count++\n })\n if (m?.id) {\n foldInfo.foldMap[m?.id] = m?.alias\n }\n\n const res = unfoldDimensions(binData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {\n const res = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n subMeasures.filter((item) => encoding.y?.includes(item.id)).slice(0, 1),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n res.dataset.forEach((datum) => {\n datum[BinStartMeasureId] = datum[encoding.x0![0]]\n datum[BinEndMeasureId] = datum[encoding.x1![0]]\n datum[FoldMeasureId] = datum[encoding.y![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = res.foldInfo\n unfoldInfo = res.unfoldInfo\n }\n\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n datasets.push(newDatasets)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithHistogramEncoding","advancedVSeed","context","result","vseed","dataset","chartType","encoding","config","measures","dimensions","colorMeasureId","getColorMeasureId","uniqDims","uniqueBy","item","chartConfig","binCount","binStep","binValueType","measureGroups","measure","rowColumnFields","dim","datasets","datasetReshapeInfo","measureGroup","index","subMeasures","groupId","newDatasets","foldInfo","FoldMeasureId","FoldMeasureName","FoldMeasureValue","Infinity","unfoldInfo","valueField","m","binData","bin","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","datum","valueNumber","Math","res","unfoldDimensions","Separator","d","dataReshapeByEncoding","reshapeInfo"],"mappings":"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"}
@@ -7,7 +7,9 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
7
7
  };
8
8
  const { vseed } = context;
9
9
  const { dataset } = vseed;
10
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
10
+ const { encoding, chartType } = advancedVSeed;
11
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
12
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11
13
  const allMeasures = findAllMeasures(measures);
12
14
  const measureGroups = [];
13
15
  const depth = measureDepth(measures);
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.ts"],"sourcesContent":["import { dataReshapeByEncoding, FoldXMeasureValue, FoldYMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures, measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithScatterEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed\n const allMeasures = findAllMeasures(measures)\n\n const measureGroups: Array<MeasureGroup[]> = []\n\n const depth = measureDepth(measures)\n if (depth === 3) {\n measures.forEach((measure: MeasureGroup) => {\n measureGroups.push(measure.children as unknown as MeasureGroup[])\n })\n } else if (depth === 2) {\n measureGroups.push(measures)\n }\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measures: MeasureGroup[], index) => {\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in scatter')\n }\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const xMeasures = measures[0]\n const yMeasures = measures[1] || xMeasures\n\n if (xMeasures && xMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding as Encoding, {\n foldMeasureValue: `${FoldXMeasureValue}${index}`,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n })\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (yMeasures && yMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding as Encoding, {\n foldMeasureValue: `${FoldYMeasureValue}${index}`,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n })\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets[0].map((d, index) => ({ ...d, ...(datasets[1]?.[index] || {}) })))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithScatterEncoding","advancedVSeed","context","result","vseed","dataset","dimensions","measures","encoding","chartType","allMeasures","findAllMeasures","measureGroups","depth","measureDepth","measure","datasetList","datasetReshapeInfo","index","Error","foldInfoList","unfoldInfoList","datasets","xMeasures","yMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","FoldXMeasureValue","getColorMeasureId","item","FoldYMeasureValue","d","prev","cur","reshapeInfo"],"mappings":";;;AAeO,MAAMA,kCAAgD,CAACC,eAAeC;IAC3E,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGR;IAChE,MAAMS,cAAcC,gBAAgBJ;IAEpC,MAAMK,gBAAuC,EAAE;IAE/C,MAAMC,QAAQC,aAAaP;IAC3B,IAAIM,AAAU,MAAVA,OACFN,SAAS,OAAO,CAAC,CAACQ;QAChBH,cAAc,IAAI,CAACG,QAAQ,QAAQ;IACrC;SACK,IAAIF,AAAU,MAAVA,OACTD,cAAc,IAAI,CAACL;IAGrB,MAAMS,cAAyB,EAAE;IACjC,MAAMC,qBAAyC,EAAE;IAEjDL,cAAc,OAAO,CAAC,CAACL,UAA0BW;QAC/C,IAAIX,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIY,MAAM;QAGlB,MAAMC,eAA2B,EAAE;QACnC,MAAMC,iBAA+B,EAAE;QAEvC,MAAMC,WAAsB,EAAE;QAC9B,MAAMC,YAAYhB,QAAQ,CAAC,EAAE;QAC7B,MAAMiB,YAAYjB,QAAQ,CAAC,EAAE,IAAIgB;QAEjC,IAAIA,aAAaA,UAAU,QAAQ,EAAE;YACnC,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBAAsBvB,SAASC,YAAYiB,UAAU,QAAQ,EAAEf,UAAsB;gBACvF,kBAAkB,GAAGqB,oBAAoBX,OAAO;gBAChD,eAAe;gBACf,gBAAgBY,kBAAkB7B,eAAgCG;gBAClE,SAASM,YAAY,GAAG,CAAC,CAACqB,OAASA,KAAK,EAAE;YAC5C;YAEAT,SAAS,IAAI,CAACG;YACdL,aAAa,IAAI,CAACM;YAClBL,eAAe,IAAI,CAACM;QACtB;QAEA,IAAIH,aAAaA,UAAU,QAAQ,EAAE;YACnC,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBAAsBvB,SAASC,YAAYkB,UAAU,QAAQ,EAAEhB,UAAsB;gBACvF,kBAAkB,GAAGwB,oBAAoBd,OAAO;gBAChD,eAAe;gBACf,gBAAgBY,kBAAkB7B,eAAgCG;gBAClE,SAASM,YAAY,GAAG,CAAC,CAACqB,OAASA,KAAK,EAAE;YAC5C;YAEAT,SAAS,IAAI,CAACG;YACdL,aAAa,IAAI,CAACM;YAClBL,eAAe,IAAI,CAACM;QACtB;QAEA,MAAMA,aAAyB;YAC7B,GAAGN,cAAc,CAAC,EAAE;YACpB,YAAYA,eAAe,OAAO,CAAC,CAACY,IAAMA,EAAE,UAAU;YACtD,YAAYZ,eAAe,MAAM,CAAC,CAACa,MAAMC,MAAS;oBAAE,GAAGD,IAAI;oBAAE,GAAGC,IAAI,UAAU;gBAAC,IAAI,CAAC;QACtF;QAEA,MAAMC,cAAc;YAClB,IAAI,GAAG3B,UAAU,CAAC,EAAES,OAAO;YAC3BA;YACA,UAAUE,YAAY,CAAC,EAAE;YACzB,cAAcA;YACd,YAAYO;QACd;QAEAV,mBAAmB,IAAI,CAACmB;QACxBpB,YAAY,IAAI,CAACM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAACW,GAAGf,QAAW;gBAAE,GAAGe,CAAC;gBAAE,GAAIX,QAAQ,CAAC,EAAE,EAAE,CAACJ,MAAM,IAAI,CAAC,CAAC;YAAE;IAC1F;IAEA,OAAO;QACL,GAAGf,MAAM;QACT,SAASa;QACT,oBAAoBC;IACtB;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.ts"],"sourcesContent":["import { dataReshapeByEncoding, FoldXMeasureValue, FoldYMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures, measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const pivotReshapeWithScatterEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const allMeasures = findAllMeasures(measures)\n\n const measureGroups: Array<MeasureGroup[]> = []\n\n const depth = measureDepth(measures)\n if (depth === 3) {\n measures.forEach((measure: MeasureGroup) => {\n measureGroups.push(measure.children as unknown as MeasureGroup[])\n })\n } else if (depth === 2) {\n measureGroups.push(measures)\n }\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measureGroups.forEach((measures: MeasureGroup[], index) => {\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in scatter')\n }\n\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const xMeasures = measures[0]\n const yMeasures = measures[1] || xMeasures\n\n if (xMeasures && xMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding as Encoding, {\n foldMeasureValue: `${FoldXMeasureValue}${index}`,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n })\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (yMeasures && yMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding as Encoding, {\n foldMeasureValue: `${FoldYMeasureValue}${index}`,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n omitIds: allMeasures.map((item) => item.id),\n })\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `${chartType}-${index}`,\n index,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n datasetList.push(datasets[0].map((d, index) => ({ ...d, ...(datasets[1]?.[index] || {}) })))\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n"],"names":["pivotReshapeWithScatterEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","allMeasures","findAllMeasures","measureGroups","depth","measureDepth","measure","datasetList","datasetReshapeInfo","index","Error","foldInfoList","unfoldInfoList","datasets","xMeasures","yMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","FoldXMeasureValue","getColorMeasureId","item","FoldYMeasureValue","d","prev","cur","reshapeInfo"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FoldMeasureId, FoldMeasureName, MaxMeasureId, MedianMeasureId, MinMeasureId, OutliersMeasureId, Q1MeasureValue, Q3MeasureValue, Separator, unfoldDimensions } from "../../../../../dataReshape/index.js";
1
+ import { FoldMeasureId, FoldMeasureName, LowerWhisker, MedianMeasureId, OutliersMeasureId, Q1MeasureValue, Q3MeasureValue, Separator, UpperWhisker, unfoldDimensions } from "../../../../../dataReshape/index.js";
2
2
  import { findAllMeasures } from "../../../../utils/index.js";
3
3
  import { boxplot } from "@visactor/vdataset";
4
4
  import { uniqueBy } from "remeda";
@@ -8,36 +8,42 @@ const reshapeWithBoxplotEncoding = (advancedVSeed, context)=>{
8
8
  };
9
9
  const { vseed } = context;
10
10
  const { dataset, chartType } = vseed;
11
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
11
+ const { encoding = {}, config } = advancedVSeed;
12
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
13
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
12
14
  const uniqDims = uniqueBy(dimensions, (item)=>item.id);
13
15
  const whiskers = config?.[chartType]?.whiskers;
14
16
  let newDatasets = [];
15
17
  let foldInfo = {};
16
18
  let unfoldInfo = {};
17
19
  const allMeasures = findAllMeasures(measures);
18
- if (encoding.value?.length) encoding.value.forEach((f)=>{
19
- const m = allMeasures.find((m)=>m.id === f);
20
- const boxPlotData = boxplot(dataset, {
21
- field: f,
22
- groupField: [
23
- ...encoding.x ?? [],
24
- ...encoding.color ?? []
25
- ],
26
- whiskers,
27
- outputNames: {
28
- q1: Q1MeasureValue,
29
- q3: Q3MeasureValue,
30
- min: MinMeasureId,
31
- max: MaxMeasureId,
32
- median: MedianMeasureId,
33
- outliers: OutliersMeasureId
34
- }
35
- });
36
- boxPlotData.forEach((datum)=>{
37
- datum[FoldMeasureId] = f;
38
- datum[FoldMeasureName] = m?.alias ?? f;
20
+ if (encoding.value?.length) {
21
+ const boxPlotDataList = [];
22
+ encoding.value.forEach((f)=>{
23
+ const m = allMeasures.find((m)=>m.id === f);
24
+ const boxPlotData = boxplot(dataset, {
25
+ field: f,
26
+ groupField: [
27
+ ...encoding.x ?? [],
28
+ ...encoding.color ?? []
29
+ ],
30
+ whiskers,
31
+ outputNames: {
32
+ q1: Q1MeasureValue,
33
+ q3: Q3MeasureValue,
34
+ lowerWhisker: LowerWhisker,
35
+ upperWhisker: UpperWhisker,
36
+ median: MedianMeasureId,
37
+ outliers: OutliersMeasureId
38
+ }
39
+ });
40
+ boxPlotData.forEach((datum)=>{
41
+ datum[FoldMeasureId] = f;
42
+ datum[FoldMeasureName] = m?.alias ?? f;
43
+ });
44
+ boxPlotDataList.push(...boxPlotData);
39
45
  });
40
- const res = unfoldDimensions(boxPlotData, uniqDims, encoding, {
46
+ const res = unfoldDimensions(boxPlotDataList, uniqDims, encoding, {
41
47
  foldMeasureId: FoldMeasureId,
42
48
  separator: Separator,
43
49
  colorItemAsId: false
@@ -46,16 +52,15 @@ const reshapeWithBoxplotEncoding = (advancedVSeed, context)=>{
46
52
  newDatasets.push(d);
47
53
  });
48
54
  unfoldInfo = res.unfoldInfo;
49
- });
50
- else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
55
+ } else if (encoding.q1?.length && encoding.q3?.length && encoding.min?.length && encoding.max?.length && encoding.median?.length) {
51
56
  const res = unfoldDimensions(dataset, uniqDims, encoding, {
52
57
  foldMeasureId: FoldMeasureId,
53
58
  separator: Separator,
54
59
  colorItemAsId: false
55
60
  });
56
61
  res.dataset.forEach((datum)=>{
57
- datum[MaxMeasureId] = datum[encoding.max[0]];
58
- datum[MinMeasureId] = datum[encoding.min[0]];
62
+ datum[UpperWhisker] = datum[encoding.max[0]];
63
+ datum[LowerWhisker] = datum[encoding.min[0]];
59
64
  datum[Q1MeasureValue] = datum[encoding.q1[0]];
60
65
  datum[Q3MeasureValue] = datum[encoding.q3[0]];
61
66
  datum[MedianMeasureId] = datum[encoding.median[0]];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.ts"],"sourcesContent":["import {\n FoldMeasureId,\n FoldMeasureName,\n MaxMeasureId,\n MedianMeasureId,\n MinMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, ColumnParallel, Dataset, Encoding } from 'src/types'\nimport { boxplot } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\n\nexport const reshapeWithBoxplotEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed\n const uniqDims = uniqueBy(dimensions, (item) => item.id)\n\n const whiskers = config?.[chartType as 'boxPlot']?.whiskers\n\n let newDatasets: any[] = []\n let foldInfo: any = {}\n let unfoldInfo: any = {}\n\n const allMeasures = findAllMeasures(measures)\n\n if (encoding.value?.length) {\n encoding.value.forEach((f) => {\n const m = allMeasures.find((m) => m.id === f)\n const boxPlotData = boxplot(dataset, {\n field: f,\n groupField: [...(encoding.x ?? []), ...(encoding.color ?? [])] as string[],\n whiskers,\n outputNames: {\n q1: Q1MeasureValue,\n q3: Q3MeasureValue,\n min: MinMeasureId,\n max: MaxMeasureId,\n median: MedianMeasureId,\n outliers: OutliersMeasureId,\n },\n }) as Dataset\n\n boxPlotData.forEach((datum) => {\n datum[FoldMeasureId] = f\n datum[FoldMeasureName] = m?.alias ?? f\n })\n\n const res = unfoldDimensions(boxPlotData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n })\n } else if (\n encoding.q1?.length &&\n encoding.q3?.length &&\n encoding.min?.length &&\n encoding.max?.length &&\n encoding.median?.length\n ) {\n const res = unfoldDimensions(dataset, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((datum) => {\n datum[MaxMeasureId] = datum[encoding.max![0]]\n datum[MinMeasureId] = datum[encoding.min![0]]\n datum[Q1MeasureValue] = datum[encoding.q1![0]]\n datum[Q3MeasureValue] = datum[encoding.q3![0]]\n datum[MedianMeasureId] = datum[encoding.median![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = {}\n unfoldInfo = res.unfoldInfo\n }\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n"],"names":["reshapeWithBoxplotEncoding","advancedVSeed","context","result","vseed","dataset","chartType","dimensions","measures","encoding","config","uniqDims","uniqueBy","item","whiskers","newDatasets","foldInfo","unfoldInfo","allMeasures","findAllMeasures","f","m","boxPlotData","boxplot","Q1MeasureValue","Q3MeasureValue","MinMeasureId","MaxMeasureId","MedianMeasureId","OutliersMeasureId","datum","FoldMeasureId","FoldMeasureName","res","unfoldDimensions","Separator","d","String"],"mappings":";;;;AAiBO,MAAMA,6BAA2C,CAACC,eAAeC;IACtE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAEC,SAAS,EAAE,GAAGF;IAC/B,MAAM,EAAEG,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,WAAW,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAGT;IAClE,MAAMU,WAAWC,SAASL,YAAY,CAACM,OAASA,KAAK,EAAE;IAEvD,MAAMC,WAAWJ,QAAQ,CAACJ,UAAuB,EAAE;IAEnD,IAAIS,cAAqB,EAAE;IAC3B,IAAIC,WAAgB,CAAC;IACrB,IAAIC,aAAkB,CAAC;IAEvB,MAAMC,cAAcC,gBAAgBX;IAEpC,IAAIC,SAAS,KAAK,EAAE,QAClBA,SAAS,KAAK,CAAC,OAAO,CAAC,CAACW;QACtB,MAAMC,IAAIH,YAAY,IAAI,CAAC,CAACG,IAAMA,EAAE,EAAE,KAAKD;QAC3C,MAAME,cAAcC,QAAQlB,SAAS;YACnC,OAAOe;YACP,YAAY;mBAAKX,SAAS,CAAC,IAAI,EAAE;mBAAOA,SAAS,KAAK,IAAI,EAAE;aAAE;YAC9DK;YACA,aAAa;gBACX,IAAIU;gBACJ,IAAIC;gBACJ,KAAKC;gBACL,KAAKC;gBACL,QAAQC;gBACR,UAAUC;YACZ;QACF;QAEAP,YAAY,OAAO,CAAC,CAACQ;YACnBA,KAAK,CAACC,cAAc,GAAGX;YACvBU,KAAK,CAACE,gBAAgB,GAAGX,GAAG,SAASD;QACvC;QAEA,MAAMa,MAAMC,iBAAiBZ,aAAaX,UAAUF,UAAsB;YACxE,eAAesB;YACf,WAAWI;YACX,eAAe;QACjB;QAEAF,IAAI,OAAO,CAAC,OAAO,CAAC,CAACG;YACnBrB,YAAY,IAAI,CAACqB;QACnB;QACAnB,aAAagB,IAAI,UAAU;IAC7B;SACK,IACLxB,SAAS,EAAE,EAAE,UACbA,SAAS,EAAE,EAAE,UACbA,SAAS,GAAG,EAAE,UACdA,SAAS,GAAG,EAAE,UACdA,SAAS,MAAM,EAAE,QACjB;QACA,MAAMwB,MAAMC,iBAAiB7B,SAASM,UAAUF,UAAsB;YACpE,eAAesB;YACf,WAAWI;YACX,eAAe;QACjB;QAEAF,IAAI,OAAO,CAAC,OAAO,CAAC,CAACH;YACnBA,KAAK,CAACH,aAAa,GAAGG,KAAK,CAACrB,SAAS,GAAI,CAAC,EAAE,CAAC;YAC7CqB,KAAK,CAACJ,aAAa,GAAGI,KAAK,CAACrB,SAAS,GAAI,CAAC,EAAE,CAAC;YAC7CqB,KAAK,CAACN,eAAe,GAAGM,KAAK,CAACrB,SAAS,EAAG,CAAC,EAAE,CAAC;YAC9CqB,KAAK,CAACL,eAAe,GAAGK,KAAK,CAACrB,SAAS,EAAG,CAAC,EAAE,CAAC;YAC9CqB,KAAK,CAACF,gBAAgB,GAAGE,KAAK,CAACrB,SAAS,MAAO,CAAC,EAAE,CAAC;QACrD;QAEAM,cAAckB,IAAI,OAAO;QACzBjB,WAAW,CAAC;QACZC,aAAagB,IAAI,UAAU;IAC7B;IAEA,OAAO;QACL,GAAG9B,MAAM;QACT,SAASY;QACT,oBAAoB;YAClB;gBACE,IAAIsB,OAAO/B;gBACX,OAAO;gBACPU;gBACAC;YACF;SACD;QACDV;QACAC;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.ts"],"sourcesContent":["import {\n FoldMeasureId,\n FoldMeasureName,\n LowerWhisker,\n MedianMeasureId,\n OutliersMeasureId,\n Q1MeasureValue,\n Q3MeasureValue,\n Separator,\n unfoldDimensions,\n UpperWhisker,\n} from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, ColumnParallel, Dataset, Encoding } from 'src/types'\nimport { boxplot } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\n\nexport const reshapeWithBoxplotEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { encoding = {}, config } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const uniqDims = uniqueBy(dimensions, (item) => item.id)\n\n const whiskers = config?.[chartType as 'boxPlot']?.whiskers\n\n let newDatasets: any[] = []\n let foldInfo: any = {}\n let unfoldInfo: any = {}\n\n const allMeasures = findAllMeasures(measures)\n\n if (encoding.value?.length) {\n const boxPlotDataList: Dataset = []\n encoding.value.forEach((f) => {\n const m = allMeasures.find((m) => m.id === f)\n const boxPlotData = boxplot(dataset, {\n field: f,\n groupField: [...(encoding.x ?? []), ...(encoding.color ?? [])] as string[],\n whiskers,\n outputNames: {\n q1: Q1MeasureValue,\n q3: Q3MeasureValue,\n lowerWhisker: LowerWhisker,\n upperWhisker: UpperWhisker,\n median: MedianMeasureId,\n outliers: OutliersMeasureId,\n },\n }) as Dataset\n\n boxPlotData.forEach((datum) => {\n datum[FoldMeasureId] = f\n datum[FoldMeasureName] = m?.alias ?? f\n })\n boxPlotDataList.push(...boxPlotData)\n })\n const res = unfoldDimensions(boxPlotDataList, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (\n encoding.q1?.length &&\n encoding.q3?.length &&\n encoding.min?.length &&\n encoding.max?.length &&\n encoding.median?.length\n ) {\n const res = unfoldDimensions(dataset, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((datum) => {\n datum[UpperWhisker] = datum[encoding.max![0]]\n datum[LowerWhisker] = datum[encoding.min![0]]\n datum[Q1MeasureValue] = datum[encoding.q1![0]]\n datum[Q3MeasureValue] = datum[encoding.q3![0]]\n datum[MedianMeasureId] = datum[encoding.median![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = {}\n unfoldInfo = res.unfoldInfo\n }\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n"],"names":["reshapeWithBoxplotEncoding","advancedVSeed","context","result","vseed","dataset","chartType","encoding","config","measures","dimensions","uniqDims","uniqueBy","item","whiskers","newDatasets","foldInfo","unfoldInfo","allMeasures","findAllMeasures","boxPlotDataList","f","m","boxPlotData","boxplot","Q1MeasureValue","Q3MeasureValue","LowerWhisker","UpperWhisker","MedianMeasureId","OutliersMeasureId","datum","FoldMeasureId","FoldMeasureName","res","unfoldDimensions","Separator","d","String"],"mappings":";;;;AAiBO,MAAMA,6BAA2C,CAACC,eAAeC;IACtE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAEC,SAAS,EAAE,GAAGF;IAC/B,MAAM,EAAEG,WAAW,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAGP;IAClC,MAAMQ,WAAWR,cAAc,eAAe,IAAIA,cAAc,QAAQ,IAAI,EAAE;IAC9E,MAAMS,aAAaT,cAAc,iBAAiB,IAAIA,cAAc,UAAU,IAAI,EAAE;IACpF,MAAMU,WAAWC,SAASF,YAAY,CAACG,OAASA,KAAK,EAAE;IAEvD,MAAMC,WAAWN,QAAQ,CAACF,UAAuB,EAAE;IAEnD,IAAIS,cAAqB,EAAE;IAC3B,IAAIC,WAAgB,CAAC;IACrB,IAAIC,aAAkB,CAAC;IAEvB,MAAMC,cAAcC,gBAAgBV;IAEpC,IAAIF,SAAS,KAAK,EAAE,QAAQ;QAC1B,MAAMa,kBAA2B,EAAE;QACnCb,SAAS,KAAK,CAAC,OAAO,CAAC,CAACc;YACtB,MAAMC,IAAIJ,YAAY,IAAI,CAAC,CAACI,IAAMA,EAAE,EAAE,KAAKD;YAC3C,MAAME,cAAcC,QAAQnB,SAAS;gBACnC,OAAOgB;gBACP,YAAY;uBAAKd,SAAS,CAAC,IAAI,EAAE;uBAAOA,SAAS,KAAK,IAAI,EAAE;iBAAE;gBAC9DO;gBACA,aAAa;oBACX,IAAIW;oBACJ,IAAIC;oBACJ,cAAcC;oBACd,cAAcC;oBACd,QAAQC;oBACR,UAAUC;gBACZ;YACF;YAEAP,YAAY,OAAO,CAAC,CAACQ;gBACnBA,KAAK,CAACC,cAAc,GAAGX;gBACvBU,KAAK,CAACE,gBAAgB,GAAGX,GAAG,SAASD;YACvC;YACAD,gBAAgB,IAAI,IAAIG;QAC1B;QACA,MAAMW,MAAMC,iBAAiBf,iBAAiBT,UAAUJ,UAAsB;YAC5E,eAAeyB;YACf,WAAWI;YACX,eAAe;QACjB;QAEAF,IAAI,OAAO,CAAC,OAAO,CAAC,CAACG;YACnBtB,YAAY,IAAI,CAACsB;QACnB;QACApB,aAAaiB,IAAI,UAAU;IAC7B,OAAO,IACL3B,SAAS,EAAE,EAAE,UACbA,SAAS,EAAE,EAAE,UACbA,SAAS,GAAG,EAAE,UACdA,SAAS,GAAG,EAAE,UACdA,SAAS,MAAM,EAAE,QACjB;QACA,MAAM2B,MAAMC,iBAAiB9B,SAASM,UAAUJ,UAAsB;YACpE,eAAeyB;YACf,WAAWI;YACX,eAAe;QACjB;QAEAF,IAAI,OAAO,CAAC,OAAO,CAAC,CAACH;YACnBA,KAAK,CAACH,aAAa,GAAGG,KAAK,CAACxB,SAAS,GAAI,CAAC,EAAE,CAAC;YAC7CwB,KAAK,CAACJ,aAAa,GAAGI,KAAK,CAACxB,SAAS,GAAI,CAAC,EAAE,CAAC;YAC7CwB,KAAK,CAACN,eAAe,GAAGM,KAAK,CAACxB,SAAS,EAAG,CAAC,EAAE,CAAC;YAC9CwB,KAAK,CAACL,eAAe,GAAGK,KAAK,CAACxB,SAAS,EAAG,CAAC,EAAE,CAAC;YAC9CwB,KAAK,CAACF,gBAAgB,GAAGE,KAAK,CAACxB,SAAS,MAAO,CAAC,EAAE,CAAC;QACrD;QAEAQ,cAAcmB,IAAI,OAAO;QACzBlB,WAAW,CAAC;QACZC,aAAaiB,IAAI,UAAU;IAC7B;IAEA,OAAO;QACL,GAAG/B,MAAM;QACT,SAASY;QACT,oBAAoB;YAClB;gBACE,IAAIuB,OAAOhC;gBACX,OAAO;gBACPU;gBACAC;YACF;SACD;QACDP;QACAD;IACF;AACF"}
@@ -7,7 +7,9 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
7
7
  };
8
8
  const { vseed } = context;
9
9
  const { dataset } = vseed;
10
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
10
+ const { encoding, chartType } = advancedVSeed;
11
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
12
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11
13
  if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
12
14
  const foldInfoList = [];
13
15
  const unfoldInfoList = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed\n\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in dualAxis')\n }\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || []) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(primaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldPrimaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(secondaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldSecondaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","dimensions","measures","encoding","chartType","Error","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","FoldSecondaryMeasureValue","d","prev","cur","String"],"mappings":";;;AAcO,MAAMA,0BAAwC,CAACC,eAAeC;IACnE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGR;IAEhE,IAAIM,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIG,MAAM;IAElB,MAAMC,eAA2B,EAAE;IACnC,MAAMC,iBAA+B,EAAE;IAEvC,MAAMC,WAAsB,EAAE;IAC9B,MAAMC,kBAAkBP,QAAQ,CAAC,EAAE;IACnC,MAAMQ,oBAAqBR,QAAQ,CAAC,EAAE,IAAI,EAAE;IAE5C,IAAIO,mBAAmBA,gBAAgB,QAAQ,EAAE;QAC/C,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASd,YAAY,CAACe,OAASA,KAAK,EAAE,GACtCD,SAASN,gBAAgB,QAAQ,EAAE,CAACO,OAASA,KAAK,EAAE,GACpDb,UACA;YACE,eAAe;YACf,kBAAkBc;YAClB,gBAAgBC,kBAAkBtB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,IAAIH,qBAAqBA,kBAAkB,QAAQ,EAAE;QACnD,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASd,YAAY,CAACe,OAASA,KAAK,EAAE,GACtCD,SAASL,kBAAkB,QAAQ,EAAE,CAACM,OAASA,KAAK,EAAE,GACtDb,UACA;YACE,eAAe;YACf,kBAAkBgB;YAClB,gBAAgBD,kBAAkBtB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,MAAMA,aAAyB;QAC7B,GAAGN,cAAc,CAAC,EAAE;QACpB,YAAYA,eAAe,OAAO,CAAC,CAACa,IAAMA,EAAE,UAAU;QACtD,YAAYb,eAAe,MAAM,CAAC,CAACc,MAAMC,MAAS;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU;YAAC,IAAI,CAAC;IACtF;IAEA,OAAO;QACL,GAAGxB,MAAM;QACT,SAASU;QACT,oBAAoB;YAClB;gBACE,IAAIe,OAAOnB;gBACX,OAAO;gBACP,UAAUE,YAAY,CAAC,EAAE;gBACzB,cAAcA;gBACd,YAAYO;YACd;SACD;IACH;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithDualEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in dualAxis')\n }\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || []) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(primaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldPrimaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(secondaryMeasures.children, (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n foldMeasureValue: FoldSecondaryMeasureValue,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithDualEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","Error","foldInfoList","unfoldInfoList","datasets","primaryMeasures","secondaryMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","FoldPrimaryMeasureValue","getColorMeasureId","FoldSecondaryMeasureValue","d","prev","cur","String"],"mappings":";;;AAcO,MAAMA,0BAAwC,CAACC,eAAeC;IACnE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,QAAQ,EAAEC,SAAS,EAAE,GAAGN;IAChC,MAAMO,WAAWP,cAAc,eAAe,IAAIA,cAAc,QAAQ,IAAI,EAAE;IAC9E,MAAMQ,aAAaR,cAAc,iBAAiB,IAAIA,cAAc,UAAU,IAAI,EAAE;IAEpF,IAAIO,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIE,MAAM;IAElB,MAAMC,eAA2B,EAAE;IACnC,MAAMC,iBAA+B,EAAE;IAEvC,MAAMC,WAAsB,EAAE;IAC9B,MAAMC,kBAAkBN,QAAQ,CAAC,EAAE;IACnC,MAAMO,oBAAqBP,QAAQ,CAAC,EAAE,IAAI,EAAE;IAE5C,IAAIM,mBAAmBA,gBAAgB,QAAQ,EAAE;QAC/C,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASX,YAAY,CAACY,OAASA,KAAK,EAAE,GACtCD,SAASN,gBAAgB,QAAQ,EAAE,CAACO,OAASA,KAAK,EAAE,GACpDf,UACA;YACE,eAAe;YACf,kBAAkBgB;YAClB,gBAAgBC,kBAAkBtB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,IAAIH,qBAAqBA,kBAAkB,QAAQ,EAAE;QACnD,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASX,YAAY,CAACY,OAASA,KAAK,EAAE,GACtCD,SAASL,kBAAkB,QAAQ,EAAE,CAACM,OAASA,KAAK,EAAE,GACtDf,UACA;YACE,eAAe;YACf,kBAAkBkB;YAClB,gBAAgBD,kBAAkBtB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,MAAMA,aAAyB;QAC7B,GAAGN,cAAc,CAAC,EAAE;QACpB,YAAYA,eAAe,OAAO,CAAC,CAACa,IAAMA,EAAE,UAAU;QACtD,YAAYb,eAAe,MAAM,CAAC,CAACc,MAAMC,MAAS;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU;YAAC,IAAI,CAAC;IACtF;IAEA,OAAO;QACL,GAAGxB,MAAM;QACT,SAASU;QACT,oBAAoB;YAClB;gBACE,IAAIe,OAAOrB;gBACX,OAAO;gBACP,UAAUI,YAAY,CAAC,EAAE;gBACzB,cAAcA;gBACd,YAAYO;YACd;SACD;IACH;AACF"}
@@ -8,9 +8,9 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
8
8
  };
9
9
  const { vseed } = context;
10
10
  const { dataset, chartType } = vseed;
11
- const { dimensions = [], measures = [], encoding } = advancedVSeed;
11
+ const { encoding } = advancedVSeed;
12
12
  const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
13
- const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(findAllMeasures(measures), (item)=>item.id), encoding, {
13
+ const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item)=>item.id), uniqueBy(advancedVSeed.reshapeMeasures ?? findAllMeasures(advancedVSeed.measures), (item)=>item.id), encoding, {
14
14
  colorItemAsId: false,
15
15
  colorMeasureId
16
16
  });
@@ -24,9 +24,7 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
24
24
  foldInfo,
25
25
  unfoldInfo
26
26
  }
27
- ],
28
- dimensions,
29
- measures
27
+ ]
30
28
  };
31
29
  };
32
30
  export { reshapeWithEncoding };
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, ColumnParallel, Encoding } from 'src/types'\n\nexport const reshapeWithEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding } = advancedVSeed\n\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item) => item.id),\n uniqueBy(findAllMeasures(measures), (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n"],"names":["reshapeWithEncoding","advancedVSeed","context","result","vseed","dataset","chartType","dimensions","measures","encoding","colorMeasureId","getColorMeasureId","newDatasets","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","findAllMeasures","String"],"mappings":";;;;AAMO,MAAMA,sBAAoC,CAACC,eAAeC;IAC/D,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAEC,SAAS,EAAE,GAAGF;IAC/B,MAAM,EAAEG,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAE,GAAGR;IAErD,MAAMS,iBAAiBC,kBAAkBV,eAAgCG;IACzE,MAAM,EACJ,SAASQ,WAAW,EACpBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFV,SACAW,SAAST,YAAY,CAACU,OAASA,KAAK,EAAE,GACtCD,SAASE,gBAAgBV,WAAW,CAACS,OAASA,KAAK,EAAE,GACrDR,UACA;QACE,eAAe;QACfC;IACF;IAGF,OAAO;QACL,GAAGP,MAAM;QACT,SAASS;QACT,oBAAoB;YAClB;gBACE,IAAIO,OAAOb;gBACX,OAAO;gBACPO;gBACAC;YACF;SACD;QACDP;QACAC;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport { dataReshapeByEncoding } from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, ColumnParallel, Encoding } from 'src/types'\n\nexport const reshapeWithEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { encoding } = advancedVSeed\n\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item) => item.id),\n uniqueBy(advancedVSeed.reshapeMeasures ?? findAllMeasures(advancedVSeed.measures), (item) => item.id),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithEncoding","advancedVSeed","context","result","vseed","dataset","chartType","encoding","colorMeasureId","getColorMeasureId","newDatasets","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","findAllMeasures","String"],"mappings":";;;;AAMO,MAAMA,sBAAoC,CAACC,eAAeC;IAC/D,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAEC,SAAS,EAAE,GAAGF;IAC/B,MAAM,EAAEG,QAAQ,EAAE,GAAGN;IAErB,MAAMO,iBAAiBC,kBAAkBR,eAAgCG;IACzE,MAAM,EACJ,SAASM,WAAW,EACpBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFR,SACAS,SAASb,cAAc,iBAAiB,IAAIA,cAAc,UAAU,IAAI,EAAE,EAAE,CAACc,OAASA,KAAK,EAAE,GAC7FD,SAASb,cAAc,eAAe,IAAIe,gBAAgBf,cAAc,QAAQ,GAAG,CAACc,OAASA,KAAK,EAAE,GACpGR,UACA;QACE,eAAe;QACfC;IACF;IAGF,OAAO;QACL,GAAGL,MAAM;QACT,SAASO;QACT,oBAAoB;YAClB;gBACE,IAAIO,OAAOX;gBACX,OAAO;gBACPK;gBACAC;YACF;SACD;IACH;AACF"}
@@ -9,7 +9,9 @@ const reshapeWithHistogramEncoding = (advancedVSeed, context)=>{
9
9
  };
10
10
  const { vseed } = context;
11
11
  const { dataset, chartType } = vseed;
12
- const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed;
12
+ const { encoding = {}, config } = advancedVSeed;
13
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
14
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
13
15
  const uniqDims = uniqueBy(dimensions, (item)=>item.id);
14
16
  const chartConfig = config?.[chartType];
15
17
  const binCount = chartConfig?.binCount;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.ts"],"sourcesContent":["import {\n BinCountMeasureId,\n BinEndMeasureId,\n BinPercentageMeasureId,\n BinStartMeasureId,\n dataReshapeByEncoding,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, ColumnParallel, Dataset, Dimension, Encoding, FoldInfo } from 'src/types'\nimport { bin } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes/color/colorAdapter'\n\nexport const reshapeWithHistogramEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding = {}, config } = advancedVSeed\n const uniqDims = uniqueBy(dimensions, (item) => item.id)\n const chartConfig = config?.[chartType as 'histogram']\n const binCount = chartConfig?.binCount\n const binStep = chartConfig?.binStep\n const binValueType = chartConfig?.binValueType\n\n let newDatasets: any[] = []\n let foldInfo: FoldInfo = {\n foldMap: {},\n measureId: FoldMeasureId,\n measureName: FoldMeasureName,\n measureValue: FoldMeasureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n }\n let unfoldInfo: any = {}\n\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const allMeasures = findAllMeasures(measures)\n\n if (encoding.value?.length) {\n const valueField = encoding.value[0]\n const m = allMeasures.find((m) => m.id === valueField)\n const binData = bin(dataset, {\n field: valueField,\n groupField: [...(encoding.x ?? []), ...(encoding.color ?? [])] as string[],\n bins: binCount,\n step: binStep,\n outputNames: {\n x0: BinStartMeasureId,\n x1: BinEndMeasureId,\n count: BinCountMeasureId,\n percentage: BinPercentageMeasureId,\n },\n }) as Dataset\n\n binData.forEach((datum) => {\n datum[FoldMeasureId] = valueField\n datum[FoldMeasureName] = m?.alias ?? valueField\n const valueNumber = binValueType === 'percentage' ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId]\n datum[FoldMeasureValue] = valueNumber\n datum[valueField] = valueNumber\n foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber)\n foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber)\n foldInfo.statistics.sum += valueNumber\n foldInfo.statistics.count++\n })\n if (m?.id) {\n foldInfo.foldMap[m?.id] = m?.alias\n }\n\n const res = unfoldDimensions(binData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {\n const res = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n findAllMeasures(measures)\n .filter((item) => encoding.y?.includes(item.id))\n .slice(0, 1),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n res.dataset.forEach((datum) => {\n datum[BinStartMeasureId] = datum[encoding.x0![0]]\n datum[BinEndMeasureId] = datum[encoding.x1![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = res.foldInfo\n unfoldInfo = res.unfoldInfo\n }\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n"],"names":["reshapeWithHistogramEncoding","advancedVSeed","context","result","vseed","dataset","chartType","dimensions","measures","encoding","config","uniqDims","uniqueBy","item","chartConfig","binCount","binStep","binValueType","newDatasets","foldInfo","FoldMeasureId","FoldMeasureName","FoldMeasureValue","Infinity","unfoldInfo","colorMeasureId","getColorMeasureId","allMeasures","findAllMeasures","valueField","m","binData","bin","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","datum","valueNumber","Math","res","unfoldDimensions","Separator","d","dataReshapeByEncoding","String"],"mappings":"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"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.ts"],"sourcesContent":["import {\n BinCountMeasureId,\n BinEndMeasureId,\n BinPercentageMeasureId,\n BinStartMeasureId,\n dataReshapeByEncoding,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n Separator,\n unfoldDimensions,\n} from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, ColumnParallel, Dataset, Dimension, Encoding, FoldInfo } from 'src/types'\nimport { bin } from '@visactor/vdataset'\nimport { uniqueBy } from 'remeda'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes/color/colorAdapter'\n\nexport const reshapeWithHistogramEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset, chartType } = vseed as ColumnParallel\n const { encoding = {}, config } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n const uniqDims = uniqueBy(dimensions, (item) => item.id)\n const chartConfig = config?.[chartType as 'histogram']\n const binCount = chartConfig?.binCount\n const binStep = chartConfig?.binStep\n const binValueType = chartConfig?.binValueType\n\n let newDatasets: any[] = []\n let foldInfo: FoldInfo = {\n foldMap: {},\n measureId: FoldMeasureId,\n measureName: FoldMeasureName,\n measureValue: FoldMeasureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n }\n let unfoldInfo: any = {}\n\n const colorMeasureId = getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed)\n const allMeasures = findAllMeasures(measures)\n\n if (encoding.value?.length) {\n const valueField = encoding.value[0]\n const m = allMeasures.find((m) => m.id === valueField)\n const binData = bin(dataset, {\n field: valueField,\n groupField: [...(encoding.x ?? []), ...(encoding.color ?? [])] as string[],\n bins: binCount,\n step: binStep,\n outputNames: {\n x0: BinStartMeasureId,\n x1: BinEndMeasureId,\n count: BinCountMeasureId,\n percentage: BinPercentageMeasureId,\n },\n }) as Dataset\n\n binData.forEach((datum) => {\n datum[FoldMeasureId] = valueField\n datum[FoldMeasureName] = m?.alias ?? valueField\n const valueNumber = binValueType === 'percentage' ? +datum[BinPercentageMeasureId] : +datum[BinCountMeasureId]\n datum[FoldMeasureValue] = valueNumber\n datum[valueField] = valueNumber\n foldInfo.statistics.min = Math.min(foldInfo.statistics.min, valueNumber)\n foldInfo.statistics.max = Math.max(foldInfo.statistics.max, valueNumber)\n foldInfo.statistics.sum += valueNumber\n foldInfo.statistics.count++\n })\n if (m?.id) {\n foldInfo.foldMap[m?.id] = m?.alias\n }\n\n const res = unfoldDimensions(binData, uniqDims, encoding as Encoding, {\n foldMeasureId: FoldMeasureId,\n separator: Separator,\n colorItemAsId: false,\n })\n\n res.dataset.forEach((d) => {\n newDatasets.push(d)\n })\n unfoldInfo = res.unfoldInfo\n } else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {\n const res = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (item: Dimension) => item.id),\n findAllMeasures(measures)\n .filter((item) => encoding.y?.includes(item.id))\n .slice(0, 1),\n encoding as Encoding,\n {\n colorItemAsId: false,\n colorMeasureId,\n },\n )\n\n res.dataset.forEach((datum) => {\n datum[BinStartMeasureId] = datum[encoding.x0![0]]\n datum[BinEndMeasureId] = datum[encoding.x1![0]]\n })\n\n newDatasets = res.dataset\n foldInfo = res.foldInfo\n unfoldInfo = res.unfoldInfo\n }\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n"],"names":["reshapeWithHistogramEncoding","advancedVSeed","context","result","vseed","dataset","chartType","encoding","config","measures","dimensions","uniqDims","uniqueBy","item","chartConfig","binCount","binStep","binValueType","newDatasets","foldInfo","FoldMeasureId","FoldMeasureName","FoldMeasureValue","Infinity","unfoldInfo","colorMeasureId","getColorMeasureId","allMeasures","findAllMeasures","valueField","m","binData","bin","BinStartMeasureId","BinEndMeasureId","BinCountMeasureId","BinPercentageMeasureId","datum","valueNumber","Math","res","unfoldDimensions","Separator","d","dataReshapeByEncoding","String"],"mappings":"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"}
@@ -7,7 +7,9 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
7
7
  };
8
8
  const { vseed } = context;
9
9
  const { dataset } = vseed;
10
- const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
10
+ const { encoding, chartType } = advancedVSeed;
11
+ const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
12
+ const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
11
13
  if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
12
14
  const foldInfoList = [];
13
15
  const unfoldInfoList = [];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport {\n dataReshapeByEncoding,\n FoldXMeasureId,\n FoldXMeasureValue,\n FoldYMeasureId,\n FoldYMeasureValue,\n} from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithScatterEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed\n\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in scatter')\n }\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const xMeasures = measures[0] as MeasureGroup\n const yMeasures = (measures[1] || xMeasures) as MeasureGroup\n\n if (xMeasures && xMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (d) => d.id),\n uniqueBy(xMeasures.children, (d) => d.id),\n encoding as Encoding,\n {\n foldMeasureValue: FoldXMeasureValue,\n foldMeasureId: FoldXMeasureId,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (yMeasures && yMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n datasets[0],\n uniqueBy(dimensions, (d) => d.id),\n uniqueBy(yMeasures.children, (d) => d.id),\n encoding as Encoding,\n {\n foldMeasureValue: FoldYMeasureValue,\n foldMeasureId: FoldYMeasureId,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets[0] = newDataset\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets[0],\n\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithScatterEncoding","advancedVSeed","context","result","vseed","dataset","dimensions","measures","encoding","chartType","Error","foldInfoList","unfoldInfoList","datasets","xMeasures","yMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","d","FoldXMeasureValue","FoldXMeasureId","getColorMeasureId","FoldYMeasureValue","FoldYMeasureId","prev","cur","String"],"mappings":";;;AAoBO,MAAMA,6BAA2C,CAACC,eAAeC;IACtE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,aAAa,EAAE,EAAEC,WAAW,EAAE,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGR;IAEhE,IAAIM,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIG,MAAM;IAElB,MAAMC,eAA2B,EAAE;IACnC,MAAMC,iBAA+B,EAAE;IAEvC,MAAMC,WAAsB,EAAE;IAC9B,MAAMC,YAAYP,QAAQ,CAAC,EAAE;IAC7B,MAAMQ,YAAaR,QAAQ,CAAC,EAAE,IAAIO;IAElC,IAAIA,aAAaA,UAAU,QAAQ,EAAE;QACnC,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASd,YAAY,CAACe,IAAMA,EAAE,EAAE,GAChCD,SAASN,UAAU,QAAQ,EAAE,CAACO,IAAMA,EAAE,EAAE,GACxCb,UACA;YACE,kBAAkBc;YAClB,eAAeC;YACf,eAAe;YACf,gBAAgBC,kBAAkBvB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,IAAIH,aAAaA,UAAU,QAAQ,EAAE;QACnC,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFN,QAAQ,CAAC,EAAE,EACXO,SAASd,YAAY,CAACe,IAAMA,EAAE,EAAE,GAChCD,SAASL,UAAU,QAAQ,EAAE,CAACM,IAAMA,EAAE,EAAE,GACxCb,UACA;YACE,kBAAkBiB;YAClB,eAAeC;YACf,eAAe;YACf,gBAAgBF,kBAAkBvB,eAAgCG;QACpE;QAGFS,QAAQ,CAAC,EAAE,GAAGG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,MAAMA,aAAyB;QAC7B,GAAGN,cAAc,CAAC,EAAE;QACpB,YAAYA,eAAe,OAAO,CAAC,CAACS,IAAMA,EAAE,UAAU;QACtD,YAAYT,eAAe,MAAM,CAAC,CAACe,MAAMC,MAAS;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU;YAAC,IAAI,CAAC;IACtF;IAEA,OAAO;QACL,GAAGzB,MAAM;QACT,SAASU,QAAQ,CAAC,EAAE;QAEpB,oBAAoB;YAClB;gBACE,IAAIgB,OAAOpB;gBACX,OAAO;gBACP,UAAUE,YAAY,CAAC,EAAE;gBACzB,cAAcA;gBACd,YAAYO;YACd;SACD;IACH;AACF"}
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.ts"],"sourcesContent":["import { uniqueBy } from 'remeda'\nimport {\n dataReshapeByEncoding,\n FoldXMeasureId,\n FoldXMeasureValue,\n FoldYMeasureId,\n FoldYMeasureValue,\n} from 'src/dataReshape'\nimport { getColorMeasureId } from 'src/pipeline/spec/chart/pipes'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n Encoding,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\nexport const reshapeWithScatterEncoding: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed as ColumnParallel\n const { encoding, chartType } = advancedVSeed\n const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []\n const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? []\n\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2 groups in scatter')\n }\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const datasets: Dataset[] = []\n const xMeasures = measures[0] as MeasureGroup\n const yMeasures = (measures[1] || xMeasures) as MeasureGroup\n\n if (xMeasures && xMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n dataset,\n uniqueBy(dimensions, (d) => d.id),\n uniqueBy(xMeasures.children, (d) => d.id),\n encoding as Encoding,\n {\n foldMeasureValue: FoldXMeasureValue,\n foldMeasureId: FoldXMeasureId,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets.push(newDataset)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (yMeasures && yMeasures.children) {\n const {\n dataset: newDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeByEncoding(\n datasets[0],\n uniqueBy(dimensions, (d) => d.id),\n uniqueBy(yMeasures.children, (d) => d.id),\n encoding as Encoding,\n {\n foldMeasureValue: FoldYMeasureValue,\n foldMeasureId: FoldYMeasureId,\n colorItemAsId: true,\n colorMeasureId: getColorMeasureId(advancedVSeed as AdvancedVSeed, vseed),\n },\n )\n\n datasets[0] = newDataset\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n ...unfoldInfoList[0],\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets[0],\n\n datasetReshapeInfo: [\n {\n id: String(chartType),\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n"],"names":["reshapeWithScatterEncoding","advancedVSeed","context","result","vseed","dataset","encoding","chartType","measures","dimensions","Error","foldInfoList","unfoldInfoList","datasets","xMeasures","yMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","d","FoldXMeasureValue","FoldXMeasureId","getColorMeasureId","FoldYMeasureValue","FoldYMeasureId","prev","cur","String"],"mappings":";;;AAoBO,MAAMA,6BAA2C,CAACC,eAAeC;IACtE,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,QAAQ,EAAEC,SAAS,EAAE,GAAGN;IAChC,MAAMO,WAAWP,cAAc,eAAe,IAAIA,cAAc,QAAQ,IAAI,EAAE;IAC9E,MAAMQ,aAAaR,cAAc,iBAAiB,IAAIA,cAAc,UAAU,IAAI,EAAE;IAEpF,IAAIO,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIE,MAAM;IAElB,MAAMC,eAA2B,EAAE;IACnC,MAAMC,iBAA+B,EAAE;IAEvC,MAAMC,WAAsB,EAAE;IAC9B,MAAMC,YAAYN,QAAQ,CAAC,EAAE;IAC7B,MAAMO,YAAaP,QAAQ,CAAC,EAAE,IAAIM;IAElC,IAAIA,aAAaA,UAAU,QAAQ,EAAE;QACnC,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASX,YAAY,CAACY,IAAMA,EAAE,EAAE,GAChCD,SAASN,UAAU,QAAQ,EAAE,CAACO,IAAMA,EAAE,EAAE,GACxCf,UACA;YACE,kBAAkBgB;YAClB,eAAeC;YACf,eAAe;YACf,gBAAgBC,kBAAkBvB,eAAgCG;QACpE;QAGFS,SAAS,IAAI,CAACG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,IAAIH,aAAaA,UAAU,QAAQ,EAAE;QACnC,MAAM,EACJ,SAASC,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFN,QAAQ,CAAC,EAAE,EACXO,SAASX,YAAY,CAACY,IAAMA,EAAE,EAAE,GAChCD,SAASL,UAAU,QAAQ,EAAE,CAACM,IAAMA,EAAE,EAAE,GACxCf,UACA;YACE,kBAAkBmB;YAClB,eAAeC;YACf,eAAe;YACf,gBAAgBF,kBAAkBvB,eAAgCG;QACpE;QAGFS,QAAQ,CAAC,EAAE,GAAGG;QACdL,aAAa,IAAI,CAACM;QAClBL,eAAe,IAAI,CAACM;IACtB;IAEA,MAAMA,aAAyB;QAC7B,GAAGN,cAAc,CAAC,EAAE;QACpB,YAAYA,eAAe,OAAO,CAAC,CAACS,IAAMA,EAAE,UAAU;QACtD,YAAYT,eAAe,MAAM,CAAC,CAACe,MAAMC,MAAS;gBAAE,GAAGD,IAAI;gBAAE,GAAGC,IAAI,UAAU;YAAC,IAAI,CAAC;IACtF;IAEA,OAAO;QACL,GAAGzB,MAAM;QACT,SAASU,QAAQ,CAAC,EAAE;QAEpB,oBAAoB;YAClB;gBACE,IAAIgB,OAAOtB;gBACX,OAAO;gBACP,UAAUI,YAAY,CAAC,EAAE;gBACzB,cAAcA;gBACd,YAAYO;YACd;SACD;IACH;AACF"}
@@ -1,4 +1,5 @@
1
- import { annotationAreaBand, annotationHorizontalLine, annotationPoint, annotationVerticalLine, backgroundColor, barStyle, color, colorAdapter, colorBarStyleFill, colorLegend, datasetBoxplot, datasetPivot, discreteLegend, initBoxplot, initPivot, label, linearColor, pivotAdapter, pivotAxisStyle, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotRowDimensions, pivotTitle, progressive, stackCornerRadius, tooltipBoxplot, verticalCrosshairRect, xBand, yLinear } from "../pipes/index.js";
1
+ import { annotationAreaBand, annotationHorizontalLine, annotationPoint, annotationVerticalLine, backgroundColor, barStyle, color, colorAdapter, colorBarStyleFill, colorLegend, datasetBoxplot, datasetPivot, initBoxplot, initPivot, label, linearColor, pivotAdapter, pivotAxisStyle, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotRowDimensions, pivotTitle, progressive, stackCornerRadius, tooltipBoxplot, verticalCrosshairRect, xBand, yLinear } from "../pipes/index.js";
2
+ import { boxLegend } from "../pipes/legend/boxLegend.js";
2
3
  const boxplot = [
3
4
  initBoxplot,
4
5
  stackCornerRadius,
@@ -10,7 +11,7 @@ const boxplot = [
10
11
  yLinear,
11
12
  label,
12
13
  tooltipBoxplot,
13
- colorAdapter(discreteLegend, colorLegend),
14
+ colorAdapter(boxLegend, colorLegend),
14
15
  verticalCrosshairRect,
15
16
  colorBarStyleFill(barStyle),
16
17
  annotationPoint,