@visactor/vtable 0.9.2 → 0.9.3-alpha.0
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 +2 -1
- package/cjs/ListTable.js +17 -13
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.d.ts +69 -0
- package/cjs/PivotChart.js +435 -0
- package/cjs/PivotChart.js.map +1 -0
- package/cjs/PivotTable.d.ts +2 -1
- package/cjs/PivotTable.js +18 -13
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/body-helper/style/MultilineTextStyle.js +2 -2
- package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -1
- package/cjs/body-helper/style/ProgressBarStyle.js +15 -15
- package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
- package/cjs/body-helper/style/Style.d.ts +0 -1
- package/cjs/body-helper/style/Style.js +25 -28
- package/cjs/body-helper/style/Style.js.map +1 -1
- package/cjs/chartModule.js +14 -0
- package/cjs/chartModule.js.map +1 -0
- package/cjs/components/axis/axis.d.ts +45 -0
- package/cjs/components/axis/axis.js +146 -0
- package/cjs/components/axis/axis.js.map +1 -0
- package/cjs/components/axis/band-scale.d.ts +18 -0
- package/cjs/components/axis/band-scale.js +54 -0
- package/cjs/components/axis/band-scale.js.map +1 -0
- package/cjs/components/axis/get-axis-attributes.d.ts +136 -0
- package/cjs/components/axis/get-axis-attributes.js +169 -0
- package/cjs/components/axis/get-axis-attributes.js.map +1 -0
- package/cjs/components/axis/label-overlap.d.ts +3 -0
- package/cjs/components/axis/label-overlap.js +46 -0
- package/cjs/components/axis/label-overlap.js.map +1 -0
- package/cjs/components/axis/linear-scale.d.ts +45 -0
- package/cjs/components/axis/linear-scale.js +120 -0
- package/cjs/components/axis/linear-scale.js.map +1 -0
- package/cjs/components/legend/get-legend-attributes.d.ts +5 -0
- package/cjs/components/legend/get-legend-attributes.js +90 -0
- package/cjs/components/legend/get-legend-attributes.js.map +1 -0
- package/cjs/components/legend/legend.d.ts +23 -0
- package/cjs/components/legend/legend.js +94 -0
- package/cjs/components/legend/legend.js.map +1 -0
- package/{es → cjs/components}/menu/dom/BaseMenu.d.ts +2 -2
- package/cjs/components/menu/dom/BaseMenu.js.map +1 -0
- package/cjs/components/menu/dom/Menu.js.map +1 -0
- package/cjs/{menu → components/menu}/dom/MenuHandler.d.ts +2 -2
- package/cjs/{menu → components/menu}/dom/MenuHandler.js +1 -1
- package/cjs/components/menu/dom/MenuHandler.js.map +1 -0
- package/cjs/{menu → components/menu}/dom/logic/MenuContainer.d.ts +2 -2
- package/cjs/{menu → components/menu}/dom/logic/MenuContainer.js +2 -2
- package/cjs/components/menu/dom/logic/MenuContainer.js.map +1 -0
- package/cjs/{menu → components/menu}/dom/logic/MenuElement.d.ts +2 -2
- package/cjs/{menu → components/menu}/dom/logic/MenuElement.js +4 -4
- package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -0
- package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -0
- package/cjs/components/title/title.d.ts +12 -0
- package/cjs/components/title/title.js +66 -0
- package/cjs/components/title/title.js.map +1 -0
- package/{es → cjs/components}/tooltip/BaseTooltip.d.ts +3 -3
- package/cjs/components/tooltip/BaseTooltip.js.map +1 -0
- package/cjs/components/tooltip/Tooltip.js.map +1 -0
- package/cjs/{tooltip → components/tooltip}/TooltipHandler.d.ts +4 -4
- package/cjs/{tooltip → components/tooltip}/TooltipHandler.js +1 -1
- package/cjs/components/tooltip/TooltipHandler.js.map +1 -0
- package/{es → cjs/components}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
- package/cjs/{tooltip → components/tooltip}/logic/BubbleTooltipElement.js +1 -1
- package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -0
- package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
- package/cjs/components/util/orient.d.ts +3 -0
- package/cjs/components/util/orient.js +14 -0
- package/cjs/components/util/orient.js.map +1 -0
- package/cjs/components/util/register.d.ts +3 -0
- package/cjs/components/util/register.js +15 -0
- package/cjs/components/util/register.js.map +1 -0
- package/cjs/components/util/tick-data/config.d.ts +1 -0
- package/cjs/components/util/tick-data/config.js +6 -0
- package/cjs/components/util/tick-data/config.js.map +1 -0
- package/cjs/components/util/tick-data/continuous.d.ts +2 -0
- package/cjs/components/util/tick-data/continuous.js +39 -0
- package/cjs/components/util/tick-data/continuous.js.map +1 -0
- package/cjs/components/util/tick-data/discrete/linear.d.ts +2 -0
- package/cjs/components/util/tick-data/discrete/linear.js +66 -0
- package/cjs/components/util/tick-data/discrete/linear.js.map +1 -0
- package/cjs/components/util/tick-data/discrete/polar-angle.d.ts +2 -0
- package/cjs/components/util/tick-data/discrete/polar-angle.js +46 -0
- package/cjs/components/util/tick-data/discrete/polar-angle.js.map +1 -0
- package/cjs/components/util/tick-data/index.d.ts +2 -0
- package/cjs/components/util/tick-data/index.js +17 -0
- package/cjs/components/util/tick-data/index.js.map +1 -0
- package/cjs/components/util/tick-data/util.d.ts +21 -0
- package/cjs/components/util/tick-data/util.js +115 -0
- package/cjs/components/util/tick-data/util.js.map +1 -0
- package/cjs/components/util/transform.d.ts +5 -0
- package/cjs/components/util/transform.js +45 -0
- package/cjs/components/util/transform.js.map +1 -0
- package/cjs/core/BaseTable.d.ts +18 -5
- package/cjs/core/BaseTable.js +115 -41
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +5 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +6 -1
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/core/style.js +1 -1
- package/cjs/core/style.js.map +1 -1
- package/cjs/core/tableHelper.js +1 -2
- package/cjs/data/CachedDataSource.js +2 -1
- package/cjs/data/DataSource.js +2 -2
- package/cjs/data/DataSource.js.map +1 -1
- package/cjs/dataset/dataset-pivot-table.d.ts +60 -0
- package/cjs/dataset/dataset-pivot-table.js +387 -0
- package/cjs/dataset/dataset-pivot-table.js.map +1 -0
- package/cjs/dataset/dataset.d.ts +14 -19
- package/cjs/dataset/dataset.js +183 -200
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/dataset/statistics-helper.d.ts +68 -0
- package/cjs/dataset/statistics-helper.js +173 -0
- package/cjs/dataset/statistics-helper.js.map +1 -0
- package/cjs/dataset/util/zero-align.d.ts +10 -0
- package/cjs/dataset/util/zero-align.js +119 -0
- package/cjs/dataset/util/zero-align.js.map +1 -0
- package/cjs/event/EventHandler.js.map +1 -1
- package/cjs/event/EventTarget.d.ts +5 -5
- package/cjs/event/EventTarget.js +2 -2
- package/cjs/event/EventTarget.js.map +1 -1
- package/cjs/event/VChartEventProxy.d.ts +1 -0
- package/cjs/event/VChartEventProxy.js +1 -0
- package/cjs/event/VChartEventProxy.js.map +1 -0
- package/cjs/event/event.js +7 -4
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/table-group.js +8 -6
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/pivot-chart/axis-click.d.ts +2 -0
- package/cjs/event/pivot-chart/axis-click.js +42 -0
- package/cjs/event/pivot-chart/axis-click.js.map +1 -0
- package/cjs/event/pivot-chart/axis-hover.d.ts +2 -0
- package/cjs/event/pivot-chart/axis-hover.js +41 -0
- package/cjs/event/pivot-chart/axis-hover.js.map +1 -0
- package/cjs/event/scroll.js +4 -3
- package/cjs/event/scroll.js.map +1 -1
- package/cjs/event/sparkline-event.js +1 -2
- package/cjs/event/sparkline-event.js.map +1 -1
- package/cjs/header-helper/header-helper.js +1 -1
- package/cjs/header-helper/header-helper.js.map +1 -1
- package/cjs/header-helper/style/MultilineTextHeaderStyle.js +2 -2
- package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
- package/cjs/header-helper/style/Style.d.ts +0 -1
- package/cjs/header-helper/style/Style.js +25 -28
- package/cjs/header-helper/style/Style.js.map +1 -1
- package/cjs/index.d.ts +4 -3
- package/cjs/index.js +11 -2
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.d.ts +2 -0
- package/cjs/layout/chart-helper/get-axis-config.js +118 -0
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -0
- package/cjs/layout/chart-helper/get-chart-spec.d.ts +7 -0
- package/cjs/layout/chart-helper/get-chart-spec.js +135 -0
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -0
- package/cjs/layout/index.js +2 -1
- package/cjs/layout/pivot-header-layout.d.ts +13 -5
- package/cjs/layout/pivot-header-layout.js +50 -14
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/pivot-layout.d.ts +54 -8
- package/cjs/layout/pivot-layout.js +399 -91
- package/cjs/layout/pivot-layout.js.map +1 -1
- package/cjs/layout/simple-header-layout.d.ts +10 -0
- package/cjs/layout/simple-header-layout.js +43 -2
- package/cjs/layout/simple-header-layout.js.map +1 -1
- package/cjs/plugins/{chartTypes.js → chartModules.js} +1 -1
- package/cjs/plugins/chartModules.js.map +1 -0
- package/cjs/register.d.ts +1 -1
- package/cjs/register.js +6 -6
- package/cjs/register.js.map +1 -1
- package/cjs/render/layout/text.d.ts +33 -4
- package/cjs/render/layout/text.js +9 -3
- package/cjs/render/layout/text.js.map +1 -1
- package/cjs/scenegraph/component/custom.js +17 -16
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/cjs/scenegraph/component/menu.d.ts +41 -0
- package/cjs/scenegraph/component/table-component.js +3 -3
- package/cjs/scenegraph/component/table-component.js.map +1 -1
- package/cjs/scenegraph/graphic/chart.d.ts +4 -1
- package/cjs/scenegraph/graphic/chart.js +29 -17
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +22 -3
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.d.ts +9 -9
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +48 -29
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.d.ts +3 -3
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.js +2 -2
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +3 -3
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/scenegraph/graphic/text.d.ts +15 -0
- package/cjs/scenegraph/group-creater/cell-helper.js +9 -3
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +6 -5
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/column.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +3 -0
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +71 -0
- package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -0
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +29 -35
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
- package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/cjs/scenegraph/layout/compute-col-width.js +23 -15
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
- package/cjs/scenegraph/layout/compute-row-height.js +20 -9
- package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
- package/cjs/scenegraph/layout/move-cell.js +1 -1
- package/cjs/scenegraph/layout/move-cell.js.map +1 -1
- package/cjs/scenegraph/layout/update-cell.js +3 -2
- package/cjs/scenegraph/layout/update-cell.js.map +1 -1
- package/cjs/scenegraph/layout/update-height.js +1 -1
- package/cjs/scenegraph/layout/update-height.js.map +1 -1
- package/cjs/scenegraph/layout/update-row.js +1 -1
- package/cjs/scenegraph/layout/update-row.js.map +1 -1
- package/cjs/scenegraph/layout/update-width.js +33 -3
- package/cjs/scenegraph/layout/update-width.js.map +1 -1
- package/cjs/scenegraph/refresh-node/update-chart.d.ts +3 -0
- package/cjs/scenegraph/refresh-node/update-chart.js +76 -7
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +8 -0
- package/cjs/scenegraph/scenegraph.js +115 -19
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/stick-text/index.js +10 -8
- package/cjs/scenegraph/stick-text/index.js.map +1 -1
- package/cjs/scenegraph/style/corner-cell.d.ts +3 -0
- package/cjs/scenegraph/style/corner-cell.js +29 -0
- package/cjs/scenegraph/style/corner-cell.js.map +1 -0
- package/cjs/scenegraph/style/frame-border.d.ts +1 -0
- package/cjs/scenegraph/style/frame-border.js +3 -7
- package/cjs/scenegraph/style/frame-border.js.map +1 -1
- package/cjs/scenegraph/utils/get-cell-merge.js +2 -1
- package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
- package/cjs/state/state.js +1 -1
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/DARK.js +1 -2
- package/cjs/themes/theme.d.ts +10 -0
- package/cjs/themes/theme.js +50 -4
- package/cjs/themes/theme.js.map +1 -1
- package/cjs/tools/LimitPromiseQueue.js +2 -1
- package/cjs/tools/calc.d.ts +3 -0
- package/cjs/tools/calc.js +11 -3
- package/cjs/tools/calc.js.map +1 -1
- package/cjs/tools/debounce.js +1 -1
- package/cjs/tools/diff-cell.js +2 -2
- package/cjs/tools/dom.js +1 -1
- package/cjs/tools/env.js +1 -1
- package/cjs/ts-types/base-table.d.ts +29 -12
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/column/style.d.ts +0 -1
- package/cjs/ts-types/column/style.js.map +1 -1
- package/cjs/ts-types/component/axis.d.ts +12 -0
- package/cjs/ts-types/component/axis.js +6 -0
- package/cjs/ts-types/component/axis.js.map +1 -0
- package/cjs/ts-types/component/legend.d.ts +5 -0
- package/cjs/ts-types/component/legend.js +6 -0
- package/cjs/ts-types/component/legend.js.map +1 -0
- package/cjs/ts-types/component/title.d.ts +47 -0
- package/cjs/ts-types/component/title.js +6 -0
- package/cjs/ts-types/component/title.js.map +1 -0
- package/cjs/ts-types/component/util.d.ts +1 -0
- package/cjs/ts-types/component/util.js +6 -0
- package/cjs/ts-types/component/util.js.map +1 -0
- package/cjs/ts-types/customElement.d.ts +2 -0
- package/cjs/ts-types/customElement.js.map +1 -1
- package/cjs/ts-types/events.d.ts +108 -83
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
- package/cjs/ts-types/list-table/define/chart-define.d.ts +1 -1
- package/cjs/ts-types/list-table/define/chart-define.js.map +1 -1
- package/cjs/ts-types/list-table/layout-map/api.d.ts +4 -2
- package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
- package/cjs/ts-types/new-data-set.d.ts +19 -5
- package/cjs/ts-types/new-data-set.js +2 -2
- package/cjs/ts-types/new-data-set.js.map +1 -1
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +4 -0
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +3 -1
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
- package/cjs/ts-types/pivot-table/corner.d.ts +3 -3
- package/cjs/ts-types/pivot-table/corner.js.map +1 -1
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/cjs/ts-types/pivot-table/indicator/chart-indicator.d.ts +1 -1
- package/cjs/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
- package/cjs/ts-types/pivot-table/indicator/index.d.ts +1 -0
- package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
- package/cjs/ts-types/pivot-table/title.d.ts +1 -1
- package/cjs/ts-types/pivot-table/title.js.map +1 -1
- package/cjs/ts-types/table-engine.d.ts +27 -3
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/cjs/ts-types/theme.d.ts +5 -0
- package/cjs/ts-types/theme.js.map +1 -1
- package/dist/vtable.js +37522 -24362
- package/dist/vtable.min.js +4 -2
- package/es/ListTable.d.ts +2 -1
- package/es/ListTable.js +17 -13
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.d.ts +69 -0
- package/es/PivotChart.js +445 -0
- package/es/PivotChart.js.map +1 -0
- package/es/PivotTable.d.ts +2 -1
- package/es/PivotTable.js +19 -14
- package/es/PivotTable.js.map +1 -1
- package/es/body-helper/style/MultilineTextStyle.js +2 -2
- package/es/body-helper/style/MultilineTextStyle.js.map +1 -1
- package/es/body-helper/style/ProgressBarStyle.js +15 -15
- package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
- package/es/body-helper/style/Style.d.ts +0 -1
- package/es/body-helper/style/Style.js +25 -28
- package/es/body-helper/style/Style.js.map +1 -1
- package/es/{chartType.js → chartModule.js} +2 -2
- package/es/chartModule.js.map +1 -0
- package/es/components/axis/axis.d.ts +45 -0
- package/es/components/axis/axis.js +155 -0
- package/es/components/axis/axis.js.map +1 -0
- package/es/components/axis/band-scale.d.ts +18 -0
- package/es/components/axis/band-scale.js +46 -0
- package/es/components/axis/band-scale.js.map +1 -0
- package/es/components/axis/get-axis-attributes.d.ts +136 -0
- package/es/components/axis/get-axis-attributes.js +166 -0
- package/es/components/axis/get-axis-attributes.js.map +1 -0
- package/es/components/axis/label-overlap.d.ts +3 -0
- package/es/components/axis/label-overlap.js +39 -0
- package/es/components/axis/label-overlap.js.map +1 -0
- package/es/components/axis/linear-scale.d.ts +45 -0
- package/es/components/axis/linear-scale.js +104 -0
- package/es/components/axis/linear-scale.js.map +1 -0
- package/es/components/legend/get-legend-attributes.d.ts +5 -0
- package/es/components/legend/get-legend-attributes.js +84 -0
- package/es/components/legend/get-legend-attributes.js.map +1 -0
- package/es/components/legend/legend.d.ts +23 -0
- package/es/components/legend/legend.js +93 -0
- package/es/components/legend/legend.js.map +1 -0
- package/{cjs → es/components}/menu/dom/BaseMenu.d.ts +2 -2
- package/es/components/menu/dom/BaseMenu.js.map +1 -0
- package/es/components/menu/dom/Menu.js.map +1 -0
- package/es/{menu → components/menu}/dom/MenuHandler.d.ts +2 -2
- package/es/{menu → components/menu}/dom/MenuHandler.js +2 -2
- package/es/components/menu/dom/MenuHandler.js.map +1 -0
- package/es/{menu → components/menu}/dom/logic/MenuContainer.d.ts +2 -2
- package/es/{menu → components/menu}/dom/logic/MenuContainer.js +4 -4
- package/es/components/menu/dom/logic/MenuContainer.js.map +1 -0
- package/es/{menu → components/menu}/dom/logic/MenuElement.d.ts +2 -2
- package/es/{menu → components/menu}/dom/logic/MenuElement.js +9 -9
- package/es/components/menu/dom/logic/MenuElement.js.map +1 -0
- package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -0
- package/es/components/title/title.d.ts +12 -0
- package/es/components/title/title.js +61 -0
- package/es/components/title/title.js.map +1 -0
- package/{cjs → es/components}/tooltip/BaseTooltip.d.ts +3 -3
- package/es/components/tooltip/BaseTooltip.js.map +1 -0
- package/es/components/tooltip/Tooltip.js.map +1 -0
- package/es/{tooltip → components/tooltip}/TooltipHandler.d.ts +4 -4
- package/es/{tooltip → components/tooltip}/TooltipHandler.js +4 -4
- package/es/components/tooltip/TooltipHandler.js.map +1 -0
- package/{cjs → es/components}/tooltip/logic/BubbleTooltipElement.d.ts +4 -4
- package/es/{tooltip → components/tooltip}/logic/BubbleTooltipElement.js +4 -4
- package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -0
- package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -0
- package/es/components/util/orient.d.ts +3 -0
- package/es/components/util/orient.js +8 -0
- package/es/components/util/orient.js.map +1 -0
- package/es/components/util/register.d.ts +3 -0
- package/es/components/util/register.js +8 -0
- package/es/components/util/register.js.map +1 -0
- package/es/components/util/tick-data/config.d.ts +1 -0
- package/es/components/util/tick-data/config.js +2 -0
- package/es/components/util/tick-data/config.js.map +1 -0
- package/es/components/util/tick-data/continuous.d.ts +2 -0
- package/es/components/util/tick-data/continuous.js +38 -0
- package/es/components/util/tick-data/continuous.js.map +1 -0
- package/es/components/util/tick-data/discrete/linear.d.ts +2 -0
- package/es/components/util/tick-data/discrete/linear.js +59 -0
- package/es/components/util/tick-data/discrete/linear.js.map +1 -0
- package/es/components/util/tick-data/discrete/polar-angle.d.ts +2 -0
- package/es/components/util/tick-data/discrete/polar-angle.js +39 -0
- package/es/components/util/tick-data/discrete/polar-angle.js.map +1 -0
- package/es/components/util/tick-data/index.d.ts +2 -0
- package/es/components/util/tick-data/index.js +19 -0
- package/es/components/util/tick-data/index.js.map +1 -0
- package/es/components/util/tick-data/util.d.ts +21 -0
- package/es/components/util/tick-data/util.js +104 -0
- package/es/components/util/tick-data/util.js.map +1 -0
- package/es/components/util/transform.d.ts +5 -0
- package/es/components/util/transform.js +34 -0
- package/es/components/util/transform.js.map +1 -0
- package/es/core/BaseTable.d.ts +18 -5
- package/es/core/BaseTable.js +119 -43
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +5 -0
- package/es/core/TABLE_EVENT_TYPE.js +6 -1
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
- package/es/core/style.js +1 -1
- package/es/core/style.js.map +1 -1
- package/es/core/tableHelper.js +1 -2
- package/es/data/CachedDataSource.js +2 -1
- package/es/data/DataSource.js +2 -2
- package/es/data/DataSource.js.map +1 -1
- package/es/dataset/dataset-pivot-table.d.ts +60 -0
- package/es/dataset/dataset-pivot-table.js +378 -0
- package/es/dataset/dataset-pivot-table.js.map +1 -0
- package/es/dataset/dataset.d.ts +14 -19
- package/es/dataset/dataset.js +175 -190
- package/es/dataset/dataset.js.map +1 -1
- package/es/dataset/statistics-helper.d.ts +68 -0
- package/es/dataset/statistics-helper.js +152 -0
- package/es/dataset/statistics-helper.js.map +1 -0
- package/es/dataset/util/zero-align.d.ts +10 -0
- package/es/dataset/util/zero-align.js +111 -0
- package/es/dataset/util/zero-align.js.map +1 -0
- package/es/event/EventHandler.js.map +1 -1
- package/es/event/EventTarget.d.ts +5 -5
- package/es/event/EventTarget.js +2 -2
- package/es/event/EventTarget.js.map +1 -1
- package/es/event/VChartEventProxy.d.ts +1 -0
- package/es/event/VChartEventProxy.js +1 -0
- package/es/event/VChartEventProxy.js.map +1 -0
- package/es/event/event.js +10 -3
- package/es/event/event.js.map +1 -1
- package/es/event/listener/table-group.js +8 -6
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/pivot-chart/axis-click.d.ts +2 -0
- package/es/event/pivot-chart/axis-click.js +36 -0
- package/es/event/pivot-chart/axis-click.js.map +1 -0
- package/es/event/pivot-chart/axis-hover.d.ts +2 -0
- package/es/event/pivot-chart/axis-hover.js +33 -0
- package/es/event/pivot-chart/axis-hover.js.map +1 -0
- package/es/event/scroll.js +4 -3
- package/es/event/scroll.js.map +1 -1
- package/es/event/sparkline-event.js +1 -2
- package/es/event/sparkline-event.js.map +1 -1
- package/es/header-helper/header-helper.js +1 -1
- package/es/header-helper/header-helper.js.map +1 -1
- package/es/header-helper/style/MultilineTextHeaderStyle.js +2 -2
- package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -1
- package/es/header-helper/style/Style.d.ts +0 -1
- package/es/header-helper/style/Style.js +25 -28
- package/es/header-helper/style/Style.js.map +1 -1
- package/es/index.d.ts +4 -3
- package/es/index.js +4 -2
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.d.ts +2 -0
- package/es/layout/chart-helper/get-axis-config.js +110 -0
- package/es/layout/chart-helper/get-axis-config.js.map +1 -0
- package/es/layout/chart-helper/get-chart-spec.d.ts +7 -0
- package/es/layout/chart-helper/get-chart-spec.js +126 -0
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -0
- package/es/layout/index.js +2 -1
- package/es/layout/pivot-header-layout.d.ts +13 -5
- package/es/layout/pivot-header-layout.js +50 -12
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/pivot-layout.d.ts +54 -8
- package/es/layout/pivot-layout.js +402 -89
- package/es/layout/pivot-layout.js.map +1 -1
- package/es/layout/simple-header-layout.d.ts +10 -0
- package/es/layout/simple-header-layout.js +44 -1
- package/es/layout/simple-header-layout.js.map +1 -1
- package/es/plugins/chartModules.js +2 -0
- package/es/plugins/chartModules.js.map +1 -0
- package/es/register.d.ts +1 -1
- package/es/register.js +3 -3
- package/es/register.js.map +1 -1
- package/es/render/layout/text.d.ts +33 -4
- package/es/render/layout/text.js +9 -3
- package/es/render/layout/text.js.map +1 -1
- package/es/scenegraph/component/custom.js +17 -16
- package/es/scenegraph/component/custom.js.map +1 -1
- package/es/scenegraph/component/menu.d.ts +41 -0
- package/es/scenegraph/component/table-component.js +3 -3
- package/es/scenegraph/component/table-component.js.map +1 -1
- package/es/scenegraph/graphic/chart.d.ts +4 -1
- package/es/scenegraph/graphic/chart.js +29 -15
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +22 -3
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/group-contribution-render.d.ts +9 -9
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +48 -29
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/image-contribution-render.d.ts +3 -3
- package/es/scenegraph/graphic/contributions/image-contribution-render.js +2 -2
- package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -1
- package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +3 -3
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js +2 -2
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
- package/es/scenegraph/graphic/text.d.ts +15 -0
- package/es/scenegraph/group-creater/cell-helper.js +10 -2
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +6 -5
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/column.js.map +1 -1
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.d.ts +3 -0
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +65 -0
- package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -0
- package/es/scenegraph/group-creater/progress/proxy.d.ts +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +27 -34
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
- package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
- package/es/scenegraph/layout/compute-col-width.js +23 -15
- package/es/scenegraph/layout/compute-col-width.js.map +1 -1
- package/es/scenegraph/layout/compute-row-height.js +20 -9
- package/es/scenegraph/layout/compute-row-height.js.map +1 -1
- package/es/scenegraph/layout/move-cell.js +1 -1
- package/es/scenegraph/layout/move-cell.js.map +1 -1
- package/es/scenegraph/layout/update-cell.js +3 -1
- package/es/scenegraph/layout/update-cell.js.map +1 -1
- package/es/scenegraph/layout/update-height.js +1 -1
- package/es/scenegraph/layout/update-height.js.map +1 -1
- package/es/scenegraph/layout/update-row.js +1 -1
- package/es/scenegraph/layout/update-row.js.map +1 -1
- package/es/scenegraph/layout/update-width.js +34 -2
- package/es/scenegraph/layout/update-width.js.map +1 -1
- package/es/scenegraph/refresh-node/update-chart.d.ts +3 -0
- package/es/scenegraph/refresh-node/update-chart.js +70 -4
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +8 -0
- package/es/scenegraph/scenegraph.js +117 -19
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/stick-text/index.js +10 -8
- package/es/scenegraph/stick-text/index.js.map +1 -1
- package/es/scenegraph/style/corner-cell.d.ts +3 -0
- package/es/scenegraph/style/corner-cell.js +25 -0
- package/es/scenegraph/style/corner-cell.js.map +1 -0
- package/es/scenegraph/style/frame-border.d.ts +1 -0
- package/es/scenegraph/style/frame-border.js +2 -6
- package/es/scenegraph/style/frame-border.js.map +1 -1
- package/es/scenegraph/utils/get-cell-merge.js +2 -1
- package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
- package/es/state/state.js +1 -1
- package/es/state/state.js.map +1 -1
- package/es/themes/DARK.js +1 -2
- package/es/themes/theme.d.ts +10 -0
- package/es/themes/theme.js +50 -4
- package/es/themes/theme.js.map +1 -1
- package/es/tools/LimitPromiseQueue.js +2 -1
- package/es/tools/calc.d.ts +3 -0
- package/es/tools/calc.js +10 -0
- package/es/tools/calc.js.map +1 -1
- package/es/tools/debounce.js +1 -1
- package/es/tools/diff-cell.js +1 -1
- package/es/tools/dom.js +1 -1
- package/es/tools/env.js +1 -1
- package/es/ts-types/base-table.d.ts +29 -12
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/column/style.d.ts +0 -1
- package/es/ts-types/column/style.js.map +1 -1
- package/es/ts-types/component/axis.d.ts +12 -0
- package/es/ts-types/component/axis.js +2 -0
- package/es/ts-types/component/axis.js.map +1 -0
- package/es/ts-types/component/legend.d.ts +5 -0
- package/es/ts-types/component/legend.js +2 -0
- package/es/ts-types/component/legend.js.map +1 -0
- package/es/ts-types/component/title.d.ts +47 -0
- package/es/ts-types/component/title.js +2 -0
- package/es/ts-types/component/title.js.map +1 -0
- package/es/ts-types/component/util.d.ts +1 -0
- package/es/ts-types/component/util.js +2 -0
- package/es/ts-types/component/util.js.map +1 -0
- package/es/ts-types/customElement.d.ts +2 -0
- package/es/ts-types/customElement.js.map +1 -1
- package/es/ts-types/events.d.ts +108 -83
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/list-table/define/basic-define.js.map +1 -1
- package/es/ts-types/list-table/define/chart-define.d.ts +1 -1
- package/es/ts-types/list-table/define/chart-define.js.map +1 -1
- package/es/ts-types/list-table/layout-map/api.d.ts +4 -2
- package/es/ts-types/list-table/layout-map/api.js.map +1 -1
- package/es/ts-types/new-data-set.d.ts +19 -5
- package/es/ts-types/new-data-set.js +2 -2
- package/es/ts-types/new-data-set.js.map +1 -1
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +4 -0
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +4 -0
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -1
- package/es/ts-types/pivot-table/corner.d.ts +3 -3
- package/es/ts-types/pivot-table/corner.js.map +1 -1
- package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -1
- package/es/ts-types/pivot-table/indicator/chart-indicator.d.ts +1 -1
- package/es/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -1
- package/es/ts-types/pivot-table/indicator/index.d.ts +1 -0
- package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
- package/es/ts-types/pivot-table/title.d.ts +1 -1
- package/es/ts-types/pivot-table/title.js.map +1 -1
- package/es/ts-types/table-engine.d.ts +27 -3
- package/es/ts-types/table-engine.js.map +1 -1
- package/es/ts-types/theme.d.ts +5 -0
- package/es/ts-types/theme.js.map +1 -1
- package/package.json +16 -10
- package/cjs/chartType.js +0 -14
- package/cjs/chartType.js.map +0 -1
- package/cjs/menu/dom/BaseMenu.js.map +0 -1
- package/cjs/menu/dom/Menu.js.map +0 -1
- package/cjs/menu/dom/MenuHandler.js.map +0 -1
- package/cjs/menu/dom/logic/MenuContainer.js.map +0 -1
- package/cjs/menu/dom/logic/MenuElement.js.map +0 -1
- package/cjs/menu/dom/logic/MenuElementStyle.js.map +0 -1
- package/cjs/plugins/chartTypes.js.map +0 -1
- package/cjs/scenegraph/layout/auto-width.d.ts +0 -2
- package/cjs/scenegraph/layout/auto-width.js +0 -85
- package/cjs/scenegraph/layout/auto-width.js.map +0 -1
- package/cjs/tooltip/BaseTooltip.js.map +0 -1
- package/cjs/tooltip/Tooltip.js.map +0 -1
- package/cjs/tooltip/TooltipHandler.js.map +0 -1
- package/cjs/tooltip/logic/BubbleTooltipElement.js.map +0 -1
- package/cjs/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
- package/es/chartType.js.map +0 -1
- package/es/menu/dom/BaseMenu.js.map +0 -1
- package/es/menu/dom/Menu.js.map +0 -1
- package/es/menu/dom/MenuHandler.js.map +0 -1
- package/es/menu/dom/logic/MenuContainer.js.map +0 -1
- package/es/menu/dom/logic/MenuElement.js.map +0 -1
- package/es/menu/dom/logic/MenuElementStyle.js.map +0 -1
- package/es/plugins/chartTypes.js +0 -2
- package/es/plugins/chartTypes.js.map +0 -1
- package/es/scenegraph/layout/auto-width.d.ts +0 -2
- package/es/scenegraph/layout/auto-width.js +0 -82
- package/es/scenegraph/layout/auto-width.js.map +0 -1
- package/es/tooltip/BaseTooltip.js.map +0 -1
- package/es/tooltip/Tooltip.js.map +0 -1
- package/es/tooltip/TooltipHandler.js.map +0 -1
- package/es/tooltip/logic/BubbleTooltipElement.js.map +0 -1
- package/es/tooltip/logic/BubbleTooltipElementStyle.js.map +0 -1
- /package/cjs/{chartType.d.ts → chartModule.d.ts} +0 -0
- /package/cjs/{menu → components/menu}/dom/BaseMenu.js +0 -0
- /package/cjs/{menu → components/menu}/dom/Menu.d.ts +0 -0
- /package/cjs/{menu → components/menu}/dom/Menu.js +0 -0
- /package/cjs/{menu → components/menu}/dom/logic/MenuElementStyle.d.ts +0 -0
- /package/cjs/{menu → components/menu}/dom/logic/MenuElementStyle.js +0 -0
- /package/cjs/{tooltip → components/tooltip}/BaseTooltip.js +0 -0
- /package/cjs/{tooltip → components/tooltip}/Tooltip.d.ts +0 -0
- /package/cjs/{tooltip → components/tooltip}/Tooltip.js +0 -0
- /package/cjs/{tooltip → components/tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
- /package/cjs/{tooltip → components/tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
- /package/cjs/plugins/{chartTypes.d.ts → chartModules.d.ts} +0 -0
- /package/es/{chartType.d.ts → chartModule.d.ts} +0 -0
- /package/es/{menu → components/menu}/dom/BaseMenu.js +0 -0
- /package/es/{menu → components/menu}/dom/Menu.d.ts +0 -0
- /package/es/{menu → components/menu}/dom/Menu.js +0 -0
- /package/es/{menu → components/menu}/dom/logic/MenuElementStyle.d.ts +0 -0
- /package/es/{menu → components/menu}/dom/logic/MenuElementStyle.js +0 -0
- /package/es/{tooltip → components/tooltip}/BaseTooltip.js +0 -0
- /package/es/{tooltip → components/tooltip}/Tooltip.d.ts +0 -0
- /package/es/{tooltip → components/tooltip}/Tooltip.js +0 -0
- /package/es/{tooltip → components/tooltip}/logic/BubbleTooltipElementStyle.d.ts +0 -0
- /package/es/{tooltip → components/tooltip}/logic/BubbleTooltipElementStyle.js +0 -0
- /package/es/plugins/{chartTypes.d.ts → chartModules.d.ts} +0 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.PivotChart = void 0;
|
|
6
|
+
|
|
7
|
+
const ts_types_1 = require("./ts-types"), ts_types_2 = require("./ts-types"), DataSource_1 = require("./data/DataSource"), pivot_layout_1 = require("./layout/pivot-layout"), PIVOT_TABLE_EVENT_TYPE_1 = require("./ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE"), helper_1 = require("./tools/helper"), dataset_1 = require("./dataset/dataset"), tableHelper_1 = require("./core/tableHelper"), BaseTable_1 = require("./core/BaseTable"), update_chart_1 = require("./scenegraph/refresh-node/update-chart"), vutils_1 = require("@visactor/vutils");
|
|
8
|
+
|
|
9
|
+
class PivotChart extends BaseTable_1.BaseTable {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
if (super(options), this._selectedDataItemsInChart = [], this._selectedDimensionInChart = [],
|
|
13
|
+
this._chartEventMap = {}, options.layout && Object.assign(options, options.layout),
|
|
14
|
+
this.setCustomStateNameToSpec(), this.internalProps.dataConfig = {
|
|
15
|
+
isPivotChart: !0
|
|
16
|
+
}, this.internalProps.enableDataAnalysis = !0, this._axes = (0, vutils_1.isArray)(options.axes) ? options.axes : [],
|
|
17
|
+
this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {
|
|
18
|
+
const rowKeys = options.rows.reduce(((keys, rowObj) => ("string" == typeof rowObj ? keys.push(rowObj) : keys.push(rowObj.dimensionKey),
|
|
19
|
+
keys)), []), columnKeys = options.columns.reduce(((keys, columnObj) => ("string" == typeof columnObj ? keys.push(columnObj) : keys.push(columnObj.dimensionKey),
|
|
20
|
+
keys)), []), indicatorKeys = null !== (_b = null === (_a = options.indicators) || void 0 === _a ? void 0 : _a.reduce(((keys, indicatorObj) => ("string" == typeof indicatorObj ? keys.push(indicatorObj) : keys.push(indicatorObj.indicatorKey),
|
|
21
|
+
keys)), [])) && void 0 !== _b ? _b : [];
|
|
22
|
+
this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys),
|
|
23
|
+
this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules(),
|
|
24
|
+
this.internalProps.dataConfig.dimensionSortArray = this._getDimensionSortArray(),
|
|
25
|
+
this.dataset = new dataset_1.Dataset(this.internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, options.records, options.columnTree, options.rowTree);
|
|
26
|
+
}
|
|
27
|
+
this.refreshHeader(), options.dataSource ? (0, tableHelper_1._setDataSource)(this, options.dataSource) : options.records ? this.setRecords(options.records, this.internalProps.sortState) : this.setRecords([]);
|
|
28
|
+
}
|
|
29
|
+
static get EVENT_TYPE() {
|
|
30
|
+
return PIVOT_TABLE_EVENT_TYPE_1.PIVOT_CHART_EVENT_TYPE;
|
|
31
|
+
}
|
|
32
|
+
get pivotChartAxes() {
|
|
33
|
+
return this._axes;
|
|
34
|
+
}
|
|
35
|
+
isListTable() {
|
|
36
|
+
return !1;
|
|
37
|
+
}
|
|
38
|
+
isPivotTable() {
|
|
39
|
+
return !0;
|
|
40
|
+
}
|
|
41
|
+
isPivotChart() {
|
|
42
|
+
return !0;
|
|
43
|
+
}
|
|
44
|
+
_canResizeColumn(col, row) {
|
|
45
|
+
const ifCan = super._canResizeColumn(col, row);
|
|
46
|
+
if (ifCan && !this.internalProps.layoutMap.indicatorsAsCol) {
|
|
47
|
+
const cellDefine = this.internalProps.layoutMap.getBody(col, this.columnHeaderLevelCount);
|
|
48
|
+
if (null == cellDefine ? void 0 : cellDefine.disableColumnResize) return !1;
|
|
49
|
+
}
|
|
50
|
+
return ifCan;
|
|
51
|
+
}
|
|
52
|
+
updateOption(options, accelerateFirstScreen = !1) {
|
|
53
|
+
var _a;
|
|
54
|
+
const internalProps = this.internalProps;
|
|
55
|
+
if (super.updateOption(options), this.setCustomStateNameToSpec(), internalProps.dataConfig = {},
|
|
56
|
+
this.internalProps.enableDataAnalysis = !0, this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {
|
|
57
|
+
const rowKeys = options.rows.reduce(((keys, rowObj) => ("string" == typeof rowObj ? keys.push(rowObj) : keys.push(rowObj.dimensionKey),
|
|
58
|
+
keys)), []), columnKeys = options.columns.reduce(((keys, columnObj) => ("string" == typeof columnObj ? keys.push(columnObj) : keys.push(columnObj.dimensionKey),
|
|
59
|
+
keys)), []), indicatorKeys = options.indicators.reduce(((keys, indicatorObj) => ("string" == typeof indicatorObj ? keys.push(indicatorObj) : keys.push(indicatorObj.indicatorKey),
|
|
60
|
+
keys)), []);
|
|
61
|
+
this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys),
|
|
62
|
+
this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules(),
|
|
63
|
+
this.dataset = new dataset_1.Dataset(this.internalProps.dataConfig, rowKeys, columnKeys, indicatorKeys, null !== (_a = options.records) && void 0 !== _a ? _a : this.internalProps.records, options.columnTree, options.rowTree);
|
|
64
|
+
}
|
|
65
|
+
return this.refreshHeader(), internalProps.disposables && (internalProps.disposables.forEach((disposable => {
|
|
66
|
+
var _a;
|
|
67
|
+
return null === (_a = null == disposable ? void 0 : disposable.dispose) || void 0 === _a ? void 0 : _a.call(disposable);
|
|
68
|
+
})), internalProps.disposables = null), this._updateSize(), options.dataSource ? (0,
|
|
69
|
+
tableHelper_1._setDataSource)(this, options.dataSource) : options.records ? this.setRecords(options.records, void 0) : (this._resetFrozenColCount(),
|
|
70
|
+
this.scenegraph.createSceneGraph(), this.invalidate()), new Promise((resolve => {
|
|
71
|
+
setTimeout(resolve, 0);
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
refreshHeader() {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
const internalProps = this.internalProps;
|
|
77
|
+
internalProps.headerEvents && internalProps.headerEvents.forEach((id => this.unlisten(id))),
|
|
78
|
+
this.internalProps.enableDataAnalysis && (internalProps.layoutMap = new pivot_layout_1.PivotLayoutMap(this, this.dataset));
|
|
79
|
+
for (let col = 0; col < internalProps.layoutMap.columnWidths.length; col++) {
|
|
80
|
+
const {width: width, minWidth: minWidth, maxWidth: maxWidth} = null !== (_b = null === (_a = internalProps.layoutMap.columnWidths) || void 0 === _a ? void 0 : _a[col]) && void 0 !== _b ? _b : {};
|
|
81
|
+
width && ("string" == typeof width && "auto" !== width || "number" == typeof width && width > 0) && this.setColWidth(col, width),
|
|
82
|
+
minWidth && ("number" == typeof minWidth && minWidth > 0 || "string" == typeof minWidth) && this.setMinColWidth(col, minWidth),
|
|
83
|
+
maxWidth && ("number" == typeof maxWidth && maxWidth > 0 || "string" == typeof maxWidth) && this.setMaxColWidth(col, maxWidth);
|
|
84
|
+
}
|
|
85
|
+
this.refreshRowColCount();
|
|
86
|
+
}
|
|
87
|
+
refreshRowColCount() {
|
|
88
|
+
var _a, _b, _c, _d;
|
|
89
|
+
const {layoutMap: layoutMap} = this.internalProps;
|
|
90
|
+
layoutMap && (this.colCount = null !== (_a = layoutMap.colCount) && void 0 !== _a ? _a : 0,
|
|
91
|
+
this.rowCount = null !== (_b = layoutMap.rowCount) && void 0 !== _b ? _b : 0, this.frozenColCount = layoutMap.rowHeaderLevelCount,
|
|
92
|
+
this.frozenRowCount = layoutMap.headerLevelCount, this.bottomFrozenRowCount = null !== (_c = null == layoutMap ? void 0 : layoutMap.bottomFrozenRowCount) && void 0 !== _c ? _c : 0,
|
|
93
|
+
this.rightFrozenColCount = null !== (_d = null == layoutMap ? void 0 : layoutMap.rightFrozenColCount) && void 0 !== _d ? _d : 0);
|
|
94
|
+
}
|
|
95
|
+
_getSortFuncFromHeaderOption(columns, field, fieldKey) {}
|
|
96
|
+
syncHierarchyState(sourceNode, targetNode) {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
sourceNode.value === targetNode.value && sourceNode.dimensionKey === targetNode.dimensionKey && (targetNode.hierarchyState = null !== (_a = targetNode.hierarchyState) && void 0 !== _a ? _a : (null == targetNode ? void 0 : targetNode.children) ? sourceNode.hierarchyState : void 0,
|
|
99
|
+
null === (_b = null == targetNode ? void 0 : targetNode.children) || void 0 === _b || _b.forEach(((targetChildNode, index) => {
|
|
100
|
+
var _a;
|
|
101
|
+
(null === (_a = null == sourceNode ? void 0 : sourceNode.children) || void 0 === _a ? void 0 : _a[index]) && targetChildNode && this.syncHierarchyState(sourceNode.children[index], targetChildNode);
|
|
102
|
+
})));
|
|
103
|
+
}
|
|
104
|
+
getRecordIndexByRow(row) {
|
|
105
|
+
const {layoutMap: layoutMap} = this.internalProps;
|
|
106
|
+
return layoutMap.getRecordIndexByRow(row);
|
|
107
|
+
}
|
|
108
|
+
getRecordIndexByCol(col) {
|
|
109
|
+
const {layoutMap: layoutMap} = this.internalProps;
|
|
110
|
+
return layoutMap.getRecordIndexByCol(col);
|
|
111
|
+
}
|
|
112
|
+
getFieldData(field, col, row) {
|
|
113
|
+
var _a;
|
|
114
|
+
if (null == field) return null;
|
|
115
|
+
const table = this;
|
|
116
|
+
if (table.internalProps.layoutMap.isHeader(col, row)) return null;
|
|
117
|
+
const rowIndex = this.getRecordIndexByRow(row), colIndex = this.getRecordIndexByCol(col), dataValue = null === (_a = table.dataSource) || void 0 === _a ? void 0 : _a.getField(rowIndex, colIndex);
|
|
118
|
+
if ("string" != typeof field) {
|
|
119
|
+
const cellHeaderPaths = table.internalProps.layoutMap.getCellHeaderPaths(col, row);
|
|
120
|
+
return (0, DataSource_1.getField)(Object.assign({
|
|
121
|
+
dataValue: dataValue
|
|
122
|
+
}, cellHeaderPaths), field, helper_1.emptyFn);
|
|
123
|
+
}
|
|
124
|
+
return dataValue;
|
|
125
|
+
}
|
|
126
|
+
getCellValue(col, row) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
if (this.internalProps.layoutMap.isHeader(col, row)) {
|
|
129
|
+
const {caption: caption, fieldFormat: fieldFormat} = this.internalProps.layoutMap.getHeader(col, row);
|
|
130
|
+
return "function" == typeof fieldFormat ? fieldFormat(caption) : caption;
|
|
131
|
+
}
|
|
132
|
+
if (this.dataset) {
|
|
133
|
+
const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [], aggregator = this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row));
|
|
134
|
+
return aggregator.value ? aggregator.value() : void 0;
|
|
135
|
+
}
|
|
136
|
+
const {field: field, fieldFormat: fieldFormat} = this.internalProps.layoutMap.getBody(col, row);
|
|
137
|
+
return this.getFieldData(fieldFormat || field, col, row);
|
|
138
|
+
}
|
|
139
|
+
getCellOriginValue(col, row) {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
const table = this;
|
|
142
|
+
if (table.internalProps.layoutMap.isHeader(col, row)) {
|
|
143
|
+
const {caption: caption} = table.internalProps.layoutMap.getHeader(col, row);
|
|
144
|
+
return "function" == typeof caption ? caption() : caption;
|
|
145
|
+
}
|
|
146
|
+
if (this.dataset) {
|
|
147
|
+
const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [], aggregator = this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row));
|
|
148
|
+
return aggregator.value ? aggregator.value() : void 0;
|
|
149
|
+
}
|
|
150
|
+
const {field: field} = table.internalProps.layoutMap.getBody(col, row);
|
|
151
|
+
return table.getFieldData(field, col, row);
|
|
152
|
+
}
|
|
153
|
+
getCellOriginRecord(col, row) {
|
|
154
|
+
var _a, _b;
|
|
155
|
+
if (!this.internalProps.layoutMap.isHeader(col, row) && this.dataset) {
|
|
156
|
+
const colKey = null !== (_a = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)]) && void 0 !== _a ? _a : [], rowKey = null !== (_b = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)]) && void 0 !== _b ? _b : [];
|
|
157
|
+
return this.dataset.getAggregator(rowKey[rowKey.length - 1], colKey[colKey.length - 1], this.internalProps.layoutMap.getIndicatorKey(col, row)).records;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
updateSortRules(sortRules) {
|
|
161
|
+
this.internalProps.dataConfig.sortRules = sortRules, this.dataset.updateSortRules(sortRules),
|
|
162
|
+
this.internalProps.layoutMap.updateDataset(this.dataset), this.invalidate();
|
|
163
|
+
}
|
|
164
|
+
updatePivotSortState(pivotSortStateConfig) {
|
|
165
|
+
for (let i = 0; i < pivotSortStateConfig.length; i++) {
|
|
166
|
+
const {dimensions: dimensions, order: order} = pivotSortStateConfig[i], cellAddress = this.internalProps.layoutMap.getPivotCellAdress(dimensions);
|
|
167
|
+
cellAddress && this.pivotSortState.push({
|
|
168
|
+
col: cellAddress.col,
|
|
169
|
+
row: cellAddress.row,
|
|
170
|
+
order: order
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
getPivotSortState(col, row) {
|
|
175
|
+
if (!this.pivotSortState) return;
|
|
176
|
+
const cellRange = this.getCellRange(col, row);
|
|
177
|
+
for (let i = 0; i < this.pivotSortState.length; i++) {
|
|
178
|
+
const {col: sortCol, row: sortRow, order: order} = this.pivotSortState[i];
|
|
179
|
+
if ((0, helper_1.cellInRange)(cellRange, sortCol, sortRow)) return order;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
moveHeaderPosition(source, target) {
|
|
183
|
+
var _a, _b, _c, _d, _e, _f;
|
|
184
|
+
const moveContext = this.internalProps.layoutMap.moveHeaderPosition(source, target);
|
|
185
|
+
if (moveContext) {
|
|
186
|
+
if ("column" === moveContext.moveType) {
|
|
187
|
+
if ((null === (_b = null === (_a = this.options.records) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.constructor) === Array) for (let row = 0; row < this.records.length; row++) {
|
|
188
|
+
const sourceColumns = this.records[row].splice(moveContext.sourceIndex - this.rowHeaderLevelCount, moveContext.moveSize);
|
|
189
|
+
sourceColumns.unshift(moveContext.targetIndex - this.rowHeaderLevelCount, 0), Array.prototype.splice.apply(this.records[row], sourceColumns);
|
|
190
|
+
}
|
|
191
|
+
this.colWidthsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);
|
|
192
|
+
for (let col = 0; col < this.internalProps.layoutMap.columnWidths.length; col++) {
|
|
193
|
+
const {minWidth: minWidth, maxWidth: maxWidth} = null !== (_d = null === (_c = this.internalProps.layoutMap.columnWidths) || void 0 === _c ? void 0 : _c[col]) && void 0 !== _d ? _d : {};
|
|
194
|
+
minWidth && ("number" == typeof minWidth && minWidth > 0 || "string" == typeof minWidth) && this.setMinColWidth(col, minWidth),
|
|
195
|
+
maxWidth && ("number" == typeof maxWidth && maxWidth > 0 || "string" == typeof maxWidth) && this.setMaxColWidth(col, maxWidth);
|
|
196
|
+
}
|
|
197
|
+
} else if ("row" === moveContext.moveType) {
|
|
198
|
+
if ((null === (_f = null === (_e = this.options.records) || void 0 === _e ? void 0 : _e[0]) || void 0 === _f ? void 0 : _f.constructor) === Array) {
|
|
199
|
+
const sourceRows = this.records.splice(moveContext.sourceIndex - this.columnHeaderLevelCount, moveContext.moveSize);
|
|
200
|
+
sourceRows.unshift(moveContext.targetIndex - this.columnHeaderLevelCount, 0), Array.prototype.splice.apply(this.records, sourceRows);
|
|
201
|
+
}
|
|
202
|
+
this.rowHeightsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);
|
|
203
|
+
}
|
|
204
|
+
return !0;
|
|
205
|
+
}
|
|
206
|
+
return !1;
|
|
207
|
+
}
|
|
208
|
+
toggleHierarchyState(col, row) {
|
|
209
|
+
const hierarchyState = this.getHierarchyState(col, row);
|
|
210
|
+
hierarchyState === ts_types_2.HierarchyState.expand ? this.fireListeners(PIVOT_TABLE_EVENT_TYPE_1.PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
|
|
211
|
+
col: col,
|
|
212
|
+
row: row,
|
|
213
|
+
hierarchyState: ts_types_2.HierarchyState.collapse
|
|
214
|
+
}) : hierarchyState === ts_types_2.HierarchyState.collapse && this.fireListeners(PIVOT_TABLE_EVENT_TYPE_1.PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {
|
|
215
|
+
col: col,
|
|
216
|
+
row: row,
|
|
217
|
+
hierarchyState: ts_types_2.HierarchyState.expand,
|
|
218
|
+
originData: this.getCellOriginRecord(col, row)
|
|
219
|
+
});
|
|
220
|
+
const result = this.internalProps.layoutMap.toggleHierarchyState(col, row);
|
|
221
|
+
this.refreshRowColCount(), this.clearCellStyleCache(), this.scenegraph.updateHierarchyIcon(col, row),
|
|
222
|
+
this.scenegraph.updateRow(result.removeCellPositions, result.addCellPositions);
|
|
223
|
+
}
|
|
224
|
+
getHeaderCellAddressByPath(dimensionPaths) {
|
|
225
|
+
return this.internalProps.layoutMap.getPivotCellAdress(dimensionPaths);
|
|
226
|
+
}
|
|
227
|
+
getCellAddressByHeaderPaths(dimensionPaths) {
|
|
228
|
+
return this.internalProps.layoutMap.getCellAdressByHeaderPath(dimensionPaths);
|
|
229
|
+
}
|
|
230
|
+
getHeaderPathByXY(coordinate) {
|
|
231
|
+
let cellAddr;
|
|
232
|
+
cellAddr = coordinate ? this.getCellAt(coordinate.x + this.getFrozenColsWidth() + this.scrollLeft + 1, coordinate.y + this.getFrozenRowsHeight() + this.scrollTop + 1) : this.getCellAt(this.getFrozenColsWidth() + this.scrollLeft + 1, this.getFrozenRowsHeight() + this.scrollTop + 1);
|
|
233
|
+
return this.internalProps.layoutMap.getCellHeaderPaths(cellAddr.col, cellAddr.row);
|
|
234
|
+
}
|
|
235
|
+
getHierarchyState(col, row) {
|
|
236
|
+
var _a;
|
|
237
|
+
return null === (_a = this._getHeaderLayoutMap(col, row)) || void 0 === _a ? void 0 : _a.hierarchyState;
|
|
238
|
+
}
|
|
239
|
+
hasHierarchyTreeHeader() {
|
|
240
|
+
return "tree" === this.internalProps.layoutMap.rowHierarchyType;
|
|
241
|
+
}
|
|
242
|
+
getMenuInfo(col, row, type) {
|
|
243
|
+
const dimensionInfos = this.internalProps.layoutMap.getPivotDimensionInfo(col, row);
|
|
244
|
+
return {
|
|
245
|
+
dimensionKey: dimensionInfos[dimensionInfos.length - 1].dimensionKey,
|
|
246
|
+
value: this.getCellValue(col, row),
|
|
247
|
+
cellType: this.getCellType(col, row),
|
|
248
|
+
isPivotCorner: this.isCornerHeader(col, row)
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
_generateCollectValuesConfig(columnKeys, rowKeys) {
|
|
252
|
+
var _a, _b, _c, _d;
|
|
253
|
+
const option = this.options, collectValuesBy = {};
|
|
254
|
+
for (let i = 0, len = option.indicators.length; i < len; i++) if ("string" != typeof option.indicators[i] && option.indicators[i].chartSpec) if (!1 === option.indicatorsAsCol) {
|
|
255
|
+
const indicatorDefine = option.indicators[i];
|
|
256
|
+
if (collectValuesBy[indicatorDefine.indicatorKey] = {
|
|
257
|
+
by: rowKeys,
|
|
258
|
+
range: !0,
|
|
259
|
+
sumBy: !1 !== (null === (_a = indicatorDefine.chartSpec) || void 0 === _a ? void 0 : _a.stack) && columnKeys.concat(null === (_b = indicatorDefine.chartSpec) || void 0 === _b ? void 0 : _b.xField)
|
|
260
|
+
}, indicatorDefine.chartSpec.series) indicatorDefine.chartSpec.series.forEach((chartSeries => {
|
|
261
|
+
const xField = "string" == typeof chartSeries.xField ? chartSeries.xField : chartSeries.xField[0];
|
|
262
|
+
collectValuesBy[xField] = {
|
|
263
|
+
by: columnKeys,
|
|
264
|
+
type: "horizontal" !== chartSeries.direction ? "xField" : void 0,
|
|
265
|
+
range: "horizontal" === chartSeries.direction
|
|
266
|
+
};
|
|
267
|
+
const yField = chartSeries.yField;
|
|
268
|
+
collectValuesBy[yField] = {
|
|
269
|
+
by: rowKeys,
|
|
270
|
+
range: "horizontal" !== chartSeries.direction,
|
|
271
|
+
sumBy: !1 !== chartSeries.stack && columnKeys.concat(xField)
|
|
272
|
+
};
|
|
273
|
+
})); else {
|
|
274
|
+
const xField = "string" == typeof indicatorDefine.chartSpec.xField ? indicatorDefine.chartSpec.xField : indicatorDefine.chartSpec.xField[0];
|
|
275
|
+
collectValuesBy[xField] = {
|
|
276
|
+
by: columnKeys,
|
|
277
|
+
type: "horizontal" !== indicatorDefine.chartSpec.direction ? "xField" : void 0,
|
|
278
|
+
range: "horizontal" === indicatorDefine.chartSpec.direction
|
|
279
|
+
};
|
|
280
|
+
const yField = indicatorDefine.chartSpec.yField;
|
|
281
|
+
collectValuesBy[yField] = {
|
|
282
|
+
by: rowKeys,
|
|
283
|
+
range: "horizontal" !== option.indicators[i].chartSpec.direction,
|
|
284
|
+
sumBy: !1 !== indicatorDefine.chartSpec.stack && columnKeys.concat(xField)
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
} else {
|
|
288
|
+
const indicatorDefine = option.indicators[i];
|
|
289
|
+
if (collectValuesBy[indicatorDefine.indicatorKey] = {
|
|
290
|
+
by: columnKeys,
|
|
291
|
+
range: !0,
|
|
292
|
+
sumBy: !1 !== (null === (_c = indicatorDefine.chartSpec) || void 0 === _c ? void 0 : _c.stack) && rowKeys.concat(null === (_d = indicatorDefine.chartSpec) || void 0 === _d ? void 0 : _d.yField)
|
|
293
|
+
}, indicatorDefine.chartSpec.series) indicatorDefine.chartSpec.series.forEach((chartSeries => {
|
|
294
|
+
const yField = "string" == typeof chartSeries.yField ? chartSeries.yField : chartSeries.yField[0];
|
|
295
|
+
collectValuesBy[yField] = {
|
|
296
|
+
by: rowKeys,
|
|
297
|
+
type: "horizontal" === chartSeries.direction ? "yField" : void 0,
|
|
298
|
+
range: "horizontal" !== chartSeries.direction
|
|
299
|
+
};
|
|
300
|
+
const xField = chartSeries.xField;
|
|
301
|
+
collectValuesBy[xField] = {
|
|
302
|
+
by: columnKeys,
|
|
303
|
+
range: "horizontal" === chartSeries.direction,
|
|
304
|
+
sumBy: !1 !== chartSeries.stack && rowKeys.concat(yField)
|
|
305
|
+
};
|
|
306
|
+
})); else {
|
|
307
|
+
const yField = "string" == typeof indicatorDefine.chartSpec.yField ? indicatorDefine.chartSpec.yField : indicatorDefine.chartSpec.yField[0];
|
|
308
|
+
collectValuesBy[yField] = {
|
|
309
|
+
by: rowKeys,
|
|
310
|
+
type: "horizontal" === indicatorDefine.chartSpec.direction ? "yField" : void 0,
|
|
311
|
+
range: "horizontal" !== indicatorDefine.chartSpec.direction
|
|
312
|
+
};
|
|
313
|
+
const xField = indicatorDefine.chartSpec.xField;
|
|
314
|
+
collectValuesBy[xField] = {
|
|
315
|
+
by: columnKeys,
|
|
316
|
+
range: "horizontal" === option.indicators[i].chartSpec.direction,
|
|
317
|
+
sumBy: !1 !== indicatorDefine.chartSpec.stack && rowKeys.concat(yField)
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return collectValuesBy;
|
|
322
|
+
}
|
|
323
|
+
_generateAggregationRules() {
|
|
324
|
+
const aggregationRules = [];
|
|
325
|
+
return this.options.indicators.forEach((indicator => {
|
|
326
|
+
var _a, _b;
|
|
327
|
+
if ("string" == typeof indicator) aggregationRules.push({
|
|
328
|
+
indicatorKey: indicator,
|
|
329
|
+
field: indicator,
|
|
330
|
+
aggregationType: ts_types_1.AggregationType.RECORD
|
|
331
|
+
}); else if (null === (_a = indicator.chartSpec) || void 0 === _a ? void 0 : _a.series) {
|
|
332
|
+
const fields = [];
|
|
333
|
+
null === (_b = indicator.chartSpec) || void 0 === _b || _b.series.forEach((seriesSpec => {
|
|
334
|
+
const seriesField = !1 === this.options.indicatorsAsCol ? seriesSpec.yField : seriesSpec.xField;
|
|
335
|
+
-1 === fields.indexOf(seriesField) && fields.push(seriesField);
|
|
336
|
+
})), aggregationRules.push({
|
|
337
|
+
indicatorKey: indicator.indicatorKey,
|
|
338
|
+
field: fields,
|
|
339
|
+
aggregationType: ts_types_1.AggregationType.RECORD
|
|
340
|
+
});
|
|
341
|
+
} else aggregationRules.push({
|
|
342
|
+
indicatorKey: indicator.indicatorKey,
|
|
343
|
+
field: indicator.indicatorKey,
|
|
344
|
+
aggregationType: ts_types_1.AggregationType.RECORD
|
|
345
|
+
});
|
|
346
|
+
})), aggregationRules;
|
|
347
|
+
}
|
|
348
|
+
setCustomStateNameToSpec() {
|
|
349
|
+
const setCustomStateName = spec => {
|
|
350
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
351
|
+
(null === (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.state) || void 0 === _b ? void 0 : _b.selected) && (spec.bar.state.vtable_selected = spec.bar.state.selected,
|
|
352
|
+
spec.bar.state.vtable_selected_reverse = spec.bar.state.selected_reverse, delete spec.bar.state.selected,
|
|
353
|
+
delete spec.bar.state.selected_reverse), (null === (_d = null === (_c = spec.point) || void 0 === _c ? void 0 : _c.state) || void 0 === _d ? void 0 : _d.selected) && (spec.point.state.vtable_selected = spec.point.state.selected,
|
|
354
|
+
spec.point.state.vtable_selected_reverse = spec.point.state.selected_reverse, delete spec.point.state.selected,
|
|
355
|
+
delete spec.point.state.selected_reverse), (null === (_f = null === (_e = spec.line) || void 0 === _e ? void 0 : _e.state) || void 0 === _f ? void 0 : _f.selected) && (spec.line.state.vtable_selected = spec.line.state.selected,
|
|
356
|
+
spec.line.state.vtable_selected_reverse = spec.line.state.selected_reverse, delete spec.line.state.selected,
|
|
357
|
+
delete spec.line.state.selected_reverse), (null === (_h = null === (_g = spec.area) || void 0 === _g ? void 0 : _g.state) || void 0 === _h ? void 0 : _h.selected) && (spec.area.state.vtable_selected = spec.area.state.selected,
|
|
358
|
+
spec.area.state.vtable_selected_reverse = spec.area.state.selected_reverse, delete spec.area.state.selected,
|
|
359
|
+
delete spec.area.state.selected_reverse);
|
|
360
|
+
};
|
|
361
|
+
this.options.indicators.forEach((indicator => {
|
|
362
|
+
if (indicator.chartSpec) {
|
|
363
|
+
const spec = indicator.chartSpec;
|
|
364
|
+
spec.series ? spec.series.forEach((series => {
|
|
365
|
+
setCustomStateName(series);
|
|
366
|
+
})) : setCustomStateName(spec);
|
|
367
|
+
}
|
|
368
|
+
}));
|
|
369
|
+
}
|
|
370
|
+
_getActiveChartInstance() {
|
|
371
|
+
var _a, _b, _c, _d, _e, _f;
|
|
372
|
+
const cellGroup = this.scenegraph.getCell(null === (_b = null === (_a = this.stateManeger.hover) || void 0 === _a ? void 0 : _a.cellPos) || void 0 === _b ? void 0 : _b.col, null === (_d = null === (_c = this.stateManeger.hover) || void 0 === _c ? void 0 : _c.cellPos) || void 0 === _d ? void 0 : _d.row);
|
|
373
|
+
return "chart" === (null === (_f = null === (_e = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _e ? void 0 : _e[0]) || void 0 === _f ? void 0 : _f.type) ? cellGroup.getChildren()[0].activeChartInstance : null;
|
|
374
|
+
}
|
|
375
|
+
listenChart(type, listener) {
|
|
376
|
+
this._chartEventMap[type] = listener;
|
|
377
|
+
}
|
|
378
|
+
unlistenChart(type) {
|
|
379
|
+
delete this._chartEventMap[type];
|
|
380
|
+
}
|
|
381
|
+
_bindChartEvent(activeChartInstance) {
|
|
382
|
+
if (activeChartInstance) for (const key in this._chartEventMap) activeChartInstance.on(key, this._chartEventMap[key]);
|
|
383
|
+
}
|
|
384
|
+
updateFilterRules(filterRules) {
|
|
385
|
+
this.internalProps.dataConfig.filterRules = filterRules, this.dataset.updateFilterRules(filterRules),
|
|
386
|
+
(0, update_chart_1.clearChartCacheImage)(this.scenegraph), (0, update_chart_1.updateChartData)(this.scenegraph),
|
|
387
|
+
this.invalidate();
|
|
388
|
+
}
|
|
389
|
+
setLegendSelected(selectedData) {
|
|
390
|
+
this.internalProps.legends.legendComponent.setSelected(selectedData);
|
|
391
|
+
}
|
|
392
|
+
getChartDatumPosition(datum, cellHeaderPaths) {
|
|
393
|
+
var _a;
|
|
394
|
+
const cellAddr = this.getCellAddressByHeaderPaths(cellHeaderPaths), cellPosition = this.getCellRelativeRect(cellAddr.col, cellAddr.row);
|
|
395
|
+
console.log(cellPosition);
|
|
396
|
+
const cellGroup = this.scenegraph.getCell(cellAddr.col, cellAddr.row);
|
|
397
|
+
let position;
|
|
398
|
+
const chartNode = null === (_a = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _a ? void 0 : _a[0];
|
|
399
|
+
if (chartNode.attribute.chartInstance) {
|
|
400
|
+
const chartInstance = chartNode.attribute.chartInstance, {dataId: dataId, data: data, viewBox: viewBox, axes: axes} = chartNode.attribute;
|
|
401
|
+
axes.forEach(((axis, index) => {
|
|
402
|
+
var _a, _b, _c, _d;
|
|
403
|
+
if ("linear" === axis.type) {
|
|
404
|
+
chartInstance._chart._components[index]._domain = {
|
|
405
|
+
min: null !== (_b = null === (_a = axis.range) || void 0 === _a ? void 0 : _a.min) && void 0 !== _b ? _b : 0,
|
|
406
|
+
max: null !== (_d = null === (_c = axis.range) || void 0 === _c ? void 0 : _c.max) && void 0 !== _d ? _d : 0
|
|
407
|
+
};
|
|
408
|
+
} else if ("band" === axis.type) {
|
|
409
|
+
const chartAxis = chartInstance._chart._components[index];
|
|
410
|
+
chartAxis._spec.domain = axis.domain.slice(0), chartAxis.updateScaleDomain();
|
|
411
|
+
}
|
|
412
|
+
})), chartInstance.updateViewBox({
|
|
413
|
+
x1: viewBox.x1 - chartNode.getRootNode().table.scrollLeft,
|
|
414
|
+
x2: viewBox.x2 - chartNode.getRootNode().table.scrollLeft,
|
|
415
|
+
y1: viewBox.y1 - chartNode.getRootNode().table.scrollTop,
|
|
416
|
+
y2: viewBox.y2 - chartNode.getRootNode().table.scrollTop
|
|
417
|
+
}), chartInstance.updateDataSync(dataId, data), position = chartInstance.convertDatumToPosition(datum),
|
|
418
|
+
this.invalidate();
|
|
419
|
+
}
|
|
420
|
+
return position ? {
|
|
421
|
+
x: Math.round(position.x + cellPosition.bounds.x1),
|
|
422
|
+
y: Math.round(position.y + cellPosition.bounds.y1)
|
|
423
|
+
} : null;
|
|
424
|
+
}
|
|
425
|
+
_getDimensionSortArray() {
|
|
426
|
+
var _a, _b;
|
|
427
|
+
if (null === (_b = null === (_a = this.options) || void 0 === _a ? void 0 : _a.axes) || void 0 === _b ? void 0 : _b.length) {
|
|
428
|
+
const dimensionAxisOrient = this.options.indicatorsAsCol ? "left" : "bottom", dimensionAxisOption = this.options.axes.find((axis => axis.orient === dimensionAxisOrient));
|
|
429
|
+
if (dimensionAxisOption && (0, vutils_1.isArray)(dimensionAxisOption.domain)) return dimensionAxisOption.domain;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
exports.PivotChart = PivotChart;
|
|
435
|
+
//# sourceMappingURL=PivotChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["PivotChart.ts"],"names":[],"mappings":"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","file":"PivotChart.js","sourcesContent":["import type {\n FieldData,\n FieldDef,\n FieldFormat,\n PivotTableAPI,\n SortRules,\n PivotSortState,\n CellAddress,\n ICellHeaderPaths,\n DropDownMenuEventInfo,\n FieldKeyDef,\n IHeaderTreeDefine,\n IDimensionInfo,\n SortOrder,\n IIndicator,\n PivotChartConstructorOptions,\n CollectValueBy,\n AggregationRules,\n AggregationRule,\n AnyFunction,\n FilterRules,\n IPivotTableCellHeaderPaths\n} from './ts-types';\nimport { AggregationType } from './ts-types';\nimport { HierarchyState } from './ts-types';\nimport type { PivotHeaderLayoutMap } from './layout/pivot-header-layout';\nimport { getField } from './data/DataSource';\nimport { PivotLayoutMap } from './layout/pivot-layout';\nimport { PIVOT_CHART_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\nimport { cellInRange, emptyFn } from './tools/helper';\nimport { Dataset } from './dataset/dataset';\nimport { _setDataSource } from './core/tableHelper';\nimport { BaseTable } from './core/BaseTable';\nimport type { PivotTableProtected } from './ts-types/base-table';\nimport type { IChartColumnIndicator } from './ts-types/pivot-table/indicator/chart-indicator';\nimport type { Chart } from './scenegraph/graphic/chart';\nimport { clearChartCacheImage, updateChartData } from './scenegraph/refresh-node/update-chart';\nimport type { ITableAxisOption } from './ts-types/component/axis';\nimport { isArray } from '@visactor/vutils';\n\nexport class PivotChart extends BaseTable implements PivotTableAPI {\n declare internalProps: PivotTableProtected;\n declare options: PivotChartConstructorOptions;\n pivotSortState: PivotSortState[];\n\n dataset?: Dataset; //数据处理对象 开启数据透视分析的表\n\n _selectedDataItemsInChart: any[] = [];\n _selectedDimensionInChart: { key: string; value: string }[] = [];\n _chartEventMap: Record<string, AnyFunction> = {};\n\n _axes: ITableAxisOption[];\n constructor(options: PivotChartConstructorOptions) {\n super(options);\n if ((options as any).layout) {\n //TODO hack处理之前的demo都是定义到layout上的 所以这里直接并到options中\n Object.assign(options, (options as any).layout);\n }\n this.setCustomStateNameToSpec();\n this.internalProps.dataConfig = { isPivotChart: true };\n this.internalProps.enableDataAnalysis = true;\n this._axes = isArray(options.axes) ? options.axes : [];\n\n if (this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {\n const rowKeys = options.rows.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []);\n const columnKeys = options.columns.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []);\n const indicatorKeys =\n options.indicators?.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys);\n this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules();\n this.internalProps.dataConfig.dimensionSortArray = this._getDimensionSortArray();\n this.dataset = new Dataset(\n this.internalProps.dataConfig,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.records,\n options.columnTree,\n options.rowTree\n );\n }\n\n this.refreshHeader();\n if (options.dataSource) {\n _setDataSource(this, options.dataSource);\n } else if (options.records) {\n this.setRecords(options.records as any, this.internalProps.sortState);\n } else {\n this.setRecords([]);\n }\n }\n static get EVENT_TYPE(): typeof PIVOT_CHART_EVENT_TYPE {\n return PIVOT_CHART_EVENT_TYPE;\n }\n get pivotChartAxes() {\n return this._axes;\n }\n\n isListTable(): false {\n return false;\n }\n isPivotTable(): true {\n return true;\n }\n isPivotChart(): true {\n return true;\n }\n _canResizeColumn(col: number, row: number): boolean {\n const ifCan = super._canResizeColumn(col, row);\n if (ifCan) {\n if (!this.internalProps.layoutMap.indicatorsAsCol) {\n // 列上是否配置了禁止拖拽列宽的配置项disableColumnResize\n const cellDefine = this.internalProps.layoutMap.getBody(col, this.columnHeaderLevelCount);\n if (cellDefine?.disableColumnResize) {\n return false;\n }\n }\n }\n return ifCan;\n }\n updateOption(options: PivotChartConstructorOptions, accelerateFirstScreen = false) {\n const internalProps = this.internalProps;\n //维护选中状态\n // const range = internalProps.selection.range; //保留原有单元格选中状态\n super.updateOption(options);\n\n this.setCustomStateNameToSpec();\n // 更新protectedSpace\n internalProps.dataConfig = {};\n this.internalProps.enableDataAnalysis = true;\n //TODO 这里需要加上判断 dataConfig是否有配置变化\n if (this.internalProps.enableDataAnalysis && (options.rows || options.columns)) {\n const rowKeys = options.rows.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []);\n const columnKeys = options.columns.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []);\n const indicatorKeys = options.indicators.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []);\n\n this.internalProps.dataConfig.collectValuesBy = this._generateCollectValuesConfig(columnKeys, rowKeys);\n this.internalProps.dataConfig.aggregationRules = this._generateAggregationRules();\n this.dataset = new Dataset(\n this.internalProps.dataConfig,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.records ?? this.internalProps.records,\n options.columnTree,\n options.rowTree\n );\n }\n // 更新表头\n this.refreshHeader();\n\n // this.hasMedia = null; // 避免重复绑定\n // 清空目前数据\n if (internalProps.disposables) {\n internalProps.disposables.forEach(disposable => disposable?.dispose?.());\n internalProps.disposables = null;\n }\n // // 恢复selection状态\n // internalProps.selection.range = range;\n this._updateSize();\n // 传入新数据\n if (options.dataSource) {\n _setDataSource(this, options.dataSource);\n } else if (options.records) {\n this.setRecords(options.records as any, undefined);\n } else {\n this._resetFrozenColCount();\n // 生成单元格场景树\n this.scenegraph.createSceneGraph();\n this.invalidate();\n }\n\n return new Promise(resolve => {\n setTimeout(resolve, 0);\n });\n }\n\n refreshHeader(): void {\n const internalProps = this.internalProps;\n\n //原表头绑定的事件 解除掉\n if (internalProps.headerEvents) {\n internalProps.headerEvents.forEach((id: number) => this.unlisten(id));\n }\n\n if (this.internalProps.enableDataAnalysis) {\n internalProps.layoutMap = new PivotLayoutMap(this, this.dataset);\n }\n\n //设置列宽\n for (let col = 0; col < internalProps.layoutMap.columnWidths.length; col++) {\n const { width, minWidth, maxWidth } = internalProps.layoutMap.columnWidths?.[col] ?? {};\n // width 为 \"auto\" 时先不存储ColWidth\n if (width && ((typeof width === 'string' && width !== 'auto') || (typeof width === 'number' && width > 0))) {\n this.setColWidth(col, width);\n }\n if (minWidth && ((typeof minWidth === 'number' && minWidth > 0) || typeof minWidth === 'string')) {\n this.setMinColWidth(col, minWidth);\n }\n if (maxWidth && ((typeof maxWidth === 'number' && maxWidth > 0) || typeof maxWidth === 'string')) {\n this.setMaxColWidth(col, maxWidth);\n }\n }\n //刷新表头,原来这里是_refreshRowCount 后改名为_refreshRowColCount 因为表头定义会影响行数,而转置模式下会影响列数\n this.refreshRowColCount();\n }\n\n refreshRowColCount(): void {\n const table = this;\n const { layoutMap } = table.internalProps;\n if (!layoutMap) {\n return;\n }\n table.colCount = layoutMap.colCount ?? 0;\n table.rowCount = layoutMap.rowCount ?? 0;\n table.frozenColCount = layoutMap.rowHeaderLevelCount; //TODO\n table.frozenRowCount = layoutMap.headerLevelCount;\n\n table.bottomFrozenRowCount = layoutMap?.bottomFrozenRowCount ?? 0;\n table.rightFrozenColCount = layoutMap?.rightFrozenColCount ?? 0;\n }\n protected _getSortFuncFromHeaderOption(\n columns: undefined,\n field: FieldDef,\n fieldKey?: FieldKeyDef\n ): ((v1: any, v2: any, order: SortOrder) => 0 | 1 | -1) | undefined {\n return undefined;\n }\n /**\n * 将现有tree中的的hierarchyState同步到rows透视树中\n * @param sourceNode\n * @param targetNode\n */\n private syncHierarchyState(sourceNode: any, targetNode: IHeaderTreeDefine) {\n if (sourceNode.value === targetNode.value && sourceNode.dimensionKey === targetNode.dimensionKey) {\n targetNode.hierarchyState =\n targetNode.hierarchyState ?? (targetNode?.children ? sourceNode.hierarchyState : undefined);\n targetNode?.children?.forEach((targetChildNode: IHeaderTreeDefine, index: number) => {\n if (sourceNode?.children?.[index] && targetChildNode) {\n this.syncHierarchyState(sourceNode.children[index], targetChildNode);\n }\n });\n }\n }\n\n getRecordIndexByRow(row: number): number {\n const { layoutMap } = this.internalProps;\n return layoutMap.getRecordIndexByRow(row);\n }\n getRecordIndexByCol(col: number): number {\n const { layoutMap } = this.internalProps;\n return layoutMap.getRecordIndexByCol(col);\n }\n getFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData {\n if (field === null || field === undefined) {\n return null;\n }\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n return null;\n }\n const rowIndex = this.getRecordIndexByRow(row);\n const colIndex = this.getRecordIndexByCol(col);\n const dataValue = table.dataSource?.getField(rowIndex, colIndex);\n if (typeof field !== 'string') {\n //field为函数format\n const cellHeaderPaths = table.internalProps.layoutMap.getCellHeaderPaths(col, row);\n return getField({ dataValue, ...cellHeaderPaths }, field, emptyFn as any);\n }\n return dataValue;\n }\n\n getCellValue(col: number, row: number): FieldData {\n if (this.internalProps.layoutMap.isHeader(col, row)) {\n const { caption, fieldFormat } = this.internalProps.layoutMap.getHeader(col, row);\n return typeof fieldFormat === 'function' ? fieldFormat(caption) : caption;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.value ? aggregator.value() : undefined;\n }\n const { field, fieldFormat } = this.internalProps.layoutMap.getBody(col, row);\n return this.getFieldData(fieldFormat || field, col, row);\n }\n\n getCellOriginValue(col: number, row: number): FieldData {\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n const { caption } = table.internalProps.layoutMap.getHeader(col, row);\n return typeof caption === 'function' ? caption() : caption;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.value ? aggregator.value() : undefined;\n // return ''\n }\n const { field } = table.internalProps.layoutMap.getBody(col, row);\n return table.getFieldData(field, col, row);\n }\n\n // 获取原始数据\n getCellOriginRecord(col: number, row: number) {\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n return undefined;\n }\n if (this.dataset) {\n const colKey = this.dataset.colKeysPath[this.internalProps.layoutMap.getRecordIndexByCol(col)] ?? [];\n const rowKey = this.dataset.rowKeysPath[this.internalProps.layoutMap.getRecordIndexByRow(row)] ?? [];\n const aggregator = this.dataset.getAggregator(\n rowKey[rowKey.length - 1],\n colKey[colKey.length - 1],\n (this.internalProps.layoutMap as PivotLayoutMap).getIndicatorKey(col, row)\n );\n return aggregator.records;\n // return ''\n }\n return undefined;\n }\n /**\n * 全量更新排序规则\n * @param sortRules\n */\n updateSortRules(sortRules: SortRules) {\n this.internalProps.dataConfig.sortRules = sortRules;\n this.dataset.updateSortRules(sortRules);\n (this.internalProps.layoutMap as PivotLayoutMap).updateDataset(this.dataset);\n this.invalidate();\n }\n updatePivotSortState(\n pivotSortStateConfig: {\n dimensions: IDimensionInfo[];\n order: SortOrder;\n }[]\n ) {\n // // dimensions: IDimensionInfo[], order: SortOrder\n // // 清空当前 pivot sort 状态\n // const cells = this.pivotSortState.map((cell) => ({ col: cell.col, row: cell.row }));\n // this.pivotSortState.length = 0;\n // cells.map((cell) => {\n // this.invalidateCellRange(this.getCellRange(cell.col, cell.row));\n // });\n\n // 更新 pivot sort 状态\n for (let i = 0; i < pivotSortStateConfig.length; i++) {\n const { dimensions, order } = pivotSortStateConfig[i];\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotCellAdress(dimensions);\n\n cellAddress &&\n this.pivotSortState.push({\n col: cellAddress.col,\n row: cellAddress.row,\n order\n });\n }\n\n // // 更新相关单元格样式\n // this.pivotSortState.map((cell) => {\n // this.invalidateCellRange(this.getCellRange(cell.col, cell.row));\n // });\n }\n\n getPivotSortState(col: number, row: number): SortOrder {\n if (!this.pivotSortState) {\n return undefined;\n }\n const cellRange = this.getCellRange(col, row);\n for (let i = 0; i < this.pivotSortState.length; i++) {\n const { col: sortCol, row: sortRow, order } = this.pivotSortState[i];\n\n if (cellInRange(cellRange, sortCol, sortRow)) {\n return order;\n }\n }\n return undefined;\n }\n /**\n * 拖拽移动表头位置\n * @param source 移动源位置\n * @param target 移动目标位置\n */\n moveHeaderPosition(source: CellAddress, target: CellAddress) {\n // 调用布局类 布局数据结构调整为移动位置后的\n const moveContext = (this.internalProps.layoutMap as PivotHeaderLayoutMap).moveHeaderPosition(source, target);\n if (moveContext) {\n if (moveContext.moveType === 'column') {\n // 是扁平数据结构 需要将二维数组this.records进行调整\n if (this.options.records?.[0]?.constructor === Array) {\n for (let row = 0; row < this.records.length; row++) {\n const sourceColumns = (this.records[row] as unknown as number[]).splice(\n moveContext.sourceIndex - this.rowHeaderLevelCount,\n moveContext.moveSize\n );\n sourceColumns.unshift((moveContext.targetIndex as any) - this.rowHeaderLevelCount, 0 as any);\n Array.prototype.splice.apply(this.records[row] as unknown as number[], sourceColumns);\n }\n }\n //colWidthsMap 中存储着每列的宽度 根据移动 sourceCol targetCol 调整其中的位置\n this.colWidthsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);\n //下面代码取自refreshHeader列宽设置逻辑\n //设置列宽极限值 TODO 目前是有问题的 最大最小宽度限制 移动列位置后不正确\n for (let col = 0; col < this.internalProps.layoutMap.columnWidths.length; col++) {\n const { minWidth, maxWidth } = this.internalProps.layoutMap.columnWidths?.[col] ?? {};\n if (minWidth && ((typeof minWidth === 'number' && minWidth > 0) || typeof minWidth === 'string')) {\n this.setMinColWidth(col, minWidth);\n }\n if (maxWidth && ((typeof maxWidth === 'number' && maxWidth > 0) || typeof maxWidth === 'string')) {\n this.setMaxColWidth(col, maxWidth);\n }\n }\n } else if (moveContext.moveType === 'row') {\n // 是扁平数据结构 需要将二维数组this.records进行调整\n if (this.options.records?.[0]?.constructor === Array) {\n const sourceRows = (this.records as unknown as number[]).splice(\n moveContext.sourceIndex - this.columnHeaderLevelCount,\n moveContext.moveSize\n );\n sourceRows.unshift((moveContext.targetIndex as any) - this.columnHeaderLevelCount, 0 as any);\n Array.prototype.splice.apply(this.records, sourceRows);\n }\n //colWidthsMap 中存储着每列的宽度 根据移动 sourceCol targetCol 调整其中的位置\n this.rowHeightsMap.adjustOrder(moveContext.sourceIndex, moveContext.targetIndex, moveContext.moveSize);\n }\n return true;\n }\n return false;\n }\n /**\n * 表头切换层级状态\n * @param col\n * @param row\n */\n toggleHierarchyState(col: number, row: number) {\n const hierarchyState = this.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {\n col: col,\n row: row,\n hierarchyState: HierarchyState.collapse\n });\n } else if (hierarchyState === HierarchyState.collapse) {\n this.fireListeners(PIVOT_CHART_EVENT_TYPE.TREE_HIERARCHY_STATE_CHANGE, {\n col: col,\n row: row,\n hierarchyState: HierarchyState.expand,\n originData: this.getCellOriginRecord(col, row)\n });\n }\n\n const result = (this.internalProps.layoutMap as PivotHeaderLayoutMap).toggleHierarchyState(col, row);\n //影响行数\n this.refreshRowColCount();\n // this.scenegraph.clearCells();\n // this.scenegraph.createSceneGraph();\n // this.invalidate();\n this.clearCellStyleCache();\n this.scenegraph.updateHierarchyIcon(col, row);\n this.scenegraph.updateRow(result.removeCellPositions, result.addCellPositions);\n }\n /**\n * 通过表头的维度值路径来计算单元格位置 getCellAddressByHeaderPaths接口更强大一些 不限表头 不限参数格式\n * @param dimensionPaths\n * @returns\n */\n getHeaderCellAddressByPath(dimensionPaths: IDimensionInfo[]): CellAddress {\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotCellAdress(dimensionPaths);\n return cellAddress;\n }\n /**\n * 通过表头的维度值路径来计算单元格位置\n * @param dimensionPaths\n * @returns\n */\n getCellAddressByHeaderPaths(\n dimensionPaths: // | {\n // colHeaderPaths: IDimensionInfo[];\n // rowHeaderPaths: IDimensionInfo[];\n // }\n IPivotTableCellHeaderPaths | IDimensionInfo[]\n ): CellAddress {\n const cellAddress = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getCellAdressByHeaderPath(\n dimensionPaths\n );\n return cellAddress;\n }\n\n /**\n * 通过传入的坐标 获取该位置当前单元格的维度路径;\n * @param coordinate 从body左上角为原点 coordinate为偏移距离 去计算单元格的headerPath;\n * 如不传coordinate坐标则按取body中左上角第一个单元格的维度路径\n * @returns\n */\n getHeaderPathByXY(coordinate?: { x: number; y: number }): ICellHeaderPaths {\n let cellAddr;\n if (coordinate) {\n cellAddr = this.getCellAt(\n coordinate.x + this.getFrozenColsWidth() + this.scrollLeft + 1,\n coordinate.y + this.getFrozenRowsHeight() + this.scrollTop + 1\n );\n } else {\n cellAddr = this.getCellAt(\n this.getFrozenColsWidth() + this.scrollLeft + 1,\n this.getFrozenRowsHeight() + this.scrollTop + 1\n );\n }\n const cellHeaderPaths = this.internalProps.layoutMap.getCellHeaderPaths(cellAddr.col, cellAddr.row);\n return cellHeaderPaths;\n }\n getHierarchyState(col: number, row: number): HierarchyState {\n return this._getHeaderLayoutMap(col, row)?.hierarchyState;\n }\n\n hasHierarchyTreeHeader() {\n return (this.internalProps.layoutMap as PivotHeaderLayoutMap).rowHierarchyType === 'tree';\n }\n\n getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo {\n const dimensionInfos = (this.internalProps.layoutMap as PivotHeaderLayoutMap).getPivotDimensionInfo(col, row);\n const result: DropDownMenuEventInfo = {\n dimensionKey: dimensionInfos[dimensionInfos.length - 1].dimensionKey,\n value: this.getCellValue(col, row),\n cellType: this.getCellType(col, row),\n isPivotCorner: this.isCornerHeader(col, row)\n };\n return result;\n }\n /**\n * 根据用户配置 生成 收集维度值collectValuesBy 的配置 传给dataset用\n * 这个收集规则的逻辑是按照正常使用方式:\n * 指标显示在行表头indicatorsAsCol=false时,图表yField为指标值,xField为维度值(考虑stack)direction为默认值'vertical';\n * 指标显示在列表头indicatorsAsCol=true时,图表xField为指标值,yField为维度值(考虑stack)direction为'horizontal';\n * @param columnKeys\n * @param rowKeys\n * @returns\n */\n private _generateCollectValuesConfig(columnKeys: string[], rowKeys: string[]) {\n const option = this.options;\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal'\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(xField) // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false && columnKeys.concat(xField) // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal'\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(yField)\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy: (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false && rowKeys.concat(yField)\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n }\n // private _generateAggregationRules(indicatorKeys: string[]): AggregationRules {\n // return indicatorKeys.map((indicatorKey: string) => {\n // return {\n // indicatorKey, //field转为指标key\n // field: indicatorKey, //指标依据字段\n // aggregationType: AggregationType.RECORD //计算类型\n // };\n // });\n // }\n private _generateAggregationRules() {\n const aggregationRules: AggregationRules = [];\n this.options.indicators.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = this.options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n }\n /** 将spec中的 selected和selected_reverse 更名为vtable_selected和vtable_selected_reverse */\n private setCustomStateNameToSpec() {\n /** 修改设置的selected 和 dselected_reverse的名字加前缀vtable */\n const setCustomStateName = (spec: any) => {\n if (spec.bar?.state?.selected) {\n spec.bar.state.vtable_selected = spec.bar.state.selected;\n spec.bar.state.vtable_selected_reverse = spec.bar.state.selected_reverse;\n delete spec.bar.state.selected;\n delete spec.bar.state.selected_reverse;\n }\n if (spec.point?.state?.selected) {\n spec.point.state.vtable_selected = spec.point.state.selected;\n spec.point.state.vtable_selected_reverse = spec.point.state.selected_reverse;\n delete spec.point.state.selected;\n delete spec.point.state.selected_reverse;\n }\n if (spec.line?.state?.selected) {\n spec.line.state.vtable_selected = spec.line.state.selected;\n spec.line.state.vtable_selected_reverse = spec.line.state.selected_reverse;\n delete spec.line.state.selected;\n delete spec.line.state.selected_reverse;\n }\n if (spec.area?.state?.selected) {\n spec.area.state.vtable_selected = spec.area.state.selected;\n spec.area.state.vtable_selected_reverse = spec.area.state.selected_reverse;\n delete spec.area.state.selected;\n delete spec.area.state.selected_reverse;\n }\n };\n this.options.indicators.forEach((indicator: string | IIndicator) => {\n if ((indicator as IChartColumnIndicator).chartSpec) {\n const spec = (indicator as IChartColumnIndicator).chartSpec;\n if (spec.series) {\n spec.series.forEach((series: any) => {\n setCustomStateName(series);\n });\n } else {\n setCustomStateName(spec);\n }\n }\n });\n }\n /** 获取当前hover单元格的图表实例。这个方法hover实时获取有点缺陷:鼠标hover到单元格上触发了 chart.ts中的activate方法 但此时this.stateManeger.hover?.cellPos?.col还是-1 */\n _getActiveChartInstance() {\n // 根据hover的单元格位置 获取单元格实例 拿到chart图元\n const cellGroup = this.scenegraph.getCell(\n this.stateManeger.hover?.cellPos?.col,\n this.stateManeger.hover?.cellPos?.row\n );\n return cellGroup?.getChildren()?.[0]?.type === 'chart'\n ? (cellGroup.getChildren()[0] as Chart).activeChartInstance\n : null;\n }\n /**\n * 监听vchart事件\n * @param type vchart事件类型\n * @param listener vchart事件监听器\n * @returns 事件监听器id\n */\n listenChart(type: string, listener: AnyFunction): void {\n // this.internalProps.layoutMap.columnObjects.forEach((indicatorObj: IndicatorData) => {\n // indicatorObj.chartInstance.on(type, listener);\n // });\n this._chartEventMap[type] = listener;\n }\n\n unlistenChart(type: string): void {\n // this.internalProps.layoutMap.columnObjects.forEach((indicatorObj: IndicatorData) => {\n // indicatorObj.chartInstance.off(type);\n // });\n delete this._chartEventMap[type];\n }\n /** 给activeChartInstance逐个绑定chart用户监听事件 */\n _bindChartEvent(activeChartInstance: any) {\n if (activeChartInstance) {\n for (const key in this._chartEventMap) {\n activeChartInstance.on(key, this._chartEventMap[key]);\n }\n }\n }\n /** 更新数据过滤规则,适用场景:点击图例项后 更新过滤规则 来更新图表 */\n updateFilterRules(filterRules: FilterRules) {\n this.internalProps.dataConfig.filterRules = filterRules;\n this.dataset.updateFilterRules(filterRules);\n clearChartCacheImage(this.scenegraph);\n updateChartData(this.scenegraph);\n this.invalidate();\n }\n /** 设置图例的选择状态。设置完后同步图表的状态需要配合updateFilterRules接口使用 */\n setLegendSelected(selectedData: (string | number)[]) {\n this.internalProps.legends.legendComponent.setSelected(selectedData);\n // this.updateFilterRules([{ filterKey: '20001', filteredValues: selectedData }]);\n // this.invalidate();\n }\n /**\n * 获取图表上某一个图元的位置\n * @param datum 图元对应的数据\n * @param cellHeaderPaths 单元格的header路径\n * @returns 图元在整个表格上的坐标位置(相对表格左上角视觉坐标)\n */\n getChartDatumPosition(datum: any, cellHeaderPaths: IPivotTableCellHeaderPaths): { x: number; y: number } {\n const cellAddr = this.getCellAddressByHeaderPaths(cellHeaderPaths);\n const cellPosition = this.getCellRelativeRect(cellAddr.col, cellAddr.row);\n console.log(cellPosition);\n const cellGroup = this.scenegraph.getCell(cellAddr.col, cellAddr.row);\n let position;\n const chartNode: Chart = cellGroup?.getChildren()?.[0] as Chart;\n if (chartNode.attribute.chartInstance) {\n const chartInstance = chartNode.attribute.chartInstance;\n const { dataId, data, viewBox, axes } = chartNode.attribute;\n axes.forEach((axis: any, index: number) => {\n if (axis.type === 'linear') {\n const chartAxis = chartInstance._chart._components[index];\n chartAxis._domain = {\n min: axis.range?.min ?? 0,\n max: axis.range?.max ?? 0\n };\n } else if (axis.type === 'band') {\n const chartAxis = chartInstance._chart._components[index];\n chartAxis._spec.domain = axis.domain.slice(0);\n chartAxis.updateScaleDomain();\n }\n });\n\n chartInstance.updateViewBox({\n x1: viewBox.x1 - (chartNode.getRootNode() as any).table.scrollLeft,\n x2: viewBox.x2 - (chartNode.getRootNode() as any).table.scrollLeft,\n y1: viewBox.y1 - (chartNode.getRootNode() as any).table.scrollTop,\n y2: viewBox.y2 - (chartNode.getRootNode() as any).table.scrollTop\n });\n chartInstance.updateDataSync(dataId, data);\n position = chartInstance.convertDatumToPosition(datum);\n this.invalidate();\n }\n return position\n ? { x: Math.round(position.x + cellPosition.bounds.x1), y: Math.round(position.y + cellPosition.bounds.y1) }\n : null;\n }\n\n _getDimensionSortArray(): string[] | undefined {\n if (this.options?.axes?.length) {\n const dimensionAxisOrient = this.options.indicatorsAsCol ? 'left' : 'bottom';\n const dimensionAxisOption = this.options.axes.find(axis => {\n if (axis.orient === dimensionAxisOrient) {\n return true;\n }\n return false;\n });\n if (dimensionAxisOption && isArray((dimensionAxisOption as any).domain)) {\n return (dimensionAxisOption as any).domain;\n }\n }\n return undefined;\n }\n}\n"]}
|
package/cjs/PivotTable.d.ts
CHANGED
|
@@ -15,11 +15,12 @@ export declare class PivotTable extends BaseTable implements PivotTableAPI {
|
|
|
15
15
|
static get EVENT_TYPE(): typeof PIVOT_TABLE_EVENT_TYPE;
|
|
16
16
|
isListTable(): false;
|
|
17
17
|
isPivotTable(): true;
|
|
18
|
+
isPivotChart(): false;
|
|
18
19
|
_canResizeColumn(col: number, row: number): boolean;
|
|
19
20
|
updateOption(options: PivotTableConstructorOptions, accelerateFirstScreen?: boolean): Promise<unknown>;
|
|
20
21
|
refreshHeader(): void;
|
|
21
22
|
refreshRowColCount(): void;
|
|
22
|
-
protected
|
|
23
|
+
protected _getSortFuncFromHeaderOption(columns: undefined, field: FieldDef, fieldKey?: FieldKeyDef): ((v1: any, v2: any, order: SortOrder) => 0 | 1 | -1) | undefined;
|
|
23
24
|
get rowHierarchyType(): 'grid' | 'tree';
|
|
24
25
|
private syncHierarchyState;
|
|
25
26
|
getRecordIndexByRow(row: number): number;
|