@egjs/flicking
Version:
Everyday 30 million people experience. It's reliable, flexible and extendable carousel.
75 lines (74 loc) • 2.12 kB
TypeScript
import Flicking from "../Flicking";
import { SetSizeParams } from "../types/params";
export interface ViewportPadding {
/** CSS `padding-left` */
left: number;
/** CSS `padding-right` */
right: number;
/** CSS `padding-top` */
top: number;
/** CSS `padding-bottom` */
bottom: number;
}
/**
* A component that manages viewport size
*/
declare class Viewport {
private _flicking;
private _el;
private _width;
private _height;
private _isBorderBoxSizing;
private _padding;
/**
* A viewport(root) element
* @readonly
*/
get element(): HTMLElement;
/**
* Viewport width, without paddings
* @readonly
*/
get width(): number;
/**
* Viewport height, without paddings
* @readonly
*/
get height(): number;
/**
* Viewport paddings
* @readonly
*/
get padding(): ViewportPadding;
/**
* @param flicking - Flicking instance
* @param el - A viewport element
*/
constructor(flicking: Flicking, el: HTMLElement);
/**
* Change viewport's size.
* @remarks
* This will change the actual size of `.flicking-viewport` element by changing its CSS width/height property
* @param size - {@link SetSizeParams}
*/
setSize(size: SetSizeParams): void;
/**
* Measure the current size of the viewport element without updating {@link Viewport.width | width}/{@link Viewport.height | height}
* @internal
* @privateRemarks
* Used inside {@link Flicking.resize} to determine whether the panels should be re-rendered (optimizeSizeUpdate)
* while keeping the previous viewport size until the re-rendering finishes.
* The new size is committed afterwards by calling {@link Viewport.resize | resize()}.
* @returns Current width/height of the viewport element, without paddings
*/
measureSize(): {
width: number;
height: number;
};
/**
* Update width/height to the current viewport element's size
*/
resize(): void;
private _measure;
}
export default Viewport;