From 1324362cc63ea2715a2e7e5fb7321342f3fec131 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Sun, 21 Feb 2016 21:25:46 -0600 Subject: [PATCH] chore(util): do not global window/document variables --- ionic/util/dom.ts | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/ionic/util/dom.ts b/ionic/util/dom.ts index 2730b47b7d..5a625284fb 100644 --- a/ionic/util/dom.ts +++ b/ionic/util/dom.ts @@ -1,14 +1,10 @@ -let win: any = window; -let doc: any = document; -let docEle: any = doc.documentElement; - - // RequestAnimationFrame Polyfill (Android 4.3 and below) /*! @author Paul Irish */ /*! @source https://gist.github.com/paulirish/1579671 */ (function() { var rafLastTime = 0; + const win: any = window; if (!win.requestAnimationFrame) { win.requestAnimationFrame = function(callback, element) { var currTime = Date.now(); @@ -28,8 +24,8 @@ let docEle: any = doc.documentElement; } })(); -export const raf = win.requestAnimationFrame.bind(win); -export const cancelRaf = win.cancelAnimationFrame.bind(win); +export const raf = window.requestAnimationFrame.bind(window); +export const cancelRaf = window.cancelAnimationFrame.bind(window); export function rafFrames(framesToWait, callback) { @@ -60,7 +56,7 @@ export let CSS: { '-moz-transform', 'moz-transform', 'MozTransform', 'mozTransform', 'msTransform']; for (i = 0; i < keys.length; i++) { - if (docEle.style[keys[i]] !== undefined) { + if (document.documentElement.style[keys[i]] !== undefined) { CSS.transform = keys[i]; break; } @@ -69,7 +65,7 @@ export let CSS: { // transition keys = ['webkitTransition', 'mozTransition', 'msTransition', 'transition']; for (i = 0; i < keys.length; i++) { - if (docEle.style[keys[i]] !== undefined) { + if (document.documentElement.style[keys[i]] !== undefined) { CSS.transition = keys[i]; break; } @@ -120,18 +116,18 @@ export function ready(callback?: Function) { promise = new Promise(resolve => { callback = resolve; }); } - if (doc.readyState === 'complete' || doc.readyState === 'interactive') { + if (document.readyState === 'complete' || document.readyState === 'interactive') { callback(); } else { function completed() { - doc.removeEventListener('DOMContentLoaded', completed, false); - win.removeEventListener('load', completed, false); + document.removeEventListener('DOMContentLoaded', completed, false); + window.removeEventListener('load', completed, false); callback(); } - doc.addEventListener('DOMContentLoaded', completed, false); - win.addEventListener('load', completed, false); + document.addEventListener('DOMContentLoaded', completed, false); + window.addEventListener('load', completed, false); } return promise; @@ -145,16 +141,16 @@ export function windowLoad(callback?: Function) { promise = new Promise(resolve => { callback = resolve; }); } - if (doc.readyState === 'complete') { + if (document.readyState === 'complete') { callback(); } else { function completed() { - win.removeEventListener('load', completed, false); + window.removeEventListener('load', completed, false); callback(); } - win.addEventListener('load', completed, false); + window.addEventListener('load', completed, false); } return promise; @@ -181,7 +177,7 @@ export function hasPointerMoved(threshold, startCoord, endCoord) { } export function isActive(ele) { - return !!(ele && (doc.activeElement === ele)); + return !!(ele && (document.activeElement === ele)); } export function hasFocus(ele) { @@ -196,7 +192,7 @@ export function isTextInput(ele) { } export function hasFocusedTextInput() { - let ele = doc.activeElement; + let ele = document.activeElement; if (isTextInput(ele)) { return (ele.parentElement.querySelector(':focus') === ele); } @@ -220,7 +216,7 @@ export function copyInputAttributes(srcElement, destElement) { let matchesFn: string; let matchesMethods: Array = ['matches','webkitMatchesSelector','mozMatchesSelector','msMatchesSelector']; matchesMethods.some((fn: string) => { - if (typeof docEle[fn] == 'function') { + if (typeof document.documentElement[fn] === 'function') { matchesFn = fn; return true; } @@ -275,10 +271,10 @@ export function getDimensions(ele: HTMLElement, id: string): { export function windowDimensions(): {width: number, height: number} { if (!dimensionCache.win) { // make sure we got good values before caching - if (win.innerWidth && win.innerHeight) { + if (window.innerWidth && window.innerHeight) { dimensionCache.win = { - width: win.innerWidth, - height: win.innerHeight + width: window.innerWidth, + height: window.innerHeight }; } else { // do not cache bad values