@visactor/vtable 1.3.1-alpha.1 → 1.3.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.
Files changed (87) hide show
  1. package/cjs/ListTable.js +13 -11
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +7 -6
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +8 -6
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/components/tooltip/TooltipHandler.js +3 -1
  8. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  9. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +3 -7
  10. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  11. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  12. package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  13. package/cjs/core/BaseTable.js +3 -3
  14. package/cjs/core/BaseTable.js.map +1 -1
  15. package/cjs/event/listener/container-dom.js +3 -2
  16. package/cjs/event/listener/container-dom.js.map +1 -1
  17. package/cjs/index.d.ts +1 -1
  18. package/cjs/index.js +2 -2
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/layout/pivot-header-layout.js +2 -2
  21. package/cjs/layout/pivot-header-layout.js.map +1 -1
  22. package/cjs/layout/row-height-map.js +1 -0
  23. package/cjs/layout/row-height-map.js.map +1 -1
  24. package/cjs/scenegraph/layout/compute-row-height.js +4 -1
  25. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  26. package/cjs/scenegraph/scenegraph.js +2 -2
  27. package/cjs/scenegraph/scenegraph.js.map +1 -1
  28. package/cjs/state/cell-move/index.js +1 -1
  29. package/cjs/state/cell-move/index.js.map +1 -1
  30. package/cjs/state/sort/index.js +2 -2
  31. package/cjs/state/sort/index.js.map +1 -1
  32. package/cjs/themes/theme.js +0 -6
  33. package/cjs/themes/theme.js.map +1 -1
  34. package/cjs/ts-types/base-table.d.ts +3 -2
  35. package/cjs/ts-types/base-table.js.map +1 -1
  36. package/cjs/ts-types/icon.d.ts +0 -2
  37. package/cjs/ts-types/icon.js.map +1 -1
  38. package/cjs/ts-types/theme.d.ts +0 -2
  39. package/cjs/ts-types/theme.js.map +1 -1
  40. package/cjs/ts-types/tooltip.d.ts +0 -2
  41. package/cjs/ts-types/tooltip.js.map +1 -1
  42. package/cjs/vrender.js.map +1 -1
  43. package/dist/vtable.js +39 -38
  44. package/dist/vtable.min.js +2 -2
  45. package/es/ListTable.js +13 -12
  46. package/es/ListTable.js.map +1 -1
  47. package/es/PivotChart.js +8 -7
  48. package/es/PivotChart.js.map +1 -1
  49. package/es/PivotTable.js +9 -7
  50. package/es/PivotTable.js.map +1 -1
  51. package/es/components/tooltip/TooltipHandler.js +3 -1
  52. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  53. package/es/components/tooltip/logic/BubbleTooltipElement.js +3 -7
  54. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  55. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
  56. package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
  57. package/es/core/BaseTable.js +3 -3
  58. package/es/core/BaseTable.js.map +1 -1
  59. package/es/event/listener/container-dom.js +3 -2
  60. package/es/event/listener/container-dom.js.map +1 -1
  61. package/es/index.d.ts +1 -1
  62. package/es/index.js +1 -1
  63. package/es/index.js.map +1 -1
  64. package/es/layout/pivot-header-layout.js +2 -1
  65. package/es/layout/pivot-header-layout.js.map +1 -1
  66. package/es/layout/row-height-map.js +1 -0
  67. package/es/layout/row-height-map.js.map +1 -1
  68. package/es/scenegraph/layout/compute-row-height.js +4 -1
  69. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  70. package/es/scenegraph/scenegraph.js +2 -2
  71. package/es/scenegraph/scenegraph.js.map +1 -1
  72. package/es/state/cell-move/index.js +1 -1
  73. package/es/state/cell-move/index.js.map +1 -1
  74. package/es/state/sort/index.js +2 -2
  75. package/es/state/sort/index.js.map +1 -1
  76. package/es/themes/theme.js +0 -6
  77. package/es/themes/theme.js.map +1 -1
  78. package/es/ts-types/base-table.d.ts +3 -2
  79. package/es/ts-types/base-table.js.map +1 -1
  80. package/es/ts-types/icon.d.ts +0 -2
  81. package/es/ts-types/icon.js.map +1 -1
  82. package/es/ts-types/theme.d.ts +0 -2
  83. package/es/ts-types/theme.js.map +1 -1
  84. package/es/ts-types/tooltip.d.ts +0 -2
  85. package/es/ts-types/tooltip.js.map +1 -1
  86. package/es/vrender.js.map +1 -1
  87. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/base-table.ts"],"names":[],"mappings":"","file":"base-table.js","sourcesContent":["import type { ITextSize } from '@visactor/vutils';\nimport type {\n RectProps,\n MaybePromiseOrUndefined,\n ICellHeaderPaths,\n CellInfo,\n CustomCellStyle,\n CustomCellStyleArrangement\n} from './common';\nimport type {\n TableEventListener,\n TableEventHandlersEventArgumentMap,\n TableEventHandlersReturnMap,\n EventListenerId,\n MousePointerCellEvent\n} from './events';\nimport type { MenuListItem, DropDownMenuEventInfo, DropDownMenuHighlightInfo } from './menu';\nimport type { CellStyle } from './style-define';\nimport type { ColumnIconOption } from './icon';\nimport type {\n ColumnData,\n ColumnDefine,\n ColumnsDefine,\n HeaderData,\n IndicatorData,\n SeriesNumberColumnData\n} from './list-table/layout-map/api';\nexport type { HeaderData } from './list-table/layout-map/api';\nimport type { TableTheme } from '../themes/theme';\nimport type { ICustomRender } from './customElement';\nexport type LayoutObjectId = number | string;\nimport type { Rect } from '../tools/Rect';\nimport type { Scenegraph } from '../scenegraph/scenegraph';\nimport type { StateManager } from '../state/state';\nimport type { EventManager } from '../event/event';\nimport type {\n CellAddress,\n CellRange,\n CellLocation,\n ColumnTypeOption,\n DataSourceAPI,\n FieldData,\n FieldDef,\n FieldFormat,\n FullExtendStyle,\n HeaderValues,\n HeightModeDef,\n HierarchyState,\n IPivotTableDataConfig,\n IPagination,\n ITableThemeDefine,\n SortState,\n TableKeyboardOptions,\n WidthModeDef,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n StickCell,\n CustomMergeCell,\n CustomMerge,\n IColumnDimension,\n IRowDimension,\n TableEventOptions,\n IPivotChartDataConfig,\n IListTableDataConfig,\n IRowSeriesNumber,\n ColumnSeriesNumber,\n ColumnStyleOption,\n WidthAdaptiveModeDef,\n HeightAdaptiveModeDef\n} from '.';\nimport type { TooltipOptions } from './tooltip';\nimport type { IWrapTextGraphicAttribute } from '../scenegraph/graphic/text';\nimport type { ICustomLayout } from './customLayout';\nimport type { CachedDataSource, DataSource } from '../data';\nimport type { MenuHandler } from '../components/menu/dom/MenuHandler';\nimport type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../layout';\nimport type { TooltipHandler } from '../components/tooltip/TooltipHandler';\nimport type { BodyHelper } from '../body-helper/body-helper';\nimport type { HeaderHelper } from '../header-helper/header-helper';\nimport type { EventHandler } from '../event/EventHandler';\nimport type { NumberMap } from '../tools/NumberMap';\nimport type { FocusInput } from '../core/FouseInput';\nimport type { ITableLegendOption } from './component/legend';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { Title } from '../components/title/title';\nimport type { ITitle } from './component/title';\nimport type { DiscreteTableLegend } from '../components/legend/discrete-legend/discrete-legend';\nimport type { ContinueTableLegend } from '../components/legend/continue-legend/continue-legend';\nimport type { NumberRangeMap } from '../layout/row-height-map';\nimport type { RowSeriesNumberHelper } from '../core/row-series-number-helper';\nimport type { ISortedMapItem } from '../data/DataSource';\nimport type { IAnimationAppear } from './animation/appear';\nimport type { IEmptyTip } from './component/empty-tip';\nimport type { EmptyTip } from '../components/empty-tip/empty-tip';\n\nexport interface IBaseTableProtected {\n element: HTMLElement;\n // scrollable: Scrollable;\n handler: EventHandler;\n focusControl: FocusInput;\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n rowCount: number;\n colCount: number;\n frozenColCount: number;\n allowFrozenColCount: number;\n\n frozenRowCount: number;\n rightFrozenColCount: number;\n bottomFrozenRowCount: number;\n defaultRowHeight: number;\n /**表头默认行高 可以按逐行设置 如果没有就取defaultRowHeight */\n defaultHeaderRowHeight: (number | 'auto') | (number | 'auto')[];\n defaultColWidth: number;\n defaultHeaderColWidth: (number | 'auto') | (number | 'auto')[];\n // font?: string;\n // underlayBackgroundColor?: string;\n keyboardOptions?: TableKeyboardOptions;\n eventOptions?: TableEventOptions;\n rowSeriesNumber?: IRowSeriesNumber;\n columnSeriesNumber?: ColumnSeriesNumber[];\n // disableRowHeaderColumnResize?: boolean;\n // 列宽调整模式(全列调整;全列不可调整;仅表头单元格可调整;仅内容单元格可调整)\n columnResizeMode?: 'all' | 'none' | 'header' | 'body';\n rowResizeMode?: 'all' | 'none' | 'header' | 'body';\n columnResizeType?: 'column' | 'indicator' | 'all' | 'indicatorGroup';\n rowResizeType?: 'row' | 'indicator' | 'all' | 'indicatorGroup';\n /** 控制拖拽表头移动位置顺序开关 */\n dragHeaderMode?: 'all' | 'none' | 'column' | 'row';\n /** 拖拽表头移动位置 针对冻结部分的规则\n * \"disabled\"(禁止调整冻结列位置):不允许其他列的表头移入冻结列,也不允许冻结列移出,冻结列保持不变。\n * \"adjustFrozenCount\"(根据交互结果调整冻结数量):允许其他列的表头移入冻结列,及冻结列移出,并根据拖拽的动作调整冻结列的数量。当其他列的表头被拖拽进入冻结列位置时,冻结列数量增加;当其他列的表头被拖拽移出冻结列位置时,冻结列数量减少。\n * \"fixedFrozenCount\"(可调整冻结列,并维持冻结数量不变):允许自由拖拽其他列的表头移入或移出冻结列位置,同时保持冻结列的数量不变。\n */\n frozenColDragHeaderMode?: 'disabled' | 'adjustFrozenCount' | 'fixedFrozenCount';\n cachedRecordsRowHeightMap: NumberMap<string | number>; //存储每一条记录对应行的行高,只有当设置为自动换行随内容撑开才会起作用\n // headerRowHeightsMap: NumberMap<number>; //目前是用来存储了表头各行的高度,从headerRowHeight计算而来,headerRowHeight可以设置为数组的形式\n _rowHeightsMap: NumberRangeMap; //存储数据条目每行高度\n _colWidthsMap: NumberMap<string | number>; //存储各列的宽度\n _colContentWidthsMap: NumberMap<string | number>; //存储各列的内容宽度\n _colWidthsLimit: {\n //存储各列的宽度限制\n [col: number]: {\n max?: string | number;\n min?: string | number;\n };\n };\n calcWidthContext: {\n _: IBaseTableProtected;\n full: number;\n // em: number;\n };\n\n _rowRangeHeightsMap: Map<string, number>; //存储指定行范围的总高度\n _colRangeWidthsMap: Map<string, number>; //存储指定列范围的总宽度\n\n _widthResizedColMap: Set<number>; //记录下被手动调整过列宽的列号\n _heightResizedRowMap: Set<number>; //记录下被手动调整过行高的行号\n\n bodyHelper: BodyHelper;\n headerHelper: HeaderHelper;\n rowSeriesNumberHelper: RowSeriesNumberHelper;\n\n cellTextOverflows: { [at: string]: string };\n // headerDescriptions: { [at: string]: string };\n focusedTable: boolean;\n\n config:\n | {\n [name: string]: any;\n }\n | undefined;\n // scroll: {\n // left: number;\n // top: number;\n // };\n releaseList?: { release: () => void }[] | null;\n theme: TableTheme;\n transpose?: boolean; //是否转置\n // autoRowHeight?: boolean; //是否自动撑开高度 对于设置了autoWrapText的multilineText的列生效\n pixelRatio?: number;\n /** 下拉菜单的相关配置。消失时机:显示后点击菜单区域外自动消失*/\n menu: {\n /** 代替原来的option.menuType */\n renderMode?: 'canvas' | 'html';\n /** 内置下拉菜单的全局设置项 目前只针对基本表格有效 会对每个表头单元格开启默认的下拉菜单功能。代替原来的option.dropDownMenu*/\n defaultHeaderMenuItems?: MenuListItem[];\n /** 右键菜单。代替原来的option.contextmenu */\n contextMenuItems?: MenuListItem[] | ((field: FieldDef, row: number, col: number) => MenuListItem[]);\n /** 设置选中状态的菜单。代替原来的option.dropDownMenuHighlight */\n dropDownMenuHighlight?: DropDownMenuHighlightInfo[];\n };\n /** 提示弹框的相关配置。消失时机:显示后鼠标移动到指定区域外或者进入新的单元格后自动消失*/\n tooltip: {\n renderMode: 'html' | 'canvas';\n /** 代替原来hover:isShowTooltip配置 */\n isShowOverflowTextTooltip: boolean;\n /** 缩略文字提示框 延迟消失时间 */\n overflowTextTooltipDisappearDelay?: number;\n /** 弹框是否需要限定在表格区域内 */\n confine: boolean;\n };\n\n dataSourceEventIds?: EventListenerId[];\n // headerEvents?: EventListenerId[];\n layoutMap: SimpleHeaderLayoutMap | PivotHeaderLayoutMap;\n headerValues?: HeaderValues;\n tooltipHandler: TooltipHandler;\n\n // headerRowHeight: number[] | number;//移到了BaseTable\n sortState: SortState | SortState[];\n\n dataSource: DataSource | CachedDataSource;\n records?: any;\n allowRangePaste: boolean;\n //重新思考逻辑:如果为false,行高按设置的rowHeight;如果设置为true,则按lineHeight及是否自动换行综合计算行高 2021.11.19 by:lff\n\n autoWrapText?: boolean;\n enableLineBreak?: boolean;\n\n menuHandler: MenuHandler;\n\n /**\n * 计算列宽时 指定最大列宽 可设置boolean或者具体的值 默认为450\n */\n limitMaxAutoWidth?: boolean | number;\n\n /**\n * 限制列宽最小值。\n */\n limitMinWidth?: number;\n\n limitMinHeight?: number;\n\n title?: Title;\n legends?: (DiscreteTableLegend | ContinueTableLegend)[];\n\n emptyTip?: EmptyTip;\n //是否开启图表异步渲染\n renderChartAsync?: boolean;\n // // 开启图表异步渲染 每批次渐进渲染图表个数\n // renderChartAsyncBatchCount?: number;\n\n stick: { changedCells: Map<string, StickCell> };\n\n customMergeCell?: CustomMergeCell;\n /**\n * 'auto':和浏览器滚动行为一致 表格滚动到顶部/底部时 触发浏览器默认行为;\n * 设置为 'none' 时, 表格滚动到顶部/底部时, 不再触发父容器滚动\n * */\n overscrollBehavior?: 'auto' | 'none';\n}\nexport interface BaseTableConstructorOptions {\n // /** 指定表格的行数 */\n // rowCount?: number;\n\n // /** 指定表格的列数 */\n // colCount?: number;\n /**\n * 当前需要冻结的列数 基本表格生效\n */\n frozenColCount?: number;\n rightFrozenColCount?: number;\n bottomFrozenRowCount?: number;\n\n // /** 待实现 TODO */\n // frozenRowCount?: number;\n /** 可冻结列数,表示前多少列会出现冻结操作按钮 基本表格生效 */\n allowFrozenColCount?: number;\n /**\n * 默认行高. 默认 40\n */\n defaultRowHeight?: number;\n /** 列表头默认行高 可以按逐行设置 如果没有就取defaultRowHeight */\n defaultHeaderRowHeight?: (number | 'auto') | (number | 'auto')[];\n /**\n * 默认列宽. 默认 80\n */\n defaultColWidth?: number;\n /** 行表头默认列宽 可以按逐列设置 如果没有就取defaultColWidth */\n defaultHeaderColWidth?: (number | 'auto') | (number | 'auto')[];\n /** 快捷键功能设置 */\n keyboardOptions?: TableKeyboardOptions;\n excelOptions?: {\n fillHandle?: boolean;\n };\n /** 事件触发相关设置 */\n eventOptions?: TableEventOptions;\n /**\n * Canvas container\n */\n container?: HTMLElement | null;\n\n /**\n * 调整列宽 可操作范围。'all' | 'none' | 'header' | 'body'; 整列间隔线|禁止调整|只能在表头处间隔线|只能在body间隔线\n */\n columnResizeMode?: 'all' | 'none' | 'header' | 'body';\n rowResizeMode?: 'all' | 'none' | 'header' | 'body';\n /** 控制拖拽表头移动位置顺序开关 */\n dragHeaderMode?: 'all' | 'none' | 'column' | 'row';\n\n /**\n * 是否显示固定列图钉 基本表格生效\n */\n showFrozenIcon?: boolean;\n\n padding?:\n | {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n }\n | number;\n /** hover交互配置 */\n hover?: {\n /** hover交互响应模式:十字交叉 整列 整行 或者单个单元格 */\n highlightMode: 'cross' | 'column' | 'row' | 'cell';\n /** 不响应鼠标hover交互 */\n disableHover?: boolean;\n /** 单独设置表头不响应鼠标hover交互 */\n disableHeaderHover?: boolean;\n /** 单独设置坐标轴不响应鼠标hover交互 */\n disableAxisHover?: boolean;\n };\n /** 选择单元格交互配置 */\n select?: {\n /** 高亮范围模式:十字交叉 整列 整行 或者单个单元格。默认`cell` */\n highlightMode: 'cross' | 'column' | 'row' | 'cell';\n /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n headerSelectMode?: 'inline' | 'cell';\n /** 不响应鼠标select交互 */\n disableSelect?: boolean;\n /** 单独设置表头不响应鼠标select交互 */\n disableHeaderSelect?: boolean;\n };\n /** 下拉菜单的相关配置。消失时机:显示后点击菜单区域外自动消失*/\n menu?: {\n /** 代替原来的option.menuType html目前实现较完整 先默认html渲染方式*/\n renderMode?: 'canvas' | 'html';\n /** 内置下拉菜单的全局设置项 目前只针对基本表格有效 会对每个表头单元格开启默认的下拉菜单功能。代替原来的option.dropDownMenu*/\n defaultHeaderMenuItems?: MenuListItem[];\n /** 右键菜单。代替原来的option.contextmenu */\n contextMenuItems?: MenuListItem[] | ((field: string, row: number, col: number) => MenuListItem[]);\n /** 设置选中状态的菜单。代替原来的option.dropDownMenuHighlight */\n dropDownMenuHighlight?: DropDownMenuHighlightInfo[];\n };\n /** tooltip相关配置 */\n tooltip?: {\n /** html目前实现较完整 先默认html渲染方式 */\n renderMode?: 'html'; // 目前暂不支持canvas方案\n /** 是否显示缩略文字提示框。 代替原来hover:isShowTooltip配置 暂时需要将renderMode配置为html才能显示,canvas的还未开发*/\n isShowOverflowTextTooltip?: boolean;\n /** 缩略文字提示框 延迟消失时间 */\n overflowTextTooltipDisappearDelay?: number;\n /** 是否将 tooltip 框限制在画布区域内,默认开启。针对renderMode:\"html\"有效 */\n confine?: boolean;\n };\n /**\n * Theme\n */\n theme?: ITableThemeDefine;\n /** 宽度模式 */\n widthMode?: 'standard' | 'adaptive' | 'autoWidth';\n /** 高度模式 */\n heightMode?: 'standard' | 'adaptive' | 'autoHeight';\n /** 当列宽度不能占满容器时,是否需要自动拉宽来填充容器的宽度。默认false */\n autoFillWidth?: boolean;\n /** 当行高度不能占满容器时,是否需要自动拉高来填充容器的高度。默认false */\n autoFillHeight?: boolean;\n\n /** adaptive 模式下宽度的适应策略 **/\n widthAdaptiveMode?: WidthAdaptiveModeDef;\n /** adaptive 模式下高度的适应策略 **/\n heightAdaptiveMode?: HeightAdaptiveModeDef;\n\n // /** 行高是否根据内容来计算 */\n // autoRowHeight?: boolean;\n /** 设备的像素比 不配的话默认获取window.devicePixelRatio */\n pixelRatio?: number;\n /** 自定义渲染 函数形式*/\n customRender?: ICustomRender;\n /** 开启自动换行 默认false */\n autoWrapText?: boolean;\n /** 是否处理换行符 */\n enableLineBreak?: boolean;\n /** 单元格中可显示最大字符数 默认200 */\n maxCharactersNumber?: number; //\n // /** toolip最大字符数 */\n // maxTooltipCharactersNumber?: number;\n /** 最大可操作条目数 如copy操作可复制出最大数据条目数 */\n maxOperatableRecordCount?: number;\n /**\n * 计算列宽时 指定最大列宽 可设置boolean或者具体的值 默认为450。手动拖拽列宽的话不收这个限制\n */\n limitMaxAutoWidth?: boolean | number;\n /**\n * 限制列宽最小值。如设置为true 则拖拽改变列宽时限制列宽最小为10px,设置为false则不进行限制。默认为10px\n */\n limitMinWidth?: boolean | number;\n limitMinHeight?: boolean | number;\n\n // maximum number of data items maintained in table instance\n maintainedDataCount?: number;\n\n legends?: ITableLegendOption | ITableLegendOption[];\n title?: ITitle;\n emptyTip?: true | IEmptyTip;\n /** 是否开启图表异步渲染 */\n renderChartAsync?: boolean;\n /** 开启图表异步渲染 每批次渐进渲染图表个数 默认是5个 */\n renderChartAsyncBatchCount?: number;\n\n customMergeCell?: CustomMergeCell;\n\n // #region for nodejs\n mode?: 'node' | 'broswer';\n modeParams?: any;\n canvasWidth?: number;\n canvasHeight?: number;\n // #endregion\n /**\n * 'auto':和浏览器滚动行为一致 表格滚动到顶部/底部时 触发浏览器默认行为;\n * 设置为 'none' 时, 表格滚动到顶部/底部时, 不再触发父容器滚动\n * */\n overscrollBehavior?: 'auto' | 'none';\n\n // resize response time\n resizeTime?: number;\n\n rowSeriesNumber?: IRowSeriesNumber;\n // columnSeriesNumber?: ColumnSeriesNumber[];\n customCellStyle?: CustomCellStyle[];\n customCellStyleArrangement?: CustomCellStyleArrangement[];\n\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n clearDOM?: boolean;\n customConfig?: {\n /** xTable对于没有配置autoWrapText并且有'\\n'的文本,在计算行高是会当做一行处理,但是在渲染时会解析'\\n';显示效果就是单元格高度为一行文本高度,只显示第一个'\\n'前的文字,后面显示'...';multilinesForXTable配置实现和该功能对齐的样式 */\n multilinesForXTable?: boolean;\n /** 这里可以配置为false 来走flatDataToObject的数据处理逻辑 而不走dataset的分析 */\n enableDataAnalysis?: boolean;\n /** 禁用行高列宽计算取整数逻辑 对齐xTable */\n _disableColumnAndRowSizeRound?: boolean;\n imageMargin?: number;\n // adaptive 模式下优先缩小迷你图\n shrinkSparklineFirst?: boolean;\n }; // 部分特殊配置,兼容xTable等作用\n\n animationAppear?: boolean | IAnimationAppear;\n\n renderOption?: any;\n}\nexport interface BaseTableAPI {\n /** 数据总条目数 */\n recordsCount: number;\n /** 表格的行数 */\n rowCount: number;\n /** 表格的列数 */\n colCount: number;\n /** 表格除去外层frame后的宽度 */\n tableNoFrameWidth: number;\n /** 表格除去外层frame后的高度 */\n tableNoFrameHeight: number;\n /** 表格的冻结行数 包括表头在内 */\n frozenRowCount: number;\n /** 表格的冻结列数 包括表头在内 */\n frozenColCount: number;\n\n bottomFrozenRowCount: number;\n rightFrozenColCount: number;\n /** 当前表格默认表头行高 */\n defaultHeaderRowHeight: (number | 'auto') | (number | 'auto')[];\n /** 当前表格默认行高 */\n defaultRowHeight: number;\n /** 当前表格默认列宽 */\n defaultColWidth: number;\n /** 当前表格默认表头列宽 */\n defaultHeaderColWidth: (number | 'auto') | (number | 'auto')[];\n /** 当前表格快捷键设置 */\n keyboardOptions: TableKeyboardOptions | null;\n /** 当前表格事件相关设置 */\n eventOptions: TableEventOptions | null;\n /**\n * 是否显示图钉\n */\n showFrozenIcon: boolean;\n readonly canvas: HTMLCanvasElement;\n /** 表格可视区域的行数 */\n readonly visibleRowCount: number;\n /** 表格可视区域的列数 */\n readonly visibleColCount: number;\n /** 表格滚动值left */\n scrollLeft: number;\n /** 表格滚动值top */\n scrollTop: number;\n /** 用户设置的options 不要修改这个这个 */\n options: BaseTableConstructorOptions;\n /** 设置的全局下拉菜单列表项配置 */\n globalDropDownMenu?: MenuListItem[];\n /** 设置的全局自定义渲染函数 */\n customRender?: ICustomRender;\n\n /** 表格数据管理对象 */\n dataSource: DataSourceAPI;\n /** 设置的表格主题 */\n theme: TableTheme;\n /** 可允许设置冻结的最大列数 */\n allowFrozenColCount: number;\n\n /** 存储内部用到的属性 变量等 */\n internalProps: IBaseTableProtected;\n /** 分页信息 */\n pagination?: IPagination;\n\n /** 表格偏移像素值 水平方向 */\n tableX: number;\n /** 表格偏移像素值 垂直方向 */\n tableY: number;\n /** 表格宽度模式 */\n widthMode: WidthModeDef;\n /** 表格宽度模式 */\n heightMode: HeightModeDef;\n /** 当列宽度不能占满容器时,是否需要自动拉宽来填充容器的宽度。默认false */\n autoFillWidth: boolean;\n /** 当行高度不能占满容器时,是否需要自动拉高来填充容器的高度。默认false */\n autoFillHeight?: boolean;\n\n /** adaptive 模式下宽度的适应策略 **/\n widthAdaptiveMode: WidthAdaptiveModeDef;\n /** adaptive 模式下高度的适应策略 **/\n heightAdaptiveMode: HeightAdaptiveModeDef;\n\n isReleased: boolean;\n\n // rowHeightsMap: NumberMap<number>;\n rowHeightsMap: NumberRangeMap;\n colWidthsMap: NumberMap<string | number>;\n\n on: <TYPE extends keyof TableEventHandlersEventArgumentMap>(\n type: TYPE,\n listener: TableEventListener<TYPE> //(event: TableEventHandlersEventArgumentMap[TYPE]) => TableEventHandlersReturnMap[TYPE]\n ) => EventListenerId;\n // &(<T extends keyof TableEventHandlersEventArgumentMap>(type: string, listener: AnyListener<T>) => EventListenerId);\n\n _vDataSet: DataSet;\n /** 场景树对象 */\n scenegraph: Scenegraph;\n /** 状态管理模块 */\n stateManager: StateManager;\n /** 事件管理模块 */\n eventManager: EventManager;\n /** 行表头的层数 */\n rowHeaderLevelCount: number;\n /** 列表头的层数 */\n columnHeaderLevelCount: number;\n\n canvasWidth?: number;\n canvasHeight?: number;\n\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n\n /** 获取表格绘制的范围 不包括frame的宽度 */\n getDrawRange: () => Rect;\n /** 将鼠标坐标值 转换成表格坐标系中的坐标位置 */\n _getMouseAbstractPoint: (\n evt: TouchEvent | MouseEvent | undefined,\n isAddScroll?: boolean\n ) => { x: number; y: number; inTable: boolean };\n getElement: () => HTMLElement;\n getContainer: () => HTMLElement;\n\n setFrozenColCount: (count: number) => void;\n _setFrozenColCount: (count: number) => void;\n _updateSize: () => void;\n\n render: () => void;\n throttleInvalidate: () => void;\n getRowHeight: (row: number) => number;\n getDefaultRowHeight: (row: number) => number | 'auto';\n getDefaultColumnWidth: (col: number) => number | 'auto';\n _setRowHeight: (row: number, height: number, clearCache?: boolean) => void;\n setRowHeight: (row: number, height: number) => void;\n getColWidth: (col: number) => number;\n getColWidthDefined: (col: number) => string | number;\n // setColWidthDefined: (col: number, width: number) => void;\n getColWidthDefinedNumber: (col: number) => number;\n // getColWidthDefine: (col: number) => string | number;\n _setColWidth: (col: number, width: number | string, clearCache?: boolean, skipCheckFrozen?: boolean) => void;\n setColWidth: (col: number, width: number) => void;\n _getColContentWidth: (col: number) => number;\n _setColContentWidth: (col: number, width: number | string, clearCache?: boolean) => void;\n getMaxColWidth: (col: number) => number;\n setMaxColWidth: (col: number, maxwidth: string | number) => void;\n getMinColWidth: (col: number) => number;\n setMinColWidth: (col: number, minwidth: string | number) => void;\n getCellRect: (col: number, row: number) => Rect;\n getCellRelativeRect: (col: number, row: number) => Rect;\n getCellsRect: (startCol: number, startRow: number, endCol: number, endRow: number) => Rect;\n getCellRangeRect: (cellRange: CellRange | CellAddress) => Rect;\n getCellRangeRelativeRect: (cellRange: CellRange | CellAddress) => Rect;\n getVisibleCellRangeRelativeRect: (cellRange: CellRange | CellAddress) => Rect;\n isFrozenCell: (col: number, row: number) => { row: boolean; col: boolean } | null;\n getRowAt: (absoluteY: number) => { top: number; row: number; bottom: number };\n getColAt: (absoluteX: number) => { left: number; col: number; right: number };\n getCellAt: (absoluteX: number, absoluteY: number) => CellAddress;\n _makeVisibleCell: (col: number, row: number) => void;\n // setFocusCursor(col: number, row: number): void;\n // focusCell(col: number, row: number): void;\n getCellOverflowText: (col: number, row: number) => string | null;\n getColsWidth: (startCol: number, endCol: number) => number;\n getRowsHeight: (startRow: number, endRow: number) => number;\n\n release: () => void;\n addReleaseObj: (releaseObj: { release: () => void }) => void;\n _getCellStyle: (col: number, row: number) => FullExtendStyle;\n clearCellStyleCache: () => void;\n\n getFrozenRowsHeight: () => number;\n getFrozenColsWidth: () => number;\n getBottomFrozenRowsHeight: () => number;\n getRightFrozenColsWidth: () => number;\n selectCell: (col: number, row: number, isShift?: boolean, isCtrl?: boolean) => void;\n selectCells: (cellRanges: CellRange[]) => void;\n getAllRowsHeight: () => number;\n getAllColsWidth: () => number;\n\n off: (id: EventListenerId) => void;\n getBodyField: (col: number, row: number) => FieldDef | undefined;\n /**\n * 根据单元格获取对应的源数据\n * @param col\n * @param row\n * @returns\n */\n getRecordByCell: (col: number, row: number) => MaybePromiseOrUndefined;\n /**\n * 根据数据源的index 获取显示到表格中的index 行号或者列号(与转置相关)。注:ListTable特有接口\n * @param recordIndex\n */\n getTableIndexByRecordIndex: (recordIndex: number) => number;\n /**\n * 根据数据源的field 获取显示到表格中的index 行号或者列号(与转置相关)。注:ListTable特有接口\n * @param recordIndex\n */\n getTableIndexByField: (field: FieldDef) => number;\n /**\n * 根据数据源中的index和field获取单元格行列号。注:ListTable特有接口\n * @param field\n * @param recordIndex\n * @returns\n */\n getCellAddrByFieldRecord: (field: FieldDef, recordIndex: number) => CellAddress;\n getRecordShowIndexByCell: (col: number, row: number) => number;\n getRecordStartRowByRecordIndex: (index: number) => number;\n\n getHeaderField: (col: number, row: number) => any | undefined;\n\n _getHeaderCellBySortState: (sortState: SortState) => CellAddress | undefined;\n getHeaderDefine: (col: number, row: number) => ColumnDefine | IRowSeriesNumber | ColumnSeriesNumber;\n _getHeaderLayoutMap: (col: number, row: number) => HeaderData | SeriesNumberColumnData;\n getContext: () => CanvasRenderingContext2D;\n getCellRange: (col: number, row: number) => CellRange;\n _resetFrozenColCount: () => void;\n isCellRangeEqual: (col: number, row: number, targetCol: number, targetRow: number) => boolean;\n _getLayoutCellId: (col: number, row: number) => LayoutObjectId;\n _getBodyLayoutMap: (col: number, row: number) => ColumnData | IndicatorData | SeriesNumberColumnData;\n getBodyColumnDefine: (col: number, row: number) => ColumnDefine | IRowSeriesNumber | ColumnSeriesNumber;\n getBodyColumnType: (col: number, row: number) => ColumnTypeOption;\n getCellType: (col: number, row: number) => ColumnTypeOption;\n fireListeners: <TYPE extends keyof TableEventHandlersEventArgumentMap>(\n type: TYPE,\n event: TableEventHandlersEventArgumentMap[TYPE]\n ) => TableEventHandlersReturnMap[TYPE][];\n\n //更新分页\n updatePagination: (cof: IPagination) => void;\n //hover\n\n getHeaderDescription: (col: number, row: number) => string | undefined;\n /** 获取单元格展示值 */\n getCellValue: (col: number, row: number, skipCustomMerge?: boolean) => string | null;\n /** 获取单元格展示数据的format前的值 */\n getCellOriginValue: (col: number, row: number) => any;\n /** 获取单元格展示数据源最原始值 */\n getCellRawValue: (col: number, row: number) => FieldData;\n /** 获取单元格展示数据的format前的record源数据 */\n getCellOriginRecord: (col: number, row: number) => MaybePromiseOrUndefined;\n /** 获取单元格展示源数据 */\n getCellRawRecord: (col: number, row: number) => MaybePromiseOrUndefined;\n\n _dropDownMenuIsHighlight: (col: number, row: number, index: number) => boolean;\n // bindEvents(): void;\n refreshRowColCount: () => void;\n // getFieldData: (field: FieldDef | FieldFormat | undefined, col: number, row: number) => FieldData;\n _hasField: (field: FieldDef, col: number, row: number) => boolean;\n getCellHeaderPaths: (col: number, row: number) => ICellHeaderPaths;\n getCellLocation: (col: number, row: number) => CellLocation;\n // isHitIcon(col: number, row: number, x: number, y: number, iconType: IconFuncTypeEnum): boolean;\n getCellIcons: (col: number, row: number) => ColumnIconOption[];\n\n getMenuInfo: (col: number, row: number, type: string) => DropDownMenuEventInfo;\n /**\n * 获取某个单元格的样式 共业务方调用\n * @param col\n * @param row\n */\n getCellStyle: (col: number, row: number) => CellStyle; // 计算后style\n\n getHierarchyState: (col: number, row: number) => HierarchyState | null;\n\n _hasHierarchyTreeHeader: () => boolean;\n\n _canDragHeaderPosition: (col: number, row: number) => boolean;\n\n isHeader: (col: number, row: number) => boolean;\n\n isColumnHeader: (col: number, row: number) => boolean;\n\n isCornerHeader: (col: number, row: number) => boolean;\n\n isRowHeader: (col: number, row: number) => boolean;\n\n getCopyValue: () => string;\n\n getSelectedCellInfos: () => CellInfo[][];\n getSelectedCellRanges: () => CellRange[];\n getCellInfo: (col: number, row: number) => Omit<MousePointerCellEvent, 'target'>;\n\n showTooltip: (col: number, row: number, tooltipOptions?: TooltipOptions) => void;\n\n measureText: (\n text: string,\n font: { fontSize: number; fontWeight?: string | number; fontFamily: string }\n ) => ITextSize;\n\n _canResizeColumn: (col: number, row: number) => boolean;\n _canResizeRow: (col: number, row: number) => boolean;\n\n getCustomRender: (col: number, row: number) => ICustomRender;\n getCustomLayout: (col: number, row: number) => ICustomLayout;\n isListTable: () => boolean;\n isPivotTable: (() => boolean) & (() => boolean);\n isPivotChart: (() => boolean) & (() => boolean);\n _clearColRangeWidthsMap: (col?: number) => void;\n _clearRowRangeHeightsMap: (row?: number) => void;\n clearRowHeightCache: () => void;\n clearColWidthCache: () => void;\n toggleHierarchyState: (col: number, row: number) => void;\n\n resize: () => void;\n\n getMergeCellRect: (col: number, row: number) => Rect;\n\n getTargetColAt: (absoluteX: number) => { col: number; left: number; right: number; width: number } | null;\n getTargetRowAt: (absoluteY: number) => { row: number; top: number; bottom: number; height: number } | null;\n getTargetColAtConsiderRightFrozen: (\n absoluteX: number,\n isConsider: boolean\n ) => { col: number; left: number; right: number; width: number } | null;\n getTargetRowAtConsiderBottomFrozen: (\n absoluteY: number,\n isConsider: boolean\n ) => { row: number; top: number; bottom: number; height: number } | null;\n renderWithRecreateCells: () => void;\n //#endregion tableAPI\n\n _adjustColWidth: (col: number, orgWidth: number) => number;\n _colWidthDefineToPxWidth: (width: string | number) => number;\n isFrozenColumn: (col: number, row?: number) => boolean;\n isLeftFrozenColumn: (col: number, row?: number) => boolean;\n isRightFrozenColumn: (col: number, row?: number) => boolean;\n isFrozenRow: (col: number, row?: number) => boolean;\n isTopFrozenRow: (col: number, row?: number) => boolean;\n isBottomFrozenRow: (col: number, row?: number) => boolean;\n\n hasCustomMerge: () => boolean;\n getCustomMerge: (col: number, row: number) => undefined | (Omit<CustomMerge, 'style'> & { style?: FullExtendStyle });\n /** 获取表格body部分的显示单元格范围 */\n getBodyVisibleCellRange: () => { rowStart: number; colStart: number; rowEnd: number; colEnd: number };\n /** 获取表格body部分的显示列号范围 */\n getBodyVisibleColRange: () => { colStart: number; colEnd: number };\n /** 获取表格body部分的显示行号范围 */\n getBodyVisibleRowRange: () => { rowStart: number; rowEnd: number };\n\n _hasCustomRenderOrLayout: () => boolean;\n /** 根据表格单元格的行列号 获取在body部分的列索引及行索引 */\n getBodyIndexByTableIndex: (col: number, row: number) => CellAddress;\n /** 根据body部分的列索引及行索引,获取单元格的行列号 */\n getTableIndexByBodyIndex: (col: number, row: number) => CellAddress;\n /**\n * 滚动到具体某个单元格位置\n * @param cellAddr 要滚动到的单元格位置\n */\n scrollToCell: (cellAddr: { col?: number; row?: number }) => void;\n registerCustomCellStyle: (customStyleId: string, customStyle: ColumnStyleOption | undefined | null) => void;\n arrangeCustomCellStyle: (cellPos: { col?: number; row?: number; range?: CellRange }, customStyleId: string) => void;\n\n _moveHeaderPosition: (\n source: CellAddress,\n target: CellAddress\n ) => {\n sourceIndex: number;\n targetIndex: any;\n sourceSize: any;\n targetSize: any;\n moveType: 'column' | 'row';\n };\n changeRecordOrder: (source: number, target: number) => void;\n isSeriesNumber: (col: number, row?: number) => boolean;\n isHasSeriesNumber: () => boolean;\n leftRowSeriesNumberCount: number;\n isAutoRowHeight: (row: number) => boolean;\n\n setSortedIndexMap: (field: FieldDef, filedMap: ISortedMapItem) => void;\n\n exportImg: () => string;\n exportCellImg: (\n col: number,\n row: number,\n options?: { disableBackground?: boolean; disableBorder?: boolean }\n ) => string;\n exportCellRangeImg: (cellRange: CellRange) => string;\n exportCanvas: () => HTMLCanvasElement;\n setPixelRatio: (pixelRatio: number) => void;\n}\nexport interface ListTableProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | null;\n dataConfig?: IListTableDataConfig;\n columns: ColumnsDefine;\n layoutMap: SimpleHeaderLayoutMap;\n}\n\nexport interface PivotTableProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | undefined;\n recordsIsTwoDimensionalArray?: boolean;\n layoutMap: PivotHeaderLayoutMap;\n dataConfig?: IPivotTableDataConfig;\n\n /** 列表头树型结构 */\n columnTree?: IHeaderTreeDefine[];\n /** 行表头树型结构 */\n rowTree?: IHeaderTreeDefine[];\n /** 定义行上各个维度具体配置项和样式定义 */\n rows?: (IRowDimension | string)[]; // (string | IDimension)[]; 后续支持数据分析的透视表 支持string配置\n /** 定义列上各个维度具体配置项和样式定义 */\n columns?: (IColumnDimension | string)[]; // (string | IDimension)[];\n /** 定义指标具体配置项和样式定义 包含表头和body的定义*/\n indicators?: (IIndicator | string)[]; // (string | IIndicator)[];\n}\nexport interface PivotChartProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | Record<string, any[]>;\n layoutMap: PivotHeaderLayoutMap;\n dataConfig?: IPivotChartDataConfig;\n columnTree?: IHeaderTreeDefine[];\n /** 行表头维度结构 */\n rowTree?: IHeaderTreeDefine[];\n /** 定义行上各个维度具体配置项和样式定义 */\n rows?: (IRowDimension | string)[]; // (string | IDimension)[]; 后续支持数据分析的透视表 支持string配置\n /** 定义列上各个维度具体配置项和样式定义 */\n columns?: (IColumnDimension | string)[]; // (string | IDimension)[];\n /** 定义指标具体配置项和样式定义 包含表头和body的定义*/\n indicators?: (IIndicator | string)[]; // (string | IIndicator)[];\n}\n"]}
