@antv/s2
Version:
effective spreadsheet render core lib
33 lines (32 loc) • 1.08 kB
TypeScript
import type { SpreadSheet } from '../../sheet-type';
/**
* 基于 Canvas 的高清适配方案
* 1. 双屏切换, devicePixelRatio 变化时
* 2. Mac 触控板缩放
* 3. 浏览器窗口缩放
*/
export declare class HdAdapter {
private viewport;
private devicePixelRatioMedia;
private spreadsheet;
private isDevicePixelRatioChange;
private zoomOffsetLeft;
constructor(spreadsheet: SpreadSheet);
init: () => void;
destroy: () => void;
private initDevicePixelRatioListener;
private removeDevicePixelRatioListener;
private initDeviceZoomListener;
private removeDeviceZoomListener;
/**
* DPR 改变也会触发 visualViewport 的 resize 事件, 预期是只监听双指缩放, 所以这里规避掉
* @see https://github.com/antvis/S2/issues/2072
*/
private renderByZoomScaleWithoutResizeEffect;
/**
* 如果是浏览器窗口的放大缩小 (command +/-), 也会触发
*/
private renderByDevicePixelRatioChanged;
private renderByDevicePixelRatio;
private renderByZoomScale;
}