chore(): add types

This commit is contained in:
Tim Lancina
2016-01-12 15:56:09 -06:00
parent 398eed036b
commit 1afac16250
2 changed files with 13 additions and 18 deletions

View File

@ -3,6 +3,7 @@ import {Config} from '../config/config';
import {isArray} from '../util';
import * as dom from '../util/dom';
let ids:number = 0;
/**
* Base class for all Ionic components. Exposes some common functionality
@ -10,8 +11,10 @@ import * as dom from '../util/dom';
* sending/receiving app-level events.
*/
export class Ion {
constructor(elementRef: ElementRef) {
this.elementRef = elementRef;
private _id: string;
constructor(protected elementRef: ElementRef) {
this._id = 'i-' + ids++;
}
getElementRef() {
@ -23,15 +26,15 @@ export class Ion {
}
getDimensions() {
return dom.getDimensions(this);
return dom.getDimensions(this.elementRef.nativeElement, this._id);
}
width() {
return dom.getDimensions(this).width;
return dom.getDimensions(this.elementRef.nativeElement, this._id).width;
}
height() {
return dom.getDimensions(this).height;
return dom.getDimensions(this.elementRef.nativeElement, this._id).height;
}
}

View File

@ -234,21 +234,14 @@ export function removeElement(ele) {
* to reduce DOM reads. Cache is cleared on a window resize.
* @param {TODO} ele TODO
*/
export function getDimensions(ion, ele) {
if (!ion._dimId) {
ion._dimId = ++dimensionIds;
if (ion._dimId % 1000 === 0) {
// periodically flush dimensions
flushDimensionCache();
}
}
let dimensions = dimensionCache[ion._dimId];
export function getDimensions(ele: HTMLElement, id: string): {
width: number, height: number, left: number, top: number
} {
let dimensions = dimensionCache[id];
if (!dimensions) {
let ele = ion.getNativeElement();
// make sure we got good values before caching
if (ele.offsetWidth && ele.offsetHeight) {
dimensions = dimensionCache[ion._dimId] = {
dimensions = dimensionCache[id] = {
width: ele.offsetWidth,
height: ele.offsetHeight,
left: ele.offsetLeft,
@ -285,7 +278,6 @@ export function flushDimensionCache() {
}
let dimensionCache:any = {};
let dimensionIds = 0;
function isStaticPositioned(element) {
return (element.style.position || 'static') === 'static';