1
+ {"version":3,"sources":["../src/ts-types/base-table.ts"],"names":[],"mappings":"","file":"base-table.js","sourcesContent":["import type { ITextSize } from '@visactor/vutils';\nimport type {\n RectProps,\n MaybePromiseOrUndefined,\n ICellHeaderPaths,\n CellInfo,\n CustomCellStyle,\n CustomCellStyleArrangement\n} from './common';\nimport type {\n TableEventListener,\n TableEventHandlersEventArgumentMap,\n TableEventHandlersReturnMap,\n EventListenerId,\n MousePointerCellEvent\n} from './events';\nimport type { MenuListItem, DropDownMenuEventInfo, DropDownMenuHighlightInfo } from './menu';\nimport type { CellStyle } from './style-define';\nimport type { ColumnIconOption } from './icon';\nimport type {\n ColumnData,\n ColumnDefine,\n ColumnsDefine,\n HeaderData,\n IndicatorData,\n SeriesNumberColumnData\n} from './list-table/layout-map/api';\nexport type { HeaderData } from './list-table/layout-map/api';\nimport type { TableTheme } from '../themes/theme';\nimport type { ICustomRender } from './customElement';\nexport type LayoutObjectId = number | string;\nimport type { Rect } from '../tools/Rect';\nimport type { Scenegraph } from '../scenegraph/scenegraph';\nimport type { StateManager } from '../state/state';\nimport type { EventManager } from '../event/event';\nimport type {\n CellAddress,\n CellRange,\n CellLocation,\n ColumnTypeOption,\n DataSourceAPI,\n FieldData,\n FieldDef,\n FieldFormat,\n FullExtendStyle,\n HeaderValues,\n HeightModeDef,\n HierarchyState,\n IPivotTableDataConfig,\n IPagination,\n ITableThemeDefine,\n SortState,\n TableKeyboardOptions,\n WidthModeDef,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n StickCell,\n CustomMergeCell,\n CustomMerge,\n IColumnDimension,\n IRowDimension,\n TableEventOptions,\n IPivotChartDataConfig,\n IListTableDataConfig,\n IRowSeriesNumber,\n ColumnSeriesNumber,\n ColumnStyleOption,\n WidthAdaptiveModeDef,\n HeightAdaptiveModeDef\n} from '.';\nimport type { TooltipOptions } from './tooltip';\nimport type { IWrapTextGraphicAttribute } from '../scenegraph/graphic/text';\nimport type { ICustomLayout } from './customLayout';\nimport type { CachedDataSource, DataSource } from '../data';\nimport type { MenuHandler } from '../components/menu/dom/MenuHandler';\nimport type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../layout';\nimport type { TooltipHandler } from '../components/tooltip/TooltipHandler';\nimport type { BodyHelper } from '../body-helper/body-helper';\nimport type { HeaderHelper } from '../header-helper/header-helper';\nimport type { EventHandler } from '../event/EventHandler';\nimport type { NumberMap } from '../tools/NumberMap';\nimport type { FocusInput } from '../core/FouseInput';\nimport type { ITableLegendOption } from './component/legend';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { Title } from '../components/title/title';\nimport type { ITitle } from './component/title';\nimport type { DiscreteTableLegend } from '../components/legend/discrete-legend/discrete-legend';\nimport type { ContinueTableLegend } from '../components/legend/continue-legend/continue-legend';\nimport type { NumberRangeMap } from '../layout/row-height-map';\nimport type { RowSeriesNumberHelper } from '../core/row-series-number-helper';\nimport type { ISortedMapItem } from '../data/DataSource';\nimport type { IAnimationAppear } from './animation/appear';\nimport type { IEmptyTip } from './component/empty-tip';\nimport type { EmptyTip } from '../components/empty-tip/empty-tip';\n\nexport interface IBaseTableProtected {\n element: HTMLElement;\n // scrollable: Scrollable;\n handler: EventHandler;\n focusControl: FocusInput;\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n rowCount: number;\n colCount: number;\n frozenColCount: number;\n allowFrozenColCount: number;\n\n frozenRowCount: number;\n rightFrozenColCount: number;\n bottomFrozenRowCount: number;\n defaultRowHeight: number;\n /**表头默认行高 可以按逐行设置 如果没有就取defaultRowHeight */\n defaultHeaderRowHeight: (number | 'auto') | (number | 'auto')[];\n defaultColWidth: number;\n defaultHeaderColWidth: (number | 'auto') | (number | 'auto')[];\n // font?: string;\n // underlayBackgroundColor?: string;\n keyboardOptions?: TableKeyboardOptions;\n eventOptions?: TableEventOptions;\n rowSeriesNumber?: IRowSeriesNumber;\n columnSeriesNumber?: ColumnSeriesNumber[];\n // disableRowHeaderColumnResize?: boolean;\n // 列宽调整模式(全列调整;全列不可调整;仅表头单元格可调整;仅内容单元格可调整)\n columnResizeMode?: 'all' | 'none' | 'header' | 'body';\n rowResizeMode?: 'all' | 'none' | 'header' | 'body';\n columnResizeType?: 'column' | 'indicator' | 'all' | 'indicatorGroup';\n rowResizeType?: 'row' | 'indicator' | 'all' | 'indicatorGroup';\n /** 控制拖拽表头移动位置顺序开关 */\n dragHeaderMode?: 'all' | 'none' | 'column' | 'row';\n /** 拖拽表头移动位置 针对冻结部分的规则\n * \"disabled\"(禁止调整冻结列位置):不允许其他列的表头移入冻结列,也不允许冻结列移出,冻结列保持不变。\n * \"adjustFrozenCount\"(根据交互结果调整冻结数量):允许其他列的表头移入冻结列,及冻结列移出,并根据拖拽的动作调整冻结列的数量。当其他列的表头被拖拽进入冻结列位置时,冻结列数量增加;当其他列的表头被拖拽移出冻结列位置时,冻结列数量减少。\n * \"fixedFrozenCount\"(可调整冻结列,并维持冻结数量不变):允许自由拖拽其他列的表头移入或移出冻结列位置,同时保持冻结列的数量不变。\n */\n frozenColDragHeaderMode?: 'disabled' | 'adjustFrozenCount' | 'fixedFrozenCount';\n cachedRecordsRowHeightMap: NumberMap<string | number>; //存储每一条记录对应行的行高,只有当设置为自动换行随内容撑开才会起作用\n // headerRowHeightsMap: NumberMap<number>; //目前是用来存储了表头各行的高度,从headerRowHeight计算而来,headerRowHeight可以设置为数组的形式\n _rowHeightsMap: NumberRangeMap; //存储数据条目每行高度\n _colWidthsMap: NumberMap<string | number>; //存储各列的宽度\n _colContentWidthsMap: NumberMap<string | number>; //存储各列的内容宽度\n _colWidthsLimit: {\n //存储各列的宽度限制\n [col: number]: {\n max?: string | number;\n min?: string | number;\n };\n };\n calcWidthContext: {\n _: IBaseTableProtected;\n full: number;\n // em: number;\n };\n\n _rowRangeHeightsMap: Map<string, number>; //存储指定行范围的总高度\n _colRangeWidthsMap: Map<string, number>; //存储指定列范围的总宽度\n\n _widthResizedColMap: Set<number>; //记录下被手动调整过列宽的列号\n _heightResizedRowMap: Set<number>; //记录下被手动调整过行高的行号\n\n bodyHelper: BodyHelper;\n headerHelper: HeaderHelper;\n rowSeriesNumberHelper: RowSeriesNumberHelper;\n\n cellTextOverflows: { [at: string]: string };\n // headerDescriptions: { [at: string]: string };\n focusedTable: boolean;\n\n config:\n | {\n [name: string]: any;\n }\n | undefined;\n // scroll: {\n // left: number;\n // top: number;\n // };\n releaseList?: { release: () => void }[] | null;\n theme: TableTheme;\n transpose?: boolean; //是否转置\n // autoRowHeight?: boolean; //是否自动撑开高度 对于设置了autoWrapText的multilineText的列生效\n pixelRatio?: number;\n /** 下拉菜单的相关配置。消失时机:显示后点击菜单区域外自动消失*/\n menu: {\n /** 代替原来的option.menuType */\n renderMode?: 'canvas' | 'html';\n /** 内置下拉菜单的全局设置项 目前只针对基本表格有效 会对每个表头单元格开启默认的下拉菜单功能。代替原来的option.dropDownMenu*/\n defaultHeaderMenuItems?: MenuListItem[];\n /** 右键菜单。代替原来的option.contextmenu */\n contextMenuItems?: MenuListItem[] | ((field: FieldDef, row: number, col: number) => MenuListItem[]);\n /** 设置选中状态的菜单。代替原来的option.dropDownMenuHighlight */\n dropDownMenuHighlight?: DropDownMenuHighlightInfo[];\n };\n /** 提示弹框的相关配置。消失时机:显示后鼠标移动到指定区域外或者进入新的单元格后自动消失*/\n tooltip: {\n renderMode: 'html' | 'canvas';\n /** 代替原来hover:isShowTooltip配置 */\n isShowOverflowTextTooltip: boolean;\n /** 缩略文字提示框 延迟消失时间 */\n overflowTextTooltipDisappearDelay?: number;\n /** 弹框是否需要限定在表格区域内 */\n confine: boolean;\n };\n\n dataSourceEventIds?: EventListenerId[];\n // headerEvents?: EventListenerId[];\n layoutMap: SimpleHeaderLayoutMap | PivotHeaderLayoutMap;\n headerValues?: HeaderValues;\n tooltipHandler: TooltipHandler;\n\n // headerRowHeight: number[] | number;//移到了BaseTable\n sortState: SortState | SortState[];\n\n dataSource: DataSource | CachedDataSource;\n records?: any;\n allowRangePaste: boolean;\n //重新思考逻辑:如果为false,行高按设置的rowHeight;如果设置为true,则按lineHeight及是否自动换行综合计算行高 2021.11.19 by:lff\n\n autoWrapText?: boolean;\n enableLineBreak?: boolean;\n\n menuHandler: MenuHandler;\n\n /**\n * 计算列宽时 指定最大列宽 可设置boolean或者具体的值 默认为450\n */\n limitMaxAutoWidth?: boolean | number;\n\n /**\n * 限制列宽最小值。\n */\n limitMinWidth?: number;\n\n limitMinHeight?: number;\n\n title?: Title;\n legends?: (DiscreteTableLegend | ContinueTableLegend)[];\n\n emptyTip?: EmptyTip;\n //是否开启图表异步渲染\n renderChartAsync?: boolean;\n // // 开启图表异步渲染 每批次渐进渲染图表个数\n // renderChartAsyncBatchCount?: number;\n\n stick: { changedCells: Map<string, StickCell> };\n\n customMergeCell?: CustomMergeCell;\n /**\n * 'auto':和浏览器滚动行为一致 表格滚动到顶部/底部时 触发浏览器默认行为;\n * 设置为 'none' 时, 表格滚动到顶部/底部时, 不再触发父容器滚动\n * */\n overscrollBehavior?: 'auto' | 'none';\n\n // 已使用一行的高度填充所有行\n useOneRowHeightFillAll?: boolean;\n}\nexport interface BaseTableConstructorOptions {\n // /** 指定表格的行数 */\n // rowCount?: number;\n\n // /** 指定表格的列数 */\n // colCount?: number;\n /**\n * 当前需要冻结的列数 基本表格生效\n */\n frozenColCount?: number;\n rightFrozenColCount?: number;\n bottomFrozenRowCount?: number;\n\n // /** 待实现 TODO */\n // frozenRowCount?: number;\n /** 可冻结列数,表示前多少列会出现冻结操作按钮 基本表格生效 */\n allowFrozenColCount?: number;\n /**\n * 默认行高. 默认 40\n */\n defaultRowHeight?: number;\n /** 列表头默认行高 可以按逐行设置 如果没有就取defaultRowHeight */\n defaultHeaderRowHeight?: (number | 'auto') | (number | 'auto')[];\n /**\n * 默认列宽. 默认 80\n */\n defaultColWidth?: number;\n /** 行表头默认列宽 可以按逐列设置 如果没有就取defaultColWidth */\n defaultHeaderColWidth?: (number | 'auto') | (number | 'auto')[];\n /** 快捷键功能设置 */\n keyboardOptions?: TableKeyboardOptions;\n excelOptions?: {\n fillHandle?: boolean;\n };\n /** 事件触发相关设置 */\n eventOptions?: TableEventOptions;\n /**\n * Canvas container\n */\n container?: HTMLElement | null;\n\n /**\n * 调整列宽 可操作范围。'all' | 'none' | 'header' | 'body'; 整列间隔线|禁止调整|只能在表头处间隔线|只能在body间隔线\n */\n columnResizeMode?: 'all' | 'none' | 'header' | 'body';\n rowResizeMode?: 'all' | 'none' | 'header' | 'body';\n /** 控制拖拽表头移动位置顺序开关 */\n dragHeaderMode?: 'all' | 'none' | 'column' | 'row';\n\n /**\n * 是否显示固定列图钉 基本表格生效\n */\n showFrozenIcon?: boolean;\n\n padding?:\n | {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n }\n | number;\n /** hover交互配置 */\n hover?: {\n /** hover交互响应模式:十字交叉 整列 整行 或者单个单元格 */\n highlightMode?: 'cross' | 'column' | 'row' | 'cell';\n /** 不响应鼠标hover交互 */\n disableHover?: boolean;\n /** 单独设置表头不响应鼠标hover交互 */\n disableHeaderHover?: boolean;\n /** 单独设置坐标轴不响应鼠标hover交互 */\n disableAxisHover?: boolean;\n };\n /** 选择单元格交互配置 */\n select?: {\n /** 高亮范围模式:十字交叉 整列 整行 或者单个单元格。默认`cell` */\n highlightMode?: 'cross' | 'column' | 'row' | 'cell';\n /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/\n headerSelectMode?: 'inline' | 'cell';\n /** 不响应鼠标select交互 */\n disableSelect?: boolean;\n /** 单独设置表头不响应鼠标select交互 */\n disableHeaderSelect?: boolean;\n };\n /** 下拉菜单的相关配置。消失时机:显示后点击菜单区域外自动消失*/\n menu?: {\n /** 代替原来的option.menuType html目前实现较完整 先默认html渲染方式*/\n renderMode?: 'canvas' | 'html';\n /** 内置下拉菜单的全局设置项 目前只针对基本表格有效 会对每个表头单元格开启默认的下拉菜单功能。代替原来的option.dropDownMenu*/\n defaultHeaderMenuItems?: MenuListItem[];\n /** 右键菜单。代替原来的option.contextmenu */\n contextMenuItems?: MenuListItem[] | ((field: string, row: number, col: number) => MenuListItem[]);\n /** 设置选中状态的菜单。代替原来的option.dropDownMenuHighlight */\n dropDownMenuHighlight?: DropDownMenuHighlightInfo[];\n };\n /** tooltip相关配置 */\n tooltip?: {\n /** html目前实现较完整 先默认html渲染方式 */\n renderMode?: 'html'; // 目前暂不支持canvas方案\n /** 是否显示缩略文字提示框。 代替原来hover:isShowTooltip配置 暂时需要将renderMode配置为html才能显示,canvas的还未开发*/\n isShowOverflowTextTooltip?: boolean;\n /** 缩略文字提示框 延迟消失时间 */\n overflowTextTooltipDisappearDelay?: number;\n /** 是否将 tooltip 框限制在画布区域内,默认开启。针对renderMode:\"html\"有效 */\n confine?: boolean;\n };\n /**\n * Theme\n */\n theme?: ITableThemeDefine;\n /** 宽度模式 */\n widthMode?: 'standard' | 'adaptive' | 'autoWidth';\n /** 高度模式 */\n heightMode?: 'standard' | 'adaptive' | 'autoHeight';\n /** 当列宽度不能占满容器时,是否需要自动拉宽来填充容器的宽度。默认false */\n autoFillWidth?: boolean;\n /** 当行高度不能占满容器时,是否需要自动拉高来填充容器的高度。默认false */\n autoFillHeight?: boolean;\n\n /** adaptive 模式下宽度的适应策略 **/\n widthAdaptiveMode?: WidthAdaptiveModeDef;\n /** adaptive 模式下高度的适应策略 **/\n heightAdaptiveMode?: HeightAdaptiveModeDef;\n\n // /** 行高是否根据内容来计算 */\n // autoRowHeight?: boolean;\n /** 设备的像素比 不配的话默认获取window.devicePixelRatio */\n pixelRatio?: number;\n /** 自定义渲染 函数形式*/\n customRender?: ICustomRender;\n /** 开启自动换行 默认false */\n autoWrapText?: boolean;\n /** 是否处理换行符 */\n enableLineBreak?: boolean;\n /** 单元格中可显示最大字符数 默认200 */\n maxCharactersNumber?: number; //\n // /** toolip最大字符数 */\n // maxTooltipCharactersNumber?: number;\n /** 最大可操作条目数 如copy操作可复制出最大数据条目数 */\n maxOperatableRecordCount?: number;\n /**\n * 计算列宽时 指定最大列宽 可设置boolean或者具体的值 默认为450。手动拖拽列宽的话不收这个限制\n */\n limitMaxAutoWidth?: boolean | number;\n /**\n * 限制列宽最小值。如设置为true 则拖拽改变列宽时限制列宽最小为10px,设置为false则不进行限制。默认为10px\n */\n limitMinWidth?: boolean | number;\n limitMinHeight?: boolean | number;\n\n // maximum number of data items maintained in table instance\n maintainedDataCount?: number;\n\n legends?: ITableLegendOption | ITableLegendOption[];\n title?: ITitle;\n emptyTip?: true | IEmptyTip;\n /** 是否开启图表异步渲染 */\n renderChartAsync?: boolean;\n /** 开启图表异步渲染 每批次渐进渲染图表个数 默认是5个 */\n renderChartAsyncBatchCount?: number;\n\n customMergeCell?: CustomMergeCell;\n\n // #region for nodejs\n mode?: 'node' | 'broswer';\n modeParams?: any;\n canvasWidth?: number;\n canvasHeight?: number;\n // #endregion\n /**\n * 'auto':和浏览器滚动行为一致 表格滚动到顶部/底部时 触发浏览器默认行为;\n * 设置为 'none' 时, 表格滚动到顶部/底部时, 不再触发父容器滚动\n * */\n overscrollBehavior?: 'auto' | 'none';\n\n // resize response time\n resizeTime?: number;\n\n rowSeriesNumber?: IRowSeriesNumber;\n // columnSeriesNumber?: ColumnSeriesNumber[];\n customCellStyle?: CustomCellStyle[];\n customCellStyleArrangement?: CustomCellStyleArrangement[];\n\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n clearDOM?: boolean;\n customConfig?: {\n /** xTable对于没有配置autoWrapText并且有'\\n'的文本,在计算行高是会当做一行处理,但是在渲染时会解析'\\n';显示效果就是单元格高度为一行文本高度,只显示第一个'\\n'前的文字,后面显示'...';multilinesForXTable配置实现和该功能对齐的样式 */\n multilinesForXTable?: boolean;\n /** 这里可以配置为false 来走flatDataToObject的数据处理逻辑 而不走dataset的分析 */\n enableDataAnalysis?: boolean;\n /** 禁用行高列宽计算取整数逻辑 对齐xTable */\n _disableColumnAndRowSizeRound?: boolean;\n imageMargin?: number;\n // adaptive 模式下优先缩小迷你图\n shrinkSparklineFirst?: boolean;\n }; // 部分特殊配置,兼容xTable等作用\n\n animationAppear?: boolean | IAnimationAppear;\n\n renderOption?: any;\n}\nexport interface BaseTableAPI {\n /** 数据总条目数 */\n recordsCount: number;\n /** 表格的行数 */\n rowCount: number;\n /** 表格的列数 */\n colCount: number;\n /** 表格除去外层frame后的宽度 */\n tableNoFrameWidth: number;\n /** 表格除去外层frame后的高度 */\n tableNoFrameHeight: number;\n /** 表格的冻结行数 包括表头在内 */\n frozenRowCount: number;\n /** 表格的冻结列数 包括表头在内 */\n frozenColCount: number;\n\n bottomFrozenRowCount: number;\n rightFrozenColCount: number;\n /** 当前表格默认表头行高 */\n defaultHeaderRowHeight: (number | 'auto') | (number | 'auto')[];\n /** 当前表格默认行高 */\n defaultRowHeight: number;\n /** 当前表格默认列宽 */\n defaultColWidth: number;\n /** 当前表格默认表头列宽 */\n defaultHeaderColWidth: (number | 'auto') | (number | 'auto')[];\n /** 当前表格快捷键设置 */\n keyboardOptions: TableKeyboardOptions | null;\n /** 当前表格事件相关设置 */\n eventOptions: TableEventOptions | null;\n /**\n * 是否显示图钉\n */\n showFrozenIcon: boolean;\n readonly canvas: HTMLCanvasElement;\n /** 表格可视区域的行数 */\n readonly visibleRowCount: number;\n /** 表格可视区域的列数 */\n readonly visibleColCount: number;\n /** 表格滚动值left */\n scrollLeft: number;\n /** 表格滚动值top */\n scrollTop: number;\n /** 用户设置的options 不要修改这个这个 */\n options: BaseTableConstructorOptions;\n /** 设置的全局下拉菜单列表项配置 */\n globalDropDownMenu?: MenuListItem[];\n /** 设置的全局自定义渲染函数 */\n customRender?: ICustomRender;\n\n /** 表格数据管理对象 */\n dataSource: DataSourceAPI;\n /** 设置的表格主题 */\n theme: TableTheme;\n /** 可允许设置冻结的最大列数 */\n allowFrozenColCount: number;\n\n /** 存储内部用到的属性 变量等 */\n internalProps: IBaseTableProtected;\n /** 分页信息 */\n pagination?: IPagination;\n\n /** 表格偏移像素值 水平方向 */\n tableX: number;\n /** 表格偏移像素值 垂直方向 */\n tableY: number;\n /** 表格宽度模式 */\n widthMode: WidthModeDef;\n /** 表格宽度模式 */\n heightMode: HeightModeDef;\n /** 当列宽度不能占满容器时,是否需要自动拉宽来填充容器的宽度。默认false */\n autoFillWidth: boolean;\n /** 当行高度不能占满容器时,是否需要自动拉高来填充容器的高度。默认false */\n autoFillHeight?: boolean;\n\n /** adaptive 模式下宽度的适应策略 **/\n widthAdaptiveMode: WidthAdaptiveModeDef;\n /** adaptive 模式下高度的适应策略 **/\n heightAdaptiveMode: HeightAdaptiveModeDef;\n\n isReleased: boolean;\n\n // rowHeightsMap: NumberMap<number>;\n rowHeightsMap: NumberRangeMap;\n colWidthsMap: NumberMap<string | number>;\n\n on: <TYPE extends keyof TableEventHandlersEventArgumentMap>(\n type: TYPE,\n listener: TableEventListener<TYPE> //(event: TableEventHandlersEventArgumentMap[TYPE]) => TableEventHandlersReturnMap[TYPE]\n ) => EventListenerId;\n // &(<T extends keyof TableEventHandlersEventArgumentMap>(type: string, listener: AnyListener<T>) => EventListenerId);\n\n _vDataSet: DataSet;\n /** 场景树对象 */\n scenegraph: Scenegraph;\n /** 状态管理模块 */\n stateManager: StateManager;\n /** 事件管理模块 */\n eventManager: EventManager;\n /** 行表头的层数 */\n rowHeaderLevelCount: number;\n /** 列表头的层数 */\n columnHeaderLevelCount: number;\n\n canvasWidth?: number;\n canvasHeight?: number;\n\n columnWidthComputeMode?: 'normal' | 'only-header' | 'only-body';\n\n /** 获取表格绘制的范围 不包括frame的宽度 */\n getDrawRange: () => Rect;\n /** 将鼠标坐标值 转换成表格坐标系中的坐标位置 */\n _getMouseAbstractPoint: (\n evt: TouchEvent | MouseEvent | undefined,\n isAddScroll?: boolean\n ) => { x: number; y: number; inTable: boolean };\n getElement: () => HTMLElement;\n getContainer: () => HTMLElement;\n\n setFrozenColCount: (count: number) => void;\n _setFrozenColCount: (count: number) => void;\n _updateSize: () => void;\n\n render: () => void;\n throttleInvalidate: () => void;\n getRowHeight: (row: number) => number;\n getDefaultRowHeight: (row: number) => number | 'auto';\n getDefaultColumnWidth: (col: number) => number | 'auto';\n _setRowHeight: (row: number, height: number, clearCache?: boolean) => void;\n setRowHeight: (row: number, height: number) => void;\n getColWidth: (col: number) => number;\n getColWidthDefined: (col: number) => string | number;\n // setColWidthDefined: (col: number, width: number) => void;\n getColWidthDefinedNumber: (col: number) => number;\n // getColWidthDefine: (col: number) => string | number;\n _setColWidth: (col: number, width: number | string, clearCache?: boolean, skipCheckFrozen?: boolean) => void;\n setColWidth: (col: number, width: number) => void;\n _getColContentWidth: (col: number) => number;\n _setColContentWidth: (col: number, width: number | string, clearCache?: boolean) => void;\n getMaxColWidth: (col: number) => number;\n setMaxColWidth: (col: number, maxwidth: string | number) => void;\n getMinColWidth: (col: number) => number;\n setMinColWidth: (col: number, minwidth: string | number) => void;\n getCellRect: (col: number, row: number) => Rect;\n getCellRelativeRect: (col: number, row: number) => Rect;\n getCellsRect: (startCol: number, startRow: number, endCol: number, endRow: number) => Rect;\n getCellRangeRect: (cellRange: CellRange | CellAddress) => Rect;\n getCellRangeRelativeRect: (cellRange: CellRange | CellAddress) => Rect;\n getVisibleCellRangeRelativeRect: (cellRange: CellRange | CellAddress) => Rect;\n isFrozenCell: (col: number, row: number) => { row: boolean; col: boolean } | null;\n getRowAt: (absoluteY: number) => { top: number; row: number; bottom: number };\n getColAt: (absoluteX: number) => { left: number; col: number; right: number };\n getCellAt: (absoluteX: number, absoluteY: number) => CellAddress;\n _makeVisibleCell: (col: number, row: number) => void;\n // setFocusCursor(col: number, row: number): void;\n // focusCell(col: number, row: number): void;\n getCellOverflowText: (col: number, row: number) => string | null;\n getColsWidth: (startCol: number, endCol: number) => number;\n getRowsHeight: (startRow: number, endRow: number) => number;\n\n release: () => void;\n addReleaseObj: (releaseObj: { release: () => void }) => void;\n _getCellStyle: (col: number, row: number) => FullExtendStyle;\n clearCellStyleCache: () => void;\n\n getFrozenRowsHeight: () => number;\n getFrozenColsWidth: () => number;\n getBottomFrozenRowsHeight: () => number;\n getRightFrozenColsWidth: () => number;\n selectCell: (col: number, row: number, isShift?: boolean, isCtrl?: boolean) => void;\n selectCells: (cellRanges: CellRange[]) => void;\n getAllRowsHeight: () => number;\n getAllColsWidth: () => number;\n\n off: (id: EventListenerId) => void;\n getBodyField: (col: number, row: number) => FieldDef | undefined;\n /**\n * 根据单元格获取对应的源数据\n * @param col\n * @param row\n * @returns\n */\n getRecordByCell: (col: number, row: number) => MaybePromiseOrUndefined;\n /**\n * 根据数据源的index 获取显示到表格中的index 行号或者列号(与转置相关)。注:ListTable特有接口\n * @param recordIndex\n */\n getTableIndexByRecordIndex: (recordIndex: number) => number;\n /**\n * 根据数据源的field 获取显示到表格中的index 行号或者列号(与转置相关)。注:ListTable特有接口\n * @param recordIndex\n */\n getTableIndexByField: (field: FieldDef) => number;\n /**\n * 根据数据源中的index和field获取单元格行列号。注:ListTable特有接口\n * @param field\n * @param recordIndex\n * @returns\n */\n getCellAddrByFieldRecord: (field: FieldDef, recordIndex: number) => CellAddress;\n getRecordShowIndexByCell: (col: number, row: number) => number;\n getRecordStartRowByRecordIndex: (index: number) => number;\n\n getHeaderField: (col: number, row: number) => any | undefined;\n\n _getHeaderCellBySortState: (sortState: SortState) => CellAddress | undefined;\n getHeaderDefine: (col: number, row: number) => ColumnDefine | IRowSeriesNumber | ColumnSeriesNumber;\n _getHeaderLayoutMap: (col: number, row: number) => HeaderData | SeriesNumberColumnData;\n getContext: () => CanvasRenderingContext2D;\n getCellRange: (col: number, row: number) => CellRange;\n _resetFrozenColCount: () => void;\n isCellRangeEqual: (col: number, row: number, targetCol: number, targetRow: number) => boolean;\n _getLayoutCellId: (col: number, row: number) => LayoutObjectId;\n _getBodyLayoutMap: (col: number, row: number) => ColumnData | IndicatorData | SeriesNumberColumnData;\n getBodyColumnDefine: (col: number, row: number) => ColumnDefine | IRowSeriesNumber | ColumnSeriesNumber;\n getBodyColumnType: (col: number, row: number) => ColumnTypeOption;\n getCellType: (col: number, row: number) => ColumnTypeOption;\n fireListeners: <TYPE extends keyof TableEventHandlersEventArgumentMap>(\n type: TYPE,\n event: TableEventHandlersEventArgumentMap[TYPE]\n ) => TableEventHandlersReturnMap[TYPE][];\n\n //更新分页\n updatePagination: (cof: IPagination) => void;\n //hover\n\n getHeaderDescription: (col: number, row: number) => string | undefined;\n /** 获取单元格展示值 */\n getCellValue: (col: number, row: number, skipCustomMerge?: boolean) => string | null;\n /** 获取单元格展示数据的format前的值 */\n getCellOriginValue: (col: number, row: number) => any;\n /** 获取单元格展示数据源最原始值 */\n getCellRawValue: (col: number, row: number) => FieldData;\n /** 获取单元格展示数据的format前的record源数据 */\n getCellOriginRecord: (col: number, row: number) => MaybePromiseOrUndefined;\n /** 获取单元格展示源数据 */\n getCellRawRecord: (col: number, row: number) => MaybePromiseOrUndefined;\n\n _dropDownMenuIsHighlight: (col: number, row: number, index: number) => boolean;\n // bindEvents(): void;\n refreshRowColCount: () => void;\n // getFieldData: (field: FieldDef | FieldFormat | undefined, col: number, row: number) => FieldData;\n _hasField: (field: FieldDef, col: number, row: number) => boolean;\n getCellHeaderPaths: (col: number, row: number) => ICellHeaderPaths;\n getCellLocation: (col: number, row: number) => CellLocation;\n // isHitIcon(col: number, row: number, x: number, y: number, iconType: IconFuncTypeEnum): boolean;\n getCellIcons: (col: number, row: number) => ColumnIconOption[];\n\n getMenuInfo: (col: number, row: number, type: string) => DropDownMenuEventInfo;\n /**\n * 获取某个单元格的样式 共业务方调用\n * @param col\n * @param row\n */\n getCellStyle: (col: number, row: number) => CellStyle; // 计算后style\n\n getHierarchyState: (col: number, row: number) => HierarchyState | null;\n\n _hasHierarchyTreeHeader: () => boolean;\n\n _canDragHeaderPosition: (col: number, row: number) => boolean;\n\n isHeader: (col: number, row: number) => boolean;\n\n isColumnHeader: (col: number, row: number) => boolean;\n\n isCornerHeader: (col: number, row: number) => boolean;\n\n isRowHeader: (col: number, row: number) => boolean;\n\n getCopyValue: () => string;\n\n getSelectedCellInfos: () => CellInfo[][];\n getSelectedCellRanges: () => CellRange[];\n getCellInfo: (col: number, row: number) => Omit<MousePointerCellEvent, 'target'>;\n\n showTooltip: (col: number, row: number, tooltipOptions?: TooltipOptions) => void;\n\n measureText: (\n text: string,\n font: { fontSize: number; fontWeight?: string | number; fontFamily: string }\n ) => ITextSize;\n\n _canResizeColumn: (col: number, row: number) => boolean;\n _canResizeRow: (col: number, row: number) => boolean;\n\n getCustomRender: (col: number, row: number) => ICustomRender;\n getCustomLayout: (col: number, row: number) => ICustomLayout;\n isListTable: () => boolean;\n isPivotTable: (() => boolean) & (() => boolean);\n isPivotChart: (() => boolean) & (() => boolean);\n _clearColRangeWidthsMap: (col?: number) => void;\n _clearRowRangeHeightsMap: (row?: number) => void;\n clearRowHeightCache: () => void;\n clearColWidthCache: () => void;\n toggleHierarchyState: (col: number, row: number) => void;\n\n resize: () => void;\n\n getMergeCellRect: (col: number, row: number) => Rect;\n\n getTargetColAt: (absoluteX: number) => { col: number; left: number; right: number; width: number } | null;\n getTargetRowAt: (absoluteY: number) => { row: number; top: number; bottom: number; height: number } | null;\n getTargetColAtConsiderRightFrozen: (\n absoluteX: number,\n isConsider: boolean\n ) => { col: number; left: number; right: number; width: number } | null;\n getTargetRowAtConsiderBottomFrozen: (\n absoluteY: number,\n isConsider: boolean\n ) => { row: number; top: number; bottom: number; height: number } | null;\n renderWithRecreateCells: () => void;\n //#endregion tableAPI\n\n _adjustColWidth: (col: number, orgWidth: number) => number;\n _colWidthDefineToPxWidth: (width: string | number) => number;\n isFrozenColumn: (col: number, row?: number) => boolean;\n isLeftFrozenColumn: (col: number, row?: number) => boolean;\n isRightFrozenColumn: (col: number, row?: number) => boolean;\n isFrozenRow: (col: number, row?: number) => boolean;\n isTopFrozenRow: (col: number, row?: number) => boolean;\n isBottomFrozenRow: (col: number, row?: number) => boolean;\n\n hasCustomMerge: () => boolean;\n getCustomMerge: (col: number, row: number) => undefined | (Omit<CustomMerge, 'style'> & { style?: FullExtendStyle });\n /** 获取表格body部分的显示单元格范围 */\n getBodyVisibleCellRange: () => { rowStart: number; colStart: number; rowEnd: number; colEnd: number };\n /** 获取表格body部分的显示列号范围 */\n getBodyVisibleColRange: () => { colStart: number; colEnd: number };\n /** 获取表格body部分的显示行号范围 */\n getBodyVisibleRowRange: () => { rowStart: number; rowEnd: number };\n\n _hasCustomRenderOrLayout: () => boolean;\n /** 根据表格单元格的行列号 获取在body部分的列索引及行索引 */\n getBodyIndexByTableIndex: (col: number, row: number) => CellAddress;\n /** 根据body部分的列索引及行索引,获取单元格的行列号 */\n getTableIndexByBodyIndex: (col: number, row: number) => CellAddress;\n /**\n * 滚动到具体某个单元格位置\n * @param cellAddr 要滚动到的单元格位置\n */\n scrollToCell: (cellAddr: { col?: number; row?: number }) => void;\n registerCustomCellStyle: (customStyleId: string, customStyle: ColumnStyleOption | undefined | null) => void;\n arrangeCustomCellStyle: (cellPos: { col?: number; row?: number; range?: CellRange }, customStyleId: string) => void;\n\n _moveHeaderPosition: (\n source: CellAddress,\n target: CellAddress\n ) => {\n sourceIndex: number;\n targetIndex: any;\n sourceSize: any;\n targetSize: any;\n moveType: 'column' | 'row';\n };\n changeRecordOrder: (source: number, target: number) => void;\n isSeriesNumber: (col: number, row?: number) => boolean;\n isHasSeriesNumber: () => boolean;\n leftRowSeriesNumberCount: number;\n isAutoRowHeight: (row: number) => boolean;\n\n setSortedIndexMap: (field: FieldDef, filedMap: ISortedMapItem) => void;\n\n exportImg: () => string;\n exportCellImg: (\n col: number,\n row: number,\n options?: { disableBackground?: boolean; disableBorder?: boolean }\n ) => string;\n exportCellRangeImg: (cellRange: CellRange) => string;\n exportCanvas: () => HTMLCanvasElement;\n setPixelRatio: (pixelRatio: number) => void;\n}\nexport interface ListTableProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | null;\n dataConfig?: IListTableDataConfig;\n columns: ColumnsDefine;\n layoutMap: SimpleHeaderLayoutMap;\n}\n\nexport interface PivotTableProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | undefined;\n recordsIsTwoDimensionalArray?: boolean;\n layoutMap: PivotHeaderLayoutMap;\n dataConfig?: IPivotTableDataConfig;\n\n /** 列表头树型结构 */\n columnTree?: IHeaderTreeDefine[];\n /** 行表头树型结构 */\n rowTree?: IHeaderTreeDefine[];\n /** 定义行上各个维度具体配置项和样式定义 */\n rows?: (IRowDimension | string)[]; // (string | IDimension)[]; 后续支持数据分析的透视表 支持string配置\n /** 定义列上各个维度具体配置项和样式定义 */\n columns?: (IColumnDimension | string)[]; // (string | IDimension)[];\n /** 定义指标具体配置项和样式定义 包含表头和body的定义*/\n indicators?: (IIndicator | string)[]; // (string | IIndicator)[];\n}\nexport interface PivotChartProtected extends IBaseTableProtected {\n /** 表格数据 */\n records: any[] | Record<string, any[]>;\n layoutMap: PivotHeaderLayoutMap;\n dataConfig?: IPivotChartDataConfig;\n columnTree?: IHeaderTreeDefine[];\n /** 行表头维度结构 */\n rowTree?: IHeaderTreeDefine[];\n /** 定义行上各个维度具体配置项和样式定义 */\n rows?: (IRowDimension | string)[]; // (string | IDimension)[]; 后续支持数据分析的透视表 支持string配置\n /** 定义列上各个维度具体配置项和样式定义 */\n columns?: (IColumnDimension | string)[]; // (string | IDimension)[];\n /** 定义指标具体配置项和样式定义 包含表头和body的定义*/\n indicators?: (IIndicator | string)[]; // (string | IIndicator)[];\n}\n"]}
@@ -26,8 +26,6 @@ export interface IIconBase {
26
26
  padding?: number[];
27
27
  bgColor?: string;
28
28
  arrowMark?: boolean;
29
- maxWidth?: number;
30
- maxHeight?: number;
31
29
  };
