@visactor/vtable 0.10.3-alpha.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/cjs/ListTable.js +1 -1
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +1 -3
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/core/BaseTable.d.ts +10 -4
  6. package/cjs/core/BaseTable.js +53 -14
  7. package/cjs/core/BaseTable.js.map +1 -1
  8. package/cjs/event/event.js +1 -0
  9. package/cjs/event/event.js.map +1 -1
  10. package/cjs/event/listener/table-group.js +6 -8
  11. package/cjs/event/listener/table-group.js.map +1 -1
  12. package/cjs/event/media-click.js +5 -5
  13. package/cjs/event/media-click.js.map +1 -1
  14. package/cjs/index.d.ts +1 -1
  15. package/cjs/index.js +1 -1
  16. package/cjs/index.js.map +1 -1
  17. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  18. package/cjs/layout/pivot-header-layout.js +3 -0
  19. package/cjs/layout/pivot-header-layout.js.map +1 -1
  20. package/cjs/layout/pivot-layout.d.ts +1 -0
  21. package/cjs/layout/pivot-layout.js +1 -0
  22. package/cjs/layout/pivot-layout.js.map +1 -1
  23. package/cjs/layout/simple-header-layout.d.ts +1 -0
  24. package/cjs/layout/simple-header-layout.js +3 -0
  25. package/cjs/layout/simple-header-layout.js.map +1 -1
  26. package/cjs/scenegraph/graphic/chart.js +4 -6
  27. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  28. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  29. package/cjs/scenegraph/group-creater/progress/proxy.js +6 -6
  30. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  31. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  32. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  33. package/cjs/scenegraph/layout/compute-row-height.js +13 -0
  34. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  35. package/cjs/scenegraph/scenegraph.js +12 -0
  36. package/cjs/scenegraph/scenegraph.js.map +1 -1
  37. package/cjs/scenegraph/stick-text/index.js +7 -9
  38. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  39. package/cjs/scenegraph/utils/text-icon-layout.js +1 -1
  40. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  41. package/cjs/state/sort/index.js +2 -1
  42. package/cjs/state/sort/index.js.map +1 -1
  43. package/cjs/state/spark-line/index.d.ts +1 -1
  44. package/cjs/state/spark-line/index.js +2 -1
  45. package/cjs/state/spark-line/index.js.map +1 -1
  46. package/cjs/state/state.d.ts +1 -1
  47. package/cjs/state/state.js +8 -6
  48. package/cjs/state/state.js.map +1 -1
  49. package/cjs/ts-types/base-table.d.ts +6 -0
  50. package/cjs/ts-types/base-table.js.map +1 -1
  51. package/cjs/ts-types/list-table/define/Composite-define.d.ts +21 -0
  52. package/cjs/ts-types/list-table/define/Composite-define.js +6 -0
  53. package/cjs/ts-types/list-table/define/Composite-define.js.map +1 -0
  54. package/cjs/ts-types/list-table/define/index.d.ts +3 -1
  55. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  56. package/cjs/ts-types/pivot-table/indicator/composite-indicator.d.ts +21 -0
  57. package/cjs/ts-types/pivot-table/indicator/composite-indicator.js +6 -0
  58. package/cjs/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -0
  59. package/cjs/ts-types/pivot-table/indicator/index.d.ts +2 -1
  60. package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -1
  61. package/dist/vtable.js +706 -397
  62. package/dist/vtable.min.js +3 -3
  63. package/es/ListTable.js +1 -1
  64. package/es/ListTable.js.map +1 -1
  65. package/es/PivotChart.js +1 -3
  66. package/es/PivotChart.js.map +1 -1
  67. package/es/core/BaseTable.d.ts +10 -4
  68. package/es/core/BaseTable.js +53 -12
  69. package/es/core/BaseTable.js.map +1 -1
  70. package/es/event/event.js +1 -0
  71. package/es/event/event.js.map +1 -1
  72. package/es/event/listener/table-group.js +6 -8
  73. package/es/event/listener/table-group.js.map +1 -1
  74. package/es/event/media-click.js +5 -5
  75. package/es/event/media-click.js.map +1 -1
  76. package/es/index.d.ts +1 -1
  77. package/es/index.js +1 -1
  78. package/es/index.js.map +1 -1
  79. package/es/layout/pivot-header-layout.d.ts +1 -0
  80. package/es/layout/pivot-header-layout.js +3 -0
  81. package/es/layout/pivot-header-layout.js.map +1 -1
  82. package/es/layout/pivot-layout.d.ts +1 -0
  83. package/es/layout/pivot-layout.js +1 -0
  84. package/es/layout/pivot-layout.js.map +1 -1
  85. package/es/layout/simple-header-layout.d.ts +1 -0
  86. package/es/layout/simple-header-layout.js +3 -0
  87. package/es/layout/simple-header-layout.js.map +1 -1
  88. package/es/scenegraph/graphic/chart.js +4 -6
  89. package/es/scenegraph/graphic/chart.js.map +1 -1
  90. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  91. package/es/scenegraph/group-creater/progress/proxy.js +3 -3
  92. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  93. package/es/scenegraph/layout/compute-col-width.js +1 -1
  94. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  95. package/es/scenegraph/layout/compute-row-height.js +13 -0
  96. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  97. package/es/scenegraph/scenegraph.js +12 -0
  98. package/es/scenegraph/scenegraph.js.map +1 -1
  99. package/es/scenegraph/stick-text/index.js +7 -9
  100. package/es/scenegraph/stick-text/index.js.map +1 -1
  101. package/es/scenegraph/utils/text-icon-layout.js +2 -2
  102. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  103. package/es/state/sort/index.js +2 -1
  104. package/es/state/sort/index.js.map +1 -1
  105. package/es/state/spark-line/index.d.ts +1 -1
  106. package/es/state/spark-line/index.js +2 -1
  107. package/es/state/spark-line/index.js.map +1 -1
  108. package/es/state/state.d.ts +1 -1
  109. package/es/state/state.js +8 -6
  110. package/es/state/state.js.map +1 -1
  111. package/es/ts-types/base-table.d.ts +6 -0
  112. package/es/ts-types/base-table.js.map +1 -1
  113. package/es/ts-types/list-table/define/Composite-define.d.ts +21 -0
  114. package/es/ts-types/list-table/define/Composite-define.js +2 -0
  115. package/es/ts-types/list-table/define/Composite-define.js.map +1 -0
  116. package/es/ts-types/list-table/define/index.d.ts +3 -1
  117. package/es/ts-types/list-table/define/index.js.map +1 -1
  118. package/es/ts-types/pivot-table/indicator/composite-indicator.d.ts +21 -0
  119. package/es/ts-types/pivot-table/indicator/composite-indicator.js +2 -0
  120. package/es/ts-types/pivot-table/indicator/composite-indicator.js.map +1 -0
  121. package/es/ts-types/pivot-table/indicator/index.d.ts +2 -1
  122. package/es/ts-types/pivot-table/indicator/index.js.map +1 -1
  123. package/package.json +6 -6
  124. package/cjs/scenegraph/layout/update-cell.d.ts +0 -3
  125. package/cjs/scenegraph/layout/update-cell.js +0 -56
  126. package/cjs/scenegraph/layout/update-cell.js.map +0 -1
  127. package/cjs/tools/text-width.d.ts +0 -1
  128. package/cjs/tools/text-width.js +0 -17
  129. package/cjs/tools/text-width.js.map +0 -1
  130. package/es/scenegraph/layout/update-cell.d.ts +0 -3
  131. package/es/scenegraph/layout/update-cell.js +0 -57
  132. package/es/scenegraph/layout/update-cell.js.map +0 -1
  133. package/es/tools/text-width.d.ts +0 -1
  134. package/es/tools/text-width.js +0 -9
  135. package/es/tools/text-width.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { CellAddress, CellRange, TableEventHandlersEventArgumentMap, TableEventHandlersReturnMap, TableKeyboardOptions, DropDownMenuHighlightInfo, MenuListItem, WidthModeDef, ICustomRender, ICellHeaderPaths, HeaderData, FullExtendStyle, FieldDef, ColumnTypeOption, SortState, IPagination, ICustomLayout, CellInfo, CellStyle, DropDownMenuOptions, FieldFormat, FieldData, MaybePromiseOrUndefined, MousePointerCellEvent, DropDownMenuEventInfo, HierarchyState, FieldKeyDef, CellLocation, LayoutObjectId, HeightModeDef } from '../ts-types';
