k-vtable 1.0.26 → 1.0.28
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/cjs/ListTable.d.ts +1 -0
- package/cjs/ListTable.js +17 -7
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +6 -6
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable-all.js +5 -5
- package/cjs/PivotTable-all.js.map +1 -1
- package/cjs/PivotTable.js +14 -8
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/axis/axis.d.ts +5 -3
- package/cjs/components/axis/axis.js +20 -14
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/components/axis/get-axis-attributes.d.ts +1 -0
- package/cjs/components/axis/get-axis-attributes.js +5 -2
- package/cjs/components/axis/get-axis-attributes.js.map +1 -1
- package/cjs/components/axis/get-axis-component-size.js +11 -5
- package/cjs/components/axis/get-axis-component-size.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +3 -3
- package/cjs/core/BaseTable.js +16 -13
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +3 -1
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/data/DataSource.d.ts +1 -1
- package/cjs/data/DataSource.js +2 -2
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset.js +13 -4
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/edit/edit-manager.d.ts +3 -2
- package/cjs/edit/edit-manager.js +36 -6
- package/cjs/edit/edit-manager.js.map +1 -1
- package/cjs/event/event.d.ts +9 -0
- package/cjs/event/event.js +161 -85
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/container-dom.js +15 -7
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
- package/cjs/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
- package/cjs/event/util.d.ts +1 -0
- package/cjs/event/util.js +13 -2
- package/cjs/event/util.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +40 -25
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +6 -2
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/pivot-header-layout.d.ts +4 -1
- package/cjs/layout/pivot-header-layout.js +55 -22
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/plugins/index.js +1 -1
- package/cjs/plugins/plugin-manager.d.ts +2 -0
- package/cjs/plugins/plugin-manager.js +13 -6
- package/cjs/plugins/plugin-manager.js.map +1 -1
- package/cjs/scenegraph/component/menu.d.ts +41 -0
- package/cjs/scenegraph/component/table-component.d.ts +2 -0
- package/cjs/scenegraph/component/table-component.js +39 -9
- package/cjs/scenegraph/component/table-component.js.map +1 -1
- package/cjs/scenegraph/debug-tool/debug-tool.js +1 -1
- package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
- package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
- package/cjs/scenegraph/graphic/active-cell-chart-list.js +152 -0
- package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
- package/cjs/scenegraph/graphic/chart.d.ts +9 -2
- package/cjs/scenegraph/graphic/chart.js +95 -15
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -3
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js +1 -1
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/frozen.js +4 -4
- package/cjs/scenegraph/layout/frozen.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +1 -1
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.js +9 -2
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/utils/text-measure.d.ts +38 -0
- package/cjs/state/state.js +15 -23
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/theme-define.js +22 -16
- package/cjs/themes/theme-define.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +5 -3
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/events.d.ts +8 -0
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/list-table/define/index.d.ts +9 -2
- package/cjs/ts-types/list-table/define/index.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +17 -0
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.d.ts +12 -4
- package/cjs/ts-types/theme.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +25073 -25724
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.d.ts +1 -0
- package/es/ListTable.js +18 -8
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +6 -6
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable-all.js +5 -3
- package/es/PivotTable-all.js.map +1 -1
- package/es/PivotTable.js +14 -8
- package/es/PivotTable.js.map +1 -1
- package/es/components/axis/axis.d.ts +5 -3
- package/es/components/axis/axis.js +19 -12
- package/es/components/axis/axis.js.map +1 -1
- package/es/components/axis/get-axis-attributes.d.ts +1 -0
- package/es/components/axis/get-axis-attributes.js +5 -2
- package/es/components/axis/get-axis-attributes.js.map +1 -1
- package/es/components/axis/get-axis-component-size.js +12 -4
- package/es/components/axis/get-axis-component-size.js.map +1 -1
- package/es/core/BaseTable.d.ts +3 -3
- package/es/core/BaseTable.js +16 -13
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
- package/es/core/TABLE_EVENT_TYPE.js +3 -1
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/data/DataSource.d.ts +1 -1
- package/es/data/DataSource.js +2 -2
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset.js +12 -4
- package/es/dataset/dataset.js.map +1 -1
- package/es/edit/edit-manager.d.ts +3 -2
- package/es/edit/edit-manager.js +36 -6
- package/es/edit/edit-manager.js.map +1 -1
- package/es/event/event.d.ts +9 -0
- package/es/event/event.js +161 -85
- package/es/event/event.js.map +1 -1
- package/es/event/listener/container-dom.js +15 -7
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
- package/es/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
- package/es/event/util.d.ts +1 -0
- package/es/event/util.js +11 -0
- package/es/event/util.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +39 -24
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +5 -3
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/pivot-header-layout.d.ts +4 -1
- package/es/layout/pivot-header-layout.js +53 -21
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/plugins/index.js +1 -1
- package/es/plugins/plugin-manager.d.ts +2 -0
- package/es/plugins/plugin-manager.js +13 -6
- package/es/plugins/plugin-manager.js.map +1 -1
- package/es/scenegraph/component/menu.d.ts +41 -0
- package/es/scenegraph/component/table-component.d.ts +2 -0
- package/es/scenegraph/component/table-component.js +39 -9
- package/es/scenegraph/component/table-component.js.map +1 -1
- package/es/scenegraph/debug-tool/debug-tool.js +1 -1
- package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
- package/es/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
- package/es/scenegraph/graphic/active-cell-chart-list.js +141 -0
- package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
- package/es/scenegraph/graphic/chart.d.ts +9 -2
- package/es/scenegraph/graphic/chart.js +95 -14
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
- package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +3 -3
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +3 -3
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/column-helper.js +1 -1
- package/es/scenegraph/group-creater/column-helper.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +1 -1
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/frozen.js +4 -4
- package/es/scenegraph/layout/frozen.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +1 -1
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.js +2 -2
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.js +9 -2
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/utils/text-measure.d.ts +38 -0
- package/es/state/state.js +15 -23
- package/es/state/state.js.map +1 -1
- package/es/themes/theme-define.js +18 -12
- package/es/themes/theme-define.js.map +1 -1
- package/es/ts-types/base-table.d.ts +5 -3
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/events.d.ts +8 -0
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/list-table/define/index.d.ts +9 -2
- package/es/ts-types/list-table/define/index.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +17 -0
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.d.ts +12 -4
- package/es/ts-types/theme.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +11 -11
- package/cjs/layout/pivot-layout.d.ts +0 -1
- package/cjs/layout/pivot-layout.js +0 -1
- package/cjs/layout/pivot-layout.js.map +0 -1
- package/es/layout/pivot-layout.d.ts +0 -1
- package/es/layout/pivot-layout.js +0 -1
- package/es/layout/pivot-layout.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":"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","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, isNumber, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\nimport { getAxisOption, getAxisRange, getAxisRangeAndTicks } from './get-axis-config';\nimport { getNewRangeToAlign } from './zero-align';\nimport type { IChartIndicator, IIndicator } from '../../ts-types';\nimport { cloneDeepSpec } from '@visactor/vutils-extension';\nimport { Factory } from '../../core/factory';\nimport type { GetAxisDomainRangeAndLabels } from './get-axis-domain';\nimport { DEFAULT_TEXT_FONT_SIZE } from '../../components/axis/get-axis-attributes';\nimport { convertDomainToTickData } from './../../vrender';\nimport { getTickModeFunction, getZeroAlignTickAlignTicks } from './tick-align';\n\nconst NO_AXISID_FRO_VTABLE = 'NO_AXISID_FRO_VTABLE';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: layout._table.getCellOriginValue(col, row) || '',\n value: layout._table.getCellValue(col, row) || '',\n rect: layout._table.getCellRangeRelativeRect(layout._table.getCellRange(col, row)),\n table: layout._table\n };\n return chartSpec(arg);\n }\n return chartSpec;\n}\nexport function isShareChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n return false;\n }\n return true;\n}\nexport function isNoChartDataRenderNothing(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const noDataRenderNothing = indicatorObj?.noDataRenderNothing;\n\n return noDataRenderNothing;\n}\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasCartesianChart(indicatorsDefine: (IIndicator | IChartIndicator | string)[]) {\n let isHasCartesianChart = false;\n for (let i = 0; i < indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function isCartesianChart(col: number, row: number, layout: PivotHeaderLayoutMap) {\n let isHasCartesianChart = true;\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type === 'pie' ||\n chartSpec.type === 'radar' ||\n chartSpec.type === 'gauge' ||\n chartSpec.type === 'wordCloud' ||\n chartSpec.type === 'funnel' ||\n chartSpec.type === 'rose' ||\n chartSpec.type === 'sunburst' ||\n chartSpec.type === 'treemap' ||\n chartSpec.type === 'sankey' ||\n chartSpec.type === 'circlePacking'\n ) {\n isHasCartesianChart = false;\n }\n } else {\n isHasCartesianChart = false;\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 整行或者整列去检查 */\nexport function isHasCartesianChartInline(\n col: number,\n row: number,\n checkDirection: 'col' | 'row',\n layout: PivotHeaderLayoutMap\n) {\n let isHasCartesianChart = false;\n if ((layout.indicatorsAsCol && checkDirection === 'row') || (!layout.indicatorsAsCol && checkDirection === 'col')) {\n for (let i = 0; i < layout.indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = layout.indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n } else {\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n }\n } else {\n isHasCartesianChart = false;\n }\n }\n return isHasCartesianChart;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (layout._table.isPivotChart()) {\n chartSpec = cloneDeepSpec(chartSpec);\n chartSpec.sortDataByAxis = true;\n if (isArray(chartSpec.series)) {\n chartSpec.series.forEach((serie: any) => {\n serie.sortDataByAxis = true;\n });\n }\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n chartSpec.axes = layout.getChartAxes(col, row);\n }\n chartSpec.padding = 0;\n chartSpec.dataZoom = []; // Do not support datazoom temply\n return chartSpec;\n }\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const axes: any[] = [];\n if (layout.indicatorsAsCol) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n // const colIndex = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption, chartType } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'bottom' : 'top',\n index === 0 ? 'top' : 'bottom',\n indicatorKeys,\n colPath,\n layout\n );\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // height: -1,\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index)\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row);\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] ||\n layout.dataset.collectedValues[rowDimensionKey] ||\n ([] as string[]);\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data as any)[rowPath ?? ''] as Set<string>;\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'left', layout);\n axes.push(\n // 左侧维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'left',\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n } else {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowPath = layout.getRowKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'left' : 'right',\n index === 0 ? 'right' : 'left',\n indicatorKeys,\n rowPath,\n layout\n );\n const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);\n\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n\n if (isNumber(axisOption?.min)) {\n (range as any).min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n let domain: Array<string> = [];\n if (chartType === 'heatmap') {\n //为heatmap时 需要获取维度轴的domain 因为有可能都是离散轴。这里的处理对应get-axis-config.ts中的getAxisConfigInPivotChart方法处理\n const rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row, 'yField');\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n domain = ((data as any)?.[rowPath ?? ''] as Array<string>) ?? [];\n }\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } },\n domain: axisOption?.type === 'linear' ? undefined : Array.from(domain)\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // width: -1,\n // grid: index === 0 ? undefined : { visible: false }\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index),\n visible: false // 轴刻度不显示\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount);\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] ||\n layout.dataset.collectedValues[columnDimensionKey] ||\n ([] as string[]);\n const colPath = layout.getColKeysPath(col, row);\n const domain: string[] | Set<string> = ((data as any)?.[colPath ?? ''] as Set<string>) ?? [];\n\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'bottom', layout);\n axes.push(\n // 底部维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n }\n return axes;\n}\n/**\n * 获取单元格对应spec的dataId。\n * 如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> => <dataId, series-chart的指标key用于过滤数据>\n * @param col\n * @param row\n * @param layout\n * @returns\n */\nexport function getChartDataId(\n col: number,\n row: number,\n layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap\n): string | Record<string, string> {\n const chartSpec = layout.getRawChartSpec(col, row);\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if (chartSpec?.series) {\n const dataIdfield: Record<string, string> = {};\n\n if (chartSpec.data?.id) {\n dataIdfield[chartSpec.data.id] = undefined;\n }\n chartSpec?.series.forEach((seriesSpec: any) => {\n if (!seriesSpec.data?.fromDataId) {\n if (!seriesSpec.data?.transforms) {\n const seriesField = seriesSpec.direction === 'horizontal' ? seriesSpec.xField : seriesSpec.yField;\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = seriesSpec.data?.id\n ? seriesField\n : undefined;\n } else {\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = undefined;\n }\n }\n });\n return dataIdfield;\n }\n return chartSpec.data.id;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasChart(layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap) {\n let isHasChart = false;\n for (let i = 0; i < layout.columnObjects.length; i++) {\n const columnObj = layout.columnObjects[i];\n if (columnObj.chartSpec) {\n isHasChart = true;\n break;\n }\n }\n return isHasChart;\n}\n\nfunction hasSameAxis(axisOption: any, axes: any[]) {\n if (axisOption && isArray(axisOption.seriesId) && axisOption.seriesId.length > 0) {\n // find same seriesId axes\n const sameSeriesIdAxes = (axes as any[]).filter(axis => {\n // same seriesId\n if (\n axis.orient === axisOption.orient &&\n axis.seriesId &&\n axis.seriesId.length === axisOption.seriesId.length &&\n axis.seriesId.every((id: string, index: number) => id === axisOption.seriesId[index])\n ) {\n return true;\n }\n return false;\n });\n\n if (sameSeriesIdAxes.length > 0) {\n // has same seriesId axes\n return true;\n }\n }\n return false;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":"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","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, isNumber, isValid, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\nimport { getAxisOption, getAxisRange, getAxisRangeAndTicks } from './get-axis-config';\nimport { getNewRangeToAlign } from './zero-align';\nimport type { IChartIndicator, IIndicator } from '../../ts-types';\nimport { cloneDeepSpec } from '@visactor/vutils-extension';\nimport { Factory } from '../../core/factory';\nimport type { GetAxisDomainRangeAndLabels } from './get-axis-domain';\nimport { DEFAULT_TEXT_FONT_SIZE } from '../../components/axis/get-axis-attributes';\nimport { convertDomainToTickData } from './../../vrender';\nimport { getTickModeFunction, getZeroAlignTickAlignTicks } from './tick-align';\n\nconst NO_AXISID_FRO_VTABLE = 'NO_AXISID_FRO_VTABLE';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: layout._table.getCellOriginValue(col, row) || '',\n value: layout._table.getCellValue(col, row) || '',\n rect: layout._table.getCellRangeRelativeRect(layout._table.getCellRange(col, row)),\n table: layout._table\n };\n return chartSpec(arg);\n }\n return chartSpec;\n}\nexport function isShareChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n return false;\n }\n return true;\n}\nexport function isNoChartDataRenderNothing(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const noDataRenderNothing = indicatorObj?.noDataRenderNothing;\n\n return noDataRenderNothing;\n}\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasCartesianChart(indicatorsDefine: (IIndicator | IChartIndicator | string)[]) {\n let isHasCartesianChart = false;\n for (let i = 0; i < indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function isCartesianChart(col: number, row: number, layout: PivotHeaderLayoutMap) {\n let isHasCartesianChart = true;\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type === 'pie' ||\n chartSpec.type === 'radar' ||\n chartSpec.type === 'gauge' ||\n chartSpec.type === 'wordCloud' ||\n chartSpec.type === 'funnel' ||\n chartSpec.type === 'rose' ||\n chartSpec.type === 'sunburst' ||\n chartSpec.type === 'treemap' ||\n chartSpec.type === 'sankey' ||\n chartSpec.type === 'circlePacking'\n ) {\n isHasCartesianChart = false;\n }\n } else {\n isHasCartesianChart = false;\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 整行或者整列去检查 */\nexport function isHasCartesianChartInline(\n col: number,\n row: number,\n checkDirection: 'col' | 'row',\n layout: PivotHeaderLayoutMap\n) {\n let isHasCartesianChart = false;\n if ((layout.indicatorsAsCol && checkDirection === 'row') || (!layout.indicatorsAsCol && checkDirection === 'col')) {\n for (let i = 0; i < layout.indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = layout.indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n } else {\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n }\n } else {\n isHasCartesianChart = false;\n }\n }\n return isHasCartesianChart;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (layout._table.isPivotChart()) {\n chartSpec = cloneDeepSpec(chartSpec);\n chartSpec.sortDataByAxis = true;\n if (isArray(chartSpec.series)) {\n chartSpec.series.forEach((serie: any) => {\n serie.sortDataByAxis = true;\n });\n }\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n chartSpec.axes = layout.getChartAxes(col, row);\n }\n chartSpec.padding = 0;\n chartSpec.dataZoom = []; // Do not support datazoom temply\n return chartSpec;\n }\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const axes: any[] = [];\n if (layout.indicatorsAsCol) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n // const colIndex = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption, chartType } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'bottom' : 'top',\n index === 0 ? 'top' : 'bottom',\n indicatorKeys,\n colPath,\n layout\n );\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // height: -1,\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index)\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row);\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] ||\n layout.dataset.collectedValues[rowDimensionKey] ||\n ([] as string[]);\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data as any)[rowPath ?? ''] as Set<string>;\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'left', layout);\n\n if (\n axisOption?.zero &&\n domain &&\n !Array.isArray(domain) &&\n isValid((domain as any).min) &&\n isValid((domain as any).max) &&\n (axisOption?.zero || (domain as any).min === (domain as any).max)\n ) {\n (domain as any).min = Math.min((domain as any).min, 0);\n (domain as any).max = Math.max((domain as any).max, 0);\n }\n axes.push(\n // 左侧维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'left',\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n } else {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowPath = layout.getRowKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'left' : 'right',\n index === 0 ? 'right' : 'left',\n indicatorKeys,\n rowPath,\n layout\n );\n const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);\n\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n\n if (isNumber(axisOption?.min)) {\n (range as any).min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n let domain: Array<string> = [];\n if (chartType === 'heatmap') {\n //为heatmap时 需要获取维度轴的domain 因为有可能都是离散轴。这里的处理对应get-axis-config.ts中的getAxisConfigInPivotChart方法处理\n const rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row, 'yField');\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n domain = ((data as any)?.[rowPath ?? ''] as Array<string>) ?? [];\n }\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } },\n domain: axisOption?.type === 'linear' ? undefined : Array.from(domain)\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // width: -1,\n // grid: index === 0 ? undefined : { visible: false }\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index),\n visible: false // 轴刻度不显示\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount);\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] ||\n layout.dataset.collectedValues[columnDimensionKey] ||\n ([] as string[]);\n const colPath = layout.getColKeysPath(col, row);\n const domain: string[] | Set<string> = ((data as any)?.[colPath ?? ''] as Set<string>) ?? [];\n\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'bottom', layout);\n if (\n axisOption?.zero &&\n domain &&\n !Array.isArray(domain) &&\n isValid((domain as any).min) &&\n isValid((domain as any).max) &&\n (axisOption?.zero || (domain as any).min === (domain as any).max)\n ) {\n (domain as any).min = Math.min((domain as any).min, 0);\n (domain as any).max = Math.max((domain as any).max, 0);\n }\n axes.push(\n // 底部维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n }\n return axes;\n}\n/**\n * 获取单元格对应spec的dataId。\n * 如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> => <dataId, series-chart的指标key用于过滤数据>\n * @param col\n * @param row\n * @param layout\n * @returns\n */\nexport function getChartDataId(\n col: number,\n row: number,\n layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap\n): string | Record<string, string> {\n const chartSpec = layout.getRawChartSpec(col, row);\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if (chartSpec?.series) {\n const dataIdfield: Record<string, string> = {};\n\n if (chartSpec.data?.id) {\n dataIdfield[chartSpec.data.id] = undefined;\n }\n chartSpec?.series.forEach((seriesSpec: any) => {\n if (!seriesSpec.data?.fromDataId) {\n if (!seriesSpec.data?.transforms) {\n const seriesField = seriesSpec.direction === 'horizontal' ? seriesSpec.xField : seriesSpec.yField;\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = seriesSpec.data?.id\n ? seriesField\n : undefined;\n } else {\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = undefined;\n }\n }\n });\n return dataIdfield;\n }\n return chartSpec.data.id;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasChart(layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap) {\n let isHasChart = false;\n for (let i = 0; i < layout.columnObjects.length; i++) {\n const columnObj = layout.columnObjects[i];\n if (columnObj.chartSpec) {\n isHasChart = true;\n break;\n }\n }\n return isHasChart;\n}\n\nfunction hasSameAxis(axisOption: any, axes: any[]) {\n if (axisOption && isArray(axisOption.seriesId) && axisOption.seriesId.length > 0) {\n // find same seriesId axes\n const sameSeriesIdAxes = (axes as any[]).filter(axis => {\n // same seriesId\n if (\n axis.orient === axisOption.orient &&\n axis.seriesId &&\n axis.seriesId.length === axisOption.seriesId.length &&\n axis.seriesId.every((id: string, index: number) => id === axisOption.seriesId[index])\n ) {\n return true;\n }\n return false;\n });\n\n if (sameSeriesIdAxes.length > 0) {\n // has same seriesId axes\n return true;\n }\n }\n return false;\n}\n"]}
|
|
@@ -66,7 +66,10 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
|
|
|
66
66
|
pagination: IPagination;
|
|
67
67
|
currentPageStartIndex: number;
|
|
68
68
|
currentPageEndIndex: number;
|
|
69
|
-
|
|
69
|
+
hasLeftIndicatorAxis: boolean;
|
|
70
|
+
hasRightIndicatorAxis: boolean;
|
|
71
|
+
hasTopIndicatorAxis: boolean;
|
|
72
|
+
hasBottomIndicatorAxis: boolean;
|
|
70
73
|
_chartItemSpanSize: number;
|
|
71
74
|
_chartPaddingInner: number;
|
|
72
75
|
_chartPaddingOuter: number;
|
|
@@ -21,10 +21,11 @@ class PivotHeaderLayoutMap {
|
|
|
21
21
|
this._showColumnHeader = !0, this._indicatorShowType = "column", this.rowHierarchyTextStartAlignment = !1,
|
|
22
22
|
this.rowDimensionKeys = [], this.colDimensionKeys = [], this.indicatorKeys = [],
|
|
23
23
|
this.indicatorDimensionKey = global_1.IndicatorDimensionKeyPlaceholder, this._rowHeaderExtensionTree = {},
|
|
24
|
-
this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [], this.
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
24
|
+
this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [], this.hasLeftIndicatorAxis = !1,
|
|
25
|
+
this.hasRightIndicatorAxis = !1, this.hasTopIndicatorAxis = !1, this.hasBottomIndicatorAxis = !1,
|
|
26
|
+
this.leftRowSeriesNumberColumnCount = 0, this.rightRowSeriesNumberColumnCount = 0,
|
|
27
|
+
this._useGetBodyCache = !1, this._getBodyCache = new Map, this._useHeaderPathCache = !1,
|
|
28
|
+
this._colHeaderPathCache = new Map, this._rowHeaderPathCache = new Map, this.matchDimensionPath = (paths, treeNodes, needLowestLevel, checkAxisNode = !1, pathIndex = 0) => {
|
|
28
29
|
if (pathIndex >= paths.length) return;
|
|
29
30
|
const currentPath = paths[pathIndex];
|
|
30
31
|
for (let j = 0; j < treeNodes.length; j++) {
|
|
@@ -41,7 +42,7 @@ class PivotHeaderLayoutMap {
|
|
|
41
42
|
if (!(null == children ? void 0 : children.length) || hasAxisNode) return dimension;
|
|
42
43
|
const findLeafNode = nodes => {
|
|
43
44
|
for (const node of nodes) {
|
|
44
|
-
const nodeChildren = node.children, nodeHasAxis = checkAxisNode && nodeChildren.some((row => "axis" === row.dimensionKey));
|
|
45
|
+
const nodeChildren = node.children, nodeHasAxis = checkAxisNode && nodeChildren && nodeChildren.some((row => "axis" === row.dimensionKey));
|
|
45
46
|
if (!(null == nodeChildren ? void 0 : nodeChildren.length) || nodeHasAxis) return node;
|
|
46
47
|
const leaf = findLeafNode(nodeChildren);
|
|
47
48
|
if (leaf) return leaf;
|
|
@@ -84,16 +85,47 @@ class PivotHeaderLayoutMap {
|
|
|
84
85
|
this.colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr(),
|
|
85
86
|
this.rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr(),
|
|
86
87
|
this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(this.rowDimensionKeys),
|
|
87
|
-
this.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
this._table.isPivotChart() && (this.hasLeftIndicatorAxis = !1, this.hasRightIndicatorAxis = !1,
|
|
89
|
+
this.hasTopIndicatorAxis = !1, this.hasBottomIndicatorAxis = !1, this.indicatorsDefine.forEach((indicatorObject => {
|
|
90
|
+
var _a, _b, _c, _d;
|
|
91
|
+
if (indicatorObject.hasLeftIndicatorAxis = !1, indicatorObject.hasRightIndicatorAxis = !1,
|
|
92
|
+
indicatorObject.hasTopIndicatorAxis = !1, indicatorObject.hasBottomIndicatorAxis = !1,
|
|
93
|
+
!(null == indicatorObject ? void 0 : indicatorObject.chartSpec)) return;
|
|
94
|
+
const axes = null !== (_b = null !== (_a = indicatorObject.chartSpec.axes) && void 0 !== _a ? _a : this._table.pivotChartAxes) && void 0 !== _b ? _b : [], visibleOrients = new Set;
|
|
95
|
+
(null != axes ? axes : []).forEach((axis => {
|
|
96
|
+
(null == axis ? void 0 : axis.orient) && !1 !== axis.visible && visibleOrients.add(axis.orient);
|
|
97
|
+
}));
|
|
98
|
+
const isMultiSeries = (null === (_d = null === (_c = indicatorObject.chartSpec) || void 0 === _c ? void 0 : _c.series) || void 0 === _d ? void 0 : _d.length) > 1;
|
|
99
|
+
if (this.indicatorsAsCol) {
|
|
100
|
+
let hasTop = visibleOrients.has("top"), hasBottom = visibleOrients.has("bottom");
|
|
101
|
+
if (axes.length || (hasBottom = !0), isMultiSeries) {
|
|
102
|
+
const topHiddenExplicitly = axes.some((axis => "top" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible));
|
|
103
|
+
if (!axes.length || !topHiddenExplicitly) {
|
|
104
|
+
hasTop = !0;
|
|
105
|
+
axes.some((axis => "bottom" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible)) || (hasBottom = !0);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
indicatorObject.hasTopIndicatorAxis = hasTop, indicatorObject.hasBottomIndicatorAxis = hasBottom,
|
|
109
|
+
indicatorObject.hasLeftIndicatorAxis = !1, indicatorObject.hasRightIndicatorAxis = !1;
|
|
110
|
+
} else {
|
|
111
|
+
let hasLeft = visibleOrients.has("left"), hasRight = visibleOrients.has("right");
|
|
112
|
+
if (axes.length || (hasLeft = !0), isMultiSeries) {
|
|
113
|
+
const rightHiddenExplicitly = axes.some((axis => "right" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible));
|
|
114
|
+
if (!axes.length || !rightHiddenExplicitly) {
|
|
115
|
+
hasRight = !0;
|
|
116
|
+
axes.some((axis => "left" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible)) || (hasLeft = !0);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
indicatorObject.hasLeftIndicatorAxis = hasLeft, indicatorObject.hasRightIndicatorAxis = hasRight,
|
|
120
|
+
indicatorObject.hasTopIndicatorAxis = !1, indicatorObject.hasBottomIndicatorAxis = !1;
|
|
92
121
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
122
|
+
this.hasLeftIndicatorAxis || (this.hasLeftIndicatorAxis = !!indicatorObject.hasLeftIndicatorAxis),
|
|
123
|
+
this.hasRightIndicatorAxis || (this.hasRightIndicatorAxis = !!indicatorObject.hasRightIndicatorAxis),
|
|
124
|
+
this.hasTopIndicatorAxis || (this.hasTopIndicatorAxis = !!indicatorObject.hasTopIndicatorAxis),
|
|
125
|
+
this.hasBottomIndicatorAxis || (this.hasBottomIndicatorAxis = !!indicatorObject.hasBottomIndicatorAxis);
|
|
126
|
+
}))), this.resetRowHeaderLevelCount(), this.resetColumnHeaderLevelCount(), this._generateColHeaderIds(),
|
|
127
|
+
this.colIndex = 0, this._generateRowHeaderIds(), this._rowHeaderCellFullPathIds_FULL = (0,
|
|
128
|
+
util_1.transpose)(this._rowHeaderCellFullPathIds_FULL), "tree" === table.options.rowHierarchyType && (null === (_r = this.extensionRows) || void 0 === _r ? void 0 : _r.length) >= 1 && (this.generateExtensionRowTree(),
|
|
97
129
|
this.extensionRows.forEach((extensionRow => {
|
|
98
130
|
const rowKeys = [];
|
|
99
131
|
extensionRow.rows.forEach((row => {
|
|
@@ -700,12 +732,12 @@ class PivotHeaderLayoutMap {
|
|
|
700
732
|
resetColumnHeaderLevelCount() {
|
|
701
733
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
702
734
|
if (this.showHeader && this.showColumnHeader) {
|
|
703
|
-
if (this._table.isPivotChart() && this.indicatorsAsCol && !(null === (_b = null === (_a = this.dataset) || void 0 === _a ? void 0 : _a.colKeys) || void 0 === _b ? void 0 : _b.length) && 0 === (null === (_d = null === (_c = this.columnDimensionTree) || void 0 === _c ? void 0 : _c.tree) || void 0 === _d ? void 0 : _d.level) && !this.
|
|
735
|
+
if (this._table.isPivotChart() && this.indicatorsAsCol && !(null === (_b = null === (_a = this.dataset) || void 0 === _a ? void 0 : _a.colKeys) || void 0 === _b ? void 0 : _b.length) && 0 === (null === (_d = null === (_c = this.columnDimensionTree) || void 0 === _c ? void 0 : _c.tree) || void 0 === _d ? void 0 : _d.level) && !this.hasTopIndicatorAxis) return void (this.columnHeaderLevelCount = 0);
|
|
704
736
|
let count = this._getColumnHeaderTreeExpandedMaxLevelCount();
|
|
705
737
|
return this.indicatorsAsCol && this.hideIndicatorName && this.colDimensionKeys[this.colDimensionKeys.length - 1] === this.indicatorDimensionKey && count--,
|
|
706
738
|
0 === count && this.dataset && !(null === (_e = this.dataset.customColTree) || void 0 === _e ? void 0 : _e.length) ? "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || !this.cornerSetting.forceShowHeader ? this._table.isPivotChart() || 0 !== (null !== (_g = null === (_f = this.dataset.records) || void 0 === _f ? void 0 : _f.length) && void 0 !== _g ? _g : 0) || "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_h = this.columnsDefine.length) && void 0 !== _h ? _h : 0) : count = 1 : !this.dataset || this._table.isPivotChart() || 0 !== (null !== (_k = null === (_j = this.dataset.records) || void 0 === _j ? void 0 : _j.length) && void 0 !== _k ? _k : 0) || this.dataset.customColTree || "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_l = this.columnsDefine.length) && void 0 !== _l ? _l : 0,
|
|
707
739
|
!this.hideIndicatorName && this.indicatorsAsCol && count++), this.columnHeaderTitle && (count += 1),
|
|
708
|
-
this._table.isPivotChart() && this.indicatorsAsCol && !this.
|
|
740
|
+
this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTopIndicatorAxis && (0,
|
|
709
741
|
get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine) && (count -= 1),
|
|
710
742
|
void (this.columnHeaderLevelCount = count);
|
|
711
743
|
}
|
|
@@ -721,7 +753,8 @@ class PivotHeaderLayoutMap {
|
|
|
721
753
|
const rowLevelCount = this._getRowHeaderTreeExpandedMaxLevelCount();
|
|
722
754
|
let count = rowLevelCount;
|
|
723
755
|
return 0 === count && this.dataset && !(null === (_c = this.dataset.customRowTree) || void 0 === _c ? void 0 : _c.length) ? "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || !this.cornerSetting.forceShowHeader ? this._table.isPivotChart() || 0 !== (null !== (_e = null === (_d = this.dataset.records) || void 0 === _d ? void 0 : _d.length) && void 0 !== _e ? _e : 0) || "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_f = this.rowsDefine.length) && void 0 !== _f ? _f : 0) : count = 1 : !this.dataset || this._table.isPivotChart() || 0 !== (null !== (_h = null === (_g = this.dataset.records) || void 0 === _g ? void 0 : _g.length) && void 0 !== _h ? _h : 0) || this.dataset.customRowTree || "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = this.rowsDefine.length,
|
|
724
|
-
this.hideIndicatorName || this.indicatorsAsCol || count++), !this.indicatorsAsCol && this.hideIndicatorName
|
|
756
|
+
this.hideIndicatorName || this.indicatorsAsCol || count++), !this.indicatorsAsCol && (this.hideIndicatorName || !this.hasLeftIndicatorAxis && this._table.isPivotChart() && (0,
|
|
757
|
+
get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine)) && this.rowDimensionKeys[this.rowDimensionKeys.length - 1] === this.indicatorDimensionKey && (count = rowLevelCount - 1),
|
|
725
758
|
this.rowHeaderTitle && (count += 1), void (this.rowHeaderLevelCount = count);
|
|
726
759
|
}
|
|
727
760
|
this.rowHeaderLevelCount = this.indicatorsAsCol || this.hideIndicatorName ? 0 : 1;
|
|
@@ -763,7 +796,7 @@ class PivotHeaderLayoutMap {
|
|
|
763
796
|
get rightFrozenColCount() {
|
|
764
797
|
if (!this._table.isPivotChart()) return this._table.internalProps.rightFrozenColCount ? this.colCount - this.rowHeaderLevelCount >= this._table.internalProps.rightFrozenColCount ? this._table.internalProps.rightFrozenColCount : this.colCount - this.rowHeaderLevelCount : 0;
|
|
765
798
|
const axisOption = this._table.pivotChartAxes.find((axisOption => "right" === axisOption.orient));
|
|
766
|
-
return !1 === (null == axisOption ? void 0 : axisOption.visible) || this.indicatorsAsCol ? 0 : this.
|
|
799
|
+
return !1 === (null == axisOption ? void 0 : axisOption.visible) || this.indicatorsAsCol ? 0 : this.hasRightIndicatorAxis ? 1 : 0;
|
|
767
800
|
}
|
|
768
801
|
get bodyRowCount() {
|
|
769
802
|
return this.rowCount - this.bottomFrozenRowCount - this.headerLevelCount;
|
|
@@ -1020,7 +1053,7 @@ class PivotHeaderLayoutMap {
|
|
|
1020
1053
|
if ("axis" !== rowHeader.dimensionKey) {
|
|
1021
1054
|
const rowHeaderPath = {};
|
|
1022
1055
|
rowHeaderPath.dimensionKey = rowHeader.dimensionKey, rowHeaderPath.indicatorKey = rowHeader.indicatorKey,
|
|
1023
|
-
rowHeaderPath.value = null !== (
|
|
1056
|
+
rowHeaderPath.value = null !== (_a = rowHeader.value) && void 0 !== _a ? _a : rowHeader.indicatorKey ? null !== (_c = null === (_b = this.getIndicatorInfoByIndicatorKey(rowHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "" : rowHeader.value,
|
|
1024
1057
|
rowHeaderPath.virtual = rowHeader.virtual, rowHeaderPath.role = rowHeader.role,
|
|
1025
1058
|
headerPaths.rowHeaderPaths.push(rowHeaderPath);
|
|
1026
1059
|
}
|
|
@@ -1546,7 +1579,7 @@ class PivotHeaderLayoutMap {
|
|
|
1546
1579
|
if (this.isBottomFrozenRow(col, row) && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "col", this) || this.isRightFrozenColumn(col, row) && (0,
|
|
1547
1580
|
get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
|
|
1548
1581
|
if (this.isRowHeader(col, row) && col === this.rowHeaderLevelCount - 1 && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
|
|
1549
|
-
if (this.
|
|
1582
|
+
if (this.hasTopIndicatorAxis && this.indicatorsAsCol && row === this.columnHeaderLevelCount - 1 && (0,
|
|
1550
1583
|
get_chart_spec_1.isHasCartesianChartInline)(col, row, "col", this)) return !0;
|
|
1551
1584
|
}
|
|
1552
1585
|
return !1;
|
|
@@ -1650,7 +1683,7 @@ class PivotHeaderLayoutMap {
|
|
|
1650
1683
|
}
|
|
1651
1684
|
} else {
|
|
1652
1685
|
const chartSpec = this.getRawChartSpec(_col, _row);
|
|
1653
|
-
if (chartSpec && (dimensionKey = "xField" === type ? "histogram" === chartSpec.type ? chartSpec.x2Field : null !== (_o = chartSpec.xField) && void 0 !== _o ? _o : null === (_q = null === (_p = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _p ? void 0 : _p[0]) || void 0 === _q ? void 0 : _q.xField : null !== (_r = chartSpec.yField) && void 0 !== _r ? _r : null === (_t = null === (_s = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _s ? void 0 : _s[0]) || void 0 === _t ? void 0 : _t.yField,
|
|
1686
|
+
if (chartSpec && (dimensionKey = "xField" === type ? "histogram" === chartSpec.type ? chartSpec.x2Field : null !== (_o = chartSpec.xField) && void 0 !== _o ? _o : null === (_q = null === (_p = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _p ? void 0 : _p[0]) || void 0 === _q ? void 0 : _q.xField : "histogram" === chartSpec.type ? chartSpec.y2Field : null !== (_r = chartSpec.yField) && void 0 !== _r ? _r : null === (_t = null === (_s = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _s ? void 0 : _s[0]) || void 0 === _t ? void 0 : _t.yField,
|
|
1654
1687
|
dimensionKey)) return dimensionKey;
|
|
1655
1688
|
for (let i = 0; i < this.indicatorsDefine.length; i++) {
|
|
1656
1689
|
const chartSpec = this.indicatorsDefine[i].chartSpec;
|
|
@@ -1769,7 +1802,7 @@ class PivotHeaderLayoutMap {
|
|
|
1769
1802
|
get topAxesCount() {
|
|
1770
1803
|
if (!this._table.isPivotChart()) return 0;
|
|
1771
1804
|
const axisOption = this._table.pivotChartAxes.find((axisOption => "top" === axisOption.orient));
|
|
1772
|
-
return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : this.indicatorsAsCol && this.
|
|
1805
|
+
return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : this.indicatorsAsCol && this.hasTopIndicatorAxis ? 1 : 0;
|
|
1773
1806
|
}
|
|
1774
1807
|
get rightAxesCount() {
|
|
1775
1808
|
return this.rightFrozenColCount;
|