32
30
  disappearDelay?: number;
33
31
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/icon.ts"],"names":[],"mappings":";;;AAkHA,IAAY,YAsBX;AAtBD,WAAY,YAAY;IAEtB,2CAA2B,CAAA;IAE3B,uCAAuB,CAAA;IAEvB,6BAAa,CAAA;IAEb,+BAAe,CAAA;IAEf,+CAA+B,CAAA;IAM/B,2CAA2B,CAAA;IAE3B,6CAA6B,CAAA;IAG7B,qCAAqB,CAAA;AACvB,CAAC,EAtBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsBvB;AAMD,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,mDAA+B,CAAA;IAC/B,iCAAa,CAAA;IACb,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,+CAA2B,CAAA;AAC7B,CAAC,EAZW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAY3B;AACD,IAAY,gBAaX;AAbD,WAAY,gBAAgB;IAC1B,kDAA8B,CAAA;IAC9B,sDAAkC,CAAA;IAClC,kDAA8B,CAAA;IAE9B,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,2DAAuC,CAAA;IACvC,qDAAiC,CAAA;IAEjC,6CAAyB,CAAA;IACzB,iDAA6B,CAAA;IAC7B,uDAAmC,CAAA;AACrC,CAAC,EAbW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAa3B","file":"icon.js","sourcesContent":["// ****** Icon配置信息,header ,以及列Icon *******9\n\nimport type { Placement } from './table-engine';\n\nexport interface IIconBase {\n /**\n * icon 是何种内容类型,如svg font。可用来约束不同类型的属性定义\n */\n type: 'font' | 'svg' | 'path' | 'image';\n /** icon的高度 */\n width?: number;\n /** icon的高度 */\n height?: number; // 如果是font图标 不设的话默认是字体高度\n /**\n * IconPosition枚举类型\n */\n positionType: IconPosition;\n /**\n * 和右侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginRight?: number;\n /**\n * 和左侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginLeft?: number;\n /**\n * icon名称,会作为内部缓存的key\n */\n name: string;\n /**\n * 重置VTable内部icon 指定icon的功能类型\n * 具有切换状态的功能性的图标请务必配置上, 如排序功能funcType配置sort,name配置sort_normal或ort_downward,或sort_upward\n */\n funcType?: IconFuncTypeEnum | string;\n /**\n * 响应hover 热区大小,及hover效果背景色\n */\n hover?: {\n width?: number;\n height?: number;\n bgColor: string;\n image?: string;\n };\n /** 鼠标hover到图标上后出现的具体鼠标样式 */\n cursor?: string;\n /**是否可见 默认'always' 可选:'always' | 'mouseenter_cell' | 'click_cell',常驻|hover到单元格时|选中单元格时。\n * 建议:如需使用 'mouseenter_cell' | 'click_cell',建议将positionTyle设为absoluteRight【即不占位】,否则占位的类型会影响视觉展示\n */\n visibleTime?: 'always' | 'mouseenter_cell' | 'click_cell';\n /**\n * 气泡框,按钮的的解释信息, 目前只支持hover行为触发\n */\n tooltip?: {\n title: string;\n /**气泡框位置,可选 top left right bottom */\n placement?: Placement;\n /** 气泡框的样式 不配的话会使用theme中的样式 */\n style?: {\n // font?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n bgColor?: string;\n arrowMark?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n };\n disappearDelay?: number;\n };\n /**\n * 是否可交互 默认为true 目前已知不可交互按钮:下拉菜单状态\n */\n interactive?: boolean;\n}\n\n// ****** Column Icon Options *******\nexport interface FontIcon extends IIconBase {\n type: 'font';\n font?: string;\n content: string;\n color?: string;\n}\nexport interface ImageIcon extends IIconBase {\n type: 'image';\n src: string;\n /** 图片裁切形状 */\n shape?: 'circle' | 'square';\n}\n\nexport interface PathIcon extends IIconBase {\n type: 'path';\n path: string;\n color?: string;\n}\n\nexport interface SvgIcon extends IIconBase {\n type: 'svg';\n /**\n * svg内容,支持url或者path\n */\n svg: string;\n}\n\n// export interface NamedIcon extends IIconBase {\n// type: 'name';\n// color?: string;\n// }\n/**\n * icon 的位置\n * inlineFront:文本内容的前面,\n * inlineEnd:文本内容后面\n *\n */\nexport enum IconPosition {\n /**文本行内容前面的图标,跟随文本定位,随文本折行 */\n inlineFront = 'inlineFront',\n /**文本行内容后面的图标,跟随文本定位,随文本折行。如sort图表 放在文本内容的第一行 */\n inlineEnd = 'inlineEnd',\n /**单元格左侧按钮 且受padding影响 */\n left = 'left',\n /**单元格右侧按钮 受padding影响 如pin图表 */\n right = 'right',\n /**固定在右侧的图标,不占位,不受padding影响,可能压盖内容 如 dropDown */\n absoluteRight = 'absoluteRight',\n\n // todo 增加更丰富的配置\n // cellLeft = 'cellLeft', //cell内靠左侧布局的图标(占位但是不受padding影响?)\n // cellRight = 'cellRight', //cell内靠右侧布局的图标\n /**在单元格内容块的左侧的图标,跟随文本定位,不随文本折行 */\n contentLeft = 'contentLeft',\n /**在单元格内容块的右侧的图标,跟随文本定位,不随文本折行 */\n contentRight = 'contentRight',\n\n /**在单元格中自由定位 */\n absolute = 'absolute'\n}\n/**\n * 图标类型\n * frozen 固定列图标\n * sort 排序图标\n */\nexport enum IconFuncTypeEnum {\n frozen = 'frozen',\n sort = 'sort',\n dropDown = 'dropDown',\n dropDownState = 'dropDownState',\n play = 'play',\n damagePic = 'damagePic',\n expand = 'expand',\n collapse = 'collapse',\n drillDown = 'drillDown',\n drillUp = 'drillUp',\n dragReorder = 'dragReorder'\n}\nexport enum InternalIconName {\n upwardIconName = 'sort_upward',\n downwardIconName = 'sort_downward',\n normalIconName = 'sort_normal',\n //冻结列 图钉按钮的几种状态\n freezeIconName = 'freeze',\n frozenIconName = 'frozen',\n frozenCurrentIconName = 'frozenCurrent',\n dropdownIconName = 'dropdownIcon',\n // dropdownHoverIconName = 'dropdownIcon_hover',\n expandIconName = 'expand',\n collapseIconName = 'collapse',\n dragReorderIconName = 'dragReorder'\n}\n// 目前暂不支持FontIcon&PathIcon\nexport type ColumnIconOption = ImageIcon | SvgIcon;\n"]}
1
+ {"version":3,"sources":["../src/ts-types/icon.ts"],"names":[],"mappings":";;;AAgHA,IAAY,YAsBX;AAtBD,WAAY,YAAY;IAEtB,2CAA2B,CAAA;IAE3B,uCAAuB,CAAA;IAEvB,6BAAa,CAAA;IAEb,+BAAe,CAAA;IAEf,+CAA+B,CAAA;IAM/B,2CAA2B,CAAA;IAE3B,6CAA6B,CAAA;IAG7B,qCAAqB,CAAA;AACvB,CAAC,EAtBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsBvB;AAMD,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,mDAA+B,CAAA;IAC/B,iCAAa,CAAA;IACb,2CAAuB,CAAA;IACvB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,+CAA2B,CAAA;AAC7B,CAAC,EAZW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAY3B;AACD,IAAY,gBAaX;AAbD,WAAY,gBAAgB;IAC1B,kDAA8B,CAAA;IAC9B,sDAAkC,CAAA;IAClC,kDAA8B,CAAA;IAE9B,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,2DAAuC,CAAA;IACvC,qDAAiC,CAAA;IAEjC,6CAAyB,CAAA;IACzB,iDAA6B,CAAA;IAC7B,uDAAmC,CAAA;AACrC,CAAC,EAbW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAa3B","file":"icon.js","sourcesContent":["// ****** Icon配置信息,header ,以及列Icon *******9\n\nimport type { Placement } from './table-engine';\n\nexport interface IIconBase {\n /**\n * icon 是何种内容类型,如svg font。可用来约束不同类型的属性定义\n */\n type: 'font' | 'svg' | 'path' | 'image';\n /** icon的高度 */\n width?: number;\n /** icon的高度 */\n height?: number; // 如果是font图标 不设的话默认是字体高度\n /**\n * IconPosition枚举类型\n */\n positionType: IconPosition;\n /**\n * 和右侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginRight?: number;\n /**\n * 和左侧元素间隔距离, 或者与单元格边界的间隔距离\n */\n marginLeft?: number;\n /**\n * icon名称,会作为内部缓存的key\n */\n name: string;\n /**\n * 重置VTable内部icon 指定icon的功能类型\n * 具有切换状态的功能性的图标请务必配置上, 如排序功能funcType配置sort,name配置sort_normal或ort_downward,或sort_upward\n */\n funcType?: IconFuncTypeEnum | string;\n /**\n * 响应hover 热区大小,及hover效果背景色\n */\n hover?: {\n width?: number;\n height?: number;\n bgColor: string;\n image?: string;\n };\n /** 鼠标hover到图标上后出现的具体鼠标样式 */\n cursor?: string;\n /**是否可见 默认'always' 可选:'always' | 'mouseenter_cell' | 'click_cell',常驻|hover到单元格时|选中单元格时。\n * 建议:如需使用 'mouseenter_cell' | 'click_cell',建议将positionTyle设为absoluteRight【即不占位】,否则占位的类型会影响视觉展示\n */\n visibleTime?: 'always' | 'mouseenter_cell' | 'click_cell';\n /**\n * 气泡框,按钮的的解释信息, 目前只支持hover行为触发\n */\n tooltip?: {\n title: string;\n /**气泡框位置,可选 top left right bottom */\n placement?: Placement;\n /** 气泡框的样式 不配的话会使用theme中的样式 */\n style?: {\n // font?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n bgColor?: string;\n arrowMark?: boolean;\n };\n disappearDelay?: number;\n };\n /**\n * 是否可交互 默认为true 目前已知不可交互按钮:下拉菜单状态\n */\n interactive?: boolean;\n}\n\n// ****** Column Icon Options *******\nexport interface FontIcon extends IIconBase {\n type: 'font';\n font?: string;\n content: string;\n color?: string;\n}\nexport interface ImageIcon extends IIconBase {\n type: 'image';\n src: string;\n /** 图片裁切形状 */\n shape?: 'circle' | 'square';\n}\n\nexport interface PathIcon extends IIconBase {\n type: 'path';\n path: string;\n color?: string;\n}\n\nexport interface SvgIcon extends IIconBase {\n type: 'svg';\n /**\n * svg内容,支持url或者path\n */\n svg: string;\n}\n\n// export interface NamedIcon extends IIconBase {\n// type: 'name';\n// color?: string;\n// }\n/**\n * icon 的位置\n * inlineFront:文本内容的前面,\n * inlineEnd:文本内容后面\n *\n */\nexport enum IconPosition {\n /**文本行内容前面的图标,跟随文本定位,随文本折行 */\n inlineFront = 'inlineFront',\n /**文本行内容后面的图标,跟随文本定位,随文本折行。如sort图表 放在文本内容的第一行 */\n inlineEnd = 'inlineEnd',\n /**单元格左侧按钮 且受padding影响 */\n left = 'left',\n /**单元格右侧按钮 受padding影响 如pin图表 */\n right = 'right',\n /**固定在右侧的图标,不占位,不受padding影响,可能压盖内容 如 dropDown */\n absoluteRight = 'absoluteRight',\n\n // todo 增加更丰富的配置\n // cellLeft = 'cellLeft', //cell内靠左侧布局的图标(占位但是不受padding影响?)\n // cellRight = 'cellRight', //cell内靠右侧布局的图标\n /**在单元格内容块的左侧的图标,跟随文本定位,不随文本折行 */\n contentLeft = 'contentLeft',\n /**在单元格内容块的右侧的图标,跟随文本定位,不随文本折行 */\n contentRight = 'contentRight',\n\n /**在单元格中自由定位 */\n absolute = 'absolute'\n}\n/**\n * 图标类型\n * frozen 固定列图标\n * sort 排序图标\n */\nexport enum IconFuncTypeEnum {\n frozen = 'frozen',\n sort = 'sort',\n dropDown = 'dropDown',\n dropDownState = 'dropDownState',\n play = 'play',\n damagePic = 'damagePic',\n expand = 'expand',\n collapse = 'collapse',\n drillDown = 'drillDown',\n drillUp = 'drillUp',\n dragReorder = 'dragReorder'\n}\nexport enum InternalIconName {\n upwardIconName = 'sort_upward',\n downwardIconName = 'sort_downward',\n normalIconName = 'sort_normal',\n //冻结列 图钉按钮的几种状态\n freezeIconName = 'freeze',\n frozenIconName = 'frozen',\n frozenCurrentIconName = 'frozenCurrent',\n dropdownIconName = 'dropdownIcon',\n // dropdownHoverIconName = 'dropdownIcon_hover',\n expandIconName = 'expand',\n collapseIconName = 'collapse',\n dragReorderIconName = 'dragReorder'\n}\n// 目前暂不支持FontIcon&PathIcon\nexport type ColumnIconOption = ImageIcon | SvgIcon;\n"]}
@@ -56,8 +56,6 @@ export type TooltipStyle = {
56
56
  color?: string;
57
57
  padding?: number[];
58
58
  bgColor?: string;
59
- maxWidth?: number;
60
- maxHeight?: number;
61
59
  };