1
+ import { type CellAddress, type CellRange, type TableEventHandlersEventArgumentMap, type TableEventHandlersReturnMap, type TableKeyboardOptions, type DropDownMenuHighlightInfo, type MenuListItem, type WidthModeDef, type ICustomRender, type ICellHeaderPaths, type HeaderData, type FullExtendStyle, type FieldDef, type ColumnTypeOption, type SortState, type IPagination, type ICustomLayout, type CellInfo, type CellStyle, type DropDownMenuOptions, type FieldFormat, type FieldData, type MaybePromiseOrUndefined, type MousePointerCellEvent, type DropDownMenuEventInfo, type HierarchyState, type FieldKeyDef, type CellLocation, type LayoutObjectId, type HeightModeDef, type ITableThemeDefine } from '../ts-types';
2
2
  import type { ColumnIconOption } from '../ts-types';
3
3
  import { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';
4
4
  import { EventTarget } from '../event/EventTarget';
@@ -32,6 +32,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
32
32
  _widthMode: WidthModeDef;
33
33
  _heightMode: HeightModeDef;
34
34
  _autoFillWidth: boolean;
35
+ _autoFillHeight: boolean;
35
36
  customRender?: ICustomRender;
36
37
  canvasWidth?: number;
37
38
  canvasHeight?: number;
@@ -48,6 +49,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
48
49
  headerStyleCache: any;
49
50
  bodyStyleCache: any;
50
51
  container: HTMLElement;
52
+ isReleased: boolean;
51
53
  constructor(container: HTMLElement, options?: BaseTableConstructorOptions);
52
54
  throttleInvalidate: (this: any, ...args: any[]) => void;
53
55
  getContainer(): HTMLElement;
@@ -107,9 +109,11 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
107
109
  set heightMode(heightMode: HeightModeDef);
108
110
  get autoFillWidth(): boolean;
109
111
  set autoFillWidth(autoFillWidth: boolean);
110
- private _colWidthDefineToPxWidth;
112
+ get autoFillHeight(): boolean;
113
+ set autoFillHeight(autoFillHeight: boolean);
114
+ _colWidthDefineToPxWidth(width: string | number): number;
111
115
  private _getColWidthLimits;
112
- private _adjustColWidth;
116
+ _adjustColWidth(col: number, orgWidth: number): number;
113
117
  setPixelRatio(pixelRatio: number): void;
114
118
  _updateSize(): void;
115
119
  get rowHierarchyType(): 'grid' | 'tree';
@@ -209,6 +213,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
209
213
  private computeTargetColByX;
210
214
  clearSelected(): void;
211
215
  selectCell(col: number, row: number): void;
216
+ selectCells(cellRanges: CellRange[]): void;
212
217
  abstract isListTable(): boolean;
213
218
  abstract isPivotTable(): boolean;
214
219
  abstract isPivotChart(): boolean;
@@ -237,7 +242,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
237
242
  updateAutoWrapText(autoWrapText: boolean): void;
238
243
  get theme(): TableTheme;
239
244
  set theme(theme: TableTheme);
240
- updateTheme(theme: TableTheme): void;
245
+ updateTheme(theme: ITableThemeDefine): void;
241
246
  getBodyField(col: number, row: number): FieldDef | undefined;
242
247
  getBodyColumnDefine(col: number, row: number): ColumnDefine;
243
248
  getBodyColumnType(col: number, row: number): ColumnTypeOption;
@@ -301,4 +306,5 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
301
306
  cellIsInVisualView(col: number, row: number): boolean;
302
307
  exportImg(): string;
303
308
  exportCellImg(col: number, row: number): string;
309
+ exportCellRangeImg(cellRange: CellRange): string;
304
310
  }
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", {
33
33
  value: !0
