@visactor/vtable 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/core/BaseTable.d.ts +7 -0
- package/cjs/core/BaseTable.js +53 -15
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/tableHelper.js +5 -3
- package/cjs/core/tableHelper.js.map +1 -1
- package/cjs/core/utils/get-cell-position.js +23 -12
- package/cjs/core/utils/get-cell-position.js.map +1 -1
- package/cjs/dataset/DataStatistics.js +2 -1
- package/cjs/edit/edit-manager.js +0 -1
- package/cjs/event/listener/container-dom.js +7 -5
- package/cjs/event/listener/container-dom.js.map +1 -1
- package/cjs/event/listener/scroll-bar.js +77 -6
- package/cjs/event/listener/scroll-bar.js.map +1 -1
- package/cjs/event/listener/table-group.js +29 -20
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/scroll.js +34 -11
- package/cjs/event/scroll.js.map +1 -1
- package/cjs/event/util.d.ts +2 -0
- package/cjs/event/util.js +28 -3
- package/cjs/event/util.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/scenegraph/component/table-component.d.ts +6 -1
- package/cjs/scenegraph/component/table-component.js +143 -16
- package/cjs/scenegraph/component/table-component.js.map +1 -1
- package/cjs/scenegraph/component/util.js +5 -2
- package/cjs/scenegraph/component/util.js.map +1 -1
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.js +36 -6
- package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +13 -0
- package/cjs/scenegraph/scenegraph.js +194 -23
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/select/create-select-border.js +9 -10
- package/cjs/scenegraph/select/create-select-border.js.map +1 -1
- package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
- package/cjs/scenegraph/select/move-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-custom-select-border.js +9 -9
- package/cjs/scenegraph/select/update-custom-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-border.js +14 -73
- package/cjs/scenegraph/select/update-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-style.js.map +1 -1
- package/cjs/state/state.d.ts +7 -1
- package/cjs/state/state.js +61 -28
- package/cjs/state/state.js.map +1 -1
- package/cjs/ts-types/base-table.d.ts +10 -0
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/dist/vtable.js +1085 -325
- package/dist/vtable.min.js +2 -2
- package/es/core/BaseTable.d.ts +7 -0
- package/es/core/BaseTable.js +53 -15
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/tableHelper.js +5 -3
- package/es/core/tableHelper.js.map +1 -1
- package/es/core/utils/get-cell-position.js +23 -12
- package/es/core/utils/get-cell-position.js.map +1 -1
- package/es/dataset/DataStatistics.js +2 -1
- package/es/edit/edit-manager.js +1 -2
- package/es/event/listener/container-dom.js +7 -5
- package/es/event/listener/container-dom.js.map +1 -1
- package/es/event/listener/scroll-bar.js +75 -6
- package/es/event/listener/scroll-bar.js.map +1 -1
- package/es/event/listener/table-group.js +29 -21
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/scroll.js +34 -11
- package/es/event/scroll.js.map +1 -1
- package/es/event/util.d.ts +2 -0
- package/es/event/util.js +24 -0
- package/es/event/util.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/scenegraph/component/table-component.d.ts +6 -1
- package/es/scenegraph/component/table-component.js +141 -16
- package/es/scenegraph/component/table-component.js.map +1 -1
- package/es/scenegraph/component/util.js +5 -2
- package/es/scenegraph/component/util.js.map +1 -1
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.js +36 -6
- package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/es/scenegraph/group-creater/progress/proxy.js +4 -2
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +13 -0
- package/es/scenegraph/scenegraph.js +185 -18
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/select/create-select-border.js +9 -10
- package/es/scenegraph/select/create-select-border.js.map +1 -1
- package/es/scenegraph/select/delete-select-border.js.map +1 -1
- package/es/scenegraph/select/move-select-border.js.map +1 -1
- package/es/scenegraph/select/update-custom-select-border.js +9 -9
- package/es/scenegraph/select/update-custom-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-border.js +14 -73
- package/es/scenegraph/select/update-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-style.js.map +1 -1
- package/es/state/state.d.ts +7 -1
- package/es/state/state.js +61 -28
- package/es/state/state.js.map +1 -1
- package/es/ts-types/base-table.d.ts +10 -0
- package/es/ts-types/base-table.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/package.json +4 -4
package/cjs/event/scroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { StateManager } from '../state/state';\nimport { InteractionState } from '../ts-types';\nimport { vglobal, type FederatedWheelEvent } from './../vrender';\n\n/**\n *\n * @param event\n * @param state\n * @param isWheelEvent 是否是由鼠标或者触摸板原生滚动事件触发进入?\n */\nexport function handleWhell(event: FederatedWheelEvent, state: StateManager, isWheelEvent: boolean = true) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n if (optimizedDeltaX || optimizedDeltaY) {\n if (state.interactionState !== InteractionState.scrolling) {\n state.updateInteractionState(InteractionState.scrolling);\n }\n }\n const autoHide = state.table.options.theme?.scrollStyle?.visible === 'scrolling';\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(autoHide);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event);\n state.showVerticalScrollBar(autoHide);\n }\n isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll);\n if (\n event.nativeEvent?.cancelable &&\n ((state.table.internalProps.overscrollBehavior === 'none' &&\n ((deltaY && isVerticalExistScrollBar(state)) || (deltaX && isHorizontalExistScrollBar(state)))) ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, state)))\n ) {\n event.nativeEvent.preventDefault();\n }\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [Math.ceil(deltaX * (ratio.horizontal ?? 0)), Math.ceil(deltaY * (ratio.vertical ?? 0))];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight === 0) {\n return false;\n }\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n if (totalWidth === 0) {\n return false;\n }\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nexport function isVerticalExistScrollBar(state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight <= 0) {\n return false;\n }\n return true;\n}\n\nexport function isHorizontalExistScrollBar(state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n if (totalWidth <= 0) {\n return false;\n }\n return true;\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1 + sizeTolerance;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManager) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1 + sizeTolerance;\n}\n\nexport class InertiaScroll {\n friction: number;\n lastTime: number;\n speedX: number;\n speedY: number;\n stateManager: StateManager;\n runingId: number;\n scrollHandle: (dx: number, dy: number) => void;\n constructor(stateManager: StateManager) {\n this.stateManager = stateManager;\n }\n setScrollHandle(scrollHandle: (dx: number, dy: number) => void) {\n this.scrollHandle = scrollHandle;\n }\n\n startInertia(speedX: number, speedY: number, friction: number) {\n this.lastTime = Date.now();\n this.speedX = speedX;\n this.speedY = speedY;\n this.friction = friction;\n if (!this.runingId) {\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n }\n inertia() {\n const now = Date.now();\n const dffTime = now - this.lastTime;\n let stopped = true;\n const f = Math.pow(this.friction, dffTime / 16);\n const newSpeedX = f * this.speedX;\n const newSpeedY = f * this.speedY;\n let dx = 0;\n let dy = 0;\n if (Math.abs(newSpeedX) > 0.05) {\n stopped = false;\n dx = ((this.speedX + newSpeedX) / 2) * dffTime;\n }\n if (Math.abs(newSpeedY) > 0.05) {\n stopped = false;\n dy = ((this.speedY + newSpeedY) / 2) * dffTime;\n }\n this.scrollHandle?.(dx, dy);\n if (stopped) {\n this.runingId = null;\n return;\n }\n this.lastTime = now;\n this.speedX = newSpeedX;\n this.speedY = newSpeedY;\n\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n endInertia() {\n vglobal.getCancelAnimationFrame()(this.runingId);\n this.runingId = null;\n }\n isInertiaScrolling() {\n return !!this.runingId;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { StateManager } from '../state/state';\nimport { InteractionState } from '../ts-types';\nimport { vglobal, type FederatedWheelEvent } from './../vrender';\n\n/**\n *\n * @param event\n * @param state\n * @param isWheelEvent 是否是由鼠标或者触摸板原生滚动事件触发进入?\n */\nexport function handleWhell(event: FederatedWheelEvent, state: StateManager, isWheelEvent: boolean = true) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n if (optimizedDeltaX || optimizedDeltaY) {\n if (state.interactionState !== InteractionState.scrolling) {\n state.updateInteractionState(InteractionState.scrolling);\n }\n }\n const visible1 = state.table.theme.scrollStyle?.visible;\n const horizontalVisible = state.table.theme.scrollStyle?.horizontalVisible ?? visible1;\n const verticalVisible = state.table.theme.scrollStyle?.verticalVisible ?? visible1;\n const horizontalAutoHide = horizontalVisible === 'scrolling';\n const verticalAutoHide = verticalVisible === 'scrolling';\n let usedFrozenHorizontal = false;\n let usedRightFrozenHorizontal = false;\n let blockedFrozenHorizontal = false;\n let blockedRightFrozenHorizontal = false;\n if (optimizedDeltaX) {\n // 横向滚动需要判断“滚动意图属于哪个区域”:\n // - body:主滚动域(影响非冻结列)\n // - frozen:左侧冻结区域内部滚动(scrollFrozenCols 开启且溢出时)\n // - rightFrozen:右侧冻结区域内部滚动(scrollRightFrozenCols 开启且溢出时)\n //\n // 部分浏览器/输入设备的 wheel 事件不一定带坐标(event.x/y),因此这里会回退使用 LastBodyPointerXY。\n const pxEvent = (event as any).x;\n const pyEvent = (event as any).y;\n const pxFallback = (state.table as any).eventManager?.LastBodyPointerXY?.x;\n const pyFallback = (state.table as any).eventManager?.LastBodyPointerXY?.y;\n const px = typeof pxEvent === 'number' ? pxEvent : pxFallback;\n const py = typeof pyEvent === 'number' ? pyEvent : pyFallback;\n const usedFallback = typeof pxEvent !== 'number' || typeof pyEvent !== 'number';\n const relativeX = typeof px === 'number' ? px - state.table.tableX : NaN;\n const relativeY = typeof py === 'number' ? py - state.table.tableY : NaN;\n const isInTable =\n isFinite(relativeX) &&\n isFinite(relativeY) &&\n relativeX >= 0 &&\n relativeY >= 0 &&\n relativeX <= state.table.tableNoFrameWidth &&\n relativeY <= state.table.tableNoFrameHeight;\n const frozenColsScrollable = state.table.options.scrollFrozenCols && state.table.getFrozenColsOffset() > 0;\n const rightFrozenColsScrollable =\n state.table.options.scrollRightFrozenCols && state.table.getRightFrozenColsOffset() > 0;\n const isInFrozenViewport = isInTable && relativeX > 0 && relativeX < state.table.getFrozenColsWidth();\n const isInRightFrozenViewport =\n isInTable && relativeX > state.table.tableNoFrameWidth - state.table.getRightFrozenColsWidth();\n\n if (frozenColsScrollable && isInFrozenViewport) {\n const maxFrozenScrollLeft = state.table.getFrozenColsOffset();\n const nextFrozenScrollLeft = state.scroll.frozenHorizontalBarPos + optimizedDeltaX;\n const canScrollFrozen =\n (optimizedDeltaX < 0 && state.scroll.frozenHorizontalBarPos > 0) ||\n (optimizedDeltaX > 0 && state.scroll.frozenHorizontalBarPos < maxFrozenScrollLeft);\n if (canScrollFrozen) {\n state.setFrozenColsScrollLeft(nextFrozenScrollLeft);\n usedFrozenHorizontal = true;\n state.showHorizontalScrollBar(horizontalAutoHide, 'frozen');\n } else {\n if (state.table.options.scrollFrozenColsPassThroughToBody) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(horizontalAutoHide, 'body');\n } else {\n blockedFrozenHorizontal = true;\n state.showHorizontalScrollBar(horizontalAutoHide, 'frozen');\n }\n }\n } else if (rightFrozenColsScrollable && isInRightFrozenViewport) {\n const maxRightFrozenScrollLeft = state.table.getRightFrozenColsOffset();\n // 右冻结区域的内容从右向左展开。为了让触摸板的“向左滑”表现为“展开更多右冻结列”,\n // 这里将 deltaX 反向映射到 rightFrozen 的 scrollLeft。\n const rightFrozenDelta = -optimizedDeltaX;\n const nextRightFrozenScrollLeft = state.scroll.rightFrozenHorizontalBarPos + rightFrozenDelta;\n const canScrollRightFrozen =\n (rightFrozenDelta < 0 && state.scroll.rightFrozenHorizontalBarPos > 0) ||\n (rightFrozenDelta > 0 && state.scroll.rightFrozenHorizontalBarPos < maxRightFrozenScrollLeft);\n if (canScrollRightFrozen) {\n state.setRightFrozenColsScrollLeft(nextRightFrozenScrollLeft);\n usedRightFrozenHorizontal = true;\n state.showHorizontalScrollBar(horizontalAutoHide, 'rightFrozen');\n } else {\n if (state.table.options.scrollFrozenColsPassThroughToBody) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(horizontalAutoHide, 'body');\n } else {\n blockedRightFrozenHorizontal = true;\n state.showHorizontalScrollBar(horizontalAutoHide, 'rightFrozen');\n }\n }\n } else {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX, event);\n state.showHorizontalScrollBar(horizontalAutoHide, 'body');\n }\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY, event);\n state.showVerticalScrollBar(verticalAutoHide);\n }\n isWheelEvent && state.resetInteractionState(state.interactionStateBeforeScroll);\n if (\n event.nativeEvent?.cancelable &&\n ((state.table.internalProps.overscrollBehavior === 'none' &&\n ((deltaY && isVerticalExistScrollBar(state)) || (deltaX && isHorizontalExistScrollBar(state)))) ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) &&\n deltaX !== 0 &&\n (blockedFrozenHorizontal || blockedRightFrozenHorizontal\n ? false\n : usedFrozenHorizontal\n ? state.table.getFrozenColsOffset() > 0\n : usedRightFrozenHorizontal\n ? state.table.getRightFrozenColsOffset() > 0\n : isHorizontalScrollable(deltaX, state))))\n ) {\n event.nativeEvent.preventDefault();\n }\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [Math.ceil(deltaX * (ratio.horizontal ?? 0)), Math.ceil(deltaY * (ratio.vertical ?? 0))];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight === 0) {\n return false;\n }\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManager) {\n const frozenOffset = state.table.getFrozenColsOffset?.() ?? 0;\n const rightFrozenOffset = state.table.getRightFrozenColsOffset?.() ?? 0;\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset;\n if (totalWidth === 0) {\n return false;\n }\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nexport function isVerticalExistScrollBar(state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n if (totalHeight <= 0) {\n return false;\n }\n return true;\n}\n\nexport function isHorizontalExistScrollBar(state: StateManager) {\n const frozenOffset = state.table.getFrozenColsOffset?.() ?? 0;\n const rightFrozenOffset = state.table.getRightFrozenColsOffset?.() ?? 0;\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset;\n if (totalWidth <= 0) {\n return false;\n }\n return true;\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManager) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1 + sizeTolerance;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManager) {\n const frozenOffset = state.table.getFrozenColsOffset?.() ?? 0;\n const rightFrozenOffset = state.table.getRightFrozenColsOffset?.() ?? 0;\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManager) {\n // 这里加入tolerance,避免出现无用滚动\n const sizeTolerance = state.table.options.customConfig?._disableColumnAndRowSizeRound ? 1 : 0;\n\n const frozenOffset = state.table.getFrozenColsOffset?.() ?? 0;\n const rightFrozenOffset = state.table.getRightFrozenColsOffset?.() ?? 0;\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width - frozenOffset - rightFrozenOffset;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1 + sizeTolerance;\n}\n\nexport class InertiaScroll {\n friction: number;\n lastTime: number;\n speedX: number;\n speedY: number;\n stateManager: StateManager;\n runingId: number;\n scrollHandle: (dx: number, dy: number) => void;\n constructor(stateManager: StateManager) {\n this.stateManager = stateManager;\n }\n setScrollHandle(scrollHandle: (dx: number, dy: number) => void) {\n this.scrollHandle = scrollHandle;\n }\n\n startInertia(speedX: number, speedY: number, friction: number) {\n this.lastTime = Date.now();\n this.speedX = speedX;\n this.speedY = speedY;\n this.friction = friction;\n if (!this.runingId) {\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n }\n inertia() {\n const now = Date.now();\n const dffTime = now - this.lastTime;\n let stopped = true;\n const f = Math.pow(this.friction, dffTime / 16);\n const newSpeedX = f * this.speedX;\n const newSpeedY = f * this.speedY;\n let dx = 0;\n let dy = 0;\n if (Math.abs(newSpeedX) > 0.05) {\n stopped = false;\n dx = ((this.speedX + newSpeedX) / 2) * dffTime;\n }\n if (Math.abs(newSpeedY) > 0.05) {\n stopped = false;\n dy = ((this.speedY + newSpeedY) / 2) * dffTime;\n }\n this.scrollHandle?.(dx, dy);\n if (stopped) {\n this.runingId = null;\n return;\n }\n this.lastTime = now;\n this.speedX = newSpeedX;\n this.speedY = newSpeedY;\n\n this.runingId = vglobal.getRequestAnimationFrame()(this.inertia.bind(this));\n }\n endInertia() {\n vglobal.getCancelAnimationFrame()(this.runingId);\n this.runingId = null;\n }\n isInertiaScrolling() {\n return !!this.runingId;\n }\n}\n"]}
|
package/cjs/event/util.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FederatedPointerEvent, IEventTarget } from './../vrender';
|
|
2
2
|
import type { Group } from '../scenegraph/graphic/group';
|
|
3
3
|
import type { MergeCellInfo } from '../ts-types';
|
|
4
|
+
import type { BaseTableAPI } from '../ts-types/base-table';
|
|
4
5
|
export interface SceneEvent {
|
|
5
6
|
abstractPos: {
|
|
6
7
|
x: number;
|
|
@@ -16,6 +17,7 @@ export interface SceneEvent {
|
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
export declare function getCellEventArgsSet(e: FederatedPointerEvent): SceneEvent;
|
|
20
|
+
export declare function getCellEventArgsSetWithTable(e: FederatedPointerEvent, table: BaseTableAPI): SceneEvent;
|
|
19
21
|
export declare function getTargetCell(target: any): any;
|
|
20
22
|
export declare const regIndexReg: RegExp;
|
|
21
23
|
export declare function setDataToHTML(data: string): string;
|
package/cjs/event/util.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.setDataToHTML = exports.regIndexReg = exports.getTargetCell = exports.getCellEventArgsSet = void 0;
|
|
5
|
+
}), exports.setDataToHTML = exports.regIndexReg = exports.getTargetCell = exports.getCellEventArgsSetWithTable = exports.getCellEventArgsSet = void 0;
|
|
6
6
|
|
|
7
7
|
const vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
@@ -23,6 +23,30 @@ function getCellEventArgsSet(e) {
|
|
|
23
23
|
}), tableEvent;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
function getCellEventArgsSetWithTable(e, table) {
|
|
27
|
+
var _a;
|
|
28
|
+
const eventArgsSet = getCellEventArgsSet(e);
|
|
29
|
+
if (!eventArgsSet.eventArgs) return eventArgsSet;
|
|
30
|
+
if (!table.options.scrollFrozenCols || 0 === (null === (_a = table.getFrozenColsOffset) || void 0 === _a ? void 0 : _a.call(table))) return eventArgsSet;
|
|
31
|
+
const xInTable = e.x - table.tableX, yInTable = e.y - table.tableY;
|
|
32
|
+
if (xInTable < 0 || yInTable < 0 || xInTable > table.tableNoFrameWidth || yInTable > table.tableNoFrameHeight) return eventArgsSet;
|
|
33
|
+
const frozenViewportWidth = table.getFrozenColsWidth(), pickedCol = eventArgsSet.eventArgs.col, pickedRow = eventArgsSet.eventArgs.row;
|
|
34
|
+
if (pickedCol >= 0 && pickedCol < table.frozenColCount && !table.isRightFrozenColumn(pickedCol, pickedRow) && xInTable >= frozenViewportWidth) {
|
|
35
|
+
const cell = table.getCellAtRelativePosition(e.x, e.y);
|
|
36
|
+
if (-1 === cell.col || -1 === cell.row) return eventArgsSet;
|
|
37
|
+
const targetCell = table.scenegraph.getCell(cell.col, cell.row);
|
|
38
|
+
eventArgsSet.eventArgs = {
|
|
39
|
+
col: cell.col,
|
|
40
|
+
row: cell.row,
|
|
41
|
+
event: e,
|
|
42
|
+
targetCell: targetCell,
|
|
43
|
+
mergeInfo: getMergeCellInfo(targetCell),
|
|
44
|
+
target: targetCell
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return eventArgsSet;
|
|
48
|
+
}
|
|
49
|
+
|
|
26
50
|
function getTargetCell(target) {
|
|
27
51
|
for (;target && target.parent; ) {
|
|
28
52
|
if ("cell" === target.role) return target;
|
|
@@ -52,6 +76,7 @@ function setDataToHTML(data) {
|
|
|
52
76
|
})), result.push("</table>"), [ META_HEAD, result.join("") ].join("");
|
|
53
77
|
}
|
|
54
78
|
|
|
55
|
-
exports.getCellEventArgsSet = getCellEventArgsSet, exports.
|
|
56
|
-
exports.regIndexReg = /radio-\d+-\d+-(\d+)/,
|
|
79
|
+
exports.getCellEventArgsSet = getCellEventArgsSet, exports.getCellEventArgsSetWithTable = getCellEventArgsSetWithTable,
|
|
80
|
+
exports.getTargetCell = getTargetCell, exports.regIndexReg = /radio-\d+-\d+-(\d+)/,
|
|
81
|
+
exports.setDataToHTML = setDataToHTML;
|
|
57
82
|
//# sourceMappingURL=util.js.map
|
package/cjs/event/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/util.ts"],"names":[],"mappings":";;;AAGA,6CAA2C;
|
|
1
|
+
{"version":3,"sources":["../src/event/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { FederatedPointerEvent, IEventTarget } from './../vrender';\nimport type { Group } from '../scenegraph/graphic/group';\nimport type { MergeCellInfo } from '../ts-types';\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\n\nexport interface SceneEvent {\n abstractPos: {\n x: number;\n y: number;\n };\n eventArgs?: {\n col: number;\n row: number;\n event: FederatedPointerEvent;\n targetCell: Group;\n mergeInfo?: MergeCellInfo;\n target: IEventTarget;\n };\n}\n\nexport function getCellEventArgsSet(e: FederatedPointerEvent): SceneEvent {\n const tableEvent: SceneEvent = {\n abstractPos: {\n // x: e.x,\n // y: e.y,\n x: e.viewport.x,\n y: e.viewport.y\n }\n // eventArgs: {\n // col: (e.target as any).col,\n // row: (e.target as any).row,\n // event: e,\n // },\n };\n const targetCell = getTargetCell(e.target);\n if (targetCell) {\n tableEvent.eventArgs = {\n col: targetCell.col,\n row: targetCell.row,\n event: e,\n targetCell,\n mergeInfo: getMergeCellInfo(targetCell),\n target: e.target\n };\n }\n return tableEvent;\n}\n\nexport function getCellEventArgsSetWithTable(e: FederatedPointerEvent, table: BaseTableAPI): SceneEvent {\n const eventArgsSet = getCellEventArgsSet(e);\n if (!eventArgsSet.eventArgs) {\n return eventArgsSet;\n }\n if (!table.options.scrollFrozenCols || table.getFrozenColsOffset?.() === 0) {\n return eventArgsSet;\n }\n\n const xInTable = e.x - table.tableX;\n const yInTable = e.y - table.tableY;\n if (xInTable < 0 || yInTable < 0 || xInTable > table.tableNoFrameWidth || yInTable > table.tableNoFrameHeight) {\n return eventArgsSet;\n }\n\n const frozenViewportWidth = table.getFrozenColsWidth();\n const pickedCol = eventArgsSet.eventArgs.col;\n const pickedRow = eventArgsSet.eventArgs.row;\n const isPickedLeftFrozen =\n pickedCol >= 0 && pickedCol < table.frozenColCount && !table.isRightFrozenColumn(pickedCol, pickedRow);\n\n if (isPickedLeftFrozen && xInTable >= frozenViewportWidth) {\n const cell = table.getCellAtRelativePosition(e.x, e.y);\n if (cell.col === -1 || cell.row === -1) {\n return eventArgsSet;\n }\n const targetCell = table.scenegraph.getCell(cell.col, cell.row);\n eventArgsSet.eventArgs = {\n col: cell.col,\n row: cell.row,\n event: e,\n targetCell,\n mergeInfo: getMergeCellInfo(targetCell),\n target: targetCell as unknown as IEventTarget\n };\n }\n\n return eventArgsSet;\n}\n\nexport function getTargetCell(target: any) {\n while (target && target.parent) {\n if (target.role === 'cell') {\n return target;\n }\n target = target.parent;\n }\n return null;\n}\n\nfunction getMergeCellInfo(cellGroup: Group): MergeCellInfo | undefined {\n if (\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n return {\n colStart: cellGroup.mergeStartCol,\n colEnd: cellGroup.mergeEndCol,\n rowStart: cellGroup.mergeStartRow,\n rowEnd: cellGroup.mergeEndRow\n };\n }\n return undefined;\n}\n\nexport const regIndexReg = /radio-\\d+-\\d+-(\\d+)/;\n\nexport function 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, '&') // replace & with & to prevent XSS attacks\n .replace(/'/g, ''') // replace ' with ' to prevent XSS attacks\n .replace(/</g, '<') // replace < with < to prevent XSS attacks\n .replace(/>/g, '>') // replace > with > 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\">${' '.repeat(substring.length - 1)} </span>`;\n }) // replace 2 or more spaces with to prevent XSS attacks\n .replace(/\\t/gi, '	'); // replace \\t with 	 to prevent XSS attacks\n\n rowValues.push(`<td>${parsedCellData}</td>`);\n });\n result.push('<tr>', ...rowValues, '</tr>');\n\n if (rowIndex === rows.length - 1) {\n result.push('</tbody>');\n }\n });\n result.push('</table>');\n return [META_HEAD, result.join('')].join('');\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { toBoxArray } from './tools/helper';
|
|
|
24
24
|
export { Icon } from './scenegraph/graphic/icon';
|
|
25
25
|
export { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';
|
|
26
26
|
export { matrixAllocate, transformPointForCanvas, mapToCanvasPointForCanvas, registerGlobalEventTransformer, registerWindowEventTransformer, vglobal, Group, graphicUtil } from './vrender';
|
|
27
|
-
export declare const version = "1.
|
|
27
|
+
export declare const version = "1.25.0";
|
|
28
28
|
export { TYPES, core, ListTable, ListTableSimple, BaseTableAPI, ListTableConstructorOptions, PivotTable, PivotTableSimple, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, textMeasure, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, setCustomAlphabetCharSet, restoreMeasureText, pluginsDefinition };
|
|
29
29
|
declare function getIcons(): {
|
|
30
30
|
[key: string]: TYPES.ColumnIconOption;
|
package/cjs/index.js
CHANGED
|
@@ -249,7 +249,7 @@ Object.defineProperty(exports, "matrixAllocate", {
|
|
|
249
249
|
get: function() {
|
|
250
250
|
return vrender_2.graphicUtil;
|
|
251
251
|
}
|
|
252
|
-
}), exports.version = "1.
|
|
252
|
+
}), exports.version = "1.25.0", exports.getIcons = getIcons, exports.clearGlobal = clearGlobal,
|
|
253
253
|
TYPES.AggregationType, __exportStar(require("./components"), exports), __exportStar(require("./scenegraph/group-creater/cell-type"), exports);
|
|
254
254
|
|
|
255
255
|
var TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE");
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA4ElC,sBAAK;AA3EP,6CAA+B;AA4E7B,oBAAI;AA3EN,6CAA+B;AAuG7B,oBAAI;AAtGN,+CAAiC;AACjC,qDAAuC;AA0GrC,4BAAQ;AAzGV,iDAAmC;AAmGjC,wBAAM;AAlGR,yEAA2D;AA4GzD,wCAAc;AA3GhB,6DAA+C;AAiH7C,8CAAiB;AA3FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AA+E9C,oCAAY;AA7Ed,wEAAoE;AA8ElE,2FA9EO,wBAAU,OA8EP;AA7EZ,gGAAqF;AA8EnF,4FA9EO,iCAAW,OA8EP;AA7Eb,kEAA4G;AA+E1G,mGA/EO,iCAAkB,OA+EP;AADlB,yGA9E2B,uCAAwB,OA8E3B;AAfxB,4FA/DqD,0BAAW,OA+DrD;AAzDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AAyDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA+C;AAC/C,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA4ElC,sBAAK;AA3EP,6CAA+B;AA4E7B,oBAAI;AA3EN,6CAA+B;AAuG7B,oBAAI;AAtGN,+CAAiC;AACjC,qDAAuC;AA0GrC,4BAAQ;AAzGV,iDAAmC;AAmGjC,wBAAM;AAlGR,yEAA2D;AA4GzD,wCAAc;AA3GhB,6DAA+C;AAiH7C,8CAAiB;AA3FnB,mDAA4D;AAiD1D,0FAjDuB,4BAAS,OAiDvB;AAhDX,yDAAqD;AAiDnD,gGAjDO,kCAAe,OAiDP;AA/CjB,qDAA+D;AAkD7D,2FAlDwB,8BAAU,OAkDxB;AAjDZ,2DAAuD;AAkDrD,iGAlDO,oCAAgB,OAkDP;AAjDlB,6CAA0C;AAoDxC,2FApDO,uBAAU,OAoDP;AAlDZ,8DAAgD;AA+E9C,oCAAY;AA7Ed,wEAAoE;AA8ElE,2FA9EO,wBAAU,OA8EP;AA7EZ,gGAAqF;AA8EnF,4FA9EO,iCAAW,OA8EP;AA7Eb,kEAA4G;AA+E1G,mGA/EO,iCAAkB,OA+EP;AADlB,yGA9E2B,uCAAwB,OA8E3B;AAfxB,4FA/DqD,0BAAW,OA+DrD;AAzDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AACtB,yCAA4C;AAAnC,oGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AACb,wDAA6F;AAApF,+GAAA,qBAAqB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAErD,qCASmB;AARjB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,oHAAA,yBAAyB,OAAA;AACzB,yHAAA,8BAA8B,OAAA;AAC9B,yHAAA,8BAA8B,OAAA;AAC9B,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AAMA,QAAA,OAAO,GAAG,QAAQ,CAAC;AAyDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AArBC,4BAAQ;AAuBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA1BC,kCAAW;AA2Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport * as pluginsDefinition from './plugins';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet, textMeasure } from './scenegraph/utils/text-measure';\nimport type { BaseTableAPI } from './ts-types/base-table';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\nexport { toBoxArray } from './tools/helper';\nexport { Icon } from './scenegraph/graphic/icon';\nexport { CUSTOM_MERGE_PRE_NAME, CUSTOM_CONTAINER_NAME } from './scenegraph/component/custom';\n// 为插件等场景提供必要的 vrender 能力:只导出用到的符号,避免与 render/jsx 的导出成员发生命名冲突。\nexport {\n matrixAllocate,\n transformPointForCanvas,\n mapToCanvasPointForCanvas,\n registerGlobalEventTransformer,\n registerWindowEventTransformer,\n vglobal,\n Group,\n graphicUtil\n} from './vrender';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.25.0\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n BaseTableAPI,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n textMeasure,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n setCustomAlphabetCharSet,\n restoreMeasureText,\n pluginsDefinition\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
|
|
@@ -7,6 +7,7 @@ import { CellMover } from './cell-mover';
|
|
|
7
7
|
import type { BaseTableAPI } from '../../ts-types/base-table';
|
|
8
8
|
export declare class TableComponent {
|
|
9
9
|
table: BaseTableAPI;
|
|
10
|
+
_horizontalScrollBarTarget?: 'body' | 'frozen' | 'rightFrozen' | 'all';
|
|
10
11
|
border: IRect;
|
|
11
12
|
columnResizeLine: ILine;
|
|
12
13
|
columnResizeBgLine: ILine;
|
|
@@ -17,6 +18,8 @@ export declare class TableComponent {
|
|
|
17
18
|
menu: MenuHandler;
|
|
18
19
|
vScrollBar: ScrollBar;
|
|
19
20
|
hScrollBar: ScrollBar;
|
|
21
|
+
frozenHScrollBar: ScrollBar;
|
|
22
|
+
rightFrozenHScrollBar: ScrollBar;
|
|
20
23
|
frozenShadowLine: IRect;
|
|
21
24
|
rightFrozenShadowLine: IRect;
|
|
22
25
|
drillIcon: DrillIcon;
|
|
@@ -47,8 +50,10 @@ export declare class TableComponent {
|
|
|
47
50
|
hideVerticalScrollBar(): void;
|
|
48
51
|
showVerticalScrollBar(): void;
|
|
49
52
|
hideHorizontalScrollBar(): void;
|
|
50
|
-
showHorizontalScrollBar(): void;
|
|
53
|
+
showHorizontalScrollBar(target?: 'body' | 'frozen' | 'rightFrozen' | 'all'): void;
|
|
51
54
|
updateVerticalScrollBarPos(topRatio: number): void;
|
|
52
55
|
updateHorizontalScrollBarPos(leftRatio: number): void;
|
|
56
|
+
updateFrozenHorizontalScrollBarPos(leftRatio: number): void;
|
|
57
|
+
updateRightFrozenHorizontalScrollBarPos(leftRatio: number): void;
|
|
53
58
|
updateStyle(): void;
|
|
54
59
|
}
|
|
@@ -183,7 +183,9 @@ class TableComponent {
|
|
|
183
183
|
componentGroup.addChild(this.columnResizeLabel), componentGroup.addChild(this.rowResizeBgLine),
|
|
184
184
|
componentGroup.addChild(this.rowResizeLine), componentGroup.addChild(this.rowResizeLabel);
|
|
185
185
|
this.table.theme.scrollStyle.hoverOn && !this.table.theme.scrollStyle.barToSide ? (componentGroup.addChild(this.hScrollBar),
|
|
186
|
+
componentGroup.addChild(this.frozenHScrollBar), componentGroup.addChild(this.rightFrozenHScrollBar),
|
|
186
187
|
componentGroup.addChild(this.vScrollBar)) : (componentGroup.stage.defaultLayer.addChild(this.hScrollBar),
|
|
188
|
+
componentGroup.stage.defaultLayer.addChild(this.frozenHScrollBar), componentGroup.stage.defaultLayer.addChild(this.rightFrozenHScrollBar),
|
|
187
189
|
componentGroup.stage.defaultLayer.addChild(this.vScrollBar)), this.menu.bindTableComponent(componentGroup),
|
|
188
190
|
this.drillIcon.appand(componentGroup), this.cellMover.appand(componentGroup);
|
|
189
191
|
}
|
|
@@ -209,7 +211,33 @@ class TableComponent {
|
|
|
209
211
|
sliderStyle: sliderStyle,
|
|
210
212
|
range: [ 0, .1 ],
|
|
211
213
|
visible: !1
|
|
212
|
-
}), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.
|
|
214
|
+
}), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.frozenHScrollBar = new vrender_2.ScrollBar({
|
|
215
|
+
direction: "horizontal",
|
|
216
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
217
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
218
|
+
width: this.table.tableNoFrameWidth,
|
|
219
|
+
height: width,
|
|
220
|
+
padding: horizontalPadding,
|
|
221
|
+
railStyle: {
|
|
222
|
+
fill: scrollRailColor
|
|
223
|
+
},
|
|
224
|
+
sliderStyle: sliderStyle,
|
|
225
|
+
range: [ 0, .1 ],
|
|
226
|
+
visible: !1
|
|
227
|
+
}), this.frozenHScrollBar.render(), this.frozenHScrollBar.hideAll(), this.rightFrozenHScrollBar = new vrender_2.ScrollBar({
|
|
228
|
+
direction: "horizontal",
|
|
229
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
230
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
231
|
+
width: this.table.tableNoFrameWidth,
|
|
232
|
+
height: width,
|
|
233
|
+
padding: horizontalPadding,
|
|
234
|
+
railStyle: {
|
|
235
|
+
fill: scrollRailColor
|
|
236
|
+
},
|
|
237
|
+
sliderStyle: sliderStyle,
|
|
238
|
+
range: [ 0, .1 ],
|
|
239
|
+
visible: !1
|
|
240
|
+
}), this.rightFrozenHScrollBar.render(), this.rightFrozenHScrollBar.hideAll(), this.vScrollBar = new vrender_2.ScrollBar({
|
|
213
241
|
direction: "vertical",
|
|
214
242
|
x: 2 * -this.table.tableNoFrameWidth,
|
|
215
243
|
y: 2 * -this.table.tableNoFrameHeight,
|
|
@@ -225,14 +253,15 @@ class TableComponent {
|
|
|
225
253
|
}), this.vScrollBar.render(), this.vScrollBar.hideAll();
|
|
226
254
|
}
|
|
227
255
|
updateScrollBar() {
|
|
228
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
229
|
-
const oldHorizontalBarPos = this.table.stateManager.scroll.horizontalBarPos, oldVerticalBarPos = this.table.stateManager.scroll.verticalBarPos, theme = this.table.theme, width = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.width, visible1 = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.visible, horizontalVisible = null !== (_d = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.horizontalVisible) && void 0 !== _d ? _d : visible1, verticalVisible = null !== (_f = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.verticalVisible) && void 0 !== _f ? _f : visible1, tableWidth = Math.ceil(this.table.tableNoFrameWidth), tableHeight = Math.ceil(this.table.tableNoFrameHeight), totalHeight = this.table.getAllRowsHeight(), totalWidth = this.table.getAllColsWidth(), frozenRowsHeight = this.table.getFrozenRowsHeight(), frozenColsWidth = this.table.getFrozenColsWidth(), bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), hoverOn = this.table.theme.scrollStyle.hoverOn, sizeTolerance = (null === (
|
|
256
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
257
|
+
const oldHorizontalBarPos = this.table.stateManager.scroll.horizontalBarPos, oldVerticalBarPos = this.table.stateManager.scroll.verticalBarPos, oldFrozenHorizontalBarPos = this.table.stateManager.scroll.frozenHorizontalBarPos, oldRightFrozenHorizontalBarPos = this.table.stateManager.scroll.rightFrozenHorizontalBarPos, theme = this.table.theme, width = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.width, visible1 = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.visible, horizontalVisible = null !== (_d = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.horizontalVisible) && void 0 !== _d ? _d : visible1, verticalVisible = null !== (_f = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.verticalVisible) && void 0 !== _f ? _f : visible1, tableWidth = Math.ceil(this.table.tableNoFrameWidth), tableHeight = Math.ceil(this.table.tableNoFrameHeight), totalHeight = this.table.getAllRowsHeight(), totalWidth = this.table.getAllColsWidth(), frozenRowsHeight = this.table.getFrozenRowsHeight(), frozenColsWidth = this.table.getFrozenColsWidth(), frozenColsContentWidth = null !== (_j = null === (_h = (_g = this.table).getFrozenColsContentWidth) || void 0 === _h ? void 0 : _h.call(_g)) && void 0 !== _j ? _j : frozenColsWidth, bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), rightFrozenColsContentWidth = null !== (_m = null === (_l = (_k = this.table).getRightFrozenColsContentWidth) || void 0 === _l ? void 0 : _l.call(_k)) && void 0 !== _m ? _m : rightFrozenColsWidth, hoverOn = this.table.theme.scrollStyle.hoverOn, sizeTolerance = (null === (_o = this.table.options.customConfig) || void 0 === _o ? void 0 : _o._disableColumnAndRowSizeRound) ? 1 : 0;
|
|
230
258
|
if (totalWidth > tableWidth + sizeTolerance) {
|
|
231
|
-
const y = Math.min(tableHeight, totalHeight), rangeEnd = Math.max(.05,
|
|
259
|
+
const y = Math.min(tableHeight, totalHeight), bodyViewportWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth, bodyContentWidth = totalWidth - frozenColsContentWidth - rightFrozenColsContentWidth, rangeEnd = bodyContentWidth > 0 ? Math.max(.05, bodyViewportWidth / bodyContentWidth) : 1;
|
|
232
260
|
let attrY = 0;
|
|
233
261
|
attrY = this.table.theme.scrollStyle.barToSide ? this.table.tableNoFrameHeight - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y) + this.table.tableY : y - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y);
|
|
234
262
|
let hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x), hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth;
|
|
235
|
-
null !== (
|
|
263
|
+
const ignoreFrozenCols = null !== (_q = null === (_p = this.table.theme.scrollStyle) || void 0 === _p ? void 0 : _p.ignoreFrozenCols) && void 0 !== _q && _q;
|
|
264
|
+
ignoreFrozenCols ? (hScrollBarx = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x,
|
|
236
265
|
hScrollBarWidth = tableWidth) : (hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x),
|
|
237
266
|
hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth), this.hScrollBar.setAttributes({
|
|
238
267
|
x: hScrollBarx,
|
|
@@ -246,11 +275,63 @@ class TableComponent {
|
|
|
246
275
|
x: bounds.x1,
|
|
247
276
|
y: bounds.y1
|
|
248
277
|
}, "always" === horizontalVisible && this.hScrollBar.showAll();
|
|
278
|
+
const frozenScrollable = this.table.options.scrollFrozenCols && this.table.getFrozenColsOffset() > 0;
|
|
279
|
+
if (!ignoreFrozenCols && frozenScrollable) {
|
|
280
|
+
const frozenRangeEnd = Math.max(.05, frozenColsWidth / frozenColsContentWidth), x = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x;
|
|
281
|
+
this.frozenHScrollBar.setAttributes({
|
|
282
|
+
x: x,
|
|
283
|
+
y: attrY,
|
|
284
|
+
width: frozenColsWidth,
|
|
285
|
+
range: [ 0, frozenRangeEnd ],
|
|
286
|
+
visible: "always" === horizontalVisible
|
|
287
|
+
});
|
|
288
|
+
const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
|
|
289
|
+
this.frozenHScrollBar._viewPosition = {
|
|
290
|
+
x: bounds.x1,
|
|
291
|
+
y: bounds.y1
|
|
292
|
+
}, "always" === horizontalVisible && this.frozenHScrollBar.showAll();
|
|
293
|
+
} else this.frozenHScrollBar.setAttributes({
|
|
294
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
295
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
296
|
+
width: 0,
|
|
297
|
+
visible: !1
|
|
298
|
+
});
|
|
299
|
+
const rightFrozenScrollable = this.table.options.scrollRightFrozenCols && this.table.getRightFrozenColsOffset() > 0;
|
|
300
|
+
if (!ignoreFrozenCols && rightFrozenScrollable) {
|
|
301
|
+
const rightFrozenRangeEnd = Math.max(.05, rightFrozenColsWidth / rightFrozenColsContentWidth), x = tableWidth - rightFrozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x);
|
|
302
|
+
this.rightFrozenHScrollBar.setAttributes({
|
|
303
|
+
x: x,
|
|
304
|
+
y: attrY,
|
|
305
|
+
width: rightFrozenColsWidth,
|
|
306
|
+
range: [ 0, rightFrozenRangeEnd ],
|
|
307
|
+
visible: "always" === horizontalVisible
|
|
308
|
+
});
|
|
309
|
+
const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
|
|
310
|
+
this.rightFrozenHScrollBar._viewPosition = {
|
|
311
|
+
x: bounds.x1,
|
|
312
|
+
y: bounds.y1
|
|
313
|
+
}, "always" === horizontalVisible && this.rightFrozenHScrollBar.showAll();
|
|
314
|
+
} else this.rightFrozenHScrollBar.setAttributes({
|
|
315
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
316
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
317
|
+
width: 0,
|
|
318
|
+
visible: !1
|
|
319
|
+
});
|
|
249
320
|
} else this.hScrollBar.setAttributes({
|
|
250
321
|
x: 2 * -this.table.tableNoFrameWidth,
|
|
251
322
|
y: 2 * -this.table.tableNoFrameHeight,
|
|
252
323
|
width: 0,
|
|
253
324
|
visible: !1
|
|
325
|
+
}), this.frozenHScrollBar.setAttributes({
|
|
326
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
327
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
328
|
+
width: 0,
|
|
329
|
+
visible: !1
|
|
330
|
+
}), this.rightFrozenHScrollBar.setAttributes({
|
|
331
|
+
x: 2 * -this.table.tableNoFrameWidth,
|
|
332
|
+
y: 2 * -this.table.tableNoFrameHeight,
|
|
333
|
+
width: 0,
|
|
334
|
+
visible: !1
|
|
254
335
|
});
|
|
255
336
|
if (totalHeight > tableHeight + sizeTolerance) {
|
|
256
337
|
const x = Math.min(tableWidth, totalWidth), rangeEnd = Math.max(.05, (tableHeight - frozenRowsHeight) / (totalHeight - frozenRowsHeight));
|
|
@@ -274,7 +355,9 @@ class TableComponent {
|
|
|
274
355
|
height: 0,
|
|
275
356
|
visible: !1
|
|
276
357
|
});
|
|
277
|
-
this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.
|
|
358
|
+
this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.setFrozenColsScrollLeft(oldFrozenHorizontalBarPos, !1),
|
|
359
|
+
this.table.stateManager.setRightFrozenColsScrollLeft(oldRightFrozenHorizontalBarPos, !1),
|
|
360
|
+
this.table.stateManager.setScrollTop(oldVerticalBarPos);
|
|
278
361
|
}
|
|
279
362
|
hideResizeCol() {
|
|
280
363
|
this.columnResizeLine.setAttribute("visible", !1), this.columnResizeBgLine.setAttribute("visible", !1),
|
|
@@ -400,9 +483,10 @@ class TableComponent {
|
|
|
400
483
|
this.cellMover.update(backX, lineX, backY, lineY);
|
|
401
484
|
}
|
|
402
485
|
setFrozenColumnShadow(col, isRightFrozen) {
|
|
403
|
-
var _a, _b;
|
|
404
|
-
const colX = (0
|
|
405
|
-
col
|
|
486
|
+
var _a, _b, _c, _d, _e;
|
|
487
|
+
const colX = !isRightFrozen && col === this.table.frozenColCount - 1 && (null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.getFrozenColsWidth() : (0,
|
|
488
|
+
util_1.getColX)(col, this.table, isRightFrozen);
|
|
489
|
+
col < 0 || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.frozenShadowLine.setAttributes({
|
|
406
490
|
visible: !1,
|
|
407
491
|
x: colX,
|
|
408
492
|
height: this.table.getDrawRange().height
|
|
@@ -413,9 +497,10 @@ class TableComponent {
|
|
|
413
497
|
});
|
|
414
498
|
}
|
|
415
499
|
setRightFrozenColumnShadow(col) {
|
|
416
|
-
var _a, _b;
|
|
417
|
-
const colX = (0
|
|
418
|
-
|
|
500
|
+
var _a, _b, _c, _d, _e;
|
|
501
|
+
const colX = this.table.options.scrollRightFrozenCols && (null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.tableNoFrameWidth - this.table.getRightFrozenColsWidth() : (0,
|
|
502
|
+
util_1.getColX)(col, this.table, !0);
|
|
503
|
+
col >= this.table.colCount || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.rightFrozenShadowLine.setAttributes({
|
|
419
504
|
visible: !1,
|
|
420
505
|
x: colX - this.rightFrozenShadowLine.attribute.width,
|
|
421
506
|
height: this.table.getDrawRange().height
|
|
@@ -453,13 +538,23 @@ class TableComponent {
|
|
|
453
538
|
var _a;
|
|
454
539
|
const visible1 = this.table.theme.scrollStyle.visible, horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
|
|
455
540
|
"focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !1),
|
|
456
|
-
this.hScrollBar.hideAll(), this.
|
|
541
|
+
this.hScrollBar.hideAll(), this.frozenHScrollBar.setAttribute("visible", !1), this.frozenHScrollBar.hideAll(),
|
|
542
|
+
this.rightFrozenHScrollBar.setAttribute("visible", !1), this.rightFrozenHScrollBar.hideAll(),
|
|
543
|
+
this._horizontalScrollBarTarget = void 0, this.table.scenegraph.updateNextFrame());
|
|
457
544
|
}
|
|
458
|
-
showHorizontalScrollBar() {
|
|
545
|
+
showHorizontalScrollBar(target = "all") {
|
|
459
546
|
var _a;
|
|
460
547
|
const visible1 = this.table.theme.scrollStyle.visible, horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
|
|
461
|
-
"focus" !== horizontalVisible && "scrolling" !== horizontalVisible
|
|
462
|
-
this.
|
|
548
|
+
if ("focus" !== horizontalVisible && "scrolling" !== horizontalVisible) return;
|
|
549
|
+
if (this._horizontalScrollBarTarget === target) return;
|
|
550
|
+
this._horizontalScrollBarTarget = target;
|
|
551
|
+
const showFrozen = "all" === target || "frozen" === target, showRightFrozen = "all" === target || "rightFrozen" === target, bodyVisible = ("all" === target || "body" === target) && this.hScrollBar.attribute.width > 0;
|
|
552
|
+
this.hScrollBar.setAttribute("visible", bodyVisible), bodyVisible ? this.hScrollBar.showAll() : this.hScrollBar.hideAll();
|
|
553
|
+
const frozenVisible = showFrozen && this.frozenHScrollBar.attribute.width > 0;
|
|
554
|
+
this.frozenHScrollBar.setAttribute("visible", frozenVisible), frozenVisible ? this.frozenHScrollBar.showAll() : this.frozenHScrollBar.hideAll();
|
|
555
|
+
const rightFrozenVisible = showRightFrozen && this.rightFrozenHScrollBar.attribute.width > 0;
|
|
556
|
+
this.rightFrozenHScrollBar.setAttribute("visible", rightFrozenVisible), rightFrozenVisible ? this.rightFrozenHScrollBar.showAll() : this.rightFrozenHScrollBar.hideAll(),
|
|
557
|
+
this.table.scenegraph.updateNextFrame();
|
|
463
558
|
}
|
|
464
559
|
updateVerticalScrollBarPos(topRatio) {
|
|
465
560
|
const range = this.vScrollBar.attribute.range, size = range[1] - range[0], range0 = topRatio * (1 - size);
|
|
@@ -479,6 +574,24 @@ class TableComponent {
|
|
|
479
574
|
y: bounds.y1
|
|
480
575
|
};
|
|
481
576
|
}
|
|
577
|
+
updateFrozenHorizontalScrollBarPos(leftRatio) {
|
|
578
|
+
const range = this.frozenHScrollBar.attribute.range, size = range[1] - range[0], range0 = leftRatio * (1 - size);
|
|
579
|
+
this.frozenHScrollBar.setAttribute("range", [ range0, range0 + size ]);
|
|
580
|
+
const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
|
|
581
|
+
this.frozenHScrollBar._viewPosition = {
|
|
582
|
+
x: bounds.x1,
|
|
583
|
+
y: bounds.y1
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
updateRightFrozenHorizontalScrollBarPos(leftRatio) {
|
|
587
|
+
const range = this.rightFrozenHScrollBar.attribute.range, size = range[1] - range[0], range0 = leftRatio * (1 - size);
|
|
588
|
+
this.rightFrozenHScrollBar.setAttribute("range", [ range0, range0 + size ]);
|
|
589
|
+
const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
|
|
590
|
+
this.rightFrozenHScrollBar._viewPosition = {
|
|
591
|
+
x: bounds.x1,
|
|
592
|
+
y: bounds.y1
|
|
593
|
+
};
|
|
594
|
+
}
|
|
482
595
|
updateStyle() {
|
|
483
596
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
|
|
484
597
|
const theme = this.table.theme, scrollRailColor = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.scrollRailColor, scrollSliderColor = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.scrollSliderColor, scrollSliderCornerRadius = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.scrollSliderCornerRadius, width = null === (_d = theme.scrollStyle) || void 0 === _d ? void 0 : _d.width, horizontalPadding = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.horizontalPadding, verticalPadding = null === (_f = theme.scrollStyle) || void 0 === _f ? void 0 : _f.verticalPadding;
|
|
@@ -502,6 +615,20 @@ class TableComponent {
|
|
|
502
615
|
fill: scrollRailColor
|
|
503
616
|
},
|
|
504
617
|
sliderStyle: sliderStyle
|
|
618
|
+
}), this.frozenHScrollBar.setAttributes({
|
|
619
|
+
height: width,
|
|
620
|
+
padding: horizontalPadding,
|
|
621
|
+
railStyle: {
|
|
622
|
+
fill: scrollRailColor
|
|
623
|
+
},
|
|
624
|
+
sliderStyle: sliderStyle
|
|
625
|
+
}), this.rightFrozenHScrollBar.setAttributes({
|
|
626
|
+
height: width,
|
|
627
|
+
padding: horizontalPadding,
|
|
628
|
+
railStyle: {
|
|
629
|
+
fill: scrollRailColor
|
|
630
|
+
},
|
|
631
|
+
sliderStyle: sliderStyle
|
|
505
632
|
});
|
|
506
633
|
const columnResizeColor = null === (_g = theme.columnResize) || void 0 === _g ? void 0 : _g.lineColor, columnResizeWidth = null === (_h = theme.columnResize) || void 0 === _h ? void 0 : _h.lineWidth, columnResizeBgColor = null === (_j = theme.columnResize) || void 0 === _j ? void 0 : _j.bgColor, columnResizeBgWidth = null === (_k = theme.columnResize) || void 0 === _k ? void 0 : _k.width;
|
|
507
634
|
this.columnResizeLine.setAttributes({
|