62
60
  export interface ITableThemeDefine {
63
61
  underlayBackgroundColor?: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["/* eslint-disable sort-imports */\nimport type { ColorsDef, LineDashsDef, LineWidthsDef, LineWidthsPropertyDefine, LineDashsPropertyDefine } from '.';\nimport type { CheckboxStyle, ITextStyleOption, RadioStyle } from './column/style';\nimport type { ColorPropertyDefine, ColorsPropertyDefine } from './style-define';\nimport type { ColumnIconOption } from './icon';\nimport type { ICellAxisOption } from './component/axis';\nimport type { PopTipAttributes } from '@visactor/vrender-components';\n// ****** Custom Theme *******\nexport type PartialTableThemeDefine = Partial<ITableThemeDefine>;\nexport type ThemeStyle = ITextStyleOption & {\n hover?: Omit<InteractionStyle, 'cellBorderColor' | 'cellBorderLineWidth'>; //鼠标hover到某个单元格\n select?: {\n inlineRowBgColor?: ColorPropertyDefine; //交互所在整行的背景颜色\n inlineColumnBgColor?: ColorPropertyDefine; //交互所在整列的背景颜色\n };\n frameStyle?: FrameStyle;\n};\nexport type InteractionStyle = {\n cellBorderColor?: ColorsPropertyDefine; //交互所在单元格的边框颜色\n cellBorderLineWidth?: LineWidthsPropertyDefine;\n // cellBorderLineDash?:LineDashsPropertyDefine,//用到的场景应该不多\n cellBgColor?: ColorPropertyDefine; //交互所在单元格的背景颜色\n // inlineRowBorderColor?: ColorsPropertyDefine,//交互所在整行的边框颜色\n inlineRowBgColor?: ColorPropertyDefine; //交互所在整行的背景颜色\n // inlineColBorderColor?: ColorsPropertyDefine,//交互所在整列的边框颜色\n inlineColumnBgColor?: ColorPropertyDefine; //交互所在整列的背景颜色\n // headerHighlightBorderColor?:ColorPropertyDefine,//表头底部高亮线\n};\nexport type FrameStyle = {\n borderColor?: ColorsDef;\n borderLineWidth?: LineWidthsDef;\n borderLineDash?: LineDashsDef;\n innerBorder?: boolean;\n};\nexport type TableFrameStyle = FrameStyle & {\n shadowBlur?: number; //阴影宽度\n shadowOffsetX?: number; //x方向偏移\n shadowOffsetY?: number; //Y方向偏移\n shadowColor?: string; //阴影颜色\n cornerRadius?: number; //边框圆角半径\n};\nexport type menuStyle = {\n color?: string;\n highlightColor?: string;\n fontSize?: number;\n fontFamily?: string;\n highlightFontSize?: number;\n highlightFontFamily?: string;\n hoverBgColor?: string;\n};\nexport type ScrollStyle = {\n /**滚动条滚动的颜色 */\n scrollRailColor?: string;\n /**滚动条滑块的颜色 */\n scrollSliderColor?: string;\n /**滚动条滑块的圆角半径 */\n scrollSliderCornerRadius?: number;\n /**滚动条宽度大小 */\n width?: number;\n /**滚动条是否可见 'always' | 'scrolling' | 'none' | 'focus',常驻|滚动时|不显示|聚焦在画布上时 */\n visible?: 'always' | 'scrolling' | 'none' | 'focus';\n /*** 悬浮与容器上,还是独立于容器外 */\n hoverOn?: boolean;\n /** 是否显示到容器的边缘 尽管内容没有撑满的情况下 默认false */\n barToSide?: boolean;\n};\n/**\n * 气泡框,按钮的的解释信息\n */\nexport type TooltipStyle = {\n fontFamily?: string;\n fontSize?: number;\n color?: string;\n padding?: number[];\n bgColor?: string;\n maxWidth?: number;\n maxHeight?: number;\n /** !目前未实现该逻辑。触发行为:hover or click */\n // trigger?: string | string[];\n /**气泡框位置,可选 top left right bottom */\n // placement?: Placement;\n};\nexport interface ITableThemeDefine {\n /** 表格绘制范围外的canvas上填充的颜色 */\n underlayBackgroundColor?: string;\n // selectionBgColor?: ColorPropertyDefine; //多选单元格背景色 手动设置的多选 非框选\n defaultStyle?: ThemeStyle;\n cornerHeaderStyle?: ThemeStyle; //角头样式\n cornerRightTopCellStyle?: ThemeStyle; // 右上角占位单元格样式\n cornerLeftBottomCellStyle?: ThemeStyle; // 左下角占位单元格样式\n cornerRightBottomCellStyle?: ThemeStyle; // 右下角占位单元格样式\n rightFrozenStyle?: ThemeStyle; // 右侧冻结单元格样式\n bottomFrozenStyle?: ThemeStyle; // 下部冻结单元格样式\n headerStyle?: ThemeStyle;\n rowHeaderStyle?: ThemeStyle;\n bodyStyle?: ThemeStyle;\n frameStyle?: TableFrameStyle;\n //列调整宽度的直线\n columnResize?: {\n lineColor: ColorPropertyDefine; //上面线的颜色\n bgColor?: ColorPropertyDefine; //背景线的颜色\n lineWidth: number; //上面线的宽度\n width?: number; //背景线的宽度\n labelColor?: string; //label的颜色\n labelFontSize?: number; //label的字体大小\n labelFontFamily?: string; //label的字体\n labelBackgroundFill?: string; //label的背景填充\n labelBackgroundCornerRadius?: number; //label的背景圆角\n };\n //拖拽表格换位分割线的样式\n dragHeaderSplitLine?: {\n lineColor: ColorPropertyDefine; //上面线的颜色\n lineWidth: number; //上面线的宽度\n shadowBlockColor?: string; //拖拽时阴影区域的颜色\n };\n //冻结列后面的效果\n frozenColumnLine?: {\n shadow?: {\n //默认效果 会有阴影配置\n width: number; //阴影整体宽度\n startColor: string; //开始颜色\n endColor: string; //结束颜色\n };\n /** TODO 暂未生效 */\n border?: {\n //有些需求要两种效果 这里配置滚动前的边框效果(实现方式是两条线叠加产生),滚动后按上面的阴影效果\n lineColor: ColorPropertyDefine; //上面线的颜色\n bgColor?: ColorPropertyDefine; //背景线的颜色\n lineWidth: number; //上面线的宽度\n width?: number; //背景线的宽度\n };\n };\n\n // menuStyle?: menuStyle;\n scrollStyle?: ScrollStyle;\n tooltipStyle?: TooltipStyle;\n // selectHeaderHighlight?: boolean;\n /** 选择框样式 */\n selectionStyle?: //Omit<InteractionStyle, 'inlineRowBgColor' | 'inlineColumnBgColor'>; //鼠标点击到某个单元格\n {\n cellBorderColor?: string; //边框颜色\n cellBorderLineWidth?: number; //边框线宽度\n cellBgColor?: string; //选择框背景颜色\n inlineRowBgColor?: string; //交互所在整行的背景颜色\n inlineColumnBgColor?: string; //交互所在整列的背景颜色\n };\n\n // style for axis\n axisStyle?: {\n defaultAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n leftAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n rightAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n topAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n bottomAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n };\n\n checkboxStyle?: CheckboxStyle;\n radioStyle?: RadioStyle;\n\n // style for text pop tip\n textPopTipStyle?: PopTipAttributes;\n\n // senior config for fs\n // 表格四侧单元格,靠近边缘的border是否需要再绘制;如配置false的话,当表格左侧frame未设置情况下左侧单元格不显示左边框,其他方向同理\n cellInnerBorder?: boolean;\n // cell border clip direction\n cellBorderClipDirection?: 'top-left' | 'bottom-right'; // default is 'top-left'\n // text offset, hack for fs\n _contentOffset?: number;\n}\n\nexport type RequiredTableThemeDefine = Required<ITableThemeDefine>;\n"]}
