fix(all): ts strict (part 4)

This commit is contained in:
Manu Mtz.-Almeida
2018-03-21 11:27:59 +01:00
parent 779f02c932
commit 4693229c84
8 changed files with 63 additions and 61 deletions

View File

@ -65,6 +65,6 @@ export interface EffectProperty {
export interface EffectState {
val: any;
num: number|null;
num: number;
effectUnit: string;
}

View File

@ -211,20 +211,21 @@ export class Animator {
// add from/to EffectState to the EffectProperty
const fxState: EffectState = {
val: val,
num: null,
num: 0,
effectUnit: '',
};
fxProp[state] = fxState;
if (typeof val === 'string' && val.indexOf(' ') < 0) {
const r = val.match(CSS_VALUE_REGEX);
const num = parseFloat(r[1]);
if (r) {
const num = parseFloat(r[1]);
if (!isNaN(num)) {
fxState.num = num;
if (!isNaN(num)) {
fxState.num = num;
}
fxState.effectUnit = (r[0] !== r[2] ? r[2] : '');
}
fxState.effectUnit = (r[0] !== r[2] ? r[2] : '');
} else if (typeof val === 'number') {
fxState.num = val;
}
@ -972,19 +973,18 @@ export class Animator {
* NO RECURSION
*/
_willChange(addWillChange: boolean) {
let i = 0;
let wc: string[];
const effects = this._fxProperties;
let willChange: string;
if (addWillChange && effects) {
wc = [];
for (i = 0; i < effects.length; i++) {
for (let i = 0; i < effects.length; i++) {
const propWC = effects[i].wc;
if (propWC === 'webkitTransform') {
wc.push('transform', '-webkit-transform');
} else {
} else if (propWC) {
wc.push(propWC);
}
}
@ -994,9 +994,12 @@ export class Animator {
willChange = '';
}
for (i = 0; i < this._elementTotal; i++) {
// ******** DOM WRITE ****************
(this._elements[i] as any).style.willChange = willChange;
const elements = this._elements;
if (elements) {
for (let i = 0; i < this._elementTotal; i++) {
// ******** DOM WRITE ****************
(elements[i] as any).style.willChange = willChange;
}
}
}
@ -1057,7 +1060,7 @@ export class Animator {
if (this._isReverse) {
// if the animation is going in reverse then
// flip the step value: 0 becomes 1, 1 becomes 0
currentStepValue = ((currentStepValue * -1) + 1);
currentStepValue = 1 - currentStepValue;
}
const stepValue = shouldComplete ? 1 : 0;
@ -1065,10 +1068,10 @@ export class Animator {
if (dur === undefined) {
dur = -1;
}
if (diff < 0.05) {
if (dur < 0) {
dur = this._duration || 0;
} else if (diff < 0.05) {
dur = 0;
} else if (dur < 0) {
dur = this._duration;
}
this._isAsync = (dur > 30);

View File

@ -1,30 +1,26 @@
export function transitionEnd(el: HTMLElement, callback: {(ev?: TransitionEvent): void}) {
export function transitionEnd(el: HTMLElement|null, callback: {(ev?: TransitionEvent): void}) {
let unRegTrans: Function;
let unRegWKTrans: Function;
const opts: any = { passive: true };
function unregister() {
unRegWKTrans && unRegWKTrans();
unRegTrans && unRegTrans();
}
function onTransitionEnd(ev: TransitionEvent) {
function onTransitionEnd(ev: Event) {
if (el === ev.target) {
unregister();
callback(ev);
callback(ev as TransitionEvent);
}
}
if (el) {
el.addEventListener('webkitTransitionEnd', onTransitionEnd, opts);
unRegWKTrans = function() {
el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);
};
el.addEventListener('transitionend', onTransitionEnd, opts);
unRegTrans = function() {
el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);
el.removeEventListener('transitionend', onTransitionEnd, opts);
};
}