UNPKG

@visactor/vrender-components

Version:

components library for dp visualization

162 lines (159 loc) 12.5 kB
import { vglobal } from "@visactor/vrender-core"; import { SeriesNumberCellStateValue, SeriesNumberEvent } from "./type"; export class TableSeriesNumberEventManager { constructor(tableSeriesNumber) { this.isPointerDownStartSelect = !1, this._onRightDown = e => { const target = e.target; this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellRightClick, { seriesNumberCell: target, event: e }); }, this._onPointermove = e => { var _a, _b, _c, _d; const target = e.target; if (this.isPointerDownStartSelect) { if (this._tableSeriesNumber.interactionState.selectIndexs.has(target.name)) { if (this._tableSeriesNumber.interactionState._lastClickItem && this._tableSeriesNumber.interactionState._lastClickItem.id === target.id) return; this._tableSeriesNumber.renderSelectedIndexsState(), this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellClick, { seriesNumberCell: target, event: e, isDragSelect: !0 }); } else this._tableSeriesNumber.interactionState.selectIndexs.add(target.name), this._tableSeriesNumber.renderSelectedIndexsState(), this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellClick, { seriesNumberCell: target, event: e, isDragSelect: !0 }); this._tableSeriesNumber.interactionState._lastClickItem = target; } else { if (target.name.startsWith("col")) { const colIndex = Number(target.name.split("-")[1]), canvasPointXY = target.stage.window.pointTransform(e.canvasX, e.canvasY), XYtoTarget = { x: 0, y: 0 }; target.globalTransMatrix.transformPoint(canvasPointXY, XYtoTarget), XYtoTarget.x <= 4 || XYtoTarget.x <= target.getAttributes().width && XYtoTarget.x >= target.getAttributes().width - 4 ? target.setAttribute("cursor", "col-resize") : null != colIndex && (null === (_b = (_a = this._tableSeriesNumber.attribute).checkMoveColumnOrder) || void 0 === _b ? void 0 : _b.call(_a, colIndex)) ? target.setAttribute("cursor", "grab") : target.setAttribute("cursor", "default"); } else if (target.name.startsWith("row")) { const rowIndex = Number(target.name.split("-")[1]), canvasPointXY = target.stage.window.pointTransform(e.canvasX, e.canvasY), XYtoTarget = { x: 0, y: 0 }; target.globalTransMatrix.transformPoint(canvasPointXY, XYtoTarget), XYtoTarget.y <= 4 || XYtoTarget.y <= target.getAttributes().height && XYtoTarget.y >= target.getAttributes().height - 4 ? target.setAttribute("cursor", "row-resize") : null != rowIndex && (null === (_d = (_c = this._tableSeriesNumber.attribute).checkMoveRowOrder) || void 0 === _d ? void 0 : _d.call(_c, rowIndex)) ? target.setAttribute("cursor", "grab") : target.setAttribute("cursor", "default"); } if (this._tableSeriesNumber.interactionState._lastHoverItem) { if (this._tableSeriesNumber.interactionState._lastHoverItem.id === target.id) return; this._unHoverHandler(this._tableSeriesNumber.interactionState._lastHoverItem, e); } this._tableSeriesNumber.getAttributes().hover && this._hoverHandler(target, e); } }, this._onPointerleave = e => { this._tableSeriesNumber.interactionState._lastHoverItem && (this._unHoverHandler(this._tableSeriesNumber.interactionState._lastHoverItem, e), this._tableSeriesNumber.interactionState._lastHoverItem = null); }, this._onPointerdown = e => { var _a, _b, _c, _d, _e; if (2 === e.button) return; const target = e.target; if (target.name.startsWith("col")) { const colIndex = Number(target.name.split("-")[1]), canvasPointXY = target.stage.window.pointTransform(e.canvasX, e.canvasY), XYtoTarget = { x: 0, y: 0 }; if (target.globalTransMatrix.transformPoint(canvasPointXY, XYtoTarget), XYtoTarget.x <= 4 || XYtoTarget.x <= target.getAttributes().width && XYtoTarget.x >= target.getAttributes().width - 4) { let resizeTargetColIndex = colIndex; return XYtoTarget.x <= 4 && (resizeTargetColIndex = colIndex - 1), void this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.resizeColWidthStart, { colIndex: resizeTargetColIndex, event: e }); } if (null != colIndex && (null === (_b = (_a = this._tableSeriesNumber.attribute).checkMoveColumnOrder) || void 0 === _b ? void 0 : _b.call(_a, colIndex))) return void this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.dragColumnOrderStart, { colIndex: colIndex, event: e }); } else if (target.name.startsWith("row")) { const rowIndex = Number(target.name.split("-")[1]), canvasPointXY = target.stage.window.pointTransform(e.canvasX, e.canvasY), XYtoTarget = { x: 0, y: 0 }; if (target.globalTransMatrix.transformPoint(canvasPointXY, XYtoTarget), XYtoTarget.y <= 4 || XYtoTarget.y <= target.getAttributes().height && XYtoTarget.y >= target.getAttributes().height - 4) { let resizeTargetRowIndex = rowIndex; return XYtoTarget.y <= 4 && (resizeTargetRowIndex = rowIndex - 1), void this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.resizeRowHeightStart, { rowIndex: resizeTargetRowIndex, event: e }); } if (null != rowIndex && (null === (_d = (_c = this._tableSeriesNumber.attribute).checkMoveRowOrder) || void 0 === _d ? void 0 : _d.call(_c, rowIndex))) return void this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.dragRowOrderStart, { rowIndex: rowIndex, event: e }); } if (this.isPointerDownStartSelect = !0, null === (_e = this._tableSeriesNumber.interactionState.selectIndexs) || void 0 === _e ? void 0 : _e.size) if (this._tableSeriesNumber.interactionState.selectIndexs.has(target.name)) if (e.nativeEvent.ctrlKey || e.nativeEvent.metaKey) this._tableSeriesNumber.removeOneGroupSelected(target), this._unClickHandler(target.name, e); else { this._tableSeriesNumber.removeAllSelectedIndexs(); for (const name of this._tableSeriesNumber.interactionState.selectIndexs) this._unClickHandler(name, e); } else if (e.nativeEvent.ctrlKey || e.nativeEvent.metaKey) ; else { this._tableSeriesNumber.removeAllSelectedIndexs(); for (const name of this._tableSeriesNumber.interactionState.selectIndexs) (target.name.startsWith("row") && name.startsWith("row") || target.name.startsWith("col") && name.startsWith("col")) && this._unClickHandler(name, e); } this._clickHandler(target, e); }, this._onPointerup = e => { const target = e.target; this.isPointerDownStartSelect && (this.isPointerDownStartSelect = !1, this._tableSeriesNumber.interactionState._lastClickItem = null, this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellClickUp, { seriesNumberCell: target, event: e })); }, this._tableSeriesNumber = tableSeriesNumber; } bindEvents() { const {hover: hover = !0, select: select = !0} = this._tableSeriesNumber.attribute; hover && (this._tableSeriesNumber._rowSeriesNumberGroup.addEventListener("pointermove", this._onPointermove), this._tableSeriesNumber._rowSeriesNumberGroup.addEventListener("pointerleave", this._onPointerleave), this._tableSeriesNumber._colSeriesNumberGroup.addEventListener("pointermove", this._onPointermove), this._tableSeriesNumber._colSeriesNumberGroup.addEventListener("pointerleave", this._onPointerleave), this._tableSeriesNumber._cornerGroup.addEventListener("pointermove", this._onPointermove), this._tableSeriesNumber._cornerGroup.addEventListener("pointerleave", this._onPointerleave), this._tableSeriesNumber._frozenTopRowSeriesNumberGroup.addEventListener("pointermove", this._onPointermove), this._tableSeriesNumber._frozenTopRowSeriesNumberGroup.addEventListener("pointerleave", this._onPointerleave), this._tableSeriesNumber._frozenLeftColSeriesNumberGroup.addEventListener("pointermove", this._onPointermove), this._tableSeriesNumber._frozenLeftColSeriesNumberGroup.addEventListener("pointerleave", this._onPointerleave)), select && (this._tableSeriesNumber._rowSeriesNumberGroup.addEventListener("pointerdown", this._onPointerdown), this._tableSeriesNumber._colSeriesNumberGroup.addEventListener("pointerdown", this._onPointerdown), this._tableSeriesNumber._cornerGroup.addEventListener("pointerdown", this._onPointerdown), this._tableSeriesNumber._frozenTopRowSeriesNumberGroup.addEventListener("pointerdown", this._onPointerdown), this._tableSeriesNumber._frozenLeftColSeriesNumberGroup.addEventListener("pointerdown", this._onPointerdown), vglobal.addEventListener("pointerup", this._onPointerup)), this._tableSeriesNumber._rowSeriesNumberGroup.addEventListener("rightdown", this._onRightDown), this._tableSeriesNumber._colSeriesNumberGroup.addEventListener("rightdown", this._onRightDown), this._tableSeriesNumber._cornerGroup.addEventListener("rightdown", this._onRightDown), this._tableSeriesNumber._frozenTopRowSeriesNumberGroup.addEventListener("rightdown", this._onRightDown), this._tableSeriesNumber._frozenLeftColSeriesNumberGroup.addEventListener("rightdown", this._onRightDown); } _hoverHandler(seriesNumberCell, e) { this._tableSeriesNumber.interactionState._lastHoverItem = seriesNumberCell, seriesNumberCell.hasState(SeriesNumberCellStateValue.select) ? seriesNumberCell.useStates([ SeriesNumberCellStateValue.select, SeriesNumberCellStateValue.hover ]) : seriesNumberCell.useStates([ SeriesNumberCellStateValue.hover ]), this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellHover, { seriesNumberCell: seriesNumberCell, event: e }); } _unHoverHandler(seriesNumberCell, e) { seriesNumberCell.removeState(SeriesNumberCellStateValue.hover), this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellUnHover, { seriesNumberCell: seriesNumberCell, event: e }); } _clickHandler(seriesNumberCell, e) { this._tableSeriesNumber.addOneGroupSelected(seriesNumberCell), this._tableSeriesNumber.interactionState._lastClickItem = seriesNumberCell, this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellClick, { seriesNumberCell: seriesNumberCell, event: e }); } _unClickHandler(seriesNumberIndex, e) { const seriesNumberCell = seriesNumberIndex.startsWith("row") ? this._tableSeriesNumber.getRowSeriesNumberCellGroup(Number(seriesNumberIndex.split("-")[1])) : this._tableSeriesNumber.getColSeriesNumberCellGroup(Number(seriesNumberIndex.split("-")[1])); null == seriesNumberCell || seriesNumberCell.removeState(SeriesNumberCellStateValue.select), this._tableSeriesNumber.dispatchTableSeriesNumberEvent(SeriesNumberEvent.seriesNumberCellCancelClick, { index: seriesNumberIndex, event: e }); } } //# sourceMappingURL=event-manager.js.map