@visactor/vseed 0.1.14 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +3 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
- package/dist/esm/builder/builder/buildSpec.js +2 -3
- package/dist/esm/builder/builder/buildSpec.js.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +1113 -9
- package/dist/esm/dataReshape/foldMeasures.d.ts +1 -0
- package/dist/esm/dataReshape/foldMeasures.js +5 -1
- package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js +4 -3
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js +12 -9
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +4 -6
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +2 -5
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +2 -4
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +4 -6
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +2 -5
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +2 -4
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js +13 -7
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js +13 -9
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/init/initAdvancedVSeed.js +2 -0
- package/dist/esm/pipeline/advanced/table/pipes/init/initAdvancedVSeed.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js +2 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +1 -3
- package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +3 -3
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/format/linearFormat.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/format/linearFormat.js +11 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/format/linearFormat.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js +14 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +8 -5
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +8 -5
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +8 -5
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +8 -5
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +5 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js +41 -33
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js +15 -52
- package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/{labelColorInversion.d.ts → labelScatter.d.ts} +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js +19 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/series/series.js +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/series/series.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +3 -3
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +13 -30
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +6 -6
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +6 -18
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +6 -18
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js +8 -11
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js +8 -13
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/utils/constant.d.ts +1 -0
- package/dist/esm/pipeline/utils/constant.js +2 -1
- package/dist/esm/pipeline/utils/constant.js.map +1 -1
- package/dist/esm/pipeline/utils/format/createFormatter.d.ts +1 -1
- package/dist/esm/pipeline/utils/format/createFormatter.js +3 -2
- package/dist/esm/pipeline/utils/format/createFormatter.js.map +1 -1
- package/dist/esm/pipeline/utils/format/createFormatterByMeasure.d.ts +2 -0
- package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js +14 -0
- package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js.map +1 -0
- package/dist/esm/pipeline/utils/format/createNumFormatter.d.ts +1 -1
- package/dist/esm/pipeline/utils/format/createNumFormatter.js.map +1 -1
- package/dist/esm/pipeline/utils/format/index.d.ts +1 -0
- package/dist/esm/pipeline/utils/format/index.js +1 -0
- package/dist/esm/pipeline/utils/index.d.ts +1 -0
- package/dist/esm/pipeline/utils/index.js +1 -0
- package/dist/esm/pipeline/utils/valid/checkVSeed.d.ts +2 -0
- package/dist/esm/pipeline/utils/valid/checkVSeed.js +11 -0
- package/dist/esm/pipeline/utils/valid/checkVSeed.js.map +1 -0
- package/dist/esm/pipeline/utils/valid/index.d.ts +1 -0
- package/dist/esm/pipeline/utils/valid/index.js +2 -0
- package/dist/esm/theme/dark.js +5 -1
- package/dist/esm/theme/dark.js.map +1 -1
- package/dist/esm/theme/light.js +23 -4
- package/dist/esm/theme/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +947 -17
- package/dist/esm/types/chartType/area/zArea.d.ts +60 -0
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +60 -0
- package/dist/esm/types/chartType/bar/zBar.d.ts +60 -0
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +60 -0
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +60 -0
- package/dist/esm/types/chartType/column/zColumn.d.ts +60 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +60 -0
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +60 -0
- package/dist/esm/types/chartType/donut/zDonut.d.ts +30 -0
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +270 -0
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +30 -0
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +30 -0
- package/dist/esm/types/chartType/line/zLine.d.ts +60 -0
- package/dist/esm/types/chartType/pie/zPie.d.ts +30 -0
- package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +30 -0
- package/dist/esm/types/chartType/radar/zRadar.d.ts +30 -0
- package/dist/esm/types/chartType/rose/zRose.d.ts +30 -0
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +30 -0
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +210 -0
- package/dist/esm/types/chartType/table/zTable.d.ts +30 -0
- package/dist/esm/types/properties/config/axes/bandAxis.d.ts +146 -3
- package/dist/esm/types/properties/config/axes/index.d.ts +0 -2
- package/dist/esm/types/properties/config/axes/index.js +0 -1
- package/dist/esm/types/properties/config/axes/linearAxis.d.ts +149 -3
- package/dist/esm/types/properties/config/axes/zLinearAxis.d.ts +60 -0
- package/dist/esm/types/properties/config/axes/zLinearAxis.js +2 -0
- package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +916 -16
- package/dist/esm/types/properties/config/label/label.d.ts +3 -3
- package/dist/esm/types/properties/config/label/zLabel.js +1 -1
- package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
- package/dist/esm/types/properties/format/numFormat.js.map +1 -0
- package/dist/esm/types/properties/index.d.ts +1 -0
- package/dist/esm/types/properties/index.js +1 -0
- package/dist/esm/types/properties/measures/index.d.ts +0 -1
- package/dist/esm/types/properties/measures/index.js +0 -1
- package/dist/esm/types/properties/measures/measures.d.ts +6 -2
- package/dist/esm/types/properties/measures/zDualMeasures.d.ts +240 -0
- package/dist/esm/types/properties/measures/zMeasures.d.ts +90 -0
- package/dist/esm/types/properties/measures/zMeasures.js +2 -1
- package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
- package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +240 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +916 -16
- package/dist/esm/types/zVseed.d.ts +1389 -99
- package/dist/umd/index.js +308 -366
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelColorInversion.js +0 -13
- package/dist/esm/pipeline/spec/chart/pipes/label/labelColorInversion.js.map +0 -1
- package/dist/esm/types/properties/config/axes/axis.d.ts +0 -208
- package/dist/esm/types/properties/config/axes/axis.js +0 -0
- package/dist/esm/types/properties/config/axes/zAxis.d.ts +0 -47
- package/dist/esm/types/properties/config/axes/zAxis.js +0 -54
- package/dist/esm/types/properties/config/axes/zAxis.js.map +0 -1
- package/dist/esm/types/properties/measures/format/numFormat.js.map +0 -1
- /package/dist/esm/types/properties/{measures/format → format}/formatter.d.ts +0 -0
- /package/dist/esm/types/properties/{measures/format → format}/formatter.js +0 -0
- /package/dist/esm/types/properties/{measures/format → format}/index.d.ts +0 -0
- /package/dist/esm/types/properties/{measures/format → format}/index.js +0 -0
- /package/dist/esm/types/properties/{measures/format → format}/numFormat.d.ts +0 -0
- /package/dist/esm/types/properties/{measures/format → format}/numFormat.js +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
import { ColorEncoding, ColorIdEncoding, ORIGINAL_DATA } from "./constant.js";
|
2
2
|
import { omit } from "remeda";
|
3
3
|
const foldMeasures = (dataset, measures, options)=>{
|
4
|
-
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
4
|
+
const { measureId, measureName, measureValue, colorMeasureId, allowEmptyFold = true } = options || {};
|
5
5
|
const foldInfo = {
|
6
6
|
measureId,
|
7
7
|
measureName,
|
@@ -16,6 +16,10 @@ const foldMeasures = (dataset, measures, options)=>{
|
|
16
16
|
},
|
17
17
|
foldMap: {}
|
18
18
|
};
|
19
|
+
if (!allowEmptyFold && 0 === measures.length) return {
|
20
|
+
dataset,
|
21
|
+
foldInfo
|
22
|
+
};
|
19
23
|
const result = new Array(dataset.length * measures.length);
|
20
24
|
let index = 0;
|
21
25
|
const ids = measures.map((d)=>d.id);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dataReshape/foldMeasures.js","sources":["webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Measures } from 'src/types'\nimport { ColorEncoding, ColorIdEncoding, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Measures,\n options: {\n measureId: string\n measureName: string\n measureValue: string\n colorMeasureId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const { measureId, measureName, measureValue, colorMeasureId } = options || {}\n\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\n datum[measureId] = id\n datum[measureName] = alias || id\n datum[measureValue] = dataset[i][id] as unknown\n\n if (colorMeasureId) {\n const value = (datum[ORIGINAL_DATA] as Record<string, string | number>)[colorMeasureId]\n datum[ColorEncoding] = value\n datum[ColorIdEncoding] = colorMeasureId\n\n const valueNumber = Number(value)\n foldInfo.statistics.colorMin = Math.min(foldInfo.statistics.colorMin, valueNumber)\n foldInfo.statistics.colorMax = Math.max(foldInfo.statistics.colorMax, valueNumber)\n }\n\n const valueNumber = Number(datum[id])\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 foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n"],"names":["foldMeasures","dataset","measures","options","measureId","measureName","measureValue","colorMeasureId","foldInfo","Infinity","result","Array","index","ids","d","i","j","datum","omit","ORIGINAL_DATA","measure","id","alias","value","ColorEncoding","ColorIdEncoding","valueNumber","Number","Math"],"mappings":";;AASO,MAAMA,eAAe,CAC1BC,SACAC,UACAC;
|
1
|
+
{"version":3,"file":"dataReshape/foldMeasures.js","sources":["webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Measures } from 'src/types'\nimport { ColorEncoding, ColorIdEncoding, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Measures,\n options: {\n measureId: string\n measureName: string\n measureValue: string\n colorMeasureId?: string\n allowEmptyFold?: boolean\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const { measureId, measureName, measureValue, colorMeasureId, allowEmptyFold = true } = options || {}\n\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n statistics: {\n max: -Infinity,\n min: Infinity,\n sum: 0,\n count: 0,\n colorMin: Infinity,\n colorMax: -Infinity,\n },\n foldMap: {},\n }\n\n if (!allowEmptyFold && measures.length === 0) {\n return {\n dataset,\n foldInfo,\n }\n }\n\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\n datum[measureId] = id\n datum[measureName] = alias || id\n datum[measureValue] = dataset[i][id] as unknown\n\n if (colorMeasureId) {\n const value = (datum[ORIGINAL_DATA] as Record<string, string | number>)[colorMeasureId]\n datum[ColorEncoding] = value\n datum[ColorIdEncoding] = colorMeasureId\n\n const valueNumber = Number(value)\n foldInfo.statistics.colorMin = Math.min(foldInfo.statistics.colorMin, valueNumber)\n foldInfo.statistics.colorMax = Math.max(foldInfo.statistics.colorMax, valueNumber)\n }\n\n const valueNumber = Number(datum[id])\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 foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n"],"names":["foldMeasures","dataset","measures","options","measureId","measureName","measureValue","colorMeasureId","allowEmptyFold","foldInfo","Infinity","result","Array","index","ids","d","i","j","datum","omit","ORIGINAL_DATA","measure","id","alias","value","ColorEncoding","ColorIdEncoding","valueNumber","Number","Math"],"mappings":";;AASO,MAAMA,eAAe,CAC1BC,SACAC,UACAC;IAWA,MAAM,EAAEC,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAEC,cAAc,EAAEC,iBAAiB,IAAI,EAAE,GAAGL,WAAW,CAAC;IAEpG,MAAMM,WAAqB;QACzBL;QACAC;QACAC;QACA,YAAY;YACV,KAAK,CAACI;YACN,KAAKA;YACL,KAAK;YACL,OAAO;YACP,UAAUA;YACV,UAAU,CAACA;QACb;QACA,SAAS,CAAC;IACZ;IAEA,IAAI,CAACF,kBAAkBN,AAAoB,MAApBA,SAAS,MAAM,EACpC,OAAO;QACLD;QACAQ;IACF;IAGF,MAAME,SAAkB,IAAIC,MAAMX,QAAQ,MAAM,GAAGC,SAAS,MAAM;IAClE,IAAIW,QAAQ;IACZ,MAAMC,MAAMZ,SAAS,GAAG,CAAC,CAACa,IAAMA,EAAE,EAAE;IACpC,IAAK,IAAIC,IAAI,GAAGA,IAAIf,QAAQ,MAAM,EAAEe,IAClC,IAAK,IAAIC,IAAI,GAAGA,IAAIf,SAAS,MAAM,EAAEe,IAAK;QACxC,MAAMC,QAA6BC,KAAK;YAAE,GAAGlB,OAAO,CAACe,EAAE;QAAC,GAAGF;QAE3DI,KAAK,CAACE,cAAc,GAAGnB,OAAO,CAACe,EAAE;QAEjC,MAAMK,UAAUnB,QAAQ,CAACe,EAAE;QAC3B,MAAM,EAAEK,EAAE,EAAEC,KAAK,EAAE,GAAGF;QAEtBH,KAAK,CAACI,GAAG,GAAGrB,OAAO,CAACe,EAAE,CAACM,GAAG;QAC1BJ,KAAK,CAACd,UAAU,GAAGkB;QACnBJ,KAAK,CAACb,YAAY,GAAGkB,SAASD;QAC9BJ,KAAK,CAACZ,aAAa,GAAGL,OAAO,CAACe,EAAE,CAACM,GAAG;QAEpC,IAAIf,gBAAgB;YAClB,MAAMiB,QAASN,KAAK,CAACE,cAAkD,CAACb,eAAe;YACvFW,KAAK,CAACO,cAAc,GAAGD;YACvBN,KAAK,CAACQ,gBAAgB,GAAGnB;YAEzB,MAAMoB,cAAcC,OAAOJ;YAC3Bf,SAAS,UAAU,CAAC,QAAQ,GAAGoB,KAAK,GAAG,CAACpB,SAAS,UAAU,CAAC,QAAQ,EAAEkB;YACtElB,SAAS,UAAU,CAAC,QAAQ,GAAGoB,KAAK,GAAG,CAACpB,SAAS,UAAU,CAAC,QAAQ,EAAEkB;QACxE;QAEA,MAAMA,cAAcC,OAAOV,KAAK,CAACI,GAAG;QACpCb,SAAS,UAAU,CAAC,GAAG,GAAGoB,KAAK,GAAG,CAACpB,SAAS,UAAU,CAAC,GAAG,EAAEkB;QAC5DlB,SAAS,UAAU,CAAC,GAAG,GAAGoB,KAAK,GAAG,CAACpB,SAAS,UAAU,CAAC,GAAG,EAAEkB;QAC5DlB,SAAS,UAAU,CAAC,GAAG,IAAIkB;QAC3BlB,SAAS,UAAU,CAAC,KAAK;QAEzBA,SAAS,OAAO,CAACa,GAAG,GAAGC;QACvBZ,MAAM,CAACE,QAAQ,GAAGK;IACpB;IAGF,OAAO;QACL,SAASP;QACTF;IACF;AACF"}
|
@@ -8,10 +8,11 @@ const defaultDimensions = (advancedVSeed, context)=>{
|
|
8
8
|
const { dimensions, dataset } = vseed;
|
9
9
|
if (dimensions && dimensions.length > 0) return {
|
10
10
|
...result,
|
11
|
-
dimensions: clone(dimensions)
|
11
|
+
dimensions: clone(dimensions.map((dim)=>({
|
12
|
+
...dim,
|
13
|
+
alias: dim.alias || dim.id
|
14
|
+
})))
|
12
15
|
};
|
13
|
-
if (!dataset) throw new Error('dataset is required');
|
14
|
-
if (0 === dataset.length) return result;
|
15
16
|
const measures = findAllMeasures(advancedVSeed.measures);
|
16
17
|
const top100dataset = dataset.slice(0, 100);
|
17
18
|
const sample = top100dataset.reduce((prev, cur)=>({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/default/defaultDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/default/defaultDimensions.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, DimensionTree } from 'src/types'\n\nexport const defaultDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n if (dimensions && dimensions.length > 0) {\n return {\n ...result,\n dimensions: clone(dimensions)
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/default/defaultDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/default/defaultDimensions.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, DimensionTree } from 'src/types'\n\nexport const defaultDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n if (dimensions && dimensions.length > 0) {\n return {\n ...result,\n dimensions: clone(dimensions.map((dim) => ({ ...dim, alias: dim.alias || dim.id }))),\n }\n }\n\n const measures = findAllMeasures(advancedVSeed.measures as DimensionTree)\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newDimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n })) as Dimensions\n\n return {\n ...result,\n dimensions: newDimensions,\n }\n}\n"],"names":["defaultDimensions","advancedVSeed","context","result","vseed","dimensions","dataset","clone","dim","measures","findAllMeasures","top100dataset","sample","prev","cur","newDimensions","Object","key","item","undefined","measure"],"mappings":";;AAIO,MAAMA,oBAAkC,CAACC,eAAeC;IAC7D,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,UAAU,EAAEC,OAAO,EAAE,GAAGF;IAEhC,IAAIC,cAAcA,WAAW,MAAM,GAAG,GACpC,OAAO;QACL,GAAGF,MAAM;QACT,YAAYI,MAAMF,WAAW,GAAG,CAAC,CAACG,MAAS;gBAAE,GAAGA,GAAG;gBAAE,OAAOA,IAAI,KAAK,IAAIA,IAAI,EAAE;YAAC;IAClF;IAGF,MAAMC,WAAWC,gBAAgBT,cAAc,QAAQ;IAEvD,MAAMU,gBAAgBL,QAAQ,KAAK,CAAC,GAAG;IAEvC,MAAMM,SAASD,cAAc,MAAM,CAAQ,CAACE,MAAMC,MACzC;YAAE,GAAGD,IAAI;YAAE,GAAGC,GAAG;QAAC,IACxB,CAAC;IAEJ,MAAMC,gBAAgBC,OAAO,IAAI,CAACJ,QAC/B,MAAM,CACL,CAACK,MACCN,cAAc,IAAI,CAAC,CAACO,OAAS,AAAqB,YAArB,OAAOA,IAAI,CAACD,IAAI,KAC7C,CAAC;YAAC;YAAI;YAAME;SAAU,CAAC,QAAQ,CAACF,QAChC,CAACR,SAAS,IAAI,CAAC,CAACW,UAAYA,QAAQ,EAAE,KAAKH,MAE9C,GAAG,CAAC,CAACT,MAAS;YACb,IAAIA;YACJ,OAAOA;QACT;IAEF,OAAO;QACL,GAAGL,MAAM;QACT,YAAYY;IACd;AACF"}
|
@@ -1,16 +1,19 @@
|
|
1
1
|
import { clone } from "remeda";
|
2
|
+
import { isMeasure, preorderTraverse } from "../../../../utils/index.js";
|
2
3
|
const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
3
4
|
const { vseed } = context;
|
4
5
|
const { measures, dataset } = vseed;
|
5
|
-
if (measures && measures.length > 0)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
if (measures && measures.length > 0) {
|
7
|
+
const clonedMeasures = clone(measures);
|
8
|
+
preorderTraverse(clonedMeasures, (node)=>{
|
9
|
+
if (isMeasure(node)) node.alias = node.alias || node.id;
|
10
|
+
return false;
|
11
|
+
});
|
12
|
+
return {
|
13
|
+
...advancedVSeed,
|
14
|
+
measures: clonedMeasures
|
15
|
+
};
|
16
|
+
}
|
14
17
|
const top100dataset = dataset.slice(0, 100);
|
15
18
|
const sample = top100dataset.reduce((prev, cur)=>({
|
16
19
|
...prev,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/default/defaultMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/default/defaultMeasures.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport type { AdvancedPipe, Datum } from 'src/types'\
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/default/defaultMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/default/defaultMeasures.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport type { AdvancedPipe, Datum } from 'src/types'\nimport { isMeasure, preorderTraverse } from 'src/pipeline/utils'\n/**\n * @description 如果用户没有配置 measures, 则基于 dataset 构建默认的 measures\n */\nexport const defaultMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (measures && measures.length > 0) {\n const clonedMeasures = clone(measures)\n preorderTraverse(clonedMeasures, (node) => {\n if (isMeasure(node)) {\n node.alias = node.alias || node.id\n }\n return false\n })\n return {\n ...advancedVSeed,\n measures: clonedMeasures,\n }\n }\n\n const top100dataset = dataset.slice(0, 100)\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n const defaultMeasures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return {\n ...advancedVSeed,\n measures: defaultMeasures,\n }\n}\n"],"names":["defaultMeasures","advancedVSeed","context","vseed","measures","dataset","clonedMeasures","clone","preorderTraverse","node","isMeasure","top100dataset","sample","prev","cur","Object","key","item","undefined","measure"],"mappings":";;AAMO,MAAMA,kCAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,QAAQ,EAAEC,OAAO,EAAE,GAAGF;IAE9B,IAAIC,YAAYA,SAAS,MAAM,GAAG,GAAG;QACnC,MAAME,iBAAiBC,MAAMH;QAC7BI,iBAAiBF,gBAAgB,CAACG;YAChC,IAAIC,UAAUD,OACZA,KAAK,KAAK,GAAGA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAEpC,OAAO;QACT;QACA,OAAO;YACL,GAAGR,aAAa;YAChB,UAAUK;QACZ;IACF;IAEA,MAAMK,gBAAgBN,QAAQ,KAAK,CAAC,GAAG;IACvC,MAAMO,SAASD,cAAc,MAAM,CAAQ,CAACE,MAAMC,MACzC;YAAE,GAAGD,IAAI;YAAE,GAAGC,GAAG;QAAC,IACxB,CAAC;IACJ,MAAMd,kBAAkBe,OAAO,IAAI,CAACH,QACjC,MAAM,CAAC,CAACI,MACAL,cAAc,IAAI,CAAC,CAACM,OAAS,AAAqB,YAArB,OAAOA,IAAI,CAACD,IAAI,KAAkB,CAAC;YAAC;YAAI;YAAME;SAAU,CAAC,QAAQ,CAACF,MAEvG,GAAG,CAAC,CAACG,UAAa;YACjB,IAAIA;YACJ,OAAOA;QACT;IAEF,OAAO;QACL,GAAGlB,aAAa;QAChB,UAAUD;IACZ;AACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.ts"],"sourcesContent":["import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n"],"names":["initAdvancedVSeed","advancedVSeed","context","vseed","chartType","locale"],"mappings":"
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.ts"],"sourcesContent":["import { checkVSeed } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n\n checkVSeed(vseed)\n\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n"],"names":["initAdvancedVSeed","advancedVSeed","context","vseed","chartType","locale","checkVSeed"],"mappings":";AAGO,MAAMA,oBAAkC,CAACC,eAAeC;IAC7D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAEC,MAAM,EAAE,GAAGF;IAE9BG,WAAWH;IAEX,OAAO;QACL,GAAGF,aAAa;QAChBG;QACA,QAAQC,UAAU;IACpB;AACF"}
|
@@ -8,9 +8,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
8
8
|
};
|
9
9
|
const { vseed } = context;
|
10
10
|
const { dataset } = vseed;
|
11
|
-
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
12
|
-
if (!measures || !dimensions || !dataset || !encoding) return result;
|
13
|
-
const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
|
11
|
+
const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
|
14
12
|
const datasetList = [];
|
15
13
|
const datasetReshapeInfo = [];
|
16
14
|
const measureGroups = [];
|
@@ -20,8 +18,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
20
18
|
});
|
21
19
|
else if (2 === depth) measureGroups.push(measures);
|
22
20
|
measureGroups.forEach((measures, index)=>{
|
23
|
-
if (
|
24
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
21
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
25
22
|
const foldInfoList = [];
|
26
23
|
const unfoldInfoList = [];
|
27
24
|
const datasets = [];
|
@@ -29,7 +26,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
29
26
|
const secondaryMeasures = measures[1] || [];
|
30
27
|
if (primaryMeasures && primaryMeasures.children) {
|
31
28
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(primaryMeasures.children, (item)=>item.id), encoding, {
|
32
|
-
colorItemAsId:
|
29
|
+
colorItemAsId: false,
|
33
30
|
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
34
31
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
35
32
|
});
|
@@ -39,6 +36,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
39
36
|
}
|
40
37
|
if (secondaryMeasures && secondaryMeasures.children) {
|
41
38
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(secondaryMeasures.children, (item)=>item.id), encoding, {
|
39
|
+
colorItemAsId: false,
|
42
40
|
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
43
41
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
44
42
|
});
|
@@ -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 { measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\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
|
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 { measureDepth } from 'src/pipeline/utils'\nimport type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\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 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),\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),\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","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":";;;;AAiBO,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,cAAyB,EAAE;IACjC,MAAMC,qBAAyC,EAAE;IAEjD,MAAMC,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;IAGrBK,cAAc,OAAO,CAAC,CAACL,UAA0BS;QAC/C,IAAIT,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIU,MAAM;QAGlB,MAAMC,eAA2B,EAAE;QACnC,MAAMC,iBAA+B,EAAE;QAEvC,MAAMC,WAAsB,EAAE;QAC9B,MAAMC,kBAAkBd,QAAQ,CAAC,EAAE;QACnC,MAAMe,oBAAoBf,QAAQ,CAAC,EAAE,IAAI,EAAE;QAE3C,IAAIc,mBAAmBA,gBAAgB,QAAQ,EAAE;YAC/C,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFrB,SACAsB,SAASrB,YAAY,CAACsB,OAASA,KAAK,EAAE,GACtCD,SAASN,gBAAgB,QAAQ,EAAE,CAACO,OAASA,KAAK,EAAE,GACpDpB,UACA;gBACE,eAAe;gBACf,kBAAkB,GAAGqB,0BAA0Bb,OAAO;gBACtD,gBAAgBc,kBAAkB7B;YACpC;YAGFmB,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,sBACFrB,SACAsB,SAASrB,YAAY,CAACsB,OAASA,KAAK,EAAE,GACtCD,SAASL,kBAAkB,QAAQ,EAAE,CAACM,OAASA,KAAK,EAAE,GACtDpB,UACA;gBACE,eAAe;gBACf,kBAAkB,GAAGuB,4BAA4Bf,OAAO;gBACxD,gBAAgBc,kBAAkB7B;YACpC;YAGFmB,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,GAAG1B,UAAU,CAAC,EAAEO,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,GAAGjB,MAAM;QACT,SAASO;QACT,oBAAoBC;IACtB;AACF"}
|
@@ -7,14 +7,11 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
|
7
7
|
};
|
8
8
|
const { vseed } = context;
|
9
9
|
const { dataset } = vseed;
|
10
|
-
const { dimensions, measures, encoding } = advancedVSeed;
|
11
|
-
if (!measures || !dimensions || !dataset || !encoding) return result;
|
12
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
10
|
+
const { dimensions = [], measures = [], encoding } = advancedVSeed;
|
13
11
|
const measureGroups = [];
|
14
12
|
if (measures) measures.forEach((measure)=>{
|
15
13
|
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
16
14
|
});
|
17
|
-
const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
|
18
15
|
const datasets = [];
|
19
16
|
const datasetReshapeInfo = [];
|
20
17
|
measureGroups.forEach((measureGroup, index)=>{
|
@@ -22,7 +19,7 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
|
22
19
|
if (!measures) return;
|
23
20
|
const groupId = measureGroup.id;
|
24
21
|
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(measures, (item)=>item.id), encoding, {
|
25
|
-
colorItemAsId:
|
22
|
+
colorItemAsId: false,
|
26
23
|
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
27
24
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
28
25
|
});
|
@@ -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 type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\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
|
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 type {\n AdvancedPipe,\n AdvancedVSeed,\n ColumnParallel,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\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 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),\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","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,gBAAgC,EAAE;IACxC,IAAIF,UACFA,SAAS,OAAO,CAAC,CAACG;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,MAAMP,WAAWM,aAAa,QAAQ;QACtC,IAAI,CAACN,UACH;QAEF,MAAMQ,UAAUF,aAAa,EAAE;QAC/B,MAAM,EACJ,SAASG,aAAa,EACtBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFd,SACAe,SAASd,YAAY,CAACe,OAASA,KAAK,EAAE,GACtCD,SAASb,UAAU,CAACc,OAASA,KAAK,EAAE,GACpCb,UACA;YACE,eAAe;YACf,kBAAkB,GAAGc,mBAAmBP,SAAS;YACjD,gBAAgBQ,kBAAkBtB;QACpC;QAGF,MAAMuB,cAAc;YAClB,IAAIT;YACJD;YACAG;YACAC;QACF;QACAP,SAAS,IAAI,CAACK;QACdJ,mBAAmB,IAAI,CAACY;IAC1B;IAEA,OAAO;QACL,GAAGrB,MAAM;QACT,SAASQ;QACT,oBAAoBC;IACtB;AACF"}
|
@@ -7,8 +7,7 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
7
7
|
};
|
8
8
|
const { vseed } = context;
|
9
9
|
const { dataset } = vseed;
|
10
|
-
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
11
|
-
if (!measures || !dimensions || !dataset || !encoding) return result;
|
10
|
+
const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
|
12
11
|
const measureGroups = [];
|
13
12
|
const depth = measureDepth(measures);
|
14
13
|
if (3 === depth) measures.forEach((measure)=>{
|
@@ -18,8 +17,7 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
18
17
|
const datasetList = [];
|
19
18
|
const datasetReshapeInfo = [];
|
20
19
|
measureGroups.forEach((measures, index)=>{
|
21
|
-
if (
|
22
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
20
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
|
23
21
|
const foldInfoList = [];
|
24
22
|
const unfoldInfoList = [];
|
25
23
|
const datasets = [];
|
package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map
CHANGED
@@ -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 { 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\n
|
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 { 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\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),\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),\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","measureGroups","depth","measureDepth","measure","datasetList","datasetReshapeInfo","index","Error","foldInfoList","unfoldInfoList","datasets","xMeasures","yMeasures","newDataset","foldInfo","unfoldInfo","dataReshapeByEncoding","FoldXMeasureValue","getColorMeasureId","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;IAEhE,MAAMS,gBAAuC,EAAE;IAE/C,MAAMC,QAAQC,aAAaL;IAC3B,IAAII,AAAU,MAAVA,OACFJ,SAAS,OAAO,CAAC,CAACM;QAChBH,cAAc,IAAI,CAACG,QAAQ,QAAQ;IACrC;SACK,IAAIF,AAAU,MAAVA,OACTD,cAAc,IAAI,CAACH;IAGrB,MAAMO,cAAyB,EAAE;IACjC,MAAMC,qBAAyC,EAAE;IAEjDL,cAAc,OAAO,CAAC,CAACH,UAA0BS;QAC/C,IAAIT,SAAS,MAAM,GAAG,GACpB,MAAM,IAAIU,MAAM;QAGlB,MAAMC,eAA2B,EAAE;QACnC,MAAMC,iBAA+B,EAAE;QAEvC,MAAMC,WAAsB,EAAE;QAC9B,MAAMC,YAAYd,QAAQ,CAAC,EAAE;QAC7B,MAAMe,YAAYf,QAAQ,CAAC,EAAE,IAAIc;QAEjC,IAAIA,aAAaA,UAAU,QAAQ,EAAE;YACnC,MAAM,EACJ,SAASE,UAAU,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBAAsBrB,SAASC,YAAYe,UAAU,QAAQ,EAAEb,UAAsB;gBACvF,kBAAkB,GAAGmB,oBAAoBX,OAAO;gBAChD,eAAe;gBACf,gBAAgBY,kBAAkB3B;YACpC;YAEAmB,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,sBAAsBrB,SAASC,YAAYgB,UAAU,QAAQ,EAAEd,UAAsB;gBACvF,kBAAkB,GAAGqB,oBAAoBb,OAAO;gBAChD,eAAe;gBACf,gBAAgBY,kBAAkB3B;YACpC;YAEAmB,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,CAACW,IAAMA,EAAE,UAAU;YACtD,YAAYX,eAAe,MAAM,CAAC,CAACY,MAAMC,MAAS;oBAAE,GAAGD,IAAI;oBAAE,GAAGC,IAAI,UAAU;gBAAC,IAAI,CAAC;QACtF;QAEA,MAAMC,cAAc;YAClB,IAAI,GAAGxB,UAAU,CAAC,EAAEO,OAAO;YAC3BA;YACA,UAAUE,YAAY,CAAC,EAAE;YACzB,cAAcA;YACd,YAAYO;QACd;QAEAV,mBAAmB,IAAI,CAACkB;QACxBnB,YAAY,IAAI,CAACM,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAACU,GAAGd,QAAW;gBAAE,GAAGc,CAAC;gBAAE,GAAIV,QAAQ,CAAC,EAAE,EAAE,CAACJ,MAAM,IAAI,CAAC,CAAC;YAAE;IAC1F;IAEA,OAAO;QACL,GAAGb,MAAM;QACT,SAASW;QACT,oBAAoBC;IACtB;AACF"}
|
@@ -7,19 +7,16 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
7
7
|
};
|
8
8
|
const { vseed } = context;
|
9
9
|
const { dataset } = vseed;
|
10
|
-
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
11
|
-
if (
|
12
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
13
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
10
|
+
const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
|
11
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
14
12
|
const foldInfoList = [];
|
15
13
|
const unfoldInfoList = [];
|
16
14
|
const datasets = [];
|
17
15
|
const primaryMeasures = measures[0];
|
18
16
|
const secondaryMeasures = measures[1] || [];
|
19
|
-
const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
|
20
17
|
if (primaryMeasures && primaryMeasures.children) {
|
21
18
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(primaryMeasures.children, (item)=>item.id), encoding, {
|
22
|
-
colorItemAsId:
|
19
|
+
colorItemAsId: false,
|
23
20
|
foldMeasureValue: FoldPrimaryMeasureValue,
|
24
21
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
25
22
|
});
|
@@ -29,6 +26,7 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
29
26
|
}
|
30
27
|
if (secondaryMeasures && secondaryMeasures.children) {
|
31
28
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(secondaryMeasures.children, (item)=>item.id), encoding, {
|
29
|
+
colorItemAsId: false,
|
32
30
|
foldMeasureValue: FoldSecondaryMeasureValue,
|
33
31
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
34
32
|
});
|
@@ -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 Dimension,\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 (
|
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 Dimension,\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),\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),\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":";;;AAeO,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;QACpC;QAGFY,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;QACpC;QAGFY,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"}
|
@@ -8,12 +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;
|
12
|
-
if (!measures || !dimensions || !dataset || !encoding) return result;
|
13
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
14
|
-
const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
|
11
|
+
const { dimensions = [], measures = [], encoding } = advancedVSeed;
|
15
12
|
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (item)=>item.id), uniqueBy(findAllMeasures(measures), (item)=>item.id), encoding, {
|
16
|
-
colorItemAsId:
|
13
|
+
colorItemAsId: false,
|
17
14
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
18
15
|
});
|
19
16
|
return {
|
@@ -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, Dimension, 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
|
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, Dimension, 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 {\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: getColorMeasureId(advancedVSeed as AdvancedVSeed),\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","newDatasets","foldInfo","unfoldInfo","dataReshapeByEncoding","uniqueBy","item","findAllMeasures","getColorMeasureId","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,MAAM,EACJ,SAASS,WAAW,EACpBC,QAAQ,EACRC,UAAU,EACX,GAAGC,sBACFR,SACAS,SAASP,YAAY,CAACQ,OAASA,KAAK,EAAE,GACtCD,SAASE,gBAAgBR,WAAW,CAACO,OAASA,KAAK,EAAE,GACrDN,UACA;QACE,eAAe;QACf,gBAAgBQ,kBAAkBhB;IACpC;IAGF,OAAO;QACL,GAAGE,MAAM;QACT,SAASO;QACT,oBAAoB;YAClB;gBACE,IAAIQ,OAAOZ;gBACX,OAAO;gBACPK;gBACAC;YACF;SACD;QACDL;QACAC;IACF;AACF"}
|
@@ -7,10 +7,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
7
7
|
};
|
8
8
|
const { vseed } = context;
|
9
9
|
const { dataset } = vseed;
|
10
|
-
const { dimensions, measures, encoding, chartType } = advancedVSeed;
|
11
|
-
if (
|
12
|
-
if (0 === measures.length) throw new Error('measures can not be empty');
|
13
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2');
|
10
|
+
const { dimensions = [], measures = [], encoding, chartType } = advancedVSeed;
|
11
|
+
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
|
14
12
|
const foldInfoList = [];
|
15
13
|
const unfoldInfoList = [];
|
16
14
|
const datasets = [];
|
@@ -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 {
|
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),\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),\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;QACpC;QAGFY,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;QACpC;QAGFY,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,16 +1,22 @@
|
|
1
|
-
import {
|
1
|
+
import { clone } from "remeda";
|
2
|
+
import { findAllMeasures, isDimension, preorderTraverse } from "../../../../utils/index.js";
|
2
3
|
const defaultDimensions = (advancedVSeed, context)=>{
|
3
4
|
const result = {
|
4
5
|
...advancedVSeed
|
5
6
|
};
|
6
7
|
const { vseed } = context;
|
7
8
|
const { dimensions, dataset } = vseed;
|
8
|
-
if (dimensions && dimensions.length > 0)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
if (dimensions && dimensions.length > 0) {
|
10
|
+
const clonedDimensions = clone(dimensions);
|
11
|
+
preorderTraverse(clonedDimensions, (node)=>{
|
12
|
+
if (isDimension(node)) node.alias = node.alias || node.id;
|
13
|
+
return false;
|
14
|
+
});
|
15
|
+
return {
|
16
|
+
...advancedVSeed,
|
17
|
+
dimensions: clonedDimensions
|
18
|
+
};
|
19
|
+
}
|
14
20
|
const measures = findAllMeasures(advancedVSeed.measures);
|
15
21
|
const top100dataset = dataset.slice(0, 100);
|
16
22
|
const sample = top100dataset.reduce((prev, cur)=>({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/table/pipes/default/defaultDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/default/defaultDimensions.ts"],"sourcesContent":["import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, DimensionTree } from 'src/types'\n\nexport const defaultDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n if (dimensions && dimensions.length > 0) {\n
|
1
|
+
{"version":3,"file":"pipeline/advanced/table/pipes/default/defaultDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/default/defaultDimensions.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport { findAllMeasures, isDimension, preorderTraverse } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, DimensionTree } from 'src/types'\n\nexport const defaultDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n if (dimensions && dimensions.length > 0) {\n const clonedDimensions = clone(dimensions)\n preorderTraverse(clonedDimensions, (node) => {\n if (isDimension(node)) {\n node.alias = node.alias || node.id\n }\n return false\n })\n return {\n ...advancedVSeed,\n dimensions: clonedDimensions,\n }\n }\n\n const measures = findAllMeasures(advancedVSeed.measures as DimensionTree)\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newDimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n })) as Dimensions\n\n return {\n ...result,\n dimensions: newDimensions,\n }\n}\n"],"names":["defaultDimensions","advancedVSeed","context","result","vseed","dimensions","dataset","clonedDimensions","clone","preorderTraverse","node","isDimension","measures","findAllMeasures","top100dataset","sample","prev","cur","newDimensions","Object","key","item","undefined","measure","dim"],"mappings":";;AAIO,MAAMA,oBAAkC,CAACC,eAAeC;IAC7D,MAAMC,SAAS;QAAE,GAAGF,aAAa;IAAC;IAClC,MAAM,EAAEG,KAAK,EAAE,GAAGF;IAClB,MAAM,EAAEG,UAAU,EAAEC,OAAO,EAAE,GAAGF;IAEhC,IAAIC,cAAcA,WAAW,MAAM,GAAG,GAAG;QACvC,MAAME,mBAAmBC,MAAMH;QAC/BI,iBAAiBF,kBAAkB,CAACG;YAClC,IAAIC,YAAYD,OACdA,KAAK,KAAK,GAAGA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAEpC,OAAO;QACT;QACA,OAAO;YACL,GAAGT,aAAa;YAChB,YAAYM;QACd;IACF;IAEA,MAAMK,WAAWC,gBAAgBZ,cAAc,QAAQ;IAEvD,MAAMa,gBAAgBR,QAAQ,KAAK,CAAC,GAAG;IAEvC,MAAMS,SAASD,cAAc,MAAM,CAAQ,CAACE,MAAMC,MACzC;YAAE,GAAGD,IAAI;YAAE,GAAGC,GAAG;QAAC,IACxB,CAAC;IAEJ,MAAMC,gBAAgBC,OAAO,IAAI,CAACJ,QAC/B,MAAM,CACL,CAACK,MACCN,cAAc,IAAI,CAAC,CAACO,OAAS,AAAqB,YAArB,OAAOA,IAAI,CAACD,IAAI,KAC7C,CAAC;YAAC;YAAI;YAAME;SAAU,CAAC,QAAQ,CAACF,QAChC,CAACR,SAAS,IAAI,CAAC,CAACW,UAAYA,QAAQ,EAAE,KAAKH,MAE9C,GAAG,CAAC,CAACI,MAAS;YACb,IAAIA;YACJ,OAAOA;QACT;IAEF,OAAO;QACL,GAAGrB,MAAM;QACT,YAAYe;IACd;AACF"}
|
@@ -1,15 +1,19 @@
|
|
1
|
+
import { clone } from "remeda";
|
2
|
+
import { isMeasure, preorderTraverse } from "../../../../utils/index.js";
|
1
3
|
const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
2
4
|
const { vseed } = context;
|
3
5
|
const { measures, dataset } = vseed;
|
4
|
-
if (measures && measures.length > 0)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
if (measures && measures.length > 0) {
|
7
|
+
const clonedMeasures = clone(measures);
|
8
|
+
preorderTraverse(clonedMeasures, (node)=>{
|
9
|
+
if (isMeasure(node)) node.alias = node.alias || node.id;
|
10
|
+
return false;
|
11
|
+
});
|
12
|
+
return {
|
13
|
+
...advancedVSeed,
|
14
|
+
measures: clonedMeasures
|
15
|
+
};
|
16
|
+
}
|
13
17
|
const top100dataset = dataset.slice(0, 100);
|
14
18
|
const sample = top100dataset.reduce((prev, cur)=>({
|
15
19
|
...prev,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/table/pipes/default/defaultMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/default/defaultMeasures.ts"],"sourcesContent":["import type { AdvancedPipe, Datum } from 'src/types'\n\n/**\n * @description 如果用户没有配置 measures, 则基于 dataset 构建默认的 measures\n */\nexport const defaultMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (measures && measures.length > 0) {\n
|
1
|
+
{"version":3,"file":"pipeline/advanced/table/pipes/default/defaultMeasures.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/default/defaultMeasures.ts"],"sourcesContent":["import { clone } from 'remeda'\nimport { isMeasure, preorderTraverse } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum } from 'src/types'\n\n/**\n * @description 如果用户没有配置 measures, 则基于 dataset 构建默认的 measures\n */\nexport const defaultMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (measures && measures.length > 0) {\n const clonedMeasures = clone(measures)\n preorderTraverse(clonedMeasures, (node) => {\n if (isMeasure(node)) {\n node.alias = node.alias || node.id\n }\n return false\n })\n return {\n ...advancedVSeed,\n measures: clonedMeasures,\n }\n }\n\n const top100dataset = dataset.slice(0, 100)\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n const defaultMeasures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return {\n ...advancedVSeed,\n measures: defaultMeasures,\n }\n}\n"],"names":["defaultMeasures","advancedVSeed","context","vseed","measures","dataset","clonedMeasures","clone","preorderTraverse","node","isMeasure","top100dataset","sample","prev","cur","Object","key","item","undefined","measure"],"mappings":";;AAOO,MAAMA,kCAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,QAAQ,EAAEC,OAAO,EAAE,GAAGF;IAE9B,IAAIC,YAAYA,SAAS,MAAM,GAAG,GAAG;QACnC,MAAME,iBAAiBC,MAAMH;QAC7BI,iBAAiBF,gBAAgB,CAACG;YAChC,IAAIC,UAAUD,OACZA,KAAK,KAAK,GAAGA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAEpC,OAAO;QACT;QACA,OAAO;YACL,GAAGR,aAAa;YAChB,UAAUK;QACZ;IACF;IAEA,MAAMK,gBAAgBN,QAAQ,KAAK,CAAC,GAAG;IACvC,MAAMO,SAASD,cAAc,MAAM,CAAQ,CAACE,MAAMC,MACzC;YAAE,GAAGD,IAAI;YAAE,GAAGC,GAAG;QAAC,IACxB,CAAC;IACJ,MAAMd,kBAAkBe,OAAO,IAAI,CAACH,QACjC,MAAM,CAAC,CAACI,MACAL,cAAc,IAAI,CAAC,CAACM,OAAS,AAAqB,YAArB,OAAOA,IAAI,CAACD,IAAI,KAAkB,CAAC;YAAC;YAAI;YAAME;SAAU,CAAC,QAAQ,CAACF,MAEvG,GAAG,CAAC,CAACG,UAAa;YACjB,IAAIA;YACJ,OAAOA;QACT;IAEF,OAAO;QACL,GAAGlB,aAAa;QAChB,UAAUD;IACZ;AACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/table/pipes/init/initAdvancedVSeed.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/initAdvancedVSeed.ts"],"sourcesContent":["import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n"],"names":["initAdvancedVSeed","advancedVSeed","context","vseed","chartType","locale"],"mappings":"
|
1
|
+
{"version":3,"file":"pipeline/advanced/table/pipes/init/initAdvancedVSeed.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/initAdvancedVSeed.ts"],"sourcesContent":["import { checkVSeed } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n\n checkVSeed(vseed)\n\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n"],"names":["initAdvancedVSeed","advancedVSeed","context","vseed","chartType","locale","checkVSeed"],"mappings":";AAGO,MAAMA,oBAAkC,CAACC,eAAeC;IAC7D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAEC,MAAM,EAAE,GAAGF;IAE9BG,WAAWH;IAEX,OAAO;QACL,GAAGF,aAAa;QAChBG;QACA,QAAQC,UAAU;IACpB;AACF"}
|