igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
667 lines (666 loc) • 23.3 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 { HorizontalAnchoredCategorySeries } from "./HorizontalAnchoredCategorySeries";
import { DependencyProperty } from "igniteui-angular-core";
import { SplineType_$type } from "./SplineType";
import { AxisRange } from "./AxisRange";
import { Array_$type, typeCast, Point_$type, enumGetBox, markType, markDep } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { Rect } from "igniteui-angular-core";
import { CategoryAxisBase } from "./CategoryAxisBase";
import { ISortingAxis_$type } from "./ISortingAxis";
import { CollisionAvoider } from "./CollisionAvoider";
import { AnchoredCategorySeriesView } from "./AnchoredCategorySeriesView";
import { ScalerParams } from "./ScalerParams";
import { SafeSortedReadOnlyDoubleCollection } from "./SafeSortedReadOnlyDoubleCollection";
import { Numeric } from "igniteui-angular-core";
import { ChartSelection } from "./ChartSelection";
import { PropertyMetadata } from "igniteui-angular-core";
import { truncate, isNaN_ } from "igniteui-angular-core";
import { Color } from "igniteui-angular-core";
/**
* @hidden
*/
var SplineSeriesBase = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(SplineSeriesBase, _super);
function SplineSeriesBase() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.acx = null;
_this.ac3 = NaN;
_this.ac2 = NaN;
return _this;
}
SplineSeriesBase.prototype.jj = function () {
if (!isNaN_(this.ji)) {
return _super.prototype.jj.call(this);
}
return this.acy.dg();
};
SplineSeriesBase.prototype.cs = function () {
return new SplineSeriesBaseView(this);
};
SplineSeriesBase.prototype.q0 = function (a) {
_super.prototype.q0.call(this, a);
this.acy = a;
};
SplineSeriesBase.prototype.r3 = function (a) {
_super.prototype.r3.call(this, a);
this.ac0 = true;
};
SplineSeriesBase.prototype.ay = function (a) {
if (!this.ac0 || this.acx == null || this.acx.length == 0) {
return _super.prototype.ay.call(this, a);
}
if (this.valueColumn == null || this.valueColumn.count == 0) {
return null;
}
if (a == this.fetchXAxis()) {
return new AxisRange(0, this.valueColumn.count - 1);
}
this.ada(this.acy);
if (this.acx == null || this.acx.length == 0) {
return null;
}
if (a == this.fetchYAxis()) {
if (isNaN_(this.ac6) || isNaN_(this.ac7)) {
return null;
}
return new AxisRange(this.ac7, this.ac6);
}
return null;
};
SplineSeriesBase.prototype.get_ev = function () {
return true;
};
SplineSeriesBase.prototype.acv = function (a) {
var _this = this;
if (a.cw.d == 0) {
return null;
}
var b = new List$1(Array_$type, 0);
var c = a.by;
var d = a.bx;
var e = this.getEffectiveViewport1(a);
var f = 0;
var g = 0;
var h = 0;
var i = this;
var j = typeCast(CategoryAxisBase.$, i.fetchXAxis());
var k = i.wi(this.cv);
var l = i.dn;
if (c.isEmpty || d.isEmpty || j == null || l == null || l.count == 0) {
f = 0;
return null;
}
var m = this.ic;
var n = typeCast(ISortingAxis_$type, j);
if (n == null || n.i$b == null) {
var o = new ScalerParams(0, c, d, j.ch, e);
var p = 0;
var q = j.lk - 1;
var r = Math.floor((q - p + 1) * m / k.width);
f = truncate(Math.max(1, r));
g = truncate(Math.max(0, Math.floor(p / f) - 1));
h = truncate(Math.ceil(q / f));
}
else {
g = 0;
h = j.lk - 1;
f = 1;
}
if (n != null && n.i$b.count != this.dn.count) {
return null;
}
this.ada(a);
var s = truncate(Math.ceil(d.width / (h - g)));
var t = new CollisionAvoider();
if (n != null) {
return this.acw(a);
}
var u = function (v) { return v; };
var v = function (w) { return _this.valueColumn.item(w); };
var w = a;
w.db();
for (var x = g; x <= h; ++x) {
var y = null;
if (f == 1) {
if (x >= (this.valueColumn.count - 1)) {
break;
}
var z = u(x);
var aa = v(x);
var ab = u(x + 1);
var ac = v(x + 1);
var ad = ab - z;
var ae = this.acx[x];
var af = this.acx[x + 1];
b.add([aa, ac]);
for (var ag = 1; ag < s; ++ag) {
var ah = z + ad * ag / s;
var ai = (ab - ah) / ad;
var aj = (ah - z) / ad;
var ak = ai * aa + aj * ac + ((ai * ai * ai - ai) * ae + (aj * aj * aj - aj) * af) * (ad * ad) / 6;
b.add([ak, ak]);
}
}
else {
y = a.cw.getBucket(x);
if (!isNaN_(y[0])) {
b.add([y[1], y[2]]);
}
}
}
w.dd();
return b.toArray();
};
SplineSeriesBase.prototype.acw = function (a) {
var _this = this;
var b = typeCast(ISortingAxis_$type, this.acc);
var c = this.getEffectiveViewport1(a);
var d = a.by;
var e = a.bx;
var f = new List$1(Array_$type, 0);
if (b == null) {
return null;
}
var g = this.acc;
var h = 0;
var i = 0;
var j = 0;
var k = this.ic;
var l = this.wi(this.cv);
if (b == null || b.i$b == null) {
var m = new ScalerParams(0, d, e, g.ch, c);
var n = 0;
var o = g.lk - 1;
var p = Math.floor((o - n + 1) * k / l.width);
h = truncate(Math.max(1, p));
i = truncate(Math.max(0, Math.floor(n / h) - 1));
j = truncate(Math.ceil(o / h));
}
else {
i = 0;
j = g.lk - 1;
h = 1;
}
var q = function (r) { return r; };
var r = function (s) { return _this.valueColumn.item(b.i$b._inner[s]); };
var s = truncate(Math.ceil(e.width / (j - i)));
var t = new CollisionAvoider();
if (h <= 0 || (i <= 0 && j <= 0)) {
return null;
}
for (var u = i; u < j + 1; ++u) {
var v = null;
var w = u * h;
if (b != null && b.i$b != null && w >= 0 && w < b.i$b.count) {
w = b.i$b._inner[w];
}
if (u >= (this.valueColumn.count - 1)) {
break;
}
var x = q(u);
var y = r(u);
var z = q(u + 1);
var aa = r(u + 1);
var ab = z - x;
var ac = this.acx[u];
var ad = this.acx[u + 1];
f.add([y, y]);
for (var ae = 1; ae < s; ++ae) {
var af = ae / s;
var ag = x + ab * af;
var ah = (z - ag) / ab;
var ai = (ag - x) / ab;
var aj = ah * y + ai * aa + ((ah * ah * ah - ah) * ac + (ai * ai * ai - ai) * ad) * (ab * ab) / 6;
f.add([aj, aj]);
}
}
return f.toArray();
};
SplineSeriesBase.prototype.adb = function (a, b, c, d, e, f) {
var _this = this;
var g = typeCast(ISortingAxis_$type, d);
var h = this.getEffectiveViewport1(f);
if (g == null) {
return;
}
var i = new ScalerParams(0, b, c, d.ch, h);
var j = new ScalerParams(0, b, c, e.ch, h);
j.b = this.ix();
var k = this.xf();
var l = 0;
var m = this.ac5(d, b, c, h);
var n = function (o) { return o; };
var o = function (p) { return _this.valueColumn.item(g.i$b._inner[p]); };
var p = this.y2.cw.f;
var q = this.y2.cw.e;
var r = truncate(Math.ceil(c.width / (p - q)));
var s = new CollisionAvoider();
var t = this.y2.cw.d;
if (t <= 0 || (q <= 0 && p <= 0)) {
this.y2.cz.count = l;
return;
}
var u = 0;
var v = 0;
for (var w = q; w < p + 1; ++w) {
var x = null;
var y = w * t;
if (g != null && g.i$b != null && y >= 0 && y < g.i$b.count) {
y = g.i$b._inner[y];
}
if (w >= (this.valueColumn.count - 1)) {
if (k && this.ac1(a, a.f._inner[a.f.count - 1], s, Math.min(y, this.dn.count - 1), l, f, u - 1)) {
++l;
}
break;
}
var z = n(w);
var aa = o(w);
var ab = n(w + 1);
var ac = o(w + 1);
var ad = ab - z;
var ae = this.acx[w];
var af = this.acx[w + 1];
var ag = g.i$d(g.i$b._inner[w]);
var ah = d.el(ag, i) + m;
var ai = e.el(aa, j);
a.f.add([ah, ai, ai]);
u++;
v = u;
for (var aj = 1; aj < r; ++aj) {
var ak = aj / r;
var al = z + ad * ak;
var am = (ab - al) / ad;
var an = (al - z) / ad;
var ao = am * aa + an * ac + ((am * am * am - am) * ae + (an * an * an - an) * af) * (ad * ad) / 6;
var ap = g.i$d(g.i$b._inner[w]);
var aq = g.i$d(g.i$b._inner[w + 1]);
var ar = ap + (aq - ap) * ak;
al = d.el(ar, i) + m;
ao = e.el(ao, j);
a.f.add([al, ao, ao]);
u++;
}
if (k) {
x = [ah, ai, ai];
}
if (k && this.ac1(a, x, s, Math.min(y, this.dn.count - 1), l, f, v - 1)) {
++l;
}
}
f.cz.count = l;
};
SplineSeriesBase.prototype.ac1 = function (a, b, c, d, e, f, g) {
var h = b[0];
var i = b[1];
var j = new Rect(0, h - 5, i - 5, 11, 11);
if (!isNaN_(h) && !isNaN_(i) && c.tryAdd(j)) {
a.n.add({ $type: Point_$type, x: h, y: i });
var k = f.cz.item(e);
k.content.item = this.dn.item(d);
k.al = g;
k.ak = d;
return true;
}
return false;
};
SplineSeriesBase.prototype.an = function (a, b, c, d, e, f) {
if (a == null || a.cn || this.zu(this.cv) > 1 || this.zu(this.cv) == 0) {
return _super.prototype.an.call(this, this.yr(), this.yt.f, this.zu(this.cv), this.zv(this.cv), e, f);
}
if (this.yt.f.count == 0) {
return null;
}
var g = this.acy.cw.f;
var h = this.cv.bx;
var i = truncate(Math.ceil(h.width));
if (g != d) {
i = truncate(Math.ceil(h.width / (g - d)));
}
var j = -1;
var k = -1;
var l = this.iq(e);
var m = this.j9(e, f);
var n = this.j7(e, f);
var o = truncate(Math.floor(m / this.zu(this.cv)));
var p = truncate(Math.floor(n / this.zu(this.cv)));
j = o - this.zv(this.cv);
k = p - this.zv(this.cv);
var q = j * i;
var r = k * i;
var s = 0;
if (m != n) {
s = (l - m) / (n - m);
}
var t = truncate(Math.floor(q + s * (r - q)));
j = t;
k = t + 1;
if (j < 0) {
j = 0;
}
if (j > this.yt.f.count - 1) {
j = this.yt.f.count - 1;
}
if (k < 0) {
k = 0;
}
if (k > this.yt.f.count - 1) {
k = this.yt.f.count - 1;
}
var u = this.yt.f._inner[j];
var v = this.yt.f._inner[k];
var w = new Array(2);
w[0] = u;
w[1] = v;
return w;
};
SplineSeriesBase.prototype.aag = function (a, b) {
var _this = this;
_super.prototype.aag.call(this, a, b);
if (a.f.count <= 1) {
return;
}
if (b.cw.d == 0) {
return;
}
var c = b.by;
var d = b.bx;
var e = this.getEffectiveViewport1(b);
var f = this.acc;
var g = this.aci;
var h = new ScalerParams(0, c, d, f.ch, e);
var i = ((function () {
var $ret = new ScalerParams(0, c, d, g.ch, e);
$ret.b = _this.ix();
return $ret;
})());
a.f.clear();
a.n.clear();
var j = this.xf();
var k = 0;
var l = typeCast(ISortingAxis_$type, this.acc);
if (l != null && l.i$b.count != this.dn.count) {
return;
}
var m = this.ac5(f, c, d, e);
var n = b.cw.d;
this.ada(b);
var o = b.cw.f;
var p = b.cw.e;
var q = truncate(Math.ceil(d.width / (o - p)));
var r = new CollisionAvoider();
if (l != null) {
this.adb(a, c, d, f, g, b);
return;
}
var s = function (t) { return t; };
var t = function (u) { return _this.valueColumn.item(u); };
var u = b;
u.db();
var v = 0;
var w = 0;
for (var x = p; x <= o; ++x) {
var y = null;
if (n == 1) {
if (x >= (this.valueColumn.count - 1)) {
if (j && this.ac1(a, a.f._inner[a.f.count - 1], r, Math.min(x * n, this.dn.count - 1), k, b, v - 1)) {
++k;
}
break;
}
var z = s(x);
var aa = t(x);
var ab = s(x + 1);
var ac = t(x + 1);
var ad = ab - z;
var ae = this.acx[x];
var af = this.acx[x + 1];
var ag = f.el(z, h) + m;
var ah = g.el(aa, i);
a.f.add([ag, ah, ah]);
v++;
w = v;
for (var ai = 1; ai < q; ++ai) {
var aj = z + ad * ai / q;
var ak = (ab - aj) / ad;
var al = (aj - z) / ad;
var am = ak * aa + al * ac + ((ak * ak * ak - ak) * ae + (al * al * al - al) * af) * (ad * ad) / 6;
aj = f.el(aj, h) + m;
am = g.el(am, i);
a.f.add([aj, am, am]);
v++;
}
if (j) {
y = b.cw.getBucket(x);
y[0] = (f.el(y[0], h) + m);
y[1] = g.el(y[1], i);
y[2] = g.el(y[2], i);
}
}
else {
y = b.cw.getBucket(x);
if (!isNaN_(y[0])) {
y[0] = (f.el(y[0], h) + m);
y[1] = g.el(y[1], i);
y[2] = g.el(y[2], i);
a.f.add(y);
v++;
w = v;
}
}
if (j && this.ac1(a, y, r, Math.min(x * n, this.dn.count - 1), k, b, w - 1)) {
++k;
}
}
u.dd();
b.cz.count = k;
};
SplineSeriesBase.prototype.ada = function (a) {
var _this = this;
var b = a.cw.d;
var c = function (d) { return d; };
var d = function (e) { return _this.valueColumn.item(e); };
if (b < 1 || this.valueColumn == null || this.valueColumn.count == 0) {
return;
}
if ((this.acx == null || this.acx.length != this.valueColumn.count) && b == 1) {
var e = this.acz == 0 ? NaN : 0;
if (this.acc != null && typeCast(ISortingAxis_$type, this.acc) !== null && this.acc.i$b != null) {
var f_1 = new SafeSortedReadOnlyDoubleCollection(1, this.valueColumn, this.acc.i$b, NaN);
d = function (g) { return f_1.item(g); };
}
this.acx = Numeric.c(this.valueColumn.count, c, d, e, e);
if (this.ac0) {
var g = -1.7976931348623157E+308;
var h = 1.7976931348623157E+308;
var i = this.acv(a);
if (i == null) {
return;
}
for (var j = 0; j < i.length; j++) {
if (isNaN_(i[j][0]) || isNaN_(i[j][1])) {
continue;
}
if (i[j][1] > g) {
g = i[j][1];
}
if (i[j][0] < h) {
h = i[j][0];
}
}
this.ac7 = h;
this.ac6 = g;
}
}
};
SplineSeriesBase.prototype.ac4 = function (a, b, c, d, e, f, g) {
var h = d - b;
var i = b + h * a;
var j = (d - i) / h;
var k = (i - b) / h;
var l = j * c + k * e + ((j * j * j - j) * f + (k * k * k - k) * g) * (h * h) / 6;
return l;
};
SplineSeriesBase.prototype.iu = function (a, b, c, d, e, f, g, h) {
var i = NaN;
if (c >= 0 && c < b.count) {
i = b.item(c);
}
var j = NaN;
if (d >= 0 && d < b.count) {
j = b.item(d);
}
if (f == 0) {
return j;
}
if (e == b.count - 1) {
return i;
}
if (isNaN_(j) && g != 0 && a <= 0.5 && !h) {
return i;
}
if (isNaN_(i) && g != 0 && a >= 0.5 && !h) {
return j;
}
var k = e;
var l = f;
var m = i;
var n = j;
var o = NaN;
var p = NaN;
if (this.acx != null && e >= 0 && e < this.acx.length) {
o = this.acx[e];
}
if (this.acx != null && f >= 0 && f < this.acx.length) {
p = this.acx[f];
}
return this.ac4(a, k, m, l, n, o, p);
};
SplineSeriesBase.prototype.ac5 = function (a, b, c, d) {
var e = this.preferredCategoryMode(a);
if (e == 0 && a.categoryMode != 0) {
e = 1;
}
var f = 0;
switch (e) {
case 0:
f = 0;
break;
case 1:
f = 0.5 * a.getCategorySize(b, c, d);
break;
case 2:
f = a.getGroupCenter(this.index, b, c, d);
break;
}
if (a.ch) {
f = -f;
}
return f;
};
Object.defineProperty(SplineSeriesBase.prototype, "ac7", {
get: function () {
return this.ac3;
},
set: function (a) {
this.ac3 = a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(SplineSeriesBase.prototype, "ac6", {
get: function () {
return this.ac2;
},
set: function (a) {
this.ac2 = a;
},
enumerable: false,
configurable: true
});
SplineSeriesBase.prototype.adc = function () {
this.acx = null;
this.ac7 = NaN;
this.ac6 = NaN;
if (this.yAxis != null) {
this.yAxis.c1();
}
};
SplineSeriesBase.prototype.q8 = function (a, b, c, d) {
switch (b) {
case "ValueColumn":
case "FastItemsSource":
this.adc();
break;
}
_super.prototype.q8.call(this, a, b, c, d);
switch (b) {
case SplineSeriesBase.$$p[1]:
this.adc();
this.rq(false);
this.qk();
break;
}
};
SplineSeriesBase.prototype.pa = function (a, b, c, d) {
this.adc();
_super.prototype.pa.call(this, a, b, c, d);
};
SplineSeriesBase.prototype.p3 = function (a, b, c) {
this.aab(a, b, c, this.ys, 0);
};
SplineSeriesBase.prototype.ak = function (a, b) {
var c = new List$1(ChartSelection.$, 0);
this.p3(a, c, b);
return c.toArray();
};
Object.defineProperty(SplineSeriesBase.prototype, "useHighMarkerFidelity", {
get: function () {
return this.zp;
},
enumerable: false,
configurable: true
});
SplineSeriesBase.$t = markType(SplineSeriesBase, 'SplineSeriesBase', HorizontalAnchoredCategorySeries.$);
SplineSeriesBase.$$p = markDep(DependencyProperty, PropertyMetadata, SplineSeriesBase, 'raisePropertyChanged', ['IsSplineShapePartOfRange:ac0:add', [0, false], 'SplineType:acz:ade', [SplineType_$type, enumGetBox(SplineType_$type, 0)]]);
return SplineSeriesBase;
}(HorizontalAnchoredCategorySeries));
export { SplineSeriesBase };
/**
* @hidden
*/
var SplineSeriesBaseView = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(SplineSeriesBaseView, _super);
function SplineSeriesBaseView(a) {
var _this = _super.call(this, a) || this;
_this.df = null;
_this.df = a;
return _this;
}
SplineSeriesBaseView.prototype.dg = function () {
var a = 1;
if (this.df.db != null) {
a = this.df.db.hi;
}
return Math.max(1 / (a * 3), 0.3);
};
SplineSeriesBaseView.prototype.af = function () {
var a = new Color();
a.colorString = "rgba(95,95,95,0.5)";
this.e.v0 = a;
this.e.jl = 3;
this.e.jm = 1;
this.e.jn = 4;
this.e.hb = false;
};
SplineSeriesBaseView.$t = markType(SplineSeriesBaseView, 'SplineSeriesBaseView', AnchoredCategorySeriesView.$);
return SplineSeriesBaseView;
}(AnchoredCategorySeriesView));
export { SplineSeriesBaseView };