igniteui-angular-charts
Version:
Ignite UI Angular charting components for building rich data visualizations for modern web apps.
5,114 lines • 162 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 { HighlightingManager } from "igniteui-angular-core";
import { Base, markType, runOn, delegateCombine, delegateRemove, fromEnum, String_$type, INotifyPropertyChanged_$type, PropertyChangedEventArgs, EventArgs, fromEn, EnumUtil, enumGetBox, typeGetValue, Point_$type } from "igniteui-angular-core";
import { TreemapHighlightingMode_$type } from "./TreemapHighlightingMode";
import { RenderingContext } from "igniteui-angular-core";
import { FontInfo } from "igniteui-angular-core";
import { FontDefaults } from "igniteui-angular-core";
import { DeviceUtils } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { Rect } from "igniteui-angular-core";
import { CanvasViewRenderer } from "igniteui-angular-core";
import { CanvasGestureDOMEventProxy } from "igniteui-angular-core";
import { TreemapVisualData } from "./TreemapVisualData";
import { List$1 } from "igniteui-angular-core";
import { TreemapVisual } from "./TreemapVisual";
import { Pool$1 } from "igniteui-angular-core";
import { FontUtil } from "igniteui-angular-core";
import { BrushUtil } from "igniteui-angular-core";
import { DOMExecutionContext } from "igniteui-angular-core";
import { CanvasScalingHelpers } from "igniteui-angular-core";
import { truncate, isNaN_, logBase } from "igniteui-angular-core";
import { Rectangle } from "igniteui-angular-core";
import { TextBlock } from "igniteui-angular-core";
import { HorizontalAlignment_$type } from "igniteui-angular-core";
import { VerticalAlignment_$type } from "igniteui-angular-core";
import { Thickness } from "igniteui-angular-core";
import { TreemapNodeVisualData } from "./TreemapNodeVisualData";
import { TreemapLabelVisualData } from "./TreemapLabelVisualData";
import { RectangleVisualData } from "igniteui-angular-core";
import { AppearanceHelper } from "igniteui-angular-core";
import { PointData } from "igniteui-angular-core";
import { SizeData } from "igniteui-angular-core";
import { HashSet$1 } from "igniteui-angular-core";
import { TreemapOrientation_$type } from "./TreemapOrientation";
import { Size } from "igniteui-angular-core";
import { AreaInfo } from "./AreaInfo";
import { Dictionary$2 } from "igniteui-angular-core";
import { DoubleAnimator } from "igniteui-angular-core";
import { TreemapHighlightedValueDisplayMode_$type } from "./TreemapHighlightedValueDisplayMode";
import { BrushCollection } from "igniteui-angular-core";
import { TreemapFillScaleMode_$type } from "./TreemapFillScaleMode";
import { TreemapLabelVerticalFitMode_$type } from "./TreemapLabelVerticalFitMode";
import { TreemapLabelHorizontalFitMode_$type } from "./TreemapLabelHorizontalFitMode";
import { TreemapHeaderDisplayMode_$type } from "./TreemapHeaderDisplayMode";
import { TreemapLayoutType_$type } from "./TreemapLayoutType";
import { FastItemsSource } from "igniteui-angular-core";
import { HighlightingInfo } from "igniteui-angular-core";
import { EasingFunctions } from "igniteui-angular-core";
import { NotifyCollectionChangedEventArgs } from "igniteui-angular-core";
import { ObservableCollection$1 } from "igniteui-angular-core";
import { RectData } from "igniteui-angular-core";
import { TreemapNodeVisualDataList } from "./TreemapNodeVisualDataList";
import { BrushCollectionUtil } from "igniteui-angular-core";
import { TreemapValueMappingMode_$type } from "./TreemapValueMappingMode";
import { TreemapNodePointerEventArgs } from "./TreemapNodePointerEventArgs";
import { TreemapNodeStyleMappingTargetType_$type } from "./TreemapNodeStyleMappingTargetType";
import { stringIsNullOrEmpty, stringReplace } from "igniteui-angular-core";
/**
* @hidden
*/
export let TreemapHighlightingManager = /*@__PURE__*/ (() => {
class TreemapHighlightingManager extends HighlightingManager {
isCrossContextHighlight(a) {
let b = a;
return b.au == 3;
}
}
TreemapHighlightingManager.$t = markType(TreemapHighlightingManager, 'TreemapHighlightingManager', HighlightingManager.$);
return TreemapHighlightingManager;
})();
/**
* @hidden
*/
export let TreemapView = /*@__PURE__*/ (() => {
class TreemapView extends Base {
constructor() {
super();
this.b = null;
this.a = null;
this.p = false;
this.af = null;
this.m = null;
this.ad = null;
this.t = 0;
this.s = 0;
this.g = null;
this.ae = null;
this.w = 1;
this.ac = null;
this.c = null;
this.u = 0;
this.v = 0;
this.a4 = null;
this.i = ((() => {
let $ret = new FontInfo();
$ret.q = FontDefaults.treemapFontFamily;
$ret.f = DeviceUtils.f(FontDefaults.treemapFontSize);
return $ret;
})());
this.h = ((() => {
let $ret = new FontInfo();
$ret.q = FontDefaults.treemapFontFamily;
$ret.f = DeviceUtils.f(FontDefaults.treemapFontSize);
return $ret;
})());
this.r = null;
this.n = null;
this.a5 = ((() => {
let $ret = new Brush();
$ret.fill = "rgba(0,0,0, 0.0)";
return $ret;
})());
this.f = ((() => {
let $ret = new FontInfo();
$ret.q = FontDefaults.treemapFontFamily;
$ret.f = DeviceUtils.f(FontDefaults.treemapFontSize);
return $ret;
})());
this.e = ((() => {
let $ret = new FontInfo();
$ret.q = FontDefaults.treemapHeaderFontFamily;
$ret.f = DeviceUtils.f(FontDefaults.treemapHeaderFontSize);
return $ret;
})());
this.o = true;
this.b = new TreemapViewRenderer();
this.b.j = ((() => {
let $ret = new Brush();
$ret.fill = "white";
return $ret;
})());
}
ax() {
}
a1() {
this.a0();
}
a2() {
if (!this.p) {
this.p = true;
if (this.ad != null) {
this.ad.setTimeout(runOn(this, this.ag), 0);
}
else {
window.setTimeout(runOn(this, this.ag), 0);
}
}
}
ag() {
if (this.p) {
this.p = false;
this.a.i1();
}
}
q() {
return true;
}
ay() {
this.w = this.a.dg;
this.a2();
}
au(a) {
if (a == null) {
this.af = null;
this.ad = null;
this.m = null;
if (this.ac != null) {
window.removeEventListener("resize", this.ac, false);
this.ac = null;
}
this.ah();
return;
}
this.ad = a;
this.ae = a;
let b = this.ae.rootWrapper.width();
let c = this.ae.rootWrapper.height();
this.ar();
this.w = (isNaN_(this.a.ee) ? this.a.dg : this.a.ee);
let d = this.w;
let e = Math.round(a.rootWrapper.width());
let f = Math.round(a.rootWrapper.height());
let g = e * d;
let h = f * d;
this.ad.rootWrapper.setStyleProperty("position", "relative");
let i = a.createElement("canvas");
i.setStyleProperty("position", "absolute");
this.ad.rootWrapper.append(i);
this.t = b;
this.s = c;
i.setAttribute("width", g.toString());
i.setAttribute("height", h.toString());
i.setStyleProperty("width", e.toString() + "px");
i.setStyleProperty("height", f.toString() + "px");
this.n = i.listen("contextmenu", (j) => j.preventDefault());
this.a.kb = new Rect(0, 0, 0, e, f);
this.af = i;
let j = this.ad.get2DCanvasContext(this.af);
this.m = new RenderingContext(new CanvasViewRenderer(), j);
this.aq();
this.a3();
this.m.af(this.g);
this.a0();
this.c = new CanvasGestureDOMEventProxy(this.af, this.ad, true);
this.c.ap = (k) => true;
this.c.bm = this.a.kb;
let k = this.c;
k.onMouseOver = delegateCombine(k.onMouseOver, runOn(this, this.am));
let l = this.c;
l.onMouseUp = delegateCombine(l.onMouseUp, runOn(this, this.an));
let m = this.c;
m.onMouseDown = delegateCombine(m.onMouseDown, runOn(this, this.aj));
let n = this.c;
n.onMouseEnter = delegateCombine(n.onMouseEnter, runOn(this, this.ak));
let o = this.c;
o.onMouseLeave = delegateCombine(o.onMouseLeave, runOn(this, this.al));
}
al(a) {
this.a.iq(a);
}
ao(a) {
this.b.e(a, this.r, this);
}
ak(a) {
this.a.ip(a);
}
ar() {
if (this.ac == null) {
this.ac = (a) => {
let b = CanvasScalingHelpers.b(this.ad);
this.a.dg = CanvasScalingHelpers.a(this.a.ee, this.a.dg, b);
if (this.c != null) {
CanvasScalingHelpers.h(this.c, b);
}
};
let e_ = this.ac;
window.addEventListener("resize", e_, false);
}
this.ac(null);
}
ah() {
if (this.n != null) {
this.n();
this.n = null;
}
if (this.c != null) {
let a = this.c;
a.onMouseOver = delegateRemove(a.onMouseOver, runOn(this, this.am));
let b = this.c;
b.onMouseUp = delegateRemove(b.onMouseUp, runOn(this, this.an));
let c = this.c;
c.onMouseDown = delegateRemove(c.onMouseDown, runOn(this, this.aj));
let d = this.c;
d.onMouseEnter = delegateRemove(d.onMouseEnter, runOn(this, this.ak));
let e = this.c;
e.onMouseLeave = delegateRemove(e.onMouseLeave, runOn(this, this.al));
this.c.ap = null;
this.c.aw();
}
}
aj(a) {
if (this.c.al) {
this.a.iu(a);
}
else {
this.a.io(a);
}
}
an(a) {
if (this.c.al) {
this.a.iv(a);
}
else {
this.a.is(a);
}
}
am(a, b, c) {
this.a.ir(a);
}
aq() {
}
l() {
return this.b.b;
}
a3() {
this.g = FontUtil.getFont(this.ad);
if (this.h != null) {
this.u = this.x(this.h);
}
else {
this.u = this.x(this.g);
}
if (this.i != null) {
this.v = this.x(this.i);
}
else {
this.v = this.x(this.g);
}
this.a4 = new Brush();
this.a4._fill = this.ad.rootWrapper.getStyleProperty("color");
if (this.m != null) {
this.m.af(this.g);
}
}
as() {
let a = this.ae.rootWrapper.width();
let b = this.ae.rootWrapper.height();
this.a.kb = new Rect(0, 0, 0, a, b);
this.ar();
}
ap() {
if (this.p) {
this.ag();
}
}
a0() {
if (this.m == null) {
return;
}
let a = this.a.kb.width;
let b = this.a.kb.height;
let c = Math.round(a * this.w);
let d = Math.round(b * this.w);
if (this.t != c || this.s != d) {
this.af.setAttribute("width", c.toString());
this.af.setAttribute("height", d.toString());
this.af.setStyleProperty("width", a.toString() + "px");
this.af.setStyleProperty("height", b.toString() + "px");
this.t = truncate(Math.round(c));
this.s = truncate(Math.round(d));
}
if (this.m.d && this.w != 1) {
this.m.aa();
this.m.ab(this.w, this.w);
}
this.b.f(this.m, this.a.kb, this.r, this.u);
if (this.m.d && this.w != 1) {
this.m.z();
}
}
aw(a) {
this.i = a;
if (this.i != null) {
this.v = this.x(this.i);
}
else {
this.v = this.x(this.g);
}
}
az(a) {
this.h = a;
if (this.h != null) {
this.u = this.x(this.h);
}
else {
this.u = this.x(this.g);
}
if (this.i != null) {
this.v = this.x(this.i);
}
else {
this.v = this.x(this.g);
}
}
ai(a) {
this.r = a;
this.a0();
}
ab(a) {
if (a != null) {
if (this.h != null) {
this.m.af(this.h);
}
else {
this.m.af(this.f);
}
return this.m.g(a);
}
return 0;
}
z(a) {
if (a != null) {
if (this.i != null) {
this.m.af(this.i);
}
else {
this.m.af(this.f);
}
return this.m.g(a);
}
return 0;
}
x(a) {
return FontUtil.getCurrentFontHeight(this.ad, a);
}
aa(a) {
return this.u;
}
y(a) {
return this.v;
}
a7() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(220,220,220)";
return $ret;
})());
}
a9() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(240, 240, 240)";
return $ret;
})());
}
a8() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(102, 102, 102)";
return $ret;
})());
}
bf() {
return this.a5;
}
bb() {
return ((() => {
let $ret = new Brush();
$ret.fill = "black";
return $ret;
})());
}
ba() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(240,240,240)";
return $ret;
})());
}
be() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(240, 240, 240)";
return $ret;
})());
}
a6() {
return ((() => {
let $ret = new Brush();
$ret.fill = "rgb(102, 102, 102)";
return $ret;
})());
}
k() {
return this.f;
}
j() {
return this.e;
}
bc() {
return BrushUtil.j(153, 25, 25, 25);
}
bd() {
return BrushUtil.j(153, 45, 45, 45);
}
at() {
this.o = true;
this.ar();
if (this.c != null) {
this.c.au(this.ad.rootWrapper, "");
}
}
av() {
this.o = false;
if (this.c != null && this.ad != null) {
this.c.bi(this.ad.rootWrapper, "");
}
}
d() {
return new DOMExecutionContext(this.ad);
}
}
TreemapView.$t = markType(TreemapView, 'TreemapView');
return TreemapView;
})();
/**
* @hidden
*/
export let TreemapViewRenderer = /*@__PURE__*/ (() => {
class TreemapViewRenderer extends Base {
constructor() {
super();
this.b = null;
this.c = null;
this.j = null;
this.c = new List$1(TreemapVisual.$, 0);
this.b = ((() => {
let $ret = new Pool$1(TreemapVisual.$);
$ret.create = runOn(this, this.a);
$ret.activate = runOn(this, this.g);
$ret.disactivate = runOn(this, this.i);
$ret.destroy = runOn(this, this.h);
return $ret;
})());
}
a() {
let a = new TreemapVisual();
this.c.add(a);
return a;
}
g(a) {
a.x = 0;
}
i(a) {
a.x = 1;
}
h(a) {
this.c.remove(a);
}
d(a) {
if (a.c.count != 5) {
a.c.add1(new Rectangle());
a.c.add1(new Rectangle());
a.c.add1(new TextBlock());
a.c.add1(new Rectangle());
a.c.add1(new Rectangle());
}
}
f(a, b, c, d) {
a.l(b.left, b.top, b.width, b.height);
if (c != null) {
for (let e = 0; e < c.count; e++) {
let f = c._inner[e];
this.d(f);
let g = f.c._inner[0];
let h = f.c._inner[1];
let i = f.c._inner[2];
let j = f.c._inner[3];
let k = f.c._inner[4];
g._fill = f.l;
g._opacity = f.d;
g.width = f.p.width;
g.height = f.p.height;
g.n = f.p.left;
g.o = f.p.top;
j._fill = f.l;
j.width = !f.q.isEmpty ? f.q.width : 0;
j.height = !f.q.isEmpty ? f.q.height : 0;
j.n = !f.q.isEmpty ? f.q.left : 0;
j.o = !f.q.isEmpty ? f.q.top : 0;
k._fill = null;
k._stroke = f.o;
k.ad = f.i;
k.width = f.p.width;
k.height = f.p.height;
k.n = f.p.left;
k.o = f.p.top;
a.af(f.a);
let l = a.g(f.j);
if (f.b) {
i.al = f.j;
switch (f.k) {
case 0:
i.n = f.p.left + f.s.left;
break;
case 1:
case 3:
i.n = f.p.left + f.p.width / 2 - f.f / 2;
break;
case 2:
i.n = Math.max(f.p.left + f.s.left, f.p.right - (l + f.s.right));
break;
}
switch (f.t) {
case 0:
i.o = f.p.top + f.s.top;
break;
case 1:
case 3:
i.o = f.p.top + f.p.height / 2 - f.e / 2;
break;
case 2:
i.o = Math.max(f.p.top + f.s.top, f.p.bottom - (d + f.s.bottom));
break;
}
i.ao = f.n;
}
else {
h._fill = f.m;
h._stroke = f.o;
h.ad = f.i;
h.width = f.p.width;
h.height = f.e;
h.n = f.p.left;
h.o = f.p.top;
if (f.w == 0) {
h.width = l + f.r.left + f.r.right;
}
i.n = f.p.left + f.r.left;
i.o = f.p.top + f.r.top;
i.al = f.j;
i.ao = f.n;
}
a.ag(f.h);
if (f.b) {
a.l(g.n, g.o, g.width, g.height);
}
a.w(g);
if (!f.q.isEmpty) {
a.w(j);
}
if (k.ad > 0) {
a.w(k);
}
if (f.u == 0) {
if (!f.b) {
a.w(h);
}
}
a.aa();
a.ah(f.p);
if (f.w == 0) {
if (!f.b) {
a.w(h);
}
}
a.x(i);
a.z();
}
}
}
e(a, b, c) {
if (b != null) {
for (let d = 0; d < b.count; d++) {
let e = b._inner[d];
this.d(e);
let f = e.c._inner[0];
let g = e.c._inner[1];
let h = e.c._inner[2];
let i = e.c._inner[3];
let j = e.c._inner[4];
let k = new TreemapNodeVisualData();
k.d = new RectangleVisualData(1, "NodePath", f);
k.d.appearance.stroke = AppearanceHelper.b(j._stroke);
k.d.appearance.strokeExtended = AppearanceHelper.a(j._stroke);
k.d.appearance.strokeThickness = j.ad;
k.b = new RectangleVisualData(1, "HeaderRect", g);
k.c = new RectangleVisualData(1, "HighlightRect", i);
let l = new TreemapLabelVisualData();
l.labelPosition = new PointData(h.n, h.o);
if (e.b) {
l.labelSize = new SizeData(c.ab(h.al), c.aa(h.al));
}
else {
l.labelSize = new SizeData(c.z(h.al), c.y(h.al));
}
l.labelValue = h.al;
l.appearance = AppearanceHelper.c(h, e.a);
k.a = l;
a.nodes.add(k);
}
}
}
}
TreemapViewRenderer.$t = markType(TreemapViewRenderer, 'TreemapViewRenderer');
return TreemapViewRenderer;
})();
/**
* @hidden
*/
export let TreemapLayoutCalculator = /*@__PURE__*/ (() => {
class TreemapLayoutCalculator extends Base {
static c(a, b, c, d) {
let e = a.e();
let f = d.f;
let g = f * f / (b.width * b.height);
if (e / c < g) {
return true;
}
return false;
}
static a(a, b, c, d, e) {
for (let f = 0; f < c.count; f++) {
let g = c._inner[f];
if (!a.contains(g)) {
return false;
}
}
return true;
}
static b(a, b) {
if (a.width < b.f || a.height < b.f) {
return true;
}
return false;
}
h(a, b, c) {
return a.o(b);
}
i(a, b, c) {
let d = a.o(b);
if (d.isEmpty) {
return d;
}
if (b.b != null && b.b.count > 0) {
let e = c.i;
let f = e.left + e.right;
let g = e.top + e.bottom;
let h = a.b(b);
if (!h) {
return d;
}
let i = new Rect(0, d.left - e.left, d.top - e.top, d.width + f, d.height + g);
return i;
}
else {
return d;
}
}
g(a, b, c, d) {
if (b.b != null && b.b.count > 0) {
let e = d.i;
let f = e.left + e.right;
let g = e.top + e.bottom;
if (c.width < f || c.height < g) {
a.m(b, c);
return;
}
let h = new Rect(0, c.left + e.left, c.top + e.top, c.width - f, c.height - g);
a.m(b, h);
a.n(b, true);
}
else {
a.m(b, c);
}
}
f(a, b, c, d, e, f) {
if (!TreemapLayoutCalculator.a(a, b, c, e, f)) {
while (d > 0) {
let g = 0;
for (let h of fromEnum(c)) {
if (a.contains(h)) {
continue;
}
if (d > 0) {
let i = (d > 1) ? 1 : d;
let j = this.i(b, h, f);
if (j.isEmpty) {
continue;
}
this.g(b, h, new Rect(0, j.x + g, j.y, j.width + i, j.height), f);
d -= i;
g += i;
}
else {
let k = this.i(b, h, f);
if (k.isEmpty) {
continue;
}
this.g(b, h, new Rect(0, k.x + g, k.y, k.width, k.height), f);
}
}
}
}
}
e(a, b, c, d, e, f) {
if (!TreemapLayoutCalculator.a(a, b, c, e, f)) {
while (d > 0) {
let g = 0;
for (let h of fromEnum(c)) {
if (a.contains(h)) {
continue;
}
if (d > 0) {
let i = (d > 1) ? 1 : d;
let j = this.i(b, h, f);
if (j.isEmpty) {
continue;
}
this.g(b, h, new Rect(0, j.x, j.y + g, j.width, j.height + i), f);
d -= i;
g += i;
}
else {
let k = this.i(b, h, f);
if (k.isEmpty) {
continue;
}
this.g(b, h, new Rect(0, k.x, k.y + g, k.width, k.height), f);
}
}
}
}
}
}
TreemapLayoutCalculator.$t = markType(TreemapLayoutCalculator, 'TreemapLayoutCalculator');
return TreemapLayoutCalculator;
})();
/**
* @hidden
*/
export let StrippedCalculator = /*@__PURE__*/ (() => {
class StrippedCalculator extends TreemapLayoutCalculator {
d(a, b) {
a.g();
this.o(a, b.b.a, b.h, b, 0);
}
q(a, b, c) {
return c.j;
}
o(a, b, c, d, e) {
if (d.g >= 0 && e > d.g) {
return;
}
if (b == d.c) {
d.d = true;
this.g(a, b, c, d);
let f = new Rect(0, c.left, c.top + d.e, c.width, c.height - d.e);
c = f;
}
if (!d.d) {
for (let g of fromEnum(b.b)) {
this.o(a, g, c, d, e + 1);
}
return;
}
let h = this.q(b, c, d);
let i = h.left + h.right;
let j = h.top + h.bottom;
let k = new Rect(0, c.left, c.top, c.width, c.height);
let l = d.a;
if (i >= k.width || j >= k.height) {
return;
}
k.x = k.x + h.left;
k.width = k.width - i;
k.y = k.y + h.top;
k.height = k.height - j;
let m = new HashSet$1(TreemapTreeNode.$, 0);
StrippedCalculator.p(m, d, b.b, k);
let n = 0;
for (let o = 0; o < b.b.count; o++) {
let p = b.b._inner[o];
if (!m.contains(p)) {
n += p.e();
}
}
let q = n;
let r = (k.width * k.height) / q;
let s = l == 0 ? k.width : k.height;
let t = new List$1(TreemapTreeNode.$, 0);
let u = new List$1(TreemapTreeNode.$, 0);
for (let v = 0; v < b.b.count; v++) {
let w = b.b._inner[v];
if (m.contains(w) || isNaN_(w.e())) {
continue;
}
let x = StrippedCalculator.j(u, s, r);
u.add(w);
let y = StrippedCalculator.j(u, s, r);
if (x < y) {
if (t.count > 0) {
let z = this.m(m, a, d, t, r, k, l, false);
k = z.p5;
}
u.removeAt(u.count - 1);
t.o(u);
u.clear();
u.add(w);
}
}
let aa = StrippedCalculator.j(t, s, r);
let ab = StrippedCalculator.j(u, s, r);
let ac = new List$1(TreemapTreeNode.$, 0);
ac.o(t);
ac.o(u);
let ad = StrippedCalculator.j(ac, s, r);
if (ad < (aa + ab) / 2 || k.height < d.f * 2) {
let ae = this.m(m, a, d, ac, r, k, l, true);
k = ae.p5;
}
else {
let af = this.m(m, a, d, t, r, k, l, false);
k = af.p5;
let ag = this.m(m, a, d, u, r, k, l, true);
k = ag.p5;
}
for (let ah = 0; ah < b.b.count; ah++) {
let ai = b.b._inner[ah];
if (m.contains(ai)) {
continue;
}
let aj = this.h(a, ai, d);
if (aj.isEmpty) {
continue;
}
let ak = new Rect(0, aj.left, aj.top + d.e, aj.width, Math.max(aj.height - d.e, 0));
this.o(a, ai, ak, d, e + 1);
}
if (b == d.c) {
d.d = false;
}
}
m(a, b, c, d, e, f, g, h) {
if (d.count == 0) {
return {
p5: f
};
}
if (g == 0) {
let i = this.l(a, b, c, d, e, f, h);
f = i.p5;
}
else {
let j = this.n(a, b, c, d, e, f, h);
f = j.p5;
}
return {
p5: f
};
}
l(a, b, c, d, e, f, g) {
let h = StrippedCalculator.k(d);
if (h <= 0) {
return {
p5: f
};
}
let i = f.width;
let j = (h * e) / i;
let k = f.x;
let l = 0;
for (let m = 0; m < d.count; ++m) {
let n = d._inner[m];
let o = Math.floor((n.e() / h) * i);
let p = new Rect(0, k, f.y, o, j);
if (TreemapLayoutCalculator.b(p, c)) {
a.add_1(n);
}
else {
l = p.right;
this.g(b, n, p, c);
}
if (a.contains(n)) {
h -= n.e();
}
else {
k += o;
}
}
this.f(a, b, d, f.right - k, f, c);
f.y = f.y + j;
if (f.height < j) {
f.height = 0;
}
else {
f.height = f.height - j;
}
d.clear();
return {
p5: f
};
}
n(a, b, c, d, e, f, g) {
let h = StrippedCalculator.k(d);
if (h <= 0) {
return {
p5: f
};
}
let i = f.height;
let j = (h * e) / i;
let k = f.y;
let l = 0;
for (let m = 0; m < d.count; ++m) {
let n = d._inner[m];
let o = Math.floor((n.e() / h) * i);
let p = new Rect(0, f.x, k, j, o);
if (TreemapLayoutCalculator.b(p, c)) {
a.add_1(n);
}
else {
l = p.bottom;
this.g(b, n, p, c);
}
if (a.contains(n)) {
h -= n.e();
}
else {
k += o;
}
}
this.e(a, b, d, f.bottom - k, f, c);
f.x = f.x + j;
if (f.width < j) {
f.width = 0;
}
else {
f.width = f.width - j;
}
d.clear();
return {
p5: f
};
}
static j(a, b, c) {
if (a.count == 0) {
return 1.7976931348623157E+308;
}
let d = StrippedCalculator.k(a);
let e = (d * c) / b;
let f = 0;
for (let g = 0; g < a.count; g++) {
let h = a._inner[g];
let i = (h.e() / d) * b;
f += Math.max(i / e, e / i);
}
f /= a.count;
return f;
}
static k(a) {
let b = 0;
for (let c = 0; c < a.count; c++) {
let d = a._inner[c];
b += d.e();
}
return b;
}
static p(a, b, c, d) {
let e = 0;
for (let f = 0; f < c.count; f++) {
let g = c._inner[f];
}
let h = e;
let i = b.f * b.f / (d.width * d.height);
for (let j = 0; j < c.count; j++) {
let k = c._inner[j];
if (k.e() / h < i) {
a.add_1(k);
}
}
}
}
StrippedCalculator.$t = markType(StrippedCalculator, 'StrippedCalculator', TreemapLayoutCalculator.$);
return StrippedCalculator;
})();
/**
* @hidden
*/
export let SliceAndDiceCalculator = /*@__PURE__*/ (() => {
class SliceAndDiceCalculator extends TreemapLayoutCalculator {
d(a, b) {
a.g();
this.m(a, b.b.a, b.h, b, 0);
}
o(a, b, c) {
return c.j;
}
m(a, b, c, d, e) {
if (d.g >= 0 && e > d.g) {
return;
}
if (b == d.c) {
d.d = true;
this.g(a, b, c, d);
let f = new Rect(0, c.left, c.top + d.e, c.width, c.height - d.e);
c = f;
}
if (!d.d) {
for (let g of fromEnum(b.b)) {
this.m(a, g, c, d, e + 1);
}
return;
}
let h = this.o(b, c, d);
let i = SliceAndDiceCalculator.j(b, d, e);
let j = h.left + h.right;
let k = h.top + h.bottom;
let l = new Rect(0, c.left, c.top, c.width, c.height);
if (j >= l.width || k >= l.height) {
return;
}
l.x = l.x + h.left;
l.width = l.width - j;
l.y = l.y + h.top;
l.height = l.height - k;
let m = new Size(1, l.width, l.height);
let n = l.left;
let o = l.top;
let p = new HashSet$1(TreemapTreeNode.$, 0);
let q = SliceAndDiceCalculator.k(b.b, b, d, m, p);
if (q) {
SliceAndDiceCalculator.n(b.b, b, d, m, p);
}
let r = 0;
for (let s = 0; s < b.b.count; s++) {
let t = b.b._inner[s];
if (!p.contains(t)) {
r += t.e();
}
}
let u = (i == 0) ? m.height : m.width;
let v = new Rect(4);
for (let w = 0; w < b.b.count; w++) {
let x = b.b._inner[w];
if (p.contains(x) || isNaN_(x.e())) {
continue;
}
if (r <= 0 || u <= 0) {
break;
}
let y = x.e() / r;
v.x = n;
v.y = o;
if (i == 0) {
v.width = m.width;
v.height = Math.round(u * y);
}
else {
v.width = Math.round(u * y);
v.height = m.height;
}
this.g(a, x, new Rect(0, v.left, v.top, v.width, v.height), d);
if (i == 0) {
o += v.height;
u -= v.height;
}
else {
n += v.width;
u -= v.width;
}
r -= x.e();
let z = this.h(a, x, d);
if (z.isEmpty) {
continue;
}
let aa = new Rect(0, z.left, z.top + d.e, z.width, Math.max(z.height - d.e, 0));
this.m(a, x, aa, d, e + 1);
}
if (b == d.c) {
d.d = false;
}
}
static j(a, b, c) {
let d = 0;
if (b.a == 0) {
d = (c % 2 == 0) ? 0 : 1;
}
else {
d = (c % 2 == 0) ? 1 : 0;
}
return d;
}
static k(a, b, c, d, e) {
let f = true;
let g = b.e();
let h = Math.min(d.width, d.height);
for (let i = 0; i < a.count; i++) {
let j = a._inner[i];
if (Math.round(j.e() / g * h) < c.f) {
if (!e.contains(j)) {
e.add_1(j);
}
}
else {
f = false;
}
}
return f;
}
static n(a, b, c, d, e) {
let f = new List$1(TreemapTreeNode.$, 0);
f.o(a);
f.aa((g, h) => {
if (g.e() > h.e()) {
return 1;
}
else if (g.e() < h.e()) {
return -1;
}
return 0;
});
let g = 0;
let h = Math.min(d.width, d.height);
for (let i = 0; i < f.count; i++) {
let j = f._inner[i];
if (isNaN_(j.e())) {
continue;
}
g += j.e();
if (j.e() / g * h < c.f) {
break;
}
else {
if (e.contains(j)) {
e.remove(j);
}
}
}
}
}
SliceAndDiceCalculator.$t = markType(SliceAndDiceCalculator, 'SliceAndDiceCalculator', TreemapLayoutCalculator.$);
SliceAndDiceCalculator.l = null;
return SliceAndDiceCalculator;
})();
/**
* @hidden
*/
export let TreemapLayoutSettings = /*@__PURE__*/ (() => {
class TreemapLayoutSettings extends Base {
constructor() {
super();
this.a = 0;
this.h = null;
this.b = null;
this.j = null;
this.i = null;
this.e = 0;
this.f = 0;
this.g = 0;
this.c = null;
this.d = false;
this.g = -1;
this.d = false;
}
}
TreemapLayoutSettings.$t = markType(TreemapLayoutSettings, 'TreemapLayoutSettings');
return TreemapLayoutSettings;
})();
/**
* @hidden
*/
export let SquarifiedCalculator = /*@__PURE__*/ (() => {
class SquarifiedCalculator extends TreemapLayoutCalculator {
n(a, b, c, d, e) {
if (d.g >= 0 && e > d.g) {
return;
}
if (b == d.c) {
d.d = true;
this.g(a, b, c, d);
let f = new Rect(0, c.left, c.top + d.e, c.width, c.height - d.e);
c = f;
}
if (!d.d) {
for (let g of fromEnum(b.b)) {
this.n(a, g, c, d, e + 1);
}
return;
}
let h = this.o(b, c, d);
let i = new Rect(0, c.left, c.top, c.width, c.height);
let j = h.left + h.right;
let k = h.top + h.bottom;
if (j >= i.width || k >= i.height) {
return;
}
i.x = i.x + h.left;
i.width = i.width - j;
i.y = i.y + h.top;
i.height = i.height - k;
let l = i.left;
let m = i.top;
let n = new List$1(TreemapTreeNode.$, 0);
let o = b.e();
let p = new Rect(0, i.left, i.top, i.width, i.height);
let q = (i.width * i.height) / o;
let r = new List$1(TreemapTreeNode.$, 1, b.b);
r.aa((s, t) => {
if (t.e() < s.e()) {
return -1;
}
if (t.e() > s.e()) {
return 1;
}
return 0;
});
let s = new AreaInfo();
s.b = i;
s.a = o;
let t = new HashSet$1(TreemapTreeNode.$, 0);
for (let u of fromEnum(r)) {
if (TreemapLayoutCalculator.c(u, p, o, d) || isNaN_(u.e())) {
t.add_1(u);
continue;
}
let v = Math.min(i.width, i.height);
let w = SquarifiedCalculator.j(n, v, q);
n.add(u);
let x = SquarifiedCalculator.j(n, v, q);
if (w <= x) {
n.removeAt(n.count - 1);
this.l(t, a, n, s, d);
i = s.b;
n.add(u);
}
}
this.l(t, a, n, s, d);
i = s.b;
for (let y of fromEnum(b.b)) {
if (t.contains(y)) {
continue;
}
let z = this.h(a, y, d);
if (z.isEmpty) {
continue;
}
let aa = new Rect(0, z.left, z.top + d.e, z.width, Math.max(z.height - d.e, 0));
this.n(a, y, aa, d, e + 1);
}
if (b == d.c) {
d.d = false;
}
}
o(a, b, c) {
return c.j;
}
static j(a, b, c) {
if (a.count == 0) {
return 1.7976931348623157E+308;
}
let d = 0;
let e = 1.7976931348623157E+308;
let f = -1.7976931348623157E+308;
for (let g of fromEnum(a)) {
let h = g.e() * c;
if (e > h) {
e = h;
}
if (f < h) {
f = h;
}
d += h;
}
let i = (b * b * f) / (d * d);
let j = (d * d) / (b * b * e);
return Math.max(i, j);
}
l(a, b, c, d, e) {
if (c.count < 1) {
return;
}
let f = 0;
for (let g = 0; g < c.count; ++g) {
f += c._inner[g].e();
}
if (f <= 0) {
return;
}
if (d.b.width > d.b.height) {
this.k(a, b, c, f, d, e);
}
else {
this.m(a, b, c, f, d, e);
}
}
m(a, b, c, d, e, f) {
let g = e.b;
let h = e.a;
let i = Math.round((d / h) * g.height);
let j = g.x;
for (let k = 0; k < c.count; ++k) {
let l = c._inner[k];
if (g.right < j) {
a.add_1(l);
continue;
}
let m = Math.floor((l.e() / d) * g.width);
let n = new Rect(0, j, g.y, m, i);
if (TreemapLayoutCalculator.b(n, f)) {
a.add_1(l);
continue;
}
this.g(b, l, n, f);
j += n.width;
}
this.f(a, b, c, g.right - j, g, f);
g.y = g.y + i;
if (g.height < i) {
g.height = 0;
}
else {
g.height = g.height - i;
}
h -= d;
e.a = h;
e.b = g;
c.clear();
}
k(a, b, c, d, e, f) {
let g = e.b;
let h = e.a;
let i = Math.round((d / h) * g.width);
let j = g.y;
for (let k = 0; k < c.count; ++k) {
let l = c._inner[k];
if (g.bottom < j) {
a.add_1(l);
continue;
}
let m = Math.floor((l.e() / d) * g.height);
let n = new Rect(0, g.x, j, i, m);
if (TreemapLayoutCalculator.b(n, f)) {
a.add_1(l);
continue;
}
this.g(b, l, n, f);
j += n.height;
}
this.e(a, b, c, g.bottom - j, g, f);
g.x = g.x + i;
if (g.width < i) {
g.width = 0;
}
else {
g.width = g.width - i;
}
h -= d;
e.a = h;
e.b = g;
c.clear();
}
d(a, b) {
a.g();
this.n(a, b.b.a, b.h, b, 0);
}
}
SquarifiedCalculator.$t = markType(SquarifiedCalculator, 'SquarifiedCalculator', TreemapLayoutCalculator.$);
return SquarifiedCalculator;
})();
/**
* @hidden
*/
export let TreemapTreeData = /*@__PURE__*/ (() => {
class TreemapTreeData extends Base {
constructor() {
super();
this.a = null;
this.b = null;
this.d = null;
this.c = null;
this.b = new Dictionary$2(String_$type, TreemapTreeNode.$, 0);
this.d = new List$1(String_$type, 0);
this.c = new Dictionary$2(String_$type, List$1.$.specialize(TreemapTreeNode.$), 0);
this.a = new TreemapTreeNode();
}
e(a) {
this.b.addItem(a.l, a);
this.d.add(a.l);
if (a.n == null) {
this.a.b.add(a);
}
else if (this.b.containsKey(a.n)) {
this.b.item(a.n).b.add(a);
}
else {
let b;
if (!((() => { let c = this.c.tryGetValue(a.n, b); b = c.p1; return c.ret; })())) {
b = new List$1(TreemapTreeNode.$, 0);
this.c.item(a.n, b);
}
b.add(a);
}
if (this.c.containsKey(a.l)) {
for (let c of fromEnum(this.c.item(a.l))) {
a.b.add(c);
}
this.c.removeItem(a.l);
}
}
g(a) {
if (isNaN_(a.h)) {
if (a.b.count > 0) {
a.d = 0;
}
for (let b = 0; b < a.b.count; b++) {
let c = a.b._inner[b];
this.g(c);
if (isNaN_(c.h)) {
a.d = a.d + c.d;
}
else {
a.d = a.d + c.h;
}
}
}
}
f() {
this.g(this.a);
}
}
TreemapTreeData.$t = markType(TreemapTreeData, 'TreemapTreeData');
return TreemapTreeData;
})();
/**
* @hidden
*/
export let TreemapTreeNode = /*@__PURE__*/ (() => {
class TreemapTreeNode extends Base {
constructor() {
super();
this.l = null;
this.n = null;
this.b = null;
this.c = null;
this.h = 0;
this.g = 0;
this.f = 0;
this.j = null;
this.d = 0;
this.m = null;
this.k = null;
this.i = 0;
this.a = false;
this.b = new List$1(TreemapTreeNode.$, 0);
this.h = NaN;
this.g = NaN;
this.f = NaN;
this.j = null;
this.c = new List$1(TreemapNodeStyleMapping.$, 0);
this.d = 0;
}
e() {
if (isNaN_(this.h)) {
return this.d;
}
return this.h;
}
}
TreemapTreeNode.$t = markType(TreemapTreeNode, 'TreemapTreeNode');
return TreemapTreeNode;
})();
/**
* @hidden
*/
export let Treemap = /*@__PURE__*/ (() => {
class Treemap extends Base {
constructor() {
super();
this.g = null;
this.f = null;
this.e = null;
this.bq = false;
this.aq = null;
this.j9 = null;
this.ay = null;
this.fd = null;
this.fc = "Root";
this.e6 = " : ";
this.fb = null;
this.fa = null;
this.e7 = null;
this.e9 = null;
this.b9 = null;
this.b8 = null;
this.e8 = null;
this.cr = NaN;
this.k = 0;
this.a = new BrushCollection();
this.ag = new TreemapNodeStyleMappingCollection();
this.c = 0;
this.br = false;
this.ew = 10;
this.cl = NaN;
this.ck = NaN;
this.p = 0;
this.m = 0;
this.jl = null;
this.jf = null;
this.jd = null;
this.jk = null;
this.ji = null;
this.je = null;
this.jm = null;
this.jc = null;
this.jh = null;
this.jg = null;
this.a5 = null;
this.a4 = null;
this.h = 0;
this.co = DeviceUtils.g(5);
this.cq = DeviceUtils.g(3);
this.cp = DeviceUtils.g(5);
this.cn = DeviceUtils.g(3);
this.c1 = DeviceUtils.g(10);
this.c3 = DeviceUtils.g(10);
this.c2 = DeviceUtils.g(10);
this.c0 = DeviceUtils.g(10);
this.cv = DeviceUtils.g(5);
this.cx = DeviceUtils.g(3);
this.cw = DeviceUtils.g(5);
this.cu = DeviceUtils.g(3);
this.c6 = DeviceUtils.g(0);
this.da = DeviceUtils.g(0);
this.c8 = DeviceUtils.g(0);
this.c4 = DeviceUtils.g(0);
this.c7 = DeviceUtils.g(3);
this.db = DeviceUtils.g(3);
this.c9 = DeviceUtils.g(3);
this.c5 = DeviceUtils.g(3);
this.i9 = 1;
this.kc = 1;
this.cm = NaN;
this.jj = null;
this.dd = NaN;
this.cz = NaN;
this.ak = 0;
this.t = 0;
this.cy = DeviceUtils.g(3);
this.ey = 500;
this.de = 0;
this.eu = null;
this.a0 = null;
this.ev = null;
this.a1 = null;
this.bf = null;
this.ba = null;
this.be = null;
this.bc = null;
this.bd = null;
this.bb = null;
this.dc = NaN;
this.cd = 1;
this.ct = NaN;
this.cc = 0.5;
this.ex = 300;
this.at = 1;
this.as = 1;
this.cs = NaN;
this.a9 = null;
this.az = null;
this.ar = null;
this.bp = false;
this.bw = false;
this.b0 = false;
this.bv = false;
this.am = null;
this.s = null;
this.ce = NaN;
this.cj = DeviceUtils.g(1);
this.ci = 1;
this.cf = 0.3;
this.ch = 0.2;
this.cg = 1;
this.propertyChanged = null;
this.y = null;
this.v = null;
this.e4 = null;
this.ap = null;
this.ao = null;
this.j8 = null;
this.nodeStyling = null;
this.nodeRenderStyling = null;
this.nodePointerOver = null;
this.nodePointerEnter = null;
this.nodePointerLeave = null;
this.nodePointerPressed = null;
this.nodePointerReleased = null;
let a = new TreemapView();
a.a = this;
this.s = new SquarifiedCalculator();
this.aq = a;
this.aq.ax();
this.eu = (b, c) => this.h4(c.action, c.position, c.count, c.propertyName);
this.ev = (b, c) => this.h4(c.action, c.position, c.count, c.propertyName);
this.j9 = Rect.empty;
this.g = new TreemapFrame();
this.f = new TreemapFrame();
this.e = new TreemapFrame();
this.bw = true;
this.ay = new DoubleAnimator(0, 1, this.e3);
this.ay.b = EasingFunctions.cubicEase;
let b = this.ay;
b.propertyChanged = delegateCombine(b.propertyChanged, runOn(this, this.h2));
this.az = new DoubleAnimator(0, 1, this.e1);
let c = this.az;
c.propertyChanged = delegateCombine(c.propertyChanged, runOn(this, this.ia));
let d = this.ag;
d.collectionChanged = delegateCombine(d.collectionChanged, runOn(this, this.h0));
let e = this.ag;
e.collectionResetting = delegateCombine(e.collectionResetting, runOn(this, this.h1));
}
h1(a, b) {
for (let c of fromEnum(this.styleMappings)) {
c.propertyChanged = delegateRemove(c.propertyChanged, runOn(this, this.i4));
}
this.bw = true;
this.b0 = true;
this.aq.a2();
}
h0(a, b) {
if (b.oldItems != null) {
for (let c of fromEn(b.oldItems)) {
let d = c;
if (d != null) {
d.propertyChanged = delegateRemove(d.propertyChanged, runOn(this, this.i4));
}
}
}
if (b.newItems != null) {
for (let e of fromEn(b.newItems)) {
let f = e;
if (f != null) {
f.propertyChanged = delegateCombine(f.propertyChanged, runOn(this, this.i4));
}
}
}
this.bw = true;
this.b0 = true;
this.aq.a2();
}
i4(a, b) {
this.bw = true;
this.b0 = true;
this.aq.a2();
}
h4(a, b, c, d) {
this.am = null;
this.bw = true;
this.bv = true;
this.b0 = true;
this.aq.a2();
}
notifySizeChanged() {
this.aq.as();
}
destroy() {
this.provideContainer(null);
}
ax() {
let a = new TreemapVisualData();
a.viewport = new RectData(this.kb.left, this.kb.top, this.kb.width, this.kb.height);
a.nodes = new TreemapNodeVisualDataList();
this.aq.ao(a);
return a;
}
fn() {
let a = this.ax();
a.scaleByViewport();
return a.serialize();
}
it(a, b, c) {
if (this.propertyChanged != null) {
this.propertyChanged(this, new PropertyChangedEventArgs(a));
}
this.iy(a, b, c);
}
iy(a, b, c) {
switch (a) {
case "FocusItem":
this.im();
break;
case "LayoutType":
{
switch (EnumUtil.getEnumValue(TreemapLayoutType_$type, c)) {
case 0:
this.s = new SquarifiedCalculator();
break;
case 1:
this.s = new SliceAndDiceCalculator();
break;
case 2:
this.s = new StrippedCalculator();
break;
}
this.bw = true;
this.aq.a2();
}
break;
case "BreadcrumbSequence":
this.bw = true;
this.aq.a2();
break;
case "RootTitle":
this.bw = true;
this.aq.a2();
break;
case "ValueMemberPath":
if (this.a2 != null) {
this.a2.deregisterColumn(this.bn);
this.bn = this.bl(this.a2, this.hx);
this.am = null;
}
this.h6();
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "CustomValueMemberPath":
if (this.a2 != null) {
this.a2.deregisterColumn(this.bg);
this.bg = this.bm(this.fk);
this.am = null;
}
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "IdMemberPath":
if (this.a2 != null) {
this.a2.deregisterColumn(this.bi);
this.bi = this.bm(this.gj);
this.am = null;
}
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "LabelMemberPath":
if (this.a2 != null) {
this.a2.deregisterColumn(this.bj);
this.bj = this.bm(this.gt);
this.am = null;
}
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "ParentIdMemberPath":
if (this.a2 != null) {
this.a2.deregisterColumn(this.bk);
this.bk = this.bm(this.hb);
this.am = null;
}
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "ItemsSource":
this.a2 = ((() => {
let $ret = new FastItemsSource();
$ret.e = this.dataSource;
return $ret;
})());
break;
case "HighlightedValueMemberPath":
this.h6();
this.am = null;
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "HighlightedItemsSource":
this.a3 = ((() => {
let $ret = new FastItemsSource();
$ret.e = this.highlightedDataSource;
return $ret;
})());
break;
case "HighlightedValuesDisplayMode":
this.am = null;
this.bw = true;
this.bv = true;
this.aq.a2();
break;
case "HeaderLabelLeftMargin":
case "HeaderLabelTopMargin":
case "HeaderLabelRightMargin":
case "HeaderLabelBottomMargin":
case "LabelLeftMargin":
case "LabelTopMargin":
case "LabelRightMargin":
case "LabelBottomMargin":
case "ParentNodeLeftMargin":
case "ParentNodeTopMargin":
case "ParentNodeRightMargin":
case "ParentNodeBottomMargin":
case "ParentNodeLeftPadding":
case "ParentNodeTopPadding":
case "ParentNodeRightPadding":
case "ParentNodeBottomPadding":
case "HeaderTextColor":
case "HeaderHoverTextColor":
case "OverlayHeaderHoverBackground":
case "HeaderHoverBackground":
case "StrokeThickness":
case "Outline":
case "FillBrushes":
case "IsFillScaleLogarithmic":
case "FillScaleMinimumValue":
case "FillScaleMaximumValue":
case "HeaderBackground":
case "OverlayHeaderBackground":
case "HeaderHeight":
case "FillScaleLogarithmBase":
case "FillScaleMode":
case "MinimumDisplaySize":
case "LayoutOrientation":
case "LabelHorizontalAlignment":
case "LabelVerticalAlignment":
case "HeaderDisplayMode":
case "LabelHorizontalFitMode":
case "LabelVerticalFitMode":
case "HighlightedValueOpacity":
this.bw = true;
this.aq.a2();
break;
case "TextStyle":
this.aq.az(this.a8);
this.bw = true;
this.aq.a2();
break;
case "HeaderTextStyle":
this.aq.aw(this.a6);
this.bw = true;
this.aq.a2();
break;
case "PixelScalingRatio":
if (!isNaN_(c)) {
this.dg = c;
}
break;
case "ActualPixelScalingRatio":
if (isNaN_(this.dv)) {
this.df = this.dg / 2;
}
if (this.aq != null) {
this.aq.ay();
}
break;
case "InteractionPixelScalingRatio":
if (!isNaN_(c)) {
this.df = c;
}
break;
case "ActualInteractionPixelScalingRatio":
if (this.aq != null) {
this.aq.ay();
}
break;
case "TransitionProgress":
this.e.h(this.et, this.g, this.f);
if (this.et >= 1) {
this.ay.w();
this.aq.ay();
let d = this.f;
this.f = this.g;
this.g = d;
this.ix();
this.i0(this.f);
this.aq.a1();
this.aq.a2();
return;
}
this.i0(this.e);
this.aq.a1();
break;
case "Viewport":
this.bw = true;
this.aq.a2();
break;
case "FastItemsSource":
{
let e = b;
let f = c;
if (b != null) {
e.event = delegateRemove(e.event, this.eu);
this.bp = false;
e.deregisterColumn(this.bn);
e.deregisterColumn(this.bi);
e.deregisterColumn(this.bk);
e.deregisterColumn(this.bj);
e.deregisterColumn(this.bg);
e.deregisterColumn(this.bh);
this.bn = null;
this.bi = null;
this.bk = null;
this.bj = null;
this.am = null;
if (this.a3 == null) {
this.bh = null;
}
}
if (c != null) {
f.event = delegateCombine(f.event, this.eu);
this.bp = true;
this.bn = this.bl(f, this.hx);
this.bi = this.bm(this.gj);
this.bk = this.bm(this.hb);
this.bj = this.bm(this.gt);
this.bg = this.bm(this.fk);
if (this.a3 == null) {
this.bh = this.bl(f, this.gb);
}
}
this.bw = true;
this.bv = true;
this.aq.a2();
}
break;
case "HighlightedFastItemsSource":
{
let g = b;
let h = c;
if (b != null) {
g.event = delegateRemove(g.event, this.ev);
g.deregisterColumn(this.bh);
this.bh = null;
if (this.a2 != null) {
this.bh = this.bl(this.a2, this.gb);
}
}
if (c != null) {
if (this.a2 != null) {
this.a2.deregisterColumn(this.bh);
this.bh = null;
}
h.event = delegateCombine(h.event, this.ev);
if (!stringIsNullOrEmpty(this.gb)) {
this.bh = this.bl(h, this.gb);
}
else {
this.bh = this.bl(h, this.hx);
}
}
this.am = null;
this.bw = true;
this.bv = true;
this.aq.a2();
}
break;
case "TransitionDuration":
this.ay.r = this.e3;
break;
case "HighlightingTransitionDuration":
this.az.r = this.e1;
break;
case "HighlightingMode":
this.au = this.av();
break;
}
}
h6() {
if (this.a3 != null) {
let a = this.hx;
if (!stringIsNullOrEmpty(this.gb)) {
a = this.gb;
}
this.a2.deregisterColumn(this.bh);
this.a3.deregisterColumn(this.bh);
this.bh = this.bl(this.a3, a);
this.am = null;
}
else if (this.a2 != null) {
let b = this.gb;
this.a2.deregisterColumn(this.bh);
this.bh = this.bl(this.a2, b);
this.am = null;
}
}
im() {
if (this.bq) {
return;
}
if (this.am == null) {
return;
}
if (this.e5 == null) {
this.ao = null;
this.bw = true;
this.aq.a2();
return;
}
for (let a = 0; a < this.am.d.count; a++) {
let b = this.am.b.item(this.am.d._inner[a]);
if (b.k == this.e5) {
this.ao = b;
this.bw = true;
this.aq.a2();
break;
}
}
}
get kb() {
return this.j9;
}
set kb(a) {
let b = this.j9;
this.j9 = a;
if (!b.equals1(this.j9)) {
this.it("Viewport", b, this.j9);
}
}
h2(a, b) {
this.et = this.ay.o;
}
get hx() {
return this.fd;
}
set hx(a) {
let b = this.fd;
this.fd = a;
if (b != this.fd) {
this.iy("ValueMemberPath", b, a);
}
}
get hn() {
return this.fc;
}
set hn(a) {
let b = this.fc;
this.fc = a;
if (b != this.fc) {
this.iy("RootTitle", b, a);
}
}
get fh() {
return this.e6;
}
set fh(a) {
let b = this.e6;
this.e6 = a;
if (b != this.fc) {
this.iy("BreadcrumbSequence", b, a);
}
}
get hb() {
return this.fb;
}
set hb(a) {
let b = this.fb;
this.fb = a;
if (b != this.fb) {
this.it("ParentIdMemberPath", b, a);
}
}
get gt() {
return this.fa;
}
set gt(a) {
let b = this.fa;
this.fa = a;
if (b != this.fa) {
this.it("LabelMemberPath", b, a);
}
}
get fk() {
return this.e7;
}
set fk(a) {
let b = this.e7;
this.e7 = a;
if (b != this.e7) {
this.it("CustomValueMemberPath", b, a);
}
}
get gj() {
return this.e9;
}
set gj(a) {
let b = this.e9;
this.e9 = a;
if (b != this.e9) {
this.it("IdMemberPath", b, a);
}
}
get dataSource() {
return this.b9;
}
set dataSource(a) {
let b = this.b9;
this.b9 = a;
if (b != this.b9) {
this.it("ItemsSource", b, a);
}
}
get highlightedDataSource() {
return this.b8;
}
set highlightedDataSource(a) {
let b = this.b8;
this.b8 = a;
if (b != this.b8) {
this.it("HighlightedItemsSource", b, a);
}
}
get gb() {
return this.e8;
}
set gb(a) {
let b = this.e8;
this.e8 = a;
if (b != this.e8) {
this.it("HighlightedValueMemberPath", b, a);
}
}
get dt() {
return this.cr;
}
set dt(a) {
let b = this.cr;
this.cr = a;
if (b != this.cr) {
this.it("HighlightedValueOpacity", b, a);
}
}
get l() {
return this.k;
}
set l(a) {
let b = this.k;
this.k = a;
if (b != this.k) {
this.it("HighlightedValuesDisplayMode", enumGetBox(TreemapHighlightedValueDisplayMode_$type, b), enumGetBox(TreemapHighlightedValueDisplayMode_$type, a));
}
}
get b() {
return this.a;
}
set b(a) {
let b = this.a;
this.a = a;
if (b != this.a) {
this.it("FillBrushes", b, a);
}
}
get styleMappings() {
return this.ag;
}
get d() {
return this.c;
}
set d(a) {
let b = this.c;
this.c = a;
if (b != this.c) {
this.it("FillScaleMode", enumGetBox(TreemapFillScaleMode_$type, b), enumGetBox(TreemapFillScaleMode_$type, a));
}
}
get bx() {
return this.br;
}
set bx(a) {
let b = this.br;
this.br = a;
if (b != this.br) {
this.it("IsFillScaleLogarithmic", b, a);
}
}
get ez() {
return this.ew;
}
set ez(a) {
let b = this.ew;
this.ew = a;
if (b != this.ew) {
this.it("FillScaleLogarithmBase", b, a);
}
}
get dl() {
return this.cl;
}
set dl(a) {
let b = this.cl;
this.cl = a;
if (b != this.cl) {
this.it("FillScaleMinimumValue", b, a);
}
}
get dk() {
return this.ck;
}
set dk(a) {
let b = this.ck;
this.ck = a;
if (b != this.ck) {
this.it("FillScaleMaximumValue", b, a);
}
}
get r() {
return this.p;
}
set r(a) {
let b = this.p;
this.p = a;
if (b != this.p) {
this.it("LabelVerticalFitMode", enumGetBox(TreemapLabelVerticalFitMode_$type, b), enumGetBox(TreemapLabelVerticalFitMode_$type, a));
}
}
get q() {
return this.r == 0 ? 1 : this.r;
}
get o() {
return this.m;
}
set o(a) {
let b = this.m;
this.m = a;
if (b != this.m) {
this.it("LabelHorizontalFitMode", enumGetBox(TreemapLabelHorizontalFitMode_$type, b), enumGetBox(TreemapLabelHorizontalFitMode_$type, a));
}
}
get n() {
return this.o == 0 ? 1 : this.o;
}
get jx() {
return this.jl;
}
set jx(a) {
let b = this.jl;
this.jl = a;
if (b != this.jl) {
this.it("OverlayHeaderHoverBackground", b, a);
}
}
get jr() {
return this.jf;
}
set jr(a) {
let b = this.jf;
this.jf = a;
if (b != this.jf) {
this.it("HeaderHoverBackground", b, a);
}
}
get jp() {
return this.jd;
}
set jp(a) {
let b = this.jd;
this.jd = a;
if (b != this.jd) {
this.it("HeaderBackground", b, a);
}
}
get jw() {
return this.jk;
}
set jw(a) {
let b = this.jk;
this.jk = a;
if (b != this.jk) {
this.it("OverlayHeaderBackground", b, a);
}
}
get ju() {
return this.ji;
}
set ju(a) {
let b = this.ji;
this.ji = a;
if (b != this.ji) {
this.it("HeaderTextColor", b, a);
}
}
get jq() {
return this.je;
}
set jq(a) {
let b = this.je;
this.je = a;
if (b != this.je) {
this.it("HeaderDarkTextColor", b, a);
}
}
get j7() {
return this.jm;
}
set j7(a) {
let b = this.jm;
this.jm = a;
if (b != this.jm) {
this.it("TextColor", b, a);
}
}
get jo() {
return this.jc;
}
set jo(a) {
let b = this.jc;
this.jc = a;
if (b != this.jc) {
this.it("DarkTextColor", b, a);
}
}
get jt() {
return this.jh;
}
set jt(a) {
let b = this.jh;
this.jh = a;
if (b != this.jh) {
this.it("HeaderHoverTextColor", b, a);
}
}
get js() {
return this.jg;
}
set js(a) {
let b = this.jg;
this.jg = a;
if (b != this.jg) {
this.it("HeaderHoverDarkTextColor", b, a);
}
}
get a8() {
return this.a5;
}
set a8(a) {
let b = this.a5;
this.a5 = a;
if (b != this.a5) {
this.it("TextStyle", b, this.a5);
}
}
get a6() {
return this.a4;
}
set a6(a) {
let b = this.a4;
this.a4 = a;
if (b != this.a4) {
this.it("HeaderTextStyle", b, this.a4);
}
}
get j() {
return this.h;
}
set j(a) {
let b = this.h;
this.h = a;
if (b != this.h) {
this.it("HeaderDisplayMode", enumGetBox(TreemapHeaderDisplayMode_$type, b), enumGetBox(TreemapHeaderDisplayMode_$type, this.h));
}
}
get i() {
return this.j == 0 ? 1 : this.j;
}
get dq() {
return this.co;
}
set dq(a) {
let b = this.co;
this.co = a;
if (b != this.co) {
this.it("HeaderLabelLeftMargin", b, a);
}
}
get ds() {
return this.cq;
}
set ds(a) {
let b = this.cq;
this.cq = a;
if (b != this.cq) {
this.it("HeaderLabelTopMargin", b, a);
}
}
get dr() {
return this.cp;
}
set dr(a) {
let b = this.cp;
this.cp = a;
if (b != this.cp) {
this.it("HeaderLabelRightMargin", b, a);
}
}
get dp() {
return this.cn;
}
set dp(a) {
let b = this.cn;
this.cn = a;
if (b != this.cn) {
this.it("HeaderLabelBottomMargin", b, a);
}
}
get d3() {
return this.c1;
}
set d3(a) {
let b = this.c1;
this.c1 = a;
if (b != this.c1) {
this.it("OverlayHeaderLabelLeftMargin", b, a);
}
}
get d5() {
return this.c3;
}
set d5(a) {
let b = this.c3;
this.c3 = a;
if (b != this.c3) {
this.it("OverlayHeaderLabelTopMargin", b, a);
}
}
get d4() {
return this.c2;
}
set d4(a) {
let b = this.c2;
this.c2 = a;
if (b != this.c2) {
this.it("OverlayHeaderLabelRightMargin", b, a);
}
}
get d2() {
return this.c0;
}
set d2(a) {
let b = this.c0;
this.c0 = a;
if (b != this.c0) {
this.it("OverlayHeaderLabelBottomMargin", b, a);
}
}
get dx() {
return this.cv;
}
set dx(a) {
let b = this.cv;
this.cv = a;
if (b != this.cv) {
this.it("LabelLeftMargin", b, a);
}
}
get dz() {
return this.cx;
}
set dz(a) {
let b = this.cx;
this.cx = a;
if (b != this.cx) {
this.it("LabelTopMargin", b, a);
}
}
get dy() {
return this.cw;
}
set dy(a) {
let b = this.cw;
this.cw = a;
if (b != this.cw) {
this.it("LabelRightMargin", b, a);
}
}
get dw() {
return this.cu;
}
set dw(a) {
let b = this.cu;
this.cu = a;
if (b != this.cu) {
this.it("LabelBottomMargin", b, a);
}
}
get d8() {
return this.c6;
}
set d8(a) {
let b = this.c6;
this.c6 = a;
if (b != this.c6) {
this.it("ParentNodeLeftMargin", b, a);
}
}
get ec() {
return this.da;
}
set ec(a) {
let b = this.da;
this.da = a;
if (b != this.da) {
this.it("ParentNodeTopMargin", b, a);
}
}
get ea() {
return this.c8;
}
set ea(a) {
let b = this.c8;
this.c8 = a;
if (b != this.c8) {
this.it("ParentNodeRightMargin", b, a);
}
}
get d6() {
return this.c4;
}
set d6(a) {
let b = this.c4;
this.c4 = a;
if (b != this.c4) {
this.it("ParentNodeBottomMargin", b, a);
}
}
get d9() {
return this.c7;
}
set d9(a) {
let b = this.c7;
this.c7 = a;
if (b != this.c7) {
this.it("ParentNodeLeftPadding", b, a);
}
}
get ed() {
return this.db;
}
set ed(a) {
let b = this.db;
this.db = a;
if (b != this.db) {
this.it("ParentNodeTopPadding", b, a);
}
}
get eb() {
return this.c9;
}
set eb(a) {
let b = this.c9;
this.c9 = a;
if (b != this.c9) {
this.it("ParentNodeRightPadding", b, a);
}
}
get d7() {
return this.c5;
}
set d7(a) {
let b = this.c5;
this.c5 = a;
if (b != this.c5) {
this.it("ParentNodeBottomPadding", b, a);
}
}
get ja() {
return this.i9;
}
set ja(a) {
let b = this.i9;
this.i9 = a;
if (b != this.i9) {
this.it("LabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, a));
}
}
get kd() {
return this.kc;
}
set kd(a) {
let b = this.kc;
this.kc = a;
if (b != this.kc) {
this.it("LabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, a));
}
}
get dn() {
return this.cm;
}
set dn(a) {
let b = this.cm;
this.cm = a;
if (b != this.cm) {
this.it("HeaderHeight", b, a);
}
}
get jv() {
return this.jj;
}
set jv(a) {
let b = this.jj;
this.jj = a;
if (b != this.jj) {
this.it("Outline", b, a);
}
}
get es() {
return this.dd;
}
set es(a) {
let b = this.dd;
this.dd = a;
if (b != this.dd) {
this.it("StrokeThickness", b, a);
}
}
get d1() {
return this.cz;
}
set d1(a) {
let b = this.cz;
this.cz = a;
if (b != this.cz) {
this.it("NodeOpacity", b, a);
}
}
get al() {
return this.ak;
}
set al(a) {
let b = this.ak;
this.ak = a;
if (b != this.ak) {
this.it("LayoutOrientation", enumGetBox(TreemapOrientation_$type, b), enumGetBox(TreemapOrientation_$type, a));
}
}
get u() {
return this.t;
}
set u(a) {
let b = this.t;
this.t = a;
if (b != this.t) {
this.it("LayoutType", enumGetBox(TreemapLayoutType_$type, b), enumGetBox(TreemapLayoutType_$type, a));
}
}
get d0() {
return this.cy;
}
set d0(a) {
let b = this.cy;
this.cy = a;
if (b != this.cy) {
this.it("MinimumDisplaySize", b, a);
}
}
get e3() {
return this.ey;
}
set e3(a) {
let b = this.ey;
this.ey = a;
if (b != this.ey) {
this.it("TransitionDuration", b, a);
}
}
get et() {
return this.de;
}
set et(a) {
let b = this.de;
this.de = a;
if (b != this.de) {
this.it("TransitionProgress", b, a);
}
}
get a2() {
return this.a0;
}
set a2(a) {
let b = this.a0;
this.a0 = a;
if (b != this.a0) {
this.it("FastItemsSource", b, this.a0);
}
}
get a3() {
return this.a1;
}
set a3(a) {
let b = this.a1;
this.a1 = a;
if (b != this.a1) {
this.it("HighlightedFastItemsSource", b, this.a1);
}
}
get bn() {
return this.bf;
}
set bn(a) {
this.bf = a;
}
get bg() {
return this.ba;
}
set bg(a) {
this.ba = a;
}
get bk() {
return this.be;
}
set bk(a) {
this.be = a;
}
get bi() {
return this.bc;
}
set bi(a) {
this.bc = a;
}
get bj() {
return this.bd;
}
set bj(a) {
this.bd = a;
}
get bh() {
return this.bb;
}
set bh(a) {
this.bb = a;
}
get ee() {
return this.dc;
}
set ee(a) {
let b = this.dc;
this.dc = a;
if (b != this.dc) {
this.it("PixelScalingRatio", b, a);
}
}
get dg() {
return this.cd;
}
set dg(a) {
let b = this.cd;
this.cd = a;
if (b != this.cd) {
this.it("ActualPixelScalingRatio", b, a);
}
}
get dv() {
return this.ct;
}
set dv(a) {
let b = this.ct;
this.ct = a;
if (b != this.ct) {
this.it("InteractionPixelScalingRatio", b, a);
}
}
get df() {
return this.cc;
}
set df(a) {
let b = this.cc;
this.cc = a;
if (b != this.cc) {
this.it("ActualInteractionPixelScalingRatio", b, a);
}
}
get e1() {
return this.ex;
}
set e1(a) {
let b = this.ex;
this.ex = a;
if (b != this.ex) {
this.it("HighlightingTransitionDuration", b, a);
}
}
get aw() {
return this.at;
}
set aw(a) {
let b = this.at;
this.at = a;
if (b != this.at) {
this.it("HighlightingMode", enumGetBox(TreemapHighlightingMode_$type, b), enumGetBox(TreemapHighlightingMode_$type, a));
}
}
get au() {
return this.as;
}
set au(a) {
let b = this.as;
this.as = a;
if (b != this.as) {
this.it("ActualHighlightingMode", enumGetBox(TreemapHighlightingMode_$type, b), enumGetBox(TreemapHighlightingMode_$type, a));
}
}
av() {
if (this.aw != 0) {
return this.aw;
}
return 2;
}
get du() {
return this.cs;
}
set du(a) {
let b = this.cs;
this.cs = a;
if (b != this.cs) {
this.it("HighlightingFadeOpacity", b, a);
}
}
get bo() {
if (this.ar == null) {
this.ar = new TreemapHighlightingManager();
this.ar.executionContext = this.aq.d();
this.ar.ensureAnimator = runOn(this, this.h7);
}
return this.ar;
}
h7() {
let a = this.az;
if (!a.f() && a.r > 0) {
a.v();
}
if (a.r == 0) {
this.i7(1);
}
}
h3() {
this.a9 = null;
}
ia(a, b) {
this.i7(this.az.o);
}
i7(a) {
let b = this.bo.tick(a);
if (a == 1 && b && this.az.r > 0) {
this.az.v();
}
if (this.bs) {
this.i0(this.e);
}
else {
this.i0(this.f);
}
if (!b) {
this.az.w();
}
}
id(a, b, c, d) {
if (c) {
return;
}
if (this.au == 1) {
return;
}
let e = null;
let f = this.bo;
let g = d;
let h = !g;
if (g && this.a9 != null) {
e = this.a9;
}
else {
if (a != null) {
e = a.f(this);
}
if (this.a9 != null && this.a9 != e) {
f.endHighlight(this.a9);
}
this.a9 = e;
}
if (g) {
f.endHighlight(e);
}
else if (h) {
f.startHighlight(e);
}
this.h7();
}
bl(a, b) {
let c = null;
return a.registerColumn(b, c, false);
}
bm(a) {
let b = null;
return this.a2.registerColumnObject(a, b, false);
}
ic() {
this.bw = true;
this.aq.a2();
}
get bs() {
return this.ay.f();
}
bz() {
if (this.l == 2) {
return false;
}
if (this.bh == null) {
return false;
}
if (this.a3 == null && stringIsNullOrEmpty(this.gb)) {
return false;
}
return true;
}
an() {
let a = new TreemapTreeData();
if (this.bn == null || (this.bj == null && this.bi == null)) {
return null;
}
for (let b = 0; b < this.a2.count; b++) {
let c = null;
if (this.bg != null && this.bg.count > b) {
c = this.bg.item(b);
}
let d = NaN;
if (this.bz() && this.bh != null && this.bh.count > b) {
d = this.bh.item(b);
if (isNaN_(d)) {
d = 0;
}
}
let e = this.bn.item(b);
let f = null;
let g = "";
if (this.bj != null) {
g = this.bj.item(b) != null ? this.bj.item(b).toString() : "";
}
if (this.bi != null) {
if (this.bi.item(b) == null) {
continue;
}
f = stringReplace(this.bi.item(b).toString(), " ", "_");
}
if (f == null) {
f = stringReplace(g, " ", "_");
if (stringIsNullOrEmpty(f)) {
continue;
}
}
let h = null;
if (this.bk != null) {
h = this.bk.item(b) != null ? stringReplace(this.bk.item(b).toString(), " ", "_") : null;
}
let i = new TreemapTreeNode();
i.l = f;
i.n = h;
i.k = this.a2.item(b);
i.i = b;
i.h = e;
i.g = d;
if (!isNaN_(i.h) && !isNaN_(i.g)) {
i.f = Math.max(0, Math.min(1, i.g / i.h));
}
i.j = c;
i.m = g;
a.e(i);
}
a.f();
return a;
}
ix() {
if (this.am == null) {
this.am = this.an();
if (this.am == null) {
return;
}
this.b0 = true;
this.im();
}
if (this.b0) {
this.b0 = false;
for (let a = 0; a < this.am.d.count; a++) {
let b = this.am.b.item(this.am.d._inner[a]);
b.c.clear();
for (let c = 0; c < this.styleMappings.count; c++) {
if (this.bt(this.styleMappings._inner[c], b)) {
b.c.add(this.styleMappings._inner[c]);
}
}
}
}
if (!this.aq.q()) {
return;
}
let d = new TreemapLayoutSettings();
d.b = this.am;
if (this.ao != null && !this.am.b.containsKey(this.ao.l)) {
this.ao = null;
this.i5(null);
}
else {
if (this.ao != null) {
let e = this.am.b.item(this.ao.l);
if (e != this.ao) {
this.ao = e;
this.i5(this.ao);
}
}
}
d.h = this.kb;
d.c = this.ao;
d.f = this.d0;
d.a = this.al;
let f = this.i;
let g = this.ei();
let h = this.ek();
let i = this.ej();
let j = this.eh();
let k = this.en();
let l = this.ep();
let m = this.eo();
let n = this.em();
let o = this.jb();
let p = this.ke();
let q = this.aq.y("M");
let r = this.aq.aa("M");
let s = q + h + j;
let t = r + l + n;
d.j = new Thickness(1, this.d9, this.ed, this.eb, this.d7);
d.i = new Thickness(1, this.d8, this.ec, this.ea, this.d6);
if (!isNaN_(this.dn)) {
s = this.dn;
}
d.e = s;
if (f == 2) {
d.e = 0;
}
d.d = this.ao == null;
this.s.d(this.f, d);
let u = 1.7976931348623157E+308;
let v = -1.7976931348623157E+308;
if (this.d == 1 || this.d == 3) {
for (let w = 0; w < this.am.d.count; w++) {
let x = 0;
if (this.d == 1) {
x = this.am.b.item(this.am.d._inner[w]).e();
}
else {
x = this.am.b.item(this.am.d._inner[w]).h;
}
if (!isNaN_(x)) {
u = Math.min(x, u);
v = Math.max(x, v);
}
}
}
else {
for (let y = 0; y < this.f.e.count; y++) {
let z = 0;
if (this.d == 0) {
z = this.am.b.item(this.f.e._inner[y]).e();
}
else {
z = this.am.b.item(this.f.e._inner[y]).h;
}
if (!isNaN_(z)) {
u = Math.min(z, u);
v = Math.max(z, v);
}
}
}
for (let aa = 0; aa < this.f.e.count; aa++) {
let ab = this.f.e._inner[aa];
let ac = this.am.b.item(ab);
let ad = this.jy(ac, u, v);
let ae = this.j3(ac);
let af = this.jz(ac);
let ag = this.er(ac);
let ah = this.eq(ac);
let ai = this.ef(ac);
let aj = this.hm(this.f, ac, g, i, k, m, s, t);
let ak = this.j2(ac, ad, af);
let al = this.a7(ac);
let am = 0;
if (this.by(ac)) {
am = this.aq.z(aj);
}
else {
am = this.aq.ab(aj);
}
let an = 0;
if (this.by(ac)) {
an = s;
}
else {
an = this.aq.aa(aj);
}
let ao = this.el(ac);
let ap = this.eg(ac);
this.f.l(ac, aj, ad, ae, af, ak, ag, ah, ai, f, am, an, g, h, i, j, k, l, m, n, o, p, ao, ap);
if (ac.c.count > 0) {
for (let aq = 0; aq < ac.c.count; aq++) {
let ar = ac.b != null && ac.b.count > 0;
if (ac.c._inner[aq].bo == 2 && ar) {
continue;
}
this.f.f(ac, ac.c._inner[aq], runOn(this, this.j2));
}
}
if (this.nodeStyling != null) {
let as = new TreemapNodeStylingEventArgs();
as.item = ac.k;
if (ac.n != null) {
if (this.am.b.containsKey(ac.n)) {
let at = this.am.b.item(ac.n);
as.parentItem = at.k;
as.parentLabel = at.m;
as.parentSum = at.e();
as.parentValue = at.h;
}
}
as.sum = ac.e();
as.value = ac.h;
as.label = ac.m;
as.customValue = ac.j;
if (ac.b != null && ac.b.count > 0) {
as.isParent = true;
}
as.style = new TreemapNodeStyle();
as.highlightingInfo = this.bo.getHighlightingInfo(this, this.a2, ac.i, ac.i, false);
this.nodeStyling(this, as);
this.f.f(ac, as.style, runOn(this, this.j2));
}
}
}
by(a) {
return a.b != null && a.b.count > 0;
}
em() {
return this.dw;
}
eo() {
return this.dy;
}
ep() {
return this.dz;
}
en() {
return this.dx;
}
jb() {
return this.ja;
}
ke() {
return this.kd;
}
eh() {
if (this.i == 2) {
return this.d2;
}
return this.dp;
}
ej() {
if (this.i == 2) {
return this.d4;
}
return this.dr;
}
ek() {
if (this.i == 2) {
return this.d5;
}
return this.ds;
}
ei() {
if (this.i == 2) {
return this.d2;
}
return this.dq;
}
hv(a, b, c, d, e) {
let f = b.length;
let g = b;
let h = ("\u2026");
if (isNaN_(this.ce)) {
if (this.by(a)) {
this.ce = this.aq.z(h);
}
else {
this.ce = this.aq.ab(h);
}
}
if (c <= (this.ce + d + e)) {
if (this.n == 2) {
return "";
}
return h;
}
let i = 0;
if (this.by(a)) {
i = this.aq.z(b);
}
else {
i = this.aq.ab(b);
}
if (i + d + e <= c) {
return b;
}
let j = c / (i + d + e);
let k = truncate(Math.ceil(f * j));
let l = b.substr(0, k) + h;
let m = 0;
if (this.by(a)) {
m = this.aq.z(l);
}
else {
m = this.aq.ab(l);
}
if ((m + d + e) > c) {
f = k;
}
else {
k = k + 1;
l = b.substr(0, k) + h;
if (this.by(a)) {
m = this.aq.z(l);
}
else {
m = this.aq.ab(l);
}
if ((m + d + e) > c) {
f = k;
}
}
while ((i + d + e) > c && f > 0) {
f--;
b = b.substr(0, f) + h;
if (this.n == 2) {
return "";
}
if (this.by(a)) {
i = this.aq.z(b);
}
else {
i = this.aq.ab(b);
}
}
return b;
}
hm(a, b, c, d, e, f, g, h) {
if (b == null) {
if (this.fh != null && this.hn != null && !stringIsNullOrEmpty(this.hn)) {
return this.hn + this.fh;
}
return "";
}
let i = a.o(b);
let j = i.width;
let k = i.height;
let l = b.m;
if (this.ao != null && this.ao == b && this.fh != null) {
let m = null;
let n = b;
while (n.n != null) {
if (this.am.b.containsKey(n.n)) {
m = this.am.b.item(n.n);
if (m.m != null) {
l = m.m + this.fh + l;
}
n = m;
}
}
if (this.hn != null && !stringIsNullOrEmpty(this.hn)) {
l = this.hn + this.fh + l;
}
}
let o = 0;
let p = 0;
if (a.c(b.l)) {
let q = a.a(b.l);
if (b.b.count > 0) {
o = c;
p = d;
if (this.q == 2) {
if (k < g) {
return "";
}
}
}
else {
o = e;
p = f;
if (this.q == 2) {
if (k < h) {
return "";
}
}
}
}
return this.hv(b, l, j, o, p);
}
er(a) {
if (!isNaN_(this.es)) {
return this.es;
}
return this.cj;
}
eq(a) {
if (!isNaN_(this.d1)) {
return this.d1;
}
return this.ci;
}
ef(a) {
if (!isNaN_(this.du)) {
return this.du;
}
return this.cf;
}
el(a) {
if (!isNaN_(this.dt)) {
return this.dt;
}
return this.ch;
}
eg(a) {
return this.cg;
}
jz(a) {
if (this.i == 2) {
return this.j4(a);
}
if (a == this.ap) {
return this.j0(a);
}
if (this.jp != null) {
return this.jp;
}
return this.aq.a7();
}
j4(a) {
if (a == this.ap) {
return this.j5(a);
}
if (this.jw != null) {
return this.jw;
}
return this.aq.bc();
}
j2(a, b, c) {
if (a.b.count > 0) {
if (a == this.ap) {
return this.j1(a, c);
}
let d = this.aq.a8();
let e = this.aq.a9();
if (this.ju != null) {
e = this.ju;
}
if (this.jq != null) {
d = this.jq;
}
return BrushUtil.l(c, d, e);
}
else {
let f = this.aq.a6();
let g = this.aq.be();
if (this.j7 != null) {
g = this.j7;
}
if (this.jo != null) {
f = this.jo;
}
return BrushUtil.l(b, f, g);
}
}
a7(a) {
if (a.b.count > 0) {
if (this.a6 != null) {
return this.a6;
}
return this.aq.j();
}
else {
if (this.a8 != null) {
return this.a8;
}
return this.aq.k();
}
}
onDetachedFromUI() {
this.aq.av();
}
onAttachedToUI() {
this.aq.at();
}
j0(a) {
if (this.jr != null) {
return this.jr;
}
return this.aq.ba();
}
j5(a) {
if (this.jx != null) {
return this.jx;
}
return this.aq.bd();
}
j1(a, b) {
let c = this.aq.a8();
let d = this.aq.a9();
if (this.ju != null) {
d = this.ju;
}
if (this.jq != null) {
c = this.jq;
}
if (this.jt != null) {
d = this.jt;
}
if (this.js != null) {
c = this.js;
}
return BrushUtil.l(b, c, d);
}
j3(a) {
if (this.jv != null) {
return this.jv;
}
return this.aq.bb();
}
jy(a, b, c) {
if (this.b == null || this.b.count == 0) {
return this.j6(a);
}
let d = this.dm(a);
if (isNaN_(d)) {
return this.j6(a);
}
let e = 0;
if (this.bx && this.ez > 0) {
if (d > 0) {
e = (logBase(d, this.ez) - logBase(b, this.ez)) / (logBase(c, this.ez) - logBase(b, this.ez));
}
else {
return this.j6(a);
}
}
else {
let f = c - b;
if (f == 0) {
e = 0;
}
else {
e = (d - b) / (c - b);
}
}
e = e * (this.b.count - 1);
return BrushCollectionUtil.d(this.b, e);
}
dm(a) {
switch (this.d) {
case 0:
case 1: return a.e();
case 2:
case 3: return a.h;
}
return a.e();
}
j6(a) {
return this.aq.a7();
}
i0(a) {
let b = new List$1(TreemapVisual.$, 0);
let c = this.aq.l();
let d = 0;
if (this.i == 2) {
d = this.e2(a, false, d, c, (e) => true, b);
d = this.e2(a, true, d, c, (e) => e.e.b != null && e.e.b.count > 0, b);
}
else {
d = this.e2(a, false, d, c, (e) => true, b);
}
c.count = d;
this.aq.ai(b);
}
e2(a, b, c, d, e, f) {
for (let g = 0; g < a.e.count; g++) {
let h = a.e._inner[g];
let i = a.a(h);
if (!e(i)) {
continue;
}
let j = d.item(c);
if (i.ae.isEmpty || (i.ae.width == 0 && i.ae.height == 0)) {
j.x = 1;
continue;
}
c++;
f.add(j);
let k = i.e;
let l = true;
if (this.nodeRenderStyling != null) {
let m = new TreemapNodeStylingEventArgs();
m.item = k.k;
if (k.n != null) {
if (this.am.b.containsKey(k.n)) {
let n = this.am.b.item(k.n);
m.parentItem = n.k;
m.parentLabel = n.m;
m.parentSum = n.e();
m.parentValue = n.h;
}
}
m.sum = k.e();
m.value = k.h;
m.label = k.m;
m.customValue = k.j;
if (k.b != null && k.b.count > 0) {
m.isParent = true;
}
m.style = new TreemapNodeStyle();
m.isHighlightInProgress = this.bo.inProgress;
m.totalHighlightProgress = this.bo.totalHighlightingProgress;
m.highlightingInfo = this.bo.getHighlightingInfo(this, this.a2, k.i, k.i, false);
this.nodeRenderStyling(this, m);
l = !m.highlightingHandled;
i.y(k, m.style, runOn(this, this.j2));
}
let o = i.e.b.count == 0;
let p = !o && i.a == 2;
j.a = this.a7(i.e);
j.l = i.aa;
j.o = i.ad;
j.m = i.ab;
j.r = new Thickness(1, i.l, i.n, i.m, i.k);
j.s = new Thickness(1, i.r, i.t, i.s, i.q);
j.n = i.ac;
j.j = i.x;
j.i = i.v;
j.x = 0;
j.p = this.ka(i.ae, i.v);
j.b = o;
j.u = !o && !p ? 0 : 1;
j.w = !o && p ? 0 : 1;
j.v = o ? 0 : 1;
j.f = i.o;
j.e = i.j;
j.k = i.z;
j.t = i.ag;
j.h = i.u;
j.d = i.i;
j.q = Rect.empty;
if (i.af.height != i.ae.height) {
j.q = this.ka(i.af, i.v);
j.d = i.p;
}
if (!b && !o && p) {
j.w = 1;
}
if (b && !o && p) {
j.l = null;
j.o = null;
}
if (this.au != 1 && l) {
let q = this.bo.getHighlightingInfo(this, this.a2, k.i, k.i, false);
j.l = this.jn(q, this.au, j.l);
j.o = this.jn(q, this.au, j.o);
j.h = this.di(q, this.au, j.h, i.h, this.bo.totalHighlightingProgress, this.bo.totalHighlightingProgress);
}
}
return c;
}
di(a, b, c, d, e, f) {
if (b == 3) {
let g = 0;
if (a != null) {
g = a.e;
}
if (g > 1) {
g = 1;
}
if (e > 1) {
e = 1;
}
if (f > 1) {
f = 1;
}
g = g - Math.max(e, f);
return d + (1 + g) * (1 - d);
}
return c;
}
jn(a, b, c) {
if (c != null && b == 2) {
let d = 0;
if (a != null) {
d = a.e;
}
let e = d;
e = e * 0.5;
if (e == 0) {
return c;
}
return BrushUtil.o(c, e);
}
return c;
}
ka(a, b) {
let c = this.dh(Math.floor(a.left), b);
let d = this.dh(Math.floor(a.right), b);
let e = this.dh(Math.floor(a.top), b);
let f = this.dh(Math.floor(a.bottom), b);
return new Rect(0, c, e, d - c, f - e);
}
dh(a, b) {
let c = a;
if (b > 0) {
let d = b % 2;
if (d == 0 || d == 1) {
let e = 1;
c = Math.floor(a);
if (c + 0.5 < a) {
e = -1;
c = Math.ceil(a);
}
if (d == 1) {
c += 0.5 * e;
}
}
}
return c;
}
b4() {
return !this.kb.isEmpty && this.aq.q();
}
i1() {
if (!this.b4()) {
return;
}
if (this.bw) {
if (this.bs) {
if (this.ay.g) {
this.ay.t();
}
let a = this.g;
this.g = this.e;
this.e = a;
}
else {
let b = this.g;
this.g = this.f;
this.f = b;
}
}
else if (this.bs) {
this.e.h(this.et, this.g, this.f);
this.i0(this.e);
}
if (this.bw) {
this.ix();
}
if (this.bw && this.b5) {
this.i3();
this.e.h(this.et, this.g, this.f);
this.i0(this.e);
}
else {
if (this.bw) {
this.i0(this.f);
}
}
this.bw = false;
this.aq.a1();
}
bt(a, b) {
let c = null;
switch (a.bq) {
case 1:
c = b.h;
break;
case 0:
c = b.e();
break;
case 2:
c = b.j;
break;
}
if (this.b1(c)) {
let d = this.dj(c);
if (a.bw != null) {
if (this.b1(a.bw)) {
let e = this.dj(a.bw);
if (isNaN_(e) && isNaN_(d)) {
return true;
}
if (d == e) {
return true;
}
}
}
else if (!isNaN_(a.bu) || !isNaN_(a.bt)) {
let f = a.bu;
let g = a.bt;
if (d >= f && d <= g) {
return true;
}
}
}
else if (this.b3(c)) {
if (a.bw != null) {
if (this.b3(a.bw)) {
let h = (a.bw);
if (Base.equalsStatic(h, c)) {
return true;
}
}
}
}
else {
if (Base.equalsStatic(c, a.bw)) {
return true;
}
}
return false;
}
b3(a) {
return typeof a === 'string';
}
dj(a) {
if (typeof a === 'number') {
return a;
}
if (typeof a === 'number') {
return typeGetValue(a);
}
if (typeof a === 'number') {
return typeGetValue(a);
}
if (typeof a === 'number') {
return typeGetValue(a);
}
if (typeof a === 'number') {
return a;
}
if (typeof a === 'number') {
return typeGetValue(a);
}
if (typeof a === 'number') {
return a;
}
return NaN;
}
b1(a) {
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
if (typeof a === 'number') {
return true;
}
return false;
}
w(a) {
let b = this.f;
if (this.bs) {
b = this.e;
}
let c = new List$1(TreemapNodeFrame.$, 0);
for (let d = 0; d < b.e.count; d++) {
let e = b.e._inner[d];
let f = b.a(e);
if (a.x >= f.ae.left && a.x <= f.ae.right && a.y >= f.ae.top && a.y <= f.ae.bottom) {
c.add(f);
}
}
c.aa((g, h) => {
let i = this.e0(h);
let j = this.e0(g);
if (i > j) {
return 1;
}
else if (j > i) {
return -1;
}
return 0;
});
for (let g of fromEnum(c)) {
if (g.e.b.count > 0) {
return g;
}
}
return null;
}
e0(a) {
let b = a.e;
let c = 0;
while (b.n != null) {
if (this.am == null) {
break;
}
if (this.am.b.containsKey(b.n)) {
c++;
b = this.am.b.item(b.n);
}
else {
break;
}
}
return c;
}
x(a) {
let b = this.f;
if (this.bs) {
b = this.e;
}
let c = new List$1(TreemapNodeFrame.$, 0);
for (let d = 0; d < b.e.count; d++) {
let e = b.e._inner[d];
let f = b.a(e);
if (a.x >= f.ae.left && a.x <= f.ae.right && a.y >= f.ae.top && a.y <= f.ae.bottom) {
c.add(f);
}
}
c.aa((g, h) => {
let i = this.e0(h);
let j = this.e0(g);
if (i > j) {
return 1;
}
else if (j > i) {
return -1;
}
return 0;
});
if (this.i == 2) {
for (let g of fromEnum(c)) {
if (g.e.b.count > 0) {
if (this.b2(a, g)) {
return g;
}
}
}
}
for (let h of fromEnum(c)) {
return h;
}
return null;
}
i3() {
this.de = 0;
this.ay.w();
this.ay.v();
this.aq.ay();
}
get b5() {
return this.e3 > 0;
}
provideContainer(a) {
this.aq.au(a);
this.ay.u(a);
this.az.u(a);
}
h9() {
this.aq.ap();
}
get z() {
return this.v;
}
set z(a) {
let b = this.v;
this.v = a;
if (b != a) {
this.ib(b);
this.h8(a);
}
}
h8(a) {
if (a != null) {
if (this.nodePointerEnter != null) {
this.nodePointerEnter(this, this.aa(a));
}
}
}
ib(a) {
if (a != null) {
if (this.nodePointerLeave != null) {
this.nodePointerLeave(this, this.aa(a));
}
}
}
aa(a) {
let b = new TreemapNodePointerEventArgs();
if (a != null) {
b.customValue = a.e.j;
b.item = a.e.k;
b.position = this.j8;
b.sum = a.e.e();
b.value = a.e.h;
b.label = a.e.m;
b.isOverHeader = this.b2(this.j8, a);
if (a.e.n != null && this.am != null && this.am.b.containsKey(a.e.n)) {
let c = this.am.b.item(a.e.n);
b.parentItem = c.k;
b.parentSum = c.e();
b.parentValue = c.h;
b.parentLabel = c.m;
}
}
b.isRightButton = false;
return b;
}
get e5() {
return this.e4;
}
set e5(a) {
let b = this.e4;
this.e4 = a;
if (b != this.e4) {
this.it("FocusItem", b, a);
}
}
io(a) {
this.i8(a);
if (this.nodePointerPressed != null && this.z != null) {
let b = this.aa(this.z);
this.nodePointerPressed(this, b);
}
}
is(a) {
this.i8(a);
let b = false;
if (this.nodePointerReleased != null && this.z != null) {
let c = this.aa(this.z);
this.nodePointerReleased(this, c);
b = c.isHandled;
}
if (!b) {
if (this.y != null) {
if (this.y.e == this.ao && this.b2(a, this.y)) {
this.ao = null;
this.bw = true;
this.aq.a2();
this.i5(null);
return;
}
this.ao = this.y.e;
this.i5(this.y.e);
this.bw = true;
this.aq.a2();
}
else {
this.ao = null;
this.bw = true;
this.i5(null);
this.aq.a2();
}
}
}
i5(a) {
try {
this.bq = true;
if (a == null) {
this.e5 = null;
}
else {
this.e5 = a.k;
}
this.bq = false;
}
finally {
this.bq = false;
}
}
b2(a, b) {
let c = this.f;
if (this.bs) {
c = this.e;
}
if (b == null) {
return false;
}
let d = b;
if (a.x >= d.ae.left && a.x <= d.ae.right && a.y >= d.ae.top && a.y <= d.ae.bottom) {
if (a.y - d.ae.top <= d.j) {
return true;
}
}
return false;
}
ii(source_, a, b, c) {
if (source_.dataView && source_.dataSource) {
source_ = source_.dataView();
}
;
let d = null;
if (this.b6(source_)) {
d = this.a2;
}
if (this.bu(source_)) {
d = this.a3;
}
if (d == null) {
return;
}
d.handleCollectionChanged(new NotifyCollectionChangedEventArgs(2, 2, c, b, a));
}
ie(source_) {
if (source_.dataView && source_.dataSource) {
source_ = source_.dataView();
}
;
let a = null;
if (this.b6(source_)) {
a = this.a2;
}
if (this.bu(source_)) {
a = this.a3;
}
if (a == null) {
return;
}
a.handleCollectionChanged(new NotifyCollectionChangedEventArgs(0, 4));
}
b6(a) {
return Treemap.b7(a, this.dataSource);
}
bu(a) {
return Treemap.b7(a, this.highlightedDataSource);
}
static b7(a, b) {
return a == b;
}
ig(source_, a, b) {
if (source_.dataView && source_.dataSource) {
source_ = source_.dataView();
}
;
let c = null;
if (this.b6(source_)) {
c = this.a2;
}
if (this.bu(source_)) {
c = this.a3;
}
if (c == null) {
return;
}
c.handleCollectionChanged(new NotifyCollectionChangedEventArgs(1, 0, b, a));
}
ih(source_, a, b) {
if (source_.dataView && source_.dataSource) {
source_ = source_.dataView();
}
;
let c = null;
if (this.b6(source_)) {
c = this.a2;
}
if (this.bu(source_)) {
c = this.a3;
}
if (c == null) {
return;
}
c.handleCollectionChanged(new NotifyCollectionChangedEventArgs(1, 1, b, a));
}
ip(a) {
this.i8(a);
this.id(this.z, a, false, false);
}
iq(a) {
this.id(this.z, a, false, true);
this.i8(a);
this.y = null;
this.z = null;
if (!this.bs) {
this.bw = true;
this.aq.a2();
}
}
i8(a) {
this.j8 = { $type: Point_$type, x: a.x, y: a.y };
this.y = this.w(a);
this.z = this.x(a);
this.i6(a);
}
i2(a) {
this.ir(a);
}
ir(a) {
this.i8(a);
this.id(this.z, a, false, false);
if (this.z != null) {
if (this.nodePointerOver != null) {
this.nodePointerOver(this, this.aa(this.z));
}
}
}
i6(a) {
if (!this.bs) {
if (this.b2(a, this.y)) {
let b = this.ap;
this.ap = this.y.e;
if (this.ap != b) {
this.bw = true;
this.aq.a2();
}
}
else {
let c = this.ap;
this.ap = null;
if (this.ap != c) {
this.bw = true;
this.aq.a2();
}
}
}
}
iu(a) {
this.i8(a);
if (this.nodePointerPressed != null && this.z != null) {
let b = this.aa(this.z);
b.isRightButton = true;
this.nodePointerPressed(this, b);
}
}
iv(a) {
this.i8(a);
let b = false;
if (this.nodePointerReleased != null && this.z != null) {
let c = this.aa(this.z);
c.isRightButton = true;
this.nodePointerReleased(this, c);
b = c.isHandled;
}
if (!b) {
this.y = null;
this.ao = null;
this.i5(null);
this.bw = true;
this.aq.a2();
}
}
iw(a) {
this.bw = true;
this.aq.a2();
}
}
Treemap.$t = markType(Treemap, 'Treemap', Base.$, [INotifyPropertyChanged_$type]);
return Treemap;
})();
/**
* @hidden
*/
export let TreemapNodeStyle = /*@__PURE__*/ (() => {
class TreemapNodeStyle extends Base {
constructor() {
super(...arguments);
this.a = null;
this.e = new HashSet$1(String_$type, 0);
this.a9 = null;
this.a8 = null;
this.bb = null;
this.ad = null;
this.bd = null;
this.ba = null;
this.i = DeviceUtils.g(5);
this.k = DeviceUtils.g(3);
this.j = DeviceUtils.g(5);
this.h = DeviceUtils.g(3);
this.m = DeviceUtils.g(5);
this.o = DeviceUtils.g(3);
this.n = DeviceUtils.g(5);
this.l = DeviceUtils.g(3);
this.g = NaN;
this.a5 = 1;
this.bl = 1;
this.a7 = null;
this.bc = null;
this.q = NaN;
this.p = NaN;
this.f = NaN;
this.b = false;
this.propertyChanged = null;
}
a3(a, b, c) {
if (this.propertyChanged != null) {
this.propertyChanged(this, new PropertyChangedEventArgs(a));
}
this.a4(a, b, c);
}
a2() {
this.e.clear();
}
d(a) {
return this.e.contains(a);
}
a4(a, b, c) {
if (!this.e.contains(a)) {
this.e.add_1(a);
}
if (this.a != null) {
this.a.iw(this);
}
}
get bg() {
return this.a9;
}
set bg(a) {
let b = this.a9;
this.a9 = a;
if (b != this.a9) {
this.a3("HeaderHoverBackground", b, a);
}
}
get bf() {
return this.a8;
}
set bf(a) {
let b = this.a8;
this.a8 = a;
if (b != this.a8) {
this.a3("HeaderBackground", b, a);
}
}
get bi() {
return this.bb;
}
set bi(a) {
let b = this.bb;
this.bb = a;
if (b != this.bb) {
this.a3("HeaderTextColor", b, a);
}
}
get aq() {
return this.ad;
}
set aq(a) {
let b = this.ad;
this.ad = a;
if (b != this.ad) {
this.a3("Label", b, a);
}
}
get bk() {
return this.bd;
}
set bk(a) {
let b = this.bd;
this.bd = a;
if (b != this.bd) {
this.a3("TextColor", b, a);
}
}
get bh() {
return this.ba;
}
set bh(a) {
let b = this.ba;
this.ba = a;
if (b != this.ba) {
this.a3("HeaderHoverTextColor", b, a);
}
}
get u() {
return this.i;
}
set u(a) {
let b = this.i;
this.i = a;
if (b != this.i) {
this.a3("HeaderLabelLeftMargin", b, a);
}
}
get w() {
return this.k;
}
set w(a) {
let b = this.k;
this.k = a;
if (b != this.k) {
this.a3("HeaderLabelTopMargin", b, a);
}
}
get v() {
return this.j;
}
set v(a) {
let b = this.j;
this.j = a;
if (b != this.j) {
this.a3("HeaderLabelRightMargin", b, a);
}
}
get t() {
return this.h;
}
set t(a) {
let b = this.h;
this.h = a;
if (b != this.h) {
this.a3("HeaderLabelBottomMargin", b, a);
}
}
get y() {
return this.m;
}
set y(a) {
let b = this.m;
this.m = a;
if (b != this.m) {
this.a3("LabelLeftMargin", b, a);
}
}
get aa() {
return this.o;
}
set aa(a) {
let b = this.o;
this.o = a;
if (b != this.o) {
this.a3("LabelTopMargin", b, a);
}
}
get z() {
return this.n;
}
set z(a) {
let b = this.n;
this.n = a;
if (b != this.n) {
this.a3("LabelRightMargin", b, a);
}
}
get x() {
return this.l;
}
set x(a) {
let b = this.l;
this.l = a;
if (b != this.l) {
this.a3("LabelBottomMargin", b, a);
}
}
get s() {
return this.g;
}
set s(a) {
let b = this.g;
this.g = a;
if (b != this.g) {
this.a3("HeaderHeight", b, a);
}
}
get a6() {
return this.a5;
}
set a6(a) {
let b = this.a5;
this.a5 = a;
if (b != this.a5) {
this.a3("LabelHorizontalAlignment", enumGetBox(HorizontalAlignment_$type, b), enumGetBox(HorizontalAlignment_$type, a));
}
}
get bm() {
return this.bl;
}
set bm(a) {
let b = this.bl;
this.bl = a;
if (b != this.bl) {
this.a3("LabelVerticalAlignment", enumGetBox(VerticalAlignment_$type, b), enumGetBox(VerticalAlignment_$type, a));
}
}
get be() {
return this.a7;
}
set be(a) {
let b = this.a7;
this.a7 = a;
if (b != this.a7) {
this.a3("Fill", b, a);
}
}
get bj() {
return this.bc;
}
set bj(a) {
let b = this.bc;
this.bc = a;
if (b != this.bc) {
this.a3("Outline", b, a);
}
}
get ac() {
return this.q;
}
set ac(a) {
let b = this.q;
this.q = a;
if (b != this.q) {
this.a3("StrokeThickness", b, a);
}
}
get ab() {
return this.p;
}
set ab(a) {
let b = this.p;
this.p = a;
if (b != this.p) {
this.a3("Opacity", b, a);
}
}
get r() {
return this.f;
}
set r(a) {
let b = this.f;
this.f = a;
if (b != this.f) {
this.a3("FadeOpacity", b, a);
}
}
get c() {
return this.b;
}
set c(a) {
let b = this.b;
this.b = a;
if (b != this.b) {
this.a3("HighlightingHandled", b, a);
}
}
}
TreemapNodeStyle.$t = markType(TreemapNodeStyle, 'TreemapNodeStyle', Base.$, [INotifyPropertyChanged_$type]);
return TreemapNodeStyle;
})();
/**
* @hidden
*/
export let TreemapNodeStyleMapping = /*@__PURE__*/ (() => {
class TreemapNodeStyleMapping extends TreemapNodeStyle {
constructor() {
super(...arguments);
this.bn = 0;
this.bx = null;
this.bs = NaN;
this.br = NaN;
this.bv = null;
this.bp = 1;
}
get bo() {
return this.bn;
}
set bo(a) {
let b = this.bn;
this.bn = a;
if (b != this.bn) {
this.a3("TargetType", enumGetBox(TreemapNodeStyleMappingTargetType_$type, b), enumGetBox(TreemapNodeStyleMappingTargetType_$type, a));
}
}
get b1() {
return this.bx;
}
set b1(a) {
let b = this.bx;
this.bx = a;
if (b != this.bx) {
this.a3("Name", b, a);
}
}
get bu() {
return this.bs;
}
set bu(a) {
let b = this.bs;
this.bs = a;
if (b != this.bs) {
this.a3("MinimumValue", b, a);
}
}
get bt() {
return this.br;
}
set bt(a) {
let b = this.br;
this.br = a;
if (b != this.br) {
this.a3("MaximumValue", b, a);
}
}
get bw() {
return this.bv;
}
set bw(a) {
let b = this.bv;
this.bv = a;
if (b != this.bv) {
this.a3("Value", b, a);
}
}
get bq() {
return this.bp;
}
set bq(a) {
let b = this.bp;
this.bp = a;
if (b != this.bp) {
this.a3("MappingMode", enumGetBox(TreemapValueMappingMode_$type, b), enumGetBox(TreemapValueMappingMode_$type, a));
}
}
}
TreemapNodeStyleMapping.$t = markType(TreemapNodeStyleMapping, 'TreemapNodeStyleMapping', TreemapNodeStyle.$);
return TreemapNodeStyleMapping;
})();
/**
* @hidden
*/
export let TreemapNodeStyleMappingCollection = /*@__PURE__*/ (() => {
class TreemapNodeStyleMappingCollection extends ObservableCollection$1 {
constructor() {
super(TreemapNodeStyleMapping.$, 0);
this.collectionResetting = null;
}
p() {
if (this.collectionResetting != null) {
this.collectionResetting(this, null);
}
super.p();
}
}
TreemapNodeStyleMappingCollection.$t = markType(TreemapNodeStyleMappingCollection, 'TreemapNodeStyleMappingCollection', ObservableCollection$1.$.specialize(TreemapNodeStyleMapping.$));
return TreemapNodeStyleMappingCollection;
})();
/**
* @hidden
*/
export let TreemapNodeStylingEventArgs = /*@__PURE__*/ (() => {
class TreemapNodeStylingEventArgs extends EventArgs {
constructor() {
super(...arguments);
this._value = 0;
this._sum = 0;
this._customValue = null;
this._item = null;
this._parentItem = null;
this._label = null;
this._parentValue = 0;
this._parentLabel = null;
this._parentSum = 0;
this._isParent = false;
this._style = null;
this._highlightingInfo = null;
this._highlightingHandled = false;
this._isHighlightInProgress = false;
this._totalHighlightProgress = 0;
}
get value() {
return this._value;
}
set value(a) {
this._value = a;
}
get sum() {
return this._sum;
}
set sum(a) {
this._sum = a;
}
get customValue() {
return this._customValue;
}
set customValue(a) {
this._customValue = a;
}
get item() {
return this._item;
}
set item(a) {
this._item = a;
}
get parentItem() {
return this._parentItem;
}
set parentItem(a) {
this._parentItem = a;
}
get label() {
return this._label;
}
set label(a) {
this._label = a;
}
get parentValue() {
return this._parentValue;
}
set parentValue(a) {
this._parentValue = a;
}
get parentLabel() {
return this._parentLabel;
}
set parentLabel(a) {
this._parentLabel = a;
}
get parentSum() {
return this._parentSum;
}
set parentSum(a) {
this._parentSum = a;
}
get isParent() {
return this._isParent;
}
set isParent(a) {
this._isParent = a;
}
get style() {
return this._style;
}
set style(a) {
this._style = a;
}
get highlightingInfo() {
return this._highlightingInfo;
}
set highlightingInfo(a) {
this._highlightingInfo = a;
}
get highlightingHandled() {
return this._highlightingHandled;
}
set highlightingHandled(a) {
this._highlightingHandled = a;
}
get isHighlightInProgress() {
return this._isHighlightInProgress;
}
set isHighlightInProgress(a) {
this._isHighlightInProgress = a;
}
get totalHighlightProgress() {
return this._totalHighlightProgress;
}
set totalHighlightProgress(a) {
this._totalHighlightProgress = a;
}
}
TreemapNodeStylingEventArgs.$t = markType(TreemapNodeStylingEventArgs, 'TreemapNodeStylingEventArgs', EventArgs.$);
return TreemapNodeStylingEventArgs;
})();
/**
* @hidden
*/
export let TreemapFrame = /*@__PURE__*/ (() => {
class TreemapFrame extends Base {
constructor() {
super();
this.d = null;
this.e = null;
this.e = new List$1(String_$type, 0);
this.d = new Dictionary$2(String_$type, TreemapNodeFrame.$, 0);
}
h(a, b, c) {
this.g();
this.k(a, b, c);
this.j(a, b, c);
this.i(a, b, c);
}
i(a, b, c) {
for (let d = 0; d < b.e.count; d++) {
let e = b.e._inner[d];
if (c.d.containsKey(e)) {
let f = TreemapNodeFrame.b(a, b.d.item(e), c.d.item(e));
this.d.addItem(f.w, f);
this.e.add(f.w);
}
}
}
j(a, b, c) {
for (let d = 0; d < c.e.count; d++) {
let e = c.e._inner[d];
if (!b.d.containsKey(e)) {
let f = TreemapNodeFrame.c(a, c.d.item(e));
this.d.addItem(f.w, f);
this.e.add(f.w);
}
}
}
k(a, b, c) {
for (let d = 0; d < b.e.count; d++) {
let e = b.e._inner[d];
if (!c.d.containsKey(e)) {
let f = TreemapNodeFrame.d(a, b.d.item(e));
this.d.addItem(f.w, f);
this.e.add(f.w);
}
}
}
m(a, b) {
let c;
if (!((() => { let d = this.d.tryGetValue(a.l, c); c = d.p1; return d.ret; })())) {
c = new TreemapNodeFrame();
c.w = a.l;
c.e = a;
this.d.item(c.w, c);
this.e.add(c.w);
}
c.ae = b;
let d = c.ae;
if (!isNaN_(a.f)) {
let e = b.height * a.f;
let f = b.height - e;
d = new Rect(0, b.x, b.y + f, b.width, e);
}
c.af = d;
}
n(a, b) {
this.d.item(a.l).g = b;
}
b(a) {
if (!this.d.containsKey(a.l)) {
return false;
}
return this.d.item(a.l).g;
}
o(a) {
let b;
if (!((() => { let c = this.d.tryGetValue(a.l, b); b = c.p1; return c.ret; })())) {
return Rect.empty;
}
return b.ae;
}
l(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) {
let y;
if (!((() => { let z = this.d.tryGetValue(a.l, y); y = z.p1; return z.ret; })())) {
return;
}
y.x = b;
y.aa = c;
y.ad = d;
y.v = g;
y.u = h;
y.ab = e;
y.a = j;
y.o = k;
y.j = l;
y.ac = f;
y.l = m;
y.n = n;
y.m = o;
y.k = p;
y.r = q;
y.t = r;
y.s = s;
y.q = t;
y.z = u;
y.ag = v;
y.h = i;
y.p = w;
y.i = x;
}
g() {
this.e.clear();
this.d.clear();
}
c(a) {
return this.d.containsKey(a);
}
a(a) {
return this.d.item(a);
}
f(a, b, c) {
let d;
if (!((() => { let e = this.d.tryGetValue(a.l, d); d = e.p1; return e.ret; })())) {
return;
}
d.y(a, b, c);
}
}
TreemapFrame.$t = markType(TreemapFrame, 'TreemapFrame');
return TreemapFrame;
})();
/**
* @hidden
*/
export let TreemapNodeFrame = /*@__PURE__*/ (() => {
class TreemapNodeFrame extends Base {
constructor() {
super();
this.ae = null;
this.af = null;
this.p = 0;
this.i = 0;
this.e = null;
this.w = null;
this.x = null;
this.aa = null;
this.ad = null;
this.v = 0;
this.u = 0;
this.h = 0;
this.l = 0;
this.n = 0;
this.m = 0;
this.k = 0;
this.r = 0;
this.t = 0;
this.s = 0;
this.q = 0;
this.ac = null;
this.ab = null;
this.a = 0;
this.o = 0;
this.j = 0;
this.z = 0;
this.ag = 0;
this.g = false;
this.ae = Rect.empty;
this.u = 1;
this.h = 0.3;
}
static b(a, b, c) {
let d = new TreemapNodeFrame();
d.e = c.e;
d.w = c.w;
d.x = c.x;
let e = c.ae;
if (e.isEmpty) {
e = new Rect(0, 0, 0, 0, 0);
}
let f = b.ae;
if (f.isEmpty) {
f = new Rect(0, 0, 0, 0, 0);
}
d.ae = new Rect(0, f.left + (e.left - f.left) * a, f.top + (e.top - f.top) * a, f.width + (e.width - f.width) * a, f.height + (e.height - f.height) * a);
let g = c.af;
if (g.isEmpty) {
g = new Rect(0, 0, 0, 0, 0);
}
let h = b.af;
if (h.isEmpty) {
h = new Rect(0, 0, 0, 0, 0);
}
d.af = new Rect(0, h.left + (g.left - h.left) * a, h.top + (g.top - h.top) * a, h.width + (g.width - h.width) * a, h.height + (g.height - h.height) * a);
d.aa = BrushUtil.n(b.aa, a, c.aa, 0);
d.ad = BrushUtil.n(b.ad, a, c.ad, 0);
d.ab = BrushUtil.n(b.ab, a, c.ab, 0);
d.ac = BrushUtil.n(b.ac, a, c.ac, 0);
d.v = b.v + (c.v - b.v) * a;
d.l = b.l + (c.l - b.l) * a;
d.n = b.n + (c.n - b.n) * a;
d.m = b.m + (c.m - b.m) * a;
d.k = b.k + (c.k - b.k) * a;
d.r = b.r + (c.r - b.r) * a;
d.t = b.t + (c.t - b.t) * a;
d.s = b.s + (c.s - b.s) * a;
d.q = b.q + (c.q - b.q) * a;
d.o = b.o + (c.o - b.o) * a;
d.j = b.j + (c.j - b.j) * a;
d.z = a < 0.5 ? b.z : c.z;
d.ag = a < 0.5 ? b.ag : c.ag;
d.a = a < 0.5 ? b.a : c.a;
d.u = b.u + (c.u - b.u) * a;
d.h = b.h + (c.h - b.h) * a;
d.p = b.p + (c.p - b.p) * a;
d.i = b.i + (c.i - b.i) * a;
return d;
}
static d(a, b) {
let c = new Rect(0, 0, 0, 0, 0);
let d = new TreemapNodeFrame();
d.e = b.e;
d.x = b.x;
d.w = b.w;
let e = b.ae;
if (e.isEmpty) {
e = new Rect(0, 0, 0, 0, 0);
}
d.ae = new Rect(0, e.left + (c.left - e.left) * a, e.top + (c.top - e.top) * a, e.width + (c.width - e.width) * a, e.height + (c.height - e.height) * a);
let f = b.af;
if (f.isEmpty) {
f = new Rect(0, 0, 0, 0, 0);
}
d.af = new Rect(0, f.left + (c.left - f.left) * a, f.top + (c.top - f.top) * a, f.width + (c.width - f.width) * a, f.height + (c.height - f.height) * a);
d.aa = BrushUtil.n(b.aa, a, null, 0);
d.ad = BrushUtil.n(b.ad, a, null, 0);
d.ab = BrushUtil.n(b.ab, a, null, 0);
d.ac = BrushUtil.n(b.ac, a, null, 0);
d.v = b.v + (0 - b.v) * a;
d.l = b.l + (0 - b.l) * a;
d.n = b.n + (0 - b.n) * a;
d.m = b.m + (0 - b.m) * a;
d.k = b.k + (0 - b.k) * a;
d.r = b.r + (0 - b.r) * a;
d.t = b.t + (0 - b.t) * a;
d.s = b.s + (0 - b.s) * a;
d.q = b.q + (0 - b.q) * a;
d.o = b.o + (0 - b.o) * a;
d.j = b.j + (0 - b.j) * a;
d.z = b.z;
d.ag = b.ag;
d.a = b.a;
d.u = b.u + (0 - b.u) * a;
d.h = b.h + (0 - b.h) * a;
d.p = b.p + (0 - b.p) * a;
d.i = b.i + (0 - b.i) * a;
return d;
}
static c(a, b) {
let c = new Rect(0, 0, 0, 0, 0);
let d = new TreemapNodeFrame();
d.e = b.e;
d.x = b.x;
d.w = b.w;
let e = b.ae;
if (e.isEmpty) {
e = new Rect(0, 0, 0, 0, 0);
}
d.ae = new Rect(0, c.left + (e.left - c.left) * a, c.top + (e.top - c.top) * a, c.width + (e.width - c.width) * a, c.height + (e.height - c.height) * a);
let f = b.af;
if (f.isEmpty) {
f = new Rect(0, 0, 0, 0, 0);
}
d.af = new Rect(0, c.left + (f.left - c.left) * a, c.top + (f.top - c.top) * a, c.width + (f.width - c.width) * a, c.height + (f.height - c.height) * a);
d.aa = BrushUtil.n(null, a, b.aa, 0);
d.ad = BrushUtil.n(null, a, b.ad, 0);
d.ab = BrushUtil.n(null, a, b.ab, 0);
d.ac = BrushUtil.n(null, a, b.ac, 0);
d.v = 0 + (b.v - 0) * a;
d.l = 0 + (b.l - 0) * a;
d.n = 0 + (b.n - 0) * a;
d.m = 0 + (b.m - 0) * a;
d.k = 0 + (b.k - 0) * a;
d.r = 0 + (b.r - 0) * a;
d.t = 0 + (b.t - 0) * a;
d.s = 0 + (b.s - 0) * a;
d.q = 0 + (b.q - 0) * a;
d.o = 0 + (b.o - 0) * a;
d.j = 0 + (b.j - 0) * a;
d.z = b.z;
d.ag = b.ag;
d.a = b.a;
d.u = 0 + (b.u - 0) * a;
d.h = 0 + (b.h - 0) * a;
d.p = 0 + (b.p - 0) * a;
d.i = 0 + (b.i - 0) * a;
return d;
}
f(a) {
let b = new HighlightingInfo();
b.i = a;
b.g = this.e.i;
b.f = this.e.i;
return b;
}
y(a, b, c) {
let d;
d = this;
let e = a.b != null && a.b.count > 0;
if (b.d("Label")) {
d.x = b.aq;
}
if (b.d("Fill")) {
d.aa = b.be;
}
if (b.d("LabelHorizontalAlignment")) {
d.z = b.a6;
}
if (b.d("Outline")) {
d.ad = b.bj;
}
if (b.d("StrokeThickness")) {
d.v = b.ac;
}
if (b.d("Opacity")) {
d.u = b.ab;
}
if (b.d("FadeOpacity")) {
d.h = b.r;
}
if (b.d("HeaderBackground")) {
d.ab = b.bf;
}
if (e) {
if (b.d("HeaderTextColor")) {
d.ac = b.bi;
}
else if (b.d("Fill") || b.d("HeaderBackground")) {
d.ac = c(a, d.aa, d.ab);
}
}
else {
if (b.d("TextColor")) {
d.ac = b.bk;
}
else if (b.d("Fill") || b.d("HeaderBackground")) {
d.ac = c(a, d.aa, d.ab);
}
}
if (b.d("HeaderLabelLeftMargin")) {
d.l = b.u;
}
if (b.d("HeaderLabelTopMargin")) {
d.n = b.w;
}
if (b.d("HeaderLabelRightMargin")) {
d.m = b.v;
}
if (b.d("HeaderLabelBottomMargin")) {
d.k = b.t;
}
if (b.d("LabelLeftMargin")) {
d.r = b.y;
}
if (b.d("LabelTopMargin")) {
d.t = b.aa;
}
if (b.d("LabelRightMargin")) {
d.s = b.z;
}
if (b.d("LabelBottomMargin")) {
d.q = b.x;
}
}
}
TreemapNodeFrame.$t = markType(TreemapNodeFrame, 'TreemapNodeFrame');
return TreemapNodeFrame;
})();