34
34
  }), exports.BaseTable = void 0;
35
35
 
36
- const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), vutils_1 = require("@visactor/vutils"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../components/tooltip/TooltipHandler"), vutils_2 = require("@visactor/vutils"), measure_text_1 = require("../scenegraph/utils/measure-text"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../components/menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), create_legend_1 = require("../components/legend/create-legend"), vdataset_1 = require("@visactor/vdataset"), title_1 = require("../components/title/title"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
36
+ const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), vutils_1 = require("@visactor/vutils"), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), TooltipHandler_1 = require("../components/tooltip/TooltipHandler"), vutils_2 = require("@visactor/vutils"), measure_text_1 = require("../scenegraph/utils/measure-text"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), MenuHandler_1 = require("../components/menu/dom/MenuHandler"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), create_legend_1 = require("../components/legend/create-legend"), vdataset_1 = require("@visactor/vdataset"), title_1 = require("../components/title/title"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
37
37
 
38
38
  (0, style_1.importStyle)();
39
39
 
@@ -45,13 +45,13 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g;
48
- if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.10.3-alpha.3",
49
- this.id = `VTable${Date.now()}`, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
- !container) throw new Error("vtable's container is undefined");
51
- const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount} = options;
48
+ if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.11.0",
49
+ this.id = `VTable${Date.now()}`, this.isReleased = !1, this.throttleInvalidate = (0,
50
+ util_1.throttle2)(this.render.bind(this), 200), !container) throw new Error("vtable's container is undefined");
51
+ const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount} = options;
52
52
  this.container = container, this.options = options, this.options.container = container,
