igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
844 lines (843 loc) • 29.5 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 { ShapeSeriesBase } from "./ShapeSeriesBase";
import { ShapeAxisInfoCache } from "./ShapeAxisInfoCache";
import { StyleSelector } from "./StyleSelector";
import { DependencyProperty } from "igniteui-angular-core";
import { Style } from "igniteui-angular-core";
import { MarkerType_$type } from "./MarkerType";
import { DataTemplate } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { CollisionAvoidanceType_$type } from "./CollisionAvoidanceType";
import { MarkerOutlineMode_$type } from "./MarkerOutlineMode";
import { MarkerFillMode_$type } from "./MarkerFillMode";
import { Rect } from "igniteui-angular-core";
import { ScalerParams } from "./ScalerParams";
import { Base, runOn, enumGetBox, Number_$type, typeCast, fromEnum, markType, markDep, PointUtil } from "igniteui-angular-core";
import { Dictionary$2 } from "igniteui-angular-core";
import { OwnedPoint } from "./OwnedPoint";
import { ShapeSeriesViewBase } from "./ShapeSeriesViewBase";
import { Marker } from "./Marker";
import { MarkerSeries } from "./MarkerSeries";
import { BrushUtil } from "igniteui-angular-core";
import { DataContext } from "igniteui-angular-core";
import { HashPool$2 } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { SeriesPointOfInterest } from "./SeriesPointOfInterest";
import { RectUtil } from "igniteui-angular-core";
import { ChartSelection } from "./ChartSelection";
import { PropertyMetadata } from "igniteui-angular-core";
import { DeviceUtils } from "igniteui-angular-core";
import { isNaN_, isInfinity } from "igniteui-angular-core";
import { NumericMarkerManager } from "./NumericMarkerManager";
import { DataTemplateMeasureInfo } from "igniteui-angular-core";
import { Size } from "igniteui-angular-core";
import { Defaults } from "./Defaults";
import { DataTemplatePassInfo } from "igniteui-angular-core";
import { DataTemplateRenderInfo } from "igniteui-angular-core";
import { MarkerVisualData } from "./MarkerVisualData";
import { stringIsNullOrEmpty } from "igniteui-angular-core";
/**
* @hidden
*/
export let ScatterPolygonSeries = /*@__PURE__*/ (() => {
class ScatterPolygonSeries extends ShapeSeriesBase {
constructor() {
super();
this.aak = null;
this.aah = new ScalerParams(1, ScatterPolygonSeries.abq, ScatterPolygonSeries.abq, false);
this.aai = new ScalerParams(1, ScatterPolygonSeries.abq, ScatterPolygonSeries.abq, false);
this.aa6 = null;
this.aac = 1;
this.z8 = 1;
this.ab = ScatterPolygonSeries.$;
}
bj() {
return new ScatterPolygonSeries();
}
get_fp() {
return true;
}
get_fk() {
return true;
}
ye() {
return this.aam();
}
zm(a) {
let b = a;
b.cy(this.abs);
b.cz(this.aal);
super.zm(a);
if (this.d5(a)) {
return;
}
let c, d;
let e = a.getViewInfo(c, d);
c = e.p0;
d = e.p1;
let f = this.getEffectiveViewport1(a);
this.aah = new ScalerParams(1, d, c, this.xd.ch);
this.aah.c = f;
this.aai = new ScalerParams(1, d, c, this.xf.ch);
this.aai.c = f;
if (c.width < 1 || c.height < 1) {
return;
}
this.aak = ((() => {
let $ret = new ShapeAxisInfoCache();
$ret.a = this.xd;
$ret.b = this.xf;
$ret.e = this.xd.ch;
$ret.f = this.xf.ch;
$ret.d = this.dn;
$ret.c = this.xv;
return $ret;
})());
if (this.aam()) {
let g = new Dictionary$2(Base.$, OwnedPoint.$, 0);
b.dg.l(g, 400, d, c, this.ic);
b.dg.j(g, false);
if (this.yc()) {
this.aa3(a);
}
}
}
aa3(a) {
a.dk = true;
this.xk.ay(this, this.yc(), runOn(this, this.w3));
let b = this.xk.d;
let c = b != null;
let d = this.getEffectiveViewport1(a);
let e = this.dn == null ? 0 : this.dn.count;
a.dw((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.zh(g, e, a.q);
}
this.xk.ac(f, h);
}
});
}
aam() {
return this.aa6 != null && ((this.aag != 1 && this.aag != 0) || this.aa7 != null);
}
cs() {
return new ScatterPolygonSeriesView(this);
}
q0(a) {
super.q0(a);
this.aaj = a;
}
get_hasMarkers() {
return true;
}
get_el() {
return this.aag != 13 && this.aag != 1;
}
vk() {
return this.abm;
}
vl() {
return this.abn;
}
sy() {
return this.aa5;
}
l9() {
return this.ma(this, this.aa6);
}
im() {
return this.aao;
}
get aad() {
return this.aac;
}
set aad(a) {
this.aac = a;
}
aaf() {
if (this.aae == 0) {
return 1;
}
return this.aae;
}
sk(a) {
super.sk(a);
this.aae = a;
}
get z9() {
return this.z8;
}
set z9(a) {
this.z8 = a;
}
aab() {
if (this.aaa == 0) {
return 2;
}
return this.aaa;
}
sj(a) {
super.sj(a);
this.aaa = a;
}
sl(a) {
super.sl(a);
this.aao = a;
}
sg() {
super.sg();
if (this.index < 0) {
return;
}
if (this.aa7 != null) {
this.aaj.dv();
this.aaj.ds();
}
else {
let a = MarkerSeries.xa(this, this.aag);
let b = MarkerSeries.xn(a);
if (b == null) {
this.aa5 = MarkerSeries.x2;
}
else {
this.aaj.dp(b);
}
}
if (this.abo != null && this.aag != 13) {
this.r7("ActualMarkerBrush");
let c = this.abm;
this.aaj.dt();
this.aaj.dq();
let d = this.abm;
let e = this.fg("ActualMarkerBrush", this.hu.f > 0 ? this.hu.d() : null, c, d);
this.r9("ActualMarkerBrush", e);
}
else {
if (this.aag == 13) {
this.abm = this.cv.bt();
}
else {
if (this.z9 != 2) {
if (this.db != null) {
let f = this.db.ve(this.index);
if (!isNaN_(this.ib) && this.ib != 1) {
f = BrushUtil.q(f, this.ib);
}
this.abm = f;
}
else {
this.abm = null;
}
}
}
}
if (this.abp != null) {
this.aaj.du();
this.aaj.dr();
}
else {
if (this.aag == 13) {
this.abn = this.cv.bt();
}
else {
if (this.aae == 2) {
this.abn = this.abm;
}
else {
this.abn = this.db == null ? null : this.db.vf(this.index);
}
}
}
if (this.z9 == 2 && this.abo == null && this.aag != 13) {
if (this.abn != null) {
let g = this.abn;
if (!isNaN_(this.ib) && this.ib != 1) {
g = BrushUtil.q(g, this.ib);
}
this.abm = g;
}
else {
this.abm = null;
}
}
}
qr() {
super.qr();
this.aad = this.aaf();
this.z9 = this.aab();
}
q8(a, b, c, d) {
super.q8(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.re(b);
this.q2();
break;
case ScatterPolygonSeries.$$p[6]:
this.aad = this.aaf();
this.re(null);
this.q2();
break;
case ScatterPolygonSeries.$$p[5]:
this.z9 = this.aab();
this.re(null);
this.q2();
break;
case ScatterPolygonSeries.$$p[2]:
this.aa6 = d;
if (c == MarkerSeries.x2 || d == MarkerSeries.x2 || (c == null || d != null)) {
this.aaj.dx();
this.rq(false);
}
this.cv.bl();
if (this.toolTip != null && this.fh) {
this.ba.a$as(this, this.toolTip);
}
this.rq(false);
this.qk();
break;
case ScatterPolygonSeries.$$p[12]:
this.aaj.cy(this.abs);
this.rq(false);
this.qk();
break;
case ScatterPolygonSeries.$$p[13]:
this.aaj.cz(this.aal);
this.rq(false);
this.qk();
break;
case ScatterPolygonSeries.$$p[4]:
this.rq(false);
this.qk();
break;
case ScatterPolygonSeries.$$p[0]:
case ScatterPolygonSeries.$$p[1]:
if (this.aam()) {
this.rq(false);
}
break;
}
}
a2(a, b) {
let c = this.aaj.b4(a);
let d = null;
if (c != null) {
d = c.content;
}
if (d != null) {
return d;
}
return super.a2(a, b);
}
aa4(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);
}
}
eb(a, b, c, d, e) {
if (!this.hasMarkers) {
return false;
}
let f = this.xd;
let g = new ScalerParams(1, this.db.v4, this.wr, f.ch);
g.c = this.getEffectiveViewport1(this.cv);
let h = this.xf;
let i = new ScalerParams(1, this.db.v4, this.wr, h.ch);
i.c = this.getEffectiveViewport1(this.cv);
a.clear();
this.aaj.dw((j) => {
if (j._visibility == 0) {
let k = new SeriesPointOfInterest();
let l = j.n;
let m = j.o;
if (l < this.wr.left || l > this.wr.right || m < this.wr.top || m > this.wr.bottom) {
return;
}
k.d = f.eo(l, g);
k.e = h.eo(m, i);
k.b = j.content;
k.g = this.vf;
k.c = j.ak;
if (this.g8) {
k.g = this.vm(j.ak);
}
a.add(k);
}
});
return true;
}
z6(a, b, c, d, e) {
if (c == null || c.length != this.aak.d.count) {
c = new Array(this.aak.d.count);
for (let f = 0; f < this.aak.d.count; f++) {
c[f] = PointUtil.create();
}
}
let g = ((() => {
let $ret = new ScalerParams(1, d, e, this.xd.ch);
$ret.c = this.getEffectiveViewport1(a);
return $ret;
})());
let h = ((() => {
let $ret = new ScalerParams(1, d, e, this.xf.ch);
$ret.c = this.getEffectiveViewport1(a);
return $ret;
})());
let i = this.wi(a);
let j = this.aak.a.eo(i.left, g);
let k = this.aak.a.eo(i.right, g);
let l = this.aak.b.eo(i.bottom, h);
let m = this.aak.b.eo(i.top, h);
if (this.aak.e) {
let n = j;
j = k;
k = n;
}
if (this.aak.f) {
let o = l;
l = m;
m = o;
}
let p = this.aak;
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.aak.d.count; y++) {
s = 0;
t = 0;
let z = null;
let aa = a.cc.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;
}
aan(a, b) {
if (b == null) {
b = new List$1(Number_$type, 2, a.e);
}
else {
b.clear();
}
let c = 0;
let d = this.dn;
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.p3(a, c, b);
return c.toArray();
}
p3(a, b, c) {
this.ze(a, b, c);
}
}
ScatterPolygonSeries.$t = markType(ScatterPolygonSeries, 'ScatterPolygonSeries', ShapeSeriesBase.$);
ScatterPolygonSeries.abq = new Rect(0, 0, 0, 1, 1);
ScatterPolygonSeries.$$p = markDep(DependencyProperty, PropertyMetadata, ScatterPolygonSeries, 'raisePropertyChanged', ['ActualMarkerBrush:abm:aa8', [Brush.$], 'ActualMarkerOutline:abn:aa9', [Brush.$], 'ActualMarkerTemplate:aa5:aba', [DataTemplate.$, null], 'MarkerBrush:abo:abb', [Brush.$], 'MarkerCollisionAvoidance:z7:abc', [CollisionAvoidanceType_$type, enumGetBox(CollisionAvoidanceType_$type, 0)], 'MarkerFillMode:aaa:abd', [MarkerFillMode_$type, enumGetBox(MarkerFillMode_$type, 0)], 'MarkerOutlineMode:aae:abe', [MarkerOutlineMode_$type, enumGetBox(MarkerOutlineMode_$type, 0)], 'MarkerOutline:abp:abf', [Brush.$], 'MarkerStyle:abr:abg', [Style.$], 'MarkerTemplate:aa7:abh', [DataTemplate.$, null], 'MarkerThickness:aao:abi', [1, DeviceUtils.g(2)], 'MarkerType:aag:abj', [MarkerType_$type, enumGetBox(MarkerType_$type, 1)], 'ShapeStyle:abs:abk', [Style.$, null], 'ShapeStyleSelector:aal:abl', [StyleSelector.$, null]]);
return ScatterPolygonSeries;
})();
/**
* @hidden
*/
export let ScatterPolygonSeriesView = /*@__PURE__*/ (() => {
class ScatterPolygonSeriesView extends ShapeSeriesViewBase {
constructor(a) {
super(a);
this.dk = false;
this.db = null;
this.dm = null;
this.dh = null;
this.df = null;
this.dj = false;
this.di = null;
this.dn = null;
this.dc = new Marker();
this.d4 = null;
this.dc = new Marker();
this.dc.content = new DataContext();
this.dh = a;
this.di = new HashPool$2(Base.$, Marker.$);
this.dn = new List$1(Marker.$, 0);
this.dy(this.di);
this.df = new NumericMarkerManager(1, (b) => this.di.item(b), (b) => this.dh.aak.d.item(b), runOn(this, this.d2), runOn(this, this.da), runOn(this, this.dl), () => this.dh.z7);
this.df.q = runOn(this, this.d5);
}
au() {
super.au();
if (!this.q) {
this.dh.abp = Defaults.am;
this.dh.jo = Defaults.z;
this.dh.aao = Defaults.y;
this.dh.aag = Defaults.f;
this.dh.aaa = Defaults.b;
}
}
get dg() {
return this.df;
}
d2(a) {
this.dh.aa4(a, this.di);
}
da() {
this.db = this.dh.z6(this, this.di, this.db, this.by, this.bx);
return this.db;
}
dl() {
this.dm = this.dh.aan(this.di, this.dm);
return this.dm;
}
c5(a, b) {
return this.c6(a, b, true);
}
cm(a, b, c) {
super.cm(a, b, c);
ShapeSeriesViewBase.cl(this, a, b);
}
ck(a, b) {
let c = a;
if (c == null) {
return;
}
c.an = b;
}
dw(a) {
this.di.f(a);
}
dy(a) {
a.create = runOn(this, this.de);
a.destroy = runOn(this, this.d0);
a.activate = runOn(this, this.dz);
a.disactivate = runOn(this, this.d1);
}
de() {
let a = new Marker();
if (!this.dj) {
a.content = ((() => {
let $ret = new DataContext();
$ret.series = this.e;
return $ret;
})());
}
a.ah = this.e.aa5;
this.dn.add(a);
return a;
}
b4(a) {
let b = this.dd(a, 0);
if (b == null) {
b = this.dd(a, 3);
}
return b;
}
dd(a, b) {
let c;
let d;
let e;
let f;
for (let g = this.dn.count - 1; g >= 0; g--) {
let h = this.dn._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;
}
d0(a) {
a.content = null;
this.dn.remove(a);
}
dz(a) {
a._visibility = 0;
}
d1(a) {
if (a.content != null) {
(typeCast(DataContext.$, a.content)).item = null;
}
a._visibility = 1;
}
d3(a) {
this.dj = a;
}
bj(a, b) {
super.bj(a, b);
if (!this.dk) {
let c = a;
let d = c.content;
if (d != null) {
if (this.dh.abm != null) {
d.actualItemBrush = this.dh.abm;
}
else {
d.actualItemBrush = this.b6.u8;
}
if (this.dh.abm != null) {
d.outline = this.dh.abn;
}
else {
d.outline = this.b6.vc;
}
d.thickness = this.dh.aao;
}
}
}
bk(a, b) {
super.bk(a, b);
let c = a;
this.dc._visibility = c._visibility;
this.dc.ah = c.ah;
this.dc.width = c.width;
this.dc.height = c.height;
this.dc.m = c.m;
this.dc.l = c.l;
this.dc.n = c.n;
this.dc.o = c.o;
let d = this.bs(b);
let e = this.dc.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.dh.aao + 3;
}
}
a7(a, b) {
super.a7(a, b);
let c = new DataTemplatePassInfo();
c.isHitTestRender = b;
c.context = a.h();
c.viewportTop = this.bx.top;
c.viewportLeft = this.bx.left;
c.viewportWidth = this.bx.width;
c.viewportHeight = this.bx.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.dh.aa5 != null && this.dh.aa5.passStarting != null) {
this.dh.aa5.passStarting(c);
}
for (let j = 0; j < this.dn.count; j++) {
let k = this.dn._inner[j];
if (k._visibility == 1) {
continue;
}
this.bi(k, j, b);
if (b) {
k = this.dc;
}
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.dh.aa5 != null && this.dh.aa5.passCompleted != null) {
this.dh.aa5.passCompleted(c);
}
}
dv() {
this.dh.aa5 = null;
}
ds() {
this.dh.aa5 = null;
this.dh.aa5 = this.dh.aa7;
}
dt() {
this.dh.abm = null;
}
dq() {
this.dh.abm = null;
if (!isNaN_(this.e.ib) && this.e.ib != 1) {
let a = BrushUtil.q(this.dh.abo, this.e.ib);
this.dh.abm = a;
}
else {
this.dh.abm = this.dh.abo;
}
}
du() {
this.dh.abn = null;
}
dr() {
this.dh.abn = null;
this.dh.abn = this.dh.abp;
}
dp(a) {
switch (a) {
case "CircleMarkerTemplate":
this.dh.aa5 = this.dh.db.r1;
break;
case "TriangleMarkerTemplate":
this.dh.aa5 = this.dh.db.sa;
break;
case "PyramidMarkerTemplate":
this.dh.aa5 = this.dh.db.r7;
break;
case "SquareMarkerTemplate":
this.dh.aa5 = this.dh.db.r8;
break;
case "DiamondMarkerTemplate":
this.dh.aa5 = this.dh.db.r2;
break;
case "PentagonMarkerTemplate":
this.dh.aa5 = this.dh.db.r5;
break;
case "HexagonMarkerTemplate":
this.dh.aa5 = this.dh.db.r3;
break;
case "TetragramMarkerTemplate":
this.dh.aa5 = this.dh.db.r5;
break;
case "PentagramMarkerTemplate":
this.dh.aa5 = this.dh.db.r6;
break;
case "HexagramMarkerTemplate":
this.dh.aa5 = this.dh.db.r4;
break;
}
}
dx() {
for (let a of fromEnum(this.dn)) {
a.ah = this.dh.aa5;
}
this.as();
}
d5(a) {
if (this.d4 == null) {
this.d4 = new DataTemplateMeasureInfo();
this.d4.context = this.k.h();
}
this.d4.width = a.width;
this.d4.height = a.height;
this.d4.data = a.content;
let b = a.ah;
if (b.measure != null) {
b.measure(this.d4);
}
return new Size(1, this.d4.width, this.d4.height);
}
an(a) {
let b = a;
super.an(b);
for (let c of fromEnum(this.di.c)) {
let d = this.di.item(c);
if (d._visibility != 1) {
let e = typeCast(ScatterPolygonSeries.$, this.e);
let f = this.e.bc.getMarkerVisualData(e, d, e.aa5);
b.markerShapes.add(typeCast(MarkerVisualData.$, f));
}
}
}
getDefaultTooltipTemplate() {
let a = "<div class='ui-chart-default-tooltip-content'><span";
let b = this.e.ba.a$u(this.e);
if (!stringIsNullOrEmpty(b)) {
a += " style='color:" + b + "'";
}
a += ">" + this.dh.title + "</span><br/>";
a += "</div>";
return a;
}
}
ScatterPolygonSeriesView.$t = markType(ScatterPolygonSeriesView, 'ScatterPolygonSeriesView', ShapeSeriesViewBase.$);
return ScatterPolygonSeriesView;
})();