1
+ {"version":3,"sources":["../src/ts-types/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["/* eslint-disable sort-imports */\nimport type { ColorsDef, LineDashsDef, LineWidthsDef, LineWidthsPropertyDefine, LineDashsPropertyDefine } from '.';\nimport type { CheckboxStyle, ITextStyleOption, RadioStyle } from './column/style';\nimport type { ColorPropertyDefine, ColorsPropertyDefine } from './style-define';\nimport type { ColumnIconOption } from './icon';\nimport type { ICellAxisOption } from './component/axis';\nimport type { PopTipAttributes } from '@visactor/vrender-components';\n// ****** Custom Theme *******\nexport type PartialTableThemeDefine = Partial<ITableThemeDefine>;\nexport type ThemeStyle = ITextStyleOption & {\n hover?: Omit<InteractionStyle, 'cellBorderColor' | 'cellBorderLineWidth'>; //鼠标hover到某个单元格\n select?: {\n inlineRowBgColor?: ColorPropertyDefine; //交互所在整行的背景颜色\n inlineColumnBgColor?: ColorPropertyDefine; //交互所在整列的背景颜色\n };\n frameStyle?: FrameStyle;\n};\nexport type InteractionStyle = {\n cellBorderColor?: ColorsPropertyDefine; //交互所在单元格的边框颜色\n cellBorderLineWidth?: LineWidthsPropertyDefine;\n // cellBorderLineDash?:LineDashsPropertyDefine,//用到的场景应该不多\n cellBgColor?: ColorPropertyDefine; //交互所在单元格的背景颜色\n // inlineRowBorderColor?: ColorsPropertyDefine,//交互所在整行的边框颜色\n inlineRowBgColor?: ColorPropertyDefine; //交互所在整行的背景颜色\n // inlineColBorderColor?: ColorsPropertyDefine,//交互所在整列的边框颜色\n inlineColumnBgColor?: ColorPropertyDefine; //交互所在整列的背景颜色\n // headerHighlightBorderColor?:ColorPropertyDefine,//表头底部高亮线\n};\nexport type FrameStyle = {\n borderColor?: ColorsDef;\n borderLineWidth?: LineWidthsDef;\n borderLineDash?: LineDashsDef;\n innerBorder?: boolean;\n};\nexport type TableFrameStyle = FrameStyle & {\n shadowBlur?: number; //阴影宽度\n shadowOffsetX?: number; //x方向偏移\n shadowOffsetY?: number; //Y方向偏移\n shadowColor?: string; //阴影颜色\n cornerRadius?: number; //边框圆角半径\n};\nexport type menuStyle = {\n color?: string;\n highlightColor?: string;\n fontSize?: number;\n fontFamily?: string;\n highlightFontSize?: number;\n highlightFontFamily?: string;\n hoverBgColor?: string;\n};\nexport type ScrollStyle = {\n /**滚动条滚动的颜色 */\n scrollRailColor?: string;\n /**滚动条滑块的颜色 */\n scrollSliderColor?: string;\n /**滚动条滑块的圆角半径 */\n scrollSliderCornerRadius?: number;\n /**滚动条宽度大小 */\n width?: number;\n /**滚动条是否可见 'always' | 'scrolling' | 'none' | 'focus',常驻|滚动时|不显示|聚焦在画布上时 */\n visible?: 'always' | 'scrolling' | 'none' | 'focus';\n /*** 悬浮与容器上,还是独立于容器外 */\n hoverOn?: boolean;\n /** 是否显示到容器的边缘 尽管内容没有撑满的情况下 默认false */\n barToSide?: boolean;\n};\n/**\n * 气泡框,按钮的的解释信息\n */\nexport type TooltipStyle = {\n fontFamily?: string;\n fontSize?: number;\n color?: string;\n padding?: number[];\n bgColor?: string;\n /** !目前未实现该逻辑。触发行为:hover or click */\n // trigger?: string | string[];\n /**气泡框位置,可选 top left right bottom */\n // placement?: Placement;\n};\nexport interface ITableThemeDefine {\n /** 表格绘制范围外的canvas上填充的颜色 */\n underlayBackgroundColor?: string;\n // selectionBgColor?: ColorPropertyDefine; //多选单元格背景色 手动设置的多选 非框选\n defaultStyle?: ThemeStyle;\n cornerHeaderStyle?: ThemeStyle; //角头样式\n cornerRightTopCellStyle?: ThemeStyle; // 右上角占位单元格样式\n cornerLeftBottomCellStyle?: ThemeStyle; // 左下角占位单元格样式\n cornerRightBottomCellStyle?: ThemeStyle; // 右下角占位单元格样式\n rightFrozenStyle?: ThemeStyle; // 右侧冻结单元格样式\n bottomFrozenStyle?: ThemeStyle; // 下部冻结单元格样式\n headerStyle?: ThemeStyle;\n rowHeaderStyle?: ThemeStyle;\n bodyStyle?: ThemeStyle;\n frameStyle?: TableFrameStyle;\n //列调整宽度的直线\n columnResize?: {\n lineColor: ColorPropertyDefine; //上面线的颜色\n bgColor?: ColorPropertyDefine; //背景线的颜色\n lineWidth: number; //上面线的宽度\n width?: number; //背景线的宽度\n labelColor?: string; //label的颜色\n labelFontSize?: number; //label的字体大小\n labelFontFamily?: string; //label的字体\n labelBackgroundFill?: string; //label的背景填充\n labelBackgroundCornerRadius?: number; //label的背景圆角\n };\n //拖拽表格换位分割线的样式\n dragHeaderSplitLine?: {\n lineColor: ColorPropertyDefine; //上面线的颜色\n lineWidth: number; //上面线的宽度\n shadowBlockColor?: string; //拖拽时阴影区域的颜色\n };\n //冻结列后面的效果\n frozenColumnLine?: {\n shadow?: {\n //默认效果 会有阴影配置\n width: number; //阴影整体宽度\n startColor: string; //开始颜色\n endColor: string; //结束颜色\n };\n /** TODO 暂未生效 */\n border?: {\n //有些需求要两种效果 这里配置滚动前的边框效果(实现方式是两条线叠加产生),滚动后按上面的阴影效果\n lineColor: ColorPropertyDefine; //上面线的颜色\n bgColor?: ColorPropertyDefine; //背景线的颜色\n lineWidth: number; //上面线的宽度\n width?: number; //背景线的宽度\n };\n };\n\n // menuStyle?: menuStyle;\n scrollStyle?: ScrollStyle;\n tooltipStyle?: TooltipStyle;\n // selectHeaderHighlight?: boolean;\n /** 选择框样式 */\n selectionStyle?: //Omit<InteractionStyle, 'inlineRowBgColor' | 'inlineColumnBgColor'>; //鼠标点击到某个单元格\n {\n cellBorderColor?: string; //边框颜色\n cellBorderLineWidth?: number; //边框线宽度\n cellBgColor?: string; //选择框背景颜色\n inlineRowBgColor?: string; //交互所在整行的背景颜色\n inlineColumnBgColor?: string; //交互所在整列的背景颜色\n };\n\n // style for axis\n axisStyle?: {\n defaultAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n leftAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n rightAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n topAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n bottomAxisStyle?: Omit<ICellAxisOption, 'type' | 'domain' | 'range' | 'orient' | '__ticksForVTable'>;\n };\n\n checkboxStyle?: CheckboxStyle;\n radioStyle?: RadioStyle;\n\n // style for text pop tip\n textPopTipStyle?: PopTipAttributes;\n\n // senior config for fs\n // 表格四侧单元格,靠近边缘的border是否需要再绘制;如配置false的话,当表格左侧frame未设置情况下左侧单元格不显示左边框,其他方向同理\n cellInnerBorder?: boolean;\n // cell border clip direction\n cellBorderClipDirection?: 'top-left' | 'bottom-right'; // default is 'top-left'\n // text offset, hack for fs\n _contentOffset?: number;\n}\n\nexport type RequiredTableThemeDefine = Required<ITableThemeDefine>;\n"]}
@@ -19,8 +19,6 @@ export type TooltipOptions = {
19
19
  color?: string;
20
20
  padding?: number[];
21
21
  arrowMark?: boolean;
22
- maxWidth?: number;
23
- maxHeight?: number;
24
22
  };
25
23
  disappearDelay?: number;
26
24
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/tooltip.ts"],"names":[],"mappings":"","file":"tooltip.js","sourcesContent":["import type { RectProps } from './common';\nimport type { Placement } from './table-engine';\n\nexport type TooltipType = 'bubble-tooltip' | 'tooltip' | 'container';\n\n/** 显示弹出提示内容 */\nexport type TooltipOptions = {\n /** tooltip内容 */\n content: string;\n /** tooltip框的位置 优先级高于referencePosition */\n position?: { x: number; y: number };\n /** tooltip框的参考位置 如果设置了position则该配置不生效 */\n referencePosition?: {\n /** 参考位置设置为一个矩形边界 设置placement来指定处于边界位置的方位*/\n rect: RectProps;\n /** 指定处于边界位置的方位 */\n placement?: Placement;\n };\n /** 需要自定义样式指定className dom的tooltip生效 */\n className?: string;\n /** 设置tooltip的样式 */\n style?: {\n bgColor?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n arrowMark?: boolean;\n maxWidth?: number;\n maxHeight?: number;\n };\n /** 设置tooltip的消失时间 */\n disappearDelay?: number;\n};\n"]}
1
+ {"version":3,"sources":["../src/ts-types/tooltip.ts"],"names":[],"mappings":"","file":"tooltip.js","sourcesContent":["import type { RectProps } from './common';\nimport type { Placement } from './table-engine';\n\nexport type TooltipType = 'bubble-tooltip' | 'tooltip' | 'container';\n\n/** 显示弹出提示内容 */\nexport type TooltipOptions = {\n /** tooltip内容 */\n content: string;\n /** tooltip框的位置 优先级高于referencePosition */\n position?: { x: number; y: number };\n /** tooltip框的参考位置 如果设置了position则该配置不生效 */\n referencePosition?: {\n /** 参考位置设置为一个矩形边界 设置placement来指定处于边界位置的方位*/\n rect: RectProps;\n /** 指定处于边界位置的方位 */\n placement?: Placement;\n };\n /** 需要自定义样式指定className dom的tooltip生效 */\n className?: string;\n /** 设置tooltip的样式 */\n style?: {\n bgColor?: string;\n fontSize?: number;\n fontFamily?: string;\n color?: string;\n padding?: number[];\n arrowMark?: boolean;\n };\n /** 设置tooltip的消失时间 */\n disappearDelay?: number;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAA8F;AAC9F,yDAAqE;AACrE,yDAmBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IACd,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,gCAAiB,GAAE,CAAC;IACpB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;AACrB,CAAC;AA/BD,gDA+BC;AAED,yDAAuC;AACvC,yDAAuC","file":"vrender.js","sourcesContent":["import '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule } from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.3.1-alpha.1\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n registerArc3d();\n registerArea();\n registerCircle();\n registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n registerPath();\n registerPolygon();\n registerPyramid3d();\n registerRect();\n registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerWrapText();\n}\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
1
+ {"version":3,"sources":["../src/vrender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAA8F;AAC9F,yDAAqE;AACrE,yDAmBgC;AAIhC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IACD,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAA,+BAAgB,GAAE,CAAC;IAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;QAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;KAC3B;SAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;QACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;KACxB;IACD,IAAA,0BAAW,GAAE,CAAC;IACd,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,4BAAa,GAAE,CAAC;IAChB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,gCAAiB,GAAE,CAAC;IACpB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,+BAAgB,GAAE,CAAC;IACnB,IAAA,iCAAkB,GAAE,CAAC;IACrB,IAAA,6BAAc,GAAE,CAAC;IACjB,IAAA,2BAAY,GAAE,CAAC;IACf,IAAA,+BAAgB,GAAE,CAAC;AACrB,CAAC;AA/BD,gDA+BC;AAED,yDAAuC;AACvC,yDAAuC","file":"vrender.js","sourcesContent":["import '@visactor/vrender-core';\nimport { container, isBrowserEnv, isNodeEnv, preLoadAllModule } from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\n// export const version = \"1.3.1\";\n\nlet registed = false;\nexport function registerForVrender() {\n if (registed) {\n return;\n }\n registed = true;\n // 注册内置组件\n preLoadAllModule();\n\n if (isBrowserEnv()) {\n loadBrowserEnv(container);\n } else if (isNodeEnv()) {\n loadNodeEnv(container);\n }\n registerArc();\n registerArc3d();\n registerArea();\n registerCircle();\n registerGlyph();\n registerGroup();\n registerImage();\n registerLine();\n registerPath();\n registerPolygon();\n registerPyramid3d();\n registerRect();\n registerRect3d();\n registerRichtext();\n registerShadowRoot();\n registerSymbol();\n registerText();\n registerWrapText();\n}\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
package/dist/vtable.js CHANGED
@@ -25061,12 +25061,6 @@
25061
25061
  },
25062
25062
  get color() {
25063
25063
  return tooltip.color ?? '#FFF';
25064
- },
25065
- get maxWidth() {
25066
- return tooltip.maxWidth;
25067
- },
25068
- get maxHeight() {
25069
- return tooltip.maxHeight;
25070
25064
  }
25071
25065
  };
25072
25066
  }
@@ -41003,6 +40997,9 @@
41003
40997
  return true;
41004
40998
  }
41005
40999
  function fillRowsHeight(height, startRow, endRow, table, newHeights) {
41000
+ if (table.internalProps.useOneRowHeightFillAll) {
41001
+ return;
41002
+ }
41006
41003
  for (let row = startRow; row <= endRow; row++) {
41007
41004
  if (newHeights) {
41008
41005
  newHeights[row] = height;
@@ -41011,6 +41008,7 @@
41011
41008
  table._setRowHeight(row, height);
41012
41009
  }
41013
41010
  }
41011
+ table.internalProps.useOneRowHeightFillAll = true;
41014
41012
  }
41015
41013
  function computeCustomRenderHeight(col, row, table) {
41016
41014
  const customRender = table.getCustomRender(col, row);
@@ -49620,6 +49618,7 @@
49620
49618
  computeColsWidth(this.table, 0, this.table.colCount - 1, true);
49621
49619
  }
49622
49620
  recalculateRowHeights() {
49621
+ this.table.internalProps.useOneRowHeightFillAll = false;
49623
49622
  computeRowsHeight(this.table, 0, this.table.rowCount - 1, true, true);
49624
49623
  }
49625
49624
  resize() {
@@ -50332,6 +50331,7 @@
50332
50331
  }
50333
50332
  updateRow(removeCells, addCells, updateCells = []) {
50334
50333
  this.table.internalProps.layoutMap.clearCellRangeMap();
50334
+ this.table.internalProps.useOneRowHeightFillAll = false;
50335
50335
  const addRows = deduplication$1(addCells.map(cell => cell.row)).sort((a, b) => a - b);
50336
50336
  const updateRows = deduplication$1(updateCells.map(cell => cell.row)).sort((a, b) => a - b);
50337
50337
  const isNotFillHeight = this.table.getAllRowsHeight() -
@@ -50658,6 +50658,7 @@
50658
50658
  if (headerC?.sort) {
50659
50659
  executeSort(tableState, table, headerC);
50660
50660
  }
50661
+ table.internalProps.useOneRowHeightFillAll = false;
50661
50662
  table.internalProps.layoutMap.clearCellRangeMap();
50662
50663
  table.scenegraph.sortCell();
50663
50664
  table.stateManager.updateSelectPos(-1, -1);
@@ -51204,6 +51205,7 @@
51204
51205
  const oldTargetMergeInfo = state.table.getCellRange(state.columnMove.colTarget, state.columnMove.rowTarget);
51205
51206
  const moveContext = state.table._moveHeaderPosition({ col: state.columnMove.colSource, row: state.columnMove.rowSource }, { col: state.columnMove.colTarget, row: state.columnMove.rowTarget });
51206
51207
  if (moveContext) {
51208
+ state.table.internalProps.useOneRowHeightFillAll = false;
51207
51209
  state.table.internalProps.layoutMap.clearCellRangeMap();
51208
51210
  const sourceMergeInfo = state.table.getCellRange(state.columnMove.colSource, state.columnMove.rowSource);
51209
51211
  const targetMergeInfo = state.table.getCellRange(state.columnMove.colTarget, state.columnMove.rowTarget);
@@ -54628,7 +54630,11 @@
54628
54630
  }
54629
54631
  }
54630
54632
  table.stateManager.updateInteractionState(InteractionState.grabing);
54631
- table.stateManager.updateSelectPos(table.getTargetColAtConsiderRightFrozen(selectX, considerFrozenX).col, table.getTargetRowAtConsiderBottomFrozen(selectY, considerFrozenY).row, false, false, false, true);
54633
+ const targetCol = table.getTargetColAtConsiderRightFrozen(selectX, considerFrozenX);
54634
+ const targetRow = table.getTargetRowAtConsiderBottomFrozen(selectY, considerFrozenY);
54635
+ if (isValid$1(targetCol) && isValid$1(targetRow)) {
54636
+ table.stateManager.updateSelectPos(targetCol.col, targetRow.row, false, false, false, true);
54637
+ }
54632
54638
  });
54633
54639
  }
54634
54640
  else if (table.eventManager.inertiaScroll.isInertiaScrolling()) {
@@ -56587,30 +56593,12 @@
56587
56593
  white-space: pre-wrap;
56588
56594
  margin: 0;
56589
56595
  box-sizing: border-box;
56590
- overflow: auto;
56596
+ overflow: hidden;
56591
56597
  word-wrap: break-word;
56592
56598
  position: relative;
56593
56599
  background-color: #FFF;
56594
56600
  z-index: 2;
56595
- border-radius: 4px;
56596
- }
56597
- /* WebKit Microsoft Edge(新版): */
56598
- .vtable__bubble-tooltip-element__content::-webkit-scrollbar {
56599
- width: 0;
56600
- height: 0;
56601
- background-color: transparent;
56602
- }
56603
- /* Opera Firefox */
56604
- .vtable__bubble-tooltip-element__content > scrollbar-track {
56605
- width: 0;
56606
- height: 0;
56607
- background-color: transparent;
56608
- }
56609
- /* Internet Explorer 11 和 Microsoft Edge(旧版) */
56610
- .vtable__bubble-tooltip-element__content > scrollbar {
56611
- width: 0;
56612
- height: 0;
56613
- background-color: transparent;
56601
+ border-radius: 4px
56614
56602
  }
56615
56603
  .vtable__bubble-tooltip-element__triangle {
56616
56604
  /* font-size: .75rem; */
@@ -56644,7 +56632,7 @@
56644
56632
  constructor() {
56645
56633
  this._handler = new EventHandler();
56646
56634
  const rootElement = (this._rootElement = createElement('div', [TOOLTIP_CLASS, HIDDEN_CLASS]));
56647
- const messageElement = createElement('div', [CONTENT_CLASS]);
56635
+ const messageElement = createElement('span', [CONTENT_CLASS]);
56648
56636
  const triangle = createElement('span', [TRIANGLE_CLASS]);
56649
56637
  rootElement.appendChild(triangle);
56650
56638
  rootElement.appendChild(messageElement);
@@ -56657,9 +56645,6 @@
56657
56645
  this._disappearDelay = undefined;
56658
56646
  this.unbindFromCell();
56659
56647
  });
56660
- messageElement.addEventListener('wheel', e => {
56661
- e.stopPropagation();
56662
- });
56663
56648
  }