53
53
  this._widthMode = widthMode, this._heightMode = heightMode, this._autoFillWidth = autoFillWidth,
54
- this.customRender = customRender, this.padding = {
54
+ this._autoFillHeight = autoFillHeight, this.customRender = customRender, this.padding = {
55
55
  top: 0,
56
56
  right: 0,
57
57
  left: 0,
@@ -262,6 +262,12 @@ class BaseTable extends EventTarget_1.EventTarget {
262
262
  set autoFillWidth(autoFillWidth) {
263
263
  autoFillWidth !== this._autoFillWidth && (this._autoFillWidth = autoFillWidth);
264
264
  }
265
+ get autoFillHeight() {
266
+ return this._autoFillHeight;
267
+ }
268
+ set autoFillHeight(autoFillHeight) {
269
+ autoFillHeight !== this._autoFillHeight && (this._autoFillHeight = autoFillHeight);
270
+ }
265
271
  _colWidthDefineToPxWidth(width) {
266
272
  return "auto" === width ? 0 : (0, tableHelper_1._toPxWidth)(this, width);
267
273
  }
@@ -632,7 +638,7 @@ class BaseTable extends EventTarget_1.EventTarget {
632
638
  return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
633
639
  })), internalProps.releaseList = null), this.scenegraph.stage.release();
634
640
  const {parentElement: parentElement} = internalProps.element;
635
- parentElement && parentElement.removeChild(internalProps.element);
641
+ parentElement && parentElement.removeChild(internalProps.element), this.isReleased = !0;
636
642
  }
637
643
  fireListeners(type, event) {
638
644
  return super.fireListeners(type, event);
@@ -640,7 +646,7 @@ class BaseTable extends EventTarget_1.EventTarget {
640
646
  updateOption(options) {
641
647
  var _a, _b, _c, _d, _e;
642
648
  this.options = options;
643
- const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount} = options;
649
+ const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, autoFillHeight: autoFillHeight, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount} = options;
644
650
  pixelRatio && pixelRatio !== this.internalProps.pixelRatio && (this.internalProps.pixelRatio = pixelRatio),
645
651
  padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
646
652
  this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
@@ -648,7 +654,8 @@ class BaseTable extends EventTarget_1.EventTarget {
648
654
  padding.right && (this.padding.right = padding.right))), this.showFrozenIcon = "boolean" != typeof showFrozenIcon || showFrozenIcon,
649
655
  "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
650
656
  this.widthMode = null != widthMode ? widthMode : "standard", this.heightMode = null != heightMode ? heightMode : "standard",
651
- this.autoFillWidth = null != autoFillWidth && autoFillWidth, this.customRender = customRender;
657
+ this.autoFillWidth = null != autoFillWidth && autoFillWidth, this.autoFillHeight = null != autoFillHeight && autoFillHeight,
658
+ this.customRender = customRender;
652
659
  const internalProps = this.internalProps;
653
660
  "node" !== env_1.Env.mode && (0, tableHelper_1.updateRootElementPadding)(internalProps.element, this.padding),
654
661
  internalProps.frozenColCount = frozenColCount, internalProps.defaultRowHeight = defaultRowHeight,
