|
|
import { DomComputedStyle } from "./dom-style";
|
|
|
|
|
|
declare namespace domGeometry {
|
|
|
|
|
|
interface DomGeometryWidthHeight {
|
|
|
w?: number;
|
|
|
h?: number;
|
|
|
}
|
|
|
|
|
|
interface DomGeometryBox extends DomGeometryWidthHeight {
|
|
|
l?: number;
|
|
|
t?: number;
|
|
|
}
|
|
|
|
|
|
interface DomGeometryBoxExtents extends DomGeometryBox {
|
|
|
r?: number;
|
|
|
b?: number;
|
|
|
}
|
|
|
|
|
|
interface Point {
|
|
|
x: number;
|
|
|
y: number;
|
|
|
}
|
|
|
|
|
|
interface DomGeometryXYBox extends DomGeometryWidthHeight, Point {
|
|
|
}
|
|
|
|
|
|
interface DomGeometry {
|
|
|
boxModel: string; /* TODO: string literal 'border-box' | 'content-box' */
|
|
|
|
|
|
/**
|
|
|
* Returns object with special values specifically useful for node
|
|
|
* fitting.
|
|
|
*/
|
|
|
getPadExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
|
|
|
|
|
|
/**
|
|
|
* returns an object with properties useful for noting the border
|
|
|
* dimensions.
|
|
|
*/
|
|
|
getBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
|
|
|
|
|
|
/**
|
|
|
* Returns object with properties useful for box fitting with
|
|
|
* regards to padding.
|
|
|
*/
|
|
|
getPadBorderExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
|
|
|
|
|
|
/**
|
|
|
* returns object with properties useful for box fitting with
|
|
|
* regards to box margins (i.e., the outer-box).
|
|
|
* - l/t = marginLeft, marginTop, respectively
|
|
|
* - w = total width, margin inclusive
|
|
|
* - h = total height, margin inclusive
|
|
|
* The w/h are used for calculating boxes.
|
|
|
* Normally application code will not need to invoke this
|
|
|
* directly, and will use the ...box... functions instead.
|
|
|
*/
|
|
|
getMarginExtents(node: Element, computedStyle?: DomComputedStyle): DomGeometryBoxExtents;
|
|
|
|
|
|
/**
|
|
|
* returns an object that encodes the width, height, left and top
|
|
|
* positions of the node's margin box.
|
|
|
*/
|
|
|
getMarginBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
|
|
|
|
|
|
/**
|
|
|
* Returns an object that encodes the width, height, left and top
|
|
|
* positions of the node's content box, irrespective of the
|
|
|
* current box model.
|
|
|
*/
|
|
|
getContentBox(node: Element, computedStyle?: DomComputedStyle): DomGeometryBox;
|
|
|
|
|
|
/**
|
|
|
* Sets the size of the node's contents, irrespective of margins,
|
|
|
* padding, or borders.
|
|
|
*/
|
|
|
setContentSize(node: Element, box: DomGeometryWidthHeight, computedStyle?: DomComputedStyle): void;
|
|
|
|
|
|
/**
|
|
|
* sets the size of the node's margin box and placement
|
|
|
* (left/top), irrespective of box model. Think of it as a
|
|
|
* passthrough to setBox that handles box-model vagaries for
|
|
|
* you.
|
|
|
*/
|
|
|
setMarginBox(node: Element, box: DomGeometryBox, computedStyle?: DomComputedStyle): void;
|
|
|
|
|
|
/**
|
|
|
* Returns true if the current language is left-to-right, and false otherwise.
|
|
|
*/
|
|
|
isBodyLtr(doc?: Document): boolean;
|
|
|
|
|
|
/**
|
|
|
* Returns an object with {node, x, y} with corresponding offsets.
|
|
|
*/
|
|
|
docScroll(doc?: Document): Point;
|
|
|
|
|
|
/**
|
|
|
* Deprecated method previously used for IE6-IE7. Now, just returns `{x:0, y:0}`.
|
|
|
*/
|
|
|
getIeDocumentElementOffset(doc: Document): Point;
|
|
|
|
|
|
/**
|
|
|
* In RTL direction, scrollLeft should be a negative value, but IE
|
|
|
* returns a positive one. All codes using documentElement.scrollLeft
|
|
|
* must call this function to fix this error, otherwise the position
|
|
|
* will offset to right when there is a horizontal scrollbar.
|
|
|
*/
|
|
|
fixIeBiDiScrollLeft(scrollLeft: number, doc?: Document): number;
|
|
|
|
|
|
/**
|
|
|
* Gets the position and size of the passed element relative to
|
|
|
* the viewport (if includeScroll==false), or relative to the
|
|
|
* document root (if includeScroll==true).
|
|
|
*/
|
|
|
position(node: Element, includeScroll?: boolean): DomGeometryXYBox;
|
|
|
|
|
|
/**
|
|
|
* returns an object that encodes the width and height of
|
|
|
* the node's margin box
|
|
|
*/
|
|
|
getMarginSize(node: Element, computedStyle?: DomComputedStyle): DomGeometryWidthHeight;
|
|
|
|
|
|
/**
|
|
|
* Normalizes the geometry of a DOM event, normalizing the pageX, pageY,
|
|
|
* offsetX, offsetY, layerX, and layerX properties
|
|
|
*/
|
|
|
normalizeEvent(event: Event): void;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
declare const domGeometry: domGeometry.DomGeometry;
|
|
|
export = domGeometry;
|
|
|
|