@visactor/vtable 1.0.0 → 1.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/cjs/PivotChart.d.ts +1 -1
  2. package/cjs/PivotChart.js +10 -2
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/body-helper/body-helper.js +4 -3
  5. package/cjs/body-helper/body-helper.js.map +1 -1
  6. package/cjs/core/BaseTable.d.ts +2 -0
  7. package/cjs/core/BaseTable.js +44 -16
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/index.d.ts +1 -1
  10. package/cjs/index.js +2 -2
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/scenegraph/layout/compute-col-width.js +4 -2
  13. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  14. package/cjs/scenegraph/utils/text-icon-layout.d.ts +3 -1
  15. package/cjs/scenegraph/utils/text-icon-layout.js +13 -7
  16. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  17. package/cjs/state/select/update-position.d.ts +1 -1
  18. package/cjs/state/select/update-position.js +2 -2
  19. package/cjs/state/select/update-position.js.map +1 -1
  20. package/cjs/state/state.d.ts +1 -1
  21. package/cjs/state/state.js +2 -2
  22. package/cjs/state/state.js.map +1 -1
  23. package/cjs/ts-types/base-table.d.ts +4 -2
  24. package/cjs/ts-types/base-table.js.map +1 -1
  25. package/cjs/vrender.js.map +1 -1
  26. package/dist/vtable.js +98 -35
  27. package/dist/vtable.min.js +2 -2
  28. package/es/PivotChart.d.ts +1 -1
  29. package/es/PivotChart.js +10 -2
  30. package/es/PivotChart.js.map +1 -1
  31. package/es/body-helper/body-helper.js +4 -3
  32. package/es/body-helper/body-helper.js.map +1 -1
  33. package/es/core/BaseTable.d.ts +2 -0
  34. package/es/core/BaseTable.js +42 -17
  35. package/es/core/BaseTable.js.map +1 -1
  36. package/es/index.d.ts +1 -1
  37. package/es/index.js +1 -1
  38. package/es/index.js.map +1 -1
  39. package/es/scenegraph/layout/compute-col-width.js +4 -2
  40. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  41. package/es/scenegraph/utils/text-icon-layout.d.ts +3 -1
  42. package/es/scenegraph/utils/text-icon-layout.js +11 -7
  43. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  44. package/es/state/select/update-position.d.ts +1 -1
  45. package/es/state/select/update-position.js +2 -2
  46. package/es/state/select/update-position.js.map +1 -1
  47. package/es/state/state.d.ts +1 -1
  48. package/es/state/state.js +2 -2
  49. package/es/state/state.js.map +1 -1
  50. package/es/ts-types/base-table.d.ts +4 -2
  51. package/es/ts-types/base-table.js.map +1 -1
  52. package/es/vrender.js.map +1 -1
  53. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/body-helper/body-helper.ts"],"names":[],"mappings":"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","file":"body-helper.js","sourcesContent":["import type { ColumnIconOption, ImageIcon, ListTableAPI, SvgIcon } from '../ts-types';\nimport { HierarchyState, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { Style } from './style/Style';\nimport { TextStyle } from './style/MultilineTextStyle';\nimport { ProgressBarStyle } from './style/ProgressBarStyle';\nimport { ImageStyle } from './style/ImageStyle';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport * as icons from '../tools/icons';\nimport { obj } from '../tools/helper';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { RadioStyle } from './style/RadioStyle';\nexport class BodyHelper {\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n const regedIcons = registerIcons.get();\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n getIcons(\n col: number,\n row: number,\n cellValue: any,\n dataValue: any,\n context: CanvasRenderingContext2D\n ): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const iconArr: ColumnIconOption[] = [];\n const { icon: iconDefine } = this._table.getBodyColumnDefine(col, row);\n\n if (iconDefine) {\n let iconResults;\n if (typeof iconDefine === 'function') {\n const arg = {\n col,\n row,\n value: cellValue,\n dataValue,\n table: this._table\n };\n iconResults = iconDefine(arg);\n } else {\n iconResults = iconDefine;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (columnIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof columnIcon === 'string') {\n icon = regedIcons[columnIcon];\n } else {\n icon = columnIcon;\n }\n if (icon) {\n iconArr.push(icon);\n }\n };\n if (Array.isArray(iconResults)) {\n iconResults.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(iconResults);\n }\n }\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n iconArr.push(hierarchyIcon);\n }\n\n context &&\n iconArr.forEach((i, index) => {\n if ((i as any).content || (<ImageIcon>i).src) {\n iconArr[index] = this.getCellIconFromRecordValue(i, col, row);\n // if ((<FontIcon>i).font)\n // helper.testFontLoad((<FontIcon>i).font, (<FontIcon>i).content, col, row);\n }\n });\n\n return iconArr;\n }\n getStyleClass(\n cellType:\n | 'text'\n | 'link'\n | 'image'\n | 'video'\n | 'chart'\n | 'sparkline'\n | 'progressbar'\n | 'chart'\n | 'checkbox'\n | 'radio'\n ) {\n switch (cellType) {\n case 'text':\n return TextStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextStyle;\n case 'chart':\n return Style;\n case 'sparkline':\n return Style;\n case 'progressbar':\n return ProgressBarStyle;\n case 'checkbox':\n return CheckboxStyle;\n case 'radio':\n return RadioStyle;\n }\n return TextStyle;\n }\n getCellIconFromRecordValue(icon: ColumnIconOption, col: number, row: number): ColumnIconOption;\n getCellIconFromRecordValue(icon: ColumnIconOption[], col: number, row: number): ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[] {\n if (Array.isArray(icon)) {\n return icon.map(i => this.getCellIconFromRecordValue(i, col, row));\n }\n // icon.positionType = IconPosition.inlineFront;\n if (!obj.isObject(icon) || typeof icon === 'function') {\n return (this._table as ListTableAPI).getFieldData(icon, col, row);\n }\n // 新建对象 挨个属性赋值\n const retIcon: any = {};\n const iconOpt: any = icon;\n icons.iconPropKeys.forEach(k => {\n if (typeof iconOpt[k] !== 'undefined') {\n const f = (this._table as ListTableAPI).getFieldData(iconOpt[k], col, row);\n if (f != null) {\n retIcon[k] = f;\n } else if (!this._table._hasField?.(iconOpt[k], col, row)) {\n retIcon[k] = iconOpt[k];\n }\n }\n });\n return retIcon;\n }\n\n getHierarchyIcon(col: number, row: number) {\n const hierarchyState = this._table.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/body-helper/body-helper.ts"],"names":[],"mappings":"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","file":"body-helper.js","sourcesContent":["import type { ColumnIconOption, ImageIcon, ListTableAPI, SvgIcon } from '../ts-types';\nimport { HierarchyState, InternalIconName } from '../ts-types';\nimport * as registerIcons from '../icons';\nimport { Style } from './style/Style';\nimport { TextStyle } from './style/MultilineTextStyle';\nimport { ProgressBarStyle } from './style/ProgressBarStyle';\nimport { ImageStyle } from './style/ImageStyle';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport * as icons from '../tools/icons';\nimport { obj } from '../tools/helper';\nimport { CheckboxStyle } from './style/CheckboxStyle';\nimport { RadioStyle } from './style/RadioStyle';\nexport class BodyHelper {\n expandIcon: SvgIcon;\n collapseIcon: SvgIcon;\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n const regedIcons = registerIcons.get();\n //展开折叠按钮\n this.expandIcon = regedIcons[InternalIconName.expandIconName] as SvgIcon;\n this.collapseIcon = regedIcons[InternalIconName.collapseIconName] as SvgIcon;\n }\n getIcons(\n col: number,\n row: number,\n cellValue: any,\n dataValue: any,\n context: CanvasRenderingContext2D\n ): ColumnIconOption[] {\n //加入固定列图标 排序 文本中元素\n const iconArr: ColumnIconOption[] = [];\n\n const hierarchyIcon = this.getHierarchyIcon(col, row);\n if (hierarchyIcon) {\n iconArr.push(hierarchyIcon);\n }\n\n const { icon: iconDefine } = this._table.getBodyColumnDefine(col, row);\n\n if (iconDefine) {\n let iconResults;\n if (typeof iconDefine === 'function') {\n const arg = {\n col,\n row,\n value: cellValue,\n dataValue,\n table: this._table\n };\n iconResults = iconDefine(arg);\n } else {\n iconResults = iconDefine;\n }\n const regedIcons = registerIcons.get();\n const addIcon = (columnIcon: string | ColumnIconOption) => {\n let icon;\n if (typeof columnIcon === 'string') {\n icon = regedIcons[columnIcon];\n } else {\n icon = columnIcon;\n }\n if (icon) {\n iconArr.push(icon);\n }\n };\n if (Array.isArray(iconResults)) {\n iconResults.forEach((columnIcon: string | ColumnIconOption, index: number) => {\n addIcon(columnIcon);\n });\n } else {\n addIcon(iconResults);\n }\n }\n\n context &&\n iconArr.forEach((i, index) => {\n if ((i as any).content || (<ImageIcon>i).src) {\n iconArr[index] = this.getCellIconFromRecordValue(i, col, row);\n // if ((<FontIcon>i).font)\n // helper.testFontLoad((<FontIcon>i).font, (<FontIcon>i).content, col, row);\n }\n });\n\n return iconArr;\n }\n getStyleClass(\n cellType:\n | 'text'\n | 'link'\n | 'image'\n | 'video'\n | 'chart'\n | 'sparkline'\n | 'progressbar'\n | 'chart'\n | 'checkbox'\n | 'radio'\n ) {\n switch (cellType) {\n case 'text':\n return TextStyle;\n case 'image':\n return ImageStyle;\n case 'video':\n return ImageStyle;\n case 'link':\n return TextStyle;\n case 'chart':\n return Style;\n case 'sparkline':\n return Style;\n case 'progressbar':\n return ProgressBarStyle;\n case 'checkbox':\n return CheckboxStyle;\n case 'radio':\n return RadioStyle;\n }\n return TextStyle;\n }\n getCellIconFromRecordValue(icon: ColumnIconOption, col: number, row: number): ColumnIconOption;\n getCellIconFromRecordValue(icon: ColumnIconOption[], col: number, row: number): ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[];\n getCellIconFromRecordValue(\n icon: ColumnIconOption | ColumnIconOption[],\n col: number,\n row: number\n ): ColumnIconOption | ColumnIconOption[] {\n if (Array.isArray(icon)) {\n return icon.map(i => this.getCellIconFromRecordValue(i, col, row));\n }\n // icon.positionType = IconPosition.inlineFront;\n if (!obj.isObject(icon) || typeof icon === 'function') {\n return (this._table as ListTableAPI).getFieldData(icon, col, row);\n }\n // 新建对象 挨个属性赋值\n const retIcon: any = {};\n const iconOpt: any = icon;\n icons.iconPropKeys.forEach(k => {\n if (typeof iconOpt[k] !== 'undefined') {\n const f = (this._table as ListTableAPI).getFieldData(iconOpt[k], col, row);\n if (f != null) {\n retIcon[k] = f;\n } else if (!this._table._hasField?.(iconOpt[k], col, row)) {\n retIcon[k] = iconOpt[k];\n }\n }\n });\n return retIcon;\n }\n\n getHierarchyIcon(col: number, row: number) {\n const hierarchyState = this._table.getHierarchyState(col, row);\n if (hierarchyState === HierarchyState.expand) {\n //展开状态 应该显示-号\n return this.expandIcon;\n } else if (hierarchyState === HierarchyState.collapse) {\n //折叠状态 应该显示-号\n return this.collapseIcon;\n }\n return undefined;\n }\n getHierarchyIconWidth() {\n return this.expandIcon.width + (this.expandIcon.marginLeft ?? 0) + (this.expandIcon.marginRight ?? 0);\n }\n}\n"]}
@@ -140,12 +140,14 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
140
140
  getDefaultColumnWidth(col: number): number | "auto";
141
141
  getDefaultRowHeight(row: number): number | "auto";
142
142
  _setRowHeight(row: number, height: number, clearCache?: boolean): void;
143
+ setRowHeight(row: number, height: number): void;
143
144
  getRowsHeight(startRow: number, endRow: number): number;
144
145
  getColWidthDefined(col: number): string | number;
145
146
  getColWidthDefinedNumber(col: number): number;
146
147
  isAutoRowHeight(row: number): boolean;
147
148
  getColWidth(col: number): number;
148
149
  _setColWidth(col: number, width: string | number, clearCache?: boolean, skipCheckFrozen?: boolean): void;
150
+ setColWidth(col: number, width: number): void;
149
151
  _clearColRangeWidthsMap(col?: number): void;
150
152
  _clearRowRangeHeightsMap(row?: number): void;
151
153
  _getColContentWidth(col: number): number;
@@ -45,7 +45,7 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
48
- if (super(), this.showFrozenIcon = !0, this.version = "1.0.0", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "1.0.1-alpha.0", this.id = `VTable${Date.now()}`,
49
49
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
50
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
51
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, widthAdaptiveMode: widthAdaptiveMode = "only-body", heightAdaptiveMode: heightAdaptiveMode = "only-body", keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, rowResizeMode: rowResizeMode = "none", 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, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth, limitMinHeight: limitMinHeight, clearDOM: clearDOM = !0} = options;
@@ -64,7 +64,7 @@ class BaseTable extends EventTarget_1.EventTarget {
64
64
  this.tableNoFrameHeight = 0, this.canvasWidth = canvasWidth, this.canvasHeight = canvasHeight,
65
65
  this.columnWidthComputeMode = null !== (_a = options.columnWidthComputeMode) && void 0 !== _a ? _a : "normal";
66
66
  const internalProps = this.internalProps = {};
67
- void 0 !== showFrozenIcon && (this.showFrozenIcon = showFrozenIcon), "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
67
+ if (void 0 !== showFrozenIcon && (this.showFrozenIcon = showFrozenIcon), "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
68
68
  "node" !== env_1.Env.mode && (internalProps.element = (0, tableHelper_1.createRootElement)(this.padding),
69
69
  internalProps.focusControl = new FouseInput_1.FocusInput(this, internalProps.element),
70
70
  internalProps.canvas = document.createElement("canvas"), internalProps.element.appendChild(internalProps.canvas),
@@ -101,11 +101,19 @@ class BaseTable extends EventTarget_1.EventTarget {
101
101
  internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
102
102
  this._vDataSet = new vdataset_1.DataSet, this.scenegraph = new scenegraph_1.Scenegraph(this),
103
103
  this.stateManager = new state_1.StateManager(this), this.eventManager = new event_1.EventManager(this),
104
- options.legends && (internalProps.legends = (0, create_legend_1.createLegend)(options.legends, this),
104
+ options.legends) if (internalProps.legends = [], Array.isArray(options.legends)) {
105
+ for (let i = 0; i < options.legends.length; i++) internalProps.legends.push((0,
106
+ create_legend_1.createLegend)(options.legends[i], this));
107
+ this.scenegraph.tableGroup.setAttributes({
108
+ x: this.tableX,
109
+ y: this.tableY
110
+ });
111
+ } else internalProps.legends.push((0, create_legend_1.createLegend)(options.legends, this)),
105
112
  this.scenegraph.tableGroup.setAttributes({
106
113
  x: this.tableX,
107
114
  y: this.tableY
108
- })), internalProps.tooltip = Object.assign({
115
+ });
116
+ internalProps.tooltip = Object.assign({
109
117
  renderMode: "html",
110
118
  isShowOverflowTextTooltip: !1,
111
119
  confine: !0
@@ -130,8 +138,10 @@ class BaseTable extends EventTarget_1.EventTarget {
130
138
  return this.internalProps.canvas;
131
139
  }
132
140
  resize() {
133
- this._updateSize(), this.internalProps.legends && this.internalProps.legends.resize(),
134
- this.internalProps.title && this.internalProps.title.resize(), this.scenegraph.resize();
141
+ var _a;
142
+ this._updateSize(), null === (_a = this.internalProps.legends) || void 0 === _a || _a.forEach((legend => {
143
+ null == legend || legend.resize();
144
+ })), this.internalProps.title && this.internalProps.title.resize(), this.scenegraph.resize();
135
145
  }
136
146
  get rowCount() {
137
147
  return this.internalProps.rowCount;
@@ -395,6 +405,9 @@ class BaseTable extends EventTarget_1.EventTarget {
395
405
  this.rowHeightsMap.put(row, (null === (_a = this.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? height : Math.round(height)),
396
406
  clearCache && this._clearRowRangeHeightsMap(row);
397
407
  }
408
+ setRowHeight(row, height) {
409
+ this.scenegraph.setRowHeight(row, height), this.internalProps._heightResizedRowMap.add(row);
410
+ }
398
411
  getRowsHeight(startRow, endRow) {
399
412
  var _a, _b;
400
413
  if (startRow > endRow || 0 === this.rowCount) return 0;
@@ -438,6 +451,9 @@ class BaseTable extends EventTarget_1.EventTarget {
438
451
  this.colWidthsMap.put(col, "number" == typeof width ? Math.round(width) : width),
439
452
  clearCache && this._clearColRangeWidthsMap(col), skipCheckFrozen || this.stateManager.checkFrozen();
440
453
  }
454
+ setColWidth(col, width) {
455
+ this.scenegraph.setColWidth(col, width), this.internalProps._widthResizedColMap.add(col);
456
+ }
441
457
  _clearColRangeWidthsMap(col) {
442
458
  if ("number" != typeof col) this._colRangeWidthsMap.clear(); else {
443
459
  const keys = this._colRangeWidthsMap.keys();
@@ -733,8 +749,10 @@ class BaseTable extends EventTarget_1.EventTarget {
733
749
  icons_1.IconCache.clearAll(), null === (_e = super.release) || void 0 === _e || _e.call(this),
734
750
  null === (_g = null === (_f = internalProps.handler) || void 0 === _f ? void 0 : _f.release) || void 0 === _g || _g.call(_f),
735
751
  null === (_j = null === (_h = internalProps.focusControl) || void 0 === _h ? void 0 : _h.release) || void 0 === _j || _j.call(_h),
736
- null === (_k = internalProps.legends) || void 0 === _k || _k.release(), null === (_l = internalProps.title) || void 0 === _l || _l.release(),
737
- internalProps.layoutMap.release(), internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
752
+ null === (_k = internalProps.legends) || void 0 === _k || _k.forEach((legend => {
753
+ null == legend || legend.release();
754
+ })), null === (_l = internalProps.title) || void 0 === _l || _l.release(), internalProps.layoutMap.release(),
755
+ internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
738
756
  var _a;
739
757
  return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
740
758
  })), internalProps.releaseList = null), this.scenegraph.stage.release(), this.scenegraph.proxy.release();
@@ -761,7 +779,7 @@ class BaseTable extends EventTarget_1.EventTarget {
761
779
  this.autoFillWidth = null != autoFillWidth && autoFillWidth, this.autoFillHeight = null != autoFillHeight && autoFillHeight,
762
780
  this.customRender = customRender;
763
781
  const internalProps = this.internalProps;
764
- "node" !== env_1.Env.mode && (0, tableHelper_1.updateRootElementPadding)(internalProps.element, this.padding),
782
+ if ("node" !== env_1.Env.mode && (0, tableHelper_1.updateRootElementPadding)(internalProps.element, this.padding),
765
783
  this.columnWidthComputeMode = null !== (_a = options.columnWidthComputeMode) && void 0 !== _a ? _a : "normal",
766
784
  internalProps.frozenColCount = frozenColCount, internalProps.defaultRowHeight = defaultRowHeight,
767
785
  internalProps.defaultHeaderRowHeight = null != defaultHeaderRowHeight ? defaultHeaderRowHeight : defaultRowHeight,
@@ -782,14 +800,24 @@ class BaseTable extends EventTarget_1.EventTarget {
782
800
  internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
783
801
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
784
802
  internalProps.limitMinHeight = null != limitMinHeight ? "number" == typeof limitMinHeight ? limitMinHeight : limitMinHeight ? 10 : 0 : 10,
785
- this._vDataSet = new vdataset_1.DataSet, null === (_e = internalProps.legends) || void 0 === _e || _e.release(),
786
- null === (_f = internalProps.title) || void 0 === _f || _f.release(), internalProps.layoutMap.release(),
803
+ this._vDataSet = new vdataset_1.DataSet, null === (_e = internalProps.legends) || void 0 === _e || _e.forEach((legend => {
804
+ null == legend || legend.release();
805
+ })), null === (_f = internalProps.title) || void 0 === _f || _f.release(), internalProps.layoutMap.release(),
787
806
  this.scenegraph.clearCells(), this.scenegraph.updateComponent(), this.stateManager.updateOptionSetState(),
788
- this._updateSize(), this.eventManager.updateEventBinder(), options.legends && (internalProps.legends = (0,
789
- create_legend_1.createLegend)(options.legends, this), this.scenegraph.tableGroup.setAttributes({
807
+ this._updateSize(), this.eventManager.updateEventBinder(), options.legends) if (internalProps.legends = [],
808
+ Array.isArray(options.legends)) {
809
+ for (let i = 0; i < options.legends.length; i++) internalProps.legends.push((0,
810
+ create_legend_1.createLegend)(options.legends[i], this));
811
+ this.scenegraph.tableGroup.setAttributes({
812
+ x: this.tableX,
813
+ y: this.tableY
814
+ });
815
+ } else internalProps.legends.push((0, create_legend_1.createLegend)(options.legends, this)),
816
+ this.scenegraph.tableGroup.setAttributes({
790
817
  x: this.tableX,
791
818
  y: this.tableY
792
- })), internalProps.tooltip = Object.assign({
819
+ });
820
+ internalProps.tooltip = Object.assign({
793
821
  renderMode: "html",
794
822
  isShowOverflowTextTooltip: !1,
795
823
  confine: !0
@@ -990,8 +1018,8 @@ class BaseTable extends EventTarget_1.EventTarget {
990
1018
  selectCells(cellRanges) {
991
1019
  const {scrollLeft: scrollLeft, scrollTop: scrollTop} = this;
992
1020
  cellRanges.forEach(((cellRange, index) => {
993
- cellRange.start.col === cellRange.end.col && cellRange.start.row === cellRange.end.row ? this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1) : (this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1),
994
- this.stateManager.updateInteractionState(ts_types_1.InteractionState.grabing), this.stateManager.updateSelectPos(cellRange.end.col, cellRange.end.row, !1, index >= 1)),
1021
+ cellRange.start.col === cellRange.end.col && cellRange.start.row === cellRange.end.row ? this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1, !1, !1, !0) : (this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1),
1022
+ this.stateManager.updateInteractionState(ts_types_1.InteractionState.grabing), this.stateManager.updateSelectPos(cellRange.end.col, cellRange.end.row, !1, index >= 1, !1, !1, !0)),
995
1023
  this.stateManager.endSelectCells(!1), this.stateManager.updateInteractionState(ts_types_1.InteractionState.default);
996
1024
  })), this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft);
997
1025
  }