UNPKG

igniteui-react-charts

Version:

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

493 lines (492 loc) 15 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 { Base, EventArgs, runOn, markType } from "igniteui-react-core"; import { KDTreeNode2D } from "./KDTreeNode2D"; import { KDTreeThunk } from "./KDTreeThunk"; import { Stack$1 } from "igniteui-react-core"; import { List$1 } from "igniteui-react-core"; import { KNearestResult } from "./KNearestResult"; import { SearchData } from "./SearchData"; import { intDivide, isNaN_ } from "igniteui-react-core"; /** * @hidden */ export let KDTree2D = /*@__PURE__*/ (() => { class KDTree2D extends Base { constructor(a, ..._rest) { super(); this.a = null; this.j = null; this.i = null; this.m = 0; this.q = {}; this.progressiveThunkCompleted = null; this.g = false; this.e = null; this.f = null; this.d = null; a = (a == void 0) ? 0 : a; switch (a) { case 0: { let c = _rest[0]; let d = _rest[1]; let e = _rest[2]; this.f = e; this.d = this.c(c, 0, c.length - 1, 0, d); } break; case 1: { let c = _rest[0]; this.f = c; } break; } } get r() { return this.q; } static b(a, b, c) { let d = new KDTree2D(1, c); d.d = new KDTreeNode2D(); d.d.g = true; d.a = a; d.j = new Stack$1(KDTreeThunk.$); d.i = new List$1(KDTreeThunk.$, 0); let e = new KDTreeThunk(); e.e = 0; e.b = a.length - 1; e.c = 0; e.d = b; e.a = d.d; d.j.h(e); return d; } h(a) { if (this.j.f == 0 && this.i.count == 0) { this.a = null; return false; } if (this.j.f == 0 && this.i.count > 0) { return true; } this.m = this.j.d().c; while (this.j.f > 0 && this.j.d().c == this.m) { this.i.add(this.j.e()); } if (a != null) { a.setTimeout(runOn(this, this.z), 0); } else { window.setTimeout(runOn(this, this.z), 0); } return true; } t() { this.g = true; } z() { let a; for (let b = 0; b < this.i.count; b++) { if (this.g || this.a == null) { return; } if (this.a.length == 0) { continue; } a = this.i._inner[b]; this.w(a.a, this.a, a.e, a.b, a.c, a.d); } this.i.clear(); if (this.progressiveThunkCompleted != null) { this.progressiveThunkCompleted(this, new EventArgs()); } } w(a, b, c, d, e, f) { a.g = false; a.f = (e % 2) == 0; a.h = (d - c); if (c == d) { a.b = b[c]; return; } if (c > d) { a.g = true; return; } if ((d - c) + 1 <= f) { a.b = b[c]; a.a = new Array((d - c) + 1); let g = 0; for (let h = c; h <= d; h++) { a.a[g++] = b[h]; } return; } let i = Math.max(intDivide((d - c), 2), 1); let j = this.o(b, c, d, a.f, i); a.b = b[j]; if (c <= j - 1) { a.c = ((() => { let $ret = new KDTreeNode2D(); $ret.g = true; return $ret; })()); a.c.h = ((j - 1) - c) + 1; this.j.h(((() => { let $ret = new KDTreeThunk(); $ret.e = c; $ret.b = j - 1; $ret.c = e + 1; $ret.d = f; $ret.a = a.c; return $ret; })())); } else { a.c = null; } if (j + 1 <= d) { a.d = ((() => { let $ret = new KDTreeNode2D(); $ret.g = true; return $ret; })()); a.d.h = (d - (j + 1)) + 1; this.j.h(((() => { let $ret = new KDTreeThunk(); $ret.e = j + 1; $ret.b = d; $ret.c = e + 1; $ret.d = f; $ret.a = a.d; return $ret; })())); } else { a.d = null; } } c(a, b, c, d, e) { let f = new KDTreeNode2D(); f.f = (d % 2) == 0; f.h = (c - b); if (b == c) { f.b = a[b]; return f; } if (b > c) { return null; } if ((c - b) + 1 <= e) { f.b = a[b]; f.a = new Array(c - b + 1); let g = 0; for (let h = b; h <= c; h++) { f.a[g++] = a[h]; } return f; } let i = Math.max(intDivide((c - b), 2), 1); let j = this.o(a, b, c, f.f, i); f.b = a[j]; f.c = this.c(a, b, j - 1, d + 1, e); f.d = this.c(a, j + 1, c, d + 1, e); return f; } n(a, b, c, d, e) { let f = b ? a[e].a : a[e].b; let g = a[e]; a[e] = a[d]; a[d] = g; let h = c; for (let i = c; i < d; i++) { let j; if (b) { j = a[i].a; } else { j = a[i].b; } if (j <= f) { g = a[h]; a[h] = a[i]; a[i] = g; h++; } } g = a[d]; a[d] = a[h]; a[h] = g; return h; } o(a, b, c, d, e) { if (b == c) { return b; } if (this.e == null) { this.e = this.f.getGenerator("KDTreePivot"); } let f = this.e.next(b, c); let g = this.n(a, d, b, c, f); let h = g - b + 1; if (h == e) { return g; } else if (e < h) { return this.o(a, b, g - 1, d, e); } else { return this.o(a, g + 1, c, d, e - h); } } x(a, b, c, d) { this.y(a, b, c, d, this.d); } y(a, b, c, d, e) { if (e == null || e.g) { return; } if (e.c == null && e.d == null) { this.s(a, b, c, e, e.b, true, 0, d); if (a.a) { return; } if (e.a != null && e.a.length > 0) { for (let f = 0; f < e.a.length; f++) { this.s(a, b, c, e, e.a[f], false, f, d); if (a.a) { return; } } } return; } this.s(a, b, c, e, e.b, true, 0, d); if (a.a) { return; } if (e.f) { if (b <= e.b.a) { this.y(a, b, c, d, e.c); if (a.a) { return; } if (this.k(b, c, e.b.a, c) < a.c) { this.y(a, b, c, d, e.d); } if (a.a) { return; } } else { this.y(a, b, c, d, e.d); if (a.a) { return; } if (this.k(b, c, e.b.a, c) < a.c) { this.y(a, b, c, d, e.c); } if (a.a) { return; } } } else { if (c <= e.b.b) { this.y(a, b, c, d, e.c); if (a.a) { return; } if (this.k(b, c, b, e.b.b) < a.c) { this.y(a, b, c, d, e.d); } if (a.a) { return; } } else { this.y(a, b, c, d, e.d); if (a.a) { return; } if (this.k(b, c, b, e.b.b) < a.c) { this.y(a, b, c, d, e.c); } if (a.a) { return; } } } } s(a, b, c, d, e, f, g, h) { if (a.a) { return; } if (a.e > a.f) { a.a = true; return; } if (a.b.count < h) { if (isNaN_(a.d)) { a.d = this.k(b, c, e.a, e.b); a.c = a.d; a.g = 0; } a.b.add(((() => { let $ret = new KNearestResult(); $ret.b = f; $ret.e = g; $ret.a = d; $ret.c = e.a; $ret.d = e.b; return $ret; })())); a.e++; let i = this.k(b, c, e.a, e.b); if (i < a.d) { a.d = i; } if (i > a.c) { a.c = i; a.g = a.b.count - 1; } return; } let j = 0; if (j < a.c) { if (j < a.d) { a.d = j; } a.b._inner[a.g] = ((() => { let $ret = new KNearestResult(); $ret.b = f; $ret.e = g; $ret.a = d; $ret.c = e.a; $ret.d = e.b; return $ret; })()); let k = 0; let l = 0; for (let m = 0; m < a.b.count; m++) { let n = this.k(b, c, a.b._inner[m].c, a.b._inner[m].d); if (n > k) { k = n; l = m; } } a.e++; } } k(a, b, c, d) { return (a - c) * (a - c) + (b - d) * (b - d); } u(a, b, c, d, e, f) { this.v(a, this.d, b, c, d, e, f, false, 0); } v(a, b, c, d, e, f, g, h, i) { if (b == null) { return; } let j = b.e; if (i > c.g || ((g - f) < c.f && (e - d) < c.e)) { if (b.e == null) { b.e = new SearchData(); } j = b.e; j.a = true; j.d = d; j.b = e; j.e = f; j.c = g; a.add(b); return; } if (j != null) { j.a = false; } if (b.c == null && b.d == null) { a.add(b); return; } let k; let l; let m; let n; let o; let p; let q; let r; if (b.f) { k = d; l = b.b.a; m = f; n = g; o = b.b.a; p = e; q = f; r = g; } else { k = d; l = e; m = f; n = b.b.b; o = d; p = e; q = b.b.b; r = g; } if (h) { a.add(b); this.v(a, b.c, c, k, l, m, n, true, i + 1); this.v(a, b.d, c, o, p, q, r, true, i + 1); } else { let s = false; if (k >= c.c && l <= c.a && m >= c.d && n <= c.b) { s = true; a.add(b); this.v(a, b.c, c, k, l, m, n, true, i + 1); } else if (!(c.c > l || c.a < k || c.d > n || c.b < m)) { s = true; a.add(b); this.v(a, b.c, c, k, l, m, n, false, i + 1); } if (o >= c.c && p <= c.a && q >= c.d && r <= c.b) { if (!s) { a.add(b); } this.v(a, b.d, c, o, p, q, r, true, i + 1); } else if (!(c.c > p || c.a < o || c.d > r || c.b < q)) { if (!s) { a.add(b); } this.v(a, b.d, c, o, p, q, r, false, i + 1); } } } aa() { this.p(this.d); } p(a) { if (a == null) { return 0; } if (this.p(a.c) + this.p(a.d) != a.h) { let b = 0; } return a.h + 1; } } KDTree2D.$t = /*@__PURE__*/ markType(KDTree2D, 'KDTree2D'); return KDTree2D; })();