@visactor/vseed 0.1.12 → 0.1.13
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 +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/advanced/colorItems.js +3 -2
- package/dist/esm/builder/builder/advanced/colorItems.js.map +1 -1
- package/dist/esm/builder/builder/build.js +0 -2
- package/dist/esm/builder/builder/build.js.map +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js +3 -1
- package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
- package/dist/esm/builder/builder/buildSpec.js +3 -1
- package/dist/esm/builder/builder/buildSpec.js.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +357 -9
- package/dist/esm/builder/builder/builder.js +1 -1
- package/dist/esm/builder/builder/builder.js.map +1 -1
- package/dist/esm/dataReshape/foldMeasures.js +16 -16
- package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js +12 -0
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/deleteTooltipAndLabelDimensions.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.d.ts +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/index.js +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +8 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/index.d.ts +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/index.js +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipAndLabelMeasure.d.ts +2 -0
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipAndLabelMeasure.js +12 -0
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipAndLabelMeasure.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +2 -2
- package/dist/esm/pipeline/advanced/table/pipes/init/index.d.ts +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/init/index.js +0 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js +41 -20
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
- package/dist/esm/pipeline/utils/dimensions/delete.d.ts +8 -0
- package/dist/esm/pipeline/utils/dimensions/delete.js +40 -0
- package/dist/esm/pipeline/utils/dimensions/delete.js.map +1 -0
- package/dist/esm/pipeline/utils/dimensions/find.d.ts +0 -2
- package/dist/esm/pipeline/utils/dimensions/find.js +0 -13
- package/dist/esm/pipeline/utils/dimensions/index.d.ts +2 -1
- package/dist/esm/pipeline/utils/dimensions/index.js +2 -1
- package/dist/esm/pipeline/utils/dimensions/typeGuard.d.ts +3 -0
- package/dist/esm/pipeline/utils/dimensions/typeGuard.js +5 -0
- package/dist/esm/pipeline/utils/dimensions/typeGuard.js.map +1 -0
- package/dist/esm/theme/dark.js +19 -4
- package/dist/esm/theme/dark.js.map +1 -1
- package/dist/esm/theme/light.js +19 -4
- package/dist/esm/theme/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +160 -40
- package/dist/esm/types/chartType/area/zArea.d.ts +4 -1
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +4 -1
- package/dist/esm/types/chartType/bar/zBar.d.ts +4 -1
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +4 -1
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +4 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +4 -1
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +4 -1
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +4 -1
- package/dist/esm/types/chartType/donut/zDonut.d.ts +4 -1
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +4 -1
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +4 -1
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +4 -1
- package/dist/esm/types/chartType/line/zLine.d.ts +4 -1
- package/dist/esm/types/chartType/pie/zPie.d.ts +4 -1
- package/dist/esm/types/chartType/radar/zRadar.d.ts +4 -1
- package/dist/esm/types/chartType/rose/zRose.d.ts +4 -1
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +4 -1
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +4 -1
- package/dist/esm/types/properties/config/config.d.ts +144 -36
- package/dist/esm/types/properties/config/config.js +1 -1
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/label/index.d.ts +2 -1
- package/dist/esm/types/properties/config/label/index.js +1 -1
- package/dist/esm/types/properties/config/label/label.d.ts +15 -6
- package/dist/esm/types/properties/config/label/label.js +0 -7
- package/dist/esm/types/properties/config/label/zLabel.d.ts +7 -0
- package/dist/esm/types/properties/config/label/zLabel.js +10 -0
- package/dist/esm/types/properties/config/label/zLabel.js.map +1 -0
- package/dist/esm/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +8 -2
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +24 -6
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js +8 -2
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
- package/dist/esm/types/properties/theme/customTheme.d.ts +144 -36
- package/dist/esm/types/zVseed.d.ts +72 -18
- package/dist/umd/index.js +405 -205
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.d.ts +0 -2
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.js +0 -12
- package/dist/esm/pipeline/advanced/chart/pipes/measures/deleteTooltipMeasure.js.map +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/init/autoPivotDimensions.d.ts +0 -2
- package/dist/esm/pipeline/advanced/table/pipes/init/autoPivotDimensions.js +0 -52
- package/dist/esm/pipeline/advanced/table/pipes/init/autoPivotDimensions.js.map +0 -1
- package/dist/esm/pipeline/utils/dimensions/find.js.map +0 -1
- package/dist/esm/types/properties/config/label/label.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/radar.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/radar.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForRadar: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRadar: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n encoding.angle = uniqueDimIds.slice(0, 1)\n encoding.color = uniqueDimIds.slice(1)\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.detail = [] // 雷达图暂不支持细分\n encoding.label = []\n encoding.row = []\n encoding.column = []\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // angle\n encoding.angle = unique(dimensions.filter((item) => item.encoding === 'angle').map((item) => item.id))\n if (encoding.angle.length === 0) {\n encoding.angle = [dimensions[0].id]\n }\n\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = []\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureName]\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n}\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // radius\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...tooltip])\n}\n"],"names":["defaultEncodingForRadar","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForRadar","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","uniqueDimIds","unique","d","MeasureName","color","tooltip"],"mappings":";;;AAKO,MAAMA,0BAAwC,CAACC;IACpD,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IACjC,MAAMI,WAAqB,CAAC;IAC5BC,iCAAiCJ,YAAYG;IAC7CE,+BAA+BJ,UAAUE;IACzC,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAEO,MAAMG,mBAAiC,CAACR;IAC7C,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IAEjC,MAAMQ,uBAAuBP,WAAW,IAAI,CAAC,CAACQ,OAAoBA,KAAK,QAAQ;IAC/E,MAAMC,qBAAqBR,SAAS,IAAI,CAAC,CAACO,OAAkBA,KAAK,QAAQ;IACzE,MAAML,WAAqB,CAAC;IAE5B,IAAII,sBACFG,0BAA0BV,YAAYG;SAEtCC,iCAAiCJ,YAAYG;IAG/C,IAAIM,oBACFE,wBAAwBV,UAAUE;SAElCE,+BAA+BJ,UAAUE;IAG3C,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAKA,MAAMC,mCAAmC,CAACJ,YAAwBG;IAChE,MAAMS,eAAeC,OAAOb,WAAW,GAAG,CAAC,CAACc,IAAMA,EAAE,EAAE;IACtDX,SAAS,KAAK,GAAGS,aAAa,KAAK,CAAC,GAAG;IACvCT,SAAS,KAAK,GAAGS,aAAa,KAAK,CAAC;IACpCT,SAAS,OAAO,GAAGS,aAAa,MAAM,CAAC,CAACE,IAAMA,MAAMC;IACpDZ,SAAS,MAAM,GAAG,EAAE;IACpBA,SAAS,KAAK,GAAG,EAAE;IACnBA,SAAS,GAAG,GAAG,EAAE;IACjBA,SAAS,MAAM,GAAG,EAAE;AACtB;AACA,MAAMO,4BAA4B,CAACV,YAAwBG;IAEzDA,SAAS,KAAK,GAAGU,OAAOb,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpG,IAAIL,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACvBA,SAAS,KAAK,GAAG;QAACH,UAAU,CAAC,EAAE,CAAC,EAAE;KAAC;IAIrCG,SAAS,KAAK,GAAGU,OAAOb,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpG,IAAIL,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACvBA,SAAS,KAAK,GAAG;QAACY;KAAY;IAIhCZ,SAAS,MAAM,GAAG,EAAE;IACpB,IAAIA,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,EACxBA,SAAS,MAAM,GAAG;QAACY;KAAY;IAIjCZ,SAAS,OAAO,GAAGU,OAAOb,WAAW,GAAG,CAAC,CAACQ,OAASA,KAAK,EAAE;IAC1DL,SAAS,OAAO,GAAGA,SAAS,OAAO,CAAC,MAAM,CAAC,CAACW,IAAMA,MAAMC;
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/radar.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/radar.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForRadar: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRadar: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n encoding.angle = uniqueDimIds.slice(0, 1)\n encoding.color = uniqueDimIds.slice(1)\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.detail = [] // 雷达图暂不支持细分\n encoding.label = []\n encoding.row = []\n encoding.column = []\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // angle\n encoding.angle = unique(dimensions.filter((item) => item.encoding === 'angle').map((item) => item.id))\n if (encoding.angle.length === 0) {\n encoding.angle = [dimensions[0].id]\n }\n\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = []\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureName]\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureName)\n}\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // radius\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip])\n}\n"],"names":["defaultEncodingForRadar","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForRadar","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","uniqueDimIds","unique","d","MeasureName","color","label","tooltip"],"mappings":"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"}
|
@@ -51,6 +51,8 @@ const generateDimensionEncoding = (dimensions, encoding)=>{
|
|
51
51
|
if (0 === encoding.detail.length) encoding.detail = encoding.color;
|
52
52
|
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
53
53
|
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
54
|
+
encoding.label = unique(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
55
|
+
encoding.label = encoding.label.filter((d)=>d !== MeasureName);
|
54
56
|
};
|
55
57
|
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
56
58
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
@@ -59,9 +61,15 @@ const generateMeasureEncoding = (measures, encoding)=>{
|
|
59
61
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
60
62
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
61
63
|
if (color.length > 0) encoding.color = color;
|
64
|
+
const label = unique(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
65
|
+
encoding.label = unique([
|
66
|
+
...encoding.label || [],
|
67
|
+
...label
|
68
|
+
]);
|
62
69
|
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
63
70
|
encoding.tooltip = unique([
|
64
71
|
...encoding.tooltip || [],
|
72
|
+
...label,
|
65
73
|
...tooltip
|
66
74
|
]);
|
67
75
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/rose.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/rose.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForRose: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRose: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const onlyMeasureName = dimensions.length === 1 && dimensions.find((item) => item.id === MeasureName)\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n encoding.angle = uniqueDimIds.slice(0, 1) // 第一个维度放置于X轴\n encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1) // 第二个之后的维度用于颜色\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // angle\n encoding.angle = unique(dimensions.filter((item) => item.encoding === 'angle').map((item) => item.id))\n if (encoding.angle.length === 0) {\n encoding.angle = [dimensions[0].id]\n }\n\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = encoding.color\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // y\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...tooltip])\n}\n"],"names":["defaultEncodingForRose","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForRose","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","onlyMeasureName","MeasureName","uniqueDimIds","unique","d","color","tooltip"],"mappings":";;;AAKO,MAAMA,yBAAuC,CAACC;IACnD,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IACjC,MAAMI,WAAqB,CAAC;IAC5BC,iCAAiCJ,YAAYG;IAC7CE,+BAA+BJ,UAAUE;IACzC,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAEO,MAAMG,kBAAgC,CAACR;IAC5C,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IAEjC,MAAMQ,uBAAuBP,WAAW,IAAI,CAAC,CAACQ,OAAoBA,KAAK,QAAQ;IAC/E,MAAMC,qBAAqBR,SAAS,IAAI,CAAC,CAACO,OAAkBA,KAAK,QAAQ;IAGzE,MAAML,WAAqB,CAAC;IAE5B,IAAII,sBACFG,0BAA0BV,YAAYG;SAEtCC,iCAAiCJ,YAAYG;IAG/C,IAAIM,oBACFE,wBAAwBV,UAAUE;SAElCE,+BAA+BJ,UAAUE;IAG3C,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAKA,MAAMC,mCAAmC,CAACJ,YAAwBG;IAChE,MAAMS,kBAAkBZ,AAAsB,MAAtBA,WAAW,MAAM,IAAUA,WAAW,IAAI,CAAC,CAACQ,OAASA,KAAK,EAAE,KAAKK;IACzF,MAAMC,eAAeC,OAAOf,WAAW,GAAG,CAAC,CAACgB,IAAMA,EAAE,EAAE;IACtDb,SAAS,KAAK,GAAGW,aAAa,KAAK,CAAC,GAAG;IACvCX,SAAS,KAAK,GAAGW,aAAa,KAAK,CAACF,kBAAkB,IAAI;IAC1DT,SAAS,MAAM,GAAGA,SAAS,KAAK;IAChCA,SAAS,OAAO,GAAGW,aAAa,MAAM,CAAC,CAACE,IAAMA,MAAMH;IACpDV,SAAS,KAAK,GAAG,EAAE;IACnBA,SAAS,GAAG,GAAG,EAAE;IACjBA,SAAS,MAAM,GAAG,EAAE;AACtB;AACA,MAAMO,4BAA4B,CAACV,YAAwBG;IAEzDA,SAAS,KAAK,GAAGY,OAAOf,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpG,IAAIL,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACvBA,SAAS,KAAK,GAAG;QAACH,UAAU,CAAC,EAAE,CAAC,EAAE;KAAC;IAIrCG,SAAS,KAAK,GAAGY,OAAOf,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpG,IAAIL,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACvBA,SAAS,KAAK,GAAG;QAACU;KAAY;IAIhCV,SAAS,MAAM,GAAGY,OAAOf,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,aAAlBA,KAAK,QAAQ,EAAe,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACtG,IAAIL,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,EACxBA,SAAS,MAAM,GAAGA,SAAS,KAAK;IAIlCA,SAAS,OAAO,GAAGY,OAAOf,WAAW,GAAG,CAAC,CAACQ,OAASA,KAAK,EAAE;IAC1DL,SAAS,OAAO,GAAGA,SAAS,OAAO,CAAC,MAAM,CAAC,CAACa,IAAMA,MAAMH;
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/rose.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/rose.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForRose: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForRose: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const onlyMeasureName = dimensions.length === 1 && dimensions.find((item) => item.id === MeasureName)\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n encoding.angle = uniqueDimIds.slice(0, 1) // 第一个维度放置于X轴\n encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1) // 第二个之后的维度用于颜色\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // angle\n encoding.angle = unique(dimensions.filter((item) => item.encoding === 'angle').map((item) => item.id))\n if (encoding.angle.length === 0) {\n encoding.angle = [dimensions[0].id]\n }\n\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = encoding.color\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureName)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // y\n encoding.radius = unique(\n measures.filter((item) => item.encoding === 'radius' || !item.encoding).map((item) => item.id),\n )\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip])\n}\n"],"names":["defaultEncodingForRose","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForRose","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","onlyMeasureName","MeasureName","uniqueDimIds","unique","d","color","label","tooltip"],"mappings":"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"}
|
@@ -48,6 +48,8 @@ const generateDimensionEncoding = (dimensions, encoding)=>{
|
|
48
48
|
];
|
49
49
|
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
50
50
|
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
51
|
+
encoding.label = unique(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
52
|
+
encoding.label = encoding.label.filter((d)=>d !== MeasureName);
|
51
53
|
};
|
52
54
|
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
53
55
|
encoding.y = unique(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
@@ -58,9 +60,15 @@ const generateMeasureEncoding = (measures, encoding)=>{
|
|
58
60
|
if (color.length > 0) encoding.color = [
|
59
61
|
color[0]
|
60
62
|
];
|
63
|
+
const label = unique(measures.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
64
|
+
encoding.label = unique([
|
65
|
+
...encoding.label || [],
|
66
|
+
...label
|
67
|
+
]);
|
61
68
|
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
62
69
|
encoding.tooltip = unique([
|
63
70
|
...encoding.tooltip || [],
|
71
|
+
...label,
|
64
72
|
...tooltip
|
65
73
|
]);
|
66
74
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/scatter.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n // prepare measures and dimensions\n const measures = findAllMeasures(vseedMeasures)\n\n // exist encoding condition\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const dimensionsWithoutMeasureName = dimensions.filter((item) => item.id !== MeasureName)\n const uniqueDimIds = unique(dimensionsWithoutMeasureName.map((d) => d.id))\n encoding.color = uniqueDimIds.slice(0)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureName]\n }\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = [color[0]]\n }\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...tooltip])\n}\n"],"names":["defaultEncodingForScatter","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForScatter","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","dimensionsWithoutMeasureName","MeasureName","uniqueDimIds","unique","d","color","tooltip"],"mappings":";;;AAKO,MAAMA,4BAA0C,CAACC;IACtD,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAC1D,MAAMG,WAAWC,gBAAgBH;IACjC,MAAMI,WAAqB,CAAC;IAC5BC,iCAAiCJ,YAAYG;IAC7CE,+BAA+BJ,UAAUE;IACzC,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAEO,MAAMG,qBAAmC,CAACR;IAC/C,MAAM,EAAE,UAAUC,gBAAgB,EAAE,EAAEC,aAAa,EAAE,EAAE,GAAGF;IAE1D,MAAMG,WAAWC,gBAAgBH;IAGjC,MAAMQ,uBAAuBP,WAAW,IAAI,CAAC,CAACQ,OAAoBA,KAAK,QAAQ;IAC/E,MAAMC,qBAAqBR,SAAS,IAAI,CAAC,CAACO,OAAkBA,KAAK,QAAQ;IAGzE,MAAML,WAAqB,CAAC;IAE5B,IAAII,sBACFG,0BAA0BV,YAAYG;SAEtCC,iCAAiCJ,YAAYG;IAG/C,IAAIM,oBACFE,wBAAwBV,UAAUE;SAElCE,+BAA+BJ,UAAUE;IAG3C,OAAO;QAAE,GAAGL,aAAa;QAAEK;IAAS;AACtC;AAIA,MAAMC,mCAAmC,CAACJ,YAAwBG;IAChE,MAAMS,+BAA+BZ,WAAW,MAAM,CAAC,CAACQ,OAASA,KAAK,EAAE,KAAKK;IAC7E,MAAMC,eAAeC,OAAOH,6BAA6B,GAAG,CAAC,CAACI,IAAMA,EAAE,EAAE;IACxEb,SAAS,KAAK,GAAGW,aAAa,KAAK,CAAC;IACpCX,SAAS,MAAM,GAAGA,SAAS,KAAK;IAChCA,SAAS,OAAO,GAAGW,aAAa,MAAM,CAAC,CAACE,IAAMA,MAAMH;IACpDV,SAAS,KAAK,GAAG,EAAE;IACnBA,SAAS,GAAG,GAAG,EAAE;IACjBA,SAAS,MAAM,GAAG,EAAE;AACtB;AACA,MAAMO,4BAA4B,CAACV,YAAwBG;IAEzDA,SAAS,KAAK,GAAGY,OAAOf,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,YAAlBA,KAAK,QAAQ,EAAc,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACpG,IAAIL,AAA0B,MAA1BA,SAAS,KAAK,CAAC,MAAM,EACvBA,SAAS,KAAK,GAAG;QAACU;KAAY;IAIhCV,SAAS,MAAM,GAAGY,OAAOf,WAAW,MAAM,CAAC,CAACQ,OAASA,AAAkB,aAAlBA,KAAK,QAAQ,EAAe,GAAG,CAAC,CAACA,OAASA,KAAK,EAAE;IACtG,IAAIL,AAA2B,MAA3BA,SAAS,MAAM,CAAC,MAAM,EACxBA,SAAS,MAAM,GAAG;QAACU;KAAY;IAGjCV,SAAS,OAAO,GAAGY,OAAOf,WAAW,GAAG,CAAC,CAACQ,OAASA,KAAK,EAAE;IAC1DL,SAAS,OAAO,GAAGA,SAAS,OAAO,CAAC,MAAM,CAAC,CAACa,IAAMA,MAAMH;
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/scatter.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\n\nexport const defaultEncodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForScatter: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n // prepare measures and dimensions\n const measures = findAllMeasures(vseedMeasures)\n\n // exist encoding condition\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n\n // encoding for modify in place\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n const dimensionsWithoutMeasureName = dimensions.filter((item) => item.id !== MeasureName)\n const uniqueDimIds = unique(dimensionsWithoutMeasureName.map((d) => d.id))\n encoding.color = uniqueDimIds.slice(0)\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureName) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding) => {\n // color\n encoding.color = unique(dimensions.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (encoding.color.length === 0) {\n encoding.color = [MeasureName]\n }\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureName]\n }\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureName)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureName)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.y = unique(\n measures\n .filter((item) => item.encoding === 'xAxis' || item.encoding === 'yAxis' || !item.encoding)\n .map((item) => item.id),\n )\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = [color[0]]\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip])\n}\n"],"names":["defaultEncodingForScatter","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","generateDefaultMeasureEncoding","encodingForScatter","hasDimensionEncoding","item","hasMeasureEncoding","generateDimensionEncoding","generateMeasureEncoding","dimensionsWithoutMeasureName","MeasureName","uniqueDimIds","unique","d","color","label","tooltip"],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { deleteMeasureTreeByCallback } from "../../../../utils/index.js";
|
2
|
+
const deleteTooltipAndLabelMeasure = (advancedVSeed)=>{
|
3
|
+
const deleteBy = (measure)=>'tooltip' === measure.encoding || 'label' === measure.encoding;
|
4
|
+
const measureTree = deleteMeasureTreeByCallback(advancedVSeed.measures, deleteBy);
|
5
|
+
return {
|
6
|
+
...advancedVSeed,
|
7
|
+
measures: measureTree
|
8
|
+
};
|
9
|
+
};
|
10
|
+
export { deleteTooltipAndLabelMeasure };
|
11
|
+
|
12
|
+
//# sourceMappingURL=deleteTooltipAndLabelMeasure.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/measures/deleteTooltipAndLabelMeasure.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/measures/deleteTooltipAndLabelMeasure.ts"],"sourcesContent":["import { deleteMeasureTreeByCallback } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Measure } from 'src/types'\n\nexport const deleteTooltipAndLabelMeasure: AdvancedPipe = (advancedVSeed) => {\n const deleteBy = (measure: Measure) => measure.encoding === 'tooltip' || measure.encoding === 'label'\n\n const measureTree = deleteMeasureTreeByCallback(advancedVSeed.measures, deleteBy)\n\n return {\n ...advancedVSeed,\n measures: measureTree,\n }\n}\n"],"names":["deleteTooltipAndLabelMeasure","advancedVSeed","deleteBy","measure","measureTree","deleteMeasureTreeByCallback"],"mappings":";AAGO,MAAMA,+BAA6C,CAACC;IACzD,MAAMC,WAAW,CAACC,UAAqBA,AAAqB,cAArBA,QAAQ,QAAQ,IAAkBA,AAAqB,YAArBA,QAAQ,QAAQ;IAEzF,MAAMC,cAAcC,4BAA4BJ,cAAc,QAAQ,EAAEC;IAExE,OAAO;QACL,GAAGD,aAAa;QAChB,UAAUG;IACZ;AACF"}
|
@@ -2,4 +2,4 @@ export * from './utils';
|
|
2
2
|
export { buildMeasuresForDualAxis } from './buildMeasuresForDualAxis';
|
3
3
|
export { buildMeasures } from './buildMeasures';
|
4
4
|
export { buildMeasuresForScatter } from './buildMeasuresForScatter';
|
5
|
-
export {
|
5
|
+
export { deleteTooltipAndLabelMeasure } from './deleteTooltipAndLabelMeasure';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { buildMeasuresForDualAxis } from "./buildMeasuresForDualAxis.js";
|
2
2
|
import { buildMeasures } from "./buildMeasures.js";
|
3
3
|
import { buildMeasuresForScatter } from "./buildMeasuresForScatter.js";
|
4
|
-
import {
|
4
|
+
import { deleteTooltipAndLabelMeasure } from "./deleteTooltipAndLabelMeasure.js";
|
5
5
|
export * from "./utils.js";
|
6
|
-
export { buildMeasures, buildMeasuresForDualAxis, buildMeasuresForScatter,
|
6
|
+
export { buildMeasures, buildMeasuresForDualAxis, buildMeasuresForScatter, deleteTooltipAndLabelMeasure };
|
@@ -39,6 +39,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
39
39
|
case 'columnPercent':
|
40
40
|
result.type = 'bar';
|
41
41
|
result.percent = true;
|
42
|
+
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
42
43
|
break;
|
43
44
|
case 'area':
|
44
45
|
result.type = 'area';
|
@@ -95,6 +96,7 @@ const dualChartTypeSecondary = (spec, context)=>{
|
|
95
96
|
case 'columnPercent':
|
96
97
|
result.type = 'bar';
|
97
98
|
result.percent = true;
|
99
|
+
result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
|
98
100
|
break;
|
99
101
|
case 'area':
|
100
102
|
result.type = 'area';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/dual/dualChartType.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts"],"sourcesContent":["import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport { DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } from 'src/pipeline/utils/constant'\nimport type { DualChartType, SpecPipe } from 'src/types'\n\nexport const dualChartTypePrimary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const index = datasetReshapeInfo[0].index\n\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : primary\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.encodingDetail]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = primary\n }\n\n return result\n}\n\nexport const dualChartTypeSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const index = datasetReshapeInfo[0].index\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : secondary\n\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.encodingDetail]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = secondary\n }\n\n return result\n}\n"],"names":["dualChartTypePrimary","spec","context","result","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","advancedVSeed","vseed","chartType","datasetReshapeInfo","index","config","primary","Array","secondary","bothColumn","type","DUAL_AXIS_CHART_COLUMN_Z_INDEX","columnSpec","dualChartTypeSecondary"],"mappings":";AAIO,MAAMA,uBAAiC,CAACC,MAAMC;IACnD,MAAMC,SAAS;QAAE,GAAGF,IAAI;QAAE,QAAQG;IAAmC;IACrE,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGJ;IACjC,MAAM,EAAEK,SAAS,EAAE,GAAGD;IACtB,MAAM,EAAEE,kBAAkB,EAAE,GAAGH;IAC/B,MAAMI,QAAQD,kBAAkB,CAAC,EAAE,CAAC,KAAK;IAEzC,MAAME,SACJL,cAAc,MAAM,EAAE,CAACE,UAAwB,EAAE,iBAChD;QACC,SAAS;QACT,WAAW;IACb;IAEF,MAAMI,UAAUC,MAAM,OAAO,CAACF,UAAUA,MAAM,CAACD,MAAM,CAAC,OAAO,IAAIC,MAAM,CAAC,EAAE,CAAC,OAAO,GAAGA,OAAO,OAAO;IACnG,MAAMG,YAAYD,MAAM,OAAO,CAACF,UAAUA,MAAM,CAACD,MAAM,CAAC,SAAS,IAAIC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAGA,OAAO,SAAS;IAC3G,MAAMI,aAAaH,AAAY,aAAZA,WAAwBE,AAAc,aAAdA;IAC3C,MAAME,OAAOD,aAAa,mBAAmBH;IAC7C,OAAQI;QACN,KAAK;YACHZ,OAAO,IAAI,GAAG;YACd;QAEF,KAAK;YACHA,OAAO,IAAI,GAAG;YACdA,OAAO,MAAM,GAAGa;YAChB;QAEF,KAAK;YAAkB;gBACrB,MAAMC,aAAad;gBACnB,IAAIS,MAAM,OAAO,CAACK,WAAW,MAAM,GACjCA,WAAW,MAAM,CAAC,IAAI,CAACT,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc;qBACjE,IAAIS,WAAW,MAAM,EAC1BA,WAAW,MAAM,GAAG;oBAACA,WAAW,MAAM;oBAAET,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc;iBAAC;gBAE1FS,WAAW,IAAI,GAAG;gBAClBd,OAAO,MAAM,GAAGa;gBAChB;YACF;QAEA,KAAK;YACHb,OAAO,IAAI,GAAG;YACdA,OAAO,OAAO,GAAG;
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/dual/dualChartType.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts"],"sourcesContent":["import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport { DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } from 'src/pipeline/utils/constant'\nimport type { DualChartType, SpecPipe } from 'src/types'\n\nexport const dualChartTypePrimary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const index = datasetReshapeInfo[0].index\n\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : primary\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.encodingDetail]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = primary\n }\n\n return result\n}\n\nexport const dualChartTypeSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const index = datasetReshapeInfo[0].index\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : secondary\n\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.encodingDetail]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = secondary\n }\n\n return result\n}\n"],"names":["dualChartTypePrimary","spec","context","result","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","advancedVSeed","vseed","chartType","datasetReshapeInfo","index","config","primary","Array","secondary","bothColumn","type","DUAL_AXIS_CHART_COLUMN_Z_INDEX","columnSpec","dualChartTypeSecondary"],"mappings":"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"}
|
@@ -1,39 +1,60 @@
|
|
1
1
|
import { autoFormatter, createFormatter, findMeasureById } from "../../../../utils/index.js";
|
2
|
-
import { isEmpty } from "remeda";
|
2
|
+
import { isEmpty, uniqueBy } from "remeda";
|
3
|
+
import { intl } from "../../../../../i18n/index.js";
|
3
4
|
const label_label = (spec, context)=>{
|
4
5
|
const result = {
|
5
6
|
...spec
|
6
7
|
};
|
7
|
-
const { advancedVSeed } = context;
|
8
|
-
const { measures, datasetReshapeInfo
|
9
|
-
const { chartType } = advancedVSeed;
|
8
|
+
const { advancedVSeed, vseed } = context;
|
9
|
+
const { measures, datasetReshapeInfo } = advancedVSeed;
|
10
|
+
const { chartType, encoding } = advancedVSeed;
|
10
11
|
const baseConfig = advancedVSeed.config[chartType];
|
11
12
|
if (!baseConfig || !baseConfig.label) return result;
|
12
|
-
const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo;
|
13
|
+
const { measureId, measureValue, statistics } = datasetReshapeInfo[0].foldInfo;
|
13
14
|
const { label } = baseConfig;
|
14
|
-
const { enable } = label;
|
15
|
+
const { enable, wrap, showValue, showValuePercent } = label;
|
16
|
+
const labelDims = uniqueBy((vseed.dimensions || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
|
17
|
+
const labelMeas = uniqueBy((vseed.measures || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
|
18
|
+
const format = {
|
19
|
+
type: 'percent'
|
20
|
+
};
|
21
|
+
const formatter = createFormatter(format);
|
15
22
|
result.label = {
|
16
23
|
visible: enable,
|
17
|
-
formatMethod: (
|
24
|
+
formatMethod: (_, datum)=>{
|
18
25
|
const result = [];
|
19
|
-
const
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
return String(value);
|
30
|
-
};
|
31
|
-
result.push(formatValue(datum[measureValue]));
|
26
|
+
const measure = findMeasureById(measures, datum[measureId]);
|
27
|
+
const dimLabels = labelDims.map((item)=>item.alias || item.id);
|
28
|
+
const meaLabels = labelMeas.map((item)=>generateMeasureValue(datum[item.id], item));
|
29
|
+
const measureValueLabel = generateMeasureValue(datum[measureValue], measure);
|
30
|
+
const measurePercentLabel = generateMeasurePercent(datum[measureValue], statistics.sum, formatter);
|
31
|
+
result.push(...dimLabels);
|
32
|
+
if (showValue) result.push(measureValueLabel);
|
33
|
+
if (showValuePercent) result.push(measurePercentLabel);
|
34
|
+
result.push(...meaLabels);
|
35
|
+
if (wrap) return result;
|
32
36
|
return result.join(' ');
|
33
37
|
}
|
34
38
|
};
|
35
39
|
return result;
|
36
40
|
};
|
41
|
+
const generateMeasureValue = (value, measure)=>{
|
42
|
+
if (!measure) return value;
|
43
|
+
const { format = {}, autoFormat = true } = measure;
|
44
|
+
if (!isEmpty(format)) {
|
45
|
+
const formatter = createFormatter(format);
|
46
|
+
return formatter(value);
|
47
|
+
}
|
48
|
+
if (autoFormat) return autoFormatter(value, intl.getLocale());
|
49
|
+
return String(value);
|
50
|
+
};
|
51
|
+
const generateMeasurePercent = (value, sum, formatter)=>{
|
52
|
+
if (null == value) return String(value);
|
53
|
+
const num = Number(value);
|
54
|
+
if (Number.isNaN(num)) return String(value);
|
55
|
+
const percentValue = num / sum;
|
56
|
+
return formatter(percentValue);
|
57
|
+
};
|
37
58
|
export { label_label as label };
|
38
59
|
|
39
60
|
//# sourceMappingURL=label.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Label, SpecPipe } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/label/label.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Formatter, Label, Measure, NumFormat, SpecPipe } from 'src/types'\nimport { isEmpty, uniqueBy } from 'remeda'\nimport { intl } from 'src/i18n'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { measures, datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { measureId, measureValue, statistics } = datasetReshapeInfo[0].foldInfo\n const { label } = baseConfig\n const { enable, wrap, showValue, showValuePercent } = label\n\n const labelDims = uniqueBy(\n (vseed.dimensions || []).filter((item) => encoding.label?.includes(item.id)),\n (item) => item.id,\n )\n const labelMeas = uniqueBy(\n (vseed.measures || []).filter((item) => encoding.label?.includes(item.id)),\n (item) => item.id,\n )\n\n const format: NumFormat = {\n type: 'percent',\n }\n const formatter = createFormatter(format)\n\n result.label = {\n visible: enable,\n formatMethod: (_, datum: Datum) => {\n const result = []\n\n const measure = findMeasureById(measures, datum[measureId] as string)\n const dimLabels = labelDims.map((item) => item.alias || item.id)\n const meaLabels = labelMeas.map((item) => generateMeasureValue(datum[item.id] as number | string, item))\n const measureValueLabel = generateMeasureValue(datum[measureValue] as number | string, measure)\n const measurePercentLabel = generateMeasurePercent(\n datum[measureValue] as number | string,\n statistics.sum,\n formatter,\n )\n\n result.push(...dimLabels)\n\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n result.push(measurePercentLabel)\n }\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n\nconst generateMeasureValue = (value: number | string, measure?: Measure) => {\n if (!measure) {\n return value\n }\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, intl.getLocale())\n }\n return String(value)\n}\n\nconst generateMeasurePercent = (value: number | string, sum: number, formatter: Formatter) => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const percentValue = num / sum\n return formatter(percentValue)\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","measures","datasetReshapeInfo","chartType","encoding","baseConfig","measureId","measureValue","statistics","enable","wrap","showValue","showValuePercent","labelDims","uniqueBy","item","labelMeas","format","formatter","createFormatter","_","datum","measure","findMeasureById","dimLabels","meaLabels","generateMeasureValue","measureValueLabel","measurePercentLabel","generateMeasurePercent","value","autoFormat","isEmpty","autoFormatter","intl","String","sum","num","Number","percentValue"],"mappings":";;;AAOO,MAAMA,cAAkB,CAACC,MAAMC;IACpC,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,QAAQ,EAAEC,kBAAkB,EAAE,GAAGH;IACzC,MAAM,EAAEI,SAAS,EAAEC,QAAQ,EAAE,GAAGL;IAChC,MAAMM,aAAaN,cAAc,MAAM,CAACI,UAAU;IAElD,IAAI,CAACE,cAAc,CAACA,WAAW,KAAK,EAClC,OAAOP;IAGT,MAAM,EAAEQ,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAE,GAAGN,kBAAkB,CAAC,EAAE,CAAC,QAAQ;IAC9E,MAAM,EAAEP,KAAK,EAAE,GAAGU;IAClB,MAAM,EAAEI,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,gBAAgB,EAAE,GAAGjB;IAEtD,MAAMkB,YAAYC,SACfd,AAAAA,CAAAA,MAAM,UAAU,IAAI,EAAC,EAAG,MAAM,CAAC,CAACe,OAASX,SAAS,KAAK,EAAE,SAASW,KAAK,EAAE,IAC1E,CAACA,OAASA,KAAK,EAAE;IAEnB,MAAMC,YAAYF,SACfd,AAAAA,CAAAA,MAAM,QAAQ,IAAI,EAAC,EAAG,MAAM,CAAC,CAACe,OAASX,SAAS,KAAK,EAAE,SAASW,KAAK,EAAE,IACxE,CAACA,OAASA,KAAK,EAAE;IAGnB,MAAME,SAAoB;QACxB,MAAM;IACR;IACA,MAAMC,YAAYC,gBAAgBF;IAElCnB,OAAO,KAAK,GAAG;QACb,SAASW;QACT,cAAc,CAACW,GAAGC;YAChB,MAAMvB,SAAS,EAAE;YAEjB,MAAMwB,UAAUC,gBAAgBtB,UAAUoB,KAAK,CAACf,UAAU;YAC1D,MAAMkB,YAAYX,UAAU,GAAG,CAAC,CAACE,OAASA,KAAK,KAAK,IAAIA,KAAK,EAAE;YAC/D,MAAMU,YAAYT,UAAU,GAAG,CAAC,CAACD,OAASW,qBAAqBL,KAAK,CAACN,KAAK,EAAE,CAAC,EAAqBA;YAClG,MAAMY,oBAAoBD,qBAAqBL,KAAK,CAACd,aAAa,EAAqBe;YACvF,MAAMM,sBAAsBC,uBAC1BR,KAAK,CAACd,aAAa,EACnBC,WAAW,GAAG,EACdU;YAGFpB,OAAO,IAAI,IAAI0B;YAEf,IAAIb,WACFb,OAAO,IAAI,CAAC6B;YAEd,IAAIf,kBACFd,OAAO,IAAI,CAAC8B;YAGd9B,OAAO,IAAI,IAAI2B;YAEf,IAAIf,MACF,OAAOZ;YAET,OAAOA,OAAO,IAAI,CAAC;QACrB;IACF;IACA,OAAOA;AACT;AAEA,MAAM4B,uBAAuB,CAACI,OAAwBR;IACpD,IAAI,CAACA,SACH,OAAOQ;IAET,MAAM,EAAEb,SAAS,CAAC,CAAC,EAAEc,aAAa,IAAI,EAAE,GAAGT;IAE3C,IAAI,CAACU,QAAQf,SAAS;QACpB,MAAMC,YAAYC,gBAAgBF;QAClC,OAAOC,UAAUY;IACnB;IACA,IAAIC,YACF,OAAOE,cAAcH,OAAOI,KAAK,SAAS;IAE5C,OAAOC,OAAOL;AAChB;AAEA,MAAMD,yBAAyB,CAACC,OAAwBM,KAAalB;IACnE,IAAIY,QAAAA,OAAuC,OAAOK,OAAOL;IACzD,MAAMO,MAAMC,OAAOR;IACnB,IAAIQ,OAAO,KAAK,CAACD,MAAM,OAAOF,OAAOL;IAErC,MAAMS,eAAeF,MAAMD;IAC3B,OAAOlB,UAAUqB;AACnB"}
|
@@ -7,8 +7,8 @@ const pivotColorLegend = (spec, context)=>{
|
|
7
7
|
const baseConfig = advancedVSeed.config[chartType];
|
8
8
|
if (!baseConfig || !baseConfig.legend) return result;
|
9
9
|
const { datasetReshapeInfo } = advancedVSeed;
|
10
|
-
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.
|
11
|
-
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.
|
10
|
+
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMin));
|
11
|
+
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
|
12
12
|
const { legend, color } = baseConfig;
|
13
13
|
const { colorScheme, linearColorScheme } = color;
|
14
14
|
const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/legend/pivotColorLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/pivotColorLegend.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IColorTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotColorLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend; color: Color }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const max = Math.max(...datasetReshapeInfo.map((d) => d.foldInfo.
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/legend/pivotColorLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/pivotColorLegend.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IColorTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotColorLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend; color: Color }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const max = Math.max(...datasetReshapeInfo.map((d) => d.foldInfo.statistics.colorMin))\n const min = Math.min(...datasetReshapeInfo.map((d) => d.foldInfo.statistics.colorMax))\n const { legend, color } = baseConfig\n const { colorScheme, linearColorScheme } = color\n\n const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n const legends: IColorTableLegendOption = {\n visible: enable,\n type: 'color',\n orient,\n position: legendPosition,\n\n colors: linearColorScheme || colorScheme || [],\n value: [min, max],\n min: min,\n max: max,\n\n maxWidth: '30%',\n startText: {\n visible: true,\n style: {\n fill: labelFontColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n },\n },\n endText: {\n visible: true,\n style: {\n fill: labelFontColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n },\n },\n }\n return { ...result, legends }\n}\n"],"names":["pivotColorLegend","spec","context","result","advancedVSeed","chartType","baseConfig","datasetReshapeInfo","max","Math","d","min","legend","color","colorScheme","linearColorScheme","enable","position","labelFontColor","labelFontSize","labelFontWeight","orient","legendPosition","legends"],"mappings":"AAIO,MAAMA,mBAA6B,CAACC,MAAMC;IAC/C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAE,GAAGD;IACtB,MAAME,aAAaF,cAAc,MAAM,CAACC,UAAU;IAElD,IAAI,CAACC,cAAc,CAACA,WAAW,MAAM,EACnC,OAAOH;IAGT,MAAM,EAAEI,kBAAkB,EAAE,GAAGH;IAC/B,MAAMI,MAAMC,KAAK,GAAG,IAAIF,mBAAmB,GAAG,CAAC,CAACG,IAAMA,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;IACpF,MAAMC,MAAMF,KAAK,GAAG,IAAIF,mBAAmB,GAAG,CAAC,CAACG,IAAMA,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ;IACpF,MAAM,EAAEE,MAAM,EAAEC,KAAK,EAAE,GAAGP;IAC1B,MAAM,EAAEQ,WAAW,EAAEC,iBAAiB,EAAE,GAAGF;IAE3C,MAAM,EAAEG,MAAM,EAAEC,WAAW,QAAQ,EAAEC,cAAc,EAAEC,gBAAgB,EAAE,EAAEC,kBAAkB,GAAG,EAAE,GAAGR,UAAU,CAAC;IAE9G,MAAMS,SAAS;QAAC;QAAU;QAAc;QAAe;QAAM;KAAK,CAAC,QAAQ,CAACJ,YACxE,WACA;QAAC;QAAO;QAAW;QAAY;QAAM;KAAK,CAAC,QAAQ,CAACA,YAClD,QACA;QAAC;QAAQ;QAAW;QAAc;QAAM;KAAK,CAAC,QAAQ,CAACA,YACrD,SACA;IAER,MAAMK,iBAAiB;QAAC;QAAW;QAAc;QAAW;QAAY;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACL,YACrG,UACA;QAAC;QAAY;QAAe;QAAc;QAAe;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACA,YACxF,QACA;IAEN,MAAMM,UAAmC;QACvC,SAASP;QACT,MAAM;QACNK;QACA,UAAUC;QAEV,QAAQP,qBAAqBD,eAAe,EAAE;QAC9C,OAAO;YAACH;YAAKH;SAAI;QACjB,KAAKG;QACL,KAAKH;QAEL,UAAU;QACV,WAAW;YACT,SAAS;YACT,OAAO;gBACL,MAAMU;gBACN,UAAUC;gBACV,YAAYC;YACd;QACF;QACA,SAAS;YACP,SAAS;YACT,OAAO;gBACL,MAAMF;gBACN,UAAUC;gBACV,YAAYC;YACd;QACF;IACF;IACA,OAAO;QAAE,GAAGjB,MAAM;QAAEoB;IAAQ;AAC9B"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { Dimension, DimensionGroup, DimensionTree } from '../../../types';
|
2
|
+
/**
|
3
|
+
* @description 删除 dimensionTree 中符合 callback 条件的节点
|
4
|
+
* @param dimensionTree 待删除的 dimensionTree
|
5
|
+
* @param callback 回调函数,用于判断是否删除当前节点
|
6
|
+
* @returns 删除后的 dimensionTree
|
7
|
+
*/
|
8
|
+
export declare const deleteDimensionTreeByCallback: <T extends DimensionTree>(dimensionTree?: T, callback?: (dimension: Dimension, index: number, dimensions: (Dimension | DimensionGroup)[]) => boolean) => T | undefined;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { isDimension, isDimensionGroup } from "./typeGuard.js";
|
2
|
+
const deleteDimensionTreeByCallback = (dimensionTree, callback)=>{
|
3
|
+
if (!dimensionTree) return dimensionTree;
|
4
|
+
const stack = [
|
5
|
+
...dimensionTree
|
6
|
+
].reverse();
|
7
|
+
const parents = new Map();
|
8
|
+
dimensionTree.forEach((node)=>{
|
9
|
+
parents.set(node, dimensionTree);
|
10
|
+
});
|
11
|
+
const nodesToProcess = [];
|
12
|
+
const visited = new Set();
|
13
|
+
while(stack.length > 0){
|
14
|
+
const node = stack[stack.length - 1];
|
15
|
+
if (isDimensionGroup(node) && node.children && !visited.has(node)) {
|
16
|
+
visited.add(node);
|
17
|
+
const children = node.children.slice().reverse();
|
18
|
+
for (const child of children){
|
19
|
+
parents.set(child, node.children);
|
20
|
+
stack.push(child);
|
21
|
+
}
|
22
|
+
} else {
|
23
|
+
stack.pop();
|
24
|
+
nodesToProcess.push(node);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
for (const node of nodesToProcess){
|
28
|
+
const parentList = parents.get(node);
|
29
|
+
if (parentList) {
|
30
|
+
const index = parentList.indexOf(node);
|
31
|
+
if (isDimension(node)) {
|
32
|
+
if (callback?.(node, index, parentList)) parentList.splice(index, 1);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return dimensionTree;
|
37
|
+
};
|
38
|
+
export { deleteDimensionTreeByCallback };
|
39
|
+
|
40
|
+
//# sourceMappingURL=delete.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pipeline/utils/dimensions/delete.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/dimensions/delete.ts"],"sourcesContent":["import type { Dimension, DimensionGroup, DimensionTree } from 'src/types'\nimport { isDimension, isDimensionGroup } from './typeGuard'\n\n/**\n * @description 删除 dimensionTree 中符合 callback 条件的节点\n * @param dimensionTree 待删除的 dimensionTree\n * @param callback 回调函数,用于判断是否删除当前节点\n * @returns 删除后的 dimensionTree\n */\nexport const deleteDimensionTreeByCallback = <T extends DimensionTree>(\n dimensionTree?: T,\n callback?: (dimension: Dimension, index: number, dimensions: (Dimension | DimensionGroup)[]) => boolean,\n) => {\n if (!dimensionTree) {\n return dimensionTree\n }\n const stack: (Dimension | DimensionGroup)[] = [...dimensionTree].reverse()\n const parents = new Map<Dimension | DimensionGroup, (Dimension | DimensionGroup)[]>()\n\n dimensionTree.forEach((node) => {\n parents.set(node, dimensionTree)\n })\n\n const nodesToProcess: (Dimension | DimensionGroup)[] = []\n const visited = new Set<Dimension | DimensionGroup>()\n\n while (stack.length > 0) {\n const node = stack[stack.length - 1]\n\n if (isDimensionGroup(node) && node.children && !visited.has(node)) {\n visited.add(node)\n const children = node.children.slice().reverse()\n for (const child of children) {\n parents.set(child, node.children)\n stack.push(child)\n }\n } else {\n stack.pop()\n nodesToProcess.push(node)\n }\n }\n\n for (const node of nodesToProcess) {\n const parentList = parents.get(node)\n\n if (parentList) {\n const index = parentList.indexOf(node)\n if (isDimension(node)) {\n if (callback?.(node, index, parentList)) {\n parentList.splice(index, 1)\n }\n }\n }\n }\n\n return dimensionTree\n}\n"],"names":["deleteDimensionTreeByCallback","dimensionTree","callback","stack","parents","Map","node","nodesToProcess","visited","Set","isDimensionGroup","children","child","parentList","index","isDimension"],"mappings":";AASO,MAAMA,gCAAgC,CAC3CC,eACAC;IAEA,IAAI,CAACD,eACH,OAAOA;IAET,MAAME,QAAwC;WAAIF;KAAc,CAAC,OAAO;IACxE,MAAMG,UAAU,IAAIC;IAEpBJ,cAAc,OAAO,CAAC,CAACK;QACrBF,QAAQ,GAAG,CAACE,MAAML;IACpB;IAEA,MAAMM,iBAAiD,EAAE;IACzD,MAAMC,UAAU,IAAIC;IAEpB,MAAON,MAAM,MAAM,GAAG,EAAG;QACvB,MAAMG,OAAOH,KAAK,CAACA,MAAM,MAAM,GAAG,EAAE;QAEpC,IAAIO,iBAAiBJ,SAASA,KAAK,QAAQ,IAAI,CAACE,QAAQ,GAAG,CAACF,OAAO;YACjEE,QAAQ,GAAG,CAACF;YACZ,MAAMK,WAAWL,KAAK,QAAQ,CAAC,KAAK,GAAG,OAAO;YAC9C,KAAK,MAAMM,SAASD,SAAU;gBAC5BP,QAAQ,GAAG,CAACQ,OAAON,KAAK,QAAQ;gBAChCH,MAAM,IAAI,CAACS;YACb;QACF,OAAO;YACLT,MAAM,GAAG;YACTI,eAAe,IAAI,CAACD;QACtB;IACF;IAEA,KAAK,MAAMA,QAAQC,eAAgB;QACjC,MAAMM,aAAaT,QAAQ,GAAG,CAACE;QAE/B,IAAIO,YAAY;YACd,MAAMC,QAAQD,WAAW,OAAO,CAACP;YACjC,IAAIS,YAAYT,OACd;gBAAA,IAAIJ,WAAWI,MAAMQ,OAAOD,aAC1BA,WAAW,MAAM,CAACC,OAAO;YAC3B;QAEJ;IACF;IAEA,OAAOb;AACT"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { preorderTraverse } from "../tree/index.js";
|
2
|
-
const findAllDimensions = (dimensions = [])=>{
|
3
|
-
if (!dimensions) return [];
|
4
|
-
const result = [];
|
5
|
-
preorderTraverse(dimensions, (node)=>{
|
6
|
-
if (!('children' in node)) result.push(node);
|
7
|
-
return false;
|
8
|
-
});
|
9
|
-
return result;
|
10
|
-
};
|
11
|
-
export { findAllDimensions };
|
12
|
-
|
13
|
-
//# sourceMappingURL=find.js.map
|
@@ -1 +1,2 @@
|
|
1
|
-
export * from './
|
1
|
+
export * from './typeGuard';
|
2
|
+
export * from './delete';
|
@@ -1 +1,2 @@
|
|
1
|
-
export * from "./
|
1
|
+
export * from "./typeGuard.js";
|
2
|
+
export * from "./delete.js";
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import type { Dimension, DimensionGroup } from '../../../types';
|
2
|
+
export declare const isDimension: (dimension: Dimension | DimensionGroup) => dimension is Dimension;
|
3
|
+
export declare const isDimensionGroup: (dimension: Dimension | DimensionGroup) => dimension is DimensionGroup;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pipeline/utils/dimensions/typeGuard.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/dimensions/typeGuard.ts"],"sourcesContent":["import type { Dimension, DimensionGroup } from 'src/types'\n\nexport const isDimension = (dimension: Dimension | DimensionGroup): dimension is Dimension => {\n return !('children' in dimension)\n}\n\nexport const isDimensionGroup = (dimension: Dimension | DimensionGroup): dimension is DimensionGroup => {\n return 'children' in dimension\n}\n\n// export const isDimensions = (dimensions: Dimension[] | DimensionGroup[]): dimensions is Dimension[] => {\n// return dimensions.every(isDimension)\n// }\n"],"names":["isDimension","dimension","isDimensionGroup"],"mappings":"AAEO,MAAMA,cAAc,CAACC,YACnB,CAAE,eAAcA,SAAQ;AAG1B,MAAMC,mBAAmB,CAACD,YACxB,cAAcA"}
|
package/dist/esm/theme/dark.js
CHANGED
@@ -123,7 +123,10 @@ const darkTheme = ()=>{
|
|
123
123
|
]
|
124
124
|
},
|
125
125
|
label: {
|
126
|
-
enable: true
|
126
|
+
enable: true,
|
127
|
+
wrap: true,
|
128
|
+
showValue: true,
|
129
|
+
showValuePercent: false
|
127
130
|
},
|
128
131
|
tooltip: {
|
129
132
|
enable: true
|
@@ -283,7 +286,11 @@ const darkTheme = ()=>{
|
|
283
286
|
crosshairRect
|
284
287
|
},
|
285
288
|
pie: {
|
286
|
-
...baseConfig
|
289
|
+
...baseConfig,
|
290
|
+
label: {
|
291
|
+
...baseConfig.label,
|
292
|
+
showValuePercent: true
|
293
|
+
}
|
287
294
|
},
|
288
295
|
donut: {
|
289
296
|
...baseConfig
|
@@ -292,10 +299,18 @@ const darkTheme = ()=>{
|
|
292
299
|
...baseConfig
|
293
300
|
},
|
294
301
|
rose: {
|
295
|
-
...baseConfig
|
302
|
+
...baseConfig,
|
303
|
+
label: {
|
304
|
+
...baseConfig.label,
|
305
|
+
showValuePercent: true
|
306
|
+
}
|
296
307
|
},
|
297
308
|
roseParallel: {
|
298
|
-
...baseConfig
|
309
|
+
...baseConfig,
|
310
|
+
label: {
|
311
|
+
...baseConfig.label,
|
312
|
+
showValuePercent: true
|
313
|
+
}
|
299
314
|
},
|
300
315
|
funnel: {
|
301
316
|
...baseConfig
|