igniteui-react-charts
Version:
Ignite UI React charting components for building rich data visualizations using TypeScript APIs.
656 lines (655 loc) • 23.6 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 { Series } from "./Series";
import { DependencyProperty } from "igniteui-react-core";
import { CategoryItemHighlightType_$type } from "./CategoryItemHighlightType";
import { MarkerType_$type } from "./MarkerType";
import { Brush } from "igniteui-react-core";
import { DataTemplate } from "igniteui-react-core";
import { CategoryItemHighlightLayerFrame } from "./CategoryItemHighlightLayerFrame";
import { Base, enumGetBox, fromEnum, typeCast, Point_$type, markType, markDep, runOn } from "igniteui-react-core";
import { Dictionary$2 } from "igniteui-react-core";
import { ItemHighlightFrameRect } from "./ItemHighlightFrameRect";
import { List$1 } from "igniteui-react-core";
import { IHasCategoryModePreference_$type } from "./IHasCategoryModePreference";
import { Rect } from "igniteui-react-core";
import { MarkerSeries } from "./MarkerSeries";
import { DataContext } from "igniteui-react-core";
import { Pool$1 } from "igniteui-react-core";
import { Rectangle } from "igniteui-react-core";
import { ContentControl } from "igniteui-react-core";
import { PropertyMetadata } from "igniteui-react-core";
import { isNaN_, isInfinity, truncate } from "igniteui-react-core";
import { AnnotationLayerView } from "./AnnotationLayerView";
import { Marker } from "./Marker";
import { BrushUtil } from "igniteui-react-core";
import { Color } from "igniteui-react-core";
import { DataTemplatePassInfo } from "igniteui-react-core";
import { DataTemplateRenderInfo } from "igniteui-react-core";
import { DataTemplateMeasureInfo } from "igniteui-react-core";
/**
* @hidden
*/
export let CategoryItemHighlightLayer = /*@__PURE__*/ (() => {
class CategoryItemHighlightLayer extends AnnotationLayer {
bk() {
return new CategoryItemHighlightLayer();
}
get_et() {
return true;
}
constructor() {
super();
this.aag = false;
this.aaf = true;
this.aaj = 10;
let a = new CategoryItemHighlightLayerFrame();
let b = new CategoryItemHighlightLayerFrame();
let c = new CategoryItemHighlightLayerFrame();
this.xh = a;
this.xg = b;
this.xi = c;
this.ab = CategoryItemHighlightLayer.$;
}
ct() {
return new CategoryItemHighlightLayerView(this);
}
q3(a) {
super.q3(a);
this.aaa = a;
}
yw(a, b) {
if (this.aae == null || this.aae == a) {
if (!this.a1.c) {
this.ru(b);
}
}
}
xn(a) {
if (!super.xn(a)) {
return false;
}
if (this.aas != null) {
if (a.isFragment) {
let b = a.ne();
if (!Base.equalsStatic(this.aas, b)) {
return false;
}
}
else {
if (!Base.equalsStatic(this.aas, a.name)) {
return false;
}
}
}
let c = this.yr(a);
if (!c.c) {
return false;
}
return true;
}
yy(a, b) {
super.yy(a, b);
let c = a;
let d = this.aai;
c.g.clear();
if (isNaN_(this.z7.x) && isNaN_(this.z7.y)) {
return;
}
if (this.xn(this.aae)) {
this.aay(this.aae, c, d);
}
else {
for (let e of fromEnum(this.dc.series)) {
if (this.xn(e)) {
this.aay(e, c, d);
}
if (e.isStacked) {
e.p5((f) => {
if (this.xn(f)) {
this.aay(f, c, d);
}
if (f.ei) {
f.p3((g) => {
if (this.xn(g)) {
this.aay(g, c, d);
}
return true;
});
}
return true;
});
}
if (e.ei) {
e.p3((f) => {
if (this.xn(f)) {
this.aay(f, c, d);
}
return true;
});
}
}
}
}
rc(a, b, c, d) {
super.rc(a, b, c, d);
switch (b) {
case CategoryItemHighlightLayer.$$p[4]:
case CategoryItemHighlightLayer.$$p[5]:
case CategoryItemHighlightLayer.$$p[2]:
case CategoryItemHighlightLayer.$$p[3]:
this.ru(true);
break;
case CategoryItemHighlightLayer.$$p[7]:
case CategoryItemHighlightLayer.$$p[8]:
this.ru(true);
break;
case CategoryItemHighlightLayer.$$p[9]:
this.aag = d;
this.ru(true);
break;
case CategoryItemHighlightLayer.$$p[1]:
this.ru(true);
break;
case CategoryItemHighlightLayer.$$p[0]:
this.aaj = this.aak;
this.ru(true);
break;
case CategoryItemHighlightLayer.$$p[6]:
this.aaf = d;
this.ru(true);
break;
}
}
aay(a, b, c) {
if (this.cw == null || this.cw.ca.isEmpty || this.cw.b9.isEmpty) {
return;
}
if (!a.e0 && !a.e8) {
return;
}
let d = a;
if (d.categoryAxis == null) {
return;
}
let e = this.z7.x;
e = this.cw.b9.left + this.cw.b9.width * (e - this.cw.ca.left) / this.cw.ca.width;
let f = this.z7.y;
f = this.cw.b9.top + this.cw.b9.height * (f - this.cw.ca.top) / this.cw.ca.height;
let g = this.aah;
let h = true;
let i = typeCast(IHasCategoryModePreference_$type, a);
let j = 0;
if (i != null) {
j = i.preferredCategoryMode(d.categoryAxis);
if (j == 2) {
h = false;
}
}
let k = true;
if (!h || this.aab == 2) {
k = false;
}
if (this.aab == 1) {
k = true;
}
let l = this.yr(a);
if (!l.c) {
return;
}
if (k) {
let m = a.wh(l.d, this.aai, g);
if (j != 0 && !d.categoryAxis.cn) {
let n = m.x;
if (a.e8) {
n -= a.getOffsetValue();
n += a.getCategoryWidth() * 0.5;
m = { $type: Point_$type, x: n, y: m.y };
}
else if (a.e0) {
n -= a.getOffsetValue();
n += a.getCategoryWidth() * 0.5;
m = { $type: Point_$type, x: n, y: m.y };
}
}
if (!isNaN_(m.x) && !isNaN_(m.y)) {
m = this.wm(m);
}
this.aaw(m, b, a);
}
else {
let o = a.wh(l.d, this.aai, g);
let p;
let q = this.getEffectiveViewport1(this.cw);
if (a.isVertical) {
let r = o.y;
let s = d.categoryAxis;
let t = this.aaj;
if (j != 0) {
t = s.k8(this.cw.ca, this.cw.b9, q);
}
if (isNaN_(t) || isInfinity(t)) {
return;
}
p = new Rect(0, this.wx.left, r - t / 2, this.wx.width, t);
}
else {
let u = o.x;
let v = d.categoryAxis;
let w = this.aaj;
if (j != 0) {
w = v.k8(this.cw.ca, this.cw.b9, q);
}
if (isNaN_(w) || isInfinity(w)) {
return;
}
p = new Rect(0, u - w / 2, this.wx.top, w, this.wx.height);
}
p.intersect(this.cw.b9);
this.aax(p, b, a);
}
}
aaw(a, b, c) {
let d = new ItemHighlightFrameRect();
d.b = a.x;
d.e = a.y;
d.i = this.zt();
if (this.abc != null) {
d.i = this.abc;
}
d.j = this.zu();
if (this.abd != null) {
d.j = this.abd;
}
if (d.i == null) {
if (c.hasMarkers) {
d.i = this.aaa.c1(c.vq());
}
else {
d.i = this.aaa.c1(c.ve);
}
}
if (d.j == null) {
if (c.hasMarkers) {
d.j = this.aaa.c1(c.vr());
}
else {
d.j = this.aaa.c1(c.vi);
}
}
d.d = this.ig;
d.f = Base.getHashCodeStatic(c);
d.g = this.aac(c, a);
let e = (typeCast(MarkerSeries.$, c) !== null) ? c.x5 : null;
if (e == null || e == MarkerSeries.x8 || (this.aad != 2 && this.aad != 0)) {
let f = MarkerSeries.xg(c, 2);
if (this.aad != 2 && this.aad != 0) {
f = this.aad;
}
switch (f) {
case 3:
case 13:
e = this.dc.sl;
break;
case 4:
e = this.dc.su;
break;
case 5:
e = this.dc.sr;
break;
case 6:
e = this.dc.ss;
break;
case 7:
e = this.dc.sm;
break;
case 8:
e = this.dc.sp;
break;
case 9:
e = this.dc.sn;
break;
case 10:
e = this.dc.st;
break;
case 11:
e = this.dc.sq;
break;
case 12:
e = this.dc.so;
break;
}
}
d.h = this.aa1 != null ? this.aa1 : e;
if (!isNaN_(d.b) && !isNaN_(d.e)) {
b.g.addItem(d.f, d);
}
}
aac(a, b) {
let c = a.ko(b);
let d = a.is(b);
if (this.aai && d != Math.floor(d)) {
c = null;
}
return ((() => {
let $ret = new DataContext();
$ret.series = a;
$ret.item = c;
return $ret;
})());
}
aax(a, b, c) {
let d = new ItemHighlightFrameRect();
d.b = a.left;
d.e = a.top;
d.c = a.right;
d.a = a.bottom;
d.i = this.zt();
d.j = this.zu();
if (d.i == null) {
if (c != null) {
d.i = this.aaa.c2(c.ve);
}
}
if (d.j == null) {
if (c != null) {
d.j = this.aaa.c2(c.vi);
}
}
d.d = this.ig;
d.f = Base.getHashCodeStatic(c);
if (!a.isEmpty) {
b.g.addItem(d.f, d);
}
}
y1(a, b) {
super.y1(a, b);
let c = this.aaa.cp;
let d = this.aaa.co;
let e = 0;
let f = 0;
let g = a;
for (let h of fromEnum(g.g.values)) {
if (h.h != null) {
let i = d.item(f);
this.aaz(h, i);
f++;
}
else {
let j = c.item(e);
this.aa0(h, j);
e++;
}
}
c.count = e;
d.count = f;
}
aaz(a, b) {
if (isNaN_(a.b) || isNaN_(a.e) || isNaN_(a.d) || a.g == null) {
b._visibility = 1;
return;
}
let c = { $type: Point_$type, x: a.b, y: a.e };
let d = a.g;
d.itemBrush = a.i;
let e = d.series.wh(c, this.d4() || this.aag, this.aaf);
if (isNaN_(e.x) || isNaN_(e.y)) {
b._visibility = 1;
return;
}
this.aaa.cv(b, e.x, e.y);
b.ah = a.h;
b.content = a.g;
}
aa0(a, b) {
if (isNaN_(a.b) || isNaN_(a.e) || isNaN_(a.a) || isNaN_(a.c) || isNaN_(a.d)) {
b._visibility = 1;
return;
}
this.aaa.cw(b, a.b, a.e, a.c - a.b, a.a - a.e);
b._fill = a.i;
b._stroke = a.j;
b.ad = a.d;
if (this.v7 != null) {
b.ai = this.v7;
}
else {
b.ai = null;
}
b.aj = this.v8;
b.am = this.wa;
b.al = this.v9;
b.ak = this.v9;
b.ac = this.ji;
}
gb() {
return true;
}
}
CategoryItemHighlightLayer.$t = /*@__PURE__*/ markType(CategoryItemHighlightLayer, 'CategoryItemHighlightLayer', AnnotationLayer.$);
CategoryItemHighlightLayer.$$p = /*@__PURE__*/ markDep(DependencyProperty, PropertyMetadata, CategoryItemHighlightLayer, 'raisePropertyChanged', ['BandHighlightWidth:aak:aa2', [1, 10], 'HighlightType:aab:aa3', [CategoryItemHighlightType_$type, /*@__PURE__*/ enumGetBox(CategoryItemHighlightType_$type, 0)], 'MarkerBrush:abc:aa4', [Brush.$, null], 'MarkerOutline:abd:aa5', [Brush.$, null], 'MarkerTemplate:aa1:aa6', [DataTemplate.$, null], 'MarkerType:aad:aa7', [MarkerType_$type, /*@__PURE__*/ enumGetBox(MarkerType_$type, 2)], 'SkipUnknownValues:aah:aa8', [0, true], 'TargetSeriesName:aas:aa9', [2, null], 'TargetSeries:aae:aba', [Series.$, null], 'UseInterpolation:aai:abb', [0, false]]);
return CategoryItemHighlightLayer;
})();
/**
* @hidden
*/
export let CategoryItemHighlightLayerView = /*@__PURE__*/ (() => {
class CategoryItemHighlightLayerView extends AnnotationLayerView {
constructor(a) {
super(a);
this.cn = null;
this.cp = null;
this.co = null;
this.cq = null;
this.cr = null;
this.cn = a;
this.cq = new List$1(ContentControl.$, 0);
this.cr = new List$1(Rectangle.$, 0);
}
a4() {
super.a4();
this.cp = ((() => {
let $ret = new Pool$1(Rectangle.$);
$ret.create = runOn(this, this.c3);
$ret.activate = runOn(this, this.cx);
$ret.disactivate = runOn(this, this.cz);
$ret.destroy = runOn(this, this.cy);
return $ret;
})());
this.co = ((() => {
let $ret = new Pool$1(ContentControl.$);
$ret.create = runOn(this, this.c0);
$ret.activate = runOn(this, this.cs);
$ret.disactivate = runOn(this, this.cu);
$ret.destroy = runOn(this, this.ct);
return $ret;
})());
}
c3() {
let a = new Rectangle();
a.ab = false;
this.cr.add(a);
return a;
}
cx(a) {
a._visibility = 0;
}
cz(a) {
a._visibility = 1;
}
cy(a) {
this.cr.remove(a);
}
c0() {
let a = new Marker();
this.cq.add(a);
return a;
}
cs(a) {
a._visibility = 0;
}
cu(a) {
a._visibility = 1;
}
ct(a) {
this.cq.remove(a);
}
c1(a) {
if (a == null) {
return a;
}
return BrushUtil.o(a, 0.3);
}
c2(a) {
if (a != null) {
let b = BrushUtil.o(a, 0.3);
if (b.isGradient) {
let c = b;
if (c.gradientStops != null) {
for (let d = 0; d < c.gradientStops.length; d++) {
let e = c.gradientStops[d];
e.color = Color.u(truncate(Math.round((e.color.l) * 0.3)), e.color.o, e.color.n, e.color.m);
e.color = e.color;
}
}
}
else {
b.color = Color.u(truncate(Math.round((b.color.l & 255) * 0.3)), b.color.o, b.color.n, b.color.m);
b.color = b.color;
}
return b;
}
else {
return null;
}
}
cw(a, b, c, d, e) {
a._visibility = 0;
a.n = b;
a.o = c;
a.width = d;
a.height = e;
}
cv(a, b, c) {
a.n = b;
a.o = c;
}
bv(a, b) {
super.bv(a, b);
let c = a;
let d = c.content;
if (d != null) {
if (d.itemBrush != null) {
d.actualItemBrush = d.itemBrush;
}
let e = d.series;
if (e.hasMarkers) {
d.outline = e.vr();
}
d.thickness = e.ip();
}
}
bj(a, b) {
super.bj(a, b);
if (a.d && !b) {
for (let c = 0; c < this.cr.count; c++) {
let d = this.cr._inner[c];
if (d._visibility == 0) {
a.w(d);
}
}
if (this.cq.count > 0) {
let e = new DataTemplatePassInfo();
e.isHitTestRender = b;
e.context = a.h();
e.viewportTop = this.b9.top;
e.viewportLeft = this.b9.left;
e.viewportWidth = this.b9.width;
e.viewportHeight = this.b9.height;
e.passID = "ItemMarkers";
let f = new DataTemplateRenderInfo();
f.isHitTestRender = b;
f.passInfo = e;
let g = new DataTemplateMeasureInfo();
g.passInfo = e;
let h = false;
let i = a.h();
g.context = i;
f.context = i;
g.renderContext = a;
f.renderContext = a;
let j = 0;
let k = 0;
let l = new Dictionary$2(DataTemplate.$, DataTemplate.$, 0);
for (let m = 0; m < this.cq.count; m++) {
let n = this.cq._inner[m];
if (n == null || n.ah == null) {
continue;
}
let o = n.ah;
if (!l.containsKey(o)) {
l.addItem(o, o);
if (o != null && o.passStarting != null) {
o.passStarting(e);
}
}
if (n._visibility == 1) {
continue;
}
this.bu(n, m, b);
if (!h) {
g.data = n.content;
g.width = n.width;
g.height = n.height;
if (o.measure != null) {
g.data = n.content;
o.measure(g);
h = g.isConstant;
if (h) {
j = g.width;
k = g.height;
}
}
f.availableWidth = g.width;
f.availableHeight = g.height;
}
else {
f.availableWidth = j;
f.availableHeight = k;
}
if (!isNaN_(n.width) && !isInfinity(n.width)) {
f.availableWidth = n.width;
}
if (!isNaN_(n.height) && !isInfinity(n.height)) {
f.availableHeight = n.height;
}
a.q(f, n);
n.m = f.availableWidth;
n.l = f.availableHeight;
}
for (let p of fromEnum(l.keys)) {
if (p != null && p.passCompleted != null) {
p.passCompleted(e);
}
}
}
}
}
ax(a) {
super.ax(a);
for (let b = 0; b < this.cr.count; b++) {
this.f.bc.exportRectangleData(a, this.cr._inner[b], "catItemRect", ["Main", "CategoryItem"]);
}
for (let c = 0; c < this.cq.count; c++) {
this.f.bc.exportMarkerVisualDataFromMarker(this.f, a, this.cq._inner[c]);
}
}
}
CategoryItemHighlightLayerView.$t = /*@__PURE__*/ markType(CategoryItemHighlightLayerView, 'CategoryItemHighlightLayerView', AnnotationLayerView.$);
return CategoryItemHighlightLayerView;
})();