@visactor/vtable 0.16.4-alpha.2 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +13 -2
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +1 -0
  5. package/cjs/PivotChart.js +20 -2
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +1 -0
  8. package/cjs/PivotTable.js +20 -2
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/core/BaseTable.d.ts +1 -0
  11. package/cjs/core/BaseTable.js +39 -41
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/tableHelper.d.ts +1 -1
  14. package/cjs/core/tableHelper.js +6 -5
  15. package/cjs/core/tableHelper.js.map +1 -1
  16. package/cjs/dataset/dataset.js +3 -8
  17. package/cjs/dataset/dataset.js.map +1 -1
  18. package/cjs/edit/edit-manager.js +0 -3
  19. package/cjs/edit/edit-manager.js.map +1 -1
  20. package/cjs/event/EventHandler.d.ts +1 -0
  21. package/cjs/event/EventHandler.js +1 -1
  22. package/cjs/event/EventHandler.js.map +1 -1
  23. package/cjs/event/event.d.ts +10 -0
  24. package/cjs/event/event.js +2 -1
  25. package/cjs/event/event.js.map +1 -1
  26. package/cjs/event/listener/container-dom.js +30 -4
  27. package/cjs/event/listener/container-dom.js.map +1 -1
  28. package/cjs/event/listener/scroll-bar.js +19 -5
  29. package/cjs/event/listener/scroll-bar.js.map +1 -1
  30. package/cjs/event/listener/table-group.js +45 -34
  31. package/cjs/event/listener/table-group.js.map +1 -1
  32. package/cjs/index.d.ts +1 -1
  33. package/cjs/index.js +1 -1
  34. package/cjs/index.js.map +1 -1
  35. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  36. package/cjs/layout/pivot-header-layout.js +35 -18
  37. package/cjs/layout/pivot-header-layout.js.map +1 -1
  38. package/cjs/layout/pivot-layout-helper.d.ts +1 -1
  39. package/cjs/layout/pivot-layout-helper.js +12 -5
  40. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  41. package/cjs/layout/simple-header-layout.js +9 -9
  42. package/cjs/layout/simple-header-layout.js.map +1 -1
  43. package/cjs/scenegraph/component/cell-content.d.ts +2 -3
  44. package/cjs/scenegraph/component/cell-content.js +3 -3
  45. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  46. package/cjs/scenegraph/component/custom.js +10 -10
  47. package/cjs/scenegraph/component/custom.js.map +1 -1
  48. package/cjs/scenegraph/component/table-component.js.map +1 -1
  49. package/cjs/scenegraph/graphic/text.d.ts +1 -1
  50. package/cjs/scenegraph/graphic/text.js +1 -1
  51. package/cjs/scenegraph/graphic/text.js.map +1 -1
  52. package/cjs/scenegraph/group-creater/cell-helper.js +2 -1
  53. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  54. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +3 -2
  55. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  56. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +1 -1
  57. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  58. package/cjs/scenegraph/icon/icon-update.d.ts +2 -0
  59. package/cjs/scenegraph/icon/icon-update.js +16 -2
  60. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  61. package/cjs/scenegraph/layout/compute-col-width.d.ts +1 -0
  62. package/cjs/scenegraph/layout/compute-col-width.js +12 -8
  63. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  64. package/cjs/scenegraph/layout/compute-row-height.js +16 -8
  65. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  66. package/cjs/scenegraph/layout/update-col.js +6 -5
  67. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  68. package/cjs/scenegraph/layout/update-row.js +7 -6
  69. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  70. package/cjs/scenegraph/scenegraph.d.ts +2 -0
  71. package/cjs/scenegraph/scenegraph.js +43 -59
  72. package/cjs/scenegraph/scenegraph.js.map +1 -1
  73. package/cjs/scenegraph/select/update-select-border.js +12 -6
  74. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  75. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  76. package/cjs/scenegraph/utils/text-icon-layout.js +13 -10
  77. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  78. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  79. package/cjs/state/hover/is-cell-hover.d.ts +1 -1
  80. package/cjs/state/hover/is-cell-hover.js +5 -4
  81. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  82. package/cjs/state/select/update-position.js +65 -65
  83. package/cjs/state/select/update-position.js.map +1 -1
  84. package/cjs/state/spark-line/index.js +9 -5
  85. package/cjs/state/spark-line/index.js.map +1 -1
  86. package/cjs/state/state.js +2 -4
  87. package/cjs/state/state.js.map +1 -1
  88. package/cjs/themes/DARK.js +1 -1
  89. package/cjs/themes/DARK.js.map +1 -1
  90. package/cjs/themes/component.d.ts +27 -0
  91. package/cjs/themes/component.js +29 -2
  92. package/cjs/themes/component.js.map +1 -1
  93. package/cjs/themes/theme.d.ts +2 -0
  94. package/cjs/themes/theme.js +9 -1
  95. package/cjs/themes/theme.js.map +1 -1
  96. package/cjs/tools/NumberMap.d.ts +4 -0
  97. package/cjs/tools/NumberMap.js +16 -0
  98. package/cjs/tools/NumberMap.js.map +1 -1
  99. package/cjs/ts-types/base-table.d.ts +3 -0
  100. package/cjs/ts-types/base-table.js.map +1 -1
  101. package/cjs/ts-types/customElement.d.ts +1 -1
  102. package/cjs/ts-types/customElement.js.map +1 -1
  103. package/cjs/ts-types/table-engine.d.ts +3 -0
  104. package/cjs/ts-types/table-engine.js.map +1 -1
  105. package/cjs/ts-types/theme.d.ts +2 -0
  106. package/cjs/ts-types/theme.js.map +1 -1
  107. package/dist/vtable.js +21833 -23055
  108. package/dist/vtable.min.js +2 -2
  109. package/es/ListTable.d.ts +1 -0
  110. package/es/ListTable.js +12 -2
  111. package/es/ListTable.js.map +1 -1
  112. package/es/PivotChart.d.ts +1 -0
  113. package/es/PivotChart.js +20 -2
  114. package/es/PivotChart.js.map +1 -1
  115. package/es/PivotTable.d.ts +1 -0
  116. package/es/PivotTable.js +20 -2
  117. package/es/PivotTable.js.map +1 -1
  118. package/es/core/BaseTable.d.ts +1 -0
  119. package/es/core/BaseTable.js +41 -44
  120. package/es/core/BaseTable.js.map +1 -1
  121. package/es/core/tableHelper.d.ts +1 -1
  122. package/es/core/tableHelper.js +6 -5
  123. package/es/core/tableHelper.js.map +1 -1
  124. package/es/dataset/dataset.js +3 -8
  125. package/es/dataset/dataset.js.map +1 -1
  126. package/es/edit/edit-manager.js +0 -3
  127. package/es/edit/edit-manager.js.map +1 -1
  128. package/es/event/EventHandler.d.ts +1 -0
  129. package/es/event/EventHandler.js +1 -1
  130. package/es/event/EventHandler.js.map +1 -1
  131. package/es/event/event.d.ts +10 -0
  132. package/es/event/event.js +2 -1
  133. package/es/event/event.js.map +1 -1
  134. package/es/event/listener/container-dom.js +30 -4
  135. package/es/event/listener/container-dom.js.map +1 -1
  136. package/es/event/listener/scroll-bar.js +20 -4
  137. package/es/event/listener/scroll-bar.js.map +1 -1
  138. package/es/event/listener/table-group.js +45 -34
  139. package/es/event/listener/table-group.js.map +1 -1
  140. package/es/index.d.ts +1 -1
  141. package/es/index.js +1 -1
  142. package/es/index.js.map +1 -1
  143. package/es/layout/pivot-header-layout.d.ts +1 -0
  144. package/es/layout/pivot-header-layout.js +35 -18
  145. package/es/layout/pivot-header-layout.js.map +1 -1
  146. package/es/layout/pivot-layout-helper.d.ts +1 -1
  147. package/es/layout/pivot-layout-helper.js +12 -5
  148. package/es/layout/pivot-layout-helper.js.map +1 -1
  149. package/es/layout/simple-header-layout.js +9 -9
  150. package/es/layout/simple-header-layout.js.map +1 -1
  151. package/es/scenegraph/component/cell-content.d.ts +2 -3
  152. package/es/scenegraph/component/cell-content.js +3 -5
  153. package/es/scenegraph/component/cell-content.js.map +1 -1
  154. package/es/scenegraph/component/custom.js +10 -12
  155. package/es/scenegraph/component/custom.js.map +1 -1
  156. package/es/scenegraph/component/table-component.js.map +1 -1
  157. package/es/scenegraph/graphic/text.d.ts +1 -1
  158. package/es/scenegraph/graphic/text.js +1 -1
  159. package/es/scenegraph/graphic/text.js.map +1 -1
  160. package/es/scenegraph/group-creater/cell-helper.js +2 -1
  161. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  162. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +3 -2
  163. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  164. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +2 -2
  165. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  166. package/es/scenegraph/icon/icon-update.d.ts +2 -0
  167. package/es/scenegraph/icon/icon-update.js +13 -0
  168. package/es/scenegraph/icon/icon-update.js.map +1 -1
  169. package/es/scenegraph/layout/compute-col-width.d.ts +1 -0
  170. package/es/scenegraph/layout/compute-col-width.js +9 -6
  171. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  172. package/es/scenegraph/layout/compute-row-height.js +17 -11
  173. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  174. package/es/scenegraph/layout/update-col.js +6 -5
  175. package/es/scenegraph/layout/update-col.js.map +1 -1
  176. package/es/scenegraph/layout/update-row.js +7 -6
  177. package/es/scenegraph/layout/update-row.js.map +1 -1
  178. package/es/scenegraph/scenegraph.d.ts +2 -0
  179. package/es/scenegraph/scenegraph.js +45 -61
  180. package/es/scenegraph/scenegraph.js.map +1 -1
  181. package/es/scenegraph/select/update-select-border.js +12 -6
  182. package/es/scenegraph/select/update-select-border.js.map +1 -1
  183. package/es/scenegraph/stick-text/index.js.map +1 -1
  184. package/es/scenegraph/utils/text-icon-layout.js +13 -12
  185. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  186. package/es/scenegraph/utils/text-pos.js.map +1 -1
  187. package/es/state/hover/is-cell-hover.d.ts +1 -1
  188. package/es/state/hover/is-cell-hover.js +5 -4
  189. package/es/state/hover/is-cell-hover.js.map +1 -1
  190. package/es/state/select/update-position.js +65 -65
  191. package/es/state/select/update-position.js.map +1 -1
  192. package/es/state/spark-line/index.js +9 -5
  193. package/es/state/spark-line/index.js.map +1 -1
  194. package/es/state/state.js +2 -4
  195. package/es/state/state.js.map +1 -1
  196. package/es/themes/DARK.js +1 -1
  197. package/es/themes/DARK.js.map +1 -1
  198. package/es/themes/component.d.ts +27 -0
  199. package/es/themes/component.js +28 -0
  200. package/es/themes/component.js.map +1 -1
  201. package/es/themes/theme.d.ts +2 -0
  202. package/es/themes/theme.js +9 -2
  203. package/es/themes/theme.js.map +1 -1
  204. package/es/tools/NumberMap.d.ts +4 -0
  205. package/es/tools/NumberMap.js +16 -0
  206. package/es/tools/NumberMap.js.map +1 -1
  207. package/es/ts-types/base-table.d.ts +3 -0
  208. package/es/ts-types/base-table.js.map +1 -1
  209. package/es/ts-types/customElement.d.ts +1 -1
  210. package/es/ts-types/customElement.js.map +1 -1
  211. package/es/ts-types/table-engine.d.ts +3 -0
  212. package/es/ts-types/table-engine.js.map +1 -1
  213. package/es/ts-types/theme.d.ts +2 -0
  214. package/es/ts-types/theme.js.map +1 -1
  215. package/package.json +7 -7
  216. package/cjs/scenegraph/component/menu.d.ts +0 -41
  217. package/es/scenegraph/component/menu.d.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/EventHandler.ts"],"names":[],"mappings":"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","file":"EventHandler.js","sourcesContent":["import type { AnyFunction, EventListenerId } from '../ts-types';\nimport type { EventTarget as CustomEventTarget } from './EventTarget';\nimport { debounce } from '../tools/debounce';\nimport { Env } from '../tools/env';\n\nlet idCount = 1;\ntype EventHandlerTarget = EventTarget | CustomEventTarget;\ntype Listener = AnyFunction;\ntype EventListenerObject = {\n target: EventHandlerTarget;\n type: string;\n listener: Listener;\n options: any[];\n};\n\nexport type ResizeObserverCallBack = ({ width, height }: { width: number; height: number }) => void;\n\nexport class ResizeObserver {\n resizeTime = 100;\n element: HTMLElement;\n cb: ResizeObserverCallBack;\n observer?: MutationObserver;\n lastSize: {\n width: number;\n height: number;\n } = {\n width: 0,\n height: 0\n };\n callBackDebounce: () => void;\n\n constructor(element: HTMLElement, cb: ResizeObserverCallBack, resizeTime?: number) {\n this.element = element;\n this.cb = cb;\n this.lastSize = this.getSize();\n if (resizeTime) {\n this.resizeTime = Math.max(resizeTime, 16);\n }\n\n this.callBackDebounce = debounce(this.callBack, this.resizeTime);\n //TODO: 这个地方的 addEventListener resize 应该更改到下面的else逻辑中,兼容ResizeObserver不存在的情况\n window?.addEventListener('resize', this.onResize);\n // 优先使用 ResizeObserver\n if ('ResizeObserver' in window) {\n // @ts-ignore\n const ResizeObserverWindow: any = window.ResizeObserver;\n this.observer = new ResizeObserverWindow(this.mutationResize);\n this.observer?.observe(this.element);\n } else if ('MutationObserver' in window) {\n this.observer = new MutationObserver(this.mutationResize);\n this.observer.observe(this.element, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n }\n\n mutationResize = () => {\n this.onResize();\n };\n\n disConnect() {\n window.removeEventListener('resize', this.onResize);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n callBack = () => {\n const newSize = this.getSize();\n if (newSize.width === this.lastSize.width && newSize.height === this.lastSize.height) {\n return;\n }\n this.lastSize = newSize;\n this.cb && this.cb({ ...this.lastSize });\n };\n\n setSize(size: { width: number; height: number }) {\n this.lastSize = size;\n }\n\n private onResize = () => {\n if (this.checkSize()) {\n this.callBackDebounce();\n }\n };\n\n private checkSize() {\n const newSize = this.getSize();\n if (newSize.width === this.lastSize.width && newSize.height === this.lastSize.height) {\n return false;\n }\n return true;\n }\n\n getSize() {\n if (!this.element) {\n return {\n ...this.lastSize\n };\n }\n return {\n width: Math.floor(this.element.clientWidth),\n height: Math.floor(this.element.clientHeight)\n };\n }\n}\n\nexport class EventHandler {\n private listeners: {\n [key: string]: EventListenerObject;\n } = {};\n\n private reseizeListeners: {\n [key: string]: ResizeObserver;\n } = {};\n\n on(\n target: HTMLElement | Window | EventHandlerTarget,\n type: string,\n listener: Listener,\n ...options: any[]\n ): EventListenerId {\n if (Env.mode === 'node') {\n return -1;\n }\n const id = idCount++;\n if (target?.addEventListener) {\n if (type !== 'resize' || (target as Window) === window) {\n (target as EventTarget)?.addEventListener(type, listener, ...(options as []));\n } else {\n const resizeObserver = new ResizeObserver(target as HTMLElement, listener);\n this.reseizeListeners[id] = resizeObserver;\n }\n }\n const obj = { target, type, listener, options };\n this.listeners[id] = obj;\n return id;\n }\n once(\n target: EventHandlerTarget,\n type: string,\n listener: Listener,\n ...options: (boolean | AddEventListenerOptions)[]\n ): EventListenerId {\n if (Env.mode === 'node') {\n return -1;\n }\n const id = this.on(\n target,\n type,\n (...args) => {\n this.off(id);\n listener(...args);\n },\n ...options\n );\n return id;\n }\n off(id: EventListenerId | null | undefined): void {\n if (Env.mode === 'node') {\n return;\n }\n if (id == null) {\n return;\n }\n const obj = this.listeners?.[id];\n if (!obj) {\n return;\n }\n delete this.listeners[id];\n if (obj.target.removeEventListener) {\n obj.target.removeEventListener(obj.type, obj.listener, ...(obj.options as []));\n }\n }\n fire(target: EventTarget, type: string, ...args: any[]): void {\n if (Env.mode === 'node') {\n return;\n }\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target === target && listener.type === type) {\n listener.listener.call(listener.target, ...args);\n }\n }\n }\n hasListener(target: EventTarget, type: string): boolean {\n if (Env.mode === 'node') {\n return false;\n }\n let result = false;\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target === target && listener.type === type) {\n result = true;\n }\n }\n\n return result;\n }\n clear(): void {\n if (Env.mode === 'node') {\n return;\n }\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target.removeEventListener) {\n listener.target.removeEventListener(listener.type, listener.listener, ...(listener.options as []));\n }\n }\n\n for (const key in this.reseizeListeners) {\n const resizeObserver: ResizeObserver = this.reseizeListeners[key];\n resizeObserver?.disConnect();\n }\n\n this.listeners = {};\n }\n release(): void {\n if (Env.mode === 'node') {\n return;\n }\n this.clear();\n (this as any).listeners = {};\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/EventHandler.ts"],"names":[],"mappings":"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","file":"EventHandler.js","sourcesContent":["import type { AnyFunction, EventListenerId } from '../ts-types';\nimport type { EventTarget as CustomEventTarget } from './EventTarget';\nimport { debounce } from '../tools/debounce';\nimport { Env } from '../tools/env';\n\nlet idCount = 1;\ntype EventHandlerTarget = EventTarget | CustomEventTarget;\ntype Listener = AnyFunction;\ntype EventListenerObject = {\n target: EventHandlerTarget;\n type: string;\n listener: Listener;\n options: any[];\n};\n\nexport type ResizeObserverCallBack = ({ width, height }: { width: number; height: number }) => void;\n\nexport class ResizeObserver {\n resizeTime = 100;\n element: HTMLElement;\n cb: ResizeObserverCallBack;\n observer?: MutationObserver;\n lastSize: {\n width: number;\n height: number;\n } = {\n width: 0,\n height: 0\n };\n callBackDebounce: () => void;\n\n constructor(element: HTMLElement, cb: ResizeObserverCallBack, resizeTime?: number) {\n this.element = element;\n this.cb = cb;\n this.lastSize = this.getSize();\n if (resizeTime) {\n this.resizeTime = Math.max(resizeTime, 16);\n }\n\n this.callBackDebounce = debounce(this.callBack, this.resizeTime);\n //TODO: 这个地方的 addEventListener resize 应该更改到下面的else逻辑中,兼容ResizeObserver不存在的情况\n window?.addEventListener('resize', this.onResize);\n // 优先使用 ResizeObserver\n if ('ResizeObserver' in window) {\n // @ts-ignore\n const ResizeObserverWindow: any = window.ResizeObserver;\n this.observer = new ResizeObserverWindow(this.mutationResize);\n this.observer?.observe(this.element);\n } else if ('MutationObserver' in window) {\n this.observer = new MutationObserver(this.mutationResize);\n this.observer.observe(this.element, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n }\n\n mutationResize = () => {\n this.onResize();\n };\n\n disConnect() {\n window.removeEventListener('resize', this.onResize);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n callBack = () => {\n const newSize = this.getSize();\n if (newSize.width === this.lastSize.width && newSize.height === this.lastSize.height) {\n return;\n }\n this.lastSize = newSize;\n this.cb && this.cb({ ...this.lastSize });\n };\n\n setSize(size: { width: number; height: number }) {\n this.lastSize = size;\n }\n\n private onResize = () => {\n if (this.checkSize()) {\n this.callBackDebounce();\n }\n };\n\n private checkSize() {\n const newSize = this.getSize();\n if (newSize.width === this.lastSize.width && newSize.height === this.lastSize.height) {\n return false;\n }\n return true;\n }\n\n getSize() {\n if (!this.element) {\n return {\n ...this.lastSize\n };\n }\n return {\n width: Math.floor(this.element.clientWidth),\n height: Math.floor(this.element.clientHeight)\n };\n }\n}\n\nexport class EventHandler {\n resizeTime?: number;\n\n private listeners: {\n [key: string]: EventListenerObject;\n } = {};\n\n private reseizeListeners: {\n [key: string]: ResizeObserver;\n } = {};\n\n on(\n target: HTMLElement | Window | EventHandlerTarget,\n type: string,\n listener: Listener,\n ...options: any[]\n ): EventListenerId {\n if (Env.mode === 'node') {\n return -1;\n }\n const id = idCount++;\n if (target?.addEventListener) {\n if (type !== 'resize' || (target as Window) === window) {\n (target as EventTarget)?.addEventListener(type, listener, ...(options as []));\n } else {\n const resizeObserver = new ResizeObserver(target as HTMLElement, listener, this.resizeTime);\n this.reseizeListeners[id] = resizeObserver;\n }\n }\n const obj = { target, type, listener, options };\n this.listeners[id] = obj;\n return id;\n }\n once(\n target: EventHandlerTarget,\n type: string,\n listener: Listener,\n ...options: (boolean | AddEventListenerOptions)[]\n ): EventListenerId {\n if (Env.mode === 'node') {\n return -1;\n }\n const id = this.on(\n target,\n type,\n (...args) => {\n this.off(id);\n listener(...args);\n },\n ...options\n );\n return id;\n }\n off(id: EventListenerId | null | undefined): void {\n if (Env.mode === 'node') {\n return;\n }\n if (id == null) {\n return;\n }\n const obj = this.listeners?.[id];\n if (!obj) {\n return;\n }\n delete this.listeners[id];\n if (obj.target.removeEventListener) {\n obj.target.removeEventListener(obj.type, obj.listener, ...(obj.options as []));\n }\n }\n fire(target: EventTarget, type: string, ...args: any[]): void {\n if (Env.mode === 'node') {\n return;\n }\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target === target && listener.type === type) {\n listener.listener.call(listener.target, ...args);\n }\n }\n }\n hasListener(target: EventTarget, type: string): boolean {\n if (Env.mode === 'node') {\n return false;\n }\n let result = false;\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target === target && listener.type === type) {\n result = true;\n }\n }\n\n return result;\n }\n clear(): void {\n if (Env.mode === 'node') {\n return;\n }\n for (const key in this.listeners) {\n const listener = this.listeners[key];\n if (listener.target.removeEventListener) {\n listener.target.removeEventListener(listener.type, listener.listener, ...(listener.options as []));\n }\n }\n\n for (const key in this.reseizeListeners) {\n const resizeObserver: ResizeObserver = this.reseizeListeners[key];\n resizeObserver?.disConnect();\n }\n\n this.listeners = {};\n }\n release(): void {\n if (Env.mode === 'node') {\n return;\n }\n this.clear();\n (this as any).listeners = {};\n }\n}\n"]}
@@ -14,6 +14,16 @@ export declare class EventManager {
14
14
  touchMove: boolean;
15
15
  gesture: Gesture;
16
16
  handleTextStickBindId: number;
17
+ LastPointerXY: {
18
+ x: number;
19
+ y: number;
20
+ };
21
+ LastBodyPointerXY: {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ isDown: boolean;
26
+ isDraging: boolean;
17
27
  constructor(table: BaseTableAPI);
18
28
  bindOuterEvent(): void;
19
29
  updateEventBinder(): void;
package/es/event/event.js CHANGED
@@ -32,7 +32,8 @@ import { Env } from "../tools/env";
32
32
 
33
33
  export class EventManager {
34
34
  constructor(table) {
35
- this.table = table, "node" !== Env.mode && (this.bindOuterEvent(), setTimeout((() => {
35
+ this.isDown = !1, this.isDraging = !1, this.table = table, "node" !== Env.mode && (this.bindOuterEvent(),
36
+ setTimeout((() => {
36
37
  this.bindSelfEvent();
37
38
  }), 0));
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/event.ts"],"names":[],"mappings":"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","file":"event.js","sourcesContent":["// import { FederatedPointerEvent } from '@visactor/vrender';\nimport type { FederatedPointerEvent, Gesture } from '@visactor/vrender';\nimport { RichText } from '@visactor/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';\n\nexport class EventManager {\n table: BaseTableAPI;\n // _col: number;\n // _resizing: boolean = false;\n\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 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 } = iconInfo;\n // 下拉菜单按钮点击\n if (funcType === IconFuncTypeEnum.dropDown) {\n stateManager.triggerDropDownMenu(col, row, x, y);\n } else if (funcType === IconFuncTypeEnum.sort) {\n stateManager.triggerSort(col, row, icon);\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 }\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 this.table.stateManager.updateMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\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 });\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 });\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 '@visactor/vrender';\nimport type { FederatedPointerEvent, Gesture } from '@visactor/vrender';\nimport { RichText } from '@visactor/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';\n\nexport class EventManager {\n table: BaseTableAPI;\n // _col: number;\n // _resizing: boolean = false;\n\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 //鼠标事件记录\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 } = iconInfo;\n // 下拉菜单按钮点击\n if (funcType === IconFuncTypeEnum.dropDown) {\n stateManager.triggerDropDownMenu(col, row, x, y);\n } else if (funcType === IconFuncTypeEnum.sort) {\n stateManager.triggerSort(col, row, icon);\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 }\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 this.table.stateManager.updateMoveCol(\n eventArgs.col,\n eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\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 });\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 });\n return true;\n }\n }\n\n return false;\n }\n /** TODO 其他的事件并么有做remove */\n release() {\n this.gesture.release();\n }\n}\n"]}
@@ -13,11 +13,37 @@ export function bindContainerDomListener(eventManager) {
13
13
  })), handler.on(table.getElement(), "wheel", (e => {
14
14
  handleWhell(e, stateManager);
15
15
  })), handler.on(table.getElement(), "keydown", (e => {
16
- var _a, _b;
17
- if ((null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.selectAllOnCtrlA) && "a" === e.key && (e.ctrlKey || e.metaKey) && (e.preventDefault(),
18
- eventManager.deelTableSelectAll()), table.hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {
16
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
17
+ if ("a" === e.key && (e.ctrlKey || e.metaKey)) (null === (_a = table.keyboardOptions) || void 0 === _a ? void 0 : _a.selectAllOnCtrlA) && (e.preventDefault(),
18
+ eventManager.deelTableSelectAll()); else if (stateManager.select.cellPos.col >= 0 && stateManager.select.cellPos.row >= 0 && ("ArrowUp" === e.key || "ArrowDown" === e.key || "ArrowLeft" === e.key || "ArrowRight" === e.key)) {
19
+ if ((null === (_c = null === (_b = table.options.keyboardOptions) || void 0 === _b ? void 0 : _b.moveEditCellOnArrowKeys) || void 0 === _c || !_c) && table.editorManager.editingEditor) return;
20
+ let targetCol, targetRow;
21
+ e.preventDefault(), e.stopPropagation(), "ArrowUp" === e.key ? (targetCol = stateManager.select.cellPos.col,
22
+ targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row - 1))) : "ArrowDown" === e.key ? (targetCol = stateManager.select.cellPos.col,
23
+ targetRow = Math.min(table.rowCount - 1, Math.max(0, stateManager.select.cellPos.row + 1))) : "ArrowLeft" === e.key ? (targetRow = stateManager.select.cellPos.row,
24
+ targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col - 1))) : "ArrowRight" === e.key && (targetRow = stateManager.select.cellPos.row,
25
+ targetCol = Math.min(table.colCount - 1, Math.max(0, stateManager.select.cellPos.col + 1))),
26
+ table.selectCell(targetCol, targetRow), null !== (_e = null === (_d = table.options.keyboardOptions) || void 0 === _d ? void 0 : _d.moveEditCellOnArrowKeys) && void 0 !== _e && _e && table.editorManager.editingEditor && (table.editorManager.completeEdit(),
27
+ table.getElement().focus(), table.getEditor(targetCol, targetRow) && table.editorManager.startEditCell(targetCol, targetRow));
28
+ } else if ("Escape" === e.key) table.editorManager.editingEditor && (table.editorManager.editingEditor.exit(),
29
+ table.editorManager.editingEditor = null); else if ("Enter" === e.key) {
30
+ if (table.editorManager.editingEditor) table.editorManager.completeEdit(), table.getElement().focus(); else if ((null === (_g = null === (_f = table.options.keyboardOptions) || void 0 === _f ? void 0 : _f.editCellOnEnter) || void 0 === _g || _g) && 1 === (null !== (_j = null === (_h = table.stateManager.select.ranges) || void 0 === _h ? void 0 : _h.length) && void 0 !== _j ? _j : 0)) {
31
+ const startCol = table.stateManager.select.ranges[0].start.col, startRow = table.stateManager.select.ranges[0].start.row, endCol = table.stateManager.select.ranges[0].end.col, endRow = table.stateManager.select.ranges[0].end.row;
32
+ startCol === endCol && startRow === endRow && table.getEditor(startCol, startRow) && table.editorManager.startEditCell(startCol, startRow);
33
+ }
34
+ } else if ("Tab" === e.key && (null === (_l = null === (_k = table.options.keyboardOptions) || void 0 === _k ? void 0 : _k.moveFocusCellOnTab) || void 0 === _l || _l) && (e.preventDefault(),
35
+ stateManager.select.cellPos.col >= 0 && stateManager.select.cellPos.row >= 0)) {
36
+ let targetCol, targetRow;
37
+ stateManager.select.cellPos.col === table.colCount - 1 ? (targetRow = Math.min(table.rowCount - 1, stateManager.select.cellPos.row + 1),
38
+ targetCol = table.rowHeaderLevelCount) : stateManager.select.cellPos.row === table.rowCount - 1 ? (targetRow = table.rowCount - 1,
39
+ targetCol = table.rowHeaderLevelCount) : (targetRow = stateManager.select.cellPos.row,
40
+ targetCol = stateManager.select.cellPos.col + 1), table.selectCell(targetCol, targetRow),
41
+ table.editorManager.editingEditor && (table.editorManager.completeEdit(), table.getElement().focus()),
42
+ table.getEditor(targetCol, targetRow) && table.editorManager.startEditCell(targetCol, targetRow);
43
+ }
44
+ if (table.hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {
19
45
  const cellsEvent = {
20
- keyCode: null !== (_b = e.keyCode) && void 0 !== _b ? _b : e.which,
46
+ keyCode: null !== (_m = e.keyCode) && void 0 !== _m ? _m : e.which,
21
47
  code: e.code,
22
48
  event: e,
23
49
  scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth
@@ -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(), '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 (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n //全选\n eventManager.deelTableSelectAll();\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 table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {\n cellRange: table.stateManager.select.ranges,\n copyData: data\n });\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n e.preventDefault();\n });\n\n handler.on(table.getContainer(), 'resize', () => {\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 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(), '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 if ((table as ListTableAPI).editorManager.editingEditor) {\n (table as ListTableAPI).editorManager.editingEditor.exit();\n (table as ListTableAPI).editorManager.editingEditor = null;\n }\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 }\n if ((table as ListTableAPI).getEditor(targetCol, targetRow)) {\n (table as ListTableAPI).editorManager.startEditCell(targetCol, targetRow);\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 table.fireListeners(TABLE_EVENT_TYPE.COPY_DATA, {\n cellRange: table.stateManager.select.ranges,\n copyData: data\n });\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n e.preventDefault();\n });\n\n handler.on(table.getContainer(), 'resize', () => {\n table.resize();\n });\n}\n"]}
@@ -2,6 +2,8 @@ import { throttle } from "../../tools/util";
2
2
 
3
3
  import { InteractionState } from "../../ts-types";
4
4
 
5
+ import { getCellEventArgsSet } from "../util";
6
+
5
7
  export function bindScrollBarListener(eventManager) {
6
8
  const table = eventManager.table, stateManager = table.stateManager, scenegraph = table.scenegraph;
7
9
  scenegraph.component.vScrollBar.addEventListener("pointerover", (e => {
@@ -12,14 +14,28 @@ export function bindScrollBarListener(eventManager) {
12
14
  stateManager.interactionState !== InteractionState.scrolling && stateManager.hideVerticalScrollBar();
13
15
  })), scenegraph.component.hScrollBar.addEventListener("pointerout", (e => {
14
16
  stateManager.interactionState !== InteractionState.scrolling && stateManager.hideHorizontalScrollBar();
15
- })), scenegraph.component.vScrollBar._slider.addEventListener("pointerdown", (() => {
16
- stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
17
+ })), scenegraph.component.vScrollBar.addEventListener("scrollDown", (e => {
18
+ var _a, _b, _c;
19
+ scenegraph.table.eventManager.LastBodyPointerXY = {
20
+ x: e.x,
21
+ y: e.y
22
+ }, scenegraph.table.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
23
+ const eventArgsSet = getCellEventArgsSet(e);
24
+ scenegraph.table.stateManager.menu.isShow && (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) !== (null === (_b = scenegraph.table.stateManager.residentHoverIcon) || void 0 === _b ? void 0 : _b.icon) && scenegraph.table.stateManager.hideMenu(),
25
+ null === (_c = scenegraph.table.editorManager) || void 0 === _c || _c.completeEdit();
17
26
  })), scenegraph.component.vScrollBar.addEventListener("pointerup", (() => {
18
27
  stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
19
28
  })), scenegraph.component.vScrollBar.addEventListener("pointerupoutside", (() => {
20
29
  stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
21
- })), scenegraph.component.hScrollBar._slider.addEventListener("pointerdown", (() => {
22
- stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
30
+ })), scenegraph.component.hScrollBar.addEventListener("scrollDown", (e => {
31
+ var _a, _b, _c;
32
+ scenegraph.table.eventManager.LastBodyPointerXY = {
33
+ x: e.x,
34
+ y: e.y
35
+ }, scenegraph.table.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
36
+ const eventArgsSet = getCellEventArgsSet(e);
37
+ scenegraph.table.stateManager.menu.isShow && (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) !== (null === (_b = scenegraph.table.stateManager.residentHoverIcon) || void 0 === _b ? void 0 : _b.icon) && scenegraph.table.stateManager.hideMenu(),
38
+ null === (_c = scenegraph.table.editorManager) || void 0 === _c || _c.completeEdit();
23
39
  })), scenegraph.component.hScrollBar.addEventListener("pointerup", (() => {
24
40
  stateManager.fastScrolling = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
25
41
  })), scenegraph.component.hScrollBar.addEventListener("pointerupoutside", (() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/listener/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import { throttle } from '../../tools/util';\nimport { InteractionState } from '../../ts-types';\nimport type { EventManager } from '../event';\n\nexport function bindScrollBarListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const scenegraph = table.scenegraph;\n\n // 监听滚动条组件pointover事件\n scenegraph.component.vScrollBar.addEventListener('pointerover', (e: any) => {\n stateManager.showVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerover', (e: any) => {\n stateManager.showHorizontalScrollBar();\n });\n scenegraph.component.vScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManager.hideVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManager.hideHorizontalScrollBar();\n });\n // 目前ScrollBar的pointerdown事件回调内有e.stopPropagation,因此无法通过vScrollBar监听,先使用_slider监听\n (scenegraph.component.vScrollBar as any)._slider.addEventListener('pointerdown', () => {\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n });\n scenegraph.component.vScrollBar.addEventListener('pointerup', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.vScrollBar.addEventListener('pointerupoutside', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n // 目前ScrollBar的pointerdown事件回调内有e.stopPropagation,因此无法通过hScrollBar监听,先使用_slider监听\n (scenegraph.component.hScrollBar as any)._slider.addEventListener('pointerdown', () => {\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('pointerup', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('pointerupoutside', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n\n const throttleVerticalWheel = throttle(stateManager.updateVerticalScrollBar, 20);\n const throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20);\n\n // 监听滚动条组件scroll事件\n scenegraph.component.vScrollBar.addEventListener('scroll', (e: any) => {\n stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleVerticalWheel(ratio, e);\n });\n\n scenegraph.component.hScrollBar.addEventListener('scroll', (e: any) => {\n stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n // stateManager.table.scenegraph.proxy.isSkipProgress = true;\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleHorizontalWheel(ratio);\n // setTimeout(() => {\n // console.log('isSkipProgress', false);\n // stateManager.table.scenegraph.proxy.isSkipProgress = false;\n // }, 10);\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/event/listener/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import type { FederatedPointerEvent } from '@visactor/vrender';\nimport { throttle } from '../../tools/util';\nimport type { ListTableAPI } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { EventManager } from '../event';\nimport type { SceneEvent } from '../util';\nimport { getCellEventArgsSet } from '../util';\n\nexport function bindScrollBarListener(eventManager: EventManager) {\n const table = eventManager.table;\n const stateManager = table.stateManager;\n const scenegraph = table.scenegraph;\n\n // 监听滚动条组件pointover事件\n scenegraph.component.vScrollBar.addEventListener('pointerover', (e: any) => {\n stateManager.showVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerover', (e: any) => {\n stateManager.showHorizontalScrollBar();\n });\n scenegraph.component.vScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManager.hideVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManager.hideHorizontalScrollBar();\n });\n scenegraph.component.vScrollBar.addEventListener('scrollDown', (e: FederatedPointerEvent) => {\n scenegraph.table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };\n scenegraph.table.eventManager.isDown = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (\n scenegraph.table.stateManager.menu.isShow &&\n (eventArgsSet.eventArgs?.target as any) !== scenegraph.table.stateManager.residentHoverIcon?.icon\n ) {\n scenegraph.table.stateManager.hideMenu();\n }\n\n (scenegraph.table as ListTableAPI).editorManager?.completeEdit();\n });\n scenegraph.component.vScrollBar.addEventListener('pointerup', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.vScrollBar.addEventListener('pointerupoutside', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('scrollDown', (e: FederatedPointerEvent) => {\n scenegraph.table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };\n scenegraph.table.eventManager.isDown = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (\n scenegraph.table.stateManager.menu.isShow &&\n (eventArgsSet.eventArgs?.target as any) !== scenegraph.table.stateManager.residentHoverIcon?.icon\n ) {\n scenegraph.table.stateManager.hideMenu();\n }\n\n (scenegraph.table as ListTableAPI).editorManager?.completeEdit();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerup', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('pointerupoutside', () => {\n stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n\n const throttleVerticalWheel = throttle(stateManager.updateVerticalScrollBar, 20);\n const throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20);\n\n // 监听滚动条组件scroll事件\n scenegraph.component.vScrollBar.addEventListener('scroll', (e: any) => {\n stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleVerticalWheel(ratio, e);\n });\n\n scenegraph.component.hScrollBar.addEventListener('scroll', (e: any) => {\n stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n // stateManager.table.scenegraph.proxy.isSkipProgress = true;\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleHorizontalWheel(ratio);\n // setTimeout(() => {\n // console.log('isSkipProgress', false);\n // stateManager.table.scenegraph.proxy.isSkipProgress = false;\n // }, 10);\n });\n}\n"]}
@@ -16,22 +16,20 @@ import { Rect } from "../../tools/Rect";
16
16
 
17
17
  import { getCellMergeInfo } from "../../scenegraph/utils/get-cell-merge";
18
18
 
19
- let LastPointerXY, LastBodyPointerXY, isDown = !1, isDraging = !1;
20
-
21
19
  export function bindTableGroupListener(eventManager) {
22
20
  const table = eventManager.table, stateManager = table.stateManager;
23
21
  document.body.addEventListener("pointerdown", (e => {
24
- LastBodyPointerXY = {
22
+ table.eventManager.LastBodyPointerXY = {
25
23
  x: e.x,
26
24
  y: e.y
27
- }, isDown = !0;
25
+ }, table.eventManager.isDown = !0;
28
26
  })), document.addEventListener("pointerup", (e => {
29
- LastBodyPointerXY = null, isDown = !1, isDraging = !1;
27
+ table.eventManager.LastBodyPointerXY = null, table.eventManager.isDown = !1, table.eventManager.isDraging = !1;
30
28
  })), document.body.addEventListener("pointermove", (e => {
31
- var _a, _b;
32
- if (isDown && LastBodyPointerXY) {
33
- const lastX = null !== (_a = null == LastBodyPointerXY ? void 0 : LastBodyPointerXY.x) && void 0 !== _a ? _a : e.x, lastY = null !== (_b = null == LastBodyPointerXY ? void 0 : LastBodyPointerXY.y) && void 0 !== _b ? _b : e.y;
34
- (Math.abs(lastX - e.x) > 1 || Math.abs(lastY - e.y) > 1) && (isDraging = !0);
29
+ var _a, _b, _c, _d;
30
+ if (table.eventManager.isDown && table.eventManager.LastBodyPointerXY) {
31
+ 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;
32
+ (Math.abs(lastX - e.x) > 1 || Math.abs(lastY - e.y) > 1) && (table.eventManager.isDraging = !0);
35
33
  }
36
34
  const {x: x, y: y} = table._getMouseAbstractPoint(e, !1);
37
35
  stateManager.interactionState !== InteractionState.scrolling && stateManager.interactionState === InteractionState.grabing && stateManager.isResizeCol() && (eventManager.dealColumnResize(x, y),
@@ -40,9 +38,9 @@ export function bindTableGroupListener(eventManager) {
40
38
  colWidth: table.getColWidth(table.stateManager.columnResize.col)
41
39
  }));
42
40
  })), table.scenegraph.tableGroup.addEventListener("pointermove", (e => {
43
- var _a, _b, _c, _d, _e, _f, _g;
44
- const lastX = null !== (_a = null == LastPointerXY ? void 0 : LastPointerXY.x) && void 0 !== _a ? _a : e.x, lastY = null !== (_b = null == LastPointerXY ? void 0 : LastPointerXY.y) && void 0 !== _b ? _b : e.y;
45
- LastPointerXY = {
41
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
42
+ 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;
43
+ table.eventManager.LastPointerXY = {
46
44
  x: e.x,
47
45
  y: e.y
48
46
  }, eventManager.touchSetTimeout && (clearTimeout(eventManager.touchSetTimeout),
@@ -61,7 +59,7 @@ export function bindTableGroupListener(eventManager) {
61
59
  }),
62
60
  scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
63
61
  event: e.nativeEvent,
64
- target: null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target
62
+ target: null === (_e = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _e ? void 0 : _e.target
65
63
  })), table.hasListeners(TABLE_EVENT_TYPE.MOUSEENTER_CELL) && "cell" === (null == cellGoup ? void 0 : cellGoup.role) && isValid(cellGoup.col) && isValid(cellGoup.row) && (cellGoup.col !== table.stateManager.hover.cellPos.col || cellGoup.row !== table.stateManager.hover.cellPos.row) && table.fireListeners(TABLE_EVENT_TYPE.MOUSEENTER_CELL, {
66
64
  col: cellGoup.col,
67
65
  row: cellGoup.row,
@@ -71,12 +69,12 @@ export function bindTableGroupListener(eventManager) {
71
69
  }),
72
70
  scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
73
71
  event: e.nativeEvent,
74
- target: null === (_d = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.target
72
+ target: null === (_f = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _f ? void 0 : _f.target
75
73
  }), eventManager.dealIconHover(eventArgsSet), eventManager.dealTableHover(eventArgsSet),
76
74
  eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE.MOUSEMOVE_CELL)) {
77
75
  let icon, position;
78
- if (null === (_e = eventArgsSet.eventArgs) || void 0 === _e ? void 0 : _e.target) {
79
- const iconInfo = getIconAndPositionFromTarget(null === (_f = eventArgsSet.eventArgs) || void 0 === _f ? void 0 : _f.target);
76
+ if (null === (_g = eventArgsSet.eventArgs) || void 0 === _g ? void 0 : _g.target) {
77
+ const iconInfo = getIconAndPositionFromTarget(null === (_h = eventArgsSet.eventArgs) || void 0 === _h ? void 0 : _h.target);
80
78
  iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
81
79
  }
82
80
  table.fireListeners(TABLE_EVENT_TYPE.MOUSEMOVE_CELL, {
@@ -90,7 +88,7 @@ export function bindTableGroupListener(eventManager) {
90
88
  position: position,
91
89
  funcType: icon.attribute.funcType
92
90
  } : void 0,
93
- target: null === (_g = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _g ? void 0 : _g.target
91
+ target: null === (_j = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _j ? void 0 : _j.target
94
92
  });
95
93
  }
96
94
  })), table.scenegraph.tableGroup.addEventListener("pointerout", (e => {
@@ -133,9 +131,12 @@ export function bindTableGroupListener(eventManager) {
133
131
  target: void 0
134
132
  });
135
133
  })), table.scenegraph.tableGroup.addEventListener("pointerupoutside", (e => {
136
- var _a, _b, _c, _d, _e, _f;
137
- if (stateManager.isResizeCol()) endResizeCol(table); else if (stateManager.isMoveCol()) table.stateManager.endMoveCol(),
138
- -1 !== (null === (_a = table.stateManager.columnMove) || void 0 === _a ? void 0 : _a.colSource) && -1 !== (null === (_b = table.stateManager.columnMove) || void 0 === _b ? void 0 : _b.rowSource) && -1 !== (null === (_c = table.stateManager.columnMove) || void 0 === _c ? void 0 : _c.colTarget) && -1 !== (null === (_d = table.stateManager.columnMove) || void 0 === _d ? void 0 : _d.rowTarget) && table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION) && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
134
+ var _a, _b, _c, _d, _e, _f, _g, _h;
135
+ const eventArgsSet = getCellEventArgsSet(e);
136
+ if (stateManager.menu.isShow && (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) !== (null === (_b = stateManager.residentHoverIcon) || void 0 === _b ? void 0 : _b.icon) && setTimeout((() => {
137
+ table.internalProps.menuHandler.pointInMenuElement(e.page.x, e.page.y) || stateManager.menu.isShow && stateManager.hideMenu();
138
+ }), 0), stateManager.isResizeCol()) endResizeCol(table); else if (stateManager.isMoveCol()) table.stateManager.endMoveCol(),
139
+ -1 !== (null === (_c = table.stateManager.columnMove) || void 0 === _c ? void 0 : _c.colSource) && -1 !== (null === (_d = table.stateManager.columnMove) || void 0 === _d ? void 0 : _d.rowSource) && -1 !== (null === (_e = table.stateManager.columnMove) || void 0 === _e ? void 0 : _e.colTarget) && -1 !== (null === (_f = table.stateManager.columnMove) || void 0 === _f ? void 0 : _f.rowTarget) && table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION) && table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
139
140
  target: {
140
141
  col: table.stateManager.columnMove.colTarget,
141
142
  row: table.stateManager.columnMove.rowTarget
@@ -144,7 +145,7 @@ export function bindTableGroupListener(eventManager) {
144
145
  col: table.stateManager.columnMove.colSource,
145
146
  row: table.stateManager.columnMove.rowSource
146
147
  }
147
- }); else if (stateManager.isSelecting() && (null === (_f = null === (_e = table.stateManager.select) || void 0 === _e ? void 0 : _e.ranges) || void 0 === _f ? void 0 : _f.length)) {
148
+ }); else if (stateManager.isSelecting() && (null === (_h = null === (_g = table.stateManager.select) || void 0 === _g ? void 0 : _g.ranges) || void 0 === _h ? void 0 : _h.length)) {
148
149
  const lastCol = table.stateManager.select.ranges[table.stateManager.select.ranges.length - 1].end.col, lastRow = table.stateManager.select.ranges[table.stateManager.select.ranges.length - 1].end.row;
149
150
  if (table.stateManager.endSelectCells(), table.hasListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END)) {
150
151
  const cellsEvent = {
@@ -161,16 +162,19 @@ export function bindTableGroupListener(eventManager) {
161
162
  table.editorManager && table.editorManager.completeEdit(), stateManager.updateInteractionState(InteractionState.default),
162
163
  eventManager.dealTableHover();
163
164
  })), table.scenegraph.tableGroup.addEventListener("pointerdown", (e => {
164
- var _a, _b, _c, _d, _e, _f;
165
- if (LastPointerXY = {
165
+ var _a, _b, _c, _d, _e, _f, _g;
166
+ if (table.eventManager.isDown = !0, table.eventManager.LastBodyPointerXY = {
167
+ x: e.x,
168
+ y: e.y
169
+ }, e.stopPropagation(), table.eventManager.LastPointerXY = {
166
170
  x: e.x,
167
171
  y: e.y
168
172
  }, 0 !== e.button) return;
169
173
  const eventArgsSet = getCellEventArgsSet(e);
170
174
  if (stateManager.interactionState !== InteractionState.default) return;
171
175
  table.isPivotChart() && "chart" !== (null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target.type) && table.scenegraph.updateChartState(null),
172
- stateManager.menu.isShow && eventArgsSet.eventArgs && eventArgsSet.eventArgs.target !== (null === (_b = stateManager.residentHoverIcon) || void 0 === _b ? void 0 : _b.icon) && stateManager.hideMenu();
173
- const hitIcon = (null === (_e = null === (_d = null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target) || void 0 === _d ? void 0 : _d.role) || void 0 === _e ? void 0 : _e.startsWith("icon")) ? eventArgsSet.eventArgs.target : void 0;
176
+ stateManager.menu.isShow && (null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target) !== (null === (_c = stateManager.residentHoverIcon) || void 0 === _c ? void 0 : _c.icon) && stateManager.hideMenu();
177
+ const hitIcon = (null === (_f = null === (_e = null === (_d = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.target) || void 0 === _e ? void 0 : _e.role) || void 0 === _f ? void 0 : _f.startsWith("icon")) ? eventArgsSet.eventArgs.target : void 0;
174
178
  if (!hitIcon || !1 === hitIcon.attribute.interactive) if ("touch" === e.pointerType) eventManager.touchEnd = !1,
175
179
  eventManager.touchSetTimeout = setTimeout((() => {
176
180
  eventManager.isTouchdown = !1, eventManager.touchMove = !0, (eventManager.touchEnd || !eventManager.checkColumnResize(eventArgsSet, !0)) && (eventManager.touchEnd || !eventManager.chechColumnMover(eventArgsSet)) ? eventManager.dealTableSelect(eventArgsSet) && !eventManager.touchEnd && stateManager.updateInteractionState(InteractionState.grabing) : stateManager.updateInteractionState(InteractionState.grabing);
@@ -186,7 +190,7 @@ export function bindTableGroupListener(eventManager) {
186
190
  col: eventArgsSet.eventArgs.col,
187
191
  row: eventArgsSet.eventArgs.row,
188
192
  event: e.nativeEvent,
189
- target: null === (_f = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _f ? void 0 : _f.target
193
+ target: null === (_g = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _g ? void 0 : _g.target
190
194
  });
191
195
  }
192
196
  })), table.scenegraph.tableGroup.addEventListener("pointerup", (e => {
@@ -289,9 +293,13 @@ export function bindTableGroupListener(eventManager) {
289
293
  table.fireListeners(TABLE_EVENT_TYPE.CLICK_CELL, cellsEvent);
290
294
  }
291
295
  }
296
+ })), table.scenegraph.stage.addEventListener("pointerdown", (e => {
297
+ var _a, _b;
298
+ const eventArgsSet = getCellEventArgsSet(e);
299
+ stateManager.menu.isShow && (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) !== (null === (_b = stateManager.residentHoverIcon) || void 0 === _b ? void 0 : _b.icon) && stateManager.hideMenu();
292
300
  })), table.scenegraph.stage.addEventListener("pointertap", (e => {
293
301
  const target = e.target;
294
- isDraging || !target || target.isDescendantsOf(table.scenegraph.tableGroup) ? isDraging && stateManager.endSelectCells() : (stateManager.updateInteractionState(InteractionState.default),
302
+ table.eventManager.isDraging || !target || target.isDescendantsOf(table.scenegraph.tableGroup) ? table.eventManager.isDraging && stateManager.endSelectCells() : (stateManager.updateInteractionState(InteractionState.default),
295
303
  eventManager.dealTableHover(), eventManager.dealTableSelect(), stateManager.updateCursor(),
296
304
  table.scenegraph.updateChartState(null));
297
305
  })), table.scenegraph.tableGroup.addEventListener("checkbox_state_change", (e => {
@@ -326,7 +334,7 @@ export function bindTableGroupListener(eventManager) {
326
334
 
327
335
  export function bindGesture(eventManager) {
328
336
  const table = eventManager.table;
329
- eventManager.gesture = new Gesture(table.scenegraph.stage, {
337
+ eventManager.gesture = new Gesture(table.scenegraph.tableGroup, {
330
338
  tap: {
331
339
  interval: 300
332
340
  }
@@ -347,14 +355,17 @@ function endResizeCol(table) {
347
355
  }
348
356
 
349
357
  function dblclickHandler(e, table) {
350
- var _a, _b, _c;
351
- const eventArgsSet = getCellEventArgsSet(e), bounds = eventArgsSet.eventArgs.targetCell.globalAABBBounds, {col: col, row: row} = eventArgsSet.eventArgs, value = table.getCellValue(col, row);
352
- if (table.internalProps.focusControl.setFocusRect(new Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1), value),
358
+ var _a, _b, _c, _d, _e;
359
+ const eventArgsSet = getCellEventArgsSet(e);
360
+ let col = -1, row = -1;
361
+ eventArgsSet.eventArgs && (col = eventArgsSet.eventArgs.col, row = eventArgsSet.eventArgs.row);
362
+ const value = table.getCellValue(col, row), bounds = null === (_b = null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.targetCell) || void 0 === _b ? void 0 : _b.globalAABBBounds;
363
+ if (bounds && table.internalProps.focusControl.setFocusRect(new Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1), value),
353
364
  table.hasListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL)) {
354
365
  const cellInfo = table.getCellInfo(col, row);
355
366
  let icon, position;
356
- if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
357
- const iconInfo = getIconAndPositionFromTarget(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
367
+ if (null === (_c = eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target) {
368
+ const iconInfo = getIconAndPositionFromTarget(null === (_d = eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.target);
358
369
  iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
359
370
  }
360
371
  const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
@@ -366,7 +377,7 @@ function dblclickHandler(e, table) {
366
377
  position: position,
367
378
  funcType: icon.attribute.funcType
368
379
  } : void 0,
369
- target: null === (_c = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target
380
+ target: null === (_e = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _e ? void 0 : _e.target
370
381
  });
371
382
  table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);
372
383
  }