@visactor/vtable 0.21.2-alpha.0 → 0.21.2

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 (95) hide show
  1. package/cjs/body-helper/style/ProgressBarStyle.js +1 -1
  2. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  3. package/cjs/core/BaseTable.js +1 -1
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/event/event.d.ts +5 -0
  6. package/cjs/event/event.js +5 -3
  7. package/cjs/event/event.js.map +1 -1
  8. package/cjs/event/listener/container-dom.js +53 -13
  9. package/cjs/event/listener/container-dom.js.map +1 -1
  10. package/cjs/event/listener/table-group.js +1 -20
  11. package/cjs/event/listener/table-group.js.map +1 -1
  12. package/cjs/event/listener/touch.js +23 -5
  13. package/cjs/event/listener/touch.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/scenegraph/graphic/contributions/index.js +4 -2
  18. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  19. package/cjs/scenegraph/graphic/contributions/text-contribution-render.d.ts +12 -0
  20. package/cjs/scenegraph/graphic/contributions/text-contribution-render.js +72 -0
  21. package/cjs/scenegraph/graphic/contributions/text-contribution-render.js.map +1 -0
  22. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +6 -0
  23. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +35 -24
  24. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  25. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +2 -6
  26. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +12 -8
  28. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  29. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  30. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  31. package/cjs/scenegraph/layout/frozen.js +2 -2
  32. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  33. package/cjs/scenegraph/layout/update-width.js +3 -3
  34. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  35. package/cjs/scenegraph/scenegraph.d.ts +2 -2
  36. package/cjs/scenegraph/scenegraph.js +17 -14
  37. package/cjs/scenegraph/scenegraph.js.map +1 -1
  38. package/cjs/scenegraph/stick-text/index.js +70 -34
  39. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  40. package/cjs/scenegraph/utils/text-icon-layout.js +2 -2
  41. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  42. package/cjs/ts-types/column/style.d.ts +1 -0
  43. package/cjs/ts-types/column/style.js.map +1 -1
  44. package/cjs/ts-types/customElement.d.ts +1 -1
  45. package/cjs/ts-types/customElement.js.map +1 -1
  46. package/cjs/vrender.js.map +1 -1
  47. package/dist/vtable.js +540 -282
  48. package/dist/vtable.min.js +2 -2
  49. package/es/body-helper/style/ProgressBarStyle.js +1 -1
  50. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  51. package/es/core/BaseTable.js +1 -1
  52. package/es/core/BaseTable.js.map +1 -1
  53. package/es/event/event.d.ts +5 -0
  54. package/es/event/event.js +5 -3
  55. package/es/event/event.js.map +1 -1
  56. package/es/event/listener/container-dom.js +54 -12
  57. package/es/event/listener/container-dom.js.map +1 -1
  58. package/es/event/listener/table-group.js +1 -20
  59. package/es/event/listener/table-group.js.map +1 -1
  60. package/es/event/listener/touch.js +23 -5
  61. package/es/event/listener/touch.js.map +1 -1
  62. package/es/index.d.ts +1 -1
  63. package/es/index.js +1 -1
  64. package/es/index.js.map +1 -1
  65. package/es/scenegraph/graphic/contributions/index.js +5 -2
  66. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  67. package/es/scenegraph/graphic/contributions/text-contribution-render.d.ts +12 -0
  68. package/es/scenegraph/graphic/contributions/text-contribution-render.js +69 -0
  69. package/es/scenegraph/graphic/contributions/text-contribution-render.js.map +1 -0
  70. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +6 -0
  71. package/es/scenegraph/group-creater/cell-type/image-cell.js +34 -23
  72. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  73. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +2 -6
  74. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  75. package/es/scenegraph/group-creater/cell-type/video-cell.js +12 -8
  76. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  77. package/es/scenegraph/layout/compute-col-width.js +1 -1
  78. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  79. package/es/scenegraph/layout/frozen.js +2 -2
  80. package/es/scenegraph/layout/frozen.js.map +1 -1
  81. package/es/scenegraph/layout/update-width.js +3 -3
  82. package/es/scenegraph/layout/update-width.js.map +1 -1
  83. package/es/scenegraph/scenegraph.d.ts +2 -2
  84. package/es/scenegraph/scenegraph.js +16 -14
  85. package/es/scenegraph/scenegraph.js.map +1 -1
  86. package/es/scenegraph/stick-text/index.js +70 -34
  87. package/es/scenegraph/stick-text/index.js.map +1 -1
  88. package/es/scenegraph/utils/text-icon-layout.js +2 -2
  89. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  90. package/es/ts-types/column/style.d.ts +1 -0
  91. package/es/ts-types/column/style.js.map +1 -1
  92. package/es/ts-types/customElement.d.ts +1 -1
  93. package/es/ts-types/customElement.js.map +1 -1
  94. package/es/vrender.js.map +1 -1
  95. package/package.json +3 -3
@@ -24,6 +24,11 @@ export declare class EventManager {
24
24
  };
25
25
  isDown: boolean;
26
26
  isDraging: boolean;
27
+ globalEventListeners: {
28
+ name: string;
29
+ env: 'document' | 'body' | 'window';
30
+ callback: (e?: any) => void;
31
+ }[];
27
32
  constructor(table: BaseTableAPI);
28
33
  bindOuterEvent(): void;
29
34
  updateEventBinder(): void;
@@ -8,8 +8,8 @@ const vrender_1 = require("./../vrender"), ts_types_1 = require("../ts-types"),
8
8
 