56664
56649
  bindToCell(table, col, row, tooltipInstanceInfo, confine) {
56665
56650
  this._disappearDelay = tooltipInstanceInfo?.disappearDelay;
@@ -56684,10 +56669,6 @@
56684
56669
  tooltipInstanceInfo?.style?.color && (messageElement.style.color = tooltipInstanceInfo?.style?.color);
56685
56670
  tooltipInstanceInfo?.style?.padding &&
56686
56671
  (messageElement.style.padding = `${tooltipInstanceInfo?.style?.padding.join('px ')}px`);
56687
- tooltipInstanceInfo?.style?.maxHeight &&
56688
- (messageElement.style.maxHeight = `${tooltipInstanceInfo?.style?.maxHeight}px`);
56689
- tooltipInstanceInfo?.style?.maxWidth &&
56690
- (messageElement.style.maxWidth = `${tooltipInstanceInfo?.style?.maxWidth}px`);
56691
56672
  messageElement && (messageElement.textContent = tooltipInstanceInfo?.content);
56692
56673
  const binded = this._bindToCell(table, col, row, tooltipInstanceInfo?.position, tooltipInstanceInfo?.referencePosition, confine, tooltipInstanceInfo?.style?.arrowMark);
56693
56674
  if (binded) {
@@ -57066,7 +57047,7 @@
57066
57047
  rect
57067
57048
  },
57068
57049
  disappearDelay: table.internalProps.tooltip.overflowTextTooltipDisappearDelay ?? 0,
57069
- style: table.theme.tooltipStyle
57050
+ style: { arrowMark: false }
57070
57051
  };
