@visactor/vtable 0.9.2-alpha.0 → 0.9.2-alpha.1
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 +68 -0
- package/cjs/PivotChart.js +427 -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/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/cjs/{menu → 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/{es → cjs/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/cjs/{tooltip → 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/{es → cjs/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/cjs/{tooltip → 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 +96 -39
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +3 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +4 -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.d.ts +12 -19
- package/cjs/dataset/dataset.js +168 -196
- 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/sparkline-event.js.map +1 -1
- package/cjs/event/util.js +0 -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/index.js +2 -1
- package/cjs/layout/pivot-chart/get-axis-config.d.ts +2 -0
- package/cjs/layout/pivot-chart/get-axis-config.js +118 -0
- package/cjs/layout/pivot-chart/get-axis-config.js.map +1 -0
- package/cjs/layout/pivot-chart/get-chart-spec.d.ts +4 -0
- package/cjs/layout/pivot-chart/get-chart-spec.js +118 -0
- package/cjs/layout/pivot-chart/get-chart-spec.js.map +1 -0
- package/cjs/layout/pivot-header-layout.d.ts +11 -5
- package/cjs/layout/pivot-header-layout.js +42 -12
- package/cjs/layout/pivot-header-layout.js.map +1 -1
- package/cjs/layout/pivot-layout.d.ts +53 -8
- package/cjs/layout/pivot-layout.js +393 -89
- package/cjs/layout/pivot-layout.js.map +1 -1
- package/cjs/layout/simple-header-layout.d.ts +8 -0
- package/cjs/layout/simple-header-layout.js +34 -0
- package/cjs/layout/simple-header-layout.js.map +1 -1
- 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 +3 -0
- package/cjs/scenegraph/graphic/chart.js +21 -6
- package/cjs/scenegraph/graphic/chart.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/chart-render.js +15 -3
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-helper.js +8 -3
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
- 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 +1 -1
- 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 +48 -5
- package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +9 -0
- package/cjs/scenegraph/scenegraph.js +144 -18
- 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/frame-border.js +1 -5
- package/cjs/scenegraph/style/frame-border.js.map +1 -1
- package/cjs/state/state.js +1 -1
- package/cjs/state/state.js.map +1 -1
- package/cjs/themes/DEFAULT.js +1 -2
- 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/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/events.d.ts +100 -83
- package/cjs/ts-types/events.js.map +1 -1
- package/cjs/ts-types/list-table/layout-map/api.d.ts +2 -0
- package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
- package/cjs/ts-types/new-data-set.d.ts +18 -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/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/dist/vtable.js +22774 -11930
- 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 +68 -0
- package/es/PivotChart.js +437 -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/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/es/{menu → 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/{cjs → es/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/es/{tooltip → 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/{cjs → es/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/es/{tooltip → 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 +100 -41
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/TABLE_EVENT_TYPE.d.ts +3 -0
- package/es/core/TABLE_EVENT_TYPE.js +4 -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.d.ts +12 -19
- package/es/dataset/dataset.js +161 -187
- 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 +8 -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/sparkline-event.js.map +1 -1
- package/es/event/util.js +1 -2
- 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/index.js +2 -1
- package/es/layout/pivot-chart/get-axis-config.d.ts +2 -0
- package/es/layout/pivot-chart/get-axis-config.js +110 -0
- package/es/layout/pivot-chart/get-axis-config.js.map +1 -0
- package/es/layout/pivot-chart/get-chart-spec.d.ts +4 -0
- package/es/layout/pivot-chart/get-chart-spec.js +109 -0
- package/es/layout/pivot-chart/get-chart-spec.js.map +1 -0
- package/es/layout/pivot-header-layout.d.ts +11 -5
- package/es/layout/pivot-header-layout.js +41 -11
- package/es/layout/pivot-header-layout.js.map +1 -1
- package/es/layout/pivot-layout.d.ts +53 -8
- package/es/layout/pivot-layout.js +396 -87
- package/es/layout/pivot-layout.js.map +1 -1
- package/es/layout/simple-header-layout.d.ts +8 -0
- package/es/layout/simple-header-layout.js +34 -0
- package/es/layout/simple-header-layout.js.map +1 -1
- 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 +3 -0
- package/es/scenegraph/graphic/chart.js +22 -5
- package/es/scenegraph/graphic/chart.js.map +1 -1
- package/es/scenegraph/graphic/contributions/chart-render.js +15 -3
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
- package/es/scenegraph/group-creater/cell-helper.js +9 -2
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
- 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 +1 -1
- 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 +45 -4
- package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +9 -0
- package/es/scenegraph/scenegraph.js +146 -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/frame-border.js +1 -5
- package/es/scenegraph/style/frame-border.js.map +1 -1
- package/es/state/state.js +1 -1
- package/es/state/state.js.map +1 -1
- package/es/themes/DEFAULT.js +1 -2
- 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/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/events.d.ts +100 -83
- package/es/ts-types/events.js.map +1 -1
- package/es/ts-types/list-table/layout-map/api.d.ts +2 -0
- package/es/ts-types/list-table/layout-map/api.js.map +1 -1
- package/es/ts-types/new-data-set.d.ts +18 -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/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/package.json +11 -5
- 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/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/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/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/{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/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
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IBaseScale } from '@visactor/vscale';
|
|
2
|
+
import type { IBoundsLike } from '@visactor/vutils';
|
|
3
|
+
import { AABBBounds } from '@visactor/vutils';
|
|
4
|
+
import { type IGraphic } from '@visactor/vrender';
|
|
5
|
+
export declare const radians: (angle?: number) => number;
|
|
6
|
+
export declare const convertDomainToTickData: (domain: any[], op: any) => any[];
|
|
7
|
+
export declare const labelOverlap: (prevLabel: AABBBounds, nextLabel: AABBBounds, gap?: number) => boolean;
|
|
8
|
+
export declare const labelDistance: (prevLabel: AABBBounds, nextLabel: AABBBounds) => [number, number];
|
|
9
|
+
export declare function intersect(a: IBoundsLike, b: IBoundsLike, sep: number): boolean;
|
|
10
|
+
export interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {
|
|
11
|
+
value?: T;
|
|
12
|
+
}
|
|
13
|
+
export declare function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean;
|
|
14
|
+
export declare const getCartesianLabelBounds: (scale: IBaseScale, domain: any[], op: any) => AABBBounds[];
|
|
15
|
+
export declare const getPolarAngleLabelBounds: (scale: IBaseScale, domain: any[], op: any) => AABBBounds[];
|
|
16
|
+
export declare function getAxisLabelOffset(axisSpec: any): number;
|
|
17
|
+
export declare function angleLabelOrientAttribute(angle: number): {
|
|
18
|
+
align: any;
|
|
19
|
+
baseline: any;
|
|
20
|
+
};
|
|
21
|
+
export declare function normalizeAngle(angle: number): number;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.normalizeAngle = exports.angleLabelOrientAttribute = exports.getAxisLabelOffset = exports.getPolarAngleLabelBounds = exports.getCartesianLabelBounds = exports.hasOverlap = exports.intersect = exports.labelDistance = exports.labelOverlap = exports.convertDomainToTickData = exports.radians = void 0;
|
|
6
|
+
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), vrender_1 = require("@visactor/vrender"), DEFAULT_TEXT_FONT_FAMILY = "PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol", DEFAULT_TEXT_FONT_SIZE = 14, initTextMeasure = (textSpec, option, useNaiveCanvas) => new vutils_1.TextMeasure(Object.assign({
|
|
8
|
+
defaultFontParams: {
|
|
9
|
+
fontFamily: DEFAULT_TEXT_FONT_FAMILY,
|
|
10
|
+
fontSize: 14
|
|
11
|
+
},
|
|
12
|
+
getTextBounds: useNaiveCanvas ? void 0 : vrender_1.getTextBounds,
|
|
13
|
+
specialCharSet: "-/: .,@%'\"~" + vutils_1.TextMeasure.ALPHABET_CHAR_SET + vutils_1.TextMeasure.ALPHABET_CHAR_SET.toUpperCase()
|
|
14
|
+
}, null != option ? option : {}), textSpec), radians = angle => (0, vutils_1.isValidNumber)(angle) ? (0,
|
|
15
|
+
vutils_1.degreeToRadian)(angle) : null;
|
|
16
|
+
|
|
17
|
+
exports.radians = radians;
|
|
18
|
+
|
|
19
|
+
const convertDomainToTickData = (domain, op) => domain.map(((t, index) => ({
|
|
20
|
+
index: index,
|
|
21
|
+
value: t,
|
|
22
|
+
label: op.labelFormatter ? op.labelFormatter(t) : `${t}`
|
|
23
|
+
})));
|
|
24
|
+
|
|
25
|
+
exports.convertDomainToTickData = convertDomainToTickData;
|
|
26
|
+
|
|
27
|
+
const labelOverlap = (prevLabel, nextLabel, gap = 0) => {
|
|
28
|
+
const prevBounds = new vutils_1.AABBBounds(prevLabel).expand(gap / 2), nextBounds = new vutils_1.AABBBounds(nextLabel).expand(gap / 2);
|
|
29
|
+
return prevBounds.intersects(nextBounds);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.labelOverlap = labelOverlap;
|
|
33
|
+
|
|
34
|
+
const labelDistance = (prevLabel, nextLabel) => {
|
|
35
|
+
let horizontal = 0;
|
|
36
|
+
prevLabel.x2 < nextLabel.x1 ? horizontal = nextLabel.x1 - prevLabel.x2 : nextLabel.x2 < prevLabel.x1 && (horizontal = prevLabel.x1 - nextLabel.x2);
|
|
37
|
+
let vertical = 0;
|
|
38
|
+
return prevLabel.y2 < nextLabel.y1 ? vertical = nextLabel.y1 - prevLabel.y2 : nextLabel.y2 < prevLabel.y1 && (vertical = prevLabel.y1 - nextLabel.y2),
|
|
39
|
+
[ horizontal, vertical ];
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
function intersect(a, b, sep) {
|
|
43
|
+
return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function hasOverlap(items, pad) {
|
|
47
|
+
for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i],
|
|
48
|
+
intersect(a.AABBBounds, b.AABBBounds, pad)) return !0;
|
|
49
|
+
return !1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
exports.labelDistance = labelDistance, exports.intersect = intersect, exports.hasOverlap = hasOverlap;
|
|
53
|
+
|
|
54
|
+
const MIN_TICK_GAP = 12, getCartesianLabelBounds = (scale, domain, op) => {
|
|
55
|
+
var _a;
|
|
56
|
+
const {labelStyle: labelStyle, axisOrientType: axisOrientType, labelFlush: labelFlush, labelFormatter: labelFormatter, startAngle: startAngle = 0} = op, labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0, isHorizontal = [ "bottom", "top" ].includes(axisOrientType), isVertical = [ "left", "right" ].includes(axisOrientType);
|
|
57
|
+
let orientAngle = startAngle;
|
|
58
|
+
isHorizontal ? orientAngle = 0 : isVertical && (orientAngle = (0, exports.radians)(-90));
|
|
59
|
+
const textMeasure = initTextMeasure(labelStyle), labelBoundsList = domain.map(((v, i) => {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, 12), textHeight = Math.max(height, 12), pos = scale.scale(v);
|
|
62
|
+
let align, baseline, textX = Math.cos(orientAngle) * pos, textY = -Math.sin(orientAngle) * pos;
|
|
63
|
+
align = labelFlush && isHorizontal && 0 === i ? "left" : labelFlush && isHorizontal && i === domain.length - 1 ? "right" : null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center",
|
|
64
|
+
"right" === align ? textX -= textWidth : "center" === align && (textX -= textWidth / 2),
|
|
65
|
+
baseline = labelFlush && isVertical && 0 === i ? "top" : labelFlush && isVertical && i === domain.length - 1 ? "bottom" : null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle",
|
|
66
|
+
"bottom" === baseline ? textY -= textHeight : "middle" === baseline && (textY -= textHeight / 2);
|
|
67
|
+
return (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight).rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
|
|
68
|
+
}));
|
|
69
|
+
return labelBoundsList;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
exports.getCartesianLabelBounds = getCartesianLabelBounds;
|
|
73
|
+
|
|
74
|
+
const getPolarAngleLabelBounds = (scale, domain, op) => {
|
|
75
|
+
var _a;
|
|
76
|
+
const {labelStyle: labelStyle, getRadius: getRadius, axisSpec: axisSpec, labelFormatter: labelFormatter} = op, radius = null == getRadius ? void 0 : getRadius(), labelAngle = null !== (_a = labelStyle.angle) && void 0 !== _a ? _a : 0, labelOffset = getAxisLabelOffset(axisSpec), textMeasure = initTextMeasure(labelStyle);
|
|
77
|
+
return domain.map((v => {
|
|
78
|
+
const str = labelFormatter ? labelFormatter(v) : `${v}`, {width: width, height: height} = textMeasure.quickMeasure(str), textWidth = Math.max(width, 12), textHeight = Math.max(height, 12), angle = scale.scale(v);
|
|
79
|
+
let textX = 0, textY = 0;
|
|
80
|
+
const orient = angleLabelOrientAttribute(angle), {x: x, y: y} = (0, vutils_1.polarToCartesian)({
|
|
81
|
+
x: 0,
|
|
82
|
+
y: 0
|
|
83
|
+
}, radius + labelOffset, angle);
|
|
84
|
+
textX = x + ("right" === orient.align ? -textWidth : "center" === orient.align ? -textWidth / 2 : 0),
|
|
85
|
+
textY = y + ("bottom" === orient.baseline ? -textHeight : "middle" === orient.baseline ? -textHeight / 2 : 0);
|
|
86
|
+
return (new vutils_1.AABBBounds).set(textX, textY, textX + textWidth, textY + textHeight).rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
|
|
87
|
+
}));
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
function getAxisLabelOffset(axisSpec) {
|
|
91
|
+
let labelOffset = 0;
|
|
92
|
+
return (0, vutils_1.get)(axisSpec, "tick.visible") && (labelOffset += (0, vutils_1.get)(axisSpec, "tick.tickSize")),
|
|
93
|
+
(0, vutils_1.get)(axisSpec, "label.visible") && (labelOffset += (0, vutils_1.get)(axisSpec, "label.space")),
|
|
94
|
+
labelOffset;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function angleLabelOrientAttribute(angle) {
|
|
98
|
+
let align = "center", baseline = "middle";
|
|
99
|
+
return align = (angle = normalizeAngle(angle)) >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3) ? "left" : angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3) ? "right" : "center",
|
|
100
|
+
baseline = angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6) ? "bottom" : angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6) ? "top" : "middle",
|
|
101
|
+
{
|
|
102
|
+
align: align,
|
|
103
|
+
baseline: baseline
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function normalizeAngle(angle) {
|
|
108
|
+
for (;angle < 0; ) angle += 2 * Math.PI;
|
|
109
|
+
for (;angle >= 2 * Math.PI; ) angle -= 2 * Math.PI;
|
|
110
|
+
return angle;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
exports.getPolarAngleLabelBounds = getPolarAngleLabelBounds, exports.getAxisLabelOffset = getAxisLabelOffset,
|
|
114
|
+
exports.angleLabelOrientAttribute = angleLabelOrientAttribute, exports.normalizeAngle = normalizeAngle;
|
|
115
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/util/tick-data/util.ts"],"names":[],"mappings":";;;AAEA,6CAAiH;AACjH,+CAAiE;AAEjE,MAAM,wBAAwB,GAE5B,kJAAkJ,CAAC;AAErJ,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,MAAM,eAAe,GAAG,CACtB,QAAuB,EACvB,MAAoC,EACpC,cAAwB,EACN,EAAE;IACpB,OAAO,IAAI,oBAAW,iBAElB,iBAAiB,EAAE;YACjB,UAAU,EAAE,wBAAwB;YACpC,QAAQ,EAAE,sBAAsB;SACjC,EACD,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAa,EACzD,cAAc,EAAE,cAAc,GAAG,oBAAW,CAAC,iBAAiB,GAAG,oBAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,IACzG,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,GAEnB,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE;IACxC,IAAI,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEK,MAAM,uBAAuB,GAAG,CAAC,MAAa,EAAE,EAAO,EAAS,EAAE;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,KAAa,EAAE,EAAE;QACpD,OAAO;YACL,KAAK;YACL,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAGK,MAAM,YAAY,GAAG,CAAC,SAAqB,EAAE,SAAqB,EAAE,MAAc,CAAC,EAAW,EAAE;IACrG,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB;AAGK,MAAM,aAAa,GAAG,CAAC,SAAqB,EAAE,SAAqB,EAAoB,EAAE;IAC9F,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;QAC/B,UAAU,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;KAC1C;SAAM,IAAI,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;QACtC,UAAU,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;KAC1C;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;QAC/B,QAAQ,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;KACxC;SAAM,IAAI,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;QACtC,QAAQ,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;KACxC;IAED,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;AAEF,SAAgB,SAAS,CAAC,CAAc,EAAE,CAAc,EAAE,GAAW;IACnE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAFD,8BAEC;AAMD,SAAgB,UAAU,CAAI,KAAsB,EAAE,GAAW;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;QACpE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,gCAQC;AAED,MAAM,YAAY,GAAG,EAAE,CAAC;AAEjB,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,MAAa,EAAE,EAAO,EAAgB,EAAE;;IACjG,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IACtF,MAAM,UAAU,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC9D,IAAI,WAAW,GAAG,UAAU,CAAC;IAC7B,IAAI,YAAY,EAAE;QAChB,WAAW,GAAG,CAAC,CAAC;KACjB;SAAM,IAAI,UAAU,EAAE;QACrB,WAAW,GAAG,IAAA,eAAO,EAAC,CAAC,EAAE,CAAC,CAAC;KAC5B;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;;QACvD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAGxD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAGlD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QAEzC,IAAI,KAAU,CAAC;QACf,IAAI,UAAU,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE;YACzC,KAAK,GAAG,MAAM,CAAC;SAChB;aAAM,IAAI,UAAU,IAAI,YAAY,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,KAAK,GAAG,OAAO,CAAC;SACjB;aAAM;YACL,KAAK,GAAG,MAAA,UAAU,CAAC,SAAS,mCAAI,QAAQ,CAAC;SAC1C;QACD,IAAI,KAAK,KAAK,OAAO,EAAE;YACrB,KAAK,IAAI,SAAS,CAAC;SACpB;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;SACxB;QAED,IAAI,QAAa,CAAC;QAClB,IAAI,UAAU,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE;YACvC,QAAQ,GAAG,KAAK,CAAC;SAClB;aAAM,IAAI,UAAU,IAAI,UAAU,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,QAAQ,GAAG,QAAQ,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,MAAA,UAAU,CAAC,YAAY,mCAAI,QAAQ,CAAC;SAChD;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,KAAK,IAAI,UAAU,CAAC;SACrB;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAChC,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;SACzB;QAGD,MAAM,MAAM,GAAG,IAAI,mBAAU,EAAE;aAC5B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,UAAU,CAAC;aACxD,MAAM,CAAC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA9DW,QAAA,uBAAuB,2BA8DlC;AAEK,MAAM,wBAAwB,GAAG,CAAC,KAAiB,EAAE,MAAa,EAAE,EAAO,EAAgB,EAAE;;IAClG,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,EAAI,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAGxD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAGlD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAA,yBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;QAC/E,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAG9G,MAAM,MAAM,GAAG,IAAI,mBAAU,EAAE;aAC5B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,UAAU,CAAC;aACxD,MAAM,CAAC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAjCW,QAAA,wBAAwB,4BAiCnC;AAEF,SAAgB,kBAAkB,CAAC,QAAa;IAC9C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,IAAA,YAAG,EAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;QACjC,WAAW,IAAI,IAAA,YAAG,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;KAC/C;IAED,IAAI,IAAA,YAAG,EAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QAClC,WAAW,IAAI,IAAA,YAAG,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;KAC7C;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAXD,gDAWC;AAED,SAAgB,yBAAyB,CAAC,KAAa;IACrD,IAAI,KAAK,GAAQ,QAAQ,CAAC;IAC1B,IAAI,QAAQ,GAAQ,QAAQ,CAAC;IAE7B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAG9B,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QAC5D,KAAK,GAAG,MAAM,CAAC;KAChB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,KAAK,GAAG,OAAO,CAAC;KACjB;SAAM;QACL,KAAK,GAAG,QAAQ,CAAC;KAClB;IAGD,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QAC7D,QAAQ,GAAG,QAAQ,CAAC;KACrB;SAAM,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QACnE,QAAQ,GAAG,KAAK,CAAC;KAClB;SAAM;QACL,QAAQ,GAAG,QAAQ,CAAC;KACrB;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAzBD,8DAyBC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,GAAG,CAAC,EAAE;QAChB,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;QAC3B,KAAK,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,wCAQC","file":"util.js","sourcesContent":["import type { IBaseScale } from '@visactor/vscale';\nimport type { IBoundsLike, ITextMeasureOption } from '@visactor/vutils';\nimport { TextMeasure, degreeToRadian, isValidNumber, AABBBounds, get, polarToCartesian } from '@visactor/vutils';\nimport { getTextBounds, type IGraphic } from '@visactor/vrender';\n\nconst DEFAULT_TEXT_FONT_FAMILY =\n // eslint-disable-next-line max-len\n 'PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol';\n\nconst DEFAULT_TEXT_FONT_SIZE = 14;\n\nconst initTextMeasure = (\n textSpec?: Partial<any>,\n option?: Partial<ITextMeasureOption>,\n useNaiveCanvas?: boolean\n): TextMeasure<any> => {\n return new TextMeasure<any>(\n {\n defaultFontParams: {\n fontFamily: DEFAULT_TEXT_FONT_FAMILY,\n fontSize: DEFAULT_TEXT_FONT_SIZE\n },\n getTextBounds: useNaiveCanvas ? undefined : getTextBounds,\n specialCharSet: '-/: .,@%\\'\"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),\n ...(option ?? {})\n },\n textSpec\n );\n};\n\nexport const radians = (angle?: number) => {\n if (!isValidNumber(angle)) {\n return null;\n }\n return degreeToRadian(angle);\n};\n\nexport const convertDomainToTickData = (domain: any[], op: any): any[] => {\n const ticks = domain.map((t: number, index: number) => {\n return {\n index,\n value: t,\n label: op.labelFormatter ? op.labelFormatter(t) : `${t}`\n };\n });\n return ticks;\n};\n\n/** 判断两个label是否有重叠情况 */\nexport const labelOverlap = (prevLabel: AABBBounds, nextLabel: AABBBounds, gap: number = 0): boolean => {\n const prevBounds = new AABBBounds(prevLabel).expand(gap / 2);\n const nextBounds = new AABBBounds(nextLabel).expand(gap / 2);\n return prevBounds.intersects(nextBounds);\n};\n\n/** 判断两个不相交的label相隔的距离 */\nexport const labelDistance = (prevLabel: AABBBounds, nextLabel: AABBBounds): [number, number] => {\n let horizontal = 0;\n if (prevLabel.x2 < nextLabel.x1) {\n horizontal = nextLabel.x1 - prevLabel.x2;\n } else if (nextLabel.x2 < prevLabel.x1) {\n horizontal = prevLabel.x1 - nextLabel.x2;\n }\n\n let vertical = 0;\n if (prevLabel.y2 < nextLabel.y1) {\n vertical = nextLabel.y1 - prevLabel.y2;\n } else if (nextLabel.y2 < prevLabel.y1) {\n vertical = prevLabel.y1 - nextLabel.y2;\n }\n\n return [horizontal, vertical];\n};\n\nexport function intersect(a: IBoundsLike, b: IBoundsLike, sep: number) {\n return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);\n}\n\nexport interface ILabelItem<T> extends Pick<IGraphic, 'AABBBounds'> {\n value?: T;\n}\n\nexport function hasOverlap<T>(items: ILabelItem<T>[], pad: number): boolean {\n for (let i = 1, n = items.length, a = items[0], b; i < n; a = b, ++i) {\n b = items[i];\n if (intersect(a.AABBBounds, b.AABBBounds, pad)) {\n return true;\n }\n }\n return false;\n}\n\nconst MIN_TICK_GAP = 12;\n\nexport const getCartesianLabelBounds = (scale: IBaseScale, domain: any[], op: any): AABBBounds[] => {\n const { labelStyle, axisOrientType, labelFlush, labelFormatter, startAngle = 0 } = op;\n const labelAngle = labelStyle.angle ?? 0;\n const isHorizontal = ['bottom', 'top'].includes(axisOrientType);\n const isVertical = ['left', 'right'].includes(axisOrientType);\n let orientAngle = startAngle;\n if (isHorizontal) {\n orientAngle = 0;\n } else if (isVertical) {\n orientAngle = radians(-90);\n }\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any, i: number) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const pos = scale.scale(v);\n let textX = Math.cos(orientAngle) * pos;\n let textY = -Math.sin(orientAngle) * pos;\n\n let align: any;\n if (labelFlush && isHorizontal && i === 0) {\n align = 'left';\n } else if (labelFlush && isHorizontal && i === domain.length - 1) {\n align = 'right';\n } else {\n align = labelStyle.textAlign ?? 'center';\n }\n if (align === 'right') {\n textX -= textWidth;\n } else if (align === 'center') {\n textX -= textWidth / 2;\n }\n\n let baseline: any;\n if (labelFlush && isVertical && i === 0) {\n baseline = 'top';\n } else if (labelFlush && isVertical && i === domain.length - 1) {\n baseline = 'bottom';\n } else {\n baseline = labelStyle.textBaseline ?? 'middle';\n }\n if (baseline === 'bottom') {\n textY -= textHeight;\n } else if (baseline === 'middle') {\n textY -= textHeight / 2;\n }\n\n // 计算 label 包围盒\n const bounds = new AABBBounds()\n .set(textX, textY, textX + textWidth, textY + textHeight)\n .rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport const getPolarAngleLabelBounds = (scale: IBaseScale, domain: any[], op: any): AABBBounds[] => {\n const { labelStyle, getRadius, axisSpec, labelFormatter } = op;\n const radius = getRadius?.();\n const labelAngle = labelStyle.angle ?? 0;\n\n const labelOffset = getAxisLabelOffset(axisSpec);\n\n const textMeasure = initTextMeasure(labelStyle);\n const labelBoundsList = domain.map((v: any) => {\n const str = labelFormatter ? labelFormatter(v) : `${v}`;\n\n // 估算文本宽高\n const { width, height } = textMeasure.quickMeasure(str);\n const textWidth = Math.max(width, MIN_TICK_GAP);\n const textHeight = Math.max(height, MIN_TICK_GAP);\n\n // 估算文本位置\n const angle = scale.scale(v);\n let textX = 0;\n let textY = 0;\n const orient = angleLabelOrientAttribute(angle);\n const { x, y } = polarToCartesian({ x: 0, y: 0 }, radius + labelOffset, angle);\n textX = x + (orient.align === 'right' ? -textWidth : orient.align === 'center' ? -textWidth / 2 : 0);\n textY = y + (orient.baseline === 'bottom' ? -textHeight : orient.baseline === 'middle' ? -textHeight / 2 : 0);\n\n // 计算 label 包围盒\n const bounds = new AABBBounds()\n .set(textX, textY, textX + textWidth, textY + textHeight)\n .rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);\n return bounds;\n });\n\n return labelBoundsList;\n};\n\nexport function getAxisLabelOffset(axisSpec: any) {\n let labelOffset = 0;\n if (get(axisSpec, 'tick.visible')) {\n labelOffset += get(axisSpec, 'tick.tickSize');\n }\n\n if (get(axisSpec, 'label.visible')) {\n labelOffset += get(axisSpec, 'label.space');\n }\n\n return labelOffset;\n}\n\nexport function angleLabelOrientAttribute(angle: number) {\n let align: any = 'center';\n let baseline: any = 'middle';\n\n angle = normalizeAngle(angle);\n\n // left: 5/3 - 1/3; right: 2/3 - 4/3; center: 5/3 - 1/3 & 2/3 - 4/3\n if (angle >= Math.PI * (5 / 3) || angle <= Math.PI * (1 / 3)) {\n align = 'left';\n } else if (angle >= Math.PI * (2 / 3) && angle <= Math.PI * (4 / 3)) {\n align = 'right';\n } else {\n align = 'center';\n }\n\n // bottom: 7/6 - 11/6; top: 1/6 - 5/6; middle: 11/6 - 1/6 & 5/6 - 7/6\n if (angle >= Math.PI * (7 / 6) && angle <= Math.PI * (11 / 6)) {\n baseline = 'bottom';\n } else if (angle >= Math.PI * (1 / 6) && angle <= Math.PI * (5 / 6)) {\n baseline = 'top';\n } else {\n baseline = 'middle';\n }\n\n return { align, baseline };\n}\n\nexport function normalizeAngle(angle: number): number {\n while (angle < 0) {\n angle += Math.PI * 2;\n }\n while (angle >= Math.PI * 2) {\n angle -= Math.PI * 2;\n }\n return angle;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function transformLegendTitleAttributes(title: any): any;
|
|
2
|
+
export declare function transformToGraphic(style: any): any;
|
|
3
|
+
export declare function transformComponentStyle(cfg?: any): any;
|
|
4
|
+
export declare function transformStateStyle(stateStyle: any): any;
|
|
5
|
+
export declare function transformAxisLineStyle(lineCfg: any): any;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.transformAxisLineStyle = exports.transformStateStyle = exports.transformComponentStyle = exports.transformToGraphic = exports.transformLegendTitleAttributes = void 0;
|
|
6
|
+
|
|
7
|
+
const vutils_1 = require("@visactor/vutils");
|
|
8
|
+
|
|
9
|
+
function transformLegendTitleAttributes(title) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const transformedTitle = Object.assign({}, title);
|
|
12
|
+
return (0, vutils_1.isEmpty)(title.style) || (transformedTitle.textStyle = transformToGraphic(title.style)),
|
|
13
|
+
(0, vutils_1.isEmpty)(title.textStyle) || (0, vutils_1.merge)(transformedTitle.textStyle, transformToGraphic(title.textStyle)),
|
|
14
|
+
(null === (_a = title.shape) || void 0 === _a ? void 0 : _a.style) && transformToGraphic(transformedTitle.shape.style),
|
|
15
|
+
(null === (_b = title.background) || void 0 === _b ? void 0 : _b.style) && transformToGraphic(transformedTitle.background.style),
|
|
16
|
+
transformedTitle;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function transformToGraphic(style) {
|
|
20
|
+
return (0, vutils_1.isEmpty)(style) || style.angle && (style.angle = (0, vutils_1.degreeToRadian)(style.angle)),
|
|
21
|
+
style;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function transformComponentStyle(cfg = {}) {
|
|
25
|
+
return (0, vutils_1.isEmpty)(cfg.style) || (cfg.style = transformToGraphic(cfg.style)),
|
|
26
|
+
(0, vutils_1.isEmpty)(cfg.state) || Object.keys(cfg.state).forEach((key => {
|
|
27
|
+
(0, vutils_1.isEmpty)(cfg.state[key]) || (cfg.state[key] = transformToGraphic(cfg.state[key]));
|
|
28
|
+
})), cfg;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function transformStateStyle(stateStyle) {
|
|
32
|
+
return (0, vutils_1.isEmpty)(stateStyle) ? null : (Object.keys(stateStyle).forEach((key => {
|
|
33
|
+
(0, vutils_1.isEmpty)(stateStyle[key]) || (stateStyle[key] = transformToGraphic(stateStyle[key]));
|
|
34
|
+
})), stateStyle);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function transformAxisLineStyle(lineCfg) {
|
|
38
|
+
return transformComponentStyle(lineCfg), transformComponentStyle(lineCfg.startSymbol),
|
|
39
|
+
transformComponentStyle(lineCfg.endSymbol), lineCfg;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
exports.transformLegendTitleAttributes = transformLegendTitleAttributes, exports.transformToGraphic = transformToGraphic,
|
|
43
|
+
exports.transformComponentStyle = transformComponentStyle, exports.transformStateStyle = transformStateStyle,
|
|
44
|
+
exports.transformAxisLineStyle = transformAxisLineStyle;
|
|
45
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/util/transform.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAElE,SAAgB,8BAA8B,CAAC,KAAU;;IACvD,MAAM,gBAAgB,qBACjB,KAAK,CACT,CAAC;IACF,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACzB,gBAAgB,CAAC,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC9D;IACD,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC7B,IAAA,cAAK,EAAC,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;KACxE;IAED,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,KAAK,EAAE;QACtB,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAClD;IAED,IAAI,MAAA,KAAK,CAAC,UAAU,0CAAE,KAAK,EAAE;QAC3B,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACvD;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAnBD,wEAmBC;AAED,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,KAAK,CAAC,KAAK,GAAG,IAAA,uBAAc,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3C;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AATD,gDASC;AAED,SAAgB,uBAAuB,CAAC,MAAW,EAAE;IACnD,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,GAAG,CAAC,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC3C;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACrD;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAdD,0DAcC;AAED,SAAgB,mBAAmB,CAAC,UAAe;IACjD,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpC,IAAI,CAAC,IAAA,gBAAO,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SACvD;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAXD,kDAWC;AAED,SAAgB,sBAAsB,CAAC,OAAY;IACjD,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAND,wDAMC","file":"transform.js","sourcesContent":["import { degreeToRadian, isEmpty, merge } from '@visactor/vutils';\n\nexport function transformLegendTitleAttributes(title: any) {\n const transformedTitle = {\n ...title\n };\n if (!isEmpty(title.style)) {\n transformedTitle.textStyle = transformToGraphic(title.style);\n }\n if (!isEmpty(title.textStyle)) {\n merge(transformedTitle.textStyle, transformToGraphic(title.textStyle));\n }\n\n if (title.shape?.style) {\n transformToGraphic(transformedTitle.shape.style);\n }\n\n if (title.background?.style) {\n transformToGraphic(transformedTitle.background.style);\n }\n return transformedTitle;\n}\n\nexport function transformToGraphic(style: any) {\n if (isEmpty(style)) {\n return style;\n }\n if (style.angle) {\n style.angle = degreeToRadian(style.angle);\n }\n\n return style;\n}\n\nexport function transformComponentStyle(cfg: any = {}) {\n if (!isEmpty(cfg.style)) {\n cfg.style = transformToGraphic(cfg.style);\n }\n\n if (!isEmpty(cfg.state)) {\n Object.keys(cfg.state).forEach(key => {\n if (!isEmpty(cfg.state[key])) {\n cfg.state[key] = transformToGraphic(cfg.state[key]);\n }\n });\n }\n\n return cfg;\n}\n\nexport function transformStateStyle(stateStyle: any) {\n if (isEmpty(stateStyle)) {\n return null;\n }\n Object.keys(stateStyle).forEach(key => {\n if (!isEmpty(stateStyle[key])) {\n stateStyle[key] = transformToGraphic(stateStyle[key]);\n }\n });\n\n return stateStyle;\n}\n\nexport function transformAxisLineStyle(lineCfg: any) {\n transformComponentStyle(lineCfg);\n transformComponentStyle(lineCfg.startSymbol);\n transformComponentStyle(lineCfg.endSymbol);\n\n return lineCfg;\n}\n"]}
|
package/cjs/core/BaseTable.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellAddress, CellRange, TableEventHandlersEventArgumentMap, TableEventHandlersReturnMap, TableKeyboardOptions, DropDownMenuHighlightInfo, MenuListItem, WidthModeDef, ICustomRender, ICellHeaderPaths, HeaderData, FullExtendStyle, FieldDef, ColumnTypeOption, SortState, IPagerConf, ICustomLayout, CellInfo, CellStyle, DropDownMenuOptions, FieldFormat, FieldData, MaybePromiseOrUndefined, MousePointerCellEvent, DropDownMenuEventInfo, HierarchyState, FieldKeyDef, CellType, LayoutObjectId } from '../ts-types';
|
|
1
|
+
import type { CellAddress, CellRange, TableEventHandlersEventArgumentMap, TableEventHandlersReturnMap, TableKeyboardOptions, DropDownMenuHighlightInfo, MenuListItem, WidthModeDef, ICustomRender, ICellHeaderPaths, HeaderData, FullExtendStyle, FieldDef, ColumnTypeOption, SortState, IPagerConf, ICustomLayout, CellInfo, CellStyle, DropDownMenuOptions, FieldFormat, FieldData, MaybePromiseOrUndefined, MousePointerCellEvent, DropDownMenuEventInfo, HierarchyState, FieldKeyDef, CellType, LayoutObjectId, HeightModeDef } from '../ts-types';
|
|
2
2
|
import type { ColumnIconOption } from '../ts-types';
|
|
3
3
|
import { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';
|
|
4
4
|
import { EventTarget } from '../event/EventTarget';
|
|
@@ -14,6 +14,7 @@ import { type ITextSize } from '@visactor/vutils';
|
|
|
14
14
|
import type { ColumnData, ColumnDefine, ColumnsDefine, IndicatorData } from '../ts-types/list-table/layout-map/api';
|
|
15
15
|
import type { TooltipOptions } from '../ts-types/tooltip';
|
|
16
16
|
import type { BaseTableAPI, BaseTableConstructorOptions, IBaseTableProtected } from '../ts-types/base-table';
|
|
17
|
+
import { DataSet } from '@visactor/vdataset';
|
|
17
18
|
export declare abstract class BaseTable extends EventTarget implements BaseTableAPI {
|
|
18
19
|
internalProps: IBaseTableProtected;
|
|
19
20
|
showFrozenIcon: boolean;
|
|
@@ -30,15 +31,18 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
30
31
|
tableX: number;
|
|
31
32
|
tableY: number;
|
|
32
33
|
_widthMode: WidthModeDef;
|
|
34
|
+
_heightMode: HeightModeDef;
|
|
35
|
+
_autoFillWidth: boolean;
|
|
33
36
|
customRender?: ICustomRender;
|
|
34
37
|
canvasWidth?: number;
|
|
35
38
|
canvasHeight?: number;
|
|
39
|
+
dataSet: DataSet;
|
|
36
40
|
scenegraph: Scenegraph;
|
|
37
41
|
stateManeger?: StateManeger;
|
|
38
42
|
eventManeger?: EventManeger;
|
|
39
43
|
_pixelRatio: number;
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
bottomFrozenRowCount: number;
|
|
45
|
+
rightFrozenColCount: number;
|
|
42
46
|
static get EVENT_TYPE(): typeof TABLE_EVENT_TYPE;
|
|
43
47
|
readonly options: BaseTableConstructorOptions;
|
|
44
48
|
version: string;
|
|
@@ -97,6 +101,10 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
97
101
|
set keyboardOptions(keyboardOptions: TableKeyboardOptions | null);
|
|
98
102
|
get widthMode(): WidthModeDef;
|
|
99
103
|
set widthMode(widthMode: WidthModeDef);
|
|
104
|
+
get heightMode(): HeightModeDef;
|
|
105
|
+
set heightMode(heightMode: HeightModeDef);
|
|
106
|
+
get autoFillWidth(): boolean;
|
|
107
|
+
set autoFillWidth(autoFillWidth: boolean);
|
|
100
108
|
private _colWidthDefineToPxWidth;
|
|
101
109
|
private _calculateAutoColWidthExpr;
|
|
102
110
|
private _getColWidthLimits;
|
|
@@ -170,10 +178,12 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
170
178
|
dispose: () => void;
|
|
171
179
|
}): void;
|
|
172
180
|
dispose(): void;
|
|
173
|
-
fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE,
|
|
181
|
+
fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, event: TableEventHandlersEventArgumentMap[TYPE]): TableEventHandlersReturnMap[TYPE][];
|
|
174
182
|
updateOption(options: BaseTableConstructorOptions): void;
|
|
175
183
|
getFrozenRowsHeight(): number;
|
|
176
184
|
getFrozenColsWidth(): number;
|
|
185
|
+
getBottomFrozenRowsHeight(): number;
|
|
186
|
+
getRightFrozenColsWidth(): number;
|
|
177
187
|
getDrawRange(): Rect;
|
|
178
188
|
_getMouseAbstractPoint(evt: TouchEvent | MouseEvent | undefined, isAddScroll?: boolean): {
|
|
179
189
|
x: number;
|
|
@@ -209,7 +219,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
209
219
|
selectCell(col: number, row: number): void;
|
|
210
220
|
abstract isListTable(): boolean;
|
|
211
221
|
abstract isPivotTable(): boolean;
|
|
212
|
-
|
|
222
|
+
abstract isPivotChart(): boolean;
|
|
223
|
+
protected abstract _getSortFuncFromHeaderOption(columns: ColumnsDefine | undefined, field: FieldDef, fieldKey?: FieldKeyDef): ((v1: any, v2: any, order: string) => 0 | 1 | -1) | undefined;
|
|
213
224
|
abstract refreshHeader(): void;
|
|
214
225
|
abstract refreshRowColCount(): void;
|
|
215
226
|
abstract getHierarchyState(col: number, row: number): HierarchyState | null;
|
|
@@ -260,6 +271,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
|
|
|
260
271
|
isColumnHeader(col: number, row: number): boolean;
|
|
261
272
|
isRowHeader(col: number, row: number): boolean;
|
|
262
273
|
isCornerHeader(col: number, row: number): boolean;
|
|
274
|
+
isRightFrozenColumn(col: number, row: number): boolean;
|
|
275
|
+
isBottomFrozenRow(col: number, row: number): boolean;
|
|
263
276
|
getCellInfo(col: number, row: number): MousePointerCellEvent;
|
|
264
277
|
_hasField(field: FieldDef, col: number, row: number): boolean;
|
|
265
278
|
_getCellStyle(col: number, row: number): FullExtendStyle;
|
package/cjs/core/BaseTable.js
CHANGED
|
@@ -33,21 +33,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
33
33
|
value: !0
|
|
34
34
|
}), exports.BaseTable = void 0;
|
|
35
35
|
|
|
36
|
-
const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../tooltip/TooltipHandler"), vutils_1 = require("@visactor/vutils"), text_1 = require("../scenegraph/graphic/text"), measure_text_1 = require("../scenegraph/utils/measure-text"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
|
|
36
|
+
const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../components/tooltip/TooltipHandler"), vutils_1 = require("@visactor/vutils"), text_1 = require("../scenegraph/graphic/text"), measure_text_1 = require("../scenegraph/utils/measure-text"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../components/menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), legend_1 = require("../components/legend/legend"), vdataset_1 = require("@visactor/vdataset"), title_1 = require("../components/title/title"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
|
|
37
37
|
|
|
38
38
|
(0, style_1.importStyle)();
|
|
39
39
|
|
|
40
|
+
const EMPTY_STYLE = {};
|
|
41
|
+
|
|
40
42
|
class BaseTable extends EventTarget_1.EventTarget {
|
|
41
43
|
static get EVENT_TYPE() {
|
|
42
44
|
return TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE;
|
|
43
45
|
}
|
|
44
46
|
constructor(options = {}) {
|
|
45
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
46
|
-
super(), this.showFrozenIcon = !0, this.showSort = !0, this.
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.
|
|
47
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
48
|
+
super(), this.showFrozenIcon = !0, this.showSort = !0, this.bottomFrozenRowCount = 0,
|
|
49
|
+
this.rightFrozenColCount = 0, this.version = "0.9.2-alpha.1", this.id = `VTable${Date.now()}`,
|
|
50
|
+
this.throttleInvalidate = (0, util_1.throttle2)(this.invalidate.bind(this), 200);
|
|
51
|
+
const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, keyboardOptions: keyboardOptions, parentElement: parentElement, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio} = options;
|
|
52
|
+
this.options = options, this._widthMode = widthMode, this._heightMode = heightMode,
|
|
53
|
+
this._autoFillWidth = autoFillWidth, this.customRender = customRender, this.padding = {
|
|
51
54
|
top: 0,
|
|
52
55
|
right: 0,
|
|
53
56
|
left: 0,
|
|
@@ -59,7 +62,6 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
59
62
|
this.tableNoFrameHeight = 0;
|
|
60
63
|
const internalProps = this.internalProps = {};
|
|
61
64
|
void 0 !== showFrozenIcon && (this.showFrozenIcon = showFrozenIcon), "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
|
|
62
|
-
internalProps.autoRowHeight = null !== (_a = options.autoRowHeight) && void 0 !== _a && _a,
|
|
63
65
|
internalProps.handler = new EventHandler_1.EventHandler, internalProps.element = (0,
|
|
64
66
|
tableHelper_1.createRootElement)(this.padding), internalProps.focusControl = new FouseInput_1.FocusInput(this, internalProps.element),
|
|
65
67
|
internalProps.pixelRatio = pixelRatio, internalProps.canvas = document.createElement("canvas"),
|
|
@@ -77,23 +79,31 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
77
79
|
var _a;
|
|
78
80
|
return this._.canvas.width / (null !== (_a = this._.context.pixelRatio) && void 0 !== _a ? _a : window.devicePixelRatio);
|
|
79
81
|
}
|
|
80
|
-
}, internalProps.cellTextOverflows = {}, internalProps.focusedTable = !1, internalProps.theme = themes_1.default.of(null !== (
|
|
82
|
+
}, internalProps.cellTextOverflows = {}, internalProps.focusedTable = !1, internalProps.theme = themes_1.default.of(null !== (_a = options.theme) && void 0 !== _a ? _a : themes_1.default.DEFAULT),
|
|
81
83
|
parentElement ? (parentElement.innerHTML = "", parentElement.appendChild(internalProps.element),
|
|
82
|
-
this._updateSize()) : this._updateSize(), this.
|
|
83
|
-
this._willNextFrameInvalidate = !1, this.options = options, internalProps.theme = themes_1.default.of(null !== (_c = options.theme) && void 0 !== _c ? _c : themes_1.default.DEFAULT),
|
|
84
|
+
this._updateSize()) : this._updateSize(), this.options = options, internalProps.theme = themes_1.default.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes_1.default.DEFAULT),
|
|
84
85
|
internalProps.bodyHelper = new body_helper_1.BodyHelper(this), internalProps.headerHelper = new header_helper_1.HeaderHelper(this),
|
|
85
|
-
internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (
|
|
86
|
-
internalProps.limitMaxAutoWidth = null !== (
|
|
87
|
-
this.
|
|
88
|
-
this.
|
|
86
|
+
internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_c = options.allowFrozenColCount) && void 0 !== _c ? _c : internalProps.colCount,
|
|
87
|
+
internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
|
|
88
|
+
this.dataSet = new vdataset_1.DataSet, this.scenegraph = new scenegraph_1.Scenegraph(this),
|
|
89
|
+
this.stateManeger = new state_1.StateManeger(this), this.eventManeger = new event_1.EventManeger(this),
|
|
90
|
+
options.legends && (internalProps.legends = new legend_1.TableLegend(options.legends, this),
|
|
91
|
+
this.scenegraph.tableGroup.setAttributes({
|
|
92
|
+
x: this.tableX,
|
|
93
|
+
y: this.tableY
|
|
94
|
+
})), options.title && (internalProps.title = new title_1.Title(options.title, this),
|
|
95
|
+
this.scenegraph.tableGroup.setAttributes({
|
|
96
|
+
x: this.tableX,
|
|
97
|
+
y: this.tableY
|
|
98
|
+
})), internalProps.tooltip = Object.assign({
|
|
89
99
|
renderMode: "html",
|
|
90
100
|
isShowOverflowTextTooltip: !1,
|
|
91
101
|
confine: !0
|
|
92
102
|
}, options.tooltip), "html" === internalProps.tooltip.renderMode && (internalProps.tooltipHandler = new TooltipHandler_1.TooltipHandler(this, internalProps.tooltip.confine)),
|
|
93
103
|
internalProps.menu = Object.assign({
|
|
94
104
|
renderMode: "html"
|
|
95
|
-
}, options.menu), Array.isArray(null === (
|
|
96
|
-
Array.isArray(null === (
|
|
105
|
+
}, options.menu), Array.isArray(null === (_e = options.menu) || void 0 === _e ? void 0 : _e.dropDownMenuHighlight) && this.setDropDownMenuHighlight(null === (_f = options.menu) || void 0 === _f ? void 0 : _f.dropDownMenuHighlight),
|
|
106
|
+
Array.isArray(null === (_g = options.menu) || void 0 === _g ? void 0 : _g.defaultHeaderMenuItems) && (this.globalDropDownMenu = options.menu.defaultHeaderMenuItems),
|
|
97
107
|
"html" === internalProps.menu.renderMode && (internalProps.menuHandler = new MenuHandler_1.MenuHandler(this)),
|
|
98
108
|
this.headerStyleCache = new Map, this.bodyStyleCache = new Map;
|
|
99
109
|
}
|
|
@@ -222,6 +232,18 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
222
232
|
set widthMode(widthMode) {
|
|
223
233
|
widthMode !== this._widthMode && (this._widthMode = widthMode);
|
|
224
234
|
}
|
|
235
|
+
get heightMode() {
|
|
236
|
+
return this._heightMode;
|
|
237
|
+
}
|
|
238
|
+
set heightMode(heightMode) {
|
|
239
|
+
heightMode !== this._heightMode && (this._heightMode = heightMode);
|
|
240
|
+
}
|
|
241
|
+
get autoFillWidth() {
|
|
242
|
+
return this._autoFillWidth;
|
|
243
|
+
}
|
|
244
|
+
set autoFillWidth(autoFillWidth) {
|
|
245
|
+
autoFillWidth !== this._autoFillWidth && (this._autoFillWidth = autoFillWidth);
|
|
246
|
+
}
|
|
225
247
|
_colWidthDefineToPxWidth(width) {
|
|
226
248
|
return (0, tableHelper_1.isAutoDefine)(width) ? (0, tableHelper_1._toPxWidth)(this, this._calculateAutoColWidthExpr()) : (0,
|
|
227
249
|
tableHelper_1._toPxWidth)(this, width);
|
|
@@ -307,7 +329,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
307
329
|
widths.forEach(((value, index) => this.setColWidth(index, value)));
|
|
308
330
|
}
|
|
309
331
|
getColsWidth(startCol, endCol) {
|
|
310
|
-
var _a;
|
|
332
|
+
var _a, _b;
|
|
311
333
|
endCol = Math.min(endCol, this.colCount - 1);
|
|
312
334
|
const cachedColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol}`);
|
|
313
335
|
if (null != cachedColWidth) return cachedColWidth;
|
|
@@ -315,13 +337,13 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
315
337
|
if (null != cachedLowerColWidth) {
|
|
316
338
|
const width = this.colWidthsMap.get(endCol);
|
|
317
339
|
let adjustW;
|
|
318
|
-
adjustW = width ? "adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(endCol, this._colWidthDefineToPxWidth(width)) : 0;
|
|
340
|
+
adjustW = width ? "adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(endCol, this._colWidthDefineToPxWidth(width)) : this.isRowHeader(endCol, 0) || this.isCornerHeader(endCol, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[endCol]) && void 0 !== _a ? _a : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth;
|
|
319
341
|
const addWidth = cachedLowerColWidth + adjustW;
|
|
320
342
|
return startCol >= 0 && endCol >= 0 && !Number.isNaN(addWidth) && this._colRangeWidthsMap.set(`$${startCol}$${endCol}`, Math.round(addWidth)),
|
|
321
343
|
Math.round(addWidth);
|
|
322
344
|
}
|
|
323
345
|
let w = 0;
|
|
324
|
-
for (let col = startCol; col <= endCol; col++) w += this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (
|
|
346
|
+
for (let col = startCol; col <= endCol; col++) w += this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_b = this.defaultHeaderColWidth[col]) && void 0 !== _b ? _b : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth;
|
|
325
347
|
this.colWidthsMap.each(startCol, endCol, ((width, col) => {
|
|
326
348
|
var _a;
|
|
327
349
|
w += ("adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(col, this._colWidthDefineToPxWidth(width))) - (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[col]) && void 0 !== _a ? _a : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth);
|
|
@@ -335,8 +357,8 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
335
357
|
Math.round(w);
|
|
336
358
|
}
|
|
337
359
|
getRowHeight(row) {
|
|
338
|
-
var _a;
|
|
339
|
-
return this.rowHeightsMap.get(row)
|
|
360
|
+
var _a, _b;
|
|
361
|
+
return this.rowHeightsMap.get(row) ? this.rowHeightsMap.get(row) : this.isColumnHeader(0, row) || this.isCornerHeader(0, row) ? Array.isArray(this.defaultHeaderRowHeight) ? null !== (_a = this.defaultHeaderRowHeight[row]) && void 0 !== _a ? _a : this.internalProps.defaultRowHeight : this.defaultHeaderRowHeight : this.isBottomFrozenRow(this.rowHeaderLevelCount, row) ? Array.isArray(this.defaultHeaderRowHeight) ? null !== (_b = this.defaultHeaderRowHeight[row]) && void 0 !== _b ? _b : this.internalProps.defaultRowHeight : this.defaultHeaderRowHeight : this.internalProps.defaultRowHeight;
|
|
340
362
|
}
|
|
341
363
|
setRowHeight(row, height, clearCache) {
|
|
342
364
|
this.rowHeightsMap.put(row, Math.round(height)), clearCache && this._clearRowRangeHeightsMap(row);
|
|
@@ -347,7 +369,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
347
369
|
this._rowRangeHeightsMap.set(`$0$${row}`, Math.round((null !== (_a = this._rowRangeHeightsMap.get("$0$" + (row - 1))) && void 0 !== _a ? _a : 0) + rowHeight));
|
|
348
370
|
}
|
|
349
371
|
getRowsHeight(startRow, endRow) {
|
|
350
|
-
var _a, _b
|
|
372
|
+
var _a, _b;
|
|
351
373
|
const cachedRowHeight = this._rowRangeHeightsMap.get(`$${startRow}$${endRow}`);
|
|
352
374
|
if (null != cachedRowHeight) return cachedRowHeight;
|
|
353
375
|
const cachedLowerRowHeight = this._rowRangeHeightsMap.get(`$${startRow}$${endRow - 1}`);
|
|
@@ -357,14 +379,14 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
357
379
|
height;
|
|
358
380
|
}
|
|
359
381
|
let h = 0;
|
|
360
|
-
for (let i = startRow; i <= endRow; i++) h += this.
|
|
382
|
+
for (let i = startRow; i <= endRow; i++) h += this.getRowHeight(i);
|
|
361
383
|
return startRow >= 0 && endRow >= 0 && h > 0 && this._rowRangeHeightsMap.set(`$${startRow}$${endRow}`, Math.round(h)),
|
|
362
384
|
Math.round(h);
|
|
363
385
|
}
|
|
364
386
|
getColWidthDefine(col) {
|
|
365
|
-
var _a;
|
|
387
|
+
var _a, _b;
|
|
366
388
|
const width = this.colWidthsMap.get(col);
|
|
367
|
-
return "number" == typeof width && width <= 0 ? 0 : width || (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[col]) && void 0 !== _a ? _a : this.defaultColWidth : this.defaultHeaderColWidth : this.defaultColWidth);
|
|
389
|
+
return "number" == typeof width && width <= 0 ? 0 : width || (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[col]) && void 0 !== _a ? _a : this.defaultColWidth : this.defaultHeaderColWidth : this.isRightFrozenColumn(col, this.columnHeaderLevelCount) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_b = this.defaultHeaderColWidth[col]) && void 0 !== _b ? _b : this.defaultColWidth : this.defaultHeaderColWidth : this.defaultColWidth);
|
|
368
390
|
}
|
|
369
391
|
getColWidth(col) {
|
|
370
392
|
const width = this.getColWidthDefine(col);
|
|
@@ -500,7 +522,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
500
522
|
return this.getCellsRectWidth(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row);
|
|
501
523
|
}
|
|
502
524
|
isFrozenCell(col, row) {
|
|
503
|
-
const {frozenRowCount: frozenRowCount, frozenColCount: frozenColCount} = this.internalProps, isFrozenRow = frozenRowCount > 0 && row < frozenRowCount, isFrozenCol = frozenColCount > 0 && col < frozenColCount;
|
|
525
|
+
const {frozenRowCount: frozenRowCount, frozenColCount: frozenColCount} = this.internalProps, isFrozenRow = frozenRowCount > 0 && row < frozenRowCount || this.isBottomFrozenRow(col, row), isFrozenCol = frozenColCount > 0 && col < frozenColCount || this.isRightFrozenColumn(col, row);
|
|
504
526
|
return isFrozenRow || isFrozenCol ? {
|
|
505
527
|
row: isFrozenRow,
|
|
506
528
|
col: isFrozenCol
|
|
@@ -639,20 +661,21 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
639
661
|
const {parentElement: parentElement} = internalProps.element;
|
|
640
662
|
parentElement && parentElement.removeChild(internalProps.element);
|
|
641
663
|
}
|
|
642
|
-
fireListeners(type,
|
|
643
|
-
return super.fireListeners(type,
|
|
664
|
+
fireListeners(type, event) {
|
|
665
|
+
return super.fireListeners(type, event);
|
|
644
666
|
}
|
|
645
667
|
updateOption(options) {
|
|
646
|
-
var _a, _b, _c
|
|
668
|
+
var _a, _b, _c;
|
|
647
669
|
this.options = options;
|
|
648
|
-
const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode} = options;
|
|
670
|
+
const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, customRender: customRender} = options;
|
|
649
671
|
pixelRatio && pixelRatio !== this.internalProps.pixelRatio && (this.internalProps.pixelRatio = pixelRatio),
|
|
650
672
|
padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
|
|
651
673
|
this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
|
|
652
674
|
padding.bottom && (this.padding.bottom = padding.bottom), padding.left && (this.padding.left = padding.left),
|
|
653
675
|
padding.right && (this.padding.right = padding.right))), this.showFrozenIcon = "boolean" != typeof showFrozenIcon || showFrozenIcon,
|
|
654
676
|
"number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
|
|
655
|
-
this.widthMode = null != widthMode ? widthMode : "standard"
|
|
677
|
+
this.widthMode = null != widthMode ? widthMode : "standard", this.heightMode = null != heightMode ? heightMode : "standard",
|
|
678
|
+
this.autoFillWidth = null != autoFillWidth && autoFillWidth, this.customRender = customRender;
|
|
656
679
|
const internalProps = this.internalProps;
|
|
657
680
|
"node" !== env_1.Env.mode && (0, tableHelper_1.updateRootElementPadding)(internalProps.element, this.padding),
|
|
658
681
|
internalProps.frozenColCount = frozenColCount, internalProps.defaultRowHeight = defaultRowHeight,
|
|
@@ -660,18 +683,30 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
660
683
|
internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
|
|
661
684
|
internalProps.keyboardOptions = keyboardOptions, internalProps.columnResizeMode = columnResizeMode,
|
|
662
685
|
internalProps.dragHeaderMode = dragHeaderMode, internalProps.cellTextOverflows = {},
|
|
686
|
+
internalProps._rowHeightsMap = new NumberMap_1.NumberMap, internalProps._rowRangeHeightsMap = new Map,
|
|
687
|
+
internalProps._colRangeWidthsMap = new Map, this.colWidthsMap = new NumberMap_1.NumberMap,
|
|
688
|
+
this.colContentWidthsMap = new NumberMap_1.NumberMap, this.colWidthsLimit = {},
|
|
663
689
|
internalProps.theme = themes_1.default.of(null !== (_a = options.theme) && void 0 !== _a ? _a : themes_1.default.DEFAULT),
|
|
664
|
-
internalProps.
|
|
665
|
-
internalProps.
|
|
666
|
-
|
|
667
|
-
internalProps.
|
|
690
|
+
internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_b = options.allowFrozenColCount) && void 0 !== _b ? _b : internalProps.colCount,
|
|
691
|
+
internalProps.limitMaxAutoWidth = null !== (_c = options.limitMaxAutoWidth) && void 0 !== _c ? _c : 450,
|
|
692
|
+
this.dataSet = new vdataset_1.DataSet, this.scenegraph.clearCells(), this.stateManeger.initState(),
|
|
693
|
+
options.legends && (internalProps.legends = new legend_1.TableLegend(options.legends, this),
|
|
694
|
+
this.scenegraph.tableGroup.setAttributes({
|
|
695
|
+
x: this.tableX,
|
|
696
|
+
y: this.tableY
|
|
697
|
+
})), options.title && (internalProps.title = new title_1.Title(options.title, this),
|
|
698
|
+
this.scenegraph.tableGroup.setAttributes({
|
|
699
|
+
x: this.tableX,
|
|
700
|
+
y: this.tableY
|
|
701
|
+
})), internalProps.tooltip = Object.assign({
|
|
668
702
|
renderMode: "html",
|
|
669
703
|
isShowOverflowTextTooltip: !1,
|
|
670
704
|
confine: !0
|
|
671
705
|
}, options.tooltip), "html" !== internalProps.tooltip.renderMode || internalProps.tooltipHandler || (internalProps.tooltipHandler = new TooltipHandler_1.TooltipHandler(this, internalProps.tooltip.confine)),
|
|
672
706
|
internalProps.menu = Object.assign({
|
|
673
707
|
renderMode: "html"
|
|
674
|
-
}, options.menu), "html" !== internalProps.menu.renderMode || internalProps.menuHandler || (internalProps.menuHandler = new MenuHandler_1.MenuHandler(this))
|
|
708
|
+
}, options.menu), "html" !== internalProps.menu.renderMode || internalProps.menuHandler || (internalProps.menuHandler = new MenuHandler_1.MenuHandler(this)),
|
|
709
|
+
this.headerStyleCache = new Map, this.bodyStyleCache = new Map;
|
|
675
710
|
}
|
|
676
711
|
getFrozenRowsHeight() {
|
|
677
712
|
return this.getRowsHeight(0, this.frozenRowCount - 1);
|
|
@@ -679,6 +714,18 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
679
714
|
getFrozenColsWidth() {
|
|
680
715
|
return this.getColsWidth(0, this.frozenColCount - 1);
|
|
681
716
|
}
|
|
717
|
+
getBottomFrozenRowsHeight() {
|
|
718
|
+
if (this.bottomFrozenRowCount > 0) {
|
|
719
|
+
return this.getRowsHeight(this.rowCount - this.bottomFrozenRowCount, this.rowCount - 1);
|
|
720
|
+
}
|
|
721
|
+
return 0;
|
|
722
|
+
}
|
|
723
|
+
getRightFrozenColsWidth() {
|
|
724
|
+
if (this.rightFrozenColCount > 0) {
|
|
725
|
+
return this.getColsWidth(this.colCount - this.rightFrozenColCount, this.colCount - 1);
|
|
726
|
+
}
|
|
727
|
+
return 0;
|
|
728
|
+
}
|
|
682
729
|
getDrawRange() {
|
|
683
730
|
const width = Math.min(this.tableNoFrameWidth, this.getAllColsWidth()), height = Math.min(this.tableNoFrameHeight, this.getAllRowsHeight());
|
|
684
731
|
return new Rect_1.Rect(this.tableX, this.tableY, width, height);
|
|
@@ -957,7 +1004,7 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
957
1004
|
let order, field, fieldKey;
|
|
958
1005
|
if (Array.isArray(this.sortState) ? 0 !== this.sortState.length && ({order: order, field: field, fieldKey: fieldKey} = null === (_a = this.sortState) || void 0 === _a ? void 0 : _a[0]) : ({order: order, field: field, fieldKey: fieldKey} = this.sortState),
|
|
959
1006
|
order && field && "normal" !== order) {
|
|
960
|
-
const sortFunc = this.
|
|
1007
|
+
const sortFunc = this._getSortFuncFromHeaderOption(void 0, field, fieldKey);
|
|
961
1008
|
let hd;
|
|
962
1009
|
hd = fieldKey ? this.internalProps.layoutMap.headerObjects.find((col => col && col.fieldKey === fieldKey)) : this.internalProps.layoutMap.headerObjects.find((col => col && col.field === field)),
|
|
963
1010
|
(null === (_b = null == hd ? void 0 : hd.define) || void 0 === _b ? void 0 : _b.sort) && this.dataSource.sort(hd.field, order, null != sortFunc ? sortFunc : util_1.defaultOrderFn);
|
|
@@ -992,6 +1039,14 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
992
1039
|
var _a;
|
|
993
1040
|
return null === (_a = this.internalProps.layoutMap) || void 0 === _a ? void 0 : _a.isCornerHeader(col, row);
|
|
994
1041
|
}
|
|
1042
|
+
isRightFrozenColumn(col, row) {
|
|
1043
|
+
var _a;
|
|
1044
|
+
return null === (_a = this.internalProps.layoutMap) || void 0 === _a ? void 0 : _a.isRightFrozenColumn(col, row);
|
|
1045
|
+
}
|
|
1046
|
+
isBottomFrozenRow(col, row) {
|
|
1047
|
+
var _a;
|
|
1048
|
+
return null === (_a = this.internalProps.layoutMap) || void 0 === _a ? void 0 : _a.isBottomFrozenRow(col, row);
|
|
1049
|
+
}
|
|
995
1050
|
getCellInfo(col, row) {
|
|
996
1051
|
const colDef = this.isHeader(col, row) ? this.getHeaderDefine(col, row) : this.getBodyColumnDefine(col, row);
|
|
997
1052
|
return {
|
|
@@ -1023,7 +1078,9 @@ class BaseTable extends EventTarget_1.EventTarget {
|
|
|
1023
1078
|
if (layoutMap.isHeader(col, row)) {
|
|
1024
1079
|
let cacheStyle = this.headerStyleCache.get(`${col}-${row}`);
|
|
1025
1080
|
if (cacheStyle) return cacheStyle;
|
|
1026
|
-
const hd = layoutMap.getHeader(col, row)
|
|
1081
|
+
const hd = layoutMap.getHeader(col, row);
|
|
1082
|
+
if (!hd || hd.isEmpty) return EMPTY_STYLE;
|
|
1083
|
+
const styleClass = this.internalProps.headerHelper.getStyleClass(hd.headerType), {style: style} = hd;
|
|
1027
1084
|
return cacheStyle = headerStyleContents.of(style, layoutMap.isColumnHeader(col, row) ? this.theme.headerStyle : layoutMap.isRowHeader(col, row) ? this.theme.rowHeaderStyle : this.theme.cornerHeaderStyle, {
|
|
1028
1085
|
col: col,
|
|
1029
1086
|
row: row,
|