UNPKG

igniteui-react-charts

Version:

Ignite UI React charting components for building rich data visualizations using TypeScript APIs.

656 lines (655 loc) 23.1 kB
/* 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 { HorizontalAnchoredCategorySeries } from "./HorizontalAnchoredCategorySeries"; import { DependencyProperty } from "igniteui-react-core"; import { SplineType_$type } from "./SplineType"; import { AxisRange } from "./AxisRange"; import { Array_$type, typeCast, Point_$type, enumGetBox, markType, markDep } from "igniteui-react-core"; import { List$1 } from "igniteui-react-core"; import { Rect } from "igniteui-react-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-react-core"; import { ChartSelection } from "./ChartSelection"; import { PropertyMetadata } from "igniteui-react-core"; import { truncate, isNaN_ } from "igniteui-react-core"; import { Color } from "igniteui-react-core"; /** * @hidden */ export let SplineSeriesBase = /*@__PURE__*/ (() => { class SplineSeriesBase extends HorizontalAnchoredCategorySeries { constructor() { super(...arguments); this.ac5 = null; this.adb = NaN; this.ada = NaN; } jl() { if (!isNaN_(this.jk)) { return super.jl(); } return this.ac6.du(); } ct() { return new SplineSeriesBaseView(this); } q3(a) { super.q3(a); this.ac6 = a; } r8(a) { super.r8(a); this.ac8 = true; } ay(a) { if (!this.ac8 || this.ac5 == null || this.ac5.length == 0) { return super.ay(a); } if (this.valueColumn == null || this.valueColumn.count == 0) { return null; } if (a == this.fetchXAxis()) { return new AxisRange(0, this.valueColumn.count - 1); } this.adi(this.ac6); if (this.ac5 == null || this.ac5.length == 0) { return null; } if (a == this.fetchYAxis()) { if (isNaN_(this.ade) || isNaN_(this.adf)) { return null; } return new AxisRange(this.adf, this.ade); } return null; } get_ex() { return true; } ac3(a) { if (a.c9.d == 0) { return null; } let b = new List$1(Array_$type, 0); let c = a.ca; let d = a.b9; let e = this.getEffectiveViewport1(a); let f = 0; let g = 0; let h = 0; let i = this; let j = typeCast(CategoryAxisBase.$, i.fetchXAxis()); let k = i.wo(this.cw); let l = i.dp; if (c.isEmpty || d.isEmpty || j == null || l == null || l.count == 0) { f = 0; return null; } let m = this.ie; let n = typeCast(ISortingAxis_$type, j); if (n == null || n.i$b == null) { let o = new ScalerParams(0, c, d, j.ch, e); let p = 0; let q = j.lk - 1; let 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.dp.count) { return null; } this.adi(a); let s = truncate(Math.ceil(d.width / (h - g))); let t = new CollisionAvoider(); if (n != null) { return this.ac4(a); } let u = (v) => v; let v = (w) => this.valueColumn.item(w); let w = a; w.dp(); for (let x = g; x <= h; ++x) { let y = null; if (f == 1) { if (x >= (this.valueColumn.count - 1)) { break; } let z = u(x); let aa = v(x); let ab = u(x + 1); let ac = v(x + 1); let ad = ab - z; let ae = this.ac5[x]; let af = this.ac5[x + 1]; b.add([aa, ac]); for (let ag = 1; ag < s; ++ag) { let ah = z + ad * ag / s; let ai = (ab - ah) / ad; let aj = (ah - z) / ad; let 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.c9.getBucket(x); if (!isNaN_(y[0])) { b.add([y[1], y[2]]); } } } w.dr(); return b.toArray(); } ac4(a) { let b = typeCast(ISortingAxis_$type, this.ack); let c = this.getEffectiveViewport1(a); let d = a.ca; let e = a.b9; let f = new List$1(Array_$type, 0); if (b == null) { return null; } let g = this.ack; let h = 0; let i = 0; let j = 0; let k = this.ie; let l = this.wo(this.cw); if (b == null || b.i$b == null) { let m = new ScalerParams(0, d, e, g.ch, c); let n = 0; let o = g.lk - 1; let 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; } let q = (r) => r; let r = (s) => this.valueColumn.item(b.i$b._inner[s]); let s = truncate(Math.ceil(e.width / (j - i))); let t = new CollisionAvoider(); if (h <= 0 || (i <= 0 && j <= 0)) { return null; } for (let u = i; u < j + 1; ++u) { let v = null; let 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; } let x = q(u); let y = r(u); let z = q(u + 1); let aa = r(u + 1); let ab = z - x; let ac = this.ac5[u]; let ad = this.ac5[u + 1]; f.add([y, y]); for (let ae = 1; ae < s; ++ae) { let af = ae / s; let ag = x + ab * af; let ah = (z - ag) / ab; let ai = (ag - x) / ab; let 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(); } adj(a, b, c, d, e, f) { let g = typeCast(ISortingAxis_$type, d); let h = this.getEffectiveViewport1(f); if (g == null) { return; } let i = new ScalerParams(0, b, c, d.ch, h); let j = new ScalerParams(0, b, c, e.ch, h); j.b = this.iz(); let k = this.xl(); let l = 0; let m = this.add(d, b, c, h); let n = (o) => o; let o = (p) => this.valueColumn.item(g.i$b._inner[p]); let p = this.y8.c9.f; let q = this.y8.c9.e; let r = truncate(Math.ceil(c.width / (p - q))); let s = new CollisionAvoider(); let t = this.y8.c9.d; if (t <= 0 || (q <= 0 && p <= 0)) { this.y8.dc.count = l; return; } let u = 0; let v = 0; for (let w = q; w < p + 1; ++w) { let x = null; let 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.ac9(a, a.h._inner[a.h.count - 1], s, Math.min(y, this.dp.count - 1), l, f, u - 1)) { ++l; } break; } let z = n(w); let aa = o(w); let ab = n(w + 1); let ac = o(w + 1); let ad = ab - z; let ae = this.ac5[w]; let af = this.ac5[w + 1]; let ag = g.i$d(g.i$b._inner[w]); let ah = d.el(ag, i) + m; let ai = e.el(aa, j); a.h.add([ah, ai, ai]); u++; v = u; for (let aj = 1; aj < r; ++aj) { let ak = aj / r; let al = z + ad * ak; let am = (ab - al) / ad; let an = (al - z) / ad; let ao = am * aa + an * ac + ((am * am * am - am) * ae + (an * an * an - an) * af) * (ad * ad) / 6; let ap = g.i$d(g.i$b._inner[w]); let aq = g.i$d(g.i$b._inner[w + 1]); let ar = ap + (aq - ap) * ak; al = d.el(ar, i) + m; ao = e.el(ao, j); a.h.add([al, ao, ao]); u++; } if (k) { x = [ah, ai, ai]; } if (k && this.ac9(a, x, s, Math.min(y, this.dp.count - 1), l, f, v - 1)) { ++l; } } f.dc.count = l; } ac9(a, b, c, d, e, f, g) { let h = b[0]; let i = b[1]; let j = new Rect(0, h - 5, i - 5, 11, 11); if (!isNaN_(h) && !isNaN_(i) && c.tryAdd(j)) { a.p.add({ $type: Point_$type, x: h, y: i }); let k = f.dc.item(e); k.content.item = this.dp.item(d); k.al = g; k.ak = d; return true; } return false; } an(a, b, c, d, e, f) { if (a == null || a.cn || this.z0(this.cw) > 1 || this.z0(this.cw) == 0) { return super.an(this.yx(), this.yz.h, this.z0(this.cw), this.z1(this.cw), e, f); } if (this.yz.h.count == 0) { return null; } let g = this.ac6.c9.f; let h = this.cw.b9; let i = truncate(Math.ceil(h.width)); if (g != d) { i = truncate(Math.ceil(h.width / (g - d))); } let j = -1; let k = -1; let l = this.is(e); let m = this.kb(e, f); let n = this.j9(e, f); let o = truncate(Math.floor(m / this.z0(this.cw))); let p = truncate(Math.floor(n / this.z0(this.cw))); j = o - this.z1(this.cw); k = p - this.z1(this.cw); let q = j * i; let r = k * i; let s = 0; if (m != n) { s = (l - m) / (n - m); } let t = truncate(Math.floor(q + s * (r - q))); j = t; k = t + 1; if (j < 0) { j = 0; } if (j > this.yz.h.count - 1) { j = this.yz.h.count - 1; } if (k < 0) { k = 0; } if (k > this.yz.h.count - 1) { k = this.yz.h.count - 1; } let u = this.yz.h._inner[j]; let v = this.yz.h._inner[k]; let w = new Array(2); w[0] = u; w[1] = v; return w; } aap(a, b) { super.aap(a, b); if (a.h.count <= 1) { return; } if (b.c9.d == 0) { return; } let c = b.ca; let d = b.b9; let e = this.getEffectiveViewport1(b); let f = this.ack; let g = this.acq; let h = new ScalerParams(0, c, d, f.ch, e); let i = ((() => { let $ret = new ScalerParams(0, c, d, g.ch, e); $ret.b = this.iz(); return $ret; })()); a.h.clear(); a.p.clear(); let j = this.xl(); let k = 0; let l = typeCast(ISortingAxis_$type, this.ack); if (l != null && l.i$b.count != this.dp.count) { return; } let m = this.add(f, c, d, e); let n = b.c9.d; this.adi(b); let o = b.c9.f; let p = b.c9.e; let q = truncate(Math.ceil(d.width / (o - p))); let r = new CollisionAvoider(); if (l != null) { this.adj(a, c, d, f, g, b); return; } let s = (t) => t; let t = (u) => this.valueColumn.item(u); let u = b; u.dp(); let v = 0; let w = 0; for (let x = p; x <= o; ++x) { let y = null; if (n == 1) { if (x >= (this.valueColumn.count - 1)) { if (j && this.ac9(a, a.h._inner[a.h.count - 1], r, Math.min(x * n, this.dp.count - 1), k, b, v - 1)) { ++k; } break; } let z = s(x); let aa = t(x); let ab = s(x + 1); let ac = t(x + 1); let ad = ab - z; let ae = this.ac5[x]; let af = this.ac5[x + 1]; let ag = f.el(z, h) + m; let ah = g.el(aa, i); a.h.add([ag, ah, ah]); v++; w = v; for (let ai = 1; ai < q; ++ai) { let aj = z + ad * ai / q; let ak = (ab - aj) / ad; let al = (aj - z) / ad; let 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.h.add([aj, am, am]); v++; } if (j) { y = b.c9.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.c9.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.h.add(y); v++; w = v; } } if (j && this.ac9(a, y, r, Math.min(x * n, this.dp.count - 1), k, b, w - 1)) { ++k; } } u.dr(); b.dc.count = k; } adi(a) { let b = a.c9.d; let c = (d) => d; let d = (e) => this.valueColumn.item(e); if (b < 1 || this.valueColumn == null || this.valueColumn.count == 0) { return; } if ((this.ac5 == null || this.ac5.length != this.valueColumn.count) && b == 1) { let e = this.ac7 == 0 ? NaN : 0; if (this.ack != null && typeCast(ISortingAxis_$type, this.ack) !== null && this.ack.i$b != null) { let f = new SafeSortedReadOnlyDoubleCollection(1, this.valueColumn, this.ack.i$b, NaN); d = (g) => f.item(g); } this.ac5 = Numeric.c(this.valueColumn.count, c, d, e, e); if (this.ac8) { let g = -1.7976931348623157E+308; let h = 1.7976931348623157E+308; let i = this.ac3(a); if (i == null) { return; } for (let 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.adf = h; this.ade = g; } } } adc(a, b, c, d, e, f, g) { let h = d - b; let i = b + h * a; let j = (d - i) / h; let k = (i - b) / h; let l = j * c + k * e + ((j * j * j - j) * f + (k * k * k - k) * g) * (h * h) / 6; return l; } iw(a, b, c, d, e, f, g, h) { let i = NaN; if (c >= 0 && c < b.count) { i = b.item(c); } let 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; } let k = e; let l = f; let m = i; let n = j; let o = NaN; let p = NaN; if (this.ac5 != null && e >= 0 && e < this.ac5.length) { o = this.ac5[e]; } if (this.ac5 != null && f >= 0 && f < this.ac5.length) { p = this.ac5[f]; } return this.adc(a, k, m, l, n, o, p); } add(a, b, c, d) { let e = this.preferredCategoryMode(a); if (e == 0 && a.categoryMode != 0) { e = 1; } let 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; } get adf() { return this.adb; } set adf(a) { this.adb = a; } get ade() { return this.ada; } set ade(a) { this.ada = a; } adk() { this.ac5 = null; this.adf = NaN; this.ade = NaN; if (this.yAxis != null) { this.yAxis.c1(); } } rc(a, b, c, d) { switch (b) { case "ValueColumn": case "FastItemsSource": this.adk(); break; } super.rc(a, b, c, d); switch (b) { case SplineSeriesBase.$$p[1]: this.adk(); this.ru(false); this.qn(); break; } } pd(a, b, c, d) { this.adk(); super.pd(a, b, c, d); } p6(a, b, c) { this.aak(a, b, c, this.yy, 0); } ak(a, b) { let c = new List$1(ChartSelection.$, 0); this.p6(a, c, b); return c.toArray(); } aah(a, b, c, d, e) { let f = this.aai(a, b, c, d, e); d = f.p3; e = f.p4; return { p3: d, p4: e }; } get useHighMarkerFidelity() { return this.zv; } } SplineSeriesBase.$t = /*@__PURE__*/ markType(SplineSeriesBase, 'SplineSeriesBase', HorizontalAnchoredCategorySeries.$); SplineSeriesBase.$$p = /*@__PURE__*/ markDep(DependencyProperty, PropertyMetadata, SplineSeriesBase, 'raisePropertyChanged', ['IsSplineShapePartOfRange:ac8:adl', [0, false], 'SplineType:ac7:adm', [SplineType_$type, /*@__PURE__*/ enumGetBox(SplineType_$type, 0)]]); return SplineSeriesBase; })(); /** * @hidden */ export let SplineSeriesBaseView = /*@__PURE__*/ (() => { class SplineSeriesBaseView extends AnchoredCategorySeriesView { constructor(a) { super(a); this.dt = null; this.dt = a; } du() { let a = 1; if (this.dt.dc != null) { a = this.dt.dc.hp; } return Math.max(1 / (a * 3), 0.3); } an() { let a = new Color(); a.colorString = "rgba(95,95,95,0.5)"; this.f.v6 = a; this.f.jn = 3; this.f.jo = 1; this.f.jp = 4; this.f.hd = false; } } SplineSeriesBaseView.$t = /*@__PURE__*/ markType(SplineSeriesBaseView, 'SplineSeriesBaseView', AnchoredCategorySeriesView.$); return SplineSeriesBaseView; })();