57071
57052
  }
57072
57053
  else if (table.internalProps.tooltip?.isShowOverflowTextTooltip) {
@@ -58159,6 +58140,9 @@
58159
58140
  put(position, newValue) {
58160
58141
  if (this.data.has(position)) {
58161
58142
  const oldValue = this.data.get(position);
58143
+ if (oldValue === newValue) {
58144
+ return;
58145
+ }
58162
58146
  this.data.set(position, newValue);
58163
58147
  const difference = newValue - oldValue;
58164
58148
  this.totalSum += difference;
@@ -59242,7 +59226,7 @@
59242
59226
  return TABLE_EVENT_TYPE;
59243
59227
  }
59244
59228
  options;
59245
- version = "1.3.1-alpha.1";
59229
+ version = "1.3.1";
59246
59230
  pagination;
59247
59231
  id = `VTable${Date.now()}`;
59248
59232
  headerStyleCache;
@@ -60618,6 +60602,7 @@
60618
60602
  renderWithRecreateCells() {
60619
60603
  const oldHoverState = { col: this.stateManager.hover.cellPos.col, row: this.stateManager.hover.cellPos.row };
60620
60604
  this.refreshHeader();
60605
+ this.internalProps.useOneRowHeightFillAll = false;
60621
60606
  this.scenegraph.clearCells();
60622
60607
  this.clearCellStyleCache();
60623
60608
  this.scenegraph.createSceneGraph();
@@ -64218,6 +64203,7 @@
64218
64203
  this.editorManager = new EditManeger(this);
64219
64204
  }
64220
64205
  this.refreshHeader();
64206
+ this.internalProps.useOneRowHeightFillAll = false;
64221
64207
  if (options.dataSource) {
64222
64208
  _setDataSource(this, options.dataSource);
64223
64209
  }
@@ -64269,6 +64255,7 @@
64269
64255
  this.internalProps.headerHelper.setTableColumnsEditor();
64270
64256
  this._hasAutoImageColumn = undefined;
64271
64257
  this.refreshHeader();
64258
+ this.internalProps.useOneRowHeightFillAll = false;
64272
64259
  this.scenegraph.clearCells();
64273
64260
  this.headerStyleCache = new Map();
64274
64261
  this.bodyStyleCache = new Map();
@@ -64288,6 +64275,7 @@
64288
64275
  this.internalProps.columns = header;
64289
64276
  this.options.header = header;
64290
64277
  this.refreshHeader();
64278
+ this.internalProps.useOneRowHeightFillAll = false;
64291
64279
  this.renderAsync();
64292
64280
  }
64293
64281
  get transpose() {
@@ -64460,6 +64448,7 @@
64460
64448
  this.internalProps.headerHelper.setTableColumnsEditor();
64461
64449
  this.transpose = options.transpose ?? false;
64462
64450
  this.refreshHeader();
64451
+ this.internalProps.useOneRowHeightFillAll = false;
64463
64452
  if (internalProps.releaseList) {
64464
64453
  internalProps.releaseList.forEach(releaseObj => releaseObj?.release?.());
64465
64454
  internalProps.releaseList = null;
@@ -64502,6 +64491,7 @@
64502
64491
  pagination.perPageCount &&
64503
64492
  (this.pagination.perPageCount = pagination.perPageCount || this.pagination.perPageCount);
64504
64493
  this.internalProps.layoutMap.clearCellRangeMap();
64494
+ this.internalProps.useOneRowHeightFillAll = false;
64505
64495
  this.scenegraph.clearCells();
64506
64496
  this.dataSource.updatePagination(this.pagination);
64507
64497
  this.refreshRowColCount();
@@ -64728,6 +64718,7 @@
64728
64718
  this.refreshRowColCount();
64729
64719
  this.clearCellStyleCache();
64730
64720
  this.internalProps.layoutMap.clearCellRangeMap();
64721
+ this.internalProps.useOneRowHeightFillAll = false;
64731
64722
  this.scenegraph.updateHierarchyIcon(col, row);
64732
64723
  this.scenegraph.updateRow(diffPositions.removeCellPositions, diffPositions.addCellPositions);
64733
64724
  if (checkHasChart) {
@@ -64807,6 +64798,7 @@
64807
64798
  if (hd.define.sort !== false) {
64808
64799
  this.dataSource.sort(hd.field, order, sortFunc);
64809
64800
  this.internalProps.layoutMap.clearCellRangeMap();
64801
+ this.internalProps.useOneRowHeightFillAll = false;
64810
64802
  this.scenegraph.sortCell();
64811
64803
  }
64812
64804
  }
@@ -67504,6 +67496,7 @@
67504
67496
  }
67505
67497
  setPagination(pagination) {
67506
67498
  this.clearCellRangeMap();
67499
+ this._table.internalProps.useOneRowHeightFillAll = false;
67507
67500
  this.pagination = pagination;
67508
67501
  if (this.rowHierarchyType === 'grid' &&
67509
67502
  isValid$1(this.pagination?.perPageCount) &&
@@ -69539,6 +69532,7 @@
69539
69532
  this.editorManager = new EditManeger(this);
69540
69533
  }
69541
69534
  this.refreshHeader();
69535
+ this.internalProps.useOneRowHeightFillAll = false;
69542
69536
  this.stateManager.initCheckedState(records);
69543
69537
  this.scenegraph.createSceneGraph();
69544
69538
  if (options.title) {
@@ -69674,6 +69668,7 @@
69674
69668
  this.pivotSortState = options.pivotSortState;
69675
69669
  }
69676
69670
  this.refreshHeader();
69671
+ this.internalProps.useOneRowHeightFillAll = false;
69677
69672
  if (internalProps.releaseList) {
69678
69673
  internalProps.releaseList.forEach(releaseObj => releaseObj?.release?.());
69679
69674
  internalProps.releaseList = null;
@@ -70120,6 +70115,7 @@
70120
70115
  this.internalProps.layoutMap.resetHeaderTree();
70121
70116
  this.scenegraph.clearCells();
70122
70117
  this.refreshHeader();
70118
+ this.internalProps.useOneRowHeightFillAll = false;
70123
70119
  this.scenegraph.createSceneGraph();
70124
70120
  this.render();
70125
70121
  }
@@ -70455,6 +70451,7 @@
70455
70451
  }
70456
70452
  }
70457
70453
  this.refreshHeader();
70454
+ this.internalProps.useOneRowHeightFillAll = false;
70458
70455
  this.scenegraph.clearCells();
70459
70456
  this.clearCellStyleCache();
70460
70457
  this.scenegraph.createSceneGraph();
@@ -70885,6 +70882,7 @@
70885
70882
  rowDimensionTree = new DimensionTree(this.dataset.rowHeaderTree ?? [], this.layoutNodeId);
70886
70883
  this.internalProps.layoutMap = new PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree);
