@visactor/vseed 0.1.34 → 0.1.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +31 -1069
  4. package/dist/esm/pipeline/advanced/chart/pipes/config/column.d.ts +2 -0
  5. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js +31 -0
  6. package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -0
  7. package/dist/esm/pipeline/advanced/chart/pipes/config/index.d.ts +19 -3
  8. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js +21 -3
  9. package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -0
  10. package/dist/esm/pipeline/advanced/chart/pipes/config/line.d.ts +2 -0
  11. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js +30 -0
  12. package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -0
  13. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.d.ts +2 -0
  14. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js +27 -0
  15. package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js.map +1 -0
  16. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +1 -3
  17. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  18. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +2 -2
  19. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
  20. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +5 -4
  21. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  22. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js +26 -11
  23. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
  24. package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.d.ts +2 -0
  25. package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js +19 -0
  26. package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js.map +1 -0
  27. package/dist/esm/pipeline/spec/chart/pipes/legend/index.d.ts +1 -0
  28. package/dist/esm/pipeline/spec/chart/pipes/legend/index.js +2 -1
  29. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js +6 -7
  30. package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js.map +1 -1
  31. package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js +8 -3
  32. package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js.map +1 -1
  33. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js +0 -1
  34. package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js.map +1 -1
  35. package/dist/esm/pipeline/utils/constant.d.ts +1 -0
  36. package/dist/esm/pipeline/utils/constant.js +2 -1
  37. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  38. package/dist/esm/theme/common/heatmapCell.d.ts +3 -0
  39. package/dist/esm/theme/common/heatmapCell.js +9 -0
  40. package/dist/esm/theme/common/heatmapCell.js.map +1 -0
  41. package/dist/esm/theme/common/table.d.ts +47 -5
  42. package/dist/esm/theme/common/table.js.map +1 -1
  43. package/dist/esm/theme/dark/dark.js +2 -0
  44. package/dist/esm/theme/dark/dark.js.map +1 -1
  45. package/dist/esm/theme/light/light.js +2 -0
  46. package/dist/esm/theme/light/light.js.map +1 -1
  47. package/dist/esm/types/advancedVSeed.d.ts +8 -406
  48. package/dist/esm/types/properties/config/annotation/zAnnotaion.d.ts +1 -1
  49. package/dist/esm/types/properties/config/annotation/zAnnotaion.js +2 -2
  50. package/dist/esm/types/properties/config/annotation/zAnnotaion.js.map +1 -1
  51. package/dist/esm/types/properties/config/area.d.ts +647 -0
  52. package/dist/esm/types/properties/config/area.js +26 -0
  53. package/dist/esm/types/properties/config/area.js.map +1 -0
  54. package/dist/esm/types/properties/config/axes/bandAxis.d.ts +149 -1
  55. package/dist/esm/types/properties/config/axes/linearAxis.d.ts +151 -1
  56. package/dist/esm/types/properties/config/bar.d.ts +970 -0
  57. package/dist/esm/types/properties/config/bar.js +29 -0
  58. package/dist/esm/types/properties/config/bar.js.map +1 -0
  59. package/dist/esm/types/properties/config/column.d.ts +970 -0
  60. package/dist/esm/types/properties/config/column.js +29 -0
  61. package/dist/esm/types/properties/config/column.js.map +1 -0
  62. package/dist/esm/types/properties/config/config.d.ts +4 -5133
  63. package/dist/esm/types/properties/config/config.js +13 -151
  64. package/dist/esm/types/properties/config/config.js.map +1 -1
  65. package/dist/esm/types/properties/config/dualAxis.d.ts +566 -0
  66. package/dist/esm/types/properties/config/dualAxis.js +29 -0
  67. package/dist/esm/types/properties/config/dualAxis.js.map +1 -0
  68. package/dist/esm/types/properties/config/funnel.d.ts +124 -0
  69. package/dist/esm/types/properties/config/funnel.js +20 -0
  70. package/dist/esm/types/properties/config/funnel.js.map +1 -0
  71. package/dist/esm/types/properties/config/funnelTransform/index.d.ts +1 -1
  72. package/dist/esm/types/properties/config/heatmap/heatmap.d.ts +17 -0
  73. package/dist/esm/types/properties/config/heatmap/heatmap.js +0 -0
  74. package/dist/esm/types/properties/config/heatmap/index.d.ts +2 -0
  75. package/dist/esm/types/properties/config/heatmap/index.js +1 -0
  76. package/dist/esm/types/properties/config/heatmap/zHeatmap.d.ts +6 -0
  77. package/dist/esm/types/properties/config/heatmap/zHeatmap.js +9 -0
  78. package/dist/esm/types/properties/config/heatmap/zHeatmap.js.map +1 -0
  79. package/dist/esm/types/properties/config/heatmap.d.ts +125 -0
  80. package/dist/esm/types/properties/config/heatmap.js +20 -0
  81. package/dist/esm/types/properties/config/heatmap.js.map +1 -0
  82. package/dist/esm/types/properties/config/index.d.ts +17 -2
  83. package/dist/esm/types/properties/config/index.js +17 -2
  84. package/dist/esm/types/properties/config/line.d.ts +324 -0
  85. package/dist/esm/types/properties/config/line.js +25 -0
  86. package/dist/esm/types/properties/config/line.js.map +1 -0
  87. package/dist/esm/types/properties/config/pie.d.ts +364 -0
  88. package/dist/esm/types/properties/config/pie.js +21 -0
  89. package/dist/esm/types/properties/config/pie.js.map +1 -0
  90. package/dist/esm/types/properties/config/pivotGrid/index.d.ts +2 -0
  91. package/dist/esm/types/properties/config/pivotGrid/index.js +2 -0
  92. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.d.ts +10 -0
  93. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js +12 -0
  94. package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -0
  95. package/dist/esm/types/properties/config/pivotTable.d.ts +18 -0
  96. package/dist/esm/types/properties/config/pivotTable.js +5 -0
  97. package/dist/esm/types/properties/config/pivotTable.js.map +1 -0
  98. package/dist/esm/types/properties/config/rose.d.ts +241 -0
  99. package/dist/esm/types/properties/config/rose.js +19 -0
  100. package/dist/esm/types/properties/config/rose.js.map +1 -0
  101. package/dist/esm/types/properties/config/scatter.d.ts +357 -0
  102. package/dist/esm/types/properties/config/scatter.js +27 -0
  103. package/dist/esm/types/properties/config/scatter.js.map +1 -0
  104. package/dist/esm/types/properties/config/table.d.ts +18 -0
  105. package/dist/esm/types/properties/config/table.js +21 -0
  106. package/dist/esm/types/properties/config/table.js.map +1 -0
  107. package/dist/esm/types/properties/theme/customTheme.d.ts +8 -406
  108. package/dist/umd/index.js +209 -147
  109. package/dist/umd/index.js.map +1 -1
  110. package/package.json +3 -3
  111. package/dist/esm/pipeline/advanced/chart/pipes/config/config.d.ts +0 -17
  112. package/dist/esm/pipeline/advanced/chart/pipes/config/config.js +0 -89
  113. package/dist/esm/pipeline/advanced/chart/pipes/config/config.js.map +0 -1
  114. /package/dist/esm/types/properties/config/funnelTransform/{funntlTransform.d.ts → funnelTransform.d.ts} +0 -0
  115. /package/dist/esm/types/properties/config/funnelTransform/{funntlTransform.js → funnelTransform.js} +0 -0
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const columnConfig: AdvancedPipe;
@@ -0,0 +1,31 @@
1
+ import { pick } from "remeda";
2
+ import { replaceNullToUndefined } from "../../../../utils/index.js";
3
+ const columnConfig = (advancedVSeed, context)=>{
4
+ const { vseed } = context;
5
+ const { chartType } = vseed;
6
+ const result = {
7
+ ...advancedVSeed
8
+ };
9
+ const pickedConfig = pick(vseed, [
10
+ 'backgroundColor',
11
+ 'color',
12
+ 'label',
13
+ 'legend',
14
+ 'tooltip',
15
+ 'xAxis',
16
+ 'yAxis',
17
+ 'crosshairRect',
18
+ 'stackCornerRadius'
19
+ ]);
20
+ const config = replaceNullToUndefined(pickedConfig);
21
+ result.config = {
22
+ ...result.config || {},
23
+ [chartType]: {
24
+ ...config
25
+ }
26
+ };
27
+ return result;
28
+ };
29
+ export { columnConfig };
30
+
31
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/column.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/column.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const columnConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n ]) as Config['column']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["columnConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,eAA6B,CAACC,eAAeC;IACxD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -1,3 +1,19 @@
1
- export * from './config';
2
- export * from './dualAxis';
3
- export * from './scatter';
1
+ import { lineConfig } from './line';
2
+ import { columnConfig } from './column';
3
+ import { pieConfig } from './pie';
4
+ import { dualAxisConfig } from './dualAxis';
5
+ import { scatterConfig } from './scatter';
6
+ export { lineConfig, columnConfig, pieConfig, dualAxisConfig, scatterConfig };
7
+ export declare const areaConfig: import("../../../../..").AdvancedPipe;
8
+ export declare const areaPercentConfig: import("../../../../..").AdvancedPipe;
9
+ export declare const barConfig: import("../../../../..").AdvancedPipe;
10
+ export declare const barParallelConfig: import("../../../../..").AdvancedPipe;
11
+ export declare const barPercentConfig: import("../../../../..").AdvancedPipe;
12
+ export declare const columnParallelConfig: import("../../../../..").AdvancedPipe;
13
+ export declare const columnPercentConfig: import("../../../../..").AdvancedPipe;
14
+ export declare const donutConfig: import("../../../../..").AdvancedPipe;
15
+ export declare const roseConfig: import("../../../../..").AdvancedPipe;
16
+ export declare const roseParallelConfig: import("../../../../..").AdvancedPipe;
17
+ export declare const radarConfig: import("../../../../..").AdvancedPipe;
18
+ export declare const funnelConfig: import("../../../../..").AdvancedPipe;
19
+ export declare const heatmapConfig: import("../../../../..").AdvancedPipe;
@@ -1,3 +1,21 @@
1
- export * from "./config.js";
2
- export * from "./dualAxis.js";
3
- export * from "./scatter.js";
1
+ import { lineConfig } from "./line.js";
2
+ import { columnConfig } from "./column.js";
3
+ import { pieConfig } from "./pie.js";
4
+ import { dualAxisConfig } from "./dualAxis.js";
5
+ import { scatterConfig } from "./scatter.js";
6
+ const areaConfig = lineConfig;
7
+ const areaPercentConfig = lineConfig;
8
+ const barConfig = columnConfig;
9
+ const barParallelConfig = columnConfig;
10
+ const barPercentConfig = columnConfig;
11
+ const columnParallelConfig = columnConfig;
12
+ const columnPercentConfig = columnConfig;
13
+ const donutConfig = pieConfig;
14
+ const roseConfig = pieConfig;
15
+ const roseParallelConfig = pieConfig;
16
+ const radarConfig = pieConfig;
17
+ const funnelConfig = pieConfig;
18
+ const heatmapConfig = pieConfig;
19
+ export { areaConfig, areaPercentConfig, barConfig, barParallelConfig, barPercentConfig, columnConfig, columnParallelConfig, columnPercentConfig, donutConfig, dualAxisConfig, funnelConfig, heatmapConfig, lineConfig, pieConfig, radarConfig, roseConfig, roseParallelConfig, scatterConfig };
20
+
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/index.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/index.ts"],"sourcesContent":["import { lineConfig } from './line'\nimport { columnConfig } from './column'\nimport { pieConfig } from './pie'\nimport { dualAxisConfig } from './dualAxis'\nimport { scatterConfig } from './scatter'\n\nexport { lineConfig, columnConfig, pieConfig, dualAxisConfig, scatterConfig }\n\n// area\nexport const areaConfig = lineConfig\nexport const areaPercentConfig = lineConfig\n\n// bar\nexport const barConfig = columnConfig\nexport const barParallelConfig = columnConfig\nexport const barPercentConfig = columnConfig\n\n// column\nexport const columnParallelConfig = columnConfig\nexport const columnPercentConfig = columnConfig\n\n// donut, rose\nexport const donutConfig = pieConfig\nexport const roseConfig = pieConfig\nexport const roseParallelConfig = pieConfig\nexport const radarConfig = pieConfig\n\n// funnel, heatmap\nexport const funnelConfig = pieConfig\nexport const heatmapConfig = pieConfig\n"],"names":["areaConfig","lineConfig","areaPercentConfig","barConfig","columnConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","pieConfig","roseConfig","roseParallelConfig","radarConfig","funnelConfig","heatmapConfig"],"mappings":";;;;;AASO,MAAMA,aAAaC;AACnB,MAAMC,oBAAoBD;AAG1B,MAAME,YAAYC;AAClB,MAAMC,oBAAoBD;AAC1B,MAAME,mBAAmBF;AAGzB,MAAMG,uBAAuBH;AAC7B,MAAMI,sBAAsBJ;AAG5B,MAAMK,cAAcC;AACpB,MAAMC,aAAaD;AACnB,MAAME,qBAAqBF;AAC3B,MAAMG,cAAcH;AAGpB,MAAMI,eAAeJ;AACrB,MAAMK,gBAAgBL"}
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const lineConfig: AdvancedPipe;
@@ -0,0 +1,30 @@
1
+ import { pick } from "remeda";
2
+ import { replaceNullToUndefined } from "../../../../utils/index.js";
3
+ const lineConfig = (advancedVSeed, context)=>{
4
+ const { vseed } = context;
5
+ const { chartType } = vseed;
6
+ const result = {
7
+ ...advancedVSeed
8
+ };
9
+ const pickedConfig = pick(vseed, [
10
+ 'backgroundColor',
11
+ 'color',
12
+ 'label',
13
+ 'legend',
14
+ 'tooltip',
15
+ 'xAxis',
16
+ 'yAxis',
17
+ 'crosshairLine'
18
+ ]);
19
+ const config = replaceNullToUndefined(pickedConfig);
20
+ result.config = {
21
+ ...result.config || {},
22
+ [chartType]: {
23
+ ...config
24
+ }
25
+ };
26
+ return result;
27
+ };
28
+ export { lineConfig };
29
+
30
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/line.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/line.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairLine',\n ]) as Config['line']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["lineConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,aAA2B,CAACC,eAAeC;IACtD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { AdvancedPipe } from '../../../../../types';
2
+ export declare const pieConfig: AdvancedPipe;
@@ -0,0 +1,27 @@
1
+ import { pick } from "remeda";
2
+ import { replaceNullToUndefined } from "../../../../utils/index.js";
3
+ const pieConfig = (advancedVSeed, context)=>{
4
+ const { vseed } = context;
5
+ const { chartType } = vseed;
6
+ const result = {
7
+ ...advancedVSeed
8
+ };
9
+ const pickedConfig = pick(vseed, [
10
+ 'backgroundColor',
11
+ 'color',
12
+ 'label',
13
+ 'legend',
14
+ 'tooltip'
15
+ ]);
16
+ const config = replaceNullToUndefined(pickedConfig);
17
+ result.config = {
18
+ ...result.config || {},
19
+ [chartType]: {
20
+ ...config
21
+ }
22
+ };
23
+ return result;
24
+ };
25
+ export { pieConfig };
26
+
27
+ //# sourceMappingURL=pie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/advanced/chart/pipes/config/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/pie.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const pieConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip']) as Config['pie']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["pieConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,YAA0B,CAACC,eAAeC;IACrD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAAC;QAAmB;QAAS;QAAS;QAAU;KAAU;IAE3F,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
@@ -1,7 +1,6 @@
1
1
  import { unique } from "remeda";
2
2
  import { MeasureName } from "../../../../../dataReshape/index.js";
3
3
  import { findAllMeasures } from "../../../../utils/index.js";
4
- import { addColorToEncoding } from "./color/index.js";
5
4
  const defaultEncodingForScatter = (advancedVSeed)=>{
6
5
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7
6
  const measures = findAllMeasures(vseedMeasures);
@@ -31,7 +30,6 @@ const encodingForScatter = (advancedVSeed)=>{
31
30
  const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
32
31
  const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
33
32
  const uniqueDimIds = unique(dimensionsWithoutMeasureName.map((d)=>d.id));
34
- encoding.color = uniqueDimIds.slice(0);
35
33
  encoding.detail = encoding.color;
36
34
  encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
37
35
  encoding.label = [];
@@ -39,7 +37,7 @@ const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
39
37
  encoding.column = [];
40
38
  };
41
39
  const generateDimensionEncoding = (dimensions, encoding)=>{
42
- addColorToEncoding(dimensions, encoding, false);
40
+ encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
43
41
  encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
44
42
  if (0 === encoding.detail.length) encoding.detail = [
45
43
  MeasureName
@@ -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'\nimport { addColorToEncoding } from './color'\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 addColorToEncoding(dimensions, encoding, false)\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 // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size').map((item) => item.id))\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","addColorToEncoding","color","label","tooltip"],"mappings":"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"}
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\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\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 // size\n encoding.size = unique(measures.filter((item) => item.encoding === 'size').map((item) => item.id))\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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"}
@@ -1,4 +1,4 @@
1
- import { annotationArea, annotationHorizontalLine, annotationPoint, annotationVerticalLine, backgroundColor, cellStyle, color, colorAdapter, colorCellStyleFill, colorLegend, datasetPivot, datasetXY, discreteLegend, initPivot, label, linearColor, pivotAdapter, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotIndicatorsAsRow, pivotRowDimensions, tooltipHeatmap } from "../pipes/index.js";
1
+ import { annotationArea, annotationHorizontalLine, annotationPoint, annotationVerticalLine, backgroundColor, cellStyle, color, colorAdapter, colorCellStyleFill, datasetPivot, datasetXY, discreteLegend, heatmapColorLegend, initPivot, label, linearColor, pivotAdapter, pivotColorLegend, pivotColumnDimensions, pivotDiscreteLegend, pivotGridStyle, pivotIndicators, pivotIndicatorsAsRow, pivotRowDimensions, tooltipHeatmap } from "../pipes/index.js";
2
2
  import { initHeatmap } from "../pipes/init/heatmap.js";
3
3
  const heatmap = [
4
4
  initHeatmap,
@@ -6,7 +6,7 @@ const heatmap = [
6
6
  datasetXY,
7
7
  colorAdapter(color, linearColor),
8
8
  label,
9
- colorAdapter(discreteLegend, colorLegend),
9
+ colorAdapter(discreteLegend, heatmapColorLegend),
10
10
  colorCellStyleFill(cellStyle),
11
11
  tooltipHeatmap,
12
12
  annotationPoint,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipeline/heatmap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/heatmap.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltipHeatmap,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n discreteLegend,\n color,\n colorAdapter,\n linearColor,\n colorLegend,\n cellStyle,\n colorCellStyleFill,\n pivotDiscreteLegend,\n pivotColorLegend,\n} from '../pipes'\nimport { initHeatmap } from '../pipes/init/heatmap'\n\nconst heatmap: SpecPipeline = [\n initHeatmap,\n backgroundColor,\n datasetXY,\n colorAdapter(color, linearColor),\n label,\n colorAdapter(discreteLegend, colorLegend),\n colorCellStyleFill(cellStyle),\n tooltipHeatmap,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotHeatmap: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initHeatmap,\n backgroundColor,\n datasetXY,\n colorAdapter(color, linearColor),\n label,\n tooltipHeatmap,\n colorCellStyleFill(cellStyle),\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n colorAdapter(pivotDiscreteLegend, pivotColorLegend),\n]\n\nexport const heatmapSpecPipeline: SpecPipeline = [pivotAdapter(heatmap, pivotHeatmap)]\n"],"names":["heatmap","initHeatmap","backgroundColor","datasetXY","colorAdapter","color","linearColor","label","discreteLegend","colorLegend","colorCellStyleFill","cellStyle","tooltipHeatmap","annotationPoint","annotationVerticalLine","annotationHorizontalLine","annotationArea","pivotHeatmap","initPivot","pivotGridStyle","pivotIndicatorsAsRow","datasetPivot","pivotIndicators","pivotRowDimensions","pivotColumnDimensions","pivotDiscreteLegend","pivotColorLegend","heatmapSpecPipeline","pivotAdapter"],"mappings":";;AA8BA,MAAMA,UAAwB;IAC5BC;IACAC;IACAC;IACAC,aAAaC,OAAOC;IACpBC;IACAH,aAAaI,gBAAgBC;IAC7BC,mBAAmBC;IACnBC;IACAC;IACAC;IACAC;IACAC;CACD;AAED,MAAMC,eAA6B;IACjCC;IACAC;IACAC;IACAC;IACAC,gBAAgB;QACdrB;QACAC;QACAC;QACAC,aAAaC,OAAOC;QACpBC;QACAK;QACAF,mBAAmBC;QACnBE;QACAC;QACAC;QACAC;KACD;IACDO;IACAC;IACApB,aAAaqB,qBAAqBC;CACnC;AAEM,MAAMC,sBAAoC;IAACC,aAAa5B,SAASiB;CAAc"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipeline/heatmap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/heatmap.ts"],"sourcesContent":["import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltipHeatmap,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n discreteLegend,\n color,\n colorAdapter,\n linearColor,\n heatmapColorLegend,\n cellStyle,\n colorCellStyleFill,\n pivotDiscreteLegend,\n pivotColorLegend,\n} from '../pipes'\nimport { initHeatmap } from '../pipes/init/heatmap'\n\nconst heatmap: SpecPipeline = [\n initHeatmap,\n backgroundColor,\n datasetXY,\n colorAdapter(color, linearColor),\n label,\n colorAdapter(discreteLegend, heatmapColorLegend),\n colorCellStyleFill(cellStyle),\n tooltipHeatmap,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotHeatmap: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initHeatmap,\n backgroundColor,\n datasetXY,\n colorAdapter(color, linearColor),\n label,\n tooltipHeatmap,\n colorCellStyleFill(cellStyle),\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n colorAdapter(pivotDiscreteLegend, pivotColorLegend),\n]\n\nexport const heatmapSpecPipeline: SpecPipeline = [pivotAdapter(heatmap, pivotHeatmap)]\n"],"names":["heatmap","initHeatmap","backgroundColor","datasetXY","colorAdapter","color","linearColor","label","discreteLegend","heatmapColorLegend","colorCellStyleFill","cellStyle","tooltipHeatmap","annotationPoint","annotationVerticalLine","annotationHorizontalLine","annotationArea","pivotHeatmap","initPivot","pivotGridStyle","pivotIndicatorsAsRow","datasetPivot","pivotIndicators","pivotRowDimensions","pivotColumnDimensions","pivotDiscreteLegend","pivotColorLegend","heatmapSpecPipeline","pivotAdapter"],"mappings":";;AA8BA,MAAMA,UAAwB;IAC5BC;IACAC;IACAC;IACAC,aAAaC,OAAOC;IACpBC;IACAH,aAAaI,gBAAgBC;IAC7BC,mBAAmBC;IACnBC;IACAC;IACAC;IACAC;IACAC;CACD;AAED,MAAMC,eAA6B;IACjCC;IACAC;IACAC;IACAC;IACAC,gBAAgB;QACdrB;QACAC;QACAC;QACAC,aAAaC,OAAOC;QACpBC;QACAK;QACAF,mBAAmBC;QACnBE;QACAC;QACAC;QACAC;KACD;IACDO;IACAC;IACApB,aAAaqB,qBAAqBC;CACnC;AAEM,MAAMC,sBAAoC;IAACC,aAAa5B,SAASiB;CAAc"}
@@ -1,6 +1,6 @@
1
- import { createFormatter, createFormatterByMeasure, findMeasureById } from "../../../../utils/index.js";
2
- import { merge, uniqueBy } from "remeda";
3
- import { MeasureName } from "../../../../../dataReshape/index.js";
1
+ import { DATUM_HIDE_KEY, createFormatter, createFormatterByMeasure, findMeasureById } from "../../../../utils/index.js";
2
+ import { isNumber, merge, uniqueBy } from "remeda";
3
+ import { MeasureName } from "../../../../../dataReshape/constant.js";
4
4
  const label_label = (spec, context)=>{
5
5
  const result = {
6
6
  ...spec
@@ -44,6 +44,7 @@ const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSe
44
44
  const percentFormatter = createFormatter(percentFormat);
45
45
  const result = {
46
46
  visible: enable,
47
+ dataFilter: (data)=>data.filter((entry)=>entry.data?.[DATUM_HIDE_KEY] !== true),
47
48
  formatMethod: (_, datum)=>{
48
49
  const result = [];
49
50
  const dimLabels = labelDims.map((item)=>{
@@ -57,7 +58,7 @@ const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSe
57
58
  const measure = findMeasureById(advancedVSeedMeasures, datum[measureId]);
58
59
  if (measure) {
59
60
  const measureValueLabel = generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat);
60
- const measurePercentLabel = generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter);
61
+ const measurePercentLabel = isNumber(datum['__VCHART_ARC_RATIO']) ? generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter) : generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter);
61
62
  if (showValue) result.push(measureValueLabel);
62
63
  if (showValuePercent) result.push(measurePercentLabel);
63
64
  }
@@ -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 { IArcLabelSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { createFormatter, createFormatterByMeasure, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n SpecPipe,\n} from 'src/types'\nimport { merge, uniqueBy } from 'remeda'\nimport { MeasureName } from 'src/dataReshape'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n\n result.label = buildLabel<ILineLikeLabelSpec>(\n label,\n vseed.measures,\n vseed.dimensions,\n advancedVSeed.dimensions,\n advancedVSeed.measures,\n encoding as Encoding,\n [foldInfo],\n )\n\n return result\n}\n\nexport const generateMeasureValue = (\n value: number | string,\n measure: Measure,\n labelAutoFormat?: boolean,\n numFormat: NumFormat = {},\n) => {\n const format = merge(numFormat, measure.numFormat || measure.format)\n const mergedMeasure = { ...measure, numFormat: format, autoFormat: labelAutoFormat || measure.autoFormat }\n\n const formatter = createFormatterByMeasure(mergedMeasure)\n return formatter(value)\n}\n\nexport const 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\nexport const buildLabel = <T extends ILineLikeLabelSpec | IArcLabelSpec>(\n label: Label,\n vseedMeasures: Measures = [],\n vseedDimensions: Dimensions = [],\n advancedVSeedDimensions: Dimensions,\n advancedVSeedMeasures: Measures,\n encoding: Encoding,\n foldInfoList: FoldInfo[],\n): T => {\n const {\n enable,\n wrap,\n showValue,\n showValuePercent,\n showDimension,\n labelOverlap,\n labelColorSmartInvert,\n labelColor,\n labelFontSize,\n labelFontWeight,\n labelBackgroundColor,\n labelPosition,\n autoFormat,\n numFormat = {},\n } = label\n\n const hasDimLabelEncoding = vseedDimensions.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseedDimensions.filter((item) => encoding.label?.includes(item.id))\n : showDimension\n ? advancedVSeedDimensions.filter((d) => d.id !== MeasureName)\n : [],\n (item) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseedMeasures.filter((item) => encoding.label?.includes(item.id)),\n (item) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n const result = {\n visible: enable,\n formatMethod: (_, datum: Datum) => {\n const result = []\n\n const dimLabels = labelDims.map((item) => {\n const id = item.id\n return datum[id] as number | string\n })\n\n const meaLabels = labelMeas.map((item) =>\n generateMeasureValue(datum[item.id] as number | string, item, autoFormat, numFormat),\n )\n\n result.push(...dimLabels)\n\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n const measure = findMeasureById(advancedVSeedMeasures, datum[measureId] as string)\n if (measure) {\n const measureValueLabel = generateMeasureValue(\n datum[measureValue] as number | string,\n measure,\n autoFormat,\n numFormat,\n )\n const measurePercentLabel = generateMeasurePercent(\n datum[measureValue] as number | string,\n statistics.sum,\n percentFormatter,\n )\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n result.push(measurePercentLabel)\n }\n }\n })\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n position: labelPosition,\n style: {\n fill: labelColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n background: labelBackgroundColor,\n },\n smartInvert: labelColorSmartInvert,\n } as T\n\n if (labelOverlap) {\n result.overlap = {\n hideOnHit: true,\n clampForce: true,\n }\n }\n\n return result\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfo","buildLabel","generateMeasureValue","value","measure","labelAutoFormat","numFormat","format","merge","mergedMeasure","formatter","createFormatterByMeasure","generateMeasurePercent","sum","String","num","Number","percentValue","vseedMeasures","vseedDimensions","advancedVSeedDimensions","advancedVSeedMeasures","foldInfoList","enable","wrap","showValue","showValuePercent","showDimension","labelOverlap","labelColorSmartInvert","labelColor","labelFontSize","labelFontWeight","labelBackgroundColor","labelPosition","autoFormat","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureName","labelMeas","percentFormat","percentFormatter","createFormatter","_","datum","dimLabels","id","meaLabels","measureId","measureValue","statistics","findMeasureById","measureValueLabel","measurePercentLabel"],"mappings":"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"}
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 { IArcLabelSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { createFormatter, createFormatterByMeasure, DATUM_HIDE_KEY, findMeasureById } from '../../../../utils'\nimport type {\n Datum,\n Dimensions,\n Encoding,\n FoldInfo,\n Formatter,\n Label,\n Measure,\n Measures,\n NumFormat,\n SpecPipe,\n} from 'src/types'\nimport { isNumber, merge, uniqueBy } from 'remeda'\nimport { MeasureName } from 'src/dataReshape/constant'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n const foldInfo = datasetReshapeInfo[0].foldInfo as FoldInfo\n\n const { label } = baseConfig\n\n result.label = buildLabel<ILineLikeLabelSpec>(\n label,\n vseed.measures,\n vseed.dimensions,\n advancedVSeed.dimensions,\n advancedVSeed.measures,\n encoding as Encoding,\n [foldInfo],\n )\n\n return result\n}\n\nexport const generateMeasureValue = (\n value: number | string,\n measure: Measure,\n labelAutoFormat?: boolean,\n numFormat: NumFormat = {},\n) => {\n const format = merge(numFormat, measure.numFormat || measure.format)\n const mergedMeasure = { ...measure, numFormat: format, autoFormat: labelAutoFormat || measure.autoFormat }\n\n const formatter = createFormatterByMeasure(mergedMeasure)\n return formatter(value)\n}\n\nexport const 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\nexport const buildLabel = <T extends ILineLikeLabelSpec | IArcLabelSpec>(\n label: Label,\n vseedMeasures: Measures = [],\n vseedDimensions: Dimensions = [],\n advancedVSeedDimensions: Dimensions,\n advancedVSeedMeasures: Measures,\n encoding: Encoding,\n foldInfoList: FoldInfo[],\n): T => {\n const {\n enable,\n wrap,\n showValue,\n showValuePercent,\n showDimension,\n labelOverlap,\n labelColorSmartInvert,\n labelColor,\n labelFontSize,\n labelFontWeight,\n labelBackgroundColor,\n labelPosition,\n autoFormat,\n numFormat = {},\n } = label\n\n const hasDimLabelEncoding = vseedDimensions.some((item) => encoding.label?.includes(item.id))\n\n const labelDims = uniqueBy(\n hasDimLabelEncoding\n ? vseedDimensions.filter((item) => encoding.label?.includes(item.id))\n : showDimension\n ? advancedVSeedDimensions.filter((d) => d.id !== MeasureName)\n : [],\n (item) => item.id,\n )\n\n const labelMeas = uniqueBy(\n vseedMeasures.filter((item) => encoding.label?.includes(item.id)),\n (item) => item.id,\n )\n\n const percentFormat: NumFormat = merge(numFormat, {\n type: 'percent',\n } as NumFormat)\n\n const percentFormatter = createFormatter(percentFormat)\n\n const result = {\n visible: enable,\n dataFilter: (data) => {\n return data.filter((entry) => {\n return entry.data?.[DATUM_HIDE_KEY] !== true\n })\n },\n formatMethod: (_, datum: Datum) => {\n const result = []\n\n const dimLabels = labelDims.map((item) => {\n const id = item.id\n return datum[id] as number | string\n })\n\n const meaLabels = labelMeas.map((item) =>\n generateMeasureValue(datum[item.id] as number | string, item, autoFormat, numFormat),\n )\n\n result.push(...dimLabels)\n\n foldInfoList.forEach((foldInfo) => {\n const { measureId, measureValue, statistics } = foldInfo\n const measure = findMeasureById(advancedVSeedMeasures, datum[measureId] as string)\n if (measure) {\n const measureValueLabel = generateMeasureValue(\n datum[measureValue] as number | string,\n measure,\n autoFormat,\n numFormat,\n )\n // 饼图/环图需要使用实际占比数据\n const measurePercentLabel = isNumber(datum['__VCHART_ARC_RATIO'])\n ? generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter)\n : generateMeasurePercent(datum[measureValue] as number | string, statistics.sum, percentFormatter)\n if (showValue) {\n result.push(measureValueLabel)\n }\n if (showValuePercent) {\n result.push(measurePercentLabel)\n }\n }\n })\n\n result.push(...meaLabels)\n\n if (wrap) {\n return result\n }\n return result.join(' ')\n },\n position: labelPosition,\n style: {\n fill: labelColor,\n fontSize: labelFontSize,\n fontWeight: labelFontWeight,\n background: labelBackgroundColor,\n },\n smartInvert: labelColorSmartInvert,\n } as T\n\n if (labelOverlap) {\n result.overlap = {\n hideOnHit: true,\n clampForce: true,\n }\n }\n\n return result\n}\n"],"names":["label","spec","context","result","advancedVSeed","vseed","datasetReshapeInfo","chartType","encoding","baseConfig","foldInfo","buildLabel","generateMeasureValue","value","measure","labelAutoFormat","numFormat","format","merge","mergedMeasure","formatter","createFormatterByMeasure","generateMeasurePercent","sum","String","num","Number","percentValue","vseedMeasures","vseedDimensions","advancedVSeedDimensions","advancedVSeedMeasures","foldInfoList","enable","wrap","showValue","showValuePercent","showDimension","labelOverlap","labelColorSmartInvert","labelColor","labelFontSize","labelFontWeight","labelBackgroundColor","labelPosition","autoFormat","hasDimLabelEncoding","item","labelDims","uniqueBy","d","MeasureName","labelMeas","percentFormat","percentFormatter","createFormatter","data","entry","DATUM_HIDE_KEY","_","datum","dimLabels","id","meaLabels","measureId","measureValue","statistics","findMeasureById","measureValueLabel","measurePercentLabel","isNumber"],"mappings":";;;AAkBO,MAAMA,cAAkB,CAACC,MAAMC;IACpC,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,kBAAkB,EAAE,GAAGF;IAC/B,MAAM,EAAEG,SAAS,EAAEC,QAAQ,EAAE,GAAGJ;IAChC,MAAMK,aAAaL,cAAc,MAAM,CAACG,UAAU;IAClD,MAAMG,WAAWJ,kBAAkB,CAAC,EAAE,CAAC,QAAQ;IAE/C,MAAM,EAAEN,KAAK,EAAE,GAAGS;IAElBN,OAAO,KAAK,GAAGQ,WACbX,OACAK,MAAM,QAAQ,EACdA,MAAM,UAAU,EAChBD,cAAc,UAAU,EACxBA,cAAc,QAAQ,EACtBI,UACA;QAACE;KAAS;IAGZ,OAAOP;AACT;AAEO,MAAMS,uBAAuB,CAClCC,OACAC,SACAC,iBACAC,YAAuB,CAAC,CAAC;IAEzB,MAAMC,SAASC,MAAMF,WAAWF,QAAQ,SAAS,IAAIA,QAAQ,MAAM;IACnE,MAAMK,gBAAgB;QAAE,GAAGL,OAAO;QAAE,WAAWG;QAAQ,YAAYF,mBAAmBD,QAAQ,UAAU;IAAC;IAEzG,MAAMM,YAAYC,yBAAyBF;IAC3C,OAAOC,UAAUP;AACnB;AAEO,MAAMS,yBAAyB,CAACT,OAAwBU,KAAaH;IAC1E,IAAIP,QAAAA,OAAuC,OAAOW,OAAOX;IACzD,MAAMY,MAAMC,OAAOb;IACnB,IAAIa,OAAO,KAAK,CAACD,MAAM,OAAOD,OAAOX;IAErC,MAAMc,eAAeF,MAAMF;IAC3B,OAAOH,UAAUO;AACnB;AAEO,MAAMhB,aAAa,CACxBX,OACA4B,gBAA0B,EAAE,EAC5BC,kBAA8B,EAAE,EAChCC,yBACAC,uBACAvB,UACAwB;IAEA,MAAM,EACJC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,aAAa,EACbC,YAAY,EACZC,qBAAqB,EACrBC,UAAU,EACVC,aAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,aAAa,EACbC,UAAU,EACV7B,YAAY,CAAC,CAAC,EACf,GAAGhB;IAEJ,MAAM8C,sBAAsBjB,gBAAgB,IAAI,CAAC,CAACkB,OAASvC,SAAS,KAAK,EAAE,SAASuC,KAAK,EAAE;IAE3F,MAAMC,YAAYC,SAChBH,sBACIjB,gBAAgB,MAAM,CAAC,CAACkB,OAASvC,SAAS,KAAK,EAAE,SAASuC,KAAK,EAAE,KACjEV,gBACEP,wBAAwB,MAAM,CAAC,CAACoB,IAAMA,EAAE,EAAE,KAAKC,eAC/C,EAAE,EACR,CAACJ,OAASA,KAAK,EAAE;IAGnB,MAAMK,YAAYH,SAChBrB,cAAc,MAAM,CAAC,CAACmB,OAASvC,SAAS,KAAK,EAAE,SAASuC,KAAK,EAAE,IAC/D,CAACA,OAASA,KAAK,EAAE;IAGnB,MAAMM,gBAA2BnC,MAAMF,WAAW;QAChD,MAAM;IACR;IAEA,MAAMsC,mBAAmBC,gBAAgBF;IAEzC,MAAMlD,SAAS;QACb,SAAS8B;QACT,YAAY,CAACuB,OACJA,KAAK,MAAM,CAAC,CAACC,QACXA,MAAM,IAAI,EAAE,CAACC,eAAe,KAAK;QAG5C,cAAc,CAACC,GAAGC;YAChB,MAAMzD,SAAS,EAAE;YAEjB,MAAM0D,YAAYb,UAAU,GAAG,CAAC,CAACD;gBAC/B,MAAMe,KAAKf,KAAK,EAAE;gBAClB,OAAOa,KAAK,CAACE,GAAG;YAClB;YAEA,MAAMC,YAAYX,UAAU,GAAG,CAAC,CAACL,OAC/BnC,qBAAqBgD,KAAK,CAACb,KAAK,EAAE,CAAC,EAAqBA,MAAMF,YAAY7B;YAG5Eb,OAAO,IAAI,IAAI0D;YAEf7B,aAAa,OAAO,CAAC,CAACtB;gBACpB,MAAM,EAAEsD,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAE,GAAGxD;gBAChD,MAAMI,UAAUqD,gBAAgBpC,uBAAuB6B,KAAK,CAACI,UAAU;gBACvE,IAAIlD,SAAS;oBACX,MAAMsD,oBAAoBxD,qBACxBgD,KAAK,CAACK,aAAa,EACnBnD,SACA+B,YACA7B;oBAGF,MAAMqD,sBAAsBC,SAASV,KAAK,CAAC,qBAAqB,IAC5DtC,uBAAuBsC,KAAK,CAAC,qBAAqB,EAAE,GAAGN,oBACvDhC,uBAAuBsC,KAAK,CAACK,aAAa,EAAqBC,WAAW,GAAG,EAAEZ;oBACnF,IAAInB,WACFhC,OAAO,IAAI,CAACiE;oBAEd,IAAIhC,kBACFjC,OAAO,IAAI,CAACkE;gBAEhB;YACF;YAEAlE,OAAO,IAAI,IAAI4D;YAEf,IAAI7B,MACF,OAAO/B;YAET,OAAOA,OAAO,IAAI,CAAC;QACrB;QACA,UAAUyC;QACV,OAAO;YACL,MAAMJ;YACN,UAAUC;YACV,YAAYC;YACZ,YAAYC;QACd;QACA,aAAaJ;IACf;IAEA,IAAID,cACFnC,OAAO,OAAO,GAAG;QACf,WAAW;QACX,YAAY;IACd;IAGF,OAAOA;AACT"}
@@ -55,14 +55,6 @@ const discreteLegend = (spec, context)=>{
55
55
  autoPage: true,
56
56
  orient,
57
57
  position: legendPosition,
58
- data: border ? (items)=>items.map((item)=>{
59
- item.shape.outerBorder = {
60
- stroke: item.shape.fill,
61
- distance: 3,
62
- lineWidth: 1
63
- };
64
- return item;
65
- }) : void 0,
66
58
  item: {
67
59
  focus: true,
68
60
  maxWidth: '30%',
@@ -73,9 +65,23 @@ const discreteLegend = (spec, context)=>{
73
65
  },
74
66
  shape: {
75
67
  space: border ? 6 : 4,
76
- style: {
77
- symbolType: shapeType,
78
- size: border ? 8 : 10
68
+ style: (item)=>({
69
+ symbolType: shapeType,
70
+ size: border ? 8 : 10,
71
+ fillOpacity: 1,
72
+ opacity: 1,
73
+ stroke: false,
74
+ outerBorder: border ? {
75
+ stroke: item.shape.fill,
76
+ distance: 3,
77
+ lineWidth: 1
78
+ } : null
79
+ }),
80
+ state: {
81
+ unSelected: {
82
+ opacity: 0.2,
83
+ fillOpacity: 1
84
+ }
79
85
  }
80
86
  },
81
87
  label: {
@@ -84,6 +90,12 @@ const discreteLegend = (spec, context)=>{
84
90
  fontSize: labelFontSize,
85
91
  fill: labelColor || labelFontColor,
86
92
  fontWeight: labelFontWeight
93
+ },
94
+ state: {
95
+ unSelected: {
96
+ fill: labelColor || labelFontColor,
97
+ fillOpacity: 0.8
98
+ }
87
99
  }
88
100
  },
89
101
  background: {
@@ -91,6 +103,9 @@ const discreteLegend = (spec, context)=>{
91
103
  selectedHover: {
92
104
  fill: labelColor || labelFontColor,
93
105
  fillOpacity: 0.05
106
+ },
107
+ unSelectedHover: {
108
+ fill: null
94
109
  }
95
110
  }
96
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/legend/discreteLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/discreteLegend.ts"],"sourcesContent":["import type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = 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 result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n autoPage: true,\n orient,\n position: legendPosition,\n data: border\n ? (items) => {\n return items.map((item) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n item.shape.outerBorder = {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n return item\n })\n }\n : undefined,\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelColor || labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value) => {\n return unfoldInfo.colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelColor || labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelColor || labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n padding: 0,\n }\n return result\n}\n"],"names":["discreteLegend","spec","context","result","advancedVSeed","datasetReshapeInfo","chartType","unfoldInfo","baseConfig","legend","enable","position","labelFontColor","labelColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","Math","items","item","undefined","value","String"],"mappings":"AAEO,MAAMA,iBAA2B,CAACC,MAAMC;IAC7C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,SAAS,EAAE,GAAGF;IAC1C,MAAM,EAAEG,UAAU,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAC5C,MAAMG,aAAaJ,cAAc,MAAM,CAACE,UAAU;IAClD,IAAI,CAACE,cAAc,CAACA,WAAW,MAAM,EACnC,OAAOL;IAGT,MAAM,EAAEM,MAAM,EAAE,GAAGD;IACnB,MAAM,EACJE,MAAM,EACNC,WAAW,QAAQ,EACnBC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAAE,EAClBC,eAAe,EACfC,UAAU,CAAC,EACXC,MAAM,EACNC,YAAY,WAAW,EACxB,GAAGT,UAAU,CAAC;IAEf,MAAMU,SAAS;QAAC;QAAU;QAAc;QAAe;QAAM;KAAK,CAAC,QAAQ,CAACR,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,MAAMS,iBAAiB;QAAC;QAAW;QAAc;QAAW;QAAY;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACT,YACrG,UACA;QAAC;QAAY;QAAe;QAAc;QAAe;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACA,YACxF,QACA;IAENR,OAAO,OAAO,GAAG;QACf,MAAM;QACN,SAASO;QACT,QAAQW,KAAK,GAAG,CAAC,GAAGL;QACpB,QAAQK,KAAK,GAAG,CAAC,GAAGL;QACpB,UAAU;QACVG;QACA,UAAUC;QACV,MAAMH,SACF,CAACK,QACQA,MAAM,GAAG,CAAC,CAACC;gBAGhBA,KAAK,KAAK,CAAC,WAAW,GAAG;oBACvB,QAAQA,KAAK,KAAK,CAAC,IAAI;oBACvB,UAAU;oBACV,WAAW;gBACb;gBACA,OAAOA;YACT,KAEFC;QACJ,MAAM;YACJ,OAAO;YACP,UAAU;YACV,gBAAgB;gBACd,MAAMV,gBAAgB;gBACtB,MAAMD,cAAcD;gBACpB,YAAYG;YACd;YACA,OAAO;gBACL,OAAOE,SAAS,IAAI;gBACpB,OAAO;oBACL,YAAYC;oBACZ,MAAMD,SAAS,IAAI;gBACrB;YACF;YACA,OAAO;gBACL,cAAc,CAACQ,QACNlB,WAAW,UAAU,CAACmB,OAAOD,OAAO,IAAIA;gBAEjD,OAAO;oBACL,UAAUX;oBACV,MAAMD,cAAcD;oBACpB,YAAYG;gBACd;YACF;YACA,YAAY;gBACV,OAAO;oBACL,eAAe;wBACb,MAAMF,cAAcD;wBACpB,aAAa;oBACf;gBACF;YACF;QACF;QACA,SAAS;IACX;IACA,OAAOT;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/legend/discreteLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/discreteLegend.ts"],"sourcesContent":["import type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = 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 result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n autoPage: true,\n orient,\n position: legendPosition,\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelColor || labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: (item) => {\n return {\n symbolType: shapeType,\n size: border ? 8 : 10,\n fillOpacity: 1,\n opacity: 1,\n stroke: false,\n outerBorder: border\n ? {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n : null,\n }\n },\n state: {\n unSelected: {\n opacity: 0.2,\n fillOpacity: 1, // 覆盖 vchart 里的默认值\n },\n },\n },\n label: {\n formatMethod: (value) => {\n return unfoldInfo.colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelColor || labelFontColor,\n fontWeight: labelFontWeight,\n },\n state: {\n unSelected: {\n fill: labelColor || labelFontColor, // 覆盖vchart里面的默认值\n fillOpacity: 0.8, // 覆盖 vchart 里的默认值\n },\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelColor || labelFontColor,\n fillOpacity: 0.05,\n },\n unSelectedHover: {\n fill: null,\n },\n },\n },\n },\n padding: 0,\n }\n return result\n}\n"],"names":["discreteLegend","spec","context","result","advancedVSeed","datasetReshapeInfo","chartType","unfoldInfo","baseConfig","legend","enable","position","labelFontColor","labelColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","Math","item","value","String"],"mappings":"AAEO,MAAMA,iBAA2B,CAACC,MAAMC;IAC7C,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,SAAS,EAAE,GAAGF;IAC1C,MAAM,EAAEG,UAAU,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAC5C,MAAMG,aAAaJ,cAAc,MAAM,CAACE,UAAU;IAClD,IAAI,CAACE,cAAc,CAACA,WAAW,MAAM,EACnC,OAAOL;IAGT,MAAM,EAAEM,MAAM,EAAE,GAAGD;IACnB,MAAM,EACJE,MAAM,EACNC,WAAW,QAAQ,EACnBC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAAE,EAClBC,eAAe,EACfC,UAAU,CAAC,EACXC,MAAM,EACNC,YAAY,WAAW,EACxB,GAAGT,UAAU,CAAC;IAEf,MAAMU,SAAS;QAAC;QAAU;QAAc;QAAe;QAAM;KAAK,CAAC,QAAQ,CAACR,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,MAAMS,iBAAiB;QAAC;QAAW;QAAc;QAAW;QAAY;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACT,YACrG,UACA;QAAC;QAAY;QAAe;QAAc;QAAe;QAAM;QAAM;QAAM;KAAK,CAAC,QAAQ,CAACA,YACxF,QACA;IAENR,OAAO,OAAO,GAAG;QACf,MAAM;QACN,SAASO;QACT,QAAQW,KAAK,GAAG,CAAC,GAAGL;QACpB,QAAQK,KAAK,GAAG,CAAC,GAAGL;QACpB,UAAU;QACVG;QACA,UAAUC;QACV,MAAM;YACJ,OAAO;YACP,UAAU;YACV,gBAAgB;gBACd,MAAMN,gBAAgB;gBACtB,MAAMD,cAAcD;gBACpB,YAAYG;YACd;YACA,OAAO;gBACL,OAAOE,SAAS,IAAI;gBACpB,OAAO,CAACK,OACC;wBACL,YAAYJ;wBACZ,MAAMD,SAAS,IAAI;wBACnB,aAAa;wBACb,SAAS;wBACT,QAAQ;wBACR,aAAaA,SACT;4BACE,QAAQK,KAAK,KAAK,CAAC,IAAI;4BACvB,UAAU;4BACV,WAAW;wBACb,IACA;oBACN;gBAEF,OAAO;oBACL,YAAY;wBACV,SAAS;wBACT,aAAa;oBACf;gBACF;YACF;YACA,OAAO;gBACL,cAAc,CAACC,QACNhB,WAAW,UAAU,CAACiB,OAAOD,OAAO,IAAIA;gBAEjD,OAAO;oBACL,UAAUT;oBACV,MAAMD,cAAcD;oBACpB,YAAYG;gBACd;gBACA,OAAO;oBACL,YAAY;wBACV,MAAMF,cAAcD;wBACpB,aAAa;oBACf;gBACF;YACF;YACA,YAAY;gBACV,OAAO;oBACL,eAAe;wBACb,MAAMC,cAAcD;wBACpB,aAAa;oBACf;oBACA,iBAAiB;wBACf,MAAM;oBACR;gBACF;YACF;QACF;QACA,SAAS;IACX;IACA,OAAOT;AACT"}
@@ -0,0 +1,2 @@
1
+ import type { SpecPipe } from '../../../../../types';
2
+ export declare const heatmapColorLegend: SpecPipe;
@@ -0,0 +1,19 @@
1
+ import { colorLegend } from "./colorLegend.js";
2
+ import { DATUM_HIDE_KEY } from "../../../../utils/constant.js";
3
+ const heatmapColorLegend = (spec, context)=>{
4
+ const result = colorLegend(spec, context);
5
+ if (result.legends) result.legends.customFilter = (data, range, key)=>{
6
+ const min = Math.min(range[0], range[1]);
7
+ const max = Math.max(range[0], range[1]);
8
+ return (data ?? []).map((entry)=>{
9
+ const val = entry[key];
10
+ const isHide = val - min < -0.000001 || val - max > 1e-6;
11
+ entry[DATUM_HIDE_KEY] = isHide;
12
+ return entry;
13
+ });
14
+ };
15
+ return result;
16
+ };
17
+ export { heatmapColorLegend };
18
+
19
+ //# sourceMappingURL=heatmapColorLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/legend/heatmapColorLegend.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/heatmapColorLegend.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport type { SpecPipe } from 'src/types'\nimport { colorLegend } from './colorLegend'\nimport type { Datum, IHeatmapChartSpec } from '@visactor/vchart'\nimport { DATUM_HIDE_KEY } from 'src/pipeline/utils/constant'\n\nexport const heatmapColorLegend: SpecPipe = (spec, context) => {\n const result = colorLegend(spec, context) as IHeatmapChartSpec\n\n if (result.legends) {\n ;(result.legends as any).customFilter = (data: Datum[], range: number[], key: string) => {\n const min = Math.min(range[0], range[1])\n const max = Math.max(range[0], range[1])\n return (data ?? []).map((entry: Datum) => {\n const val = entry[key]\n const isHide = val - min < -1e-6 || val - max > 1e-6\n\n entry[DATUM_HIDE_KEY] = isHide\n\n return entry\n })\n }\n }\n\n return result\n}\n"],"names":["heatmapColorLegend","spec","context","result","colorLegend","data","range","key","min","Math","max","entry","val","isHide","DATUM_HIDE_KEY"],"mappings":";;AAMO,MAAMA,qBAA+B,CAACC,MAAMC;IACjD,MAAMC,SAASC,YAAYH,MAAMC;IAEjC,IAAIC,OAAO,OAAO,EACdA,OAAO,OAAO,CAAS,YAAY,GAAG,CAACE,MAAeC,OAAiBC;QACvE,MAAMC,MAAMC,KAAK,GAAG,CAACH,KAAK,CAAC,EAAE,EAAEA,KAAK,CAAC,EAAE;QACvC,MAAMI,MAAMD,KAAK,GAAG,CAACH,KAAK,CAAC,EAAE,EAAEA,KAAK,CAAC,EAAE;QACvC,OAAQD,AAAAA,CAAAA,QAAQ,EAAC,EAAG,GAAG,CAAC,CAACM;YACvB,MAAMC,MAAMD,KAAK,CAACJ,IAAI;YACtB,MAAMM,SAASD,MAAMJ,MAAM,aAASI,MAAMF,MAAM;YAEhDC,KAAK,CAACG,eAAe,GAAGD;YAExB,OAAOF;QACT;IACF;IAGF,OAAOR;AACT"}
@@ -2,3 +2,4 @@ export { discreteLegend } from './discreteLegend';
2
2
  export { pivotDiscreteLegend } from './pivotDiscreteLegend';
3
3
  export { colorLegend } from './colorLegend';
4
4
  export { pivotColorLegend } from './pivotColorLegend';
5
+ export { heatmapColorLegend } from './heatmapColorLegend';
@@ -2,4 +2,5 @@ import { discreteLegend } from "./discreteLegend.js";
2
2
  import { pivotDiscreteLegend } from "./pivotDiscreteLegend.js";
3
3
  import { colorLegend } from "./colorLegend.js";
4
4
  import { pivotColorLegend } from "./pivotColorLegend.js";
5
- export { colorLegend, discreteLegend, pivotColorLegend, pivotDiscreteLegend };
5
+ import { heatmapColorLegend } from "./heatmapColorLegend.js";
6
+ export { colorLegend, discreteLegend, heatmapColorLegend, pivotColorLegend, pivotDiscreteLegend };
@@ -9,6 +9,8 @@ const barStyle_barStyle = (spec, context)=>{
9
9
  ...spec,
10
10
  bar: {
11
11
  style: {
12
+ visible: true,
13
+ fillOpacity: 1,
12
14
  lineWidth: showStroke ? 1 : 0
13
15
  },
14
16
  state: {
@@ -57,14 +59,11 @@ const barStyle_barStyle = (spec, context)=>{
57
59
  }
58
60
  };
59
61
  }, {});
60
- return {
61
- ...result,
62
- bar: {
63
- state: {
64
- ...customMap
65
- }
66
- }
62
+ result.bar.state = {
63
+ ...result.bar.state,
64
+ ...customMap
67
65
  };
66
+ return result;
68
67
  };
69
68
  export { barStyle_barStyle as barStyle };
70
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/markStyle/barStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/barStyle.ts"],"sourcesContent":["import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, dataset = [] } = advancedVSeed\n const { barStyle } = markStyle\n\n const showStroke = dataset.length <= 100\n\n const result = {\n ...spec,\n bar: {\n style: {\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (isNullish(barStyle) || isEmpty(barStyle)) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const {\n barBorderColor,\n barBorderStyle,\n barBorderWidth = 1,\n barColor,\n barColorOpacity,\n barRadius,\n barVisible = true,\n } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n visible: barVisible,\n fill: barColor,\n fillOpacity: barColorOpacity,\n cornerRadius: barRadius,\n innerBorder: {\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n distance: (barBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n return {\n ...result,\n bar: {\n state: {\n ...customMap,\n },\n },\n }\n}\n"],"names":["barStyle","spec","context","advancedVSeed","markStyle","dataset","showStroke","result","isNullish","isEmpty","barStyles","Array","customMap","style","index","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","barVisible","lineDash","datum","selector"],"mappings":";;AAKO,MAAMA,oBAAqB,CAACC,MAAMC;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAEC,UAAU,EAAE,EAAE,GAAGF;IACpC,MAAM,EAAEH,QAAQ,EAAE,GAAGI;IAErB,MAAME,aAAaD,QAAQ,MAAM,IAAI;IAErC,MAAME,SAAS;QACb,GAAGN,IAAI;QACP,KAAK;YACH,OAAO;gBACL,WAAWK,aAAa,IAAI;YAC9B;YACA,OAAO;gBACL,OAAO;oBACL,aAAa;gBACf;YACF;QACF;IACF;IAEA,IAAIE,UAAUR,aAAaS,QAAQT,WACjC,OAAOO;IAGT,MAAMG,YAAaC,MAAM,OAAO,CAACX,YAAYA,WAAW;QAACA;KAAS;IAElE,MAAMY,YAAYF,UAAU,MAAM,CAAS,CAACH,QAAQM,OAAOC;QACzD,MAAM,EACJC,cAAc,EACdC,cAAc,EACdC,iBAAiB,CAAC,EAClBC,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,aAAa,IAAI,EAClB,GAAGR;QAEJ,MAAMS,WAAWN,AAAmB,aAAnBA,iBAA8B;YAAC;YAAG;SAAE,GAAGA,AAAmB,aAAnBA,iBAA8B;YAAC;YAAG;SAAE,GAAG;YAAC;YAAG;SAAE;QACrG,OAAO;YACL,GAAGT,MAAM;YACT,CAAC,CAAC,MAAM,EAAEO,QAAQ,GAAG,CAAC,EAAE;gBAEtB,OAAOA,QAAQ;gBACf,QAAQ,CAACS;oBACP,IAAIC,SAASD,OAAOV,MAAM,QAAQ,GAChC,OAAO;oBAET,OAAO;gBACT;gBACA,OAAO;oBACL,SAASQ;oBACT,MAAMH;oBACN,aAAaC;oBACb,cAAcC;oBACd,aAAa;wBACX,QAAQL;wBACR,WAAWE;wBACX,UAAWA,AAAAA,CAAAA,kBAAkB,KAAK;wBAClC,UAAUK;oBACZ;gBACF;YACF;QACF;IACF,GAAG,CAAC;IAEJ,OAAO;QACL,GAAGf,MAAM;QACT,KAAK;YACH,OAAO;gBACL,GAAGK,SAAS;YACd;QACF;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/markStyle/barStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/barStyle.ts"],"sourcesContent":["import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, dataset = [] } = advancedVSeed\n const { barStyle } = markStyle\n\n const showStroke = dataset.length <= 100\n\n const result = {\n ...spec,\n bar: {\n style: {\n visible: true,\n fillOpacity: 1,\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (isNullish(barStyle) || isEmpty(barStyle)) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const {\n barBorderColor,\n barBorderStyle,\n barBorderWidth = 1,\n barColor,\n barColorOpacity,\n barRadius,\n barVisible = true,\n } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n visible: barVisible,\n fill: barColor,\n fillOpacity: barColorOpacity,\n cornerRadius: barRadius,\n innerBorder: {\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n distance: (barBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n result.bar!.state = {\n ...result.bar!.state,\n ...customMap,\n }\n\n return result\n}\n"],"names":["barStyle","spec","context","advancedVSeed","markStyle","dataset","showStroke","result","isNullish","isEmpty","barStyles","Array","customMap","style","index","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","barVisible","lineDash","datum","selector"],"mappings":";;AAKO,MAAMA,oBAAqB,CAACC,MAAMC;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,SAAS,EAAEC,UAAU,EAAE,EAAE,GAAGF;IACpC,MAAM,EAAEH,QAAQ,EAAE,GAAGI;IAErB,MAAME,aAAaD,QAAQ,MAAM,IAAI;IAErC,MAAME,SAAS;QACb,GAAGN,IAAI;QACP,KAAK;YACH,OAAO;gBACL,SAAS;gBACT,aAAa;gBACb,WAAWK,aAAa,IAAI;YAC9B;YACA,OAAO;gBACL,OAAO;oBACL,aAAa;gBACf;YACF;QACF;IACF;IAEA,IAAIE,UAAUR,aAAaS,QAAQT,WACjC,OAAOO;IAGT,MAAMG,YAAaC,MAAM,OAAO,CAACX,YAAYA,WAAW;QAACA;KAAS;IAElE,MAAMY,YAAYF,UAAU,MAAM,CAAS,CAACH,QAAQM,OAAOC;QACzD,MAAM,EACJC,cAAc,EACdC,cAAc,EACdC,iBAAiB,CAAC,EAClBC,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,aAAa,IAAI,EAClB,GAAGR;QAEJ,MAAMS,WAAWN,AAAmB,aAAnBA,iBAA8B;YAAC;YAAG;SAAE,GAAGA,AAAmB,aAAnBA,iBAA8B;YAAC;YAAG;SAAE,GAAG;YAAC;YAAG;SAAE;QACrG,OAAO;YACL,GAAGT,MAAM;YACT,CAAC,CAAC,MAAM,EAAEO,QAAQ,GAAG,CAAC,EAAE;gBAEtB,OAAOA,QAAQ;gBACf,QAAQ,CAACS;oBACP,IAAIC,SAASD,OAAOV,MAAM,QAAQ,GAChC,OAAO;oBAET,OAAO;gBACT;gBACA,OAAO;oBACL,SAASQ;oBACT,MAAMH;oBACN,aAAaC;oBACb,cAAcC;oBACd,aAAa;wBACX,QAAQL;wBACR,WAAWE;wBACX,UAAWA,AAAAA,CAAAA,kBAAkB,KAAK;wBAClC,UAAUK;oBACZ;gBACF;YACF;QACF;IACF,GAAG,CAAC;IAEJf,OAAO,GAAG,CAAE,KAAK,GAAG;QAClB,GAAGA,OAAO,GAAG,CAAE,KAAK;QACpB,GAAGK,SAAS;IACd;IAEA,OAAOL;AACT"}
@@ -1,17 +1,22 @@
1
- const cellStyle = (spec)=>{
1
+ import { DATUM_HIDE_KEY } from "../../../../utils/constant.js";
2
+ const cellStyle = (spec, context)=>{
2
3
  const result = {
3
4
  ...spec,
4
5
  cell: {
5
6
  style: {}
6
7
  }
7
8
  };
9
+ const { advancedVSeed, vseed } = context;
10
+ const { chartType } = vseed;
11
+ const cell = advancedVSeed.config?.[chartType]?.cell;
8
12
  return {
9
13
  ...result,
10
14
  cell: {
11
15
  style: {
16
+ visible: (datum)=>datum?.[DATUM_HIDE_KEY] !== true,
12
17
  shape: 'rect',
13
- stroke: '#ffffff',
14
- lineWidth: 1
18
+ stroke: cell?.stroke,
19
+ lineWidth: cell?.lineWidth ?? 1
15
20
  }
16
21
  }
17
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/markStyle/cellStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/cellStyle.ts"],"sourcesContent":["import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const cellStyle: SpecPipe = (spec) => {\n const result = {\n ...spec,\n cell: {\n style: {},\n },\n } as IHeatmapChartSpec\n\n return {\n ...result,\n cell: {\n style: {\n shape: 'rect',\n stroke: '#ffffff',\n lineWidth: 1,\n },\n },\n }\n}\n"],"names":["cellStyle","spec","result"],"mappings":"AAGO,MAAMA,YAAsB,CAACC;IAClC,MAAMC,SAAS;QACb,GAAGD,IAAI;QACP,MAAM;YACJ,OAAO,CAAC;QACV;IACF;IAEA,OAAO;QACL,GAAGC,MAAM;QACT,MAAM;YACJ,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,WAAW;YACb;QACF;IACF;AACF"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/markStyle/cellStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/cellStyle.ts"],"sourcesContent":["import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport { DATUM_HIDE_KEY } from 'src/pipeline/utils/constant'\nimport type { SpecPipe } from 'src/types'\n\nexport const cellStyle: SpecPipe = (spec, context) => {\n const result = {\n ...spec,\n cell: {\n style: {},\n },\n } as IHeatmapChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const cell = advancedVSeed.config?.[chartType as 'heatmap']?.cell\n\n return {\n ...result,\n cell: {\n style: {\n visible: (datum: any) => {\n return datum?.[DATUM_HIDE_KEY] !== true\n },\n shape: 'rect',\n stroke: cell?.stroke,\n lineWidth: cell?.lineWidth ?? 1,\n },\n },\n }\n}\n"],"names":["cellStyle","spec","context","result","advancedVSeed","vseed","chartType","cell","datum","DATUM_HIDE_KEY"],"mappings":";AAIO,MAAMA,YAAsB,CAACC,MAAMC;IACxC,MAAMC,SAAS;QACb,GAAGF,IAAI;QACP,MAAM;YACJ,OAAO,CAAC;QACV;IACF;IACA,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAE,GAAGD;IACtB,MAAME,OAAOH,cAAc,MAAM,EAAE,CAACE,UAAuB,EAAE;IAE7D,OAAO;QACL,GAAGH,MAAM;QACT,MAAM;YACJ,OAAO;gBACL,SAAS,CAACK,QACDA,OAAO,CAACC,eAAe,KAAK;gBAErC,OAAO;gBACP,QAAQF,MAAM;gBACd,WAAWA,MAAM,aAAa;YAChC;QACF;IACF;AACF"}
@@ -10,7 +10,6 @@ const pivotColumnDimensions = (spec, context)=>{
10
10
  dimensionKey: dim.id,
11
11
  title: dim.alias || dim.id
12
12
  }));
13
- console.log('Pivot Column Dimensions:', columns);
14
13
  return {
15
14
  ...result,
16
15
  columns: columns
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!dimensions) {\n return result\n }\n const columnDimensions = dimensions.filter((dim) => dim.encoding === 'column')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n\n console.log('Pivot Column Dimensions:', columns)\n return {\n ...result,\n columns: columns,\n }\n}\n"],"names":["pivotColumnDimensions","spec","context","result","advancedVSeed","dimensions","columnDimensions","dim","columns","console"],"mappings":"AAIO,MAAMA,wBAAkC,CAACC,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAMG,aAAaD,cAAc,UAAU;IAE3C,IAAI,CAACC,YACH,OAAOF;IAET,MAAMG,mBAAmBD,WAAW,MAAM,CAAC,CAACE,MAAQA,AAAiB,aAAjBA,IAAI,QAAQ;IAChE,MAAMC,UAA6BF,iBAAiB,GAAG,CAAC,CAACC,MAAS;YAChE,cAAcA,IAAI,EAAE;YACpB,OAAOA,IAAI,KAAK,IAAIA,IAAI,EAAE;QAC5B;IAEAE,QAAQ,GAAG,CAAC,4BAA4BD;IACxC,OAAO;QACL,GAAGL,MAAM;QACT,SAASK;IACX;AACF"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!dimensions) {\n return result\n }\n const columnDimensions = dimensions.filter((dim) => dim.encoding === 'column')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n\n return {\n ...result,\n columns: columns,\n }\n}\n"],"names":["pivotColumnDimensions","spec","context","result","advancedVSeed","dimensions","columnDimensions","dim","columns"],"mappings":"AAIO,MAAMA,wBAAkC,CAACC,MAAMC;IACpD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAMG,aAAaD,cAAc,UAAU;IAE3C,IAAI,CAACC,YACH,OAAOF;IAET,MAAMG,mBAAmBD,WAAW,MAAM,CAAC,CAACE,MAAQA,AAAiB,aAAjBA,IAAI,QAAQ;IAChE,MAAMC,UAA6BF,iBAAiB,GAAG,CAAC,CAACC,MAAS;YAChE,cAAcA,IAAI,EAAE;YACpB,OAAOA,IAAI,KAAK,IAAIA,IAAI,EAAE;QAC5B;IAEA,OAAO;QACL,GAAGJ,MAAM;QACT,SAASK;IACX;AACF"}