@@ -841,6 +848,14 @@ class BaseTable extends EventTarget_1.EventTarget {
841
848
  selectCell(col, row) {
842
849
  this.stateManeger.updateSelectPos(col, row), this.stateManeger.endSelectCells();
843
850
  }
851
+ selectCells(cellRanges) {
852
+ const {scrollLeft: scrollLeft, scrollTop: scrollTop} = this;
853
+ cellRanges.forEach(((cellRange, index) => {
854
+ this.stateManeger.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1),
855
+ this.stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing), this.stateManeger.updateSelectPos(cellRange.end.col, cellRange.end.row, !1, index >= 1),
856
+ this.stateManeger.endSelectCells(!1), this.stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
857
+ })), this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft);
858
+ }
844
859
  get allowFrozenColCount() {
845
860
  return this.internalProps.allowFrozenColCount;
846
861
  }
@@ -891,7 +906,10 @@ class BaseTable extends EventTarget_1.EventTarget {
891
906
  return null == body ? void 0 : body.define;
892
907
  }
893
908
  getBodyColumnType(col, row) {
894
- return this.internalProps.layoutMap.getBody(col, row).cellType;
909
+ const cellType = this.internalProps.layoutMap.getBody(col, row).cellType;
910
+ return (0, get_prop_1.getProp)("cellType", {
911
+ cellType: cellType
912
+ }, col, row, this);
895
913
  }
896
914
  getHeaderField(col, row) {
897
915
  return this.internalProps.layoutMap.getHeaderField(col, row);
@@ -1327,7 +1345,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1327
1345
  return customLayout;
1328
1346
  }
1329
1347
  hasAutoImageColumn() {
1330
- return this.internalProps.layoutMap.columnObjects.find((column => !("image" !== column.cellType || !column.define.imageAutoSizing)));
1348
+ return this.internalProps.layoutMap.columnObjects.find((column => !("image" !== column.cellType && "function" != typeof column.cellType || !column.define.imageAutoSizing)));
1331
1349
  }
1332
1350
  _getActiveChartInstance() {
1333
1351
  var _a, _b, _c, _d, _e, _f;
@@ -1342,12 +1360,33 @@ class BaseTable extends EventTarget_1.EventTarget {
1342
1360
  return this.scenegraph.stage.toCanvas().toDataURL();
1343
1361
  }
1344
1362
  exportCellImg(col, row) {
1345
- this.cellIsInVisualView(col, row) || this.scrollToCell({
1363
+ const isInView = this.cellIsInVisualView(col, row), {scrollTop: scrollTop, scrollLeft: scrollLeft} = this;
1364
+ isInView || this.scrollToCell({
1346
1365
  col: col,
1347
1366
  row: row
1348
1367
  });
1349
- const cellRect = this.getCellRelativeRect(col, row);
1350
- return this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1368
+ const cellRect = this.getCellRelativeRect(col, row), c = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY));
1369
+ return isInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1370
+ c.toDataURL();
1371
+ }
1372
+ exportCellRangeImg(cellRange) {
1373
+ const {scrollTop: scrollTop, scrollLeft: scrollLeft} = this, minCol = Math.min(cellRange.start.col, cellRange.end.col), minRow = Math.min(cellRange.start.row, cellRange.end.row), maxCol = Math.max(cellRange.start.col, cellRange.end.col), maxRow = Math.max(cellRange.start.row, cellRange.end.row), isInView = this.cellIsInVisualView(minCol, minRow), isMaxCellInView = this.cellIsInVisualView(maxCol, maxRow);
1374
+ isInView && isMaxCellInView || this.scrollToCell({
1375
+ col: minCol,
1376
+ row: minRow
1377
+ });
1378
+ const cellRect = this.getCellRangeRelativeRect({
1379
+ start: {
1380
+ col: minCol,
1381
+ row: minRow
1382
+ },
1383
+ end: {
1384
+ col: maxCol,
1385
+ row: maxRow
1386
+ }
1387
+ }), base64Image = this.scenegraph.stage.toCanvas(!1, (new vutils_1.AABBBounds).set(cellRect.left + this.tableX + 1, cellRect.top + this.tableY + 1, cellRect.right + this.tableX, cellRect.bottom + this.tableY)).toDataURL();
1388
+ return isInView && isMaxCellInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1389
+ base64Image;
1351
1390
  }
1352
1391
  }
1353
1392