UNPKG

igniteui-angular-charts

Version:

Ignite UI Angular charting components for building rich data visualizations for modern web apps.

1,405 lines (1,404 loc) 63.6 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 { Series } from "./Series"; import { ISupportsFillScale_$type } from "./ISupportsFillScale"; import { DependencyProperty } from "igniteui-angular-core"; import { BrushScale } from "./BrushScale"; import { HighlightingInfo } from "igniteui-angular-core"; import { ShapeItemSearchMode_$type } from "./ShapeItemSearchMode"; import { IEnumerable$1_$type, String_$type, enumGetBox, Number_$type, Point_$type, typeCast, runOn, delegateCombine, fromEnum, Array_$type, markType, markDep } from "igniteui-angular-core"; import { NumericXAxis } from "./NumericXAxis"; import { NumericYAxis } from "./NumericYAxis"; import { List$1 } from "igniteui-angular-core"; import { Rect } from "igniteui-angular-core"; import { StyleShapeEventArgs } from "./StyleShapeEventArgs"; import { FrameworkElement } from "igniteui-angular-core"; import { IFastItemsSource_$type } from "igniteui-angular-core"; import { DataContext } from "igniteui-angular-core"; import { Tuple$2 } from "igniteui-angular-core"; import { ShapeHitRegion } from "./ShapeHitRegion"; import { RectUtil } from "igniteui-angular-core"; import { Tuple$3 } from "igniteui-angular-core"; import { GeometryUtil } from "igniteui-angular-core"; import { AssigningShapeStyleEventArgs } from "./AssigningShapeStyleEventArgs"; import { AssigningShapeMarkerStyleEventArgs } from "./AssigningShapeMarkerStyleEventArgs"; import { SeriesLayerPropertyOverlay } from "./SeriesLayerPropertyOverlay"; import { CustomPaletteBrushScale } from "./CustomPaletteBrushScale"; import { ValueBrushScale } from "./ValueBrushScale"; import { PointCollectionUtil } from "igniteui-angular-core"; import { FlattenedShape } from "./FlattenedShape"; import { SeriesView } from "./SeriesView"; import { Clipper } from "igniteui-angular-core"; import { ScalerParams } from "./ScalerParams"; import { Dictionary$2 } from "igniteui-angular-core"; import { ActualRange } from "./ActualRange"; import { SeriesRenderManager } from "./SeriesRenderManager"; import { PolySimplification } from "igniteui-angular-core"; import { DefaultFlattener } from "./DefaultFlattener"; import { ChartSelection } from "./ChartSelection"; import { AxisRange } from "./AxisRange"; import { Style } from "igniteui-angular-core"; import { PropertyMetadata } from "igniteui-angular-core"; import { boxArray$1 } from "igniteui-angular-core"; import { InvalidOperationException } from "igniteui-angular-core"; import { isNaN_, truncate } from "igniteui-angular-core"; import { FastItemObjectColumn } from "igniteui-angular-core"; import { Path } from "igniteui-angular-core"; import { Pool$1 } from "igniteui-angular-core"; import { PointCollection } from "igniteui-angular-core"; import { PathGeometry } from "igniteui-angular-core"; import { PolyLineSegment } from "igniteui-angular-core"; import { PathFigure } from "igniteui-angular-core"; import { PolygonUtil } from "igniteui-angular-core"; /** * @hidden */ export let ShapeSeriesBase = /*@__PURE__*/ (() => { class ShapeSeriesBase extends Series { constructor() { super(); this.xs = null; this.xx = false; this.xw = false; this.xq = null; this.xr = null; this.xg = 1; this.w1 = null; this.w2 = null; this.assigningShapeStyle = null; this.assigningShapeMarkerStyle = null; this.xk = null; this.xt = null; this.xc = null; this.xe = null; this.yj = 0; this.yf = null; this.wy = null; this.w0 = null; this.wz = null; this.wx = null; this.z3 = null; this.xa = null; this.xm = null; this.w5 = null; this.ym = 0; this.styleShape = null; this.xk = new ShapeSeriesRenderManager(); FastItemObjectColumn.m(); this.ym = this.yl; this.z3 = Rect.empty; } o1() { super.o1(); this.xd = null; this.xf = null; } ai() { return [this.xd, this.xf]; } kp(a, b) { let c = this.nc(b); if (c == ShapeSeriesBase.$$p[9]) { return this.kq(a, b, this.y6); } return null; } mc(a) { let b = this.nc(a); if (b == ShapeSeriesBase.$$p[9]) { return this.y6; } return super.mc(a); } get xu() { return this.xs; } set xu(a) { if (this.xs != a) { let b = this.xu; this.xs = a; this.raisePropertyChanged("FillColumn", b, this.xu); } } get_fd() { return true; } get_ed() { return true; } xo(a, b, c) { if (this.dn == null) { return null; } let d = this.v6(b); let e = this.xl.c2(d, false); let f = -1; if (e == null) { if (a != null) { f = this.dn.indexOf(a); } else { return null; } } else if (e.dataContext != null) { f = e.dataContext.c; } if (f == -1) { return null; } let g = new HighlightingInfo(); g.i = this; g.g = f; g.f = f; g.c = false; if (c != null && c.g == g.g && c.f == g.f) { return c; } return g; } xp(a, b, c) { if (this.dn == null) { return null; } let d = this.xl.b4(this.v6(b)); let e = -1; if (d == null) { if (a != null) { e = this.dn.indexOf(a); } else { return null; } } else { e = d.ak; } if (e == -1) { return null; } let f = new HighlightingInfo(); f.i = this; f.g = e; f.f = e; f.c = false; f.d = true; if (c != null && c.g == f.g && c.f == f.f) { return c; } return f; } get xh() { return this.xg; } set xh(a) { let b = this.xg; this.xg = a; if (b != this.xg) { this.raisePropertyChanged("ActualItemSearchMode", enumGetBox(ShapeItemSearchMode_$type, b), enumGetBox(ShapeItemSearchMode_$type, this.xg)); } } xi() { if (this.xj != 0) { return this.xj; } return 1; } iq(a) { switch (this.xh) { case 1: return this.zc(a).c; case 2: return this.yk(a); case 3: return this.yk(a); } return -1; } zc(a) { let b = this.v6(a); let c = { $type: Point_$type, x: NaN, y: NaN }; let d = this.xl.ce; if (d == null) { return new Tuple$2(Number_$type, Point_$type, -1, c); } let e = this.xl.b5(b, false, !this.xz); if (e != null) { c = RectUtil.l(e.d); return new Tuple$2(Number_$type, Point_$type, e.b, c); } let f = b.x; let g = b.y; if (this.dn == null || this.xd == null || this.xf == null || this.yf == null) { return new Tuple$2(Number_$type, Point_$type, -1, c); } if (this.dn.count > this.yp) { return new Tuple$2(Number_$type, Point_$type, -1, c); } let h = 1.7976931348623157E+308; let i = -1; for (let j = 0; j < d.count; j++) { let k = d._inner[j].d; let l = RectUtil.g(k, b); if (l < h) { h = l; i = d._inner[j].b; c = RectUtil.l(d._inner[j].d); } } return new Tuple$2(Number_$type, Point_$type, i, c); } zb(a) { let b = this.v6(a); let c = b.x; let d = b.y; let e = { $type: Point_$type, x: NaN, y: NaN }; if (this.dn == null || this.xd == null || this.xf == null || this.yf == null) { return new Tuple$3(Number_$type, Point_$type, Point_$type, -1, e, e); } if (this.dn.count > this.yp) { return new Tuple$3(Number_$type, Point_$type, Point_$type, -1, e, e); } let f = 1.7976931348623157E+308; let g = this.xl.ce; if (g == null) { return new Tuple$3(Number_$type, Point_$type, Point_$type, -1, e, e); } let h = this.xl.b5(b, false, !this.xz); if (h != null) { let i = RectUtil.l(h.d); let j = this.za(b, h.a, this.xz); return new Tuple$3(Number_$type, Point_$type, Point_$type, h.b, j.d, i); } for (let k = 0; k < g.count; k++) { let l = g._inner[k].d; let m = RectUtil.g(l, b); let n = (l.width * l.width) + (l.height * l.height) + m; if (n <= f) { f = n; } } let o = 1.7976931348623157E+308; let p = -1; for (let q = 0; q < g.count; q++) { let r = g._inner[q].d; let s = RectUtil.g(r, b); if (s < f) { let t = this.za(b, g._inner[q].a, this.xz); if (t.c < o) { o = t.c; e = t.d; p = q; } } } if (p >= 0) { return new Tuple$3(Number_$type, Point_$type, Point_$type, g._inner[p].b, e, RectUtil.l(g._inner[p].d)); } return new Tuple$3(Number_$type, Point_$type, Point_$type, -1, e, e); } get_xz() { return true; } get xz() { return this.get_xz(); } za(a, b, c) { let d = { $type: Point_$type, x: NaN, y: NaN }; let e = 1.7976931348623157E+308; let f = { $type: Point_$type, x: NaN, y: NaN }; let g = false; let h = -1; for (let i = 0; i < b.count; i++) { let j = b._inner[i]; if (i >= 1) { let k = GeometryUtil.h(a, d, j); if (k < e) { e = k; g = true; h = i; } } d = j; } if (c) { let l = b._inner[0]; let m = GeometryUtil.h(a, d, l); if (m < e) { e = m; let n = GeometryUtil.m(a, d, l); f = { $type: Point_$type, x: d.x + (l.x - d.x) * n, y: d.y + (l.y - d.y) * n }; return new Tuple$2(Number_$type, Point_$type, e, f); } } if (g) { let o = b._inner[h - 1]; let p = b._inner[h]; let q = GeometryUtil.m(a, o, p); f = { $type: Point_$type, x: o.x + (p.x - o.x) * q, y: o.y + (p.y - o.y) * q }; } return new Tuple$2(Number_$type, Point_$type, e, f); } yk(a) { return this.zb(a).c; } wb(a, b, c) { if (this.xd == null || this.xf == null || this.yf == null) { return { $type: Point_$type, x: NaN, y: NaN }; } switch (this.xh) { case 1: let d = this.zc(a); return d.d; case 2: let e = this.zb(a); return e.e; case 3: let f = this.zb(a); return f.d; } return { $type: Point_$type, x: NaN, y: NaN }; } km(a) { let b = this.j2(a); if (this.dn != null && b >= 0 && b < this.dn.count) { return this.dn.item(b); } return null; } xn(a, b, c) { let d = new HighlightingInfo(); d.i = this; d.g = 0; d.f = this.dn.count - 1; d.c = true; if (c != null && c.g == d.g && c.f == d.f) { return c; } return d; } dg(a, b, c) { if (this.ed && this.fy(this.bx) && !c) { let d = this.xo(a, b, this.xq); this.xq = d; return d; } else { let e = this.xn(a, b, this.xq); this.xq = e; return e; } } dh(a, b, c) { if (this.fy(this.bx) && !c) { let d = this.xp(a, b, this.xr); this.xr = d; return d; } else { let e = this.xn(a, b, this.xr); e.d = true; this.xr = e; return e; } } yd() { return (this.assigningShapeStyle != null && this.xx) || this.d2 || (this.bx != 1) || (this.cp != 1) || (this.co != 1) || (this.xu != null && this.w9 != null); } yc() { return (this.assigningShapeMarkerStyle != null && this.xw) || this.d2 || (this.bx != 1) || (this.cp != 1) || (this.co != 1); } get yx() { return this.c(ShapeSeriesBase.zt); } set yx(a) { this.h(ShapeSeriesBase.zt, a); } ga() { return this.highlightedItemsSource != null || this.yx != null; } hs() { let a = super.hs(); { let b = ((() => { let $ret = new SeriesLayerPropertyOverlay(); $ret.ad = "ShapeMemberPath"; $ret.p = true; $ret.y = "HighlightedShapeMemberPath"; $ret.q = true; return $ret; })()); b.valueResolving = delegateCombine(b.valueResolving, runOn(this, this.zf)); a.add(b); } { let c = ((() => { let $ret = new SeriesLayerPropertyOverlay(); $ret.r = true; $ret.ad = "Brush"; $ret.p = true; $ret.y = "ActualBrush"; $ret.q = true; return $ret; })()); c.valueResolving = delegateCombine(c.valueResolving, runOn(this, this.rz)); a.add(c); } { let d = ((() => { let $ret = new SeriesLayerPropertyOverlay(); $ret.r = true; $ret.ad = "Outline"; $ret.p = true; $ret.y = "ActualOutline"; $ret.q = true; return $ret; })()); d.valueResolving = delegateCombine(d.valueResolving, runOn(this, this.rz)); a.add(d); } return a; } zf(a, b) { if (this.yx != null) { b.value = this.yx; return; } b.value = this.y6; } get xv() { return this.xt; } set xv(a) { let b = this.xv != a; if (b) { let c = this.xv; this.xt = a; this.raisePropertyChanged("ShapeColumn", c, this.xv); } } x4(array_) { let a = (Array.isArray(array_)); return a; } static x8(a) { if (a == null) { return true; } let val_ = a; return (val_ == undefined); } convertToListList(a) { if (a == null) { return null; } let b = new List$1(List$1.$.specialize(Point_$type), 0); let c; let curr_; let d; let e; let f = false; let g = false; for (let h = 0; h < a.length; h++) { c = a[h]; if (c == null) { continue; } let i = new List$1(Point_$type, 0); for (let j = 0; j < c.length; j++) { curr_ = c[j]; if (f) { d = (curr_.X); e = (curr_.Y); } else { d = (curr_.x); e = (curr_.y); } if (!g) { if ((isNaN_(d) || ShapeSeriesBase.x8(d)) && (isNaN_(e) || ShapeSeriesBase.x8(e))) { d = (curr_.X); e = (curr_.Y); if (!isNaN_(d) && !ShapeSeriesBase.x8(d) && !isNaN_(e) && !ShapeSeriesBase.x8(e)) { g = true; f = true; } } else { g = true; } } i.add({ $type: Point_$type, x: d, y: e }); } b.add(i); } return b; } dm(a) { if (this.dn != null && this.x4(this.itemsSource) && a != null && a.split('!').length != 2) { if (this.coercionMethods == null) { this.coercionMethods = {}; } let methods_ = this.coercionMethods; methods_.convertToListList = this.convertToListList; a += "!convertToListList"; } return super.dm(a); } q8(a, b, c, d) { super.q8(a, b, c, d); let e = false; let f = false; switch (b) { case ShapeSeriesBase.$$p[5]: this.xh = this.xi(); break; case "FastItemsSource": let g = typeCast(IFastItemsSource_$type, c); if (g != null) { if (this.xu != null) { g.deregisterColumn(this.xu); } if (this.xv != null) { g.deregisterColumn(this.xv); } this.xv = null; } let h = typeCast(IFastItemsSource_$type, d); if (h != null) { if (this.y6 != null) { this.xv = this.dm(this.y6); } if (this.yt != null) { this.xu = this.dk(this.yt); } } e = this.xd != null && !this.xd.c1(); f = this.xf != null && !this.xf.c1(); if (e || f) { this.rq(this.gf && c != null); } break; case ShapeSeriesBase.$$p[9]: if (this.dn != null) { this.dn.deregisterColumn(this.xv); this.xv = this.dm(this.y6); } break; case "ShapeColumn": this.zn(); e = this.xd != null && !this.xd.c1(); f = this.xf != null && !this.xf.c1(); if (e || f) { this.rq(this.gf && this.d7); } this.qk(); break; case ShapeSeriesBase.$$p[10]: case ShapeSeriesBase.$$p[11]: this.xc = this.xd; this.xe = this.xf; let i = c; let j = d; this.zo(i); this.zg(j); if ((j != null && !j.c1()) || (j == null && i != null)) { this.rq(false); } this.qk(); break; case "ActualResolution": this.yj = this.ic; this.qk(); break; case "ActualBrush": this.rq(false); break; case ShapeSeriesBase.$$p[8]: this.ym = this.yl; this.rq(false); this.qk(); break; case ShapeSeriesBase.$$p[2]: case "ActualThickness": this.rq(false); this.qk(); break; case ShapeSeriesBase.$$p[4]: this.xx = this.yb(); this.rq(false); break; case ShapeSeriesBase.$$p[3]: this.xw = this.ya(); this.rq(false); break; case ShapeSeriesBase.$$p[1]: if (c != null) { c.o.remove(this); c.x(); this.xa = null; this.xm = null; } if (d != null) { d.o.add(this); d.x(); this.xa = typeCast(CustomPaletteBrushScale.$, d); this.xm = typeCast(ValueBrushScale.$, d); } this.rq(false); this.qk(); break; case "FillColumn": this.rq(this.gf && this.d7); this.qk(); break; case ShapeSeriesBase.$$p[0]: if (this.w9 != null) { this.w9.x(); } if (this.dn != null) { this.dn.deregisterColumn(this.xu); this.xu = this.dk(this.yt); } break; } } yb() { return this.x7; } ya() { return this.x6; } x1(a) { if (typeCast(NumericYAxis.$, a) !== null) { return true; } return false; } x0(a) { if (typeCast(NumericXAxis.$, a) !== null) { return true; } return false; } zn() { this.yf = null; if (this.xv == null) { return; } this.yf = new List$1(Rect.$, 2, this.xv.count); for (let a = 0; a < this.xv.count; a++) { this.yf.add(PointCollectionUtil.j(this.xv.item(a))); } } z4(a) { if (typeCast(IEnumerable$1_$type.specialize(IEnumerable$1_$type.specialize(Point_$type)), a) !== null) { return PointCollectionUtil.h(a); } else if (typeCast(IEnumerable$1_$type.specialize(Point_$type), a) !== null) { return PointCollectionUtil.g(a); } return Rect.empty; } yh(a, b, c, d, e, f, g) { return this.yi(a, b, c, d, e, f, g); if (typeCast(List$1.$.specialize(List$1.$.specialize(Point_$type)), c) !== null) { return this.yi(a, b, c, d, e, f, g); } else if (typeCast(IEnumerable$1_$type.specialize(IEnumerable$1_$type.specialize(Point_$type)), c) !== null) { let h = c; let i = new List$1(FlattenedShape.$, 0); let j = null; for (let k of fromEnum(h)) { j = this.xb(a, b, PointCollectionUtil.b(k), d, e, f, g); if (j == null) { continue; } i.add(j); } return i; } else if (typeCast(IEnumerable$1_$type.specialize(Point_$type), c) !== null) { let l = c; let m = this.xb(a, b, PointCollectionUtil.b(l), d, e, f, g); let n = new List$1(FlattenedShape.$, 0); if (m != null) { n.add(m); } return n; } else { throw new InvalidOperationException(1, "Unrecognized data in ShapeColumn"); } } get_x5() { return true; } get x5() { return this.get_x5(); } ye() { return false; } rr(a) { this.zm(this.cv); } rp(a, b, c, d, e) { super.rp(a, b, c, d, e); let f = this.ba.a$j.item(d); let g = f; f.a3(c); if (this.d5(f)) { return; } this.zm(f); } updateFillScaleGlobals() { let a = new ActualRange(); a.b = NaN; a.a = NaN; if (this.xu != null) { a.b = this.xu.minimum; a.a = this.xu.maximum; } if (this.w9 != null) { this.w9.z(a.b, a.a); } } zm(a) { if (this.d5(a)) { return; } if (this.w9 != null) { this.w5 = this.w6(); } let b; let c; let d = a; let e = a.getViewInfo(c, b); c = e.p0; b = e.p1; if (c.width < 1 || c.height < 1 || this.xv == null) { return; } let f = this.xd; let g = this.xf; let h = this.getEffectiveViewport1(a); let i = new ScalerParams(1, b, c, f.ch); i.c = h; let j = new ScalerParams(1, b, c, g.ch); j.c = h; if (!this.gq) { d.cu(); let k = new Rect(0, 0, 0, 0, 0); let l; let m; let n; let o; let p = this.xv.count; if (this.w0 == null || this.w0.length != p) { this.w0 = new Array(p); this.wy = new Array(p); this.wz = new Array(p); this.wx = new Array(p); } let q = this.w0; let r = this.wy; let s = this.wz; let t = this.wx; let u; for (let v = 0; v < p; v++) { u = this.yf._inner[v]; q[v] = u.top; r[v] = u.left; s[v] = u.right; t[v] = u.bottom; } this.xc.hq(boxArray$1(r), 0, r.length, i); this.xc.hq(boxArray$1(s), 0, s.length, i); this.xe.hq(boxArray$1(q), 0, q.length, j); this.xe.hq(boxArray$1(t), 0, t.length, j); d.cv(r, q, s, t); let w = this.xv; let x = this.dn; this.zp(d); let y = c.left; let z = c.right; let aa = c.top; let ab = c.bottom; let ac = null; if (this.z3.isEmpty) { ac = null; } else { ac = new Clipper(1, this.z3.left, this.z3.bottom, this.z3.right, this.z3.top, this.x5); } let ad = this.ye(); if (ad) { d.cc.clear(); } let ae = false; let af = true; let ag = 0; if (this.db != null) { if (this.db.f4()) { let ah = this.db.m4(b, i); ae = ah.c; ag = ah.d; } } let ai; for (let aj = 0; aj < p; aj++) { n = r[aj]; l = q[aj]; m = t[aj]; o = s[aj]; k.x = Math.min(n, o); k.y = Math.min(l, m); k.width = Math.max(n, o) - k.x; k.height = Math.max(l, m) - k.y; if (k.intersectsWith(c)) { if (k.x < y || k.y < aa || k.x > z || k.y > ab) { ai = ac; } else { ai = null; } let ak = this.yh(a, ai, w.item(aj), i, j, 0, ag); if (ad) { ShapeSeriesBase.zl(d, aj, ak); } d.ci(aj, x.item(aj), k, ak); } else if (ae) { k.x = k.x + ag; if (k.intersectsWith(c)) { if (k.x < y || k.y < aa || k.x > z || k.y > ab) { ai = ac; } else { ai = null; } let al = this.yh(a, ai, w.item(aj), i, j, ag, ag); if (ad) { ShapeSeriesBase.zl(d, aj, al); } d.ci(aj, x.item(aj), k, al); } } } d.ct(); } let am = this.yd(); this.xk.az(this, this.yd(), runOn(this, this.w3)); let an = false; let ao = this.xk.b; if (ao != null) { an = true; } let ap = a.q; let aq = this.fx; let ar = d.ca; d.cp((as) => { let at = as.dataContext != null ? as.dataContext.item : null; let au = as.dataContext != null ? as.dataContext.c : -1; d.cm(as, at, am); if (an) { this.zi(as, aq, au, this.xv.count, ap, ar); } else { if (ar) { { this.xk.a1(as, this.ia, ar); } } } { this.xk.ad(as, false, false, false, false); } }); } w6() { let a = new ActualRange(); a.b = NaN; a.a = NaN; if (this.xu != null) { a.b = this.xu.minimum; a.a = this.xu.maximum; } let b = typeCast(ValueBrushScale.$, this.w9); if (b != null) { b.s(); if (this.x2 && this.w9.o.count > 1) { a.b = b.q; a.a = b.p; } } return a; } zi(a, b, c, d, e, f) { let g = this.bx != 1; let h = this.cp != 1; let i = this.co != 1; this.xk.a0(this.xk.b, c, d, false); { this.xk.a1(a, this.ia, f); } let j = this.xk.ax; let k = null; let l = null; let m = null; let n = this.dn; if (this.xu != null && this.w9 != null) { if (j.z >= 0 && j.z < this.xu.count) { let o = this.xu.item(j.z); let p = this.w5; let q = p.b; let r = p.a; let s = j.aa; if (this.xa != null) { s = this.xa.getBrush1(j.z, this.xu.count); } else if (this.xm != null && this.xu != null) { let t = this.xu.item(j.z); s = this.xm.getBrushByRange(t, q, r); } else if (this.w9 != null) { s = this.w9.getBrush(j.z); } j.aa = s; } } if (g && this.db != null) { k = this.db.dl.getHighlightingInfo(this, n, j.z, j.y, false); j.c = k; } if (h && this.db != null) { l = this.db.dm.getHighlightingInfo(this, n, j.z, j.y, false); if (l == null && this.bn != null) { l = this.db.dm.getHighlightingInfo(this.bn, this.bn.dn, j.z, j.y, false); } if (l == null && this.bk != null) { l = this.db.dm.getHighlightingInfo(this.bk, this.bk.dn, j.z, j.y, true); } j.d = l; } if (i && this.db != null) { m = this.db.dk.getHighlightingInfo(this, n, j.z, j.y, false); j.b = m; } j.h = e; this.zk(j); this.xk.z(this, k, l, m, e, g, h, i, false); } zh(a, b, c) { let d = this.bx != 1; let e = this.cp != 1; let f = this.co != 1; this.xk.a0(this.xk.d, a, b, true); this.xk.aa(this.ia); let g = this.xk.aw; let h = null; let i = null; let j = null; let k = this.dn; let l = null; let m = null; let n = null; if (d && this.db != null) { h = this.db.dl.getHighlightingInfo(this, k, g.z, g.y, true); if (this.db.dl.isCrossContextHighlight(this)) { l = this.db.dl.getHighlightingInfo(this, k, g.z, g.y, true); } g.c = h; } if (e && this.db != null) { i = this.db.dm.getHighlightingInfo(this, k, g.z, g.y, true); if (i == null && this.bn != null) { i = this.db.dm.getHighlightingInfo(this.bn, this.bn.dn, g.z, g.y, true); } if (this.db.dm.isCrossContextHighlight(this)) { m = this.db.dm.getHighlightingInfo(this, k, g.z, g.y, true); } g.d = i; } if (f && this.db != null) { j = this.db.dk.getHighlightingInfo(this, k, g.z, g.y, true); if (this.db.dk.isCrossContextHighlight(this)) { n = this.db.dk.getHighlightingInfo(this, k, g.z, g.y, true); } g.b = i; } g.h = c; this.zj(g); this.xk.y(this, h, i, j, c, d, e, f, g.v, this.db.dl.totalHighWaterMark, g.x, this.db.dm.totalHighWaterMark, g.t, this.db.dk.totalHighWaterMark); } zk(a) { if (this.assigningShapeStyle != null && this.xx) { this.assigningShapeStyle(this, a); } } zj(a) { if (this.assigningShapeMarkerStyle != null && this.xw) { this.assigningShapeMarkerStyle(this, a); } } w3(a, b) { return this.w4(a, b); } w4(a, b) { if (b < a || a < 0 || a > this.xv.count || b < 0 || b > this.xv.count) { return null; } let c = new Array((b - a) + 1); for (let d = a; d <= b; d++) { let e = d; c[d - a] = this.dn.item(d); } return c; } static zl(a, b, c) { let d = 0; let e = null; for (let f = 0; f < c.count; f++) { let g = c._inner[f]; let h = g.b.width * g.b.height; if (h > d) { d = h; e = g; } } a.cc.addItem(b, e); } qa() { super.qa(); if (this.xd != null) { this.xd.ia(); } if (this.xf != null) { this.xf.ia(); } } sq(a, b) { this.rq(false); } sp(a, b) { this.rq(false); } pa(a, b, c, d) { super.pa(a, b, c, d); switch (a) { case 3: if (d == this.y6) { this.yf._inner[b] = this.z4(this.xv.item(b)); } break; case 1: for (let e = b; e < b + c; e++) { this.yf.insert(e, this.z4(this.xv.item(e))); } break; case 0: this.yf.v(b, c); break; case 2: for (let f = b; f < b + c; f++) { this.yf._inner[f] = this.z4(this.xv.item(f)); } break; case 4: this.zn(); break; } this.rq(false); } hd(a, b, c) { let d = true; if (!super.hd(a, b, c) || (this.x9 && this.xv == null) || b.isEmpty || a.isEmpty || this.xd == null || this.xf == null || this.xd.bi == null || this.xf.bi == null || this.xd.l4 == this.xd.l3 || this.xf.l4 == this.xf.l3 || this.xv == null || this.xv.count == 0 || this.yf == null || this.yf.count == 0 || this.yf.count != this.xv.count) { d = false; } return d; } get_x9() { return true; } get x9() { return this.get_x9(); } q0(a) { super.q0(a); this.xl = typeCast(ShapeSeriesViewBase.$, a); } yi(a, b, c, d, e, f, g) { let h = new List$1(FlattenedShape.$, 0); let i; let j = c.count; for (let k = 0; k < j; k++) { i = c._inner[k]; let l = this.xb(a, b, i, d, e, f, g); if (l == null) { continue; } h.add(l); } return h; } xb(a, b, c, d, e, f, g) { let h = this.zd(c, d, e); let i = h.c; let j = h.d; let k = i.length; let l = 1.7976931348623157E+308; let m = 1.7976931348623157E+308; let n = -1.7976931348623157E+308; let o = -1.7976931348623157E+308; let p; let q; if (f != 0) { for (let r = 0; r < k; r++) { i[r] = i[r] + f; } } for (let s = 0; s < k; s++) { p = i[s]; q = j[s]; l = p < l ? p : l; m = q < m ? q : m; n = p > n ? p : n; o = q > o ? q : o; } let t = !(l > this.z3.right || n < this.z3.left || m > this.z3.bottom || o < this.z3.top); if (!t && f == 0 && g != 0) { if (g != 0) { for (let u = 0; u < k; u++) { i[u] = i[u] + g; } } for (let v = 0; v < k; v++) { p = i[v]; q = j[v]; l = p < l ? p : l; m = q < m ? q : m; n = p > n ? p : n; o = q > o ? q : o; } t = !(l > this.z3.right || n < this.z3.left || m > this.z3.bottom || o < this.z3.top); } if (!t) { return null; } let w = b != null && (l < this.z3.left || m < this.z3.top || n > this.z3.right || o > this.z3.bottom); let x = new Rect(0, l, m, n - l, o - m); if (!a.cb(x)) { return null; } l = l < this.z3.left ? this.z3.left : l; n = n > this.z3.right ? this.z3.right : n; m = m < this.z3.top ? this.z3.top : m; o = o > this.z3.bottom ? this.z3.bottom : o; let y = PolySimplification.b(h, this.ic); let z = new DefaultFlattener().c(h.c, h.d, y, this.yj); let aa = z.count; if (w) { let ab = new List$1(Point_$type, 0); b.i = ab; for (let ac = 0; ac < aa; ac++) { b.j(z._inner[ac]); } b.i = null; z = ab; } if (z == null || z.count == 0) { return null; } let ad = new FlattenedShape(); ad.a = z; ad.b = new Rect(0, l, m, n - l, o - m); ad.c = x; return ad; } zd(a, b, c) { let d = this.xc; let e = this.xe; let f = a.count; let g = new Array(f); let h = new Array(f); for (let i = 0; i < f; i++) { g[i] = a._inner[i].x; h[i] = a._inner[i].y; } d.hq(boxArray$1(g), 0, g.length, b); e.hq(boxArray$1(h), 0, h.length, c); return new Tuple$2(Array_$type, Array_$type, g, h); } zp(a) { a.c0(); } o4(a, b) { super.o4(a, b); let c = b; c.cn(); } zg(a) { if (a != null) { a.ct(this); } } zo(a) { if (a != null) { a.b0(this); } } ze(a, b, c) { let d = this.cv; let e = d.bx; let f = this.wq(a); if (e.width < 1 || e.height < 1 || this.xv == null) { return; } let g = this.getEffectiveViewport1(d); let h = new ScalerParams(0, f, e, this.xd.ch, g); let i = new ScalerParams(0, f, e, this.xf.ch, g); d.cu(); let j = this.xv.count; let k = new Array(j); let l = new Array(j); let m = new Array(j); let n = new Array(j); let o; for (let p = 0; p < j; p++) { o = this.yf._inner[p]; k[p] = o.top; l[p] = o.left; m[p] = o.right; n[p] = o.bottom; } this.xd.hq(boxArray$1(l), 0, l.length, h); this.xd.hq(boxArray$1(m), 0, m.length, h); this.xf.hq(boxArray$1(k), 0, k.length, i); this.xf.hq(boxArray$1(n), 0, n.length, i); d.cv(l, k, m, n); d.c0(); let q = null; if (!this.z3.isEmpty) { q = new Clipper(1, this.z3.left, this.z3.bottom, this.z3.right, this.z3.top, this.x5); } let r = false; let s = 0; if (this.db != null) { if (this.db.f4()) { let t = this.db.m4(f, h); r = t.c; s = t.d; } } let u, v, w, x; let y = new Rect(0, 0, 0, 0, 0); for (let z = 0; z < j; z++) { w = l[z]; u = k[z]; v = n[z]; x = m[z]; y.x = Math.min(w, x); y.y = Math.min(u, v); y.width = Math.max(w, x) - y.x; y.height = Math.max(u, v) - y.y; if (r) { y.x = y.x + s; } if (!y.intersectsWith(e)) { continue; } let aa = this.yh(d, q, this.xv.item(z), h, i, s, s); if (aa.count <= 0) { continue; } this.xy(b, c, z); } } xy(a, b, c) { if (b == 7 || b == 6) { a.add(((() => { let $ret = new ChartSelection(); $ret.series = this; return $ret; })())); return false; } else if (b == 1 || b == 2) { a.add(((() => { let $ret = new ChartSelection(); $ret.item = this.dn.item(c); return $ret; })())); return true; } else { a.add(((() => { let $ret = new ChartSelection(); $ret.item = this.dn.item(c); $ret.series = this; return $ret; })())); return true; } } a2(a, b) { let c = this.xl.c2(a, b); let d = null; if (c != null) { d = c.dataContext; } if (d != null) { return d; } return super.a2(a, b); } yq(a) { return this.dn.item(a); } get_g6() { return true; } set_g6(a) { super.set_g6(a); } ay(a) { if (typeCast(NumericXAxis.$, a) !== null && this.yf != null) { let b = 1.7976931348623157E+308; let c = -1.7976931348623157E+308; for (let d of fromEnum(this.yf)) { b = Math.min(b, d.left); c = Math.max(c, d.right); } return new AxisRange(b, c); } if (typeCast(NumericYAxis.$, a) !== null && this.yf != null) { let e = 1.7976931348623157E+308; let f = -1.7976931348623157E+308; for (let g of fromEnum(this.yf)) { e = Math.min(e, g.top); f = Math.max(f, g.bottom); } return new AxisRange(e, f); } return null; } get_fw() { return true; } get_fk() { return true; } get x3() { return this.styleShape != null; } z5(a, b, c) { if (this.styleShape != null) { if (this.xl.c9 != null && c == this.xl.c9) { c = new Style(); let d = this.xl.c9; c.fill = d.fill; c.opacity = d.opacity; c.stroke = d.stroke;