@visactor/vseed 0.4.7 → 0.4.9
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 +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/dataSelector/selector.d.ts +15 -1
- package/dist/esm/dataSelector/selector.js +16 -1
- package/dist/esm/dataSelector/selector.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js +2 -3
- package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/index.d.ts +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/index.js +1 -2
- package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js +6 -3
- package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/index.d.ts +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/index.js +0 -1
- package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js +1 -1
- package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipeline/table.js +2 -1
- package/dist/esm/pipeline/spec/table/pipeline/table.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.d.ts +29 -0
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js +40 -3
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js +39 -7
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js +46 -6
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js +3 -0
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js +2 -12
- package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js +3 -2
- package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js +3 -2
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js +20 -25
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js +2 -12
- package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/bottomFrozenStyle.d.ts +2 -0
- package/dist/esm/pipeline/spec/table/pipes/theme/bottomFrozenStyle.js +51 -0
- package/dist/esm/pipeline/spec/table/pipes/theme/bottomFrozenStyle.js.map +1 -0
- package/dist/esm/pipeline/spec/table/pipes/theme/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/table/pipes/theme/index.js +1 -0
- package/dist/esm/theme/common/table.d.ts +35 -0
- package/dist/esm/theme/common/table.js +19 -3
- package/dist/esm/theme/common/table.js.map +1 -1
- package/dist/esm/types/chartType/area/zArea.d.ts +80 -0
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +80 -0
- package/dist/esm/types/chartType/bar/zBar.d.ts +48 -0
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +48 -0
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +48 -0
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +48 -0
- package/dist/esm/types/chartType/circlePacking/zCirclePacking.d.ts +8 -0
- package/dist/esm/types/chartType/column/zColumn.d.ts +48 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +48 -0
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +48 -0
- package/dist/esm/types/chartType/donut/zDonut.d.ts +8 -0
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +96 -0
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +8 -0
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +8 -0
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +48 -0
- package/dist/esm/types/chartType/line/zLine.d.ts +64 -0
- package/dist/esm/types/chartType/pie/zPie.d.ts +8 -0
- package/dist/esm/types/chartType/pivotTable/pivotTable.d.ts +6 -0
- package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +47 -4
- package/dist/esm/types/chartType/pivotTable/zPivotTable.js +1 -0
- package/dist/esm/types/chartType/pivotTable/zPivotTable.js.map +1 -1
- package/dist/esm/types/chartType/raceBar/zRaceBar.d.ts +48 -0
- package/dist/esm/types/chartType/raceColumn/zRaceColumn.d.ts +48 -0
- package/dist/esm/types/chartType/raceDonut/zRaceDonut.d.ts +8 -0
- package/dist/esm/types/chartType/raceLine/zRaceLine.d.ts +64 -0
- package/dist/esm/types/chartType/racePie/zRacePie.d.ts +8 -0
- package/dist/esm/types/chartType/raceScatter/zRaceScatter.d.ts +48 -0
- package/dist/esm/types/chartType/radar/zRadar.d.ts +8 -0
- package/dist/esm/types/chartType/rose/zRose.d.ts +8 -0
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +8 -0
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +48 -0
- package/dist/esm/types/chartType/sunburst/zSunburst.d.ts +8 -0
- package/dist/esm/types/chartType/table/zTable.d.ts +46 -4
- package/dist/esm/types/chartType/treeMap/zTreeMap.d.ts +8 -0
- package/dist/esm/types/dataSelector/selector.d.ts +40 -0
- package/dist/esm/types/dataSelector/selector.js +9 -1
- package/dist/esm/types/dataSelector/selector.js.map +1 -1
- package/dist/esm/types/properties/annotation/annotation.d.ts +24 -0
- package/dist/esm/types/properties/annotation/zAnnotationArea.d.ts +4 -0
- package/dist/esm/types/properties/annotation/zAnnotationPoint.d.ts +8 -0
- package/dist/esm/types/properties/cellStyle/bodyCellStyle.d.ts +71 -5
- package/dist/esm/types/properties/cellStyle/bodyCellStyle.js +16 -4
- package/dist/esm/types/properties/cellStyle/bodyCellStyle.js.map +1 -1
- package/dist/esm/types/properties/cellStyle/cellStyle.d.ts +23 -2
- package/dist/esm/types/properties/config/annotation/zAnnotation.d.ts +8 -0
- package/dist/esm/types/properties/config/area.d.ts +24 -0
- package/dist/esm/types/properties/config/bar.d.ts +36 -0
- package/dist/esm/types/properties/config/boxplot.d.ts +12 -0
- package/dist/esm/types/properties/config/circlePacking.d.ts +8 -0
- package/dist/esm/types/properties/config/column.d.ts +36 -0
- package/dist/esm/types/properties/config/config.d.ts +328 -0
- package/dist/esm/types/properties/config/dualAxis.d.ts +12 -0
- package/dist/esm/types/properties/config/funnel.d.ts +8 -0
- package/dist/esm/types/properties/config/heatmap.d.ts +8 -0
- package/dist/esm/types/properties/config/histogram.d.ts +12 -0
- package/dist/esm/types/properties/config/label/zLabel.d.ts +8 -0
- package/dist/esm/types/properties/config/label/zPieLabel.d.ts +8 -0
- package/dist/esm/types/properties/config/line.d.ts +12 -0
- package/dist/esm/types/properties/config/pie.d.ts +24 -0
- package/dist/esm/types/properties/config/pivotTable.d.ts +10 -0
- package/dist/esm/types/properties/config/race.d.ts +72 -0
- package/dist/esm/types/properties/config/rose.d.ts +16 -0
- package/dist/esm/types/properties/config/scatter.d.ts +12 -0
- package/dist/esm/types/properties/config/sunburst.d.ts +8 -0
- package/dist/esm/types/properties/config/table.d.ts +10 -0
- package/dist/esm/types/properties/config/table.js +14 -1
- package/dist/esm/types/properties/config/table.js.map +1 -1
- package/dist/esm/types/properties/config/treeMap.d.ts +8 -0
- package/dist/esm/types/properties/markStyle/barStyle.d.ts +8 -0
- package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +4 -0
- package/dist/esm/types/properties/markStyle/lineStyle.d.ts +8 -0
- package/dist/esm/types/properties/markStyle/markStyle.d.ts +80 -0
- package/dist/esm/types/properties/markStyle/outlierStyle.d.ts +4 -0
- package/dist/esm/types/properties/markStyle/pointStyle.d.ts +8 -0
- package/dist/esm/types/properties/markStyle/zAreaStyle.d.ts +8 -0
- package/dist/esm/types/properties/theme/customTheme.d.ts +656 -0
- package/dist/umd/index.js +24330 -23191
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.d.ts +0 -2
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js +0 -19
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/index.d.ts +0 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/index.js +0 -2
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.d.ts +0 -2
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js +0 -32
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +0 -1
|
@@ -1,42 +1,82 @@
|
|
|
1
1
|
import { array } from "@visactor/vutils";
|
|
2
2
|
import { isNullish, isNumber, isPlainObject, isString } from "remeda";
|
|
3
|
-
import {
|
|
4
|
-
import { getCellOriginalDataByDatum, pickBodyCellStyle } from "./common.js";
|
|
3
|
+
import { isFieldSelector, matchesFieldSelector, selector, selectorWithDynamicFilter } from "../../../../../dataSelector/selector.js";
|
|
4
|
+
import { applyColorScale, getCellOriginalDataByDatum, getColumnMinMax, pickBodyCellStyle } from "./common.js";
|
|
5
5
|
import { preorderTraverse } from "../../../../utils/tree/traverse.js";
|
|
6
6
|
const tableBodyCell = (spec, context)=>{
|
|
7
7
|
const { advancedVSeed } = context;
|
|
8
|
-
const { cellStyle } = advancedVSeed;
|
|
8
|
+
const { cellStyle, config, chartType } = advancedVSeed;
|
|
9
9
|
const bodyCellStyle = cellStyle?.bodyCellStyle;
|
|
10
|
+
const themeConfig = config?.[chartType];
|
|
10
11
|
if (!bodyCellStyle) return spec;
|
|
11
12
|
const bodyCellStyleList = array(bodyCellStyle);
|
|
12
13
|
const columns = spec.columns || [];
|
|
13
14
|
const selectedPos = [];
|
|
15
|
+
const allData = advancedVSeed.dataset || [];
|
|
14
16
|
const setStyleOfColumn = (col)=>{
|
|
15
17
|
const field = col.field;
|
|
16
18
|
const matchedStyles = bodyCellStyleList.filter((style)=>{
|
|
17
19
|
if (style?.dynamicFilter) return style.dynamicFilter?.result?.success === true || !!style.dynamicFilter?.fallback;
|
|
18
20
|
if (isNullish(style.selector)) return true;
|
|
19
21
|
const selectors = array(style.selector);
|
|
20
|
-
return selectors.some((
|
|
22
|
+
return selectors.some((sel)=>{
|
|
23
|
+
if (isFieldSelector(sel)) return matchesFieldSelector(field, sel);
|
|
24
|
+
if (isPlainObject(sel)) return isNullish(sel.field) || sel.field === field;
|
|
25
|
+
return isNumber(sel) || isString(sel);
|
|
26
|
+
});
|
|
21
27
|
});
|
|
22
28
|
if (!matchedStyles.length) return false;
|
|
23
29
|
const hasDynamicFilter = matchedStyles.some((style)=>!!style.dynamicFilter);
|
|
30
|
+
const progressBarStyle = matchedStyles.filter((s)=>s.enableProgressBar && s?.selector && matchesFieldSelector(field, s.selector)).pop();
|
|
31
|
+
const backgroundColorScale = matchedStyles.find((s)=>s.enableBackgroundColorScale && s?.selector && matchesFieldSelector(field, s.selector));
|
|
32
|
+
let columnMin;
|
|
33
|
+
let columnMax;
|
|
34
|
+
if (progressBarStyle || backgroundColorScale) {
|
|
35
|
+
const { min, max } = getColumnMinMax(allData, field);
|
|
36
|
+
columnMin = min;
|
|
37
|
+
columnMax = max;
|
|
38
|
+
if (progressBarStyle) {
|
|
39
|
+
col.cellType = 'progressbar';
|
|
40
|
+
col.barType = 'negative';
|
|
41
|
+
col.min = progressBarStyle.barMin ?? columnMin;
|
|
42
|
+
col.max = progressBarStyle.barMin ?? columnMax;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
24
45
|
col.style = (datum)=>{
|
|
25
46
|
const originalDatum = {
|
|
26
47
|
[field]: datum.dataValue
|
|
27
48
|
};
|
|
28
49
|
const currentCellData = getCellOriginalDataByDatum(datum, hasDynamicFilter, originalDatum);
|
|
29
50
|
const mergedStyle = matchedStyles.reduce((result, style)=>{
|
|
30
|
-
const shouldApply = style.dynamicFilter ? selectorWithDynamicFilter(currentCellData || originalDatum, style.dynamicFilter, style.selector) :
|
|
51
|
+
const shouldApply = style.dynamicFilter ? selectorWithDynamicFilter(currentCellData || originalDatum, style.dynamicFilter, style.selector) : selector(originalDatum, style.selector);
|
|
31
52
|
if (shouldApply) {
|
|
32
53
|
if (selectedPos.length && selectedPos[0].col === datum?.col && selectedPos[0].row === datum?.row) selectedPos.length = 0;
|
|
33
54
|
selectedPos.push({
|
|
34
55
|
col: datum?.col,
|
|
35
56
|
row: datum?.row
|
|
36
57
|
});
|
|
58
|
+
let cellStyle = pickBodyCellStyle(style);
|
|
59
|
+
if (style.enableBackgroundColorScale) {
|
|
60
|
+
const scaledColor = applyColorScale(datum.dataValue, {
|
|
61
|
+
minValue: columnMin,
|
|
62
|
+
maxValue: columnMax,
|
|
63
|
+
...themeConfig.backgroundColorScale,
|
|
64
|
+
...style?.backgroundColorScale
|
|
65
|
+
});
|
|
66
|
+
if (scaledColor) cellStyle.bgColor = scaledColor;
|
|
67
|
+
}
|
|
68
|
+
if ('progressbar' === col.cellType) cellStyle = {
|
|
69
|
+
...cellStyle,
|
|
70
|
+
barHeight: themeConfig?.barHeight,
|
|
71
|
+
barMarkInBar: themeConfig?.barMarkInBar,
|
|
72
|
+
barMarkWidth: themeConfig?.barMarkWidth,
|
|
73
|
+
barPadding: themeConfig?.barPadding,
|
|
74
|
+
barRightToLeft: themeConfig?.barRightToLeft,
|
|
75
|
+
barAxisColor: themeConfig?.barAxisColor
|
|
76
|
+
};
|
|
37
77
|
return {
|
|
38
78
|
...result,
|
|
39
|
-
...
|
|
79
|
+
...cellStyle
|
|
40
80
|
};
|
|
41
81
|
}
|
|
42
82
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/cellStyle/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/table.ts"],"sourcesContent":["import type { ListTableConstructorOptions, ColumnDefine } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isNumber, isPlainObject, isString } from 'remeda'\nimport { selector, selectorWithDynamicFilter } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, ListTableSpecPipe } from 'src/types'\nimport type {
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/cellStyle/table.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/cellStyle/table.ts"],"sourcesContent":["import type { ListTableConstructorOptions, ColumnDefine, ProgressbarColumnDefine } from '@visactor/vtable'\nimport { array } from '@visactor/vutils'\nimport { isNullish, isNumber, isPlainObject, isString } from 'remeda'\nimport { isFieldSelector, matchesFieldSelector, selector, selectorWithDynamicFilter } from 'src/dataSelector/selector'\nimport type { BodyCellStyle, ListTableSpecPipe, TableConfig } from 'src/types'\nimport type { FieldSelector, MeasureSelector } from 'src/types/dataSelector'\nimport { getCellOriginalDataByDatum, pickBodyCellStyle, applyColorScale, getColumnMinMax } from './common'\nimport { preorderTraverse } from 'src/pipeline/utils/tree/traverse'\n\nexport const tableBodyCell: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { cellStyle, config, chartType } = advancedVSeed\n const bodyCellStyle = cellStyle?.bodyCellStyle\n const themeConfig = config?.[chartType] as TableConfig\n\n if (!bodyCellStyle) {\n return spec as ListTableConstructorOptions\n }\n\n const bodyCellStyleList = array(bodyCellStyle) as BodyCellStyle[]\n const columns = (spec as ListTableConstructorOptions).columns || []\n const selectedPos: { col: number; row: number }[] = []\n const allData = advancedVSeed.dataset || []\n\n const setStyleOfColumn = (col: ColumnDefine) => {\n const field = col.field as string\n\n // 过滤出匹配当前列的样式配置\n const matchedStyles = bodyCellStyleList.filter((style) => {\n // 检查 dynamicFilter\n if (style?.dynamicFilter) {\n return style.dynamicFilter?.result?.success === true || !!style.dynamicFilter?.fallback\n }\n\n // 检查 selector\n if (isNullish(style.selector)) {\n return true\n }\n\n const selectors = array(style.selector) as any[]\n return selectors.some((sel) => {\n // 1. FieldSelector(字段选择器)\n if (isFieldSelector(sel)) {\n return matchesFieldSelector(field, sel)\n }\n\n // 2. MeasureSelector/DimensionSelector(条件选择器)\n if (isPlainObject(sel)) {\n return isNullish(sel.field) || (sel as MeasureSelector).field === field\n }\n\n // 3. ValueSelector(值选择器)\n return isNumber(sel) || isString(sel)\n })\n })\n\n if (!matchedStyles.length) {\n return false\n }\n\n const hasDynamicFilter = matchedStyles.some((style) => !!style.dynamicFilter)\n\n // 前置处理:检查是否需要 progressBar\n const progressBarStyle = matchedStyles\n .filter((s) => s.enableProgressBar && s?.selector && matchesFieldSelector(field, s.selector as FieldSelector))\n .pop()\n const backgroundColorScale = matchedStyles.find(\n (s) => s.enableBackgroundColorScale && s?.selector && matchesFieldSelector(field, s.selector as FieldSelector),\n )\n let columnMin: number\n let columnMax: number\n if (progressBarStyle || backgroundColorScale) {\n const { min, max } = getColumnMinMax(allData, field)\n columnMin = min\n columnMax = max\n if (progressBarStyle) {\n col.cellType = 'progressbar'\n ;(col as ProgressbarColumnDefine).barType = 'negative'\n ;(col as ProgressbarColumnDefine).min = progressBarStyle.barMin ?? columnMin\n ;(col as ProgressbarColumnDefine).max = progressBarStyle.barMin ?? columnMax\n }\n }\n\n // 统一的 col.style 回调\n col.style = (datum: any) => {\n const originalDatum = {\n [field]: datum.dataValue,\n }\n const currentCellData = getCellOriginalDataByDatum(datum, hasDynamicFilter, originalDatum)\n\n const mergedStyle = matchedStyles.reduce<Record<string, any>>((result, style) => {\n const shouldApply = style.dynamicFilter\n ? selectorWithDynamicFilter(currentCellData || originalDatum, style.dynamicFilter, style.selector)\n : selector(originalDatum, style.selector)\n\n if (shouldApply) {\n if (selectedPos.length && selectedPos[0].col === datum?.col && selectedPos[0].row === datum?.row) {\n // 说明重复进入了,清空历史\n selectedPos.length = 0\n }\n selectedPos.push({\n col: datum?.col,\n row: datum?.row,\n })\n\n let cellStyle = pickBodyCellStyle(style)\n\n // 应用 backgroundColorScale\n if (style.enableBackgroundColorScale) {\n const scaledColor = applyColorScale(datum.dataValue, {\n minValue: columnMin,\n maxValue: columnMax,\n ...themeConfig.backgroundColorScale,\n ...style?.backgroundColorScale,\n } as any)\n if (scaledColor) {\n cellStyle.bgColor = scaledColor\n }\n }\n // 如果开启了数据条样式\n if (col.cellType === 'progressbar') {\n cellStyle = {\n ...cellStyle,\n barHeight: themeConfig?.barHeight,\n barMarkInBar: themeConfig?.barMarkInBar,\n barMarkWidth: themeConfig?.barMarkWidth,\n barPadding: themeConfig?.barPadding,\n barRightToLeft: themeConfig?.barRightToLeft,\n barAxisColor: themeConfig?.barAxisColor,\n }\n }\n\n return {\n ...result,\n ...cellStyle,\n }\n }\n\n return result\n }, {})\n\n return mergedStyle\n }\n\n return false\n }\n\n preorderTraverse<ColumnDefine, 'columns'>(columns, setStyleOfColumn, 'columns')\n ;(spec as any).runningConfig = {\n ...((spec as any).runningConfig || {}),\n selectedPos,\n }\n\n return spec as ListTableConstructorOptions\n}\n"],"names":["tableBodyCell","spec","context","advancedVSeed","cellStyle","config","chartType","bodyCellStyle","themeConfig","bodyCellStyleList","array","columns","selectedPos","allData","setStyleOfColumn","col","field","matchedStyles","style","isNullish","selectors","sel","isFieldSelector","matchesFieldSelector","isPlainObject","isNumber","isString","hasDynamicFilter","progressBarStyle","s","backgroundColorScale","columnMin","columnMax","min","max","getColumnMinMax","datum","originalDatum","currentCellData","getCellOriginalDataByDatum","mergedStyle","result","shouldApply","selectorWithDynamicFilter","selector","pickBodyCellStyle","scaledColor","applyColorScale","preorderTraverse"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createFormatterByMeasure, isMeasure } from "../../../../utils/index.js";
|
|
2
2
|
import { treeTreeToColumns } from "./utils.js";
|
|
3
|
+
import { isNullish } from "remeda";
|
|
4
|
+
import { isUndefined } from "@visactor/vutils";
|
|
3
5
|
const measureTreeToColumns = (spec, context)=>{
|
|
4
6
|
const { advancedVSeed } = context;
|
|
5
7
|
const measureTree = advancedVSeed.measureTree;
|
|
@@ -27,6 +29,7 @@ const fieldFormat = (node)=>{
|
|
|
27
29
|
return (datum)=>{
|
|
28
30
|
const { id } = node;
|
|
29
31
|
const value = datum[id];
|
|
32
|
+
if (isNullish(value) || isUndefined(value)) return value;
|
|
30
33
|
return formatter(value);
|
|
31
34
|
};
|
|
32
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/columns/measuresToColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/measuresToColumns.ts"],"sourcesContent":["import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport { createFormatterByMeasure, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, ListTableSpecPipe, Datum } from 'src/types'\nimport { treeTreeToColumns } from './utils'\n\nexport const measureTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measureTree = (advancedVSeed as unknown as { measureTree: MeasureTree }).measureTree\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measureTree, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat = (node: Measure) => {\n const formatter = createFormatterByMeasure(node)\n\n return (datum: Datum) => {\n const { id } = node\n const value = datum[id] as number | string | undefined\n return formatter(value)\n }\n}\n"],"names":["measureTreeToColumns","spec","context","advancedVSeed","measureTree","result","eachNode","node","isMeasure","fieldFormat","columns","treeTreeToColumns","formatter","createFormatterByMeasure","datum","id","value"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/columns/measuresToColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/measuresToColumns.ts"],"sourcesContent":["import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport { createFormatterByMeasure, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, ListTableSpecPipe, Datum } from 'src/types'\nimport { treeTreeToColumns } from './utils'\nimport { isNullish } from 'remeda'\nimport { isUndefined } from '@visactor/vutils'\n\nexport const measureTreeToColumns: ListTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measureTree = (advancedVSeed as unknown as { measureTree: MeasureTree }).measureTree\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measureTree, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat = (node: Measure) => {\n const formatter = createFormatterByMeasure(node)\n\n return (datum: Datum) => {\n const { id } = node\n const value = datum[id] as number | string | undefined\n if (isNullish(value) || isUndefined(value)) {\n return value\n }\n return formatter(value)\n }\n}\n"],"names":["measureTreeToColumns","spec","context","advancedVSeed","measureTree","result","eachNode","node","isMeasure","fieldFormat","columns","treeTreeToColumns","formatter","createFormatterByMeasure","datum","id","value","isNullish","isUndefined"],"mappings":";;;;AAOO,MAAMA,uBAA0C,CAACC,MAAMC;IAC5D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,cAAeD,cAA0D,WAAW;IAC1F,MAAME,SAAS;QAAE,GAAGJ,IAAI;IAAC;IAEzB,MAAMK,WAAW,CAACC;QAChB,IAAIC,UAAUD,OACZ,OAAO;YACL,OAAO;YACP,aAAaE,YAAYF;QAC3B;QAGF,OAAO,CAAC;IACV;IACA,MAAMG,UAAUC,kBAAyCP,aAAaE;IACtE,OAAO;QACL,GAAGD,MAAM;QACT,SAAS;eAAKA,OAAO,OAAO,IAAI,EAAE;eAAMK;SAAQ;IAClD;AACF;AAEA,MAAMD,cAAc,CAACF;IACnB,MAAMK,YAAYC,yBAAyBN;IAE3C,OAAO,CAACO;QACN,MAAM,EAAEC,EAAE,EAAE,GAAGR;QACf,MAAMS,QAAQF,KAAK,CAACC,GAAG;QACvB,IAAIE,UAAUD,UAAUE,YAAYF,QAClC,OAAOA;QAET,OAAOJ,UAAUI;IACnB;AACF"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
2
|
-
import { findAllMeasures } from "../../../../utils/index.js";
|
|
3
1
|
const pivotColumns = (spec, context)=>{
|
|
4
2
|
const { advancedVSeed } = context;
|
|
5
3
|
const { encoding } = advancedVSeed;
|
|
6
4
|
const dimensions = advancedVSeed.dimensionTree;
|
|
7
5
|
const columns = dimensions.filter((item)=>encoding.column?.includes(item.id));
|
|
8
|
-
const allMeasures = findAllMeasures(advancedVSeed.measureTree);
|
|
9
6
|
return {
|
|
10
7
|
...spec,
|
|
11
|
-
columns: columns.map((item)=>{
|
|
12
|
-
const res = {
|
|
8
|
+
columns: columns.map((item)=>({
|
|
13
9
|
dimensionKey: item.id,
|
|
14
10
|
title: item.alias || item.id,
|
|
15
11
|
width: 'auto'
|
|
16
|
-
}
|
|
17
|
-
if (item.id === MeasureId) res.headerFormat = (measureId)=>{
|
|
18
|
-
const measure = allMeasures.find((m)=>m.id === measureId);
|
|
19
|
-
return measure?.alias ?? measureId;
|
|
20
|
-
};
|
|
21
|
-
return res;
|
|
22
|
-
})
|
|
12
|
+
}))
|
|
23
13
|
};
|
|
24
14
|
};
|
|
25
15
|
export { pivotColumns };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/columns/pivotColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/pivotColumns.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/columns/pivotColumns.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/pivotColumns.ts"],"sourcesContent":["import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotColumns: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n const dimensions = advancedVSeed.dimensionTree as Dimensions\n const columns = dimensions.filter((item) => encoding.column?.includes(item.id))\n\n return {\n ...spec,\n columns: columns.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n } as PivotTableConstructorOptions\n}\n"],"names":["pivotColumns","spec","context","advancedVSeed","encoding","dimensions","columns","item"],"mappings":"AAGO,MAAMA,eAAmC,CAACC,MAAMC;IACrD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,QAAQ,EAAE,GAAGD;IACrB,MAAME,aAAaF,cAAc,aAAa;IAC9C,MAAMG,UAAUD,WAAW,MAAM,CAAC,CAACE,OAASH,SAAS,MAAM,EAAE,SAASG,KAAK,EAAE;IAE7E,OAAO;QACL,GAAGN,IAAI;QACP,SAASK,QAAQ,GAAG,CAAC,CAACC,OACb;gBACL,cAAcA,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;IAEJ;AACF"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const titleOnDimension = (spec)=>{
|
|
2
|
-
const { rows = [], columns = [] } = spec;
|
|
2
|
+
const { rows = [], columns = [], indicatorsAsCol, indicators = [] } = spec;
|
|
3
|
+
const rowsLength = rows.length + (indicatorsAsCol ? 0 : indicators?.length > 0 ? 1 : 0);
|
|
3
4
|
return {
|
|
4
5
|
...spec,
|
|
5
6
|
corner: {
|
|
6
|
-
titleOnDimension:
|
|
7
|
+
titleOnDimension: rowsLength <= 1 && columns.length >= 1 && !indicatorsAsCol ? 'column' : 'row'
|
|
7
8
|
}
|
|
8
9
|
};
|
|
9
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["import type { PivotTableSpecPipe } from 'src/types'\n\nexport const titleOnDimension: PivotTableSpecPipe = (spec) => {\n const { rows = [], columns = [] } = spec\n\n return {\n ...spec,\n corner: {\n titleOnDimension:
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/corner/titleOnDimension.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/corner/titleOnDimension.ts"],"sourcesContent":["import type { PivotTableSpecPipe } from 'src/types'\n\nexport const titleOnDimension: PivotTableSpecPipe = (spec) => {\n const { rows = [], columns = [], indicatorsAsCol, indicators = [] } = spec\n const rowsLength = rows.length + (indicatorsAsCol ? 0 : indicators?.length > 0 ? 1 : 0)\n\n return {\n ...spec,\n corner: {\n titleOnDimension: rowsLength <= 1 && columns.length >= 1 && !indicatorsAsCol ? 'column' : 'row',\n },\n }\n}\n"],"names":["titleOnDimension","spec","rows","columns","indicatorsAsCol","indicators","rowsLength"],"mappings":"AAEO,MAAMA,mBAAuC,CAACC;IACnD,MAAM,EAAEC,OAAO,EAAE,EAAEC,UAAU,EAAE,EAAEC,eAAe,EAAEC,aAAa,EAAE,EAAE,GAAGJ;IACtE,MAAMK,aAAaJ,KAAK,MAAM,GAAIE,CAAAA,kBAAkB,IAAIC,YAAY,SAAS,IAAI,IAAI;IAErF,OAAO;QACL,GAAGJ,IAAI;QACP,QAAQ;YACN,kBAAkBK,cAAc,KAAKH,QAAQ,MAAM,IAAI,KAAK,CAACC,kBAAkB,WAAW;QAC5F;IACF;AACF"}
|
|
@@ -5,7 +5,7 @@ const dataConfig = (spec, context)=>{
|
|
|
5
5
|
const measures = findAllMeasures(advancedVSeed.measureTree);
|
|
6
6
|
const aggregationRules = measures.map((measure)=>({
|
|
7
7
|
field: measure.id,
|
|
8
|
-
aggregationType: '
|
|
8
|
+
aggregationType: 'SUM',
|
|
9
9
|
indicatorKey: measure.id
|
|
10
10
|
}));
|
|
11
11
|
const dataConfigObj = {
|
|
@@ -15,9 +15,9 @@ const dataConfig = (spec, context)=>{
|
|
|
15
15
|
if (totals) {
|
|
16
16
|
const grandTotalLabel = intl.i18n`总计`;
|
|
17
17
|
const subTotalLabel = intl.i18n`小计`;
|
|
18
|
-
const dimensionIds = (advancedVSeed.dimensionTree || []).map((dim)=>dim.id);
|
|
19
18
|
dataConfigObj.totals = {};
|
|
20
19
|
if (totals.row) {
|
|
20
|
+
const dimensionIds = (advancedVSeed.dimensionTree || []).filter((dim)=>'row' === dim.encoding).map((dim)=>dim.id);
|
|
21
21
|
const rowSubDimensions = totals.row.subTotalsDimensions?.filter((dim)=>dimensionIds.includes(dim));
|
|
22
22
|
const normalizedRowSubDimensions = totals.row.showSubTotals && (!rowSubDimensions || 0 === rowSubDimensions.length) ? dimensionIds.length > 0 ? [
|
|
23
23
|
dimensionIds[0]
|
|
@@ -31,6 +31,7 @@ const dataConfig = (spec, context)=>{
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
if (totals.column) {
|
|
34
|
+
const dimensionIds = (advancedVSeed.dimensionTree || []).filter((dim)=>'column' === dim.encoding).map((dim)=>dim.id);
|
|
34
35
|
const columnSubDimensions = totals.column.subTotalsDimensions?.filter((dim)=>dimensionIds.includes(dim));
|
|
35
36
|
const normalizedColumnSubDimensions = totals.column.showSubTotals && (!columnSubDimensions || 0 === columnSubDimensions.length) ? dimensionIds.length > 0 ? [
|
|
36
37
|
dimensionIds[0]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotDataConfig.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts"],"sourcesContent":["import { intl } from 'src/i18n'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { PivotTable, PivotTableSpecPipe } from 'src/types'\n\nexport const dataConfig: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const measures = findAllMeasures(advancedVSeed.measureTree)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: '
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotDataConfig.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts"],"sourcesContent":["import { intl } from 'src/i18n'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { Dimension, PivotTable, PivotTableSpecPipe } from 'src/types'\n\nexport const dataConfig: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const measures = findAllMeasures(advancedVSeed.measureTree)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: 'SUM',\n indicatorKey: measure.id,\n }))\n\n const dataConfigObj: any = {\n aggregationRules,\n }\n\n // 处理totals配置\n const { totals } = vseed as PivotTable\n if (totals) {\n const grandTotalLabel = intl.i18n`总计`\n const subTotalLabel = intl.i18n`小计`\n\n dataConfigObj.totals = {}\n\n // 处理行配置\n if (totals.row) {\n const dimensionIds = (advancedVSeed.dimensionTree || [])\n .filter((dim: Dimension) => dim.encoding === 'row')\n .map((dim) => dim.id)\n const rowSubDimensions = totals.row.subTotalsDimensions?.filter((dim) => dimensionIds.includes(dim))\n const normalizedRowSubDimensions =\n totals.row.showSubTotals && (!rowSubDimensions || rowSubDimensions.length === 0)\n ? dimensionIds.length > 0\n ? [dimensionIds[0]]\n : []\n : rowSubDimensions\n\n dataConfigObj.totals.row = {\n showGrandTotals: totals.row.showGrandTotals ?? false,\n showSubTotals: totals.row.showSubTotals ?? false,\n subTotalsDimensions: normalizedRowSubDimensions,\n grandTotalLabel,\n subTotalLabel,\n }\n }\n\n // 处理列配置\n if (totals.column) {\n const dimensionIds = (advancedVSeed.dimensionTree || [])\n .filter((dim: Dimension) => dim.encoding === 'column')\n .map((dim) => dim.id)\n const columnSubDimensions = totals.column.subTotalsDimensions?.filter((dim) => dimensionIds.includes(dim))\n const normalizedColumnSubDimensions =\n totals.column.showSubTotals && (!columnSubDimensions || columnSubDimensions.length === 0)\n ? dimensionIds.length > 0\n ? [dimensionIds[0]]\n : []\n : columnSubDimensions\n\n dataConfigObj.totals.column = {\n showGrandTotals: totals.column.showGrandTotals ?? false,\n showSubTotals: totals.column.showSubTotals ?? false,\n subTotalsDimensions: normalizedColumnSubDimensions,\n grandTotalLabel,\n subTotalLabel,\n }\n }\n }\n\n return {\n ...spec,\n dataConfig: dataConfigObj,\n }\n}\n"],"names":["dataConfig","spec","context","advancedVSeed","vseed","measures","findAllMeasures","aggregationRules","measure","dataConfigObj","totals","grandTotalLabel","intl","subTotalLabel","dimensionIds","dim","rowSubDimensions","normalizedRowSubDimensions","columnSubDimensions","normalizedColumnSubDimensions"],"mappings":";;AAIO,MAAMA,aAAiC,CAACC,MAAMC;IACnD,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGF;IACjC,MAAMG,WAAWC,gBAAgBH,cAAc,WAAW;IAE1D,MAAMI,mBAAmBF,SAAS,GAAG,CAAC,CAACG,UAAa;YAClD,OAAOA,QAAQ,EAAE;YACjB,iBAAiB;YACjB,cAAcA,QAAQ,EAAE;QAC1B;IAEA,MAAMC,gBAAqB;QACzBF;IACF;IAGA,MAAM,EAAEG,MAAM,EAAE,GAAGN;IACnB,IAAIM,QAAQ;QACV,MAAMC,kBAAkBC,KAAK,IAAI,CAAC,EAAE,CAAC;QACrC,MAAMC,gBAAgBD,KAAK,IAAI,CAAC,EAAE,CAAC;QAEnCH,cAAc,MAAM,GAAG,CAAC;QAGxB,IAAIC,OAAO,GAAG,EAAE;YACd,MAAMI,eAAgBX,AAAAA,CAAAA,cAAc,aAAa,IAAI,EAAC,EACnD,MAAM,CAAC,CAACY,MAAmBA,AAAiB,UAAjBA,IAAI,QAAQ,EACvC,GAAG,CAAC,CAACA,MAAQA,IAAI,EAAE;YACtB,MAAMC,mBAAmBN,OAAO,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAACK,MAAQD,aAAa,QAAQ,CAACC;YAC/F,MAAME,6BACJP,OAAO,GAAG,CAAC,aAAa,IAAK,EAACM,oBAAoBA,AAA4B,MAA5BA,iBAAiB,MAAM,AAAK,IAC1EF,aAAa,MAAM,GAAG,IACpB;gBAACA,YAAY,CAAC,EAAE;aAAC,GACjB,EAAE,GACJE;YAENP,cAAc,MAAM,CAAC,GAAG,GAAG;gBACzB,iBAAiBC,OAAO,GAAG,CAAC,eAAe,IAAI;gBAC/C,eAAeA,OAAO,GAAG,CAAC,aAAa,IAAI;gBAC3C,qBAAqBO;gBACrBN;gBACAE;YACF;QACF;QAGA,IAAIH,OAAO,MAAM,EAAE;YACjB,MAAMI,eAAgBX,AAAAA,CAAAA,cAAc,aAAa,IAAI,EAAC,EACnD,MAAM,CAAC,CAACY,MAAmBA,AAAiB,aAAjBA,IAAI,QAAQ,EACvC,GAAG,CAAC,CAACA,MAAQA,IAAI,EAAE;YACtB,MAAMG,sBAAsBR,OAAO,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAACK,MAAQD,aAAa,QAAQ,CAACC;YACrG,MAAMI,gCACJT,OAAO,MAAM,CAAC,aAAa,IAAK,EAACQ,uBAAuBA,AAA+B,MAA/BA,oBAAoB,MAAM,AAAK,IACnFJ,aAAa,MAAM,GAAG,IACpB;gBAACA,YAAY,CAAC,EAAE;aAAC,GACjB,EAAE,GACJI;YAENT,cAAc,MAAM,CAAC,MAAM,GAAG;gBAC5B,iBAAiBC,OAAO,MAAM,CAAC,eAAe,IAAI;gBAClD,eAAeA,OAAO,MAAM,CAAC,aAAa,IAAI;gBAC9C,qBAAqBS;gBACrBR;gBACAE;YACF;QACF;IACF;IAEA,OAAO;QACL,GAAGZ,IAAI;QACP,YAAYQ;IACd;AACF"}
|
|
@@ -1,38 +1,33 @@
|
|
|
1
1
|
import { isNumber } from "remeda";
|
|
2
2
|
import { intl } from "../../../../../i18n/index.js";
|
|
3
|
-
import { createFormatterByMeasure,
|
|
3
|
+
import { createFormatterByMeasure, findAllMeasures } from "../../../../utils/index.js";
|
|
4
4
|
const pivotIndicators = (spec, context)=>{
|
|
5
|
-
const { advancedVSeed } = context;
|
|
6
|
-
const { measureTree
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const foldMapValues = Object.values(foldInfo.foldMap);
|
|
5
|
+
const { advancedVSeed, vseed } = context;
|
|
6
|
+
const { measureTree } = advancedVSeed;
|
|
7
|
+
const measures = findAllMeasures(measureTree);
|
|
8
|
+
const indicatorsAsCol = vseed.indicatorsAsCol ?? false;
|
|
10
9
|
return {
|
|
11
10
|
...spec,
|
|
12
11
|
indicatorTitle: intl.i18n`指标名称`,
|
|
13
|
-
indicatorsAsCol
|
|
14
|
-
hideIndicatorName:
|
|
15
|
-
indicators:
|
|
16
|
-
|
|
12
|
+
indicatorsAsCol,
|
|
13
|
+
hideIndicatorName: measures.length <= 1,
|
|
14
|
+
indicators: measures.map((measure)=>{
|
|
15
|
+
const formatter = createFormatterByMeasure(measure);
|
|
16
|
+
return {
|
|
17
17
|
cellType: 'text',
|
|
18
|
-
indicatorKey:
|
|
19
|
-
title:
|
|
18
|
+
indicatorKey: measure.id,
|
|
19
|
+
title: measure.alias || measure.id,
|
|
20
20
|
width: 'auto',
|
|
21
|
-
format:
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
format: (value, col, row, table)=>{
|
|
22
|
+
if (!isNumber(col) || !isNumber(row) || !table) return value;
|
|
23
|
+
const datum = table.getCellOriginRecord(col, row);
|
|
24
|
+
if (!datum?.[0]) return value;
|
|
25
|
+
return formatter(value);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
})
|
|
24
29
|
};
|
|
25
30
|
};
|
|
26
|
-
const fieldFormat = (measureTree, foldInfo)=>(value, col, row, table)=>{
|
|
27
|
-
if (!isNumber(col) || !isNumber(row) || !table) return value;
|
|
28
|
-
const datum = table.getCellOriginRecord(col, row);
|
|
29
|
-
if (!datum[0]) return value;
|
|
30
|
-
const { measureId: foldMeasureId } = foldInfo;
|
|
31
|
-
const measureId = datum[0][foldMeasureId];
|
|
32
|
-
const measure = findMeasureById(measureTree, measureId);
|
|
33
|
-
const formatter = createFormatterByMeasure(measure);
|
|
34
|
-
return formatter(value);
|
|
35
|
-
};
|
|
36
31
|
export { pivotIndicators };
|
|
37
32
|
|
|
38
33
|
//# sourceMappingURL=pivotIndicators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotIndicators.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts"],"sourcesContent":["import type { PivotChartConstructorOptions, BaseTableAPI } from '@visactor/vtable'\nimport { isNumber } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { createFormatterByMeasure,
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/indicators/pivotIndicators.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts"],"sourcesContent":["import type { PivotChartConstructorOptions, BaseTableAPI } from '@visactor/vtable'\nimport { isNumber } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { createFormatterByMeasure, findAllMeasures } from 'src/pipeline/utils'\nimport type { Datum, MeasureTree, PivotTable, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotIndicators: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { measureTree } = advancedVSeed\n const measures = findAllMeasures(measureTree as MeasureTree)\n\n // 用户可配置 indicatorsAsCol,默认 true\n const indicatorsAsCol = (vseed as PivotTable).indicatorsAsCol ?? false\n\n return {\n ...spec,\n indicatorTitle: intl.i18n`指标名称`,\n indicatorsAsCol,\n hideIndicatorName: measures.length <= 1,\n indicators: measures.map((measure) => {\n const formatter = createFormatterByMeasure(measure)\n return {\n cellType: 'text',\n indicatorKey: measure.id,\n title: measure.alias || measure.id,\n width: 'auto',\n format: (value: number | string, col?: number, row?: number, table?: BaseTableAPI) => {\n if (!isNumber(col) || !isNumber(row) || !table) {\n return value\n }\n const datum = table.getCellOriginRecord(col, row) as Datum[]\n if (!datum?.[0]) {\n return value\n }\n return formatter(value)\n },\n }\n }) as unknown as PivotChartConstructorOptions['indicators'],\n }\n}\n"],"names":["pivotIndicators","spec","context","advancedVSeed","vseed","measureTree","measures","findAllMeasures","indicatorsAsCol","intl","measure","formatter","createFormatterByMeasure","value","col","row","table","isNumber","datum"],"mappings":";;;AAMO,MAAMA,kBAAsC,CAACC,MAAMC;IACxD,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGF;IACjC,MAAM,EAAEG,WAAW,EAAE,GAAGF;IACxB,MAAMG,WAAWC,gBAAgBF;IAGjC,MAAMG,kBAAmBJ,MAAqB,eAAe,IAAI;IAEjE,OAAO;QACL,GAAGH,IAAI;QACP,gBAAgBQ,KAAK,IAAI,CAAC,IAAI,CAAC;QAC/BD;QACA,mBAAmBF,SAAS,MAAM,IAAI;QACtC,YAAYA,SAAS,GAAG,CAAC,CAACI;YACxB,MAAMC,YAAYC,yBAAyBF;YAC3C,OAAO;gBACL,UAAU;gBACV,cAAcA,QAAQ,EAAE;gBACxB,OAAOA,QAAQ,KAAK,IAAIA,QAAQ,EAAE;gBAClC,OAAO;gBACP,QAAQ,CAACG,OAAwBC,KAAcC,KAAcC;oBAC3D,IAAI,CAACC,SAASH,QAAQ,CAACG,SAASF,QAAQ,CAACC,OACvC,OAAOH;oBAET,MAAMK,QAAQF,MAAM,mBAAmB,CAACF,KAAKC;oBAC7C,IAAI,CAACG,OAAO,CAAC,EAAE,EACb,OAAOL;oBAET,OAAOF,UAAUE;gBACnB;YACF;QACF;IACF;AACF"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
|
-
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
2
|
-
import { findAllMeasures } from "../../../../utils/measures/find.js";
|
|
3
1
|
const pivotRows = (spec, context)=>{
|
|
4
2
|
const { advancedVSeed } = context;
|
|
5
3
|
const dimensions = advancedVSeed.dimensionTree;
|
|
6
4
|
const { encoding } = advancedVSeed;
|
|
7
5
|
const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
|
|
8
|
-
const allMeasures = findAllMeasures(advancedVSeed.measureTree);
|
|
9
6
|
return {
|
|
10
7
|
...spec,
|
|
11
|
-
rows: rows.map((item)=>{
|
|
12
|
-
const res = {
|
|
8
|
+
rows: rows.map((item)=>({
|
|
13
9
|
dimensionKey: item.id,
|
|
14
10
|
title: item.alias || item.id,
|
|
15
11
|
width: 'auto'
|
|
16
|
-
}
|
|
17
|
-
if (item.id === MeasureId) res.headerFormat = (measureId)=>{
|
|
18
|
-
const measure = allMeasures.find((m)=>m.id === measureId);
|
|
19
|
-
return measure?.alias ?? measureId;
|
|
20
|
-
};
|
|
21
|
-
return res;
|
|
22
|
-
})
|
|
12
|
+
}))
|
|
23
13
|
};
|
|
24
14
|
};
|
|
25
15
|
export { pivotRows };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/rows/pivotRows.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts"],"sourcesContent":["import type { Dimensions, PivotTableSpecPipe } from 'src/types'\n\nexport const pivotRows: PivotTableSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensionTree as Dimensions\n const { encoding } = advancedVSeed\n const rows = dimensions.filter((item) => encoding.row?.includes(item.id))\n\n return {\n ...spec,\n rows: rows.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n }\n}\n"],"names":["pivotRows","spec","context","advancedVSeed","dimensions","encoding","rows","item"],"mappings":"AAEO,MAAMA,YAAgC,CAACC,MAAMC;IAClD,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAME,aAAaD,cAAc,aAAa;IAC9C,MAAM,EAAEE,QAAQ,EAAE,GAAGF;IACrB,MAAMG,OAAOF,WAAW,MAAM,CAAC,CAACG,OAASF,SAAS,GAAG,EAAE,SAASE,KAAK,EAAE;IAEvE,OAAO;QACL,GAAGN,IAAI;QACP,MAAMK,KAAK,GAAG,CAAC,CAACC,OACP;gBACL,cAAcA,KAAK,EAAE;gBACrB,OAAOA,KAAK,KAAK,IAAIA,KAAK,EAAE;gBAC5B,OAAO;YACT;IAEJ;AACF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const bottomFrozenStyle = (spec, context)=>{
|
|
2
|
+
const result = {
|
|
3
|
+
...spec
|
|
4
|
+
};
|
|
5
|
+
const { advancedVSeed } = context;
|
|
6
|
+
const { config, chartType } = advancedVSeed;
|
|
7
|
+
const themConfig = config?.[chartType];
|
|
8
|
+
if (!result.theme || !themConfig) return result;
|
|
9
|
+
const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)';
|
|
10
|
+
const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5';
|
|
11
|
+
const fontColor = themConfig.headerFontColor || '#1B1F23';
|
|
12
|
+
const fontSize = themConfig.headerFontSize || 12;
|
|
13
|
+
const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff';
|
|
14
|
+
const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff';
|
|
15
|
+
result.theme.bottomFrozenStyle = {
|
|
16
|
+
borderColor,
|
|
17
|
+
borderLineWidth: 1,
|
|
18
|
+
padding: [
|
|
19
|
+
8,
|
|
20
|
+
12,
|
|
21
|
+
8,
|
|
22
|
+
12
|
|
23
|
+
],
|
|
24
|
+
textAlign: 'center',
|
|
25
|
+
hover: {
|
|
26
|
+
cellBgColor: hoverCellBgColor,
|
|
27
|
+
inlineRowBgColor: hoverInlineColor,
|
|
28
|
+
inlineColumnBgColor: hoverInlineColor
|
|
29
|
+
},
|
|
30
|
+
frameStyle: {
|
|
31
|
+
borderColor,
|
|
32
|
+
borderLineWidth: [
|
|
33
|
+
0,
|
|
34
|
+
0,
|
|
35
|
+
1,
|
|
36
|
+
0
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
fontSize,
|
|
40
|
+
fontVariant: 'normal',
|
|
41
|
+
fontStyle: 'normal',
|
|
42
|
+
fontWeight: 'bold',
|
|
43
|
+
color: fontColor,
|
|
44
|
+
bgColor: backgroundColor,
|
|
45
|
+
lineHeight: 1.5 * fontSize
|
|
46
|
+
};
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
export { bottomFrozenStyle };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=bottomFrozenStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline/spec/table/pipes/theme/bottomFrozenStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/bottomFrozenStyle.ts"],"sourcesContent":["import type { PivotTableSpecPipe, TableConfig } from 'src/types'\nimport type { ThemeLike, WithTheme } from './type'\n\nexport const bottomFrozenStyle: PivotTableSpecPipe = (spec, context) => {\n const result = { ...spec } as Partial<typeof spec> & WithTheme\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n ;(result.theme as ThemeLike).bottomFrozenStyle = {\n borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'center',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor,\n borderLineWidth: [0, 0, 1, 0],\n },\n fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n"],"names":["bottomFrozenStyle","spec","context","result","advancedVSeed","config","chartType","themConfig","borderColor","backgroundColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor"],"mappings":"AAGO,MAAMA,oBAAwC,CAACC,MAAMC;IAC1D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAaF,QAAQ,CAACC,UAAU;IAEtC,IAAI,CAACH,OAAO,KAAK,IAAI,CAACI,YAAY,OAAOJ;IAEzC,MAAMK,cAAcD,WAAW,WAAW,IAAI;IAC9C,MAAME,kBAAkBF,WAAW,qBAAqB,IAAI;IAC5D,MAAMG,YAAYH,WAAW,eAAe,IAAI;IAChD,MAAMI,WAAWJ,WAAW,cAAc,IAAI;IAC9C,MAAMK,mBAAmBL,WAAW,0BAA0B,IAAI;IAClE,MAAMM,mBAAmBN,WAAW,gCAAgC,IAAI;IAEtEJ,OAAO,KAAK,CAAe,iBAAiB,GAAG;QAC/CK;QACA,iBAAiB;QACjB,SAAS;YAAC;YAAG;YAAI;YAAG;SAAG;QACvB,WAAW;QACX,OAAO;YACL,aAAaI;YACb,kBAAkBC;YAClB,qBAAqBA;QACvB;QACA,YAAY;YACVL;YACA,iBAAiB;gBAAC;gBAAG;gBAAG;gBAAG;aAAE;QAC/B;QACAG;QACA,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAOD;QACP,SAASD;QACT,YAAYE,AAAW,MAAXA;IACd;IAEA,OAAOR;AACT"}
|
|
@@ -2,6 +2,17 @@ export declare const getDefaultTableConfig: () => {
|
|
|
2
2
|
bodyFontSize: number;
|
|
3
3
|
bodyBackgroundColor: string;
|
|
4
4
|
headerFontSize: number;
|
|
5
|
+
barHeight: string;
|
|
6
|
+
barMarkInBar: boolean;
|
|
7
|
+
barMarkWidth: number;
|
|
8
|
+
barPadding: (string | number)[];
|
|
9
|
+
barRightToLeft: boolean;
|
|
10
|
+
barPositiveColor: string;
|
|
11
|
+
barNegativeColor: string;
|
|
12
|
+
backgroundColorScale: {
|
|
13
|
+
minColor: string;
|
|
14
|
+
maxColor: string;
|
|
15
|
+
};
|
|
5
16
|
};
|
|
6
17
|
export declare const getLightTableConfig: () => {
|
|
7
18
|
borderColor: string;
|
|
@@ -15,9 +26,21 @@ export declare const getLightTableConfig: () => {
|
|
|
15
26
|
selectedBorderColor: string;
|
|
16
27
|
selectedBackgroundColor: string;
|
|
17
28
|
backgroundColor: string;
|
|
29
|
+
barAxisColor: string;
|
|
18
30
|
bodyFontSize: number;
|
|
19
31
|
bodyBackgroundColor: string;
|
|
20
32
|
headerFontSize: number;
|
|
33
|
+
barHeight: string;
|
|
34
|
+
barMarkInBar: boolean;
|
|
35
|
+
barMarkWidth: number;
|
|
36
|
+
barPadding: (string | number)[];
|
|
37
|
+
barRightToLeft: boolean;
|
|
38
|
+
barPositiveColor: string;
|
|
39
|
+
barNegativeColor: string;
|
|
40
|
+
backgroundColorScale: {
|
|
41
|
+
minColor: string;
|
|
42
|
+
maxColor: string;
|
|
43
|
+
};
|
|
21
44
|
};
|
|
22
45
|
export declare const getDarkTableConfig: () => {
|
|
23
46
|
borderColor: string;
|
|
@@ -30,9 +53,21 @@ export declare const getDarkTableConfig: () => {
|
|
|
30
53
|
hoverHeaderInlineBackgroundColor: string;
|
|
31
54
|
selectedBorderColor: string;
|
|
32
55
|
selectedBackgroundColor: string;
|
|
56
|
+
barAxisColor: string;
|
|
33
57
|
bodyFontSize: number;
|
|
34
58
|
bodyBackgroundColor: string;
|
|
35
59
|
headerFontSize: number;
|
|
60
|
+
barHeight: string;
|
|
61
|
+
barMarkInBar: boolean;
|
|
62
|
+
barMarkWidth: number;
|
|
63
|
+
barPadding: (string | number)[];
|
|
64
|
+
barRightToLeft: boolean;
|
|
65
|
+
barPositiveColor: string;
|
|
66
|
+
barNegativeColor: string;
|
|
67
|
+
backgroundColorScale: {
|
|
68
|
+
minColor: string;
|
|
69
|
+
maxColor: string;
|
|
70
|
+
};
|
|
36
71
|
};
|
|
37
72
|
export declare const getLightPivotChartGridConfig: () => {
|
|
38
73
|
borderColor?: string | null | undefined;
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
const getDefaultTableConfig = ()=>({
|
|
2
2
|
bodyFontSize: 12,
|
|
3
3
|
bodyBackgroundColor: 'transparent',
|
|
4
|
-
headerFontSize: 12
|
|
4
|
+
headerFontSize: 12,
|
|
5
|
+
barHeight: '100%',
|
|
6
|
+
barMarkInBar: false,
|
|
7
|
+
barMarkWidth: 2,
|
|
8
|
+
barPadding: [
|
|
9
|
+
'25%',
|
|
10
|
+
10
|
|
11
|
+
],
|
|
12
|
+
barRightToLeft: false,
|
|
13
|
+
barPositiveColor: 'rgba(188,220,194, 0.5)',
|
|
14
|
+
barNegativeColor: 'rgba(241,188,191, 0.5)',
|
|
15
|
+
backgroundColorScale: {
|
|
16
|
+
minColor: '#D8CFFF',
|
|
17
|
+
maxColor: '#6B4FD7'
|
|
18
|
+
}
|
|
5
19
|
});
|
|
6
20
|
const getLightTableConfig = ()=>({
|
|
7
21
|
...getDefaultTableConfig(),
|
|
@@ -15,7 +29,8 @@ const getLightTableConfig = ()=>({
|
|
|
15
29
|
hoverHeaderInlineBackgroundColor: '#D9DDE455',
|
|
16
30
|
selectedBorderColor: '#4080ff',
|
|
17
31
|
selectedBackgroundColor: '#bedaff33',
|
|
18
|
-
backgroundColor: 'transparent'
|
|
32
|
+
backgroundColor: 'transparent',
|
|
33
|
+
barAxisColor: '#9EAFC6'
|
|
19
34
|
});
|
|
20
35
|
const getDarkTableConfig = ()=>({
|
|
21
36
|
...getDefaultTableConfig(),
|
|
@@ -28,7 +43,8 @@ const getDarkTableConfig = ()=>({
|
|
|
28
43
|
hoverHeaderBackgroundColor: '#6f7984cc',
|
|
29
44
|
hoverHeaderInlineBackgroundColor: '#4b4f54',
|
|
30
45
|
selectedBorderColor: '#3073f2',
|
|
31
|
-
selectedBackgroundColor: '#4284ff33'
|
|
46
|
+
selectedBackgroundColor: '#4284ff33',
|
|
47
|
+
barAxisColor: '#9EAFC6'
|
|
32
48
|
});
|
|
33
49
|
const pickPivotChartGridConfig = (tableConfig)=>({
|
|
34
50
|
outlineBorderLineWidth: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme/common/table.js","sources":["webpack://@visactor/vseed/./src/theme/common/table.ts"],"sourcesContent":["import type { PivotChartGridConfig } from 'src/types'\n\nexport const getDefaultTableConfig = () => ({\n bodyFontSize: 12,\n bodyBackgroundColor: 'transparent',\n headerFontSize: 12,\n})\n\nexport const getLightTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#e3e5eb',\n\n bodyFontColor: '#141414',\n\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n})\n\nexport const getDarkTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#4b4e53',\n\n bodyFontColor: '#fdfdfd',\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n})\n\nconst pickPivotChartGridConfig = (tableConfig: any) => {\n return {\n outlineBorderLineWidth: 0,\n frameCornerRadius: 0,\n borderColor: tableConfig.borderColor,\n bodyFontColor: tableConfig.bodyFontColor,\n headerFontColor: tableConfig.headerFontColor,\n\n headerBackgroundColor: 'transparent',\n hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,\n hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,\n\n titleFontColor: tableConfig.headerFontColor,\n titleFontSize: tableConfig.headerFontSize,\n titleFontWeight: 'bold',\n }\n}\n\nexport const getLightPivotChartGridConfig = () => {\n const res = pickPivotChartGridConfig(getLightTableConfig()) as PivotChartGridConfig\n\n res.hoverHeaderInlineBackgroundColor = '#D9DDE446'\n\n res.chartGridColor = '#F0F1F6'\n res.axisLabelColor = '#BCC1CB'\n\n return res\n}\n\nexport const getDarkPivotChartGridConfig = () => {\n const res = pickPivotChartGridConfig(getDarkTableConfig()) as PivotChartGridConfig\n\n res.hoverHeaderInlineBackgroundColor = '#4b4f5446'\n\n return res\n}\n"],"names":["getDefaultTableConfig","getLightTableConfig","getDarkTableConfig","pickPivotChartGridConfig","tableConfig","getLightPivotChartGridConfig","res","getDarkPivotChartGridConfig"],"mappings":"AAEO,MAAMA,wBAAwB,IAAO;QAC1C,cAAc;QACd,qBAAqB;QACrB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"theme/common/table.js","sources":["webpack://@visactor/vseed/./src/theme/common/table.ts"],"sourcesContent":["import type { PivotChartGridConfig } from 'src/types'\n\nexport const getDefaultTableConfig = () => ({\n bodyFontSize: 12,\n bodyBackgroundColor: 'transparent',\n headerFontSize: 12,\n barHeight: '100%',\n barMarkInBar: false,\n barMarkWidth: 2,\n barPadding: ['25%', 10],\n barRightToLeft: false,\n barPositiveColor: 'rgba(188,220,194, 0.5)',\n barNegativeColor: 'rgba(241,188,191, 0.5)',\n backgroundColorScale: {\n minColor: '#D8CFFF',\n maxColor: '#6B4FD7',\n },\n})\n\nexport const getLightTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#e3e5eb',\n\n bodyFontColor: '#141414',\n\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n\n barAxisColor: '#9EAFC6',\n})\n\nexport const getDarkTableConfig = () => ({\n ...getDefaultTableConfig(),\n borderColor: '#4b4e53',\n\n bodyFontColor: '#fdfdfd',\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n barAxisColor: '#9EAFC6',\n})\n\nconst pickPivotChartGridConfig = (tableConfig: any) => {\n return {\n outlineBorderLineWidth: 0,\n frameCornerRadius: 0,\n borderColor: tableConfig.borderColor,\n bodyFontColor: tableConfig.bodyFontColor,\n headerFontColor: tableConfig.headerFontColor,\n\n headerBackgroundColor: 'transparent',\n hoverHeaderBackgroundColor: tableConfig.hoverHeaderBackgroundColor,\n hoverHeaderInlineBackgroundColor: tableConfig.hoverHeaderInlineBackgroundColor,\n\n titleFontColor: tableConfig.headerFontColor,\n titleFontSize: tableConfig.headerFontSize,\n titleFontWeight: 'bold',\n }\n}\n\nexport const getLightPivotChartGridConfig = () => {\n const res = pickPivotChartGridConfig(getLightTableConfig()) as PivotChartGridConfig\n\n res.hoverHeaderInlineBackgroundColor = '#D9DDE446'\n\n res.chartGridColor = '#F0F1F6'\n res.axisLabelColor = '#BCC1CB'\n\n return res\n}\n\nexport const getDarkPivotChartGridConfig = () => {\n const res = pickPivotChartGridConfig(getDarkTableConfig()) as PivotChartGridConfig\n\n res.hoverHeaderInlineBackgroundColor = '#4b4f5446'\n\n return res\n}\n"],"names":["getDefaultTableConfig","getLightTableConfig","getDarkTableConfig","pickPivotChartGridConfig","tableConfig","getLightPivotChartGridConfig","res","getDarkPivotChartGridConfig"],"mappings":"AAEO,MAAMA,wBAAwB,IAAO;QAC1C,cAAc;QACd,qBAAqB;QACrB,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,cAAc;QACd,YAAY;YAAC;YAAO;SAAG;QACvB,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,sBAAsB;YACpB,UAAU;YACV,UAAU;QACZ;IACF;AAEO,MAAMC,sBAAsB,IAAO;QACxC,GAAGD,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QAEf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;QAEzB,iBAAiB;QAEjB,cAAc;IAChB;AAEO,MAAME,qBAAqB,IAAO;QACvC,GAAGF,uBAAuB;QAC1B,aAAa;QAEb,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QAEvB,0BAA0B;QAC1B,gCAAgC;QAChC,4BAA4B;QAC5B,kCAAkC;QAElC,qBAAqB;QACrB,yBAAyB;QACzB,cAAc;IAChB;AAEA,MAAMG,2BAA2B,CAACC,cACzB;QACL,wBAAwB;QACxB,mBAAmB;QACnB,aAAaA,YAAY,WAAW;QACpC,eAAeA,YAAY,aAAa;QACxC,iBAAiBA,YAAY,eAAe;QAE5C,uBAAuB;QACvB,4BAA4BA,YAAY,0BAA0B;QAClE,kCAAkCA,YAAY,gCAAgC;QAE9E,gBAAgBA,YAAY,eAAe;QAC3C,eAAeA,YAAY,cAAc;QACzC,iBAAiB;IACnB;AAGK,MAAMC,+BAA+B;IAC1C,MAAMC,MAAMH,yBAAyBF;IAErCK,IAAI,gCAAgC,GAAG;IAEvCA,IAAI,cAAc,GAAG;IACrBA,IAAI,cAAc,GAAG;IAErB,OAAOA;AACT;AAEO,MAAMC,8BAA8B;IACzC,MAAMD,MAAMH,yBAAyBD;IAErCI,IAAI,gCAAgC,GAAG;IAEvC,OAAOA;AACT"}
|