70887
70884
  this.refreshHeader();
70885
+ this.internalProps.useOneRowHeightFillAll = false;
70888
70886
  this.scenegraph.createSceneGraph();
70889
70887
  if (options.title) {
70890
70888
  this.internalProps.title = new Title(options.title, this);
@@ -71042,6 +71040,7 @@
71042
71040
  rowDimensionTree = new DimensionTree(this.dataset.rowHeaderTree ?? [], this.layoutNodeId);
71043
71041
  internalProps.layoutMap = new PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree);
71044
71042
  this.refreshHeader();
71043
+ this.internalProps.useOneRowHeightFillAll = false;
71045
71044
  if (internalProps.releaseList) {
71046
71045
  internalProps.releaseList.forEach(releaseObj => releaseObj?.release?.());
71047
71046
  internalProps.releaseList = null;
@@ -71275,6 +71274,7 @@
71275
71274
  this.internalProps.layoutMap.resetHeaderTree();
71276
71275
  this.scenegraph.clearCells();
71277
71276
  this.refreshHeader();
71277
+ this.internalProps.useOneRowHeightFillAll = false;
71278
71278
  this.scenegraph.createSceneGraph();
71279
71279
  this.render();
71280
71280
  }
@@ -71743,6 +71743,7 @@
71743
71743
  }
71744
71744
  internalProps.layoutMap = new PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree);
71745
71745
  this.refreshHeader();
71746
+ this.internalProps.useOneRowHeightFillAll = false;
71746
71747
  this.scenegraph.clearCells();
71747
71748
  this.clearCellStyleCache();
71748
71749
  this.scenegraph.createSceneGraph();
@@ -72367,7 +72368,7 @@
72367
72368
  }
72368
72369
 
72369
72370
  registerForVrender();
72370
- const version = "1.3.1-alpha.1";
72371
+ const version = "1.3.1";
72371
72372
  function getIcons() {
72372
72373
  return get$2();
72373
72374
  }