igniteui-react-charts
Version:
Ignite UI React charting components for building rich data visualizations using TypeScript APIs.
794 lines (793 loc) • 27.3 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 { __extends } from "tslib";
import { CategoryBucketCalculator } from "./CategoryBucketCalculator";
import { markType, runOn, delegateCombine, typeCast, markDep, Point_$type } from "igniteui-react-core";
import { isNaN_, truncate, isInfinity } from "igniteui-react-core";
import { CategorySeries } from "./CategorySeries";
import { IIsCategoryBased_$type } from "./IIsCategoryBased";
import { IHasHighLowValueCategory_$type } from "./IHasHighLowValueCategory";
import { RangeCategoryFramePreparer } from "./RangeCategoryFramePreparer";
import { DependencyProperty } from "igniteui-react-core";
import { Series } from "./Series";
import { CategoryAxisBase } from "./CategoryAxisBase";
import { ICategoryScaler_$type } from "./ICategoryScaler";
import { IScaler_$type } from "./IScaler";
import { CategorySeriesView } from "./CategorySeriesView";
import { CategoryFrame } from "./CategoryFrame";
import { SeriesLayerPropertyOverlay } from "./SeriesLayerPropertyOverlay";
import { CategoryMarkerManager } from "./CategoryMarkerManager";
import { AxisRange } from "./AxisRange";
import { Rect } from "igniteui-react-core";
import { ScalerParams } from "./ScalerParams";
import { ISortingAxis_$type } from "./ISortingAxis";
import { IFastItemsSource_$type } from "igniteui-react-core";
import { CollisionAvoider } from "./CollisionAvoider";
import { ISupportsMarkers_$type } from "./ISupportsMarkers";
import { ChartSelection } from "./ChartSelection";
import { PropertyMetadata } from "igniteui-react-core";
import { FastFlattener } from "igniteui-react-core";
/**
* @hidden
*/
var RangeCategoryBucketCalculator = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(RangeCategoryBucketCalculator, _super);
function RangeCategoryBucketCalculator(a) {
var _this = _super.call(this, a) || this;
_this.j = null;
_this.l = 0;
_this.k = 0;
_this.i = null;
_this.h = null;
_this.j = a;
return _this;
}
RangeCategoryBucketCalculator.prototype.getBucketWithoutUnknowns = function (a) {
var b = false;
var c = this.i;
var d = this.h;
var e = this.l;
var f = this.k;
var g = Math.min(e, f);
var h = a * this.d;
var i = Math.min(h + this.d - 1, g - 1);
var j = 1.7976931348623157E+308;
var k = -1.7976931348623157E+308;
var l = true;
var m = 0;
var n = 0;
var o;
var p;
if (h <= i) {
for (var q = h; q <= i; ++q) {
m = c[q];
n = d[q];
if (m < n) {
o = m;
p = n;
}
else {
p = m;
o = n;
}
if (!l) {
j = j < o ? j : o;
k = k > o ? k : o;
j = j < p ? j : p;
k = k > p ? k : p;
}
else {
j = Math.min(j, o);
k = Math.max(k, o);
k = Math.max(k, p);
j = Math.min(j, p);
l = false;
}
}
}
if (b && n < m) {
var r = j;
j = k;
k = r;
}
if (!l) {
var s = new Array(3);
s[0] = 0.5 * (h + i);
s[1] = j;
s[2] = k;
return s;
}
var t = new Array(3);
t[0] = NaN;
t[1] = NaN;
t[2] = NaN;
return t;
};
RangeCategoryBucketCalculator.prototype.getBucket = function (a) {
var b = false;
var c = this.i;
var d = this.h;
var e = this.l;
var f = this.k;
var g = Math.min(e, f);
var h = a * this.d;
var i = Math.min(h + this.d - 1, g - 1);
var j = NaN;
var k = NaN;
var l = true;
var m = 0;
var n = 0;
var o;
var p;
if (h <= i) {
for (var q = h; q <= i; ++q) {
m = c[q];
n = d[q];
if (m < n) {
o = m;
p = n;
}
else {
p = m;
o = n;
}
if (!l) {
if (!isNaN_(o)) {
j = j < o ? j : o;
k = k > o ? k : o;
}
if (!isNaN_(p)) {
j = j < p ? j : p;
k = k > p ? k : p;
}
}
else {
if (!isNaN_(o)) {
if (isNaN_(j)) {
j = o;
}
else {
j = Math.min(j, o);
}
if (!isNaN_(k)) {
k = Math.max(k, o);
}
}
if (!isNaN_(p)) {
if (isNaN_(k)) {
k = p;
}
else {
k = Math.max(k, p);
}
if (!isNaN_(j)) {
j = Math.min(j, p);
}
}
if (!isNaN_(j) && !isNaN_(k)) {
l = false;
}
}
}
}
if (n < m && b) {
var r = j;
j = k;
k = r;
}
if (!l) {
var s = new Array(3);
s[0] = 0.5 * (h + i);
s[1] = j;
s[2] = k;
return s;
}
var t = new Array(3);
t[0] = NaN;
t[1] = NaN;
t[2] = NaN;
return t;
};
RangeCategoryBucketCalculator.prototype.cacheValues = function () {
this.l = this.j.di.lowColumn.count;
this.k = this.j.di.highColumn.count;
this.i = this.j.di.lowColumn.asArray();
this.h = this.j.di.highColumn.asArray();
};
RangeCategoryBucketCalculator.prototype.unCacheValues = function () {
this.i = null;
this.h = null;
};
RangeCategoryBucketCalculator.$t = markType(RangeCategoryBucketCalculator, 'RangeCategoryBucketCalculator', CategoryBucketCalculator.$);
return RangeCategoryBucketCalculator;
}(CategoryBucketCalculator));
export { RangeCategoryBucketCalculator };
/**
* @hidden
*/
var RangeCategorySeries = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(RangeCategorySeries, _super);
function RangeCategorySeries() {
var _this = _super.call(this) || this;
_this._RangeFramePreparer = null;
_this.aa9 = null;
_this.aa8 = null;
_this.aa5 = null;
_this.RangeFramePreparer = new RangeCategoryFramePreparer(1, _this, _this.aa7, _this, _this, _this.aa7.c9);
return _this;
}
RangeCategorySeries.prototype.ct = function () {
return new RangeCategorySeriesView(this);
};
RangeCategorySeries.prototype.getHostReferenceValue = function () {
return this.i0();
};
RangeCategorySeries.prototype.q8 = function (a) {
_super.prototype.q8.call(this, a);
this.aa7 = a;
};
Object.defineProperty(RangeCategorySeries.prototype, "RangeFramePreparer", {
get: function () {
return this._RangeFramePreparer;
},
set: function (a) {
this._RangeFramePreparer = a;
},
enumerable: false,
configurable: true
});
RangeCategorySeries.prototype.gc = function () {
return this.highlightedItemsSource != null || (this.abf != null && this.abd != null);
};
RangeCategorySeries.prototype.hu = function () {
var a = _super.prototype.hu.call(this);
{
var b = ((function () {
var $ret = new SeriesLayerPropertyOverlay();
$ret.ad = "HighMemberPath";
$ret.p = true;
$ret.y = "HighlightedHighMemberPath";
$ret.q = true;
return $ret;
})());
b.valueResolving = delegateCombine(b.valueResolving, runOn(this, this.abm));
a.add(b);
}
{
var c = ((function () {
var $ret = new SeriesLayerPropertyOverlay();
$ret.ad = "LowMemberPath";
$ret.p = true;
$ret.y = "HighlightedLowMemberPath";
$ret.q = true;
return $ret;
})());
c.valueResolving = delegateCombine(c.valueResolving, runOn(this, this.abn));
a.add(c);
}
return a;
};
RangeCategorySeries.prototype.abn = function (a, b) {
if (this.abf != null) {
b.value = this.abf;
return;
}
b.value = this.abk;
};
RangeCategorySeries.prototype.abm = function (a, b) {
if (this.abd != null) {
b.value = this.abd;
return;
}
b.value = this.abh;
};
RangeCategorySeries.prototype.ku = function (a, b) {
var c = this.ni(b);
if (c == RangeCategorySeries.$$p[0]) {
return this.kv(a, b, this.abh);
}
if (c == RangeCategorySeries.$$p[3]) {
return this.kv(a, b, this.abk);
}
if (c == RangeCategorySeries.$$p[2]) {
return this.kv(a, b, this.abf);
}
if (c == RangeCategorySeries.$$p[1]) {
return this.kv(a, b, this.abd);
}
return _super.prototype.ku.call(this, a, b);
};
RangeCategorySeries.prototype.mi = function (a) {
var b = this.ni(a);
if (b == RangeCategorySeries.$$p[0]) {
return this.abh;
}
if (b == RangeCategorySeries.$$p[3]) {
return this.abk;
}
if (b == RangeCategorySeries.$$p[2]) {
return this.abf;
}
if (b == RangeCategorySeries.$$p[1]) {
return this.abd;
}
return _super.prototype.mi.call(this, a);
};
Object.defineProperty(RangeCategorySeries.prototype, "lowColumn", {
get: function () {
return this.aa9;
},
set: function (a) {
if (this.aa9 != a) {
var b = this.aa9;
this.aa9 = a;
this.raisePropertyChanged("LowColumn", b, this.aa9);
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(RangeCategorySeries.prototype, "highColumn", {
get: function () {
return this.aa8;
},
set: function (a) {
if (this.aa8 != a) {
var b = this.aa8;
this.aa8 = a;
this.raisePropertyChanged("HighColumn", b, this.aa8);
}
},
enumerable: false,
configurable: true
});
RangeCategorySeries.prototype.zf = function () {
return 11;
};
RangeCategorySeries.prototype.aay = function (a, b) {
_super.prototype.aay.call(this, a, b);
b.ck = true;
CategoryMarkerManager.e(this, a.p, b.dc, this.xt);
this.aak(b, a);
};
RangeCategorySeries.prototype.abo = function (a, b, c, d, e, f) {
this.aa7.dj(a, b, c, d, e, f);
};
RangeCategorySeries.prototype.az = function (a) {
if (a.isEmpty && this.dc != null) {
a = this.dc.xn;
}
var b = this.y3();
if (this.lowColumn == null || this.highColumn == null) {
return null;
}
var c = this.wu(this.cw);
var d = new ScalerParams(0, a, this.dc.x5, b.df, this.getEffectiveViewport());
var e = (b.fw(c.left, d));
var f = (b.fw(c.right, d));
if (b.df) {
var g = e;
e = f;
f = g;
}
var h = null;
if (b.dm) {
h = b;
e = h.i$f(e);
f = h.i$f(f);
}
else {
e = Math.floor(e);
f = Math.ceil(f);
}
e = Math.max(0, Math.min(this.lowColumn.count - 1, e));
f = Math.max(0, Math.min(this.lowColumn.count - 1, f));
var i = 1.7976931348623157E+308;
var j = -1.7976931348623157E+308;
for (var k = truncate(e); k <= truncate(f); k++) {
var l = k;
if (h != null) {
l = h.i$b._inner[k];
}
var m = this.lowColumn.item(l);
if (this.lowColumn.mayContainUnknowns) {
if (isInfinity(m) || isNaN_(m)) {
continue;
}
}
var n = this.highColumn.item(l);
if (this.highColumn.mayContainUnknowns) {
if (isInfinity(n) || isNaN_(n)) {
continue;
}
}
i = Math.min(i, m);
j = Math.max(j, n);
}
var o = new AxisRange(i, j);
var p = this.zk();
o = this.ax(o, p, a);
return o;
};
RangeCategorySeries.prototype.ge = function (a) {
var b = new Rect(0, 0, 0, 1, 1);
var c = this.cw != null ? this.cw.ca : Rect.empty;
c = c.copy();
var d = this.cw != null ? this.cw.b9 : Rect.empty;
var e = !c.isEmpty && !d.isEmpty && this.dp != null ? this.dp.indexOf(a) : -1;
var f = this.fetchXAxis();
var g = this.fetchYAxis();
var h = this.ww(this.cw);
var i;
if (f != null) {
var j = new ScalerParams(0, b, b, f.df, h);
i = f.ft(e, j);
}
else {
i = NaN;
}
var k = f != null ? this.RangeFramePreparer.r(typeCast(ICategoryScaler_$type, f), b, b, h) : 0;
i += k;
if (e >= 0 && Rect.l_op_Inequality(c, null) && Rect.l_op_Inequality(d, null)) {
if (!isNaN_(i)) {
if (i < c.left + 0.1 * c.width) {
i = i + 0.4 * c.width;
}
if (i > c.right - 0.1 * c.width) {
i = i - 0.4 * c.width;
}
c.x = i - 0.5 * c.width;
}
if (g != null && this.highColumn != null && e < this.highColumn.count) {
var l = new ScalerParams(0, b, b, g.df, h);
l.b = this.i0();
var m = g.ft(this.highColumn.item(e), l);
var n = g.ft(this.lowColumn.item(e), l);
if (!isNaN_(m) && !isNaN_(n)) {
var o = Math.abs(n - m);
if (c.height < o) {
c.height = o;
c.y = Math.min(n, m);
}
else {
if (n < c.top + 0.1 * c.height) {
n = n + 0.4 * c.height;
}
if (n > c.bottom - 0.1 * c.height) {
n = n - 0.4 * c.height;
}
c.y = n - 0.5 * c.height;
}
}
}
if (this.c4 != null) {
this.c4.au(this.dc, c, true);
}
}
return e >= 0;
};
RangeCategorySeries.prototype.rh = function (a, b, c, d) {
_super.prototype.rh.call(this, a, b, c, d);
switch (b) {
case "FastItemsSource":
if (typeCast(IFastItemsSource_$type, c) != null) {
c.deregisterColumn(this.lowColumn);
c.deregisterColumn(this.highColumn);
this.lowColumn = null;
this.highColumn = null;
}
if (typeCast(IFastItemsSource_$type, d) != null) {
this.lowColumn = this.dl(this.abk);
this.highColumn = this.dl(this.abh);
}
if (!this.z0()) {
this.ze.c9.g(this.ie);
this.rz(this.gh && c != null);
}
break;
case RangeCategorySeries.$$p[3]:
if (this.dp != null) {
this.dp.deregisterColumn(this.lowColumn);
this.lowColumn = this.dl(this.abk);
}
break;
case "LowColumn":
if (!this.z0()) {
this.ze.c9.g(this.ie);
this.rz(this.gh && this.d9);
}
break;
case RangeCategorySeries.$$p[0]:
if (this.dp != null) {
this.dp.deregisterColumn(this.highColumn);
this.highColumn = this.dl(this.abh);
}
break;
case "HighColumn":
if (!this.z0()) {
this.ze.c9.g(this.ie);
this.rz(this.gh && this.d9);
}
break;
}
};
RangeCategorySeries.prototype.ay = function (a) {
if (this.lowColumn == null || this.lowColumn.count == 0 || this.highColumn == null || this.highColumn.count == 0) {
return null;
}
if (a == this.fetchXAxis()) {
var b = Math.min(this.lowColumn.count, this.highColumn.count);
return new AxisRange(0, b - 1);
}
if (a == this.fetchYAxis()) {
var c = Math.min(this.lowColumn.minimum, this.highColumn.minimum);
var d = Math.max(this.lowColumn.maximum, this.highColumn.maximum);
return new AxisRange(Math.min(c, d), Math.max(c, d));
}
return null;
};
RangeCategorySeries.prototype.ph = function (a, b, c, d) {
if (this.fetchXAxis() != null && typeCast(ISortingAxis_$type, this.fetchXAxis()) !== null) {
this.fetchXAxis().i$i();
}
var e = this.fetchXAxis();
switch (a) {
case 3:
if (d == this.abk || d == this.abh) {
if (e != null) {
e.d2();
}
if (!this.z0()) {
this.rz(true);
}
}
break;
case 1:
if (e != null) {
e.d2();
}
this.ze.c9.g(this.ie);
if (!this.z0()) {
this.rz(true);
}
break;
case 0:
if (e != null) {
e.d2();
}
this.ze.c9.g(this.ie);
if (!this.z0()) {
this.rz(true);
}
break;
case 2:
if (e != null) {
e.d2();
}
if (this.abk != null && this.abh != null && this.ze.c9.d > 0 && !this.z0()) {
this.rz(true);
}
break;
case 4:
if (e != null) {
e.d2();
}
this.ze.c9.g(this.ie);
if (!this.z0()) {
this.rz(true);
}
break;
}
};
RangeCategorySeries.prototype.hf = function (a, b, c) {
var d = _super.prototype.hf.call(this, a, b, c);
if (this.lowColumn == null || this.lowColumn.count == 0 || this.highColumn == null || this.highColumn.count == 0) {
d = false;
}
return d;
};
RangeCategorySeries.prototype.aav = function (a, b) {
_super.prototype.aav.call(this, a, b);
this.RangeFramePreparer.d(a, b);
};
Object.defineProperty(RangeCategorySeries.prototype, "currentCategoryMode", {
get: function () {
return this.preferredCategoryMode(typeCast(CategoryAxisBase.$, this.fetchXAxis()));
},
enumerable: false,
configurable: true
});
Object.defineProperty(RangeCategorySeries.prototype, "scaler", {
get: function () {
return typeCast(ICategoryScaler_$type, this.fetchXAxis());
},
enumerable: false,
configurable: true
});
Object.defineProperty(RangeCategorySeries.prototype, "yScaler", {
get: function () {
return typeCast(IScaler_$type, this.fetchYAxis());
},
enumerable: false,
configurable: true
});
Object.defineProperty(RangeCategorySeries.prototype, "bucketizer", {
get: function () {
return this.ze.c9;
},
enumerable: false,
configurable: true
});
Object.defineProperty(RangeCategorySeries.prototype, "currentMode2Index", {
get: function () {
return this.z9();
},
enumerable: false,
configurable: true
});
RangeCategorySeries.prototype.provideCollisionDetector = function () {
return new CollisionAvoider();
};
Object.defineProperty(RangeCategorySeries.prototype, "mayContainUnknowns", {
get: function () {
return this.lowColumn == null || this.lowColumn.mayContainUnknowns || this.highColumn == null || this.highColumn.mayContainUnknowns;
},
enumerable: false,
configurable: true
});
RangeCategorySeries.prototype.r1 = function (a, b) {
var c = this.g1;
_super.prototype.r1.call(this, a, b);
if (!c) {
this.cw.be(b);
return;
}
this.cw.be(b);
if (this.d7(this.cv)) {
return;
}
var d = new RangeCategoryFramePreparer(1, this, typeCast(ISupportsMarkers_$type, this.cv), this.dc.dp.o, this, this.cv.c9);
if (!this.gt) {
this.y8 = new CategoryFrame(3);
this.y8.x();
d.d(this.y8, this.cv);
}
this.gt = false;
this.aay(this.y8, this.cv);
this.g1 = false;
};
RangeCategorySeries.prototype.ry = function (a, b, c, d, e) {
_super.prototype.ry.call(this, a, b, c, d, e);
var f = this.ba.a$j.item(d);
var g = f;
g.c9.g(this.ie);
f.bd(c);
if (this.d7(g)) {
return;
}
var h = new RangeCategoryFramePreparer(1, this, typeCast(ISupportsMarkers_$type, f), f, this, f.c9);
if (this.aa5 == null) {
this.aa5 = new CategoryFrame(3);
}
this.aa5.x();
h.d(this.aa5, g);
this.aay(this.aa5, g);
};
RangeCategorySeries.prototype.i0 = function () {
return Series.i1(this.lowColumn, typeCast(ISortingAxis_$type, this.fetchXAxis()));
};
RangeCategorySeries.prototype.aar = function (a, b, c, d, e, f, g) {
var _this = this;
if (c == -1 || d == -1) {
return;
}
for (var h = c; h <= d; h++) {
var i = this.lowColumn.item(h);
var j = this.highColumn.item(h);
var k = Math.min(i, j);
var l = Math.max(i, j);
if (k < f && e < l) {
if (g == 7 || g == 6) {
b.add(((function () {
var $ret = new ChartSelection();
$ret.series = _this;
return $ret;
})()));
return;
}
this.aai(b, h, g);
}
}
};
RangeCategorySeries.prototype.aai = function (a, b, c) {
var _this = this;
if (c == 2 || c == 1) {
a.add(((function () {
var $ret = new ChartSelection();
$ret.item = _this.dp.item(b);
return $ret;
})()));
}
else {
a.add(((function () {
var $ret = new ChartSelection();
$ret.item = _this.dp.item(b);
$ret.series = _this;
return $ret;
})()));
}
};
Object.defineProperty(RangeCategorySeries.prototype, "useHighMarkerFidelity", {
get: function () {
return this.z1;
},
enumerable: false,
configurable: true
});
RangeCategorySeries.$t = markType(RangeCategorySeries, 'RangeCategorySeries', CategorySeries.$, [IIsCategoryBased_$type, IHasHighLowValueCategory_$type]);
RangeCategorySeries.$$p = markDep(DependencyProperty, PropertyMetadata, RangeCategorySeries, 'raisePropertyChanged', ['HighMemberPath:abh:abr', [2, null], 'HighlightedHighMemberPath:abd:abp', [2, null], 'HighlightedLowMemberPath:abf:abq', [2, null], 'LowMemberPath:abk:abs', [2, null]]);
return RangeCategorySeries;
}(CategorySeries));
export { RangeCategorySeries };
/**
* @hidden
*/
var RangeCategorySeriesView = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(RangeCategorySeriesView, _super);
function RangeCategorySeriesView(a) {
var _this = _super.call(this, a) || this;
_this.di = null;
_this.di = a;
return _this;
}
RangeCategorySeriesView.prototype.dj = function (a, b, c, d, e, f) {
a.an.clear();
b.an.clear();
c.an.clear();
var g = FastFlattener.b(d, e, true, f, this.f.ie);
var h = FastFlattener.b(d, e, false, f, this.f.ie);
var i = g.count;
var j = h.count;
var k;
var l;
var m;
var n;
for (var o = 0; o < i; o++) {
k = g.item(o);
l = e._inner[k];
m = l[0];
n = l[1];
a.an.add({ $type: Point_$type, x: m, y: n });
b.an.add({ $type: Point_$type, x: m, y: n });
}
var p;
var q;
for (var r = 0; r < j; r++) {
k = h.item(r);
l = e._inner[k];
if (f) {
p = l[0];
q = l[2];
}
else {
p = l[2];
q = l[3];
}
c.an.add({ $type: Point_$type, x: p, y: q });
b.an.add({ $type: Point_$type, x: p, y: q });
}
a.ab = a.an.count > 0;
b.ab = b.an.count > 0;
c.ab = c.an.count > 0;
};
RangeCategorySeriesView.prototype.da = function () {
return new RangeCategoryBucketCalculator(this);
};
RangeCategorySeriesView.$t = markType(RangeCategorySeriesView, 'RangeCategorySeriesView', CategorySeriesView.$);
return RangeCategorySeriesView;
}(CategorySeriesView));
export { RangeCategorySeriesView };