igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
1,644 lines • 53 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 { Base, typeCast, markType, Array_$type, Number_$type, Point_$type, enumGetBox, runOn, delegateCombine, fromEnum, markDep } from "igniteui-angular-core";
import { IBucketizer_$type } from "./IBucketizer";
import { ArgumentNullException } from "igniteui-angular-core";
import { Rect } from "igniteui-angular-core";
import { CategoryAxisBase } from "./CategoryAxisBase";
import { ISortingAxis_$type } from "./ISortingAxis";
import { ScalerParams } from "./ScalerParams";
import { Series } from "./Series";
import { truncate, intDivide, isNaN_, isInfinity } from "igniteui-angular-core";
import { FramePreparer } from "./FramePreparer";
import { IIsCategoryBased_$type } from "./IIsCategoryBased";
import { List$1 } from "igniteui-angular-core";
import { ISupportsMarkers_$type } from "./ISupportsMarkers";
import { IProvidesViewport_$type } from "./IProvidesViewport";
import { ISupportsErrorBars_$type } from "./ISupportsErrorBars";
import { CategoryFrame } from "./CategoryFrame";
import { PreparationParams } from "./PreparationParams";
import { IDateTimeAxis_$type } from "./IDateTimeAxis";
import { NumericAxisBase } from "./NumericAxisBase";
import { IHasCategoryTrendline_$type } from "./IHasCategoryTrendline";
import { IHasSingleValueCategory_$type } from "./IHasSingleValueCategory";
import { DefaultCategoryTrendlineHost } from "./DefaultCategoryTrendlineHost";
import { DefaultSingleValueProvider } from "./DefaultSingleValueProvider";
import { SingleValuesHolder } from "./SingleValuesHolder";
import { MarkerSeries } from "./MarkerSeries";
import { IHasCategoryModePreference_$type } from "./IHasCategoryModePreference";
import { ICategorySeriesInteractionManager_$type } from "./ICategorySeriesInteractionManager";
import { DVContainer } from "igniteui-angular-core";
import { DependencyProperty } from "igniteui-angular-core";
import { CategoryCollisionMode_$type } from "./CategoryCollisionMode";
import { CategoryTransitionInMode_$type } from "./CategoryTransitionInMode";
import { HighlightingInfo } from "igniteui-angular-core";
import { CategoryTransitionSourceFramePreparer } from "./CategoryTransitionSourceFramePreparer";
import { SeriesPointOfInterest } from "./SeriesPointOfInterest";
import { Marker } from "./Marker";
import { MarkerSeriesView } from "./MarkerSeriesView";
import { MathUtil } from "igniteui-angular-core";
import { CategorySeriesRenderManager } from "./CategorySeriesRenderManager";
import { Pool$1 } from "igniteui-angular-core";
import { SeriesLayerPropertyOverlay } from "./SeriesLayerPropertyOverlay";
import { DoubleCollection } from "igniteui-angular-core";
import { Clipper } from "igniteui-angular-core";
import { ChartSelection } from "./ChartSelection";
import { PropertyMetadata } from "igniteui-angular-core";
import { round10N } from "igniteui-angular-core";
/**
* @hidden
*/
export class CategoryBucketCalculator extends Base {
static { this.$t = markType(CategoryBucketCalculator, 'CategoryBucketCalculator', Base.$, [IBucketizer_$type]); }
constructor(a) {
super();
this.c = null;
this.e = 0;
this.f = 0;
this.d = 0;
if (a == null) {
throw new ArgumentNullException(0, "view");
}
this.c = a;
this.e = -1;
this.d = 0;
}
getBucket(a) {
return null;
}
getBucketWithoutUnknowns(a) {
return this.getBucket(a);
}
getErrorBucket(a, b) {
return NaN;
}
g(a) {
let b = this.c.ca;
let c = this.c.b9;
let d = this.c.db;
let e = typeCast(CategoryAxisBase.$, d.fetchXAxis());
let f = d.dp;
if (b.isEmpty || c.isEmpty || e == null || f == null || f.count == 0) {
this.d = 0;
return;
}
let g = d.getEffectiveViewport1(this.c);
let h = d.w6(this.c);
let i = typeCast(ISortingAxis_$type, e);
if (i == null || i.i$b == null) {
let j = new ScalerParams(0, b, c, e.dr, g);
let k = Math.floor(e.gf(h.left, j));
let l = Math.ceil(e.gf(h.right, j));
if (e.dr) {
l = Math.ceil(e.gf(h.left, j));
k = Math.floor(e.gf(h.right, j));
}
l = Math.min(l, e.qq - 1);
let m = Math.floor((l - k + 1) * a / h.width);
this.d = truncate(Math.max(1, m));
this.e = truncate(Math.max(0, Math.floor(k / this.d) - 1));
this.f = truncate(Math.ceil(l / this.d));
}
else {
this.e = i.i$e(b, c, g, h);
this.f = i.i$g(b, c, g, h);
this.d = 1;
}
}
getBucketInfo(a, b, c, d) {
a = this.e;
b = this.f;
c = this.d;
d = this.c.db.im;
return {
p0: a,
p1: b,
p2: c,
p3: d
};
}
cacheValues() {
}
unCacheValues() {
}
}
/**
* @hidden
*/
export class CategoryFramePreparerBase extends FramePreparer {
static { this.$t = markType(CategoryFramePreparerBase, 'CategoryFramePreparerBase', FramePreparer.$); }
constructor(a, ..._rest) {
a = (a == void 0) ? 0 : a;
switch (a) {
case 0:
{
let c = _rest[0];
let d = [c, typeCast(ISupportsMarkers_$type, c), typeCast(IProvidesViewport_$type, c), typeCast(ISupportsErrorBars_$type, c), typeCast(IBucketizer_$type, c)];
{
let f = d[0];
let g = d[1];
let h = d[2];
let i = d[3];
let j = d[4];
super(1, g, h, i);
this.g = null;
this.h = null;
this.m = false;
this.o = new List$1(Array_$type, 0);
this.p = new List$1(Number_$type, 0);
this.n = new List$1(Number_$type, 0);
this.h = f;
this.g = j;
}
}
break;
case 1:
{
let c = _rest[0];
let d = _rest[1];
let e = _rest[2];
let f = _rest[3];
let g = _rest[4];
super(1, d, e, f);
this.g = null;
this.h = null;
this.m = false;
this.o = new List$1(Array_$type, 0);
this.p = new List$1(Number_$type, 0);
this.n = new List$1(Number_$type, 0);
this.h = c;
this.g = g;
}
break;
}
}
i(a) {
let b = new PreparationParams();
b.f = this.h.useHighMarkerFidelity;
b.b = this.h.scaler;
b.c = this.h.yScaler;
b.d = typeCast(ISortingAxis_$type, b.b);
b.a = typeCast(CategoryFrame.$, a);
if (b.a == null || b.b == null || b.c == null) {
return null;
}
let c;
let d;
let e;
let f;
let g = this.g.getBucketInfo(c, d, e, f);
c = g.p0;
d = g.p1;
e = g.p2;
f = g.p3;
b.k = c;
b.l = d;
b.j = e;
b.i = f;
if (b.l < b.k) {
return null;
}
let h;
let i;
let j;
let k = this.a.getViewInfo(i, h);
i = k.p0;
h = k.p1;
j = this.a.getEffectiveViewport();
let l = this.a.getMainContentViewport();
b.p = h;
b.o = i;
b.n = j;
b.m = l;
if (Rect.l_op_Equality(b.p, Rect.empty) || Rect.l_op_Equality(b.o, Rect.empty)) {
return null;
}
if (this.h != null && (typeCast(Series.$, this.h) !== null && this.h.isFragment) && this.g != null) {
b.e = true;
}
return b;
}
r(a, b, c, d) {
return a.getSeriesOffset(b, c, d, this.h.currentMode2Index, this.h.currentCategoryMode);
}
s(a) {
return this.r(a.b, a.p, a.o, a.n);
}
d(a, b) {
let c = this.i(a);
if (c == null || this.g == null) {
return;
}
c.a.k.clear();
c.a.p.clear();
c.a.s.clear();
c.a.v.clear();
c.a.n.clear();
c.a.m.clear();
c.a.l.clear();
if (c.a.r != null) {
c.a.r.clear();
}
let d = this.c.shouldDisplayMarkers;
let e = false;
let f = this.s(c);
let g = this.j(c);
if (c.d != null && c.d.i$b != null && c.d.i$b.count != g.e) {
return;
}
if (c.d != null && c.d.i$a) {
c.d.i$h();
}
this.g.cacheValues();
if (this.m && c.d != null && c.d.i$b.count > 0) {
let h = c.d.i$b._inner[c.k];
this.z(g, h, true, c.e);
while ((isNaN_(g.c) || isNaN_(g.d)) && c.k > 0) {
c.k = c.k - 1;
h = c.d.i$b._inner[c.k];
this.z(g, h, true, c.e);
}
let i = c.d.i$b._inner[c.l];
this.z(g, i, true, c.e);
while ((isNaN_(g.c) || isNaN_(g.d)) && c.l < g.e - 1) {
c.l = c.l + 1;
i = c.d.i$b._inner[c.l];
this.z(g, i, true, c.e);
}
}
if (this.m && c.d == null) {
let j = c.k;
let k = this.g.getBucket(j);
while ((isNaN_(k[1]) || isNaN_(k[2])) && c.k > 0) {
c.k = c.k - 1;
j = c.k;
k = this.g.getBucket(j);
}
let l = c.l;
k = this.g.getBucket(l);
while ((isNaN_(k[1]) || isNaN_(k[2])) && c.l < (intDivide(g.e, c.j))) {
c.l = c.l + 1;
l = c.l;
k = this.g.getBucket(l);
}
}
this.w(c, g, f);
let m = this.t(c, g, f, d, e);
this.c.updateMarkerCount(m);
this.v(typeCast(CategoryFrame.$, a), b, c);
this.g.unCacheValues();
return;
}
v(a, b, c) {
}
get q() {
return this.o;
}
t(a, b, c, d, e) {
let f = 0;
let g = false;
let h = null;
let i = false;
let j = a.d != null;
let k = a.p;
let l = a.o;
let m = typeCast(NumericAxisBase.$, a.c) !== null && a.c.qv;
let n = a.f;
let o = this.h.mayContainUnknowns;
let p = this.o;
let q = this.n;
let r = this.p;
p.clear();
q.clear();
r.clear();
let s = this.g;
let t = this.h.provideCollisionDetector();
let u = 0;
let v = a.n;
let w = new ScalerParams(0, k, l, a.b.j$b, v);
let x = ((() => {
let $ret = new ScalerParams(0, k, l, a.c.j$b, v);
$ret.b = typeCast(Series.$, this.h) !== null ? this.h.i7() : NaN;
return $ret;
})());
if (j) {
u = a.b.j$d(2, w) - a.b.j$d(1, w);
i = this.k();
}
let y = a.k;
let z = a.l;
let aa = a.a.k;
let ab = typeCast(IDateTimeAxis_$type, a.b);
if (ab != null) {
ab.StartTimeCursor();
}
for (let ac = y; ac <= z; ++ac) {
let ad;
if (!j) {
if (!o) {
ad = s.getBucketWithoutUnknowns(ac);
}
else {
ad = s.getBucket(ac);
}
}
else {
ad = ((() => { let ae = this.f(a, ac, b, u, g, h, c); ac = ae.p1; g = ae.p4; h = ae.p5; return ae.ret; })());
}
let ae = !m || (m && ad[1] > 0);
let af = ad[0];
if (!j || !isNaN_(ad[0])) {
aa.add(ad);
if (j) {
if (a.a.r == null) {
a.a.r = new List$1(Number_$type, 0);
}
a.a.r.add(ac * a.j);
}
if (g && i) {
if (h != null) {
aa.add(h);
if (j) {
if (a.a.r == null) {
a.a.r = new List$1(Number_$type, 0);
}
a.a.r.add(ac * a.j);
}
}
}
if (d && ae) {
let ag = ac * a.j;
let ah = ag;
if (j && a.d.i$b != null && ag >= 0 && ag < a.d.i$b.count) {
ag = a.d.i$b._inner[ag];
}
let ai = new Array(ad.length);
ai[0] = ad[0];
ai[1] = ad[1];
ai[2] = ad[2];
if (n && ag < b.e) {
ai = new Array(ad.length);
ai[0] = af;
this.z(b, ag, true, a.e);
ai[1] = b.c;
ai[2] = b.d;
}
p.add(ai);
q.add(a.a.k.count - 1);
r.add(ag);
}
}
}
if (ab != null) {
ab.ResetTimeCursor();
}
this.y(a, c, j, w, x, e, d);
if (d) {
let aj = p.count;
let ak;
for (let al = 0; al < aj; al++) {
ak = p._inner[al];
if (this.l(a.a, ak, t, Math.min(r._inner[al], b.e - 1), f, q._inner[al])) {
++f;
}
}
}
return f;
}
k() {
if (typeCast(Series.$, this.h) !== null) {
return this.h.ey;
}
return false;
}
f(a, b, c, d, e, f, g) {
let h;
f = null;
e = false;
let i = typeCast(CategorySeries.$, this.h);
let j = a.o;
let k = a.p;
let l = a.n;
let m = new ScalerParams(0, k, j, a.b.j$b, l);
let n = new ScalerParams(0, k, j, a.c.j$b, l);
let o = a.e;
if (a.d == null || a.d.i$b == null || a.d.i$b.count == 0) {
return {
ret: [NaN, NaN, NaN],
p1: b,
p4: e,
p5: f
};
}
if (i != null && i.dp != null && i.dp.count < a.d.i$b.count) {
return {
ret: [NaN, NaN, NaN],
p1: b,
p4: e,
p5: f
};
}
let p = a.d.i$b._inner[b];
let q = a.d.i$d(p);
let r = q;
this.z(c, p, false, o);
while (b < a.l) {
p = a.d.i$b._inner[b + 1];
r = a.d.i$d(p);
this.z(c, p, true, o);
if (r - q >= d || isNaN_(c.c) || isNaN_(c.d)) {
if (e) {
let s = a.d.i$b._inner[b];
this.z(c, s, true, o);
f = [a.b.j$c(q, m), c.c, c.d];
}
break;
}
if (!e && this.k()) {
let t = a.d.i$b._inner[b];
this.z(c, t, true, o);
let u = [a.b.j$c(q, m), c.c, c.d];
if (!isNaN_(u[0])) {
if (!isNaN_(u[1]) && !isNaN_(u[2])) {
if (a.d != null) {
u[0] = u[0] + g;
}
a.a.k.add(u);
if (a.d != null) {
if (a.a.r == null) {
a.a.r = new List$1(Number_$type, 0);
}
a.a.r.add(b);
}
e = true;
}
else {
break;
}
}
}
b++;
this.u(c, p, o);
}
let v = NaN;
if (!isNaN_(q)) {
v = a.b.j$c(q, m);
}
h = this.e(v, c);
return {
ret: h,
p1: b,
p4: e,
p5: f
};
}
y(a, b, c, d, e, f, g) {
let h = a.j;
let i = a.a.k.count;
let j = a.a.k;
let k = this.o;
let l = k.count;
if (f) {
let m = a.c.j$c(a.c.rp, e);
a.c.j$f(a.a.p, 0, a.a.p.count, e);
let n = a.a.p;
let o = n.count;
for (let p = 0; p < n.count; p++) {
n._inner[p] = Math.abs(n._inner[p] - m);
}
}
}
w(a, b, c) {
}
}
/**
* @hidden
*/
export class CategoryFramePreparer extends CategoryFramePreparerBase {
static { this.$t = markType(CategoryFramePreparer, 'CategoryFramePreparer', CategoryFramePreparerBase.$); }
constructor(a, ..._rest) {
a = (a == void 0) ? 0 : a;
switch (a) {
case 0:
{
let c = _rest[0];
let d = [c, typeCast(ISupportsMarkers_$type, c), typeCast(IProvidesViewport_$type, c), typeCast(ISupportsErrorBars_$type, c), typeCast(IBucketizer_$type, c)];
{
let f = d[0];
let g = d[1];
let h = d[2];
let i = d[3];
let j = d[4];
super(1, f, g, h, i, j);
this.aa = new DefaultCategoryTrendlineHost();
this.ab = new DefaultSingleValueProvider();
this.ac = null;
this.ad = null;
this.ac = this.aa;
if (typeCast(IHasCategoryTrendline_$type, f) !== null) {
this.ac = typeCast(IHasCategoryTrendline_$type, f);
}
this.ad = this.ab;
if (typeCast(IHasSingleValueCategory_$type, f) !== null) {
this.ad = typeCast(IHasSingleValueCategory_$type, f);
}
}
}
break;
case 1:
{
let c = _rest[0];
let d = _rest[1];
let e = _rest[2];
let f = _rest[3];
let g = _rest[4];
super(1, c, d, e, f, g);
this.aa = new DefaultCategoryTrendlineHost();
this.ab = new DefaultSingleValueProvider();
this.ac = null;
this.ad = null;
this.ac = this.aa;
if (typeCast(IHasCategoryTrendline_$type, c) !== null) {
this.ac = typeCast(IHasCategoryTrendline_$type, c);
}
this.ad = this.ab;
if (typeCast(IHasSingleValueCategory_$type, c) !== null) {
this.ad = typeCast(IHasSingleValueCategory_$type, c);
}
}
break;
}
}
l(a, b, c, d, e, f) {
let g = b[0];
let h = b[1];
let i = new Rect(0, g - 5, h - 5, 11, 11);
if (!isNaN_(g) && !isNaN_(h) && !isInfinity(g) && !isInfinity(h) && c.tryAdd(i)) {
a.s.add({ $type: Point_$type, x: g, y: h });
this.c.updateMarkerTemplate(e, d, f);
return true;
}
return false;
}
j(a) {
let b = new SingleValuesHolder();
let c = this.ad.valueColumn;
b.f = c;
return b;
}
x(a, b, c, d, e, f) {
if (d) {
b[0] = b[0] + c;
}
else {
b[0] = a.b.j$c(b[0], e) + c;
}
b[1] = a.c.j$c(b[1], f);
if (a.j > 1 || d) {
b[2] = a.c.j$c(b[2], f);
}
else {
b[2] = b[1];
}
}
y(a, b, c, d, e, f, g) {
super.y(a, b, c, d, e, f, g);
let h = a.j;
let i = a.a.k.count;
let j = a.a.k;
let k = this.q;
let l = k.count;
let m = new List$1(Number_$type, 0);
if (!c) {
m.add(0);
}
let n = new List$1(Number_$type, 0);
n.add(1);
if (c || h > 1) {
n.add(2);
}
a.b.j$e(j, m, 0, i, d);
a.c.j$e(j, n, 0, i, e);
for (let o = 0; o < i; o++) {
j._inner[o][0] = j._inner[o][0] + b;
}
if (h == 1 && !c) {
for (let p = 0; p < i; p++) {
j._inner[p][2] = j._inner[p][1];
}
}
if (g) {
a.b.j$e(k, m, 0, l, d);
a.c.j$e(k, n, 0, l, e);
for (let q = 0; q < l; q++) {
k._inner[q][0] = k._inner[q][0] + b;
}
if (h == 1 && !c) {
for (let r = 0; r < l; r++) {
k._inner[r][2] = k._inner[r][1];
}
}
}
}
w(a, b, c) {
if (this.ac.trendLineType == 0 || this.ac.trendlinePreparer == null || this.ac.trendLinePeriod < 1) {
return;
}
this.ac.trendlinePreparer.prepareLine(this.ac, a, b, c);
}
z(a, b, c, d) {
let e = a;
let f = e.f;
let g = f.item(b);
let h = g;
if (d) {
let i = this.g.getBucket(b);
g = i[1];
h = i[1];
}
if (c) {
e.c = g;
e.d = h;
}
else {
e.a = g;
e.b = h;
}
}
u(a, b, c) {
let d = a;
let e = d.f;
if (b < e.count) {
let f;
if (c) {
let g = this.g.getBucket(b);
f = g[1];
}
else {
f = e.item(b);
}
d.a = Math.min(d.a, f);
d.b = Math.max(d.b, f);
}
}
e(a, b) {
let c = b;
return [a, c.a, c.b];
}
}
/**
* @hidden
*/
export class CategorySeries extends MarkerSeries {
static { this.$t = markType(CategorySeries, 'CategorySeries', MarkerSeries.$, [IHasCategoryModePreference_$type, ISupportsErrorBars_$type]); }
ct() {
let a = new CategorySeriesView(this);
return a;
}
get aak() {
if (this.aaj == null) {
this.aaj = DVContainer.instance.createInstance(ICategorySeriesInteractionManager_$type, () => this.ds.n);
}
return this.aaj;
}
ed(a, b, c, d, e) {
if (!this.hasMarkers) {
return false;
}
let f = this.getEffectiveViewport1(this.cw);
let g = this.z4();
let h = new ScalerParams(1, this.dc.yv, this.xf, g.dr);
h.c = f;
let i = this.aal();
let j = new ScalerParams(1, this.dc.yv, this.xf, i.dr);
j.c = f;
let k = this.dc.yv;
let l = this.xf;
let m = this.currentMode2Index;
let n = 0;
if (g.dm && g.dj) {
n = g.getSeriesOffset(k, l, f, m, g.categoryMode);
}
a.clear();
this.xu.cw((o) => {
if (o._visibility == 0) {
let p = new SeriesPointOfInterest();
let q = o.n;
let r = o.o;
if (!e && (q < this.xf.left || q > this.xf.right || r < this.xf.top || r > this.xf.bottom)) {
return;
}
if (this.isVertical) {
if (g.di && !g.dm && g.categoryMode != 0) {
p.e = o.al;
}
else {
p.e = g.gf(r, h);
}
p.d = i.gf(q, j);
}
else {
if (g.di && !g.dm && g.categoryMode != 0) {
p.d = o.al;
}
else {
p.d = g.gf(q, h);
}
p.e = i.gf(r, j);
}
p.b = o.content;
if (b) {
if (this.isVertical) {
if (c) {
p.f = this.abb(p.d, d);
}
else {
let s = this.jn(o);
if (!isNaN_(s)) {
p.f = this.abb(s, d);
}
else {
p.f = this.abb(p.d, d);
}
}
}
else {
if (c) {
p.f = this.abb(p.e, d);
}
else {
let t = this.jn(o);
if (!isNaN_(t)) {
p.f = this.abb(t, d);
}
else {
p.f = this.abb(p.e, d);
}
}
}
}
else {
let u = this.au(true);
if (u != null) {
let v = this.k3(o.al, false);
if (v != null) {
p.f = u.i(v);
}
else {
p.f = null;
}
}
else {
p.f = g.jh(o.al);
}
}
p.c = o.al;
p.g = this.v2;
if (this.hh) {
p.g = this.v9(o.al);
}
a.add(p);
}
});
return true;
}
abb(a, b) {
let c;
if (b >= 0) {
c = round10N(a, b);
}
else {
c = a;
}
let d = this.au(false);
if (d != null) {
let e = d;
return e.i(c);
}
else {
return MathUtil.t(c);
}
}
rj(a) {
super.rj(a);
this.aaf = a;
}
preferredCategoryMode(a) {
return 0;
}
get categoryAxis() {
return this.z4();
}
z4() {
return this.fetchXAxis();
}
aal() {
return this.fetchYAxis();
}
get_em() {
return true;
}
get_gc() {
return this.aal() != null && this.aal().dr;
}
get_e1() {
return true;
}
constructor() {
super();
this.aab = null;
this.aaj = null;
this.aas = false;
this.aar = false;
this.assigningCategoryStyle = null;
this.assigningCategoryMarkerStyle = null;
this.aap = null;
this.aaq = null;
this.z8 = new CategoryFrame(3);
this.aaa = new CategoryFrame(3);
this.z6 = new CategoryFrame(3);
this.z9 = new CategoryFrame(3);
this.aae = null;
this.aai = null;
this.aae = new CategorySeriesRenderManager();
this.aai = new CategoryTransitionSourceFramePreparer();
this.aas = false;
this.d3 = false;
this.aar = false;
this.ab = CategorySeries.$;
}
ac() {
super.ac();
this.aaf.c9.g(this.im);
}
aay() {
return (this.assigningCategoryStyle != null && this.aas) || (this.by != 1) || this.d3 || (this.cq != 1) || (this.cp != 1);
}
aaz() {
return (this.assigningCategoryMarkerStyle != null && this.aar) || (this.by != 1) || this.d3 || (this.cq != 1) || (this.cp != 1);
}
aby(a) {
if (this.assigningCategoryStyle != null && this.aas) {
this.assigningCategoryStyle(this, a);
}
}
abx(a) {
if (this.assigningCategoryMarkerStyle != null && this.aar) {
this.assigningCategoryMarkerStyle(this, a);
}
}
zy(a, b) {
return null;
}
pk(a, b) {
super.pk(a, b);
if (a) {
this.abk(b);
}
}
bs() {
let a = super.bs();
return a;
}
qr() {
super.qr();
let a = this.fetchXAxis();
if (a != null) {
a.l8(false);
}
let b = this.fetchYAxis();
if (b != null) {
b.l8(false);
}
}
tb(a, b) {
super.tb(a, b);
this.aaf.c9.g(this.im);
this.sa(false);
}
ta(a, b) {
if (this.g9 && this.j1 < 0.05 && (this.dc == null || !this.dc.gj())) {
this.ha = true;
this.hd = false;
this.gs = false;
}
super.ta(a, b);
this.aaf.c9.g(this.im);
this.sa(false);
}
rs(a, b, c, d) {
super.rs(a, b, c, d);
switch (b) {
case "SeriesViewer":
let e = this.fetchYAxis();
let f = this.fetchXAxis();
if (c != null && d == null) {
this.pr(f);
this.pr(e);
}
if (c == null && d != null) {
this.r0(f);
this.r0(e);
}
this.aaf.c9.g(this.im);
this.sa(false);
break;
case "SyncLink":
if (this.c4 != null && this.dc != null) {
this.aaf.c9.g(this.im);
}
this.sa(false);
break;
case "TransitionProgress":
this.aaa.d(this.j1, this.z8, this.z6);
if (this.d7(this.cw)) {
return;
}
if (this.j1 == 1) {
this.z6.ab();
this.abz(this.z6, this.aaf);
if (this.g9) {
this.g9 = false;
this.pl();
this.dd.r = truncate(this.jj());
this.dd.b = this.de;
}
if (this.hc) {
this.hc = false;
this.pl();
this.dd.r = truncate(this.jj());
this.dd.b = this.de;
this.ri();
}
this.q5();
}
else {
this.abz(this.aaa, this.aaf);
}
if (this.dc != null) {
this.dc.sv(this);
}
break;
case "ErrorBarSettings":
this.q2();
break;
case CategorySeries.$$p[5]:
this.sa(false);
break;
case CategorySeries.$$p[2]:
this.aas = this.aau();
this.sa(false);
break;
case CategorySeries.$$p[1]:
this.aar = this.aat();
this.sa(false);
break;
}
}
aau() {
return this.aaw;
}
aat() {
return this.aav;
}
aa5(a) {
return this.i2(a, this.fetchXAxis());
}
get_fw() {
return typeCast(ISortingAxis_$type, this.z4()) !== null;
}
a0() {
return this.z4();
}
kg(a) {
return this.aak.b$d(this, a);
}
ky(a) {
return this.aak.b$f(this, a);
}
ke(a) {
let b = truncate(Math.round(this.i0(a)));
return b;
}
i0(a) {
return this.aak.b$c(this, a);
}
di(a, b, c) {
if (this.f3(this.by) && !c) {
let d = this.aao(a, b, this.aaq);
this.aaq = d;
return d;
}
else {
let e = this.aam(a, b, this.aaq);
e.d = true;
this.aaq = e;
return e;
}
}
get_fh() {
return true;
}
pi() {
super.pi();
this.aap = null;
this.aaq = null;
}
dh(a, b, c) {
if (this.ef && this.f3(this.by) && !c) {
let d = this.aan(a, b, this.aap);
this.aap = d;
return d;
}
else {
let e = this.aam(a, b, this.aap);
this.aap = e;
return e;
}
}
aa4() {
return this.aaf.dc.a;
}
aao(a, b, c) {
if (!this.x4()) {
return null;
}
let d = this.z7();
let e = this.aa4();
return this.aak.b$b(this, e, this.aa8(this.cw), this.aa7(this.cw), d.k, a, b, c);
}
aan(a, b, c) {
let d = this.aa8(this.cw);
let e = this.aa9(this.cw);
let f = this.aa7(this.cw);
let g = this.z7();
return this.aak.b$a(this, g.k, g.r, d, e, f, a, b, c);
}
aam(a, b, c) {
let d = new HighlightingInfo();
d.i = this;
d.g = 0;
d.f = this.dp != null ? this.dp.count - 1 : 0;
d.c = true;
if (c != null && c.g == d.g && c.f == d.f) {
return c;
}
return d;
}
z7() {
let a = this.z6;
if (this.d4()) {
if (this.dd.g) {
this.dd.t();
}
a = this.aaa;
}
return a;
}
abu(a, b, c, d, e, f, g) {
let h = this.by != 1;
let i = this.d3;
let j = this.cq != 1;
let k = this.cp != 1;
this.aae.a3(this.aae.d, d.d0, a, b, c, d, e, f, true, g);
this.aae.aa(this.ik);
let l = this.aae.ax;
let m = null;
let n = this.dp;
let o = null;
let p = null;
let q = null;
let r = null;
let s = null;
if (i && this.dc != null && !l.e) {
let t = this.wa(l.z);
let u = this.wb(l.z);
this.aae.ae = t;
this.aae.af = u;
l.aa = t;
l.ab = u;
}
if (h && this.dc != null) {
m = this.dc.d7.getHighlightingInfo(this, n, l.z, l.y, true);
if (this.dc.d7.isCrossContextHighlight(this)) {
o = this.dc.d7.getHighlightingInfo(this, n, l.z, l.y, true);
}
l.c = m;
}
if (j && this.dc != null) {
p = this.dc.d8.getHighlightingInfo(this, n, l.z, l.y, true);
if (p == null && this.bo != null) {
p = this.dc.d8.getHighlightingInfo(this.bo, this.bo.dp, l.z, l.y, true);
}
if (this.dc.d8.isCrossContextHighlight(this)) {
r = this.dc.d8.getHighlightingInfo(this, n, l.z, l.y, true);
}
l.d = p;
}
if (k && this.dc != null) {
q = this.dc.d6.getHighlightingInfo(this, n, l.z, l.y, true);
if (this.dc.d6.isCrossContextHighlight(this)) {
s = this.dc.d6.getHighlightingInfo(this, n, l.z, l.y, true);
}
l.b = q;
}
l.h = f;
this.abx(l);
this.aae.y(this, m, p, q, f, h, j, k, l.v, this.dc.d7.totalHighWaterMark, l.x, this.dc.d8.totalHighWaterMark, l.t, this.dc.d6.totalHighWaterMark);
}
abv(a, b, c, d, e, f, g) {
let h = this.by != 1;
let i = this.cq != 1;
let j = this.cp != 1;
let k = this.d3;
this.aae.a3(this.aae.b, d.d0, a, b, c, d, e, f, false, g);
this.aae.ab(this.ik);
let l = this.aae.ay;
let m = null;
let n = null;
let o = null;
let p = this.dp;
if (k && this.dc != null && !l.e) {
let q = this.v9(l.z);
let r = this.wc(l.z);
this.aae.ag = q;
this.aae.ah = r;
l.aa = q;
l.ab = r;
}
if (h && this.dc != null) {
m = this.dc.d7.getHighlightingInfo(this, p, l.z, l.y, false);
l.c = m;
}
if (i && this.dc != null) {
n = this.dc.d8.getHighlightingInfo(this, p, l.z, l.y, false);
if (n == null && this.bo != null) {
n = this.dc.d8.getHighlightingInfo(this.bo, this.bo.dp, l.z, l.y, false);
}
l.d = n;
}
if (j && this.dc != null) {
o = this.dc.d6.getHighlightingInfo(this, p, l.z, l.y, false);
if (o == null && this.bo != null) {
o = this.dc.d6.getHighlightingInfo(this.bo, this.bo.dp, l.z, l.y, false);
}
l.b = o;
}
l.h = f;
this.aby(l);
this.aae.z(this, m, n, o, f, h, i, j, b < 0);
}
hm(a, b, c) {
let d = super.hm(a, b, c);
d = d && this.aa3(this.fetchXAxis());
d = d && this.aa3(this.fetchYAxis());
let e = c;
if (!c.r() || b.isEmpty || a.isEmpty || this.dp == null) {
d = false;
}
if (!d) {
e.c9.d = 0;
}
return d;
}
aa3(a) {
if (a == null || a.b7 == null) {
return false;
}
let b = typeCast(CategoryAxisBase.$, a);
if (b != null) {
if (b.itemsSource == null) {
return false;
}
if (b.qp < 1) {
return false;
}
}
else {
let c = typeCast(NumericAxisBase.$, a);
if (c != null) {
return c.ra != c.q9;
}
}
return true;
}
gv() {
return this.aax;
}
gw() {
return true;
}
aag() {
return 12;
}
pl() {
super.pl();
this.z8.ab();
this.z6.ab();
this.aaa.ab();
}
sb(a) {
super.sb(a);
this.aaf.c9.g(this.im);
if (this.d7(this.cw)) {
this.z6.ae();
this.aaa.ae();
this.z8.ae();
return;
}
if (this.gz) {
if (this.d4()) {
if (this.dd.g) {
this.dd.t();
}
this.abz(this.aaa, this.aaf);
}
else {
this.abz(this.z6, this.aaf);
}
return;
}
if (this.gn(a)) {
let b = this.z8;
if (this.d4()) {
if (this.dd.g) {
this.dd.t();
}
this.z8 = this.aaa;
this.aaa = b;
}
else {
this.z8 = this.z6;
this.z6 = b;
}
let c = false;
this.abw(this.z6, this.aaf);
if (this.hb) {
this.dd.w();
this.dd.r = truncate(this.jk());
this.dd.b = this.df != null ? this.df : this.de;
if (this.hc) {
let d = this.aaa;
this.aaa = this.z8;
this.z8 = d;
c = true;
}
this.aai.x(this, this.z8, this.z6, this.isVertical, this.fetchXAxis(), this.fetchYAxis(), this.aah, this.aag(), this.c6, this.c5(), runOn(this, this.aa6), this.aaf.b9);
if (this.hc) {
let e = this.aaa;
this.aaa = this.z8;
this.z8 = e;
}
this.hc = false;
}
if (this.he) {
this.dd.w();
this.dd.r = truncate(this.jl());
this.dd.b = this.dg != null ? this.dg : this.de;
if (this.g9) {
let f = this.aaa;
this.aaa = this.z8;
this.z8 = f;
c = true;
}
this.aai.x(this, this.z8, this.z6, this.isVertical, this.fetchXAxis(), this.fetchYAxis(), this.aah, this.aag(), this.c6, this.c5(), runOn(this, this.aa6), this.aaf.b9);
let g = this.z6;
this.z6 = this.z8;
this.z8 = g;
if (this.g9) {
let h = this.aaa;
this.aaa = this.z8;
this.z8 = h;
}
this.g9 = false;
}
this.eb = false;
if (!c) {
this.pg();
}
this.sr();
if (this.hb) {
this.ha = false;
this.g9 = true;
}
if (this.he) {
this.hd = false;
this.hc = true;
}
}
else {
this.abw(this.z6, this.aaf);
this.abz(this.z6, this.aaf);
}
}
c5() {
return 3;
}
c8() {
let a = this.c5();
switch (a) {
case 0: return 0;
case 1: return 1;
case 4: return 4;
case 2: return 2;
case 3: return 3;
}
return 3;
}
aa6() {
if (this.isVertical) {
return this.xf.left;
}
return this.xf.bottom;
}
aa0() {
return false;
}
h1() {
let a = super.h1();
if (this.aa0()) {
let b = ((() => {
let $ret = new SeriesLayerPropertyOverlay();
$ret.r = true;
$ret.ad = "DashArray";
$ret.p = true;
$ret.x = ((() => {
let $ret = new DoubleCollection();
$ret.add(5);
$ret.add(5);
return $ret;
})());
$ret.q = true;
return $ret;
})());
a.add(b);
}
if (!this.aa0()) {
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.sk));
a.add(c);
}
if (!this.aa0()) {
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.sk));
a.add(d);
}
let e = ((() => {
let $ret = new SeriesLayerPropertyOverlay();
$ret.p = true;
$ret.ad = "IsTransitionInEnabled";
$ret.x = true;
$ret.q = true;
return $ret;
})());
a.add(e);
let f = ((() => {
let $ret = new SeriesLayerPropertyOverlay();
$ret.p = true;
$ret.ad = "TransitionInMode";
$ret.x = enumGetBox(CategoryTransitionInMode_$type, 20);
$ret.q = true;
return $ret;
})());
a.add(f);
return a;
}
k6() {
if (this.d4()) {
return this.bo.aaa;
}
else {
return this.bo.z6;
}
}
aba() {
if (this.bo != null) {
let a = this.bo;
return a.aba();
}
let b = 0;
let c = this.fetchXAxis();
for (let d of fromEnum(this.dc.b9)) {
if (d == this) {
return b;
}
let e = typeCast(CategorySeries.$, d);
if (e != null) {
let f = typeCast(CategoryAxisBase.$, e.fetchXAxis());
if (f == c && e.preferredCategoryMode(f) == 2) {
b++;
}
}
}
return -1;
}
get GetErrorBarsXAxis() {
return this.fetchXAxis();
}
get GetErrorBarsYAxis() {
return this.fetchYAxis();
}
abl(a, b) {
this.aae.a1(this, this.aaz(), runOn(this, this.zy), this.aa7(a), this.aa8(a));
let c = this.aae.d;
let d = c != null;
let e = this.z4();
if (e == null) {
return;
}
let f = this.getEffectiveViewport1(a);
let g = new ScalerParams(0, a.ca, a.b9, e.dr, f);
let h = this.dp == null ? 0 : this.dp.count;
let i = a;
let j = b.k;
let k = i.c9.e;
let l = i.c9.f;
let m = i.c9.d;
let n = k * m;
for (let o = 0; o < a.dc.count; o++) {
let p = a.dc.item(o);
let q = p.content;
if (d) {
let r = p.am;
this.abu(j, r, h, e, g, a.t, p.al);
}
this.aae.ac(p, q);
}
}
abz(a, b) {
this.rf();
this.w5 = a.ag;
b.a6();
}
abw(a, b) {
a.aa();
}
aa7(a) {
return a.c9.d;
}
aa8(a) {
return a.c9.e;
}
aa9(a) {
return a.c9.f;
}
abk(a) {
let b = a;
b.dc.count = 0;
}
sc(a, b) {
super.sc(a, b);
if (!this.g8) {
this.cw.be(b);
return;
}
let c = typeCast(CategorySeriesView.$, this.cv);
c.c9.g(this.im);
this.cw.be(b);
if (this.d7(this.cv)) {
return;
}
this.sd();
this.g8 = false;
}
sd() {
super.sd();
let a = typeCast(CategorySeriesView.$, this.cv);
if (!this.g0) {
this.abw(this.z9, a);
}
this.g0 = false;
this.abz(this.z9, a);
}
aac(a) {
let b = typeCast(CategorySeriesView.$, a);
if (b != null && b.t) {
if (b.s) {
return new CategoryFramePreparer(1, typeCast(IIsCategoryBased_$type, this), typeCast(ISupportsMarkers_$type, b), b, this, b.c9);
}
else {
return new CategoryFramePreparer(1, typeCast(IIsCategoryBased_$type, this), typeCast(ISupportsMarkers_$type, b), this.dc.dw.o, this, b.c9);
}
}
else {
return this.aab;
}
}
aw(a) {
if (this.fetchXAxis() == a) {
return this.fetchYAxis();
}
if (this.fetchYAxis() == a) {
return this.fetchXAxis();
}
return null;
}
ai() {
return [this.fetchXAxis(), this.fetchYAxis()];
}
static zz(a, b, c, d, e) {
let f = null;
if (b > -1 && !d.isEmpty && !c.isEmpty) {
let g = a._inner[0][0] < c.left - 2000 ? c.left - 10 : NaN;
let h = c.bottom + 10;
let i = a._inner[b][0] > c.right + 2000 ? c.right + 10 : NaN;
let j = c.top - 10;
f = new Clipper(1, g, h, i, j, e);
}
return f;
}
abr(a, b, c, d, e) {
let f = this.dc.za(this.dc.y0(a));
let g = this.z4();
let h = this.aal();
let i = this.fetchXAxis();
let j = g == i;
let k = this.dc.y3(this.xf, this.getEffectiveViewport(), f);
let l, m;
let n = this.abn(f, g, j, k, l, m);
l = n.p4;
m = n.p5;
if (d == 0) {
this.abt(b, l, m, c);
}
else {
let o, p;
let q = this.abm(f, h, j, k, o, p);
o = q.p4;
p = q.p5;
this.abs(e, b, l, m, o, p, c);
}
}
abt(a, b, c, d) {
if (b == -1 || c == -1) {
return;
}
if (d == 7 || d == 6) {
a.add(((() => {
let $ret = new ChartSelection();
$ret.series = this;
return $ret;
})()));
return;
}
for (let e = b; e <= c; e++) {
this.abj(a, e, d);
}
}
abm(a, b, c, d, e, f) {
let g = new ScalerParams(0, a, this.dc.zd, b.dr, this.getEffectiveViewport());
let h = c ? (b.dr ? d.top : d.bottom) : (b.dr ? d.right : d.left);
let i = c ? (b.dr ? d.bottom : d.top) : (b.dr ? d.left : d.right);
e = b.gf(h, g);
f = b.gf(i, g);
return {
p4: e,
p5: f
};
}
abn(a, b, c, d, e, f) {
let g = new ScalerParams(0, a, this.dc.zd, b.dr, this.getEffectiveViewport());
let h = c ? (b.dr ? d.right : d.left) : (b.dr ? d.top : d.bottom);
let i = c ? (b.dr ? d.left : d.right) : (b.dr ? d.bottom : d.top);
let j = b.gf(h, g);
let k = b.gf(i, g);
let l = this.abo(b, j, k, e, f);
e = l.p3;
f = l.p4;
return {
p4: e,
p5: f
};
}
abo(a, b, c, d, e) {
let f = this.abq(a, b, c, d, e);
d = f.p3;
e = f.p4;
return {
p3: d,
p4: e
};
}
abq(a, b, c, d, e) {
let f = a.qe(this.cw.ca, this.cw.b9, this.getEffectiveViewport1(this.cw));
let g = a.getCategorySize(this.cw.ca, this.c