9
9
  class EventManager {
10
10
  constructor(table) {
11
- this.isDown = !1, this.isDraging = !1, this.table = table, "node" !== env_1.Env.mode && (this.bindOuterEvent(),
12
- setTimeout((() => {
11
+ this.isDown = !1, this.isDraging = !1, this.globalEventListeners = [], this.table = table,
12
+ "node" !== env_1.Env.mode && (this.bindOuterEvent(), setTimeout((() => {
13
13
  this.bindSelfEvent();
14
14
  }), 0));
15
15
  }
@@ -135,7 +135,9 @@ class EventManager {
135
135
  return !1;
136
136
  }
137
137
  release() {
138
- this.gesture.release();
138
+ this.gesture.release(), this.globalEventListeners.forEach((item => {
139
+ "document" === item.env ? document.removeEventListener(item.name, item.callback) : "body" === item.env ? document.body.removeEventListener(item.name, item.callback) : "window" === item.env && window.removeEventListener(item.name, item.callback);
140
+ })), this.globalEventListeners = [];
139
141
  }
140
142
  }
141
143
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["// import { FederatedPointerEvent } from '@src/vrender';\nimport type { FederatedPointerEvent, Gesture } from './../vrender';\nimport { RichText } from './../vrender';\nimport type { MousePointerCellEvent } from '../ts-types';\nimport { IconFuncTypeEnum } from '../ts-types';\nimport type { StateManager } from '../state/state';\nimport type { Group } from '../scenegraph/graphic/group';\nimport { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE';\nimport type { Icon } from '../scenegraph/graphic/icon';\nimport { checkCellInSelect } from '../state/common/check-in-select';\nimport { bindMediaClick } from './media-click';\nimport { bindDrillEvent, checkHaveDrill, drillClick } from './drill';\nimport { bindSparklineHoverEvent } from './sparkline-event';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { checkHaveTextStick, handleTextStick } from '../scenegraph/stick-text';\nimport { bindGesture, bindTableGroupListener } from './listener/table-group';\nimport { bindScrollBarListener } from './listener/scroll-bar';\nimport { bindContainerDomListener } from './listener/container-dom';\nimport { bindTouchListener } from './listener/touch';\nimport { getCellEventArgsSet, type SceneEvent } from './util';\nimport { bindAxisClickEvent } from './pivot-chart/axis-click';\nimport { bindAxisHoverEvent } from './pivot-chart/axis-hover';\nimport type { PivotTable } from '../PivotTable';\nimport { Env } from '../tools/env';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport class EventManager {\n table: BaseTableAPI;\n // _col: number;\n // _resizing: boolean = false;\n // /** 为了能够判断canvas mousedown 事件 以阻止事件冒泡 */\n // isPointerDownOnTable: boolean = false;\n isTouchdown: boolean; // touch scrolling mode on\n touchMovePoints: {\n x: number;\n y: number;\n timestamp: number;\n }[]; // touch points record in touch scrolling mode\n touchSetTimeout: any; // touch start timeout, use to distinguish touch scrolling mode and default touch event\n touchEnd: boolean; // is touch event end when default touch event listener response\n touchMove: boolean; // is touch listener working, use to disable document touch scrolling function\n gesture: Gesture;\n handleTextStickBindId: number;\n\n //鼠标事件记录。 PointerMove敏感度太高了 记录下上一个鼠标位置 在接收到PointerMove事件时做判断 是否到到触发框选或者移动表头操作的标准,防止误触\n LastPointerXY: { x: number; y: number };\n LastBodyPointerXY: { x: number; y: number };\n isDown = false;\n isDraging = false;\n\n constructor(table: BaseTableAPI) {\n this.table = table;\n if (Env.mode === 'node') {\n return;\n }\n this.bindOuterEvent();\n setTimeout(() => {\n this.bindSelfEvent();\n }, 0);\n }\n\n // 绑定DOM事件\n bindOuterEvent() {\n bindTableGroupListener(this);\n bindContainerDomListener(this);\n bindScrollBarListener(this);\n bindTouchListener(this);\n bindGesture(this);\n }\n updateEventBinder() {\n setTimeout(() => {\n // 处理textStick 是否绑定SCROLL的判断\n if (checkHaveTextStick(this.table) && !this.handleTextStickBindId) {\n this.handleTextStickBindId = this.table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n handleTextStick(this.table);\n });\n } else if (!checkHaveTextStick(this.table) && this.handleTextStickBindId) {\n this.table.off(this.handleTextStickBindId);\n this.handleTextStickBindId = undefined;\n }\n }, 0);\n }\n bindSelfEvent() {\n if (this.table.isReleased) {\n return;\n }\n\n const stateManager: StateManager = this.table.stateManager;\n\n // 图标点击\n this.table.on(TABLE_EVENT_TYPE.ICON_CLICK, iconInfo => {\n const { col, row, x, y, funcType, icon, event } = iconInfo;\n // 下拉菜单按钮点击\n if (funcType === IconFuncTypeEnum.dropDown) {\n stateManager.triggerDropDownMenu(col, row, x, y, event);\n } else if (funcType === IconFuncTypeEnum.sort) {\n stateManager.triggerSort(col, row, icon, event);\n } else if (funcType === IconFuncTypeEnum.frozen) {\n stateManager.triggerFreeze(col, row, icon);\n } else if (funcType === IconFuncTypeEnum.drillDown) {\n drillClick(this.table);\n } else if (funcType === IconFuncTypeEnum.collapse || funcType === IconFuncTypeEnum.expand) {\n this.table.stateManager.updateSelectPos(-1, -1);\n this.table.toggleHierarchyState(col, row);\n }\n });\n\n // 下拉菜单内容点击\n this.table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, () => {\n stateManager.hideMenu();\n });\n\n // 处理textStick\n if (checkHaveTextStick(this.table)) {\n this.handleTextStickBindId = this.table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n handleTextStick(this.table);\n });\n }\n\n // link/image/video点击\n bindMediaClick(this.table);\n\n // 双击自动列宽\n this.table.on(TABLE_EVENT_TYPE.DBLCLICK_CELL, (e: MousePointerCellEvent) => {\n if (e.federatedEvent) {\n const eventArgsSet = getCellEventArgsSet(e.federatedEvent as any);\n const resizeCol = this.table.scenegraph.getResizeColAt(\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n eventArgsSet.eventArgs?.targetCell\n );\n if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {\n this.table.scenegraph.updateAutoColWidth(resizeCol.col);\n\n // if (this.table.isPivotChart()) {\n this.table.scenegraph.updateChartSize(resizeCol.col);\n // }\n const state = this.table.stateManager;\n // update frozen shadowline component\n if (\n state.columnResize.col < state.table.frozenColCount &&\n !state.table.isPivotTable() &&\n !(state.table as ListTable).transpose\n ) {\n state.table.scenegraph.component.setFrozenColumnShadow(\n state.table.frozenColCount - 1,\n state.columnResize.isRightFrozen\n );\n }\n }\n }\n });\n\n // drill icon\n if (this.table.isPivotTable() && checkHaveDrill(this.table as PivotTable)) {\n bindDrillEvent(this.table);\n }\n\n // chart hover\n bindSparklineHoverEvent(this.table);\n\n // axis click\n bindAxisClickEvent(this.table);\n\n // chart axis event\n bindAxisHoverEvent(this.table);\n }\n\n dealTableHover(eventArgsSet?: SceneEvent) {\n if (!eventArgsSet) {\n this.table.stateManager.updateHoverPos(-1, -1);\n return;\n }\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n this.table.stateManager.updateHoverPos(eventArgs.col, eventArgs.row);\n } else {\n this.table.stateManager.updateHoverPos(-1, -1);\n }\n }\n\n dealIconHover(eventArgsSet: SceneEvent) {\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n this.table.stateManager.updateHoverIcon(\n eventArgs.col,\n eventArgs.row,\n eventArgs.target,\n eventArgs.targetCell,\n eventArgs.event\n );\n } else {\n this.table.stateManager.updateHoverIcon(-1, -1, undefined, undefined);\n }\n }\n\n dealMenuHover(eventArgsSet: SceneEvent) {\n // menu自身状态实现\n }\n\n dealTableSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean {\n if (!eventArgsSet) {\n this.table.stateManager.updateSelectPos(-1, -1);\n return false;\n }\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n if (eventArgs.target.name === 'checkbox') {\n return false;\n }\n\n // // 注意:如果启用下面这句代码逻辑 则在点击选中单元格时失效hover效果。但是会导致chart实例的click事件失效,所以先特殊处理这个逻辑\n // if (\n // !this.table.isPivotChart() &&\n // eventArgsSet?.eventArgs?.target.type !== 'chart' &&\n // eventArgs.event.pointerType !== 'touch'\n // ) {\n // this.table.stateManager.updateHoverPos(-1, -1);\n // }\n const define = this.table.getBodyColumnDefine(eventArgs.col, eventArgs.row);\n if (\n this.table.isHeader(eventArgs.col, eventArgs.row) &&\n (define?.disableHeaderSelect || this.table.stateManager.select?.disableHeader)\n ) {\n if (!isSelectMoving) {\n // 如果是点击点表头 取消单元格选中状态\n this.table.stateManager.updateSelectPos(-1, -1);\n }\n return false;\n } else if (!this.table.isHeader(eventArgs.col, eventArgs.row) && define?.disableSelect) {\n if (!isSelectMoving) {\n this.table.stateManager.updateSelectPos(-1, -1);\n }\n return false;\n }\n\n if (\n this.table.isPivotChart() &&\n (eventArgsSet?.eventArgs?.target.name === 'axis-label' || eventArgsSet?.eventArgs?.target.type === 'chart')\n ) {\n // 点击透视图坐标轴标签或图标内容,执行图表状态更新,不触发Select\n this.table.stateManager.updateSelectPos(-1, -1);\n return false;\n }\n this.table.stateManager.updateSelectPos(\n eventArgs.col,\n eventArgs.row,\n eventArgs.event.shiftKey,\n eventArgs.event.ctrlKey || eventArgs.event.metaKey\n );\n return true;\n }\n // this.table.stateManager.updateSelectPos(-1, -1); 这句有问题 如drag框选鼠标超出表格范围 这里就直接情况是不对的\n return false;\n }\n\n deelTableSelectAll() {\n this.table.stateManager.updateSelectPos(-1, -1, false, false, true);\n }\n\n dealMenuSelect(eventArgsSet: SceneEvent) {\n // do nothing\n }\n\n checkColumnResize(eventArgsSet: SceneEvent, update?: boolean): boolean {\n // return false;\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n const resizeCol = this.table.scenegraph.getResizeColAt(\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n eventArgs.targetCell\n );\n if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {\n // this.table.stateManager.updateResizeCol(resizeCol.col, eventArgsSet.abstractPos.x, first);\n // this._col = resizeCol.col;\n if (update) {\n this.table.stateManager.startResizeCol(\n resizeCol.col,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n resizeCol.rightFrozen\n );\n }\n return true;\n }\n }\n\n return false;\n }\n\n dealColumnResize(xInTable: number, yInTable: number) {\n this.table.stateManager.updateResizeCol(xInTable, yInTable);\n }\n\n chechColumnMover(eventArgsSet: SceneEvent): boolean {\n // return false;\n const { eventArgs } = eventArgsSet;\n\n if (\n eventArgs &&\n this.table.isHeader(eventArgs.col, eventArgs.row) &&\n checkCellInSelect(eventArgs.col, eventArgs.row, this.table.stateManager.select.ranges) &&\n // this.table.stateManager.select.cellPosStart.col === eventArgs.col &&\n // this.table.stateManager.select.cellPosStart.row === eventArgs.row &&\n this.table._canDragHeaderPosition(eventArgs.col, eventArgs.row)\n ) {\n this.table.stateManager.startMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\n );\n return true;\n }\n\n return false;\n }\n\n dealColumnMover(eventArgsSet: SceneEvent) {\n const { eventArgs } = eventArgsSet;\n if (isValid(eventArgs.col) && isValid(eventArgs.row)) {\n this.table.stateManager.updateMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\n );\n }\n }\n\n startColumnResize(eventArgsSet: SceneEvent) {\n // do nothing\n }\n\n dealIconClick(e: FederatedPointerEvent, eventArgsSet: SceneEvent): boolean {\n const { eventArgs } = eventArgsSet;\n // if (!eventArgs) {\n // return false;\n // }\n\n const { target, event, col, row } = eventArgs || {\n target: e.target,\n event: e,\n col: -1,\n row: -1\n };\n const icon = target as unknown as Icon;\n\n if (icon.role && icon.role.startsWith('icon-')) {\n this.table.fireListeners(TABLE_EVENT_TYPE.ICON_CLICK, {\n name: icon.name,\n // 默认位置:icon中部正下方\n x: (icon.globalAABBBounds.x1 + icon.globalAABBBounds.x2) / 2,\n y: icon.globalAABBBounds.y2,\n col,\n row,\n funcType: icon.attribute.funcType,\n icon,\n event\n });\n\n return true;\n } else if (target instanceof RichText) {\n const icon = target.pickIcon(event.global);\n if (icon) {\n this.table.fireListeners(TABLE_EVENT_TYPE.ICON_CLICK, {\n name: icon.attribute.id,\n // 默认位置:icon中部正下方\n x: icon.globalX + icon.globalAABBBounds.width() / 2,\n y: icon.globalY + icon.AABBBounds.height(),\n col,\n row,\n funcType: (icon.attribute as any).funcType,\n icon: icon as unknown as Icon,\n event\n });\n return true;\n }\n }\n\n return false;\n }\n /** TODO 其他的事件并么有做remove */\n release() {\n this.gesture.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["// import { FederatedPointerEvent } from '@src/vrender';\nimport type { FederatedPointerEvent, Gesture } from './../vrender';\nimport { RichText } from './../vrender';\nimport type { MousePointerCellEvent } from '../ts-types';\nimport { IconFuncTypeEnum } from '../ts-types';\nimport type { StateManager } from '../state/state';\nimport type { Group } from '../scenegraph/graphic/group';\nimport { TABLE_EVENT_TYPE } from '../core/TABLE_EVENT_TYPE';\nimport type { Icon } from '../scenegraph/graphic/icon';\nimport { checkCellInSelect } from '../state/common/check-in-select';\nimport { bindMediaClick } from './media-click';\nimport { bindDrillEvent, checkHaveDrill, drillClick } from './drill';\nimport { bindSparklineHoverEvent } from './sparkline-event';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { checkHaveTextStick, handleTextStick } from '../scenegraph/stick-text';\nimport { bindGesture, bindTableGroupListener } from './listener/table-group';\nimport { bindScrollBarListener } from './listener/scroll-bar';\nimport { bindContainerDomListener } from './listener/container-dom';\nimport { bindTouchListener } from './listener/touch';\nimport { getCellEventArgsSet, type SceneEvent } from './util';\nimport { bindAxisClickEvent } from './pivot-chart/axis-click';\nimport { bindAxisHoverEvent } from './pivot-chart/axis-hover';\nimport type { PivotTable } from '../PivotTable';\nimport { Env } from '../tools/env';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport class EventManager {\n table: BaseTableAPI;\n // _col: number;\n // _resizing: boolean = false;\n // /** 为了能够判断canvas mousedown 事件 以阻止事件冒泡 */\n // isPointerDownOnTable: boolean = false;\n isTouchdown: boolean; // touch scrolling mode on\n touchMovePoints: {\n x: number;\n y: number;\n timestamp: number;\n }[]; // touch points record in touch scrolling mode\n touchSetTimeout: any; // touch start timeout, use to distinguish touch scrolling mode and default touch event\n touchEnd: boolean; // is touch event end when default touch event listener response\n touchMove: boolean; // is touch listener working, use to disable document touch scrolling function\n gesture: Gesture;\n handleTextStickBindId: number;\n\n //鼠标事件记录。 PointerMove敏感度太高了 记录下上一个鼠标位置 在接收到PointerMove事件时做判断 是否到到触发框选或者移动表头操作的标准,防止误触\n LastPointerXY: { x: number; y: number };\n LastBodyPointerXY: { x: number; y: number };\n isDown = false;\n isDraging = false;\n\n globalEventListeners: { name: string; env: 'document' | 'body' | 'window'; callback: (e?: any) => void }[] = [];\n\n constructor(table: BaseTableAPI) {\n this.table = table;\n if (Env.mode === 'node') {\n return;\n }\n this.bindOuterEvent();\n setTimeout(() => {\n this.bindSelfEvent();\n }, 0);\n }\n\n // 绑定DOM事件\n bindOuterEvent() {\n bindTableGroupListener(this);\n bindContainerDomListener(this);\n bindScrollBarListener(this);\n bindTouchListener(this);\n bindGesture(this);\n }\n updateEventBinder() {\n setTimeout(() => {\n // 处理textStick 是否绑定SCROLL的判断\n if (checkHaveTextStick(this.table) && !this.handleTextStickBindId) {\n this.handleTextStickBindId = this.table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n handleTextStick(this.table);\n });\n } else if (!checkHaveTextStick(this.table) && this.handleTextStickBindId) {\n this.table.off(this.handleTextStickBindId);\n this.handleTextStickBindId = undefined;\n }\n }, 0);\n }\n bindSelfEvent() {\n if (this.table.isReleased) {\n return;\n }\n\n const stateManager: StateManager = this.table.stateManager;\n\n // 图标点击\n this.table.on(TABLE_EVENT_TYPE.ICON_CLICK, iconInfo => {\n const { col, row, x, y, funcType, icon, event } = iconInfo;\n // 下拉菜单按钮点击\n if (funcType === IconFuncTypeEnum.dropDown) {\n stateManager.triggerDropDownMenu(col, row, x, y, event);\n } else if (funcType === IconFuncTypeEnum.sort) {\n stateManager.triggerSort(col, row, icon, event);\n } else if (funcType === IconFuncTypeEnum.frozen) {\n stateManager.triggerFreeze(col, row, icon);\n } else if (funcType === IconFuncTypeEnum.drillDown) {\n drillClick(this.table);\n } else if (funcType === IconFuncTypeEnum.collapse || funcType === IconFuncTypeEnum.expand) {\n this.table.stateManager.updateSelectPos(-1, -1);\n this.table.toggleHierarchyState(col, row);\n }\n });\n\n // 下拉菜单内容点击\n this.table.on(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLICK, () => {\n stateManager.hideMenu();\n });\n\n // 处理textStick\n if (checkHaveTextStick(this.table)) {\n this.handleTextStickBindId = this.table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n handleTextStick(this.table);\n });\n }\n\n // link/image/video点击\n bindMediaClick(this.table);\n\n // 双击自动列宽\n this.table.on(TABLE_EVENT_TYPE.DBLCLICK_CELL, (e: MousePointerCellEvent) => {\n if (e.federatedEvent) {\n const eventArgsSet = getCellEventArgsSet(e.federatedEvent as any);\n const resizeCol = this.table.scenegraph.getResizeColAt(\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n eventArgsSet.eventArgs?.targetCell\n );\n if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {\n this.table.scenegraph.updateAutoColWidth(resizeCol.col);\n\n // if (this.table.isPivotChart()) {\n this.table.scenegraph.updateChartSize(resizeCol.col);\n // }\n const state = this.table.stateManager;\n // update frozen shadowline component\n if (\n state.columnResize.col < state.table.frozenColCount &&\n !state.table.isPivotTable() &&\n !(state.table as ListTable).transpose\n ) {\n state.table.scenegraph.component.setFrozenColumnShadow(\n state.table.frozenColCount - 1,\n state.columnResize.isRightFrozen\n );\n }\n }\n }\n });\n\n // drill icon\n if (this.table.isPivotTable() && checkHaveDrill(this.table as PivotTable)) {\n bindDrillEvent(this.table);\n }\n\n // chart hover\n bindSparklineHoverEvent(this.table);\n\n // axis click\n bindAxisClickEvent(this.table);\n\n // chart axis event\n bindAxisHoverEvent(this.table);\n }\n\n dealTableHover(eventArgsSet?: SceneEvent) {\n if (!eventArgsSet) {\n this.table.stateManager.updateHoverPos(-1, -1);\n return;\n }\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n this.table.stateManager.updateHoverPos(eventArgs.col, eventArgs.row);\n } else {\n this.table.stateManager.updateHoverPos(-1, -1);\n }\n }\n\n dealIconHover(eventArgsSet: SceneEvent) {\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n this.table.stateManager.updateHoverIcon(\n eventArgs.col,\n eventArgs.row,\n eventArgs.target,\n eventArgs.targetCell,\n eventArgs.event\n );\n } else {\n this.table.stateManager.updateHoverIcon(-1, -1, undefined, undefined);\n }\n }\n\n dealMenuHover(eventArgsSet: SceneEvent) {\n // menu自身状态实现\n }\n\n dealTableSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean {\n if (!eventArgsSet) {\n this.table.stateManager.updateSelectPos(-1, -1);\n return false;\n }\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n if (eventArgs.target.name === 'checkbox') {\n return false;\n }\n\n // // 注意:如果启用下面这句代码逻辑 则在点击选中单元格时失效hover效果。但是会导致chart实例的click事件失效,所以先特殊处理这个逻辑\n // if (\n // !this.table.isPivotChart() &&\n // eventArgsSet?.eventArgs?.target.type !== 'chart' &&\n // eventArgs.event.pointerType !== 'touch'\n // ) {\n // this.table.stateManager.updateHoverPos(-1, -1);\n // }\n const define = this.table.getBodyColumnDefine(eventArgs.col, eventArgs.row);\n if (\n this.table.isHeader(eventArgs.col, eventArgs.row) &&\n (define?.disableHeaderSelect || this.table.stateManager.select?.disableHeader)\n ) {\n if (!isSelectMoving) {\n // 如果是点击点表头 取消单元格选中状态\n this.table.stateManager.updateSelectPos(-1, -1);\n }\n return false;\n } else if (!this.table.isHeader(eventArgs.col, eventArgs.row) && define?.disableSelect) {\n if (!isSelectMoving) {\n this.table.stateManager.updateSelectPos(-1, -1);\n }\n return false;\n }\n\n if (\n this.table.isPivotChart() &&\n (eventArgsSet?.eventArgs?.target.name === 'axis-label' || eventArgsSet?.eventArgs?.target.type === 'chart')\n ) {\n // 点击透视图坐标轴标签或图标内容,执行图表状态更新,不触发Select\n this.table.stateManager.updateSelectPos(-1, -1);\n return false;\n }\n this.table.stateManager.updateSelectPos(\n eventArgs.col,\n eventArgs.row,\n eventArgs.event.shiftKey,\n eventArgs.event.ctrlKey || eventArgs.event.metaKey\n );\n return true;\n }\n // this.table.stateManager.updateSelectPos(-1, -1); 这句有问题 如drag框选鼠标超出表格范围 这里就直接情况是不对的\n return false;\n }\n\n deelTableSelectAll() {\n this.table.stateManager.updateSelectPos(-1, -1, false, false, true);\n }\n\n dealMenuSelect(eventArgsSet: SceneEvent) {\n // do nothing\n }\n\n checkColumnResize(eventArgsSet: SceneEvent, update?: boolean): boolean {\n // return false;\n const { eventArgs } = eventArgsSet;\n\n if (eventArgs) {\n const resizeCol = this.table.scenegraph.getResizeColAt(\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n eventArgs.targetCell\n );\n if (this.table._canResizeColumn(resizeCol.col, resizeCol.row) && resizeCol.col >= 0) {\n // this.table.stateManager.updateResizeCol(resizeCol.col, eventArgsSet.abstractPos.x, first);\n // this._col = resizeCol.col;\n if (update) {\n this.table.stateManager.startResizeCol(\n resizeCol.col,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y,\n resizeCol.rightFrozen\n );\n }\n return true;\n }\n }\n\n return false;\n }\n\n dealColumnResize(xInTable: number, yInTable: number) {\n this.table.stateManager.updateResizeCol(xInTable, yInTable);\n }\n\n chechColumnMover(eventArgsSet: SceneEvent): boolean {\n // return false;\n const { eventArgs } = eventArgsSet;\n\n if (\n eventArgs &&\n this.table.isHeader(eventArgs.col, eventArgs.row) &&\n checkCellInSelect(eventArgs.col, eventArgs.row, this.table.stateManager.select.ranges) &&\n // this.table.stateManager.select.cellPosStart.col === eventArgs.col &&\n // this.table.stateManager.select.cellPosStart.row === eventArgs.row &&\n this.table._canDragHeaderPosition(eventArgs.col, eventArgs.row)\n ) {\n this.table.stateManager.startMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\n );\n return true;\n }\n\n return false;\n }\n\n dealColumnMover(eventArgsSet: SceneEvent) {\n const { eventArgs } = eventArgsSet;\n if (isValid(eventArgs.col) && isValid(eventArgs.row)) {\n this.table.stateManager.updateMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\n );\n }\n }\n\n startColumnResize(eventArgsSet: SceneEvent) {\n // do nothing\n }\n\n dealIconClick(e: FederatedPointerEvent, eventArgsSet: SceneEvent): boolean {\n const { eventArgs } = eventArgsSet;\n // if (!eventArgs) {\n // return false;\n // }\n\n const { target, event, col, row } = eventArgs || {\n target: e.target,\n event: e,\n col: -1,\n row: -1\n };\n const icon = target as unknown as Icon;\n\n if (icon.role && icon.role.startsWith('icon-')) {\n this.table.fireListeners(TABLE_EVENT_TYPE.ICON_CLICK, {\n name: icon.name,\n // 默认位置:icon中部正下方\n x: (icon.globalAABBBounds.x1 + icon.globalAABBBounds.x2) / 2,\n y: icon.globalAABBBounds.y2,\n col,\n row,\n funcType: icon.attribute.funcType,\n icon,\n event\n });\n\n return true;\n } else if (target instanceof RichText) {\n const icon = target.pickIcon(event.global);\n if (icon) {\n this.table.fireListeners(TABLE_EVENT_TYPE.ICON_CLICK, {\n name: icon.attribute.id,\n // 默认位置:icon中部正下方\n x: icon.globalX + icon.globalAABBBounds.width() / 2,\n y: icon.globalY + icon.AABBBounds.height(),\n col,\n row,\n funcType: (icon.attribute as any).funcType,\n icon: icon as unknown as Icon,\n event\n });\n return true;\n }\n }\n\n return false;\n }\n /** TODO 其他的事件并么有做remove */\n release() {\n this.gesture.release();\n\n // remove global event listerner\n this.globalEventListeners.forEach(item => {\n if (item.env === 'document') {\n document.removeEventListener(item.name, item.callback);\n } else if (item.env === 'body') {\n document.body.removeEventListener(item.name, item.callback);\n } else if (item.env === 'window') {\n window.removeEventListener(item.name, item.callback);\n }\n });\n this.globalEventListeners = [];\n }\n}\n"]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.bindContainerDomListener = void 0;
6
6
 
7
- const vutils_1 = require("@visactor/vutils"), TABLE_EVENT_TYPE_1 = require("../../core/TABLE_EVENT_TYPE"), scroll_1 = require("../scroll");
7
+ const vutils_1 = require("@visactor/vutils"), ts_types_1 = require("../../ts-types"), TABLE_EVENT_TYPE_1 = require("../../core/TABLE_EVENT_TYPE"), scroll_1 = require("../scroll");
8
8
 
9
9
  function bindContainerDomListener(eventManager) {
10
10
  const table = eventManager.table, stateManager = table.stateManager, handler = table.internalProps.handler;
@@ -83,28 +83,31 @@ function bindContainerDomListener(eventManager) {
83
83
  if ((null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.pasteValueToCell) && table.changeCellValues) {
84
84
  if (null === (_b = table.editorManager) || void 0 === _b ? void 0 : _b.editingEditor) return;
85
85
  if ((null === (_c = table.stateManager.select.ranges) || void 0 === _c ? void 0 : _c.length) > 0) {
86
- const ranges = table.stateManager.select.ranges, col = Math.min(ranges[0].start.col, ranges[0].end.col), row = Math.min(ranges[0].start.row, ranges[0].end.row);
86
+ const ranges = table.stateManager.select.ranges, col = Math.min(ranges[0].start.col, ranges[0].end.col), row = Math.min(ranges[0].start.row, ranges[0].end.row), values = [];
87
87
  navigator.clipboard.read().then((clipboardItems => {
88
88
  for (const item of clipboardItems) item.types.includes("text/html") ? item.getType("text/html").then((blob => {
89
89
  blob.text().then((pastedData => {
90
- const values = [];
91
90
  if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {
92
91
  const regex = /<tr[^>]*>(.*?)<\/tr>/gs, matches = Array.from(pastedData.matchAll(regex));
93
92
  for (const match of matches) {
94
93
  const rowContent = match[1], cellRegex = /<td[^>]*>(.*?)<\/td>/gs, rowValues = Array.from(rowContent.matchAll(cellRegex)).map((cellMatch => cellMatch[1].replace(/(<(?!br)([^>]+)>)/gi, "").replace(/<br(\s*|\/)>[\r\n]?/gim, "\n").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&#9;/gi, "\t").replace(/&nbsp;/g, " ")));
95
94
  values.push(rowValues);
96
95
  }
97
- } else {
98
- pastedData.split("\n").forEach((function(rowCells, rowIndex) {
99
- const cells = rowCells.split("\t"), rowValues = [];
100
- values.push(rowValues), cells.forEach((function(cell, cellIndex) {
101
- cellIndex === cells.length - 1 && (cell = cell.trim()), rowValues.push(cell);
96
+ table.changeCellValues(col, row, values, !0);
97
+ } else navigator.clipboard.read().then((clipboardItems => {
98
+ for (const item of clipboardItems) item.types.includes("text/plain") && item.getType("text/plain").then((blob => {
99
+ blob.text().then((pastedData => {
100
+ pastedData.split("\n").forEach((function(rowCells, rowIndex) {
101
+ const cells = rowCells.split("\t"), rowValues = [];
102
+ values.push(rowValues), cells.forEach((function(cell, cellIndex) {
103
+ cellIndex === cells.length - 1 && (cell = cell.trim()), rowValues.push(cell);
104
+ }));
105
+ })), table.changeCellValues(col, row, values, !0);
102
106
  }));
103
107
  }));
104
- }
105
- table.changeCellValues(col, row, values, !0);
108
+ }));
106
109
  }));
107
- })) : 1 === item.types.length && "text/plain" === item.types[0] && item.getType("text/plain").then((blob => {
110
+ })) : 1 === item.types.length && "text/plain" === item.types[0] && (item.getType("text/plain").then((blob => {
108
111
  blob.text().then((pastedData => {
109
112
  const rows = pastedData.replace(/\r(?!\n)/g, "\r\n").split("\r\n"), values = [];
110
113
  rows.length > 1 && "" === rows[rows.length - 1] && rows.pop(), rows.forEach((function(rowCells, rowIndex) {
@@ -113,9 +116,9 @@ function bindContainerDomListener(eventManager) {
113
116
  cell.includes("\n") && (cell = cell.replace(/^"(.*)"$/, "$1").replace(/["]*/g, (match => new Array(Math.floor(match.length / 2)).fill('"').join("")))),
114
117
  rowValues.push(cell);
115
118
  }));
116
- })), table.changeCellValues(col, row, values, !0);
119
+ }));
117
120
  }));
118
- }));
121
+ })), table.changeCellValues(col, row, values, !0));
119
122
  }));
120
123
  }
121
124
  }
@@ -125,6 +128,43 @@ function bindContainerDomListener(eventManager) {
125
128
  })), handler.on(table.getContainer(), "resize", (e => {
126
129
  0 === e.width && 0 === e.height || table.resize();
127
130
  }));
131
+ const globalPointerdownCallback = e => {
132
+ table.eventManager.LastBodyPointerXY = {
133
+ x: e.x,
134
+ y: e.y
135
+ }, table.eventManager.isDown = !0;
136
+ };
137
+ eventManager.globalEventListeners.push({
138
+ name: "pointerdown",
139
+ env: "body",
140
+ callback: globalPointerdownCallback
141
+ }), document.body.addEventListener("pointerdown", globalPointerdownCallback);
142
+ const globalPointerupCallback = e => {
143
+ table.eventManager.LastBodyPointerXY = null, table.eventManager.isDown = !1, table.eventManager.isDraging = !1;
144
+ };
145
+ eventManager.globalEventListeners.push({
146
+ name: "pointerup",
147
+ env: "document",
148
+ callback: globalPointerupCallback
149
+ }), document.addEventListener("pointerup", globalPointerupCallback);
150
+ const globalPointermoveCallback = e => {
151
+ var _a, _b, _c, _d;
152
+ if (table.eventManager.isDown && table.eventManager.LastBodyPointerXY) {
153
+ const lastX = null !== (_b = null === (_a = table.eventManager.LastBodyPointerXY) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : e.x, lastY = null !== (_d = null === (_c = table.eventManager.LastBodyPointerXY) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : e.y;
154
+ (Math.abs(lastX - e.x) > 1 || Math.abs(lastY - e.y) > 1) && (table.eventManager.isDraging = !0);
155
+ }
156
+ const {x: x, y: y} = table._getMouseAbstractPoint(e, !1);
157
+ stateManager.interactionState !== ts_types_1.InteractionState.scrolling && stateManager.interactionState === ts_types_1.InteractionState.grabing && stateManager.isResizeCol() && (eventManager.dealColumnResize(x, y),
158
+ table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN, {
159
+ col: table.stateManager.columnResize.col,
160
+ colWidth: table.getColWidth(table.stateManager.columnResize.col)
161
+ }));
162
+ };
163
+ eventManager.globalEventListeners.push({
164
+ name: "pointermove",
165
+ env: "body",
166
+ callback: globalPointermoveCallback
167
+ }), document.body.addEventListener("pointermove", globalPointermoveCallback);
128
168
  }
129
169
 
130
170
  exports.bindContainerDomListener = bindContainerDomListener;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/listener/container-dom.ts"],"names":[],"mappings":"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","file":"container-dom.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { EventHandler } from '../EventHandler';\nimport type { KeydownEvent, ListTableAPI } from '../../ts-types';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { handleWhell } from '../scroll';\nimport { browser } from '../../tools/helper';\nimport type { EventManager } from '../event';\n\nexport function bindContainerDomListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const handler: EventHandler = table.internalProps.handler;\n\n // handler.on(table.getElement(), 'mousedown', (e: MouseEvent) => {\n // if (table.eventManager.isPointerDownOnTable) {\n // e.stopPropagation();\n // }\n // });\n\n handler.on(table.getElement(), 'blur', (e: MouseEvent) => {\n eventManager.dealTableHover();\n // eventManager.dealTableSelect();\n });\n\n handler.on(table.getElement(), 'wheel', (e: WheelEvent) => {\n handleWhell(e, stateManager);\n });\n\n // 监听键盘事件\n handler.on(table.getElement(), 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n if (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n e.preventDefault();\n //全选\n eventManager.deelTableSelectAll();\n }\n } else if (\n stateManager.select.cellPos.col >= 0 &&\n stateManager.select.cellPos.row >= 0 &&\n (e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight')\n ) {\n if (\n !(table.options.keyboardOptions?.moveEditCellOnArrowKeys ?? false) &&\n (table as ListTableAPI).editorManager.editingEditor\n ) {\n // 编辑单元格状态下 如果没有开启方向键切换cell 则退出 。方向键可以在编辑input内移动光标\n return;\n }\n e.preventDefault();\n // 如果不加这句话 外部监听了键盘事件 会影响表格本身的移动格子功能,例如自定义日历编辑器的日期选择pickday.js\n //可能会引起其他问题 例如自定义实现了日历编辑器 里面切换日期左右键可能失效,这个时候建议监听VTable实例的事件keydown\n e.stopPropagation();\n let targetCol;\n let targetRow;\n\n // 处理向上箭头键\n if (e.key === 'ArrowUp') {\n targetCol = stateManager.select.cellPos.col;\n targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row - 1));\n } else if (e.key === 'ArrowDown') {\n // 处理向下箭头键\n targetCol = stateManager.select.cellPos.col;\n targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row + 1));\n } else if (e.key === 'ArrowLeft') {\n // 处理向左箭头键\n targetRow = stateManager.select.cellPos.row;\n targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col - 1));\n } else if (e.key === 'ArrowRight') {\n // 处理向右箭头键\n targetRow = stateManager.select.cellPos.row;\n targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col + 1));\n }\n table.selectCell(targetCol, targetRow);\n if (\n (table.options.keyboardOptions?.moveEditCellOnArrowKeys ?? false) &&\n (table as ListTableAPI).editorManager.editingEditor\n ) {\n // 开启了方向键切换编辑单元格 并且当前已经在编辑状态下 切换到下一个需先退出再进入下个单元格的编辑\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n if ((table as ListTableAPI).getEditor(targetCol, targetRow)) {\n (table as ListTableAPI).editorManager.startEditCell(targetCol, targetRow);\n }\n }\n } else if (e.key === 'Escape') {\n (table as ListTableAPI).editorManager.cancelEdit();\n } else if (e.key === 'Enter') {\n // 如果按enter键 可以结束当前的编辑 或开启编辑选中的单元格(仅限单选)\n if ((table as ListTableAPI).editorManager.editingEditor) {\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n } else {\n if (\n (table.options.keyboardOptions?.editCellOnEnter ?? true) &&\n (table.stateManager.select.ranges?.length ?? 0) === 1\n ) {\n // 如果开启按enter键进入编辑的配置 且当前有选中的单元格 则进入编辑\n const startCol = table.stateManager.select.ranges[0].start.col;\n const startRow = table.stateManager.select.ranges[0].start.row;\n const endCol = table.stateManager.select.ranges[0].end.col;\n const endRow = table.stateManager.select.ranges[0].end.row;\n if (startCol === endCol && startRow === endRow) {\n if ((table as ListTableAPI).getEditor(startCol, startRow)) {\n (table as ListTableAPI).editorManager.startEditCell(startCol, startRow);\n }\n }\n }\n }\n } else if (e.key === 'Tab') {\n if (table.options.keyboardOptions?.moveFocusCellOnTab ?? true) {\n e.preventDefault();\n if (stateManager.select.cellPos.col >= 0 && stateManager.select.cellPos.row >= 0) {\n let targetCol;\n let targetRow;\n if (stateManager.select.cellPos.col === table.colCount - 1) {\n targetRow = Math.min(table.rowCount - 1, stateManager.select.cellPos.row + 1);\n targetCol = table.rowHeaderLevelCount;\n } else if (stateManager.select.cellPos.row === table.rowCount - 1) {\n targetRow = table.rowCount - 1;\n targetCol = table.rowHeaderLevelCount;\n } else {\n targetRow = stateManager.select.cellPos.row;\n targetCol = stateManager.select.cellPos.col + 1;\n }\n table.selectCell(targetCol, targetRow);\n if ((table as ListTableAPI).editorManager.editingEditor) {\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n if ((table as ListTableAPI).getEditor(targetCol, targetRow)) {\n (table as ListTableAPI).editorManager.startEditCell(targetCol, targetRow);\n }\n }\n }\n }\n }\n\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {\n const cellsEvent: KeydownEvent = {\n keyCode: e.keyCode ?? e.which,\n code: e.code,\n event: e,\n // cells: table.getSelectedCellInfos(),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);\n }\n });\n\n handler.on(table.getElement(), 'copy', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.copySelected) {\n const data = table.getCopyValue();\n if (isValid(data)) {\n e.preventDefault();\n // if (browser.IE) {\n // (window as any).clipboardData.setData('Text', data); // IE\n // } else {\n // (e as any).clipboardData.setData('text/plain', data); // Chrome, Firefox\n // }\n\n // 将复制的数据转为html格式\n const setDataToHTML = (data: string) => {\n const result = ['<table>'];\n const META_HEAD = [\n '<meta name=\"author\" content=\"Visactor\"/>', // 后面可用于vtable之间的快速复制粘贴\n //white-space:normal,连续的空白字符会被合并为一个空格,并且文本会根据容器的宽度自动换行显示\n //mso-data-placement:same-cell,excel专用, 在同一个单元格中显示所有数据,而不是默认情况下将数据分散到多个单元格中显示\n '<style type=\"text/css\">td{white-space:normal}br{mso-data-placement:same-cell}</style>'\n ].join('');\n const rows = data.split('\\r\\n'); // 将数据拆分为行\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: string[] = [];\n if (rowIndex === 0) {\n result.push('<tbody>');\n }\n cells.forEach(function (cell: string, cellIndex: number) {\n // 单元格数据处理\n const parsedCellData = !cell\n ? ''\n : cell\n .toString()\n .replace(/&/g, '&amp;') // replace & with &amp; to prevent XSS attacks\n .replace(/'/g, '&#39;') // replace ' with &#39; to prevent XSS attacks\n .replace(/</g, '&lt;') // replace < with &lt; to prevent XSS attacks\n .replace(/>/g, '&gt;') // replace > with &gt; to prevent XSS attacks\n .replace(/\\n/g, '<br>') // replace \\n with <br> to prevent XSS attacks\n .replace(/(<br(\\s*|\\/)>(\\r\\n|\\n)?|\\r\\n|\\n)/g, '<br>\\r\\n') // replace <br> with <br>\\r\\n to prevent XSS attacks\n .replace(/\\x20{2,}/gi, (substring: string | any[]) => {\n // excel连续空格序列化\n return `<span style=\"mso-spacerun: yes\">${'&nbsp;'.repeat(substring.length - 1)} </span>`;\n }) // replace 2 or more spaces with &nbsp; to prevent XSS attacks\n .replace(/\\t/gi, '&#9;'); // replace \\t with &#9; to prevent XSS attacks\n\n rowValues.push(`<td>${parsedCellData}</td>`);\n });\n result.push('<tr>', ...rowValues, '</tr>');\n\n if (rowIndex === rowCells.length - 1) {\n result.push('</tbody>');\n }\n });\n result.push('</table>');\n return [META_HEAD, result.join('')].join('');\n };\n const dataHTML = setDataToHTML(data);\n navigator.clipboard.write([\n new ClipboardItem({\n 'text/html': new Blob([dataHTML], { type: 'text/html' }),\n 'text/plain': new Blob([data], { type: 'text/plain' })\n })\n ]);\n table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {\n cellRange: table.stateManager.select.ranges,\n copyData: data\n });\n }\n }\n });\n handler.on(table.getElement(), 'paste', (e: any) => {\n if (table.keyboardOptions?.pasteValueToCell && (table as ListTableAPI).changeCellValues) {\n if ((table as ListTableAPI).editorManager?.editingEditor) {\n return;\n }\n if (table.stateManager.select.ranges?.length > 0) {\n const ranges = table.stateManager.select.ranges;\n const col = Math.min(ranges[0].start.col, ranges[0].end.col);\n const row = Math.min(ranges[0].start.row, ranges[0].end.row);\n // 读取剪切板数据\n navigator.clipboard.read().then(clipboardItems => {\n for (const item of clipboardItems) {\n // 优先处理 html 格式数据\n if (item.types.includes('text/html')) {\n item.getType('text/html').then(blob => {\n blob.text().then(pastedData => {\n const values: (string | number)[][] = [];\n // 解析html数据\n if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {\n const regex = /<tr[^>]*>(.*?)<\\/tr>/gs; // 匹配<tr>标签及其内容\n // const matches = pastedData.matchAll(regex);\n const matches = Array.from(pastedData.matchAll(regex));\n for (const match of matches) {\n const rowContent = match[1]; // 获取<tr>标签中的内容\n const cellRegex = /<td[^>]*>(.*?)<\\/td>/gs; // 匹配<td>标签及其内容\n const cellMatches: RegExpMatchArray[] = Array.from(rowContent.matchAll(cellRegex)); // 获取<td>标签中的内容\n const rowValues = cellMatches.map(cellMatch => {\n return (\n cellMatch[1]\n .replace(/(<(?!br)([^>]+)>)/gi, '') // 除了 <br> 标签以外的所有 HTML 标签都替换为空字符串\n .replace(/<br(\\s*|\\/)>[\\r\\n]?/gim, '\\n') // 将字符串中的 <br> 标签以及其后可能存在的空白字符和斜杠都替换为换行符 \\n\n // .replace(/<br>/g, '\\n') // 替换<br>标签为换行符\n // .replace(/<(?:.|\\n)*?>/gm, '') // 去除HTML标签\n //将字符串中的 HTML 实体字符转换为原始的字符\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&#9;/gi, '\\t')\n .replace(/&nbsp;/g, ' ')\n );\n // .trim(); // 去除首尾空格\n });\n values.push(rowValues);\n }\n } else {\n const rows = pastedData.split('\\n'); // 将数据拆分为行\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: (string | number)[] = [];\n values.push(rowValues);\n cells.forEach(function (cell: string, cellIndex: number) {\n // 去掉单元格数据末尾的 '\\r'\n if (cellIndex === cells.length - 1) {\n cell = cell.trim();\n }\n rowValues.push(cell);\n });\n });\n }\n (table as ListTableAPI).changeCellValues(col, row, values, true);\n });\n });\n } else if (item.types.length === 1 && item.types[0] === 'text/plain') {\n // 如果只有 'text/plain'\n item.getType('text/plain').then(blob => {\n blob.text().then(pastedData => {\n const rows = pastedData.replace(/\\r(?!\\n)/g, '\\r\\n').split('\\r\\n'); // 文本中的换行符格式进行统一处理\n const values: (string | number)[][] = [];\n if (rows.length > 1 && rows[rows.length - 1] === '') {\n rows.pop();\n }\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: (string | number)[] = [];\n values.push(rowValues);\n cells.forEach(function (cell: string, cellIndex: number) {\n if (cell.includes('\\n')) {\n cell = cell\n .replace(/^\"(.*)\"$/, '$1') // 将字符串开头和结尾的双引号去除,并保留双引号内的内容\n .replace(/[\"]*/g, match => new Array(Math.floor(match.length / 2)).fill('\"').join('')); // 连续出现的双引号替换为一半数量的双引号\n }\n rowValues.push(cell);\n });\n });\n\n (table as ListTableAPI).changeCellValues(col, row, values, true);\n });\n });\n } else {\n // 其他情况\n }\n }\n });\n }\n }\n });\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n if (table.eventOptions?.preventDefaultContextMenu !== false) {\n e.preventDefault();\n }\n });\n\n handler.on(table.getContainer(), 'resize', e => {\n if (e.width === 0 && e.height === 0) {\n // 临时绕行解决因为display设置为none产生的问题\n return;\n }\n table.resize();\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/event/listener/container-dom.ts"],"names":[],"mappings":"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","file":"container-dom.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { EventHandler } from '../EventHandler';\nimport { InteractionState, type KeydownEvent, type ListTableAPI } from '../../ts-types';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { handleWhell } from '../scroll';\nimport { browser } from '../../tools/helper';\nimport type { EventManager } from '../event';\nimport { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function bindContainerDomListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const handler: EventHandler = table.internalProps.handler;\n\n // handler.on(table.getElement(), 'mousedown', (e: MouseEvent) => {\n // if (table.eventManager.isPointerDownOnTable) {\n // e.stopPropagation();\n // }\n // });\n\n handler.on(table.getElement(), 'blur', (e: MouseEvent) => {\n eventManager.dealTableHover();\n // eventManager.dealTableSelect();\n });\n\n handler.on(table.getElement(), 'wheel', (e: WheelEvent) => {\n handleWhell(e, stateManager);\n });\n\n // 监听键盘事件\n handler.on(table.getElement(), 'keydown', (e: KeyboardEvent) => {\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n if (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n e.preventDefault();\n //全选\n eventManager.deelTableSelectAll();\n }\n } else if (\n stateManager.select.cellPos.col >= 0 &&\n stateManager.select.cellPos.row >= 0 &&\n (e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight')\n ) {\n if (\n !(table.options.keyboardOptions?.moveEditCellOnArrowKeys ?? false) &&\n (table as ListTableAPI).editorManager.editingEditor\n ) {\n // 编辑单元格状态下 如果没有开启方向键切换cell 则退出 。方向键可以在编辑input内移动光标\n return;\n }\n e.preventDefault();\n // 如果不加这句话 外部监听了键盘事件 会影响表格本身的移动格子功能,例如自定义日历编辑器的日期选择pickday.js\n //可能会引起其他问题 例如自定义实现了日历编辑器 里面切换日期左右键可能失效,这个时候建议监听VTable实例的事件keydown\n e.stopPropagation();\n let targetCol;\n let targetRow;\n\n // 处理向上箭头键\n if (e.key === 'ArrowUp') {\n targetCol = stateManager.select.cellPos.col;\n targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row - 1));\n } else if (e.key === 'ArrowDown') {\n // 处理向下箭头键\n targetCol = stateManager.select.cellPos.col;\n targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row + 1));\n } else if (e.key === 'ArrowLeft') {\n // 处理向左箭头键\n targetRow = stateManager.select.cellPos.row;\n targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col - 1));\n } else if (e.key === 'ArrowRight') {\n // 处理向右箭头键\n targetRow = stateManager.select.cellPos.row;\n targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col + 1));\n }\n table.selectCell(targetCol, targetRow);\n if (\n (table.options.keyboardOptions?.moveEditCellOnArrowKeys ?? false) &&\n (table as ListTableAPI).editorManager.editingEditor\n ) {\n // 开启了方向键切换编辑单元格 并且当前已经在编辑状态下 切换到下一个需先退出再进入下个单元格的编辑\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n if ((table as ListTableAPI).getEditor(targetCol, targetRow)) {\n (table as ListTableAPI).editorManager.startEditCell(targetCol, targetRow);\n }\n }\n } else if (e.key === 'Escape') {\n (table as ListTableAPI).editorManager.cancelEdit();\n } else if (e.key === 'Enter') {\n // 如果按enter键 可以结束当前的编辑 或开启编辑选中的单元格(仅限单选)\n if ((table as ListTableAPI).editorManager.editingEditor) {\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n } else {\n if (\n (table.options.keyboardOptions?.editCellOnEnter ?? true) &&\n (table.stateManager.select.ranges?.length ?? 0) === 1\n ) {\n // 如果开启按enter键进入编辑的配置 且当前有选中的单元格 则进入编辑\n const startCol = table.stateManager.select.ranges[0].start.col;\n const startRow = table.stateManager.select.ranges[0].start.row;\n const endCol = table.stateManager.select.ranges[0].end.col;\n const endRow = table.stateManager.select.ranges[0].end.row;\n if (startCol === endCol && startRow === endRow) {\n if ((table as ListTableAPI).getEditor(startCol, startRow)) {\n (table as ListTableAPI).editorManager.startEditCell(startCol, startRow);\n }\n }\n }\n }\n } else if (e.key === 'Tab') {\n if (table.options.keyboardOptions?.moveFocusCellOnTab ?? true) {\n e.preventDefault();\n if (stateManager.select.cellPos.col >= 0 && stateManager.select.cellPos.row >= 0) {\n let targetCol;\n let targetRow;\n if (stateManager.select.cellPos.col === table.colCount - 1) {\n targetRow = Math.min(table.rowCount - 1, stateManager.select.cellPos.row + 1);\n targetCol = table.rowHeaderLevelCount;\n } else if (stateManager.select.cellPos.row === table.rowCount - 1) {\n targetRow = table.rowCount - 1;\n targetCol = table.rowHeaderLevelCount;\n } else {\n targetRow = stateManager.select.cellPos.row;\n targetCol = stateManager.select.cellPos.col + 1;\n }\n table.selectCell(targetCol, targetRow);\n if ((table as ListTableAPI).editorManager.editingEditor) {\n (table as ListTableAPI).editorManager.completeEdit();\n table.getElement().focus();\n if ((table as ListTableAPI).getEditor(targetCol, targetRow)) {\n (table as ListTableAPI).editorManager.startEditCell(targetCol, targetRow);\n }\n }\n }\n }\n }\n\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {\n const cellsEvent: KeydownEvent = {\n keyCode: e.keyCode ?? e.which,\n code: e.code,\n event: e,\n // cells: table.getSelectedCellInfos(),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);\n }\n });\n\n handler.on(table.getElement(), 'copy', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.copySelected) {\n const data = table.getCopyValue();\n if (isValid(data)) {\n e.preventDefault();\n // if (browser.IE) {\n // (window as any).clipboardData.setData('Text', data); // IE\n // } else {\n // (e as any).clipboardData.setData('text/plain', data); // Chrome, Firefox\n // }\n\n // 将复制的数据转为html格式\n const setDataToHTML = (data: string) => {\n const result = ['<table>'];\n const META_HEAD = [\n '<meta name=\"author\" content=\"Visactor\"/>', // 后面可用于vtable之间的快速复制粘贴\n //white-space:normal,连续的空白字符会被合并为一个空格,并且文本会根据容器的宽度自动换行显示\n //mso-data-placement:same-cell,excel专用, 在同一个单元格中显示所有数据,而不是默认情况下将数据分散到多个单元格中显示\n '<style type=\"text/css\">td{white-space:normal}br{mso-data-placement:same-cell}</style>'\n ].join('');\n const rows = data.split('\\r\\n'); // 将数据拆分为行\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: string[] = [];\n if (rowIndex === 0) {\n result.push('<tbody>');\n }\n cells.forEach(function (cell: string, cellIndex: number) {\n // 单元格数据处理\n const parsedCellData = !cell\n ? ''\n : cell\n .toString()\n .replace(/&/g, '&amp;') // replace & with &amp; to prevent XSS attacks\n .replace(/'/g, '&#39;') // replace ' with &#39; to prevent XSS attacks\n .replace(/</g, '&lt;') // replace < with &lt; to prevent XSS attacks\n .replace(/>/g, '&gt;') // replace > with &gt; to prevent XSS attacks\n .replace(/\\n/g, '<br>') // replace \\n with <br> to prevent XSS attacks\n .replace(/(<br(\\s*|\\/)>(\\r\\n|\\n)?|\\r\\n|\\n)/g, '<br>\\r\\n') // replace <br> with <br>\\r\\n to prevent XSS attacks\n .replace(/\\x20{2,}/gi, (substring: string | any[]) => {\n // excel连续空格序列化\n return `<span style=\"mso-spacerun: yes\">${'&nbsp;'.repeat(substring.length - 1)} </span>`;\n }) // replace 2 or more spaces with &nbsp; to prevent XSS attacks\n .replace(/\\t/gi, '&#9;'); // replace \\t with &#9; to prevent XSS attacks\n\n rowValues.push(`<td>${parsedCellData}</td>`);\n });\n result.push('<tr>', ...rowValues, '</tr>');\n\n if (rowIndex === rowCells.length - 1) {\n result.push('</tbody>');\n }\n });\n result.push('</table>');\n return [META_HEAD, result.join('')].join('');\n };\n const dataHTML = setDataToHTML(data);\n navigator.clipboard.write([\n new ClipboardItem({\n 'text/html': new Blob([dataHTML], { type: 'text/html' }),\n 'text/plain': new Blob([data], { type: 'text/plain' })\n })\n ]);\n table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {\n cellRange: table.stateManager.select.ranges,\n copyData: data\n });\n }\n }\n });\n handler.on(table.getElement(), 'paste', (e: any) => {\n if (table.keyboardOptions?.pasteValueToCell && (table as ListTableAPI).changeCellValues) {\n if ((table as ListTableAPI).editorManager?.editingEditor) {\n return;\n }\n if (table.stateManager.select.ranges?.length > 0) {\n const ranges = table.stateManager.select.ranges;\n const col = Math.min(ranges[0].start.col, ranges[0].end.col);\n const row = Math.min(ranges[0].start.row, ranges[0].end.row);\n const values: (string | number)[][] = [];\n\n // 读取剪切板数据\n navigator.clipboard.read().then(clipboardItems => {\n for (const item of clipboardItems) {\n // 优先处理 html 格式数据\n if (item.types.includes('text/html')) {\n item.getType('text/html').then(blob => {\n blob.text().then(pastedData => {\n // 解析html数据\n if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {\n const regex = /<tr[^>]*>(.*?)<\\/tr>/gs; // 匹配<tr>标签及其内容\n // const matches = pastedData.matchAll(regex);\n const matches = Array.from(pastedData.matchAll(regex));\n for (const match of matches) {\n const rowContent = match[1]; // 获取<tr>标签中的内容\n const cellRegex = /<td[^>]*>(.*?)<\\/td>/gs; // 匹配<td>标签及其内容\n const cellMatches: RegExpMatchArray[] = Array.from(rowContent.matchAll(cellRegex)); // 获取<td>标签中的内容\n const rowValues = cellMatches.map(cellMatch => {\n return (\n cellMatch[1]\n .replace(/(<(?!br)([^>]+)>)/gi, '') // 除了 <br> 标签以外的所有 HTML 标签都替换为空字符串\n .replace(/<br(\\s*|\\/)>[\\r\\n]?/gim, '\\n') // 将字符串中的 <br> 标签以及其后可能存在的空白字符和斜杠都替换为换行符 \\n\n // .replace(/<br>/g, '\\n') // 替换<br>标签为换行符\n // .replace(/<(?:.|\\n)*?>/gm, '') // 去除HTML标签\n //将字符串中的 HTML 实体字符转换为原始的字符\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&#9;/gi, '\\t')\n .replace(/&nbsp;/g, ' ')\n );\n // .trim(); // 去除首尾空格\n });\n values.push(rowValues);\n }\n (table as ListTableAPI).changeCellValues(col, row, values, true);\n } else {\n navigator.clipboard.read().then(clipboardItems => {\n for (const item of clipboardItems) {\n if (item.types.includes('text/plain')) {\n item.getType('text/plain').then(blob => {\n blob.text().then(pastedData => {\n const rows = pastedData.split('\\n'); // 将数据拆分为行\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: (string | number)[] = [];\n values.push(rowValues);\n cells.forEach(function (cell: string, cellIndex: number) {\n // 去掉单元格数据末尾的 '\\r'\n if (cellIndex === cells.length - 1) {\n cell = cell.trim();\n }\n rowValues.push(cell);\n });\n });\n (table as ListTableAPI).changeCellValues(col, row, values, true);\n });\n });\n }\n }\n });\n }\n });\n });\n } else if (item.types.length === 1 && item.types[0] === 'text/plain') {\n // 如果只有 'text/plain'\n item.getType('text/plain').then(blob => {\n blob.text().then(pastedData => {\n const rows = pastedData.replace(/\\r(?!\\n)/g, '\\r\\n').split('\\r\\n'); // 文本中的换行符格式进行统一处理\n const values: (string | number)[][] = [];\n if (rows.length > 1 && rows[rows.length - 1] === '') {\n rows.pop();\n }\n rows.forEach(function (rowCells: any, rowIndex: number) {\n const cells = rowCells.split('\\t'); // 将行数据拆分为单元格\n const rowValues: (string | number)[] = [];\n values.push(rowValues);\n cells.forEach(function (cell: string, cellIndex: number) {\n if (cell.includes('\\n')) {\n cell = cell\n .replace(/^\"(.*)\"$/, '$1') // 将字符串开头和结尾的双引号去除,并保留双引号内的内容\n .replace(/[\"]*/g, match => new Array(Math.floor(match.length / 2)).fill('\"').join('')); // 连续出现的双引号替换为一半数量的双引号\n }\n rowValues.push(cell);\n });\n });\n });\n });\n (table as ListTableAPI).changeCellValues(col, row, values, true);\n } else {\n // 其他情况\n }\n }\n });\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n if (table.eventOptions?.preventDefaultContextMenu !== false) {\n e.preventDefault();\n }\n });\n\n handler.on(table.getContainer(), 'resize', e => {\n if (e.width === 0 && e.height === 0) {\n // 临时绕行解决因为display设置为none产生的问题\n return;\n }\n table.resize();\n });\n\n // 有被阻止冒泡的场景 就触发不到这里的事件了 所以这个LastBodyPointerXY变量的赋值在scrollbar的down事件也进行了处理\n const globalPointerdownCallback = (e: MouseEvent) => {\n // console.log('body pointerdown');\n table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };\n table.eventManager.isDown = true;\n };\n eventManager.globalEventListeners.push({\n name: 'pointerdown',\n env: 'body',\n callback: globalPointerdownCallback\n });\n document.body.addEventListener('pointerdown', globalPointerdownCallback);\n\n const globalPointerupCallback = (e: MouseEvent) => {\n table.eventManager.LastBodyPointerXY = null;\n // console.log('body pointerup', table.eventManager.isDown, table.eventManager.isDraging);\n table.eventManager.isDown = false;\n table.eventManager.isDraging = false;\n };\n eventManager.globalEventListeners.push({\n name: 'pointerup',\n env: 'document',\n callback: globalPointerupCallback\n });\n document.addEventListener('pointerup', globalPointerupCallback);\n\n const globalPointermoveCallback = (e: MouseEvent) => {\n if (table.eventManager.isDown && table.eventManager.LastBodyPointerXY) {\n const lastX = table.eventManager.LastBodyPointerXY?.x ?? e.x;\n const lastY = table.eventManager.LastBodyPointerXY?.y ?? e.y;\n if (Math.abs(lastX - e.x) > 1 || Math.abs(lastY - e.y) > 1) {\n table.eventManager.isDraging = true;\n }\n }\n // 注释掉。因为: 这里pointermove太敏感了 点击快的时候 可能动了1px这里也会执行到 就影响到下面选中不触发的问题。下面pointermove就有这段逻辑,这里先去掉\n // if (eventManager.touchSetTimeout) {\n // clearTimeout(eventManager.touchSetTimeout);\n // console.log('eventManager.touchSetTimeout', eventManager.touchSetTimeout);\n // eventManager.touchSetTimeout = undefined;\n // }\n // const eventArgsSet = getCellEventArgsSet(e);\n const { x, y } = table._getMouseAbstractPoint(e, false);\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n if (stateManager.interactionState === InteractionState.grabing) {\n if (stateManager.isResizeCol()) {\n eventManager.dealColumnResize(x, y);\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN)) {\n table.fireListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN, {\n col: table.stateManager.columnResize.col,\n colWidth: table.getColWidth(table.stateManager.columnResize.col)\n });\n }\n }\n }\n };\n eventManager.globalEventListeners.push({\n name: 'pointermove',\n env: 'body',\n callback: globalPointermoveCallback\n });\n document.body.addEventListener('pointermove', globalPointermoveCallback);\n}\n"]}
@@ -8,26 +8,7 @@ const vrender_1 = require("./../../vrender"), ts_types_1 = require("../../ts-typ
8
8
 
9
9
  function bindTableGroupListener(eventManager) {
10
10
  const table = eventManager.table, stateManager = table.stateManager;
11
- document.body.addEventListener("pointerdown", (e => {
12
- table.eventManager.LastBodyPointerXY = {
13
- x: e.x,
14
- y: e.y
15
- }, table.eventManager.isDown = !0;
16
- })), document.addEventListener("pointerup", (e => {
17
- table.eventManager.LastBodyPointerXY = null, table.eventManager.isDown = !1, table.eventManager.isDraging = !1;
18
- })), document.body.addEventListener("pointermove", (e => {
19
- var _a, _b, _c, _d;
20
- if (table.eventManager.isDown && table.eventManager.LastBodyPointerXY) {
21
- const lastX = null !== (_b = null === (_a = table.eventManager.LastBodyPointerXY) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : e.x, lastY = null !== (_d = null === (_c = table.eventManager.LastBodyPointerXY) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : e.y;
22
- (Math.abs(lastX - e.x) > 1 || Math.abs(lastY - e.y) > 1) && (table.eventManager.isDraging = !0);
23
- }
24
- const {x: x, y: y} = table._getMouseAbstractPoint(e, !1);
25
- stateManager.interactionState !== ts_types_1.InteractionState.scrolling && stateManager.interactionState === ts_types_1.InteractionState.grabing && stateManager.isResizeCol() && (eventManager.dealColumnResize(x, y),
26
- table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN, {
27
- col: table.stateManager.columnResize.col,
28
- colWidth: table.getColWidth(table.stateManager.columnResize.col)
29
- }));
30
- })), table.scenegraph.tableGroup.addEventListener("pointermove", (e => {
11
+ table.scenegraph.tableGroup.addEventListener("pointermove", (e => {
31
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
32
13
  const lastX = null !== (_b = null === (_a = table.eventManager.LastPointerXY) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : e.x, lastY = null !== (_d = null === (_c = table.eventManager.LastPointerXY) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : e.y;
33
14
  table.eventManager.LastPointerXY = {