igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
572 lines (571 loc) • 19.8 kB
JavaScript
/*
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 { Brush } from "igniteui-angular-core";
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";
import { PointerTooltipStyle } from "./PointerTooltipStyle";
import { PointerTooltipUtils } from "./PointerTooltipUtils";
/**
* @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.km / 1000;
this.xw = a;
this.xv = b;
this.xx = c;
this.ab = ItemToolTipLayer.$;
}
bk() {
return new ItemToolTipLayer();
}
get_eu() {
return true;
}
get_f7() {
return true;
}
ct() {
return new ItemToolTipLayerView(this);
}
rg(a) {
super.rg(a);
this.aas = a;
}
get_e5() {
return true;
}
g0(a) {
if (this.aat == null) {
return true;
}
if (this.aat == a) {
return true;
}
return false;
}
rp(a, b, c, d) {
super.rp(a, b, c, d);
switch (b) {
case ItemToolTipLayer.$$p[1]:
case ItemToolTipLayer.$$p[2]:
this.r7(true);
break;
case ItemToolTipLayer.$$p[6]:
this.r7(true);
break;
case ItemToolTipLayer.$$p[0]:
this.r7(true);
break;
case "SeriesViewer":
this.aas.cz();
break;
case ItemToolTipLayer.$$p[3]:
case ItemToolTipLayer.$$p[4]:
case ItemToolTipLayer.$$p[5]:
this.r7(true);
break;
}
}
zd(a, b) {
if (this.aat == null || this.aat == a) {
if (!this.a1.c) {
this.r7(b);
}
}
}
x3(a) {
if (!super.x3(a)) {
return false;
}
if (this.aa0 != null) {
if (a.isFragment) {
let b = a.nn();
if (!Base.equalsStatic(this.aa0, b)) {
return false;
}
}
else {
if (!Base.equalsStatic(this.aa0, a.name)) {
return false;
}
}
}
let c = this.y8(a);
if (!c.c) {
return false;
}
return true;
}
zf(a, b) {
super.zf(a, b);
let c = a;
let d = this.aas.co;
let e = this.aaw;
let f = this.aav;
c.r.clear();
c.l.clear();
c.q.clear();
c.j.clear();
c.i.clear();
c.o.clear();
c.m.clear();
c.p.clear();
c.n.clear();
c.k.clear();
if (isNaN_(this.aap.x) && isNaN_(this.aap.y)) {
d.count = 0;
return;
}
let g = 0;
if (this.x3(this.aat)) {
this.aa8(this.aat, c, e, f, 0);
g++;
}
else {
for (let h of fromEnum(this.dc.b9)) {
if (this.x3(h)) {
this.aa8(h, c, e, f, g);
g++;
}
if (h.isStacked) {
h.qg((i) => {
if (this.x3(i)) {
this.aa8(i, c, e, f, g);
g++;
}
if (i.ei) {
i.qe((j) => {
if (this.x3(j)) {
this.aa8(j, c, e, f, g);
g++;
}
return true;
});
}
return true;
});
}
if (h.ei) {
h.qe((i) => {
if (this.x3(i)) {
this.aa8(i, c, e, f, g);
g++;
}
return true;
});
}
}
this.aa7(c);
}
d.count = g;
}
aa7(a) {
let b = new List$1(ItemTooltipCollisionInfo.$, 0);
for (let c = 0; c < a.i.count; c++) {
let d = new ItemTooltipCollisionInfo();
d.d = c;
d.e = { $type: Point_$type, x: a.i._inner[c], y: a.j._inner[c] };
d.c = a.p._inner[c];
d.a = a.n._inner[c];
d.b = a.r._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.aau(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.cw.b9.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.cw.b9.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.i._inner[q] = r.e.x;
a.j._inner[q] = r.e.y;
}
}
aau(a) {
if (a.count <= 1) {
return false;
}
let b = this.cw.b9;
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;
}
aa8(a, b, c, d, e) {
let f = this.y8(a);
if (!f.c) {
return;
}
let g = a.wv(f.d, c, d);
let h = this.aas.co;
let i = this.aay(a);
let j = this.aap;
if (!c) {
j = this.w1(g);
}
let k = a.kw(j);
let l = h.item(e);
let m = this.cw.b9;
let n = null;
if (a.e7 && k != null) {
n = a.a3(k);
}
else {
n = new DataContext();
n.item = k;
n.series = a;
}
if (!this.aas.cp(a, l, i, n)) {
return;
}
let o = this.aas.c0(l, i, n);
b.l.add1(l);
b.m.add1(n);
b.o.add1(i);
let p = g.x;
let q = g.x;
q = Math.max(q, m.left);
q = Math.min(q, m.right);
b.q.add(q);
let r = g.y;
r = Math.max(r, m.top);
r = Math.min(r, m.bottom);
b.r.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.i.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.j.add(u);
b.p.add(o.width);
b.n.add(o.height);
let v = this.vs;
if (v == null) {
v = this.vy;
}
if (v == null) {
v = a.vs;
}
b.k.add(v);
}
aay(a) {
return a.toolTip;
}
qk() {
this.aap = { $type: Point_$type, x: NaN, y: NaN };
this.r7(false);
this.aas.cx(false);
}
ql() {
this.aap = { $type: Point_$type, x: NaN, y: NaN };
this.r7(false);
this.aas.cx(true);
}
zi(a, b) {
super.zi(a, b);
let c = a;
let d = c.r.count;
let e = b.b9.left;
let f = b.b9.right;
let g = b.b9.top;
let h = b.b9.bottom;
for (let i = 0; i < d; i++) {
if (isNaN_(c.q._inner[i]) || isNaN_(c.r._inner[i]) || isNaN_(c.i._inner[i]) || isNaN_(c.j._inner[i]) || c.o._inner[i] == null || c.m._inner[i] == null) {
this.aas.cw(c.l._inner[i]);
continue;
}
let j = c.i._inner[i];
let k = c.j._inner[i];
let l = c.p._inner[i];
let m = c.n._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.aas.cw(c.l._inner[i]);
continue;
}
let o = c.l._inner[i];
let p = Math.min(c.i._inner[i], c.q._inner[i]);
let q = Math.min(c.j._inner[i], c.r._inner[i]);
let r = c.q._inner[i] - c.i._inner[i];
let s = c.r._inner[i] - c.j._inner[i];
if (o != null) {
this.aas.cy(o, p, q, r, s);
}
}
}
gg() {
return true;
}
}
ItemToolTipLayer.$t = markType(ItemToolTipLayer, 'ItemToolTipLayer', AnnotationLayer.$);
ItemToolTipLayer.$$p = markDep(DependencyProperty, PropertyMetadata, ItemToolTipLayer, 'raisePropertyChanged', ['SkipUnknownValues:aav:aa9', [0, true], 'TargetSeriesName:aa0:aba', [2, null], 'TargetSeries:aat:abb', [Series.$, null], 'ToolTipBackground:abg:abc', [Brush.$, null], 'ToolTipBorderBrush:abh:abd', [Brush.$, null], 'ToolTipBorderThickness:aax:abe', [1, NaN], 'UseInterpolation:aaw:abf', [0, false]]);
return ItemToolTipLayer;
})();
/**
* @hidden
*/
export let ItemToolTipLayerView = /*@__PURE__*/ (() => {
class ItemToolTipLayerView extends AnnotationLayerView {
constructor(a) {
super(a);
this.cn = null;
this.co = null;
this.cq = null;
this._htmlTest = null;
this.cn = a;
this.cq = new List$1(PointerTooltip.$, 0);
}
a4() {
super.a4();
this.co = ((() => {
let $ret = new Pool$1(Base.$);
$ret.create = runOn(this, this.cr);
$ret.activate = runOn(this, this.ct);
$ret.disactivate = runOn(this, this.cv);
$ret.destroy = runOn(this, this.cu);
return $ret;
})());
this.htmlTest = /^[^<]*(<[\w\W]+>)[^>]*$/;
}
as() {
super.as();
for (let a = 0; a < this.co.a.count; a++) {
this.co.a._inner[a].bv();
}
for (let b = 0; b < this.co.b.count; b++) {
this.co.b._inner[b].bv();
}
this.co.clear();
}
cr() {
let a = new PointerTooltip();
a.b0(this.f.j8);
a._visibility = 1;
a.ap = this.f.dc.dw.k;
this.cq.add(a);
return a;
}
ct(a) {
let b = a;
}
cv(a) {
let b = a;
b._visibility = 1;
}
cu(a) {
let b = a;
b.b3();
b.content = null;
this.cq.remove1(a);
}
get htmlTest() {
return this._htmlTest;
}
set htmlTest(a) {
this._htmlTest = a;
}
cp(a, b, c, d) {
let e = b;
if (a.lb == "default") {
a.lb = a.cw.getDefaultTooltipTemplate();
}
let template_ = a.lb;
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;
}
c0(a, b, c) {
let d = a;
let e = d.content;
let f = new Size(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY);
d.c2 = 1;
let g = d.c1(new Size(1, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY));
d.c2 = 0;
return g;
}
cy(a, b, c, d, e) {
let f = new PointerTooltipStyle();
if (this.f.dc != null) {
let g = this.f.dc.dw.j.i();
PointerTooltipUtils.a(g, f, this.cn.abg, this.cn.abh, this.cn.aax, 0);
}
let h = a;
h.aq = f;
let i = h.content;
h.cw = { $type: Point_$type, x: d, y: e };
h._visibility = 0;
h.n = b;
h.o = c;
}
cw(a) {
if (a != null) {
let b = a;
b._visibility = 1;
}
}
bj(a, b) {
super.bj(a, b);
if (b) {
return;
}
let c = 0;
let d = 0;
let e = this.f.dc;
if (e != null) {
let f = e.dw.j.b8();
c += f.x;
d += f.y;
}
for (let g = 0; g < this.cq.count; g++) {
this.cq._inner[g].b2(this.cq._inner[g].n + c, this.cq._inner[g].o + d);
}
}
ax(a) {
super.ax(a);
for (let tooltip_ of fromEnum(this.co.a)) {
if (tooltip_._visibility != 0) {
continue;
}
let b = tooltip_;
let c = b.a9();
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.f.bc.addPointerTooltipData(a, c, d, e, f);
}
}
cx(a) {
this.a2();
for (let b = 0; b < this.cq.count; b++) {
this.cw(this.cq._inner[b]);
if (a) {
this.cq._inner[b].bw();
}
}
}
cz() {
if (this.f.dc == null) {
this.cx(true);
}
}
}
ItemToolTipLayerView.$t = markType(ItemToolTipLayerView, 'ItemToolTipLayerView', AnnotationLayerView.$);
return ItemToolTipLayerView;
})();