igniteui-react-core
Version:
Ignite UI React Core.
1,364 lines (1,363 loc) • 40.2 kB
JavaScript
/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { __extends } from "tslib";
import { Base, String_$type, runOn, Type, markType, BaseError, Number_$type } from "./type";
import { LinkedList$1 } from "./LinkedList$1";
import { Dictionary$2 } from "./Dictionary$2";
import { LinkedListNode$1 } from "./LinkedListNode$1";
import { GlobalAnimationState } from "./GlobalAnimationState";
import { timeSpanTotalMilliseconds } from "./timespan";
import { dateNow } from "./date";
import { TaskCompletionSource$1 } from "./TaskCompletionSource$1";
import { isInfinity, isNaN_ } from "./number";
import { AnimationKeyFrame } from "./AnimationKeyFrame";
import { List$1 } from "./List$1";
import { UIElementPropertyId_$type } from "./UIElementPropertyId";
import { UIElementPropertyAccessor } from "./UIElementPropertyAccessor";
import { EasingFunctions } from "./EasingFunctions";
import { AnimationKeyFrameProperty } from "./AnimationKeyFrameProperty";
import { BrushUtil } from "./BrushUtil";
import { InterpolationUtil } from "./InterpolationUtil";
import { MatrixTransform } from "./MatrixTransform";
import { TransformMatrixHelpler } from "./TransformMatrixHelpler";
import { UIElementPropertyAccessorFactory } from "./UIElementPropertyAccessorFactory";
import { HashSet$1 } from "./HashSet$1";
/**
* @hidden
*/
var KeyFrameAnimationTimeline = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(KeyFrameAnimationTimeline, _super);
function KeyFrameAnimationTimeline(a, b) {
var _this = _super.call(this) || this;
_this.c = null;
_this.a = null;
_this.h = new Date();
_this.g = new LinkedList$1(IKeyFrameAnimation_$type);
_this.f = new Dictionary$2(String_$type, IKeyFrameAnimation_$type, 0);
_this.e = new Dictionary$2(IKeyFrameAnimation_$type, LinkedListNode$1.$.specialize(IKeyFrameAnimation_$type), 0);
_this.k = 0;
_this.d = false;
_this.i = 0;
_this.l = -1;
_this.c = a;
_this.a = b;
_this.h = dateNow();
return _this;
}
Object.defineProperty(KeyFrameAnimationTimeline.prototype, "b", {
get: function () {
return this.a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationTimeline.prototype, "j", {
get: function () {
if (this.d) {
return this.i;
}
return timeSpanTotalMilliseconds((+(dateNow()) - +(this.h)));
},
enumerable: false,
configurable: true
});
KeyFrameAnimationTimeline.prototype.m = function (a) {
if (this.f.containsKey(a.id)) {
return;
}
this.g.f(a);
var b = this.g.d;
this.e.addItem(a, b);
this.f.addItem(a.id, a);
var c = false;
if (this.k == 0) {
c = true;
}
this.k++;
if (c) {
this.n();
}
GlobalAnimationState.d.l();
};
KeyFrameAnimationTimeline.prototype.o = function (a) {
if (!this.e.containsKey(a)) {
return;
}
var b = this.e.item(a);
this.g.h(b);
this.f.removeItem(a.id);
this.e.removeItem(a);
var c = false;
this.k--;
if (this.k == 0) {
c = true;
}
if (c) {
this.p();
}
GlobalAnimationState.d.k();
};
KeyFrameAnimationTimeline.prototype.p = function () {
if (this.l >= 0) {
this.c.teardownTicking(this.l);
this.l = -1;
}
};
KeyFrameAnimationTimeline.prototype.n = function () {
this.l = this.c.setupTicking(runOn(this, this.q));
this.c.requestFrame(this.l);
};
KeyFrameAnimationTimeline.prototype.q = function () {
var a = this.j;
this.i = a;
try {
this.d = true;
var b = this.g.c;
if (b == null) {
this.p();
this.d = false;
return;
}
while (b != null) {
var c = b.c;
var d = b.a;
if (c.playState == 1) {
c.aq();
}
else {
c.aq();
this.o(b.c);
}
b = d;
}
this.c.requestFrame(this.l);
}
finally {
this.d = false;
}
};
KeyFrameAnimationTimeline.$t = markType(KeyFrameAnimationTimeline, 'KeyFrameAnimationTimeline');
return KeyFrameAnimationTimeline;
}(Base));
export { KeyFrameAnimationTimeline };
/**
* @hidden
*/
export var IKeyFrameAnimation_$type = /*@__PURE__*/ new Type(null, 'IKeyFrameAnimation');
/**
* @hidden
*/
var KeyFrameAnimationDirect = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(KeyFrameAnimationDirect, _super);
function KeyFrameAnimationDirect(a, b) {
var _this = _super.call(this) || this;
_this.a = null;
_this.m = NaN;
_this.d = false;
_this.p = NaN;
_this.i = false;
_this.u = null;
_this.n = NaN;
_this.g = false;
_this.o = 1;
_this.q = NaN;
_this.j = false;
_this.b = null;
_this.onFinished = null;
_this.onCanceled = null;
_this.h = false;
_this.f = false;
_this.e = false;
_this.w = null;
_this.v = null;
_this.u = "AUTO_ID_" + KeyFrameAnimationDirect.t.toString();
KeyFrameAnimationDirect.t++;
_this.effect = a;
_this.effect.r = _this;
_this.b = b;
return _this;
}
Object.defineProperty(KeyFrameAnimationDirect.prototype, "effect", {
get: function () {
return this.a;
},
set: function (a) {
this.a = a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "l", {
get: function () {
if (this.d) {
return true;
}
if (this.j) {
return true;
}
return false;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "currentTime", {
get: function () {
if (this.d) {
return this.m;
}
return (this.c.j - this.startTime) * this.playbackRate;
},
set: function (a) {
this.ar(a);
this.as(true, false);
},
enumerable: false,
configurable: true
});
KeyFrameAnimationDirect.prototype.as = function (a, b) {
var _this = this;
var c;
var d = false;
if (!a) {
var e = this.d;
this.d = false;
c = this.currentTime;
d = this.l;
this.d = e;
}
else {
c = this.currentTime;
d = this.l;
}
if (d && this.j && !this.f && !this.h) {
if (this.playbackRate > 0 && c >= this.r) {
if (a) {
this.m = c;
this.d = true;
}
else {
if (this.i) {
this.m = Math.max(this.p, this.r);
}
else {
this.m = this.r;
}
}
}
else if (this.playbackRate < 0 && c <= 0) {
if (a) {
this.m = c;
}
else {
if (this.i) {
this.m = Math.min(this.p, 0);
}
else {
this.m = 0;
}
}
}
if (this.playbackRate != 0) {
if (a && this.d) {
this.q = this.c.j - (this.m / this.playbackRate);
this.j = true;
this.d = false;
}
}
}
this.p = this.currentTime;
this.i = true;
var f = this.playState == 3;
if (!b && f && !this.k()) {
this.an(function () { return _this.ad(); });
}
if (f && !this.k()) {
if (b) {
this.aa();
this.ad();
}
}
if (!f && this.k()) {
this.v = this.x();
}
};
KeyFrameAnimationDirect.prototype.x = function () {
return new TaskCompletionSource$1(IKeyFrameAnimation_$type, 0);
};
KeyFrameAnimationDirect.prototype.aa = function () {
this.e = false;
};
KeyFrameAnimationDirect.prototype.ad = function () {
if (!this.e) {
return;
}
this.e = false;
if (this.playState != 3) {
return;
}
this.al(this);
this.ah();
};
KeyFrameAnimationDirect.prototype.ah = function () {
};
KeyFrameAnimationDirect.prototype.al = function (a) {
this.v.e(a);
};
KeyFrameAnimationDirect.prototype.an = function (a) {
if (!this.e) {
this.e = true;
this.c.b.enqueueAction(function () { return a(); });
}
};
KeyFrameAnimationDirect.prototype.k = function () {
return this.v == null || this.v.b.c;
};
KeyFrameAnimationDirect.prototype.ar = function (a) {
if (this.d || !this.j || this.playbackRate == 0) {
this.m = a;
this.d = true;
}
else {
this.q = this.c.j - (a / this.playbackRate);
}
};
Object.defineProperty(KeyFrameAnimationDirect.prototype, "finished", {
get: function () {
return this.v != null ? this.v.b : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "ready", {
get: function () {
return this.w != null ? this.w.b : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "id", {
get: function () {
return this.u;
},
set: function (a) {
this.u = a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "r", {
get: function () {
return this.effect != null ? this.effect.as : 0;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "playState", {
get: function () {
if (!this.l && !this.f && !this.h) {
return 0;
}
else if (this.f || (!this.j && !this.h)) {
return 2;
}
else if (this.l && (this.s > 0 && this.currentTime >= this.r || this.s < 0 && this.currentTime <= 0)) {
return 3;
}
return 1;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "s", {
get: function () {
if (this.g) {
return this.n;
}
return this.o;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "playbackRate", {
get: function () {
return this.o;
},
set: function (a) {
this.o = a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "startTime", {
get: function () {
return this.q;
},
set: function (a) {
var b = this.c.j;
var c = this.p;
this.q = a;
this.j = true;
if (this.playbackRate != 0) {
this.d = false;
}
this.as(true, false);
},
enumerable: false,
configurable: true
});
Object.defineProperty(KeyFrameAnimationDirect.prototype, "c", {
get: function () {
return this.b;
},
enumerable: false,
configurable: true
});
KeyFrameAnimationDirect.prototype.cancel = function () {
if (this.playState != 0) {
this.ak();
this.ai("AbortError");
this.v = this.x();
this.ag();
this.d = false;
this.j = false;
}
};
KeyFrameAnimationDirect.prototype.ai = function (a) {
if (this.v != null) {
this.v.d(new BaseError(1, a));
}
};
KeyFrameAnimationDirect.prototype.aj = function (a) {
if (this.w != null) {
this.w.d(new BaseError(1, a));
}
};
KeyFrameAnimationDirect.prototype.ag = function () {
};
KeyFrameAnimationDirect.prototype.ak = function () {
if (this.h) {
this.h = false;
}
if (this.f) {
this.f = false;
}
this.z();
this.aj("AbortError");
};
KeyFrameAnimationDirect.prototype.finish = function () {
if (this.s == 0 || (this.s > 0 && isInfinity(this.r))) {
return;
}
this.z();
var a;
if (this.playbackRate > 0) {
a = this.r;
}
else {
a = 0;
}
this.ar(a);
if (!this.j) {
this.q = this.c.j - (a / this.playbackRate);
this.j = true;
}
if (this.f && this.j) {
this.d = false;
this.ab();
this.am(this);
}
if (this.h && this.j) {
this.ac();
this.am(this);
}
this.as(true, true);
};
KeyFrameAnimationDirect.prototype.pause = function () {
this.ae();
};
KeyFrameAnimationDirect.prototype.ae = function () {
var _this = this;
if (this.f) {
return;
}
if (this.playState == 2) {
return;
}
if (!this.l) {
if (this.playbackRate >= 0) {
this.d = true;
this.m = 0;
}
if (isInfinity(this.r)) {
return;
}
this.m = this.r;
this.d = true;
}
var a = false;
if (this.h) {
a = true;
}
if (!a) {
this.w = this.y();
}
this.ao(function () {
if (!_this.f) {
return;
}
_this.f = false;
var b = _this.c.j;
if (_this.j && !_this.d) {
_this.m = (b - _this.q) * _this.playbackRate;
}
_this.z();
_this.j = false;
_this.am(_this);
_this.as(false, false);
});
this.as(false, false);
};
KeyFrameAnimationDirect.prototype.y = function () {
return new TaskCompletionSource$1(IKeyFrameAnimation_$type, 0);
};
KeyFrameAnimationDirect.prototype.ao = function (a) {
if (!this.f) {
this.f = true;
this.c.b.enqueueAction(function () { return a(); });
}
};
KeyFrameAnimationDirect.prototype.play = function () {
this.af(true);
};
KeyFrameAnimationDirect.prototype.af = function (a) {
var _this = this;
var b = this.f;
if (this.s > 0 && a && (!this.l || this.currentTime < 0 || this.currentTime >= this.r)) {
this.m = 0;
this.d = true;
}
else if (this.s < 0 && a && (!this.l || this.currentTime <= 0 || this.currentTime > this.r)) {
if (isInfinity(this.r)) {
return;
}
this.m = this.r;
this.d = true;
}
else if (this.s == 0 && !this.l) {
this.m = 0;
this.d = true;
}
var c = false;
if (this.f) {
this.ab();
c = true;
}
if (this.h) {
this.ac();
c = true;
}
if (!this.d && !b && !this.g) {
return;
}
if (this.d) {
this.j = false;
}
if (!c) {
this.w = this.y();
}
this.ap(function () {
if (!_this.h) {
return;
}
_this.h = false;
if (!_this.j && !_this.d) {
return;
}
var d = _this.c.j;
if (_this.d) {
_this.z();
var e = d;
if (_this.playbackRate != 0) {
e = d - _this.m / _this.playbackRate;
}
_this.q = e;
_this.j = true;
if (_this.playbackRate != 0) {
_this.d = false;
}
}
else if (_this.j && _this.g) {
var f = (d - _this.q) * _this.playbackRate;
_this.z();
if (_this.playbackRate == 0) {
_this.m = f;
_this.d = true;
}
var g = d;
if (_this.playbackRate != 0) {
g = d - f / _this.playbackRate;
}
_this.q = g;
_this.j = true;
}
_this.am(_this);
_this.as(false, false);
_this.c.m(_this);
});
this.as(false, false);
};
KeyFrameAnimationDirect.prototype.am = function (a) {
if (this.w != null) {
this.w.e(a);
this.w = null;
}
};
KeyFrameAnimationDirect.prototype.ab = function () {
this.f = false;
};
KeyFrameAnimationDirect.prototype.ac = function () {
this.h = false;
};
KeyFrameAnimationDirect.prototype.ap = function (a) {
if (!this.h) {
this.h = true;
this.c.b.enqueueAction(function () { return a(); });
}
};
KeyFrameAnimationDirect.prototype.reverse = function () {
var a = this.n;
this.n = -this.s;
this.g = true;
this.af(true);
};
KeyFrameAnimationDirect.prototype.updatePlaybackRate = function (a) {
var b = this.playState;
this.n = a;
this.g = true;
if (b == 0 || b == 2) {
this.z();
}
else if (b == 3) {
var c = this.d;
this.d = false;
var d = this.currentTime;
this.d = c;
if (this.n == 0) {
this.q = this.c.j;
}
else {
this.q = this.c.j - (d / this.n);
}
this.z();
}
else {
this.af(false);
}
};
KeyFrameAnimationDirect.prototype.z = function () {
if (this.g) {
this.o = this.n;
this.g = false;
}
};
KeyFrameAnimationDirect.prototype.commitStyles = function () {
this.effect.a6();
};
KeyFrameAnimationDirect.prototype.aq = function () {
this.effect.a7();
this.as(false, false);
};
KeyFrameAnimationDirect.$t = markType(KeyFrameAnimationDirect, 'KeyFrameAnimationDirect', Base.$, [IKeyFrameAnimation_$type]);
KeyFrameAnimationDirect.t = 0;
return KeyFrameAnimationDirect;
}(Base));
export { KeyFrameAnimationDirect };
/**
* @hidden
*/
var AnimationKeyFrameEffect = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(AnimationKeyFrameEffect, _super);
function AnimationKeyFrameEffect(a) {
var _rest = [];
for (var _i = 1; _i < arguments.length; _i++) {
_rest[_i - 1] = arguments[_i];
}
var _this = _super.call(this) || this;
_this.r = null;
_this.a4 = null;
_this.o = 0;
_this.q = null;
_this.ag = new List$1(AnimationKeyFrame.$, 0);
_this.c = null;
_this.al = 0;
_this.ah = 0;
_this.az = null;
_this.t = 0;
_this.ai = 0;
_this.aj = 0;
_this.v = 0;
_this.ak = 0;
_this.u = 0;
_this.d = null;
_this.a = null;
_this.b = null;
_this.p = null;
a = (a == void 0) ? 0 : a;
switch (a) {
case 0:
{
var c = _rest[0];
var d = _rest[1];
var e = _rest[2];
var f = _rest[3];
_this.a4 = c;
_this.o = d;
_this.p = f;
_this.a8();
_this.q = e;
}
break;
case 1:
{
var c = _rest[0];
var d = _rest[1];
var e = _rest[2];
var f = _rest[3];
var g = _rest[4];
_this.a4 = c;
_this.o = d;
_this.q = e;
_this.p = f;
_this.a8();
_this.ag.o(g);
}
break;
}
return _this;
}
Object.defineProperty(AnimationKeyFrameEffect.prototype, "an", {
get: function () {
return this.aj * this.ai;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "as", {
get: function () {
return Math.max(this.al + this.an + this.ah, 0);
},
enumerable: false,
configurable: true
});
AnimationKeyFrameEffect.prototype.a8 = function () {
this.al = this.p.f;
this.ah = this.p.h;
this.t = this.p.a;
this.ai = this.p.i;
this.aj = this.p.g;
this.v = this.p.c;
this.ak = this.p.j;
this.u = this.p.b;
this.az = this.a0(this.u);
};
AnimationKeyFrameEffect.prototype.a0 = function (a) {
switch (a) {
case 3: return function (b) { return b; };
case 1: return EasingFunctions.exponentialEase;
case 2: return EasingFunctions.circleEase;
case 0: return EasingFunctions.cubicEase;
}
return function (b) { return b; };
};
Object.defineProperty(AnimationKeyFrameEffect.prototype, "k", {
get: function () {
if (this.d == null) {
this.d = this.e();
}
return this.d;
},
enumerable: false,
configurable: true
});
AnimationKeyFrameEffect.prototype.e = function () {
var a = this.h;
if (a.length <= 1) {
return [0];
}
var b = new Array(a.length);
var c = 1 / (a.length - 1);
var d = 0;
for (var e = 0; e < a.length; e++) {
if (isNaN_(a[e].j)) {
b[e] = d;
}
else {
b[e] = a[e].j;
d = a[e].j;
if (((a.length - 1) - e) > 0) {
c = (1 - d) / ((a.length - 1) - e);
}
}
d += c;
}
return b;
};
AnimationKeyFrameEffect.prototype.l = function (a) {
this.ag.add(a);
this.c = null;
this.a = null;
return this;
};
AnimationKeyFrameEffect.prototype.m = function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
var b = new AnimationKeyFrame(0);
if (a != null) {
for (var c = 0; c < a.length; c++) {
b.c(a[c]);
}
}
this.l(b);
return this;
};
AnimationKeyFrameEffect.prototype.n = function (a) {
var b = [];
for (var _i = 1; _i < arguments.length; _i++) {
b[_i - 1] = arguments[_i];
}
var c = new AnimationKeyFrame(1, a);
if (b != null) {
for (var d = 0; d < b.length; d++) {
c.c(b[d]);
}
}
this.l(c);
return this;
};
Object.defineProperty(AnimationKeyFrameEffect.prototype, "au", {
get: function () {
if (this.r != null) {
return this.r.currentTime;
}
return NaN;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ac", {
get: function () {
if (this.r != null) {
return this.r.l;
}
return false;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ap", {
get: function () {
return Math.max(Math.min(this.al, this.as), 0);
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "am", {
get: function () {
return Math.max(Math.min(this.al + this.an, this.as), 0);
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "w", {
get: function () {
if (this.r != null && this.r.playbackRate < 0) {
return false;
}
return true;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "s", {
get: function () {
if (this.ac && (this.au < this.ap || !this.w && this.au == this.ap)) {
return 0;
}
if (this.ac && (this.au > this.am || this.w && this.au == this.am)) {
return 2;
}
if (this.ac) {
return 1;
}
return 3;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ao", {
get: function () {
var a = this.s;
switch (a) {
case 0: if (this.t == 3 || this.t == 4) {
return Math.max(this.au - this.al, 0);
}
else {
return NaN;
}
case 1: return this.au - this.al;
case 2: if (this.t == 2 || this.t == 4) {
return Math.max(Math.min(this.au - this.al, this.an), 0);
}
else {
return NaN;
}
default: return NaN;
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "y", {
get: function () {
if (!this.ac) {
return false;
}
var a = this.s;
switch (a) {
case 0: if (this.t == 3 || this.t == 4) {
return true;
}
else {
return false;
}
case 1: return true;
case 2: if (this.t == 2 || this.t == 4) {
return true;
}
else {
return false;
}
default: return false;
}
return false;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ad", {
get: function () {
if (!this.y) {
return false;
}
return true;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "av", {
get: function () {
if (!this.y) {
return NaN;
}
var a = 0;
if (this.aj == 0) {
if (this.s == 0) {
a = 0;
}
else {
a = this.ai;
}
}
else {
a = this.ao / this.aj;
}
return a + this.ak;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ae", {
get: function () {
if (!this.ad) {
return false;
}
return true;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "aw", {
get: function () {
if (!this.ad) {
return NaN;
}
var a = 1;
if (isInfinity(this.av)) {
a = this.ak % 1;
}
else {
a = this.av % 1;
}
if (a == 0 && (this.s == 1 || this.s == 2) && this.ao == this.an && this.ai != 0) {
a = 1;
}
return a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "z", {
get: function () {
if (!this.y) {
return false;
}
return true;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "aq", {
get: function () {
if (!this.y) {
return NaN;
}
if (this.s == 2 && isInfinity(this.ai)) {
return Number.POSITIVE_INFINITY;
}
if (this.aw == 1) {
return Math.floor(this.av) - 1;
}
return Math.floor(this.av);
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "aa", {
get: function () {
return this.ae;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ar", {
get: function () {
if (!this.ae) {
return NaN;
}
var a = this.x();
if (a) {
return this.aw;
}
else {
return 1 - this.aw;
}
},
enumerable: false,
configurable: true
});
AnimationKeyFrameEffect.prototype.x = function () {
var a = true;
if (this.v == 0) {
a = true;
}
else if (this.v == 1) {
a = false;
}
else {
var b = this.aq;
if (this.v == 3) {
b++;
}
if (isInfinity(b)) {
a = true;
}
else {
if (b % 2 == 0) {
a = true;
}
else {
a = false;
}
}
}
return a;
};
Object.defineProperty(AnimationKeyFrameEffect.prototype, "af", {
get: function () {
return this.aa;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ay", {
get: function () {
if (!this.aa) {
return NaN;
}
var a = false;
var b = this.x();
if (b && this.s == 0) {
a = true;
}
if (!b && this.s == 2) {
a = true;
}
return this.ax(this.ar, a);
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "at", {
get: function () {
return this.ay;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "ab", {
get: function () {
return this.af;
},
enumerable: false,
configurable: true
});
AnimationKeyFrameEffect.prototype.ax = function (a, b) {
return this.az(a);
};
AnimationKeyFrameEffect.prototype.a7 = function () {
if (!this.af) {
return;
}
var a = this.ay;
for (var b = 0; b < this.f.length; b++) {
var c = this.a1(this.f[b], this.g[b]);
this.a5(this.f[b], this.g[b], c);
}
};
AnimationKeyFrameEffect.prototype.a5 = function (a, b, c) {
b.c(this.a4, c);
};
AnimationKeyFrameEffect.prototype.a1 = function (a, b) {
if (!this.ab) {
return null;
}
var c = a;
var d = this.at;
if (this.a4 == null) {
return null;
}
var e = this.a2(c, b);
var f = new List$1(AnimationKeyFrame.$, 0);
var g = new List$1(Number_$type, 0);
for (var h = 0; h < this.h.length; h++) {
for (var i = 0; i < this.h[h].b.length; i++) {
if (this.h[h].b[i].a == c) {
f.add(this.h[h]);
g.add(this.k[h]);
}
}
}
if (f.count == 0) {
return e;
}
if (g._inner[0] != 0) {
f.insert(0, new AnimationKeyFrame(1, 0).c(new AnimationKeyFrameProperty(c, e)));
g.insert(0, 0);
}
if (g._inner[f.count - 1] != 1) {
f.add(new AnimationKeyFrame(1, 1).c(new AnimationKeyFrameProperty(c, e)));
g.add(1);
}
var j = false;
var k = new List$1(AnimationKeyFrame.$, 0);
var l = new List$1(Number_$type, 0);
if (d < 0) {
var m = 0;
for (var n = 0; n < f.count; n++) {
if (g._inner[n] == 0) {
m++;
}
else {
break;
}
}
if (m > 1) {
j = true;
k.add(f._inner[0]);
l.add(g._inner[0]);
}
}
if (d >= 1) {
var o = 0;
for (var p = f.count - 1; p >= 0; p--) {
if (g._inner[p] == 1) {
o++;
}
else {
break;
}
}
if (o > 1) {
j = true;
k.add(f._inner[f.count - 1]);
l.add(g._inner[f.count - 1]);
}
}
if (!j) {
var q = null;
var r = -1;
for (var s = 0; s < f.count; s++) {
if (g._inner[s] <= d) {
q = f._inner[s];
r = s;
}
else {
break;
}
}
if (r == -1) {
for (var t = 0; t < f.count; t++) {
if (g._inner[t] == 0) {
q = f._inner[t];
r = t;
}
else {
break;
}
}
}
k.add(q);
l.add(g._inner[r]);
if (r < g.count - 1) {
k.add(f._inner[r + 1]);
l.add(g._inner[r + 1]);
}
}
if (k.count == 1) {
for (var u = 0; u < k._inner[0].b.length; u++) {
if (k._inner[0].b[u].a == c) {
return k._inner[0].b[u].d;
}
}
return null;
}
var v = l._inner[0];
var w = l._inner[k.count - 1];
var x = k._inner[0].g(c).d;
var y = k._inner[1].g(c).d;
var z = (d - v) / (w - v);
return this.a3(c, z, x, y);
};
AnimationKeyFrameEffect.prototype.a3 = function (a, b, c, d) {
switch (a) {
case 2:
case 3:
case 7:
case 15:
case 16: return BrushUtil.n(c, b, d, 0);
case 4:
case 13:
case 6: return InterpolationUtil.g(b, c, d);
case 11:
case 10:
case 12:
case 8:
case 9:
case 17:
case 19:
case 22:
case 23: return c + b * (d - c);
case 1: return c + b * (d - c);
case 5: return InterpolationUtil.e(b, c, d);
case 14: return this.a9(b, c, d);
case 18: return InterpolationUtil.b(b, c, d);
default: if (b < 0.5) {
return c;
}
else {
return d;
}
}
return null;
};
AnimationKeyFrameEffect.prototype.a9 = function (a, b, c) {
var d = TransformMatrixHelpler.d(a, b.j, c.j);
var e = new MatrixTransform();
e.j = d;
return e;
};
AnimationKeyFrameEffect.prototype.a2 = function (a, b) {
return b.b(this.a4);
};
Object.defineProperty(AnimationKeyFrameEffect.prototype, "h", {
get: function () {
if (this.c == null) {
this.c = this.ag.toArray();
this.a = this.i();
this.b = this.j();
}
return this.c;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "f", {
get: function () {
if (this.c == null) {
this.c = this.ag.toArray();
this.a = this.i();
this.b = this.j();
}
return this.a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(AnimationKeyFrameEffect.prototype, "g", {
get: function () {
if (this.c == null) {
this.c = this.ag.toArray();
this.a = this.i();
this.b = this.j();
}
return this.b;
},
enumerable: false,
configurable: true
});
AnimationKeyFrameEffect.prototype.j = function () {
var a = new List$1(UIElementPropertyAccessor.$, 0);
for (var b = 0; b < this.f.length; b++) {
a.add(UIElementPropertyAccessorFactory.c.a(this.f[b], this.o));
}
return a.toArray();
};
AnimationKeyFrameEffect.prototype.i = function () {
var a = new List$1(UIElementPropertyId_$type, 0);
var b = new HashSet$1(UIElementPropertyId_$type, 0);
for (var c = 0; c < this.h.length; c++) {
for (var d = 0; d < this.h[c].b.length; d++) {
if (!b.contains(this.h[c].b[d].a)) {
b.add_1(this.h[c].b[d].a);
a.add(this.h[c].b[d].a);
}
}
}
return a.toArray();
};
AnimationKeyFrameEffect.prototype.a6 = function () {
var a = this.t;
this.t = 4;
this.a7();
this.t = a;
};
AnimationKeyFrameEffect.$t = markType(AnimationKeyFrameEffect, 'AnimationKeyFrameEffect');
return AnimationKeyFrameEffect;
}(Base));
export { AnimationKeyFrameEffect };