UNPKG

igniteui-angular-charts

Version:

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

560 lines (559 loc) 19.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 { AnnotationLayer } from "./AnnotationLayer"; import { DependencyProperty } from "igniteui-angular-core"; import { Series } from "./Series"; import { ItemTooltipLayerFrame } from "./ItemTooltipLayerFrame"; import { Base, String_$type, fromEnum, Point_$type, markType, markDep, runOn } from "igniteui-angular-core"; import { Pool$1 } from "igniteui-angular-core"; import { List$1 } from "igniteui-angular-core"; import { ItemTooltipCollisionInfo } from "./ItemTooltipCollisionInfo"; import { Rect } from "igniteui-angular-core"; import { DataContext } from "igniteui-angular-core"; import { Size } from "igniteui-angular-core"; import { DeviceUtils } from "igniteui-angular-core"; import { PropertyMetadata } from "igniteui-angular-core"; import { isNaN_ } from "igniteui-angular-core"; import { AnnotationLayerView } from "./AnnotationLayerView"; import { PointerTooltip } from "./PointerTooltip"; /** * @hidden */ export let ItemToolTipLayer = /*@__PURE__*/ (() => { class ItemToolTipLayer extends AnnotationLayer { constructor() { super(); let a = new ItemTooltipLayerFrame(); let b = new ItemTooltipLayerFrame(); let c = new ItemTooltipLayerFrame(); let d = this.kc / 1000; this.xb = a; this.xa = b; this.xc = c; this.ab = ItemToolTipLayer.$; } bj() { return new ItemToolTipLayer(); } get_er() { return true; } cs() { return new ItemToolTipLayerView(this); } q0(a) { super.q0(a); this.zw = a; } get_e2() { return true; } gt(a) { if (this.zx == null) { return true; } if (this.zx == a) { return true; } return false; } q8(a, b, c, d) { super.q8(a, b, c, d); switch (b) { case ItemToolTipLayer.$$p[1]: case ItemToolTipLayer.$$p[2]: this.rq(true); break; case ItemToolTipLayer.$$p[3]: this.rq(true); break; case ItemToolTipLayer.$$p[0]: this.rq(true); break; case "SeriesViewer": this.zw.cj(); break; } } yo(a, b) { if (this.zx == null || this.zx == a) { if (!this.a1.c) { this.rq(b); } } } xh(a) { if (!super.xh(a)) { return false; } if (this.z3 != null) { if (a.isFragment) { let b = a.nb(); if (!Base.equalsStatic(this.z3, b)) { return false; } } else { if (!Base.equalsStatic(this.z3, a.name)) { return false; } } } let c = this.yj(a); if (!c.c) { return false; } return true; } yq(a, b) { super.yq(a, b); let c = a; let d = this.zw.b8; let e = this.z0; let f = this.zz; c.o.clear(); c.i.clear(); c.n.clear(); c.g.clear(); c.f.clear(); c.l.clear(); c.j.clear(); c.m.clear(); c.k.clear(); c.h.clear(); if (isNaN_(this.zt.x) && isNaN_(this.zt.y)) { d.count = 0; return; } let g = 0; if (this.xh(this.zx)) { this.z8(this.zx, c, e, f, 0); g++; } else { for (let h of fromEnum(this.db.series)) { if (this.xh(h)) { this.z8(h, c, e, f, g); g++; } if (h.isStacked) { h.p2((i) => { if (this.xh(i)) { this.z8(i, c, e, f, g); g++; } if (i.eg) { i.p0((j) => { if (this.xh(j)) { this.z8(j, c, e, f, g); g++; } return true; }); } return true; }); } if (h.eg) { h.p0((i) => { if (this.xh(i)) { this.z8(i, c, e, f, g); g++; } return true; }); } } this.z7(c); } d.count = g; } z7(a) { let b = new List$1(ItemTooltipCollisionInfo.$, 0); for (let c = 0; c < a.f.count; c++) { let d = new ItemTooltipCollisionInfo(); d.d = c; d.e = { $type: Point_$type, x: a.f._inner[c], y: a.g._inner[c] }; d.c = a.m._inner[c]; d.a = a.k._inner[c]; d.b = a.o._inner[c]; if (isNaN_(d.e.x) || isNaN_(d.e.y)) { continue; } b.add(d); } b.aa((e, f) => { if (e.e.y < f.e.y) { return -1; } if (e.e.y > f.e.y) { return 1; } if (e.b < f.b) { return -1; } if (e.b > f.b) { return 1; } return 0; }); let e = this.zy(b); if (!e) { return; } for (let f = 0; f < b.count - 1; f++) { let g = b._inner[f]; let h = b._inner[f + 1]; let i = new Rect(0, g.e.x, g.e.y, g.c, g.a); let j = new Rect(0, h.e.x, h.e.y, h.c, h.a); if (i.intersectsWith(j) || i.top > j.bottom) { h.e = { $type: Point_$type, x: h.e.x, y: i.bottom + 1 }; } } if (b._inner[b.count - 1].e.y + b._inner[b.count - 1].a > this.cv.bx.height) { b._inner[b.count - 1].e = { $type: Point_$type, x: b._inner[b.count - 1].e.x, y: b._inner[b.count - 1].e.y - ((b._inner[b.count - 1].e.y + b._inner[b.count - 1].a) - this.cv.bx.height) }; } for (let k = b.count - 1; k >= 1; k--) { let l = b._inner[k]; let m = b._inner[k - 1]; let n = new Rect(0, l.e.x, l.e.y, l.c, l.a); let o = new Rect(0, m.e.x, m.e.y, m.c, m.a); if (n.intersectsWith(o) || n.top < o.bottom) { m.e = { $type: Point_$type, x: m.e.x, y: n.top - (o.height + 1) }; } } for (let p = 0; p < b.count; p++) { let q = b._inner[p].d; let r = b._inner[p]; a.f._inner[q] = r.e.x; a.g._inner[q] = r.e.y; } } zy(a) { if (a.count <= 1) { return false; } let b = this.cv.bx; for (let c = 0; c < a.count - 1; c++) { let d = a._inner[c]; let e = a._inner[c + 1]; let f = new Rect(0, d.e.x, d.e.y, d.c, d.a); let g = new Rect(0, e.e.x, e.e.y, e.c, e.a); if (f.intersectsWith(g)) { return true; } } return false; } z8(a, b, c, d, e) { let f = this.yj(a); if (!f.c) { return; } let g = a.wb(f.d, c, d); let h = this.zw.b8; let i = this.z1(a); let j = this.zt; if (!c) { j = this.wg(g); } let k = a.km(j); let l = h.item(e); let m = this.cv.bx; let n = null; if (a.e3 && k != null) { n = a.a3(k); } else { n = new DataContext(); n.item = k; n.series = a; } if (!this.zw.b9(a, l, i, n)) { return; } let o = this.zw.ck(l, i, n); b.i.add1(l); b.j.add1(n); b.l.add1(i); let p = g.x; let q = g.x; q = Math.max(q, m.left); q = Math.min(q, m.right); b.n.add(q); let r = g.y; r = Math.max(r, m.top); r = Math.min(r, m.bottom); b.o.add(r); let s = DeviceUtils.g(10); let t = g.x + s; if (t + o.width > m.right) { t = (p - o.width) - s; } if (t < m.left) { t = m.left; } b.f.add(t); let u = (g.y - o.height) - s; if (u + o.height > m.bottom) { u = (m.bottom - o.height) - s; } if (u < m.top) { u = m.top; } b.g.add(u); b.m.add(o.width); b.k.add(o.height); let v = this.u8; if (v == null) { v = this.ve; } if (v == null) { v = a.u8; } b.h.add(v); } z1(a) { return a.toolTip; } p6() { this.zt = { $type: Point_$type, x: NaN, y: NaN }; this.rq(false); this.zw.ch(false); } p7() { this.zt = { $type: Point_$type, x: NaN, y: NaN }; this.rq(false); this.zw.ch(true); } yt(a, b) { super.yt(a, b); let c = a; let d = c.o.count; let e = b.bx.left; let f = b.bx.right; let g = b.bx.top; let h = b.bx.bottom; for (let i = 0; i < d; i++) { if (isNaN_(c.n._inner[i]) || isNaN_(c.o._inner[i]) || isNaN_(c.f._inner[i]) || isNaN_(c.g._inner[i]) || c.l._inner[i] == null || c.j._inner[i] == null) { this.zw.cg(c.i._inner[i]); continue; } let j = c.f._inner[i]; let k = c.g._inner[i]; let l = c.m._inner[i]; let m = c.k._inner[i]; let n = false; if (j < e && Math.abs(j - e) > 1) { n = true; } if (k < g && Math.abs(k - g) > 1) { n = true; } if ((j + l) > f && Math.abs((j + l) - f) > 1) { n = true; } if ((k + m) > h && Math.abs((k + m) - h) > 1) { n = true; } if (n) { this.zw.cg(c.i._inner[i]); continue; } let o = c.i._inner[i]; let p = Math.min(c.f._inner[i], c.n._inner[i]); let q = Math.min(c.g._inner[i], c.o._inner[i]); let r = c.n._inner[i] - c.f._inner[i]; let s = c.o._inner[i] - c.g._inner[i]; if (o != null) { this.zw.ci(o, p, q, r, s); } } } f9() { return true; } } ItemToolTipLayer.$t = markType(ItemToolTipLayer, 'ItemToolTipLayer', AnnotationLayer.$); ItemToolTipLayer.$$p = markDep(DependencyProperty, PropertyMetadata, ItemToolTipLayer, 'raisePropertyChanged', ['SkipUnknownValues:zz:z9', [0, true], 'TargetSeriesName:z3:aaa', [2, null], 'TargetSeries:zx:aab', [Series.$, null], 'UseInterpolation:z0:aac', [0, false]]); return ItemToolTipLayer; })(); /** * @hidden */ export let ItemToolTipLayerView = /*@__PURE__*/ (() => { class ItemToolTipLayerView extends AnnotationLayerView { constructor(a) { super(a); this.b7 = null; this.b8 = null; this.ca = null; this._htmlTest = null; this.b7 = a; this.ca = new List$1(PointerTooltip.$, 0); } au() { super.au(); this.b8 = ((() => { let $ret = new Pool$1(Base.$); $ret.create = runOn(this, this.cb); $ret.activate = runOn(this, this.cd); $ret.disactivate = runOn(this, this.cf); $ret.destroy = runOn(this, this.ce); return $ret; })()); this.htmlTest = /^[^<]*(<[\w\W]+>)[^>]*$/; } ak() { super.ak(); for (let a = 0; a < this.b8.a.count; a++) { this.b8.a._inner[a].br(); } for (let b = 0; b < this.b8.b.count; b++) { this.b8.b._inner[b].br(); } this.b8.clear(); } cb() { let a = new PointerTooltip(); a.bw(this.e.jy); a._visibility = 1; a.ap = this.e.db.c9.k; this.ca.add(a); return a; } cd(a) { let b = a; } cf(a) { let b = a; b._visibility = 1; } ce(a) { let b = a; b.bz(); b.content = null; this.ca.remove1(a); } get htmlTest() { return this._htmlTest; } set htmlTest(a) { this._htmlTest = a; } b9(a, b, c, d) { let e = b; if (a.k1 == "default") { a.k1 = a.cv.getDefaultTooltipTemplate(); } let template_ = a.k1; let context_ = d; if (a.toolTip == null) { return false; } let tooltip_ = a.toolTip; if ((tooltip_.updateToolTip)) { tooltip_._inPointer = true; tooltip_.updateToolTip(context_, true); tooltip_.setStyleProperty('position', 'relative'); tooltip_.setStyleProperty('left', ''); tooltip_.setStyleProperty('top', ''); } e.content = a.toolTip; return true; } ck(a, b, c) { let d = a; let e = d.content; let f = new Size(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY); d.cy = 1; let g = d.cx(new Size(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY)); d.cy = 0; return g; } ci(a, b, c, d, e) { let f = null; if (this.e.db != null) { f = this.e.db.c9.j.i(); } let g = a; g.aq = f; let h = g.content; g.cs = { $type: Point_$type, x: d, y: e }; g._visibility = 0; g.n = b; g.o = c; } cg(a) { if (a != null) { let b = a; b._visibility = 1; } } a8(a, b) { super.a8(a, b); if (b) { return; } let c = 0; let d = 0; let e = this.e.db; if (e != null) { let f = e.c9.j.b8(); c += f.x; d += f.y; } for (let g = 0; g < this.ca.count; g++) { this.ca._inner[g].by(this.ca._inner[g].n + c, this.ca._inner[g].o + d); } } an(a) { super.an(a); for (let tooltip_ of fromEnum(this.b8.a)) { if (tooltip_._visibility != 0) { continue; } let b = tooltip_; let c = b.a5(); let d = b.n; let e = b.o; let f = new List$1(String_$type, 0); let g = b.content; if (g != null) { let h = g.findByClass("ui-chart-default-tooltip-content"); if (h != null && h.length > 0 && h[0] != null && h[0].getChildCount() > 0) { let i = h[0]; let j = i.getChildAt(0); let k = j.getText(); f.add(k); } else { let l = g.getText(); f.add(l); } } this.e.bc.addPointerTooltipData(a, c, d, e, f); } } ch(a) { this.as(); for (let b = 0; b < this.ca.count; b++) { this.cg(this.ca._inner[b]); if (a) { this.ca._inner[b].bs(); } } } cj() { if (this.e.db == null) { this.ch(true); } } } ItemToolTipLayerView.$t = markType(ItemToolTipLayerView, 'ItemToolTipLayerView', AnnotationLayerView.$); return ItemToolTipLayerView; })();