@visactor/vtable 0.21.3-alpha.1 → 0.21.3

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 (69) hide show
  1. package/cjs/ListTable.js.map +1 -1
  2. package/cjs/core/BaseTable.js +21 -7
  3. package/cjs/core/BaseTable.js.map +1 -1
  4. package/cjs/data/DataSource.js +5 -1
  5. package/cjs/data/DataSource.js.map +1 -1
  6. package/cjs/index.d.ts +1 -1
  7. package/cjs/index.js +1 -1
  8. package/cjs/index.js.map +1 -1
  9. package/cjs/layout/pivot-header-layout.js +1 -1
  10. package/cjs/layout/pivot-header-layout.js.map +1 -1
  11. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -0
  12. package/cjs/scenegraph/group-creater/cell-helper.js +16 -26
  13. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  14. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +3 -2
  15. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  16. package/cjs/scenegraph/group-creater/column-helper.js +3 -2
  17. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  18. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -5
  19. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  20. package/cjs/scenegraph/icon/icon-update.js +3 -2
  21. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  22. package/cjs/scenegraph/select/update-select-border.d.ts +2 -0
  23. package/cjs/scenegraph/select/update-select-border.js +19 -2
  24. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  25. package/cjs/state/hover/update-cell.js +3 -2
  26. package/cjs/state/hover/update-cell.js.map +1 -1
  27. package/cjs/state/state.js +1 -1
  28. package/cjs/themes/theme.js +1 -1
  29. package/cjs/tools/merge-range.js +6 -0
  30. package/cjs/tools/merge-range.js.map +1 -1
  31. package/cjs/ts-types/new-data-set.d.ts +2 -1
  32. package/cjs/ts-types/new-data-set.js.map +1 -1
  33. package/cjs/vrender.js.map +1 -1
  34. package/dist/vtable.js +75 -55
  35. package/dist/vtable.min.js +2 -2
  36. package/es/ListTable.js.map +1 -1
  37. package/es/core/BaseTable.js +20 -7
  38. package/es/core/BaseTable.js.map +1 -1
  39. package/es/data/DataSource.js +5 -1
  40. package/es/data/DataSource.js.map +1 -1
  41. package/es/index.d.ts +1 -1
  42. package/es/index.js +1 -1
  43. package/es/index.js.map +1 -1
  44. package/es/layout/pivot-header-layout.js +1 -1
  45. package/es/layout/pivot-header-layout.js.map +1 -1
  46. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -0
  47. package/es/scenegraph/group-creater/cell-helper.js +12 -24
  48. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  49. package/es/scenegraph/group-creater/cell-type/image-cell.js +1 -1
  50. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  51. package/es/scenegraph/group-creater/column-helper.js +5 -4
  52. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  53. package/es/scenegraph/group-creater/progress/proxy.js +4 -5
  54. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  55. package/es/scenegraph/icon/icon-update.js +1 -1
  56. package/es/scenegraph/icon/icon-update.js.map +1 -1
  57. package/es/scenegraph/select/update-select-border.d.ts +2 -0
  58. package/es/scenegraph/select/update-select-border.js +16 -0
  59. package/es/scenegraph/select/update-select-border.js.map +1 -1
  60. package/es/state/hover/update-cell.js +1 -1
  61. package/es/state/hover/update-cell.js.map +1 -1
  62. package/es/state/state.js +1 -1
  63. package/es/themes/theme.js +1 -1
  64. package/es/tools/merge-range.js +6 -0
  65. package/es/tools/merge-range.js.map +1 -1
  66. package/es/ts-types/new-data-set.d.ts +2 -1
  67. package/es/ts-types/new-data-set.js.map +1 -1
  68. package/es/vrender.js.map +1 -1
  69. package/package.json +6 -6
@@ -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")), 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_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), 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"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), get_axis_config_1 = require("../layout/chart-helper/get-axis-config"), row_height_map_1 = require("../layout/row-height-map"), custom_cell_style_1 = require("../plugins/custom-cell-style"), {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")), 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_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), 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"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), get_axis_config_1 = require("../layout/chart-helper/get-axis-config"), row_height_map_1 = require("../layout/row-height-map"), custom_cell_style_1 = require("../plugins/custom-cell-style"), update_select_border_1 = require("../scenegraph/select/update-select-border"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
37
37
 
38
38
  (0, style_1.importStyle)();
39
39
 
@@ -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;
48
- if (super(), this.showFrozenIcon = !0, this.version = "0.21.3-alpha.1", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "0.21.3", 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, keyboardOptions: keyboardOptions, eventOptions: eventOptions, 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, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
@@ -1142,7 +1142,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1142
1142
  return null === (_a = this.internalProps.dataSource) || void 0 === _a ? void 0 : _a.hasField(index, field);
1143
1143
  }
1144
1144
  _getCellStyle(col, row) {
1145
- var _a, _b, _c, _d;
1145
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1146
1146
  const customCellStyle = this.customCellStylePlugin.getCustomCellStyle(col, row), {layoutMap: layoutMap} = this.internalProps;
1147
1147
  if (layoutMap.isHeader(col, row)) {
1148
1148
  let cacheKey;
@@ -1192,7 +1192,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1192
1192
  }
1193
1193
  return this.headerStyleCache.set(cacheKey, cacheStyle), customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1194
1194
  }
1195
- let cacheKey;
1195
+ let bgColorFunc, cacheKey;
1196
+ (null === (_f = null === (_e = this.internalProps) || void 0 === _e ? void 0 : _e.dataConfig) || void 0 === _f ? void 0 : _f.mappingRules) && !this.isHeader(col, row) && (null === (_j = null === (_h = null === (_g = this.internalProps) || void 0 === _g ? void 0 : _g.dataConfig) || void 0 === _h ? void 0 : _h.mappingRules) || void 0 === _j || _j.forEach(((mappingRule, i) => {
1197
+ mappingRule.bgColor && this.internalProps.layoutMap.getIndicatorKey(col, row) === mappingRule.bgColor.indicatorKey && (bgColorFunc = mappingRule.bgColor.mapping);
1198
+ })));
1196
1199
  const cellType = this.getCellType(col, row);
1197
1200
  let cacheStyle;
1198
1201
  if (cacheKey = this.isListTable() && !this.transpose || this.isPivotTable() && this.internalProps.layoutMap.indicatorsAsCol ? col + cellType : row + cellType,
@@ -1206,7 +1209,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1206
1209
  value: this.getCellValue(col, row),
1207
1210
  dataValue: this.getCellOriginValue(col, row),
1208
1211
  cellHeaderPaths: this.getCellHeaderPaths(col, row)
1209
- }, styleClass, this.options.autoWrapText, this.theme), (0, vutils_1.isFunction)(style) || (layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.set(cacheKey, cacheStyle) : this.bodyStyleCache.set(cacheKey, cacheStyle)),
1212
+ }, styleClass, this.options.autoWrapText, this.theme), bgColorFunc && (cacheStyle = (0,
1213
+ custom_cell_style_1.mergeStyle)(cacheStyle, {
1214
+ bgColor: bgColorFunc
1215
+ })), (0, vutils_1.isFunction)(style) || (layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.set(cacheKey, cacheStyle) : this.bodyStyleCache.set(cacheKey, cacheStyle)),
1210
1216
  customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1211
1217
  }
1212
1218
  clearCellStyleCache() {
@@ -1373,7 +1379,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1373
1379
  if (range) {
1374
1380
  const copyCellValue = getCopyCellValue(c, r, range);
1375
1381
  if ("undefined" != typeof Promise && copyCellValue instanceof Promise) ; else {
1376
- const strCellValue = `${copyCellValue}`;
1382
+ const strCellValue = (0, vutils_1.isValid)(copyCellValue) ? `${copyCellValue}` : "";
1377
1383
  /^\[object .*\]$/.exec(strCellValue) || (copyValue += strCellValue);
1378
1384
  }
1379
1385
  (c < range.end.col || c < maxCol) && (copyValue += "\t");
@@ -1482,13 +1488,21 @@ class BaseTable extends EventTarget_1.EventTarget {
1482
1488
  return this.scenegraph.stage.toCanvas().toDataURL();
1483
1489
  }
1484
1490
  exportCellImg(col, row) {
1491
+ var _a, _b, _c, _d;
1485
1492
  const isInView = this.cellIsInVisualView(col, row), {scrollTop: scrollTop, scrollLeft: scrollLeft} = this;
1486
1493
  isInView || this.scrollToCell({
1487
1494
  col: col,
1488
1495
  row: row
1489
1496
  });
1490
- 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));
1497
+ const cellRect = this.getCellRelativeRect(col, row);
1498
+ (null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0 && (0,
1499
+ update_select_border_1.hideCellSelectBorder)(this.scenegraph);
1500
+ const {col: hoverCol, row: hoverRow} = this.stateManager.hover.cellPos;
1501
+ this.stateManager.updateHoverPos(-1, -1);
1502
+ const 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));
1491
1503
  return isInView || (this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft)),
1504
+ (null === (_d = null === (_c = this.stateManager.select) || void 0 === _c ? void 0 : _c.ranges) || void 0 === _d ? void 0 : _d.length) > 0 && (0,
1505
+ update_select_border_1.restoreCellSelectBorder)(this.scenegraph), this.stateManager.updateHoverPos(hoverCol, hoverRow),
1492
1506
  c.toDataURL();
1493
1507
  }
1494
1508
  exportCellRangeImg(cellRange) {