UNPKG

igniteui-react-charts

Version:

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

883 lines (882 loc) 29.9 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 { ShapeSeriesBase } from "./ShapeSeriesBase"; import { ShapeAxisInfoCache } from "./ShapeAxisInfoCache"; import { StyleSelector } from "./StyleSelector"; import { DependencyProperty } from "igniteui-react-core"; import { Style } from "igniteui-react-core"; import { MarkerType_$type } from "./MarkerType"; import { DataTemplate } from "igniteui-react-core"; import { Brush } from "igniteui-react-core"; import { CollisionAvoidanceType_$type } from "./CollisionAvoidanceType"; import { MarkerOutlineMode_$type } from "./MarkerOutlineMode"; import { MarkerFillMode_$type } from "./MarkerFillMode"; import { Base, runOn, enumGetBox, Number_$type, typeCast, fromEnum, markType, markDep, PointUtil } from "igniteui-react-core"; import { Rect } from "igniteui-react-core"; import { RectUtil } from "igniteui-react-core"; import { Marker } from "./Marker"; import { ShapeSeriesViewBase } from "./ShapeSeriesViewBase"; import { ScalerParams } from "./ScalerParams"; import { Dictionary$2 } from "igniteui-react-core"; import { OwnedPoint } from "./OwnedPoint"; import { MarkerSeries } from "./MarkerSeries"; import { BrushUtil } from "igniteui-react-core"; import { DataContext } from "igniteui-react-core"; import { HashPool$2 } from "igniteui-react-core"; import { List$1 } from "igniteui-react-core"; import { SeriesPointOfInterest } from "./SeriesPointOfInterest"; import { ChartSelection } from "./ChartSelection"; import { PropertyMetadata } from "igniteui-react-core"; import { DeviceUtils } from "igniteui-react-core"; import { isNaN_, isInfinity } from "igniteui-react-core"; import { NumericMarkerManager } from "./NumericMarkerManager"; import { DataTemplateMeasureInfo } from "igniteui-react-core"; import { Size } from "igniteui-react-core"; import { Defaults } from "./Defaults"; import { DataTemplatePassInfo } from "igniteui-react-core"; import { DataTemplateRenderInfo } from "igniteui-react-core"; import { MarkerVisualData } from "./MarkerVisualData"; import { stringIsNullOrEmpty } from "igniteui-react-core"; /** * @hidden */ export let ScatterPolygonSeries = /*@__PURE__*/ (() => { class ScatterPolygonSeries extends ShapeSeriesBase { bk() { return new ScatterPolygonSeries(); } get_ft() { return true; } get_fo() { return true; } aa9(a, b) { if (this.hasMarkers && this.aa8()) { let c = this.xb(a); if (c.isEmpty) { return false; } let d = RectUtil.r(c, this.i1(b)); if (d.containsPoint(a)) { return true; } } return false; } g2(a, b) { if (this.aa9(a, b)) { return true; } if (this.g5(a, b)) { return true; } return false; } xa(a) { if (!this.hasMarkers || !this.aa8()) { return Rect.empty; } let b = this.aa5.ch(this.wr(a)); if (b != null) { return this.aa5.ei(b); } return Rect.empty; } constructor() { super(); this.aa6 = null; this.aa3 = new ScalerParams(1, ScatterPolygonSeries.acd, ScatterPolygonSeries.acd, false); this.aa4 = new ScalerParams(1, ScatterPolygonSeries.acd, ScatterPolygonSeries.acd, false); this.abt = null; this.aay = 1; this.aau = 1; this.ab = ScatterPolygonSeries.$; } y0() { return this.aa8(); } z8(a) { let b = a; b.db(this.acf); b.dc(this.aa7); super.z8(a); if (this.d7(a)) { return; } let c, d; let e = a.getViewInfo(c, d); c = e.p0; d = e.p1; let f = this.getEffectiveViewport1(a); this.aa3 = new ScalerParams(1, d, c, this.xz.dn); this.aa3.c = f; this.aa4 = new ScalerParams(1, d, c, this.x1.dn); this.aa4.c = f; if (c.width < 1 || c.height < 1) { return; } this.aa6 = ((() => { let $ret = new ShapeAxisInfoCache(); $ret.a = this.xz; $ret.b = this.x1; $ret.e = this.xz.dn; $ret.f = this.x1.dn; $ret.d = this.dp; $ret.c = this.yh; return $ret; })()); if (this.aa8()) { let g = new Dictionary$2(Base.$, OwnedPoint.$, 0); b.du.l(g, 400, d, c, this.ik); b.du.j(g, false); if (this.yy()) { this.abq(a); } } } abq(a) { a.dy = true; this.x6.ay(this, this.yy(), runOn(this, this.xp)); let b = this.x6.d; let c = b != null; let d = this.getEffectiveViewport1(a); let e = this.dp == null ? 0 : this.dp.count; a.d9((f) => { if (f._visibility == 0) { let g = f.ak; let h = f.content; if (h == null) { h = new DataContext(); f.content = h; } if (c) { this.z3(g, e, a.t); } this.x6.ac(f, h); } }); } aa8() { return this.abt != null && ((this.aa2 != 1 && this.aa2 != 0) || this.abu != null); } ct() { return new ScatterPolygonSeriesView(this); } rh(a) { super.rh(a); this.aa5 = a; } get_hasMarkers() { return true; } get_en() { return this.aa2 != 13 && this.aa2 != 1; } v5() { return this.ab9; } v6() { return this.aca; } th() { return this.abs; } ml() { return this.mm(this, this.abt); } iu() { return this.abb; } get aaz() { return this.aay; } set aaz(a) { this.aay = a; } aa1() { if (this.aa0 == 0) { return 1; } return this.aa0; } s3(a) { super.s3(a); this.aa0 = a; } get aav() { return this.aau; } set aav(a) { this.aau = a; } aax() { if (this.aaw == 0) { return 2; } return this.aaw; } s2(a) { super.s2(a); this.aaw = a; } s4(a) { super.s4(a); this.abb = a; } sz() { super.sz(); if (this.index < 0) { return; } if (this.abu != null) { this.aa5.d8(); this.aa5.d5(); } else { let a = MarkerSeries.xw(this, this.aa2); let b = MarkerSeries.x9(a); if (b == null) { this.abs = MarkerSeries.yo; } else { this.aa5.d2(b); } } if (this.acb != null && this.aa2 != 13) { this.sq("ActualMarkerBrush"); let c = this.ab9; this.aa5.d6(); this.aa5.d3(); let d = this.ab9; let e = this.fk("ActualMarkerBrush", this.h1.f > 0 ? this.h1.d() : null, c, d); this.ss("ActualMarkerBrush", e); } else { if (this.aa2 == 13) { this.ab9 = this.cw.b5(); } else { if (this.aav != 2) { if (this.dc != null) { let f = this.dc.x1(this.index); if (!isNaN_(this.ij) && this.ij != 1) { f = BrushUtil.s(f, this.ij); } this.ab9 = f; } else { this.ab9 = null; } } } } if (this.acc != null) { this.aa5.d7(); this.aa5.d4(); } else { if (this.aa2 == 13) { this.aca = this.cw.b5(); } else { if (this.aa0 == 2) { this.aca = this.ab9; } else { this.aca = this.dc == null ? null : this.dc.x2(this.index); } } } if (this.aav == 2 && this.acb == null && this.aa2 != 13) { if (this.aca != null) { let g = this.aca; if (!isNaN_(this.ij) && this.ij != 1) { g = BrushUtil.s(g, this.ij); } this.ab9 = g; } else { this.ab9 = null; } } } q8() { super.q8(); this.aaz = this.aa1(); this.aav = this.aax(); } rq(a, b, c, d) { super.rq(a, b, c, d); switch (b) { case ScatterPolygonSeries.$$p[3]: case ScatterPolygonSeries.$$p[11]: case ScatterPolygonSeries.$$p[7]: case ScatterPolygonSeries.$$p[9]: case ScatterPolygonSeries.$$p[10]: this.rw(b); this.rj(); break; case ScatterPolygonSeries.$$p[6]: this.aaz = this.aa1(); this.rw(null); this.rj(); break; case ScatterPolygonSeries.$$p[5]: this.aav = this.aax(); this.rw(null); this.rj(); break; case ScatterPolygonSeries.$$p[2]: this.abt = d; if (c == MarkerSeries.yo || d == MarkerSeries.yo || (c == null || d != null)) { this.aa5.ea(); this.r8(false); } this.cw.bx(); if (this.toolTip != null && this.fl) { this.ba.a$at(this, this.toolTip); } this.r8(false); this.q0(); break; case ScatterPolygonSeries.$$p[12]: this.aa5.db(this.acf); this.r8(false); this.q0(); break; case ScatterPolygonSeries.$$p[13]: this.aa5.dc(this.aa7); this.r8(false); this.q0(); break; case ScatterPolygonSeries.$$p[4]: this.r8(false); this.q0(); break; case ScatterPolygonSeries.$$p[0]: case ScatterPolygonSeries.$$p[1]: if (this.aa8()) { this.r8(false); } break; } } a2(a, b) { let c = this.aa5.ch(a); let d = null; if (c != null) { d = c.content; } if (d != null) { return d; } return super.a2(a, b); } abr(a, b) { let c = new List$1(Base.$, 0); for (let d of fromEnum(b.c)) { if (!a.containsKey(d)) { c.add1(d); } } for (let e of fromEnum(c)) { b.h(e); } } ed(a, b, c, d, e) { if (!this.hasMarkers) { return false; } let f = this.xz; let g = new ScalerParams(1, this.dc.yr, this.xd, f.dn); g.c = this.getEffectiveViewport1(this.cw); let h = this.x1; let i = new ScalerParams(1, this.dc.yr, this.xd, h.dn); i.c = this.getEffectiveViewport1(this.cw); a.clear(); this.aa5.d9((j) => { if (j._visibility == 0) { let k = new SeriesPointOfInterest(); let l = j.n; let m = j.o; if (!e && (l < this.xd.left || l > this.xd.right || m < this.xd.top || m > this.xd.bottom)) { return; } k.d = f.f9(l, g); k.e = h.f9(m, i); k.b = j.content; k.g = this.v0; k.c = j.ak; if (this.hf) { k.g = this.v7(j.ak); } a.add(k); } }); return true; } aas(a, b, c, d, e) { if (c == null || c.length != this.aa6.d.count) { c = new Array(this.aa6.d.count); for (let f = 0; f < this.aa6.d.count; f++) { c[f] = PointUtil.create(); } } let g = ((() => { let $ret = new ScalerParams(1, d, e, this.xz.dn); $ret.c = this.getEffectiveViewport1(a); return $ret; })()); let h = ((() => { let $ret = new ScalerParams(1, d, e, this.x1.dn); $ret.c = this.getEffectiveViewport1(a); return $ret; })()); let i = this.w4(a); let j = this.aa6.a.f9(i.left, g); let k = this.aa6.a.f9(i.right, g); let l = this.aa6.b.f9(i.bottom, h); let m = this.aa6.b.f9(i.top, h); if (this.aa6.e) { let n = j; j = k; k = n; } if (this.aa6.f) { let o = l; l = m; m = o; } let p = this.aa6; let q = p.a; let r = p.b; let s; let t; let u = g.d.left; let v = g.d.right; let w = h.d.top; let x = h.d.bottom; for (let y = 0; y < this.aa6.d.count; y++) { s = 0; t = 0; let z = null; let aa = a.cp.tryGetValue(y, z); z = aa.p1; if (z == null) { c[y].x = NaN; c[y].y = NaN; } else { let ab = z.c; let ac = RectUtil.l(ab); s = ac.x; t = ac.y; if (s >= u && s <= v && t >= w && t <= x) { c[y].x = s; c[y].y = t; } else { c[y].x = NaN; c[y].y = NaN; } } } return c; } aba(a, b) { if (b == null) { b = new List$1(Number_$type, 2, a.e); } else { b.clear(); } let c = 0; let d = this.dp; for (let e of fromEnum(a.c)) { b.add(d.indexOf(e)); c++; } return b; } ak(a, b) { let c = new List$1(ChartSelection.$, 0); this.qi(a, c, b); return c.toArray(); } qi(a, b, c) { this.z0(a, b, c); } } ScatterPolygonSeries.$t = /*@__PURE__*/ markType(ScatterPolygonSeries, 'ScatterPolygonSeries', ShapeSeriesBase.$); ScatterPolygonSeries.acd = /*@__PURE__*/ new Rect(0, 0, 0, 1, 1); ScatterPolygonSeries.$$p = /*@__PURE__*/ markDep(DependencyProperty, PropertyMetadata, ScatterPolygonSeries, 'raisePropertyChanged', ['ActualMarkerBrush:ab9:abv', [Brush.$], 'ActualMarkerOutline:aca:abw', [Brush.$], 'ActualMarkerTemplate:abs:abx', [DataTemplate.$, null], 'MarkerBrush:acb:aby', [Brush.$], 'MarkerCollisionAvoidance:aat:abz', [CollisionAvoidanceType_$type, /*@__PURE__*/ enumGetBox(CollisionAvoidanceType_$type, 0)], 'MarkerFillMode:aaw:ab0', [MarkerFillMode_$type, /*@__PURE__*/ enumGetBox(MarkerFillMode_$type, 0)], 'MarkerOutlineMode:aa0:ab1', [MarkerOutlineMode_$type, /*@__PURE__*/ enumGetBox(MarkerOutlineMode_$type, 0)], 'MarkerOutline:acc:ab2', [Brush.$], 'MarkerStyle:ace:ab3', [Style.$], 'MarkerTemplate:abu:ab4', [DataTemplate.$, null], 'MarkerThickness:abb:ab5', [1, /*@__PURE__*/ DeviceUtils.g(2)], 'MarkerType:aa2:ab6', [MarkerType_$type, /*@__PURE__*/ enumGetBox(MarkerType_$type, 1)], 'ShapeStyle:acf:ab7', [Style.$, null], 'ShapeStyleSelector:aa7:ab8', [StyleSelector.$, null]]); return ScatterPolygonSeries; })(); /** * @hidden */ export let ScatterPolygonSeriesView = /*@__PURE__*/ (() => { class ScatterPolygonSeriesView extends ShapeSeriesViewBase { constructor(a) { super(a); this.dy = false; this.dp = null; this.d0 = null; this.dv = null; this.dt = null; this.dx = false; this.dw = null; this.d1 = null; this.dq = new Marker(); this.eh = null; this.dq = new Marker(); this.dq.content = new DataContext(); this.dv = a; this.dw = new HashPool$2(Base.$, Marker.$); this.d1 = new List$1(Marker.$, 0); this.eb(this.dw); this.dt = new NumericMarkerManager(1, (b) => this.dw.item(b), (b) => this.dv.aa6.d.item(b), runOn(this, this.ef), runOn(this, this.dn), runOn(this, this.dz), () => this.dv.aat); this.dt.q = runOn(this, this.ej); } a4() { super.a4(); if (!this.t) { this.dv.acc = Defaults.bb; this.dv.jy = Defaults.am; this.dv.abb = Defaults.al; this.dv.aa2 = Defaults.f; this.dv.aaw = Defaults.b; } } get du() { return this.dt; } ei(a) { let b = a.n; let c = a.o; let d = a.m; let e = a.l; return new Rect(0, b - d / 2, c - d / 2, d, e); } ef(a) { this.dv.abr(a, this.dw); } dn() { this.dp = this.dv.aas(this, this.dw, this.dp, this.ca, this.b9); return this.dp; } dz() { this.d0 = this.dv.aba(this.dw, this.d0); return this.d0; } di(a, b) { return this.dj(a, b, true); } cz(a, b, c) { super.cz(a, b, c); ShapeSeriesViewBase.cy(this, a, b); } cx(a, b) { let c = a; if (c == null) { return; } c.an = b; } d9(a) { this.dw.f(a); } eb(a) { a.create = runOn(this, this.ds); a.destroy = runOn(this, this.ed); a.activate = runOn(this, this.ec); a.disactivate = runOn(this, this.ee); } ds() { let a = new Marker(); if (!this.dx) { a.content = ((() => { let $ret = new DataContext(); $ret.series = this.f; return $ret; })()); } a.ah = this.f.abs; this.d1.add(a); return a; } ch(a) { let b = this.dr(a, 0); if (b == null) { b = this.dr(a, 3); } return b; } dr(a, b) { let c; let d; let e; let f; for (let g = this.d1.count - 1; g >= 0; g--) { let h = this.d1._inner[g]; if (h._visibility == 1 || h._opacity == 0) { continue; } c = (h.m / 2) + b; d = (h.l / 2) + b; e = h.ai; f = h.aj; if ((h.n + e) - c <= a.x && (h.n + e) + c >= a.x && (h.o + f) - d <= a.y && (h.o + f) + d >= a.y) { return h; } } return null; } ed(a) { a.content = null; this.d1.remove(a); } ec(a) { a._visibility = 0; } ee(a) { if (a.content != null) { (typeCast(DataContext.$, a.content)).item = null; } a._visibility = 1; } eg(a) { this.dx = a; } bv(a, b) { super.bv(a, b); if (!this.dy) { let c = a; let d = c.content; if (d != null) { if (this.dv.ab9 != null) { d.actualItemBrush = this.dv.ab9; } else { d.actualItemBrush = this.cj.vt; } if (this.dv.ab9 != null) { d.outline = this.dv.aca; } else { d.outline = this.cj.vx; } d.thickness = this.dv.abb; } } } bw(a, b) { super.bw(a, b); let c = a; this.dq._visibility = c._visibility; this.dq.ah = c.ah; this.dq.width = c.width; this.dq.height = c.height; this.dq.m = c.m; this.dq.l = c.l; this.dq.n = c.n; this.dq.o = c.o; let d = this.b4(b); let e = this.dq.content; let f = c.content; e.item = f.item; e.series = f.series; e.thickness = f.thickness; if (e != null) { e.actualItemBrush = d; e.outline = d; e.thickness = this.dv.abb + 3; } } bi(a, b) { super.bi(a, b); let c = new DataTemplatePassInfo(); c.isHitTestRender = b; c.context = a.h(); c.viewportTop = this.b9.top; c.viewportLeft = this.b9.left; c.viewportWidth = this.b9.width; c.viewportHeight = this.b9.height; c.passID = "Markers"; let d = new DataTemplateRenderInfo(); d.passInfo = c; d.isHitTestRender = b; let e = new DataTemplateMeasureInfo(); e.passInfo = c; let f = false; let g = a.h(); e.context = g; d.context = g; let h = 0; let i = 0; if (this.dv.abs != null && this.dv.abs.passStarting != null) { this.dv.abs.passStarting(c); } for (let j = 0; j < this.d1.count; j++) { let k = this.d1._inner[j]; if (k._visibility == 1) { continue; } this.bu(k, j, b); if (b) { k = this.dq; } if (!f) { e.width = k.width; e.height = k.height; e.renderOffsetX = 0; e.renderOffsetY = 0; e.renderContext = a; let l = k.ah; if (l.measure != null) { e.data = k.content; l.measure(e); f = e.isConstant; if (f) { h = e.width; i = e.height; } } d.availableWidth = e.width; d.availableHeight = e.height; d.renderOffsetX = e.renderOffsetX; d.renderOffsetY = e.renderOffsetY; d.renderContext = a; } else { d.availableWidth = h; d.availableHeight = i; } if (!isNaN_(k.width) && !isInfinity(k.width)) { d.availableWidth = k.width; } if (!isNaN_(k.height) && !isInfinity(k.height)) { d.availableHeight = k.height; } a.q(d, k); k.m = d.availableWidth; k.l = d.availableHeight; k.ai = d.renderOffsetX; k.aj = d.renderOffsetY; } if (this.dv.abs != null && this.dv.abs.passCompleted != null) { this.dv.abs.passCompleted(c); } } d8() { this.dv.abs = null; } d5() { this.dv.abs = null; this.dv.abs = this.dv.abu; } d6() { this.dv.ab9 = null; } d3() { this.dv.ab9 = null; if (!isNaN_(this.f.ij) && this.f.ij != 1) { let a = BrushUtil.s(this.dv.acb, this.f.ij); this.dv.ab9 = a; } else { this.dv.ab9 = this.dv.acb; } } d7() { this.dv.aca = null; } d4() { this.dv.aca = null; this.dv.aca = this.dv.acc; } d2(a) { switch (a) { case "CircleMarkerTemplate": this.dv.abs = this.dv.dc.uh; break; case "TriangleMarkerTemplate": this.dv.abs = this.dv.dc.uq; break; case "PyramidMarkerTemplate": this.dv.abs = this.dv.dc.un; break; case "SquareMarkerTemplate": this.dv.abs = this.dv.dc.uo; break; case "DiamondMarkerTemplate": this.dv.abs = this.dv.dc.ui; break; case "PentagonMarkerTemplate": this.dv.abs = this.dv.dc.ul; break; case "HexagonMarkerTemplate": this.dv.abs = this.dv.dc.uj; break; case "TetragramMarkerTemplate": this.dv.abs = this.dv.dc.ul; break; case "PentagramMarkerTemplate": this.dv.abs = this.dv.dc.um; break; case "HexagramMarkerTemplate": this.dv.abs = this.dv.dc.uk; break; } } ea() { for (let a of fromEnum(this.d1)) { a.ah = this.dv.abs; } this.a2(); } ej(a) { if (this.eh == null) { this.eh = new DataTemplateMeasureInfo(); this.eh.context = this.m.h(); } this.eh.width = a.width; this.eh.height = a.height; this.eh.data = a.content; let b = a.ah; if (b.measure != null) { b.measure(this.eh); } return new Size(1, this.eh.width, this.eh.height); } ax(a) { let b = a; super.ax(b); for (let c of fromEnum(this.dw.c)) { let d = this.dw.item(c); if (d._visibility != 1) { let e = typeCast(ScatterPolygonSeries.$, this.f); let f = this.f.bc.getMarkerVisualData(e, d, e.abs); b.markerShapes.add(typeCast(MarkerVisualData.$, f)); } } } getDefaultTooltipTemplate() { let a = "<div class='ui-chart-default-tooltip-content'><span"; let b = this.f.ba.a$v(this.f); if (!stringIsNullOrEmpty(b)) { a += " style='color:" + b + "'"; } a += ">" + this.dv.title + "</span><br/>"; a += "</div>"; return a; } } ScatterPolygonSeriesView.$t = /*@__PURE__*/ markType(ScatterPolygonSeriesView, 'ScatterPolygonSeriesView', ShapeSeriesViewBase.$); return ScatterPolygonSeriesView; })();