UNPKG

igniteui-angular-gauges

Version:

Ignite UI Angular gauge components.

20,776 lines 772 kB
/*!
    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 * as i0 from '@angular/core';
import { ɵɵngDeclareFactory, ɵɵFactoryTarget, ɵɵngDeclareComponent, ɵɵngDeclareClassMetadata, Component, Input, EventEmitter, Renderer2, ViewContainerRef, NgZone, ComponentFactoryResolver, Injector, ChangeDetectionStrategy, ViewChild, ContentChildren, Output, ɵɵngDeclareNgModule, ɵɵngDeclareInjector, NgModule } from '@angular/core';
import { PathGeometry, PathFigure, LineSegment, Point_$type, BrushUtil, markType, Base, List$1, GeometryUtil, ArcSegment, Size, PolyLineSegment, InterpolationUtil, markEnum, PropertyChangedEventArgs, DependencyObject, INotifyPropertyChanged_$type, markDep, DependencyProperty, PropertyMetadata, Brush, ObservableCollection$1, EventArgs, fromEnum, StringBuilder, PointData, SizeData, String_$type, typeCast, TextBlock, Path, delegateCombine, runOn, Rect, DoubleAnimator, StackPool$1, isNaN_, isInfinity, RectData, AppearanceHelper, PathVisualData, GetPointsSettings, PolygonUtil, Number_$type, Tuple$2, DeviceUtils, delegateRemove, BindingFormatter, fromEn, FontUtil, Control, HighlightedValueDisplayMode_$type, enumGetBox, Array_$type, BrushCollection, Dictionary$2, CanvasGestureDOMEventProxy, intDivide, arrayCopy1, RenderingContext, CanvasViewRenderer, TypeRegistrar, EventProxy, truncate, stringIsNullOrEmpty, FontDefaults, brushToString, stringToBrush, toSpinal, initializePropertiesFromCss, SyncableObservableCollection$2, IgCollection, NamePatcher, AngularRenderer, CollectionAdapter, NotifyCollectionChangedAction, AngularWrapper, IgxDataContext, ensureEnum, fromBrushCollection, toBrushCollection, ensureBool, arrayFindByName, toPoint, IgxNumberFormatSpecifierModule, IgxNumberFormatSpecifierDynamicModule, IgxDVInteractivityModule, IgxDVInteractivityDynamicModule, DoubleValueChangedEventArgs, IgxDoubleValueChangedEventArgs, MathUtil, PathSegment, FontInfo, Stack$1, TransformGroup, RotateTransform, SweepDirection_$type, Delegate_$type, fromPoint } from 'igniteui-angular-core';
import { __extends, __values } from 'tslib';
import { CommonModule } from '@angular/common';

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphBackingFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphBackingFrame, _super);
    function LinearGraphBackingFrame() {
        var _this = _super.call(this) || this;
        _this.e = null;
        _this.f = null;
        _this.c = 0;
        _this.b = 0;
        _this.a = 0;
        return _this;
    }
    LinearGraphBackingFrame.prototype.g = function (a, b, c) {
        var _this = this;
        var d = new PathGeometry();
        var e = new PathFigure();
        var f, g, h, i;
        if (c == 1) {
            f = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a * _this.a, y: 0 };
                return $ret;
            })());
            g = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a * _this.b, y: 0 };
                return $ret;
            })());
            h = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a * _this.b, y: b };
                return $ret;
            })());
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a * _this.a, y: b };
                return $ret;
            })());
        }
        else {
            f = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: 0, y: a * (1 - _this.b) };
                return $ret;
            })());
            g = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: b, y: a * (1 - _this.b) };
                return $ret;
            })());
            h = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: b, y: a * (1 - _this.a) };
                return $ret;
            })());
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: 0, y: a * (1 - _this.a) };
                return $ret;
            })());
        }
        e._startPoint = f.c;
        e._segments.add(g);
        e._segments.add(h);
        e._segments.add(i);
        e._isClosed = true;
        d.c.add(e);
        return d;
    };
    LinearGraphBackingFrame.prototype.d = function (a, b, c) {
        this.c = b.c + (c.c - b.c) * a;
        this.e = BrushUtil.n(b.e, a, c.e, 0);
        this.f = BrushUtil.n(b.f, a, c.f, 0);
        this.b = b.b + (c.b - b.b) * a;
        this.a = b.a + (c.a - b.a) * a;
    };
    LinearGraphBackingFrame.$t = markType(LinearGraphBackingFrame, 'LinearGraphBackingFrame');
    return LinearGraphBackingFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphRectFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphRectFrame, _super);
    function LinearGraphRectFrame() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.e = 0;
        _this.f = 0;
        _this.b = 0;
        _this.c = 0;
        _this.g = 0;
        _this.d = 0;
        _this.i = null;
        _this.j = null;
        _this.h = 0;
        return _this;
    }
    LinearGraphRectFrame.prototype.k = function (a, b, c, d) {
        var _this = this;
        var e = new PathGeometry();
        var f = new PathFigure();
        var g, h, i, j;
        if (d == 1) {
            g = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a.x + b * _this.b, y: c - _this.d };
                return $ret;
            })());
            h = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a.x + b * _this.c, y: c - _this.d };
                return $ret;
            })());
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a.x + b * _this.f, y: c - _this.g };
                return $ret;
            })());
            j = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: a.x + b * _this.e, y: c - _this.g };
                return $ret;
            })());
        }
        else {
            g = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: _this.g, y: b * (1 - _this.f) };
                return $ret;
            })());
            h = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: _this.d, y: b * (1 - _this.c) };
                return $ret;
            })());
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: _this.d, y: b * (1 - _this.b) };
                return $ret;
            })());
            j = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: _this.g, y: b * (1 - _this.e) };
                return $ret;
            })());
        }
        f._startPoint = g.c;
        f._segments.add(h);
        f._segments.add(i);
        f._segments.add(j);
        f._isClosed = true;
        e.c.add(f);
        return e;
    };
    LinearGraphRectFrame.a = function (a, b, c, d) {
        var e = new LinearGraphRectFrame();
        e.i = BrushUtil.n(c.i, a, d.i, 0);
        e.j = BrushUtil.n(c.j, a, d.j, 0);
        e.h = b * c.h + a * d.h;
        e.e = b * c.e + a * d.e;
        e.f = b * c.f + a * d.f;
        e.g = b * c.g + a * d.g;
        e.d = b * c.d + a * d.d;
        e.b = b * c.b + a * d.b;
        e.c = b * c.c + a * d.c;
        return e;
    };
    LinearGraphRectFrame.$t = markType(LinearGraphRectFrame, 'LinearGraphRectFrame');
    return LinearGraphRectFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphFrame, _super);
    function LinearGraphFrame() {
        var _this = _super.call(this) || this;
        _this.a = null;
        _this.b = null;
        _this.a = new LinearGraphBackingFrame();
        _this.b = new LinearGraphRectFrame();
        return _this;
    }
    LinearGraphFrame.prototype.d = function (a, b, c) {
        this.b = LinearGraphRectFrame.a(a, 1 - a, b.b, c.b);
        this.c.y(a, b.c, c.c);
        this.a.d(a, b.a, c.a);
    };
    LinearGraphFrame.$t = markType(LinearGraphFrame, 'LinearGraphFrame');
    return LinearGraphFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var MorphSegment = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(MorphSegment, _super);
    function MorphSegment() {
        var _this = _super.call(this) || this;
        _this.f = null;
        _this.g = null;
        _this.b = false;
        _this.h = 0;
        _this.e = false;
        _this.a = false;
        _this.d = false;
        _this.c = false;
        _this.f = new List$1(Point_$type, 0);
        _this.g = new List$1(Point_$type, 0);
        return _this;
    }
    MorphSegment.prototype.i = function (a) {
        this.g.clear();
        var b = 20;
        if (this.b) {
            var c = void 0;
            var d = void 0;
            var e = void 0;
            if (this.f.count == 0) {
                d = { $type: Point_$type, x: 0, y: 0 };
                e = { $type: Point_$type, x: 0, y: 0 };
            }
            else {
                d = this.f._inner[0];
                e = this.f._inner[1];
            }
            var f = GeometryUtil.v(d, e, this.h, !this.c, this.d);
            var g = GeometryUtil.j(f, d);
            var h = GeometryUtil.j(f, e);
            while (this.c && h < g) {
                h += Math.PI * 2;
            }
            while (!this.c && h > g) {
                h -= Math.PI * 2;
            }
            var i = 0;
            for (var j = 0; j < b; j++) {
                c = j / b;
                if (this.c) {
                    i = g + (h - g) * c;
                }
                else {
                    i = g - (g - h) * c;
                }
                this.g.add({ $type: Point_$type, x: f.x + Math.cos(i) * this.h, y: f.y + Math.sin(i) * this.h });
            }
        }
        else {
            var k = void 0;
            var l = void 0;
            var m = void 0;
            if (this.f.count == 0) {
                l = { $type: Point_$type, x: 0, y: 0 };
                m = { $type: Point_$type, x: 0, y: 0 };
            }
            else {
                l = this.f._inner[0];
                m = this.f._inner[1];
            }
            var n = l.x;
            var o = l.y;
            var p = m.x;
            var q = m.y;
            for (var r = 0; r < b; r++) {
                k = r / b;
                this.g.add({ $type: Point_$type, x: n + (p - n) * k, y: o + (q - o) * k });
            }
        }
        this.a = true;
    };
    MorphSegment.prototype.l = function (a, b, c, d, e) {
        var f = this;
        var g = null;
        var h = f.f;
        var i = h.count;
        if (i == 0) {
            return a;
        }
        if (b._segments.count == 0) {
            var j = h._inner[0];
            b._startPoint = { $type: Point_$type, x: d + c * j.x, y: e + c * j.y };
        }
        if (f.b) {
            if (i > 1) {
                var k = new ArcSegment();
                g = k;
                var l = h._inner[1];
                k.e = { $type: Point_$type, x: d + c * l.x, y: e + c * l.y };
                k.b = f.d;
                k.d = f.c ? 1 : 0;
                k.f = new Size(1, f.h * c, f.h * c);
                a = k.e;
            }
        }
        else {
            var m = new PolyLineSegment();
            g = m;
            if (i > 1) {
                var n = void 0;
                var o = m._points;
                for (var p = 1; p < i; p++) {
                    n = h._inner[p];
                    o.add({ $type: Point_$type, x: d + c * n.x, y: e + c * n.y });
                }
                a = m._points._inner[m._points.count - 1];
            }
        }
        b._segments.add(g);
        return a;
    };
    MorphSegment.prototype.j = function (a, b, c) {
        var d = this;
        var e = d;
        var f = b.f;
        var g = false;
        var h = c.f;
        var i = false;
        if (f.count == 0 && h.count == 0) {
            return;
        }
        e.b = false;
        e.e = false;
        e.a = false;
        e.d = false;
        e.c = false;
        if (b.e) {
            g = true;
        }
        if (c.e) {
            i = true;
        }
        if (b.b != c.b || b.e || c.e || b.d != c.d || b.c != c.c) {
            g = true;
            i = true;
            e.e = true;
        }
        if (g && !b.e) {
            if (!b.a) {
                b.i(c.h);
            }
            f = b.g;
        }
        if (i && !c.e) {
            if (!c.a) {
                c.i(b.h);
            }
            h = c.g;
        }
        if (b.e) {
            f = b.g;
        }
        if (c.e) {
            h = c.g;
        }
        e.g.clear();
        if (b.b && c.b) {
            e.b = true;
        }
        InterpolationUtil.c(e.f, a, f, h);
        if (e.e) {
            var j = void 0;
            var k = e.f.count;
            for (var l = 0; l < k; l++) {
                j = e.f._inner[l];
                e.g.add({ $type: Point_$type, x: j.x, y: j.y });
            }
            e.a = true;
        }
        if (b.d == c.d) {
            e.d = c.d;
        }
        if (b.c == c.c) {
            e.c = c.c;
        }
        if (e.b) {
            e.h = b.h + (c.h - b.h) * a;
        }
    };
    MorphSegment.prototype.k = function () {
        this.f.clear();
        this.g.clear();
        this.e = false;
        this.a = false;
        this.b = false;
    };
    MorphSegment.$t = markType(MorphSegment, 'MorphSegment');
    return MorphSegment;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphNeedleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphNeedleFrame, _super);
    function LinearGraphNeedleFrame() {
        var _this = _super.call(this) || this;
        _this.n = 0;
        _this.m = 0;
        _this.q = 0;
        _this.p = 0;
        _this.l = 0;
        _this.r = null;
        _this.s = null;
        _this.o = 0;
        _this.f = null;
        _this.g = null;
        _this.d = null;
        _this.j = null;
        _this.i = null;
        _this.k = null;
        _this.e = null;
        _this.h = null;
        _this.b = null;
        _this.c = null;
        _this.f = new MorphSegment();
        _this.g = new MorphSegment();
        _this.d = new MorphSegment();
        _this.j = new MorphSegment();
        _this.i = new MorphSegment();
        _this.k = new MorphSegment();
        _this.e = new MorphSegment();
        _this.h = new MorphSegment();
        _this.b = new MorphSegment();
        _this.c = new MorphSegment();
        return _this;
    }
    LinearGraphNeedleFrame.a = function (a, b, c, d) {
        var e = new LinearGraphNeedleFrame();
        e.n = c.n + (d.n - c.n) * a;
        e.m = c.m + (d.m - c.m) * a;
        e.q = c.q + (d.q - c.q) * a;
        e.l = c.l + (d.l - c.l) * a;
        e.p = c.p + (d.p - c.p) * a;
        e.r = BrushUtil.n(c.r, a, d.r, 0);
        e.s = BrushUtil.n(c.s, a, d.s, 0);
        e.o = c.o + (d.o - c.o) * a;
        e.f.j(a, c.f, d.f);
        e.g.j(a, c.g, d.g);
        e.d.j(a, c.d, d.d);
        e.j.j(a, c.j, d.j);
        e.i.j(a, c.i, d.i);
        e.k.j(a, c.k, d.k);
        e.e.j(a, c.e, d.e);
        e.h.j(a, c.h, d.h);
        e.b.j(a, c.b, d.b);
        e.c.j(a, c.c, d.c);
        return e;
    };
    LinearGraphNeedleFrame.prototype.t = function (a, b, c) {
        var d = new PathGeometry();
        var e = new PathFigure();
        var f = { $type: Point_$type, x: NaN, y: NaN };
        f = this.i.l(f, e, a, b, c);
        f = this.j.l(f, e, a, b, c);
        f = this.d.l(f, e, a, b, c);
        f = this.g.l(f, e, a, b, c);
        f = this.f.l(f, e, a, b, c);
        f = this.h.l(f, e, a, b, c);
        f = this.e.l(f, e, a, b, c);
        e._isClosed = true;
        d.c.add(e);
        var g = new PathFigure();
        if (this.b.f.count > 0 || this.c.f.count > 0) {
            f = this.b.l(f, g, a, b, c);
            f = this.c.l(f, g, a, b, c);
            g._isClosed = true;
            d.c.add(g);
        }
        return d;
    };
    LinearGraphNeedleFrame.$t = markType(LinearGraphNeedleFrame, 'LinearGraphNeedleFrame');
    return LinearGraphNeedleFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaleFrame, _super);
    function LinearGraphScaleFrame() {
        var _this = _super.call(this) || this;
        _this.m = null;
        _this.u = 0;
        _this.r = 0;
        _this.s = 0;
        _this.t = 0;
        _this.l = null;
        _this.j = null;
        _this.w = 0;
        _this.v = 0;
        _this.ad = null;
        _this.x = 0;
        _this.i = null;
        _this.p = 0;
        _this.o = 0;
        _this.ac = null;
        _this.q = 0;
        _this.e = null;
        _this.d = null;
        _this.f = null;
        _this.c = null;
        _this.g = null;
        _this.h = null;
        _this.n = 0;
        _this.ab = null;
        _this.m = new List$1(LinearGraphRectFrame.$, 0);
        _this.j = new Array(0);
        _this.i = new Array(0);
        _this.e = new Array(0);
        _this.d = new Array(0);
        _this.f = new Array(0);
        _this.c = new Array(0);
        _this.g = new Array(0);
        _this.h = new Array(0);
        _this.l = new LinearGraphRectFrame();
        return _this;
    }
    LinearGraphScaleFrame.prototype.ae = function (a, b, c, d) {
        var _this = this;
        var e = new PathGeometry();
        var f = new PathFigure();
        var g = a.x;
        var h = a.y;
        var i, j, k, l;
        if (d == 1) {
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + b * _this.s, y: h };
                return $ret;
            })());
            j = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + b * _this.t, y: h };
                return $ret;
            })());
            k = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + b * _this.t, y: h + c };
                return $ret;
            })());
            l = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + b * _this.s, y: h + c };
                return $ret;
            })());
        }
        else {
            i = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g, y: b * (1 - _this.t) };
                return $ret;
            })());
            j = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + c, y: b * (1 - _this.t) };
                return $ret;
            })());
            k = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g + c, y: b * (1 - _this.s) };
                return $ret;
            })());
            l = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: g, y: b * (1 - _this.s) };
                return $ret;
            })());
        }
        f._startPoint = i.c;
        f._segments.add(j);
        f._segments.add(k);
        f._segments.add(l);
        f._isClosed = true;
        e.c.add(f);
        return e;
    };
    LinearGraphScaleFrame.prototype.y = function (a, b, c) {
        this.ad = BrushUtil.n(b.ad, a, c.ad, 0);
        this.ac = BrushUtil.n(b.ac, a, c.ac, 0);
        if (b.ab == null && c.ab == null) {
            this.ab = null;
        }
        else {
            this.ab = BrushUtil.n(b.ab, a, c.ab, 0);
        }
        this.u = b.u + (c.u - b.u) * a;
        this.r = b.r + (c.r - b.r) * a;
        this.s = b.s + (c.s - b.s) * a;
        this.t = b.t + (c.t - b.t) * a;
        this.n = b.n + (c.n - b.n) * a;
        this.w = b.w + (c.w - b.w) * a;
        this.v = b.v + (c.v - b.v) * a;
        this.p = b.p + (c.p - b.p) * a;
        this.o = b.o + (c.o - b.o) * a;
        this.x = b.x + (c.x - b.x) * a;
        this.q = b.q + (c.q - b.q) * a;
        this.j = this.a(a, this.j, b.j, c.j);
        this.i = this.a(a, this.i, b.i, c.i);
        this.e = this.a(a, this.e, b.e, c.e);
        this.f = this.a(a, this.f, b.f, c.f);
        this.c = this.a(a, this.c, b.c, c.c);
        this.g = this.a(a, this.g, b.g, c.g);
        this.h = this.a(a, this.h, b.h, c.h);
        this.d = this.b(a, this.d, b.d, c.d);
        this.aa(a, this.m, b.m, c.m);
        this.l = this.k(a, b.l, c.l);
    };
    LinearGraphScaleFrame.prototype.a = function (a, b, c, d) {
        var e = Math.max(c.length, d.length);
        var f = Math.min(c.length, d.length);
        if (b.length != e) {
            b = new Array(e);
        }
        var g = 0;
        if (c.length > 0) {
            g = c[c.length - 1];
        }
        var h = 0;
        if (d.length > 0) {
            h = d[d.length - 1];
        }
        var i = c.length > d.length;
        var j = 0;
        for (j = 0; j < f; j++) {
            b[j] = c[j] + (d[j] - c[j]) * a;
        }
        var k;
        var l;
        for (j = f; j < e; j++) {
            if (i) {
                k = c[j];
                l = h;
            }
            else {
                k = g;
                l = d[j];
            }
            b[j] = k + (l - k) * a;
        }
        return b;
    };
    LinearGraphScaleFrame.prototype.b = function (a, b, c, d) {
        var e = Math.max(c.length, d.length);
        var f = Math.min(c.length, d.length);
        if (b.length != e) {
            b = new Array(e);
        }
        var g = null;
        if (c.length > 0) {
            g = c[c.length - 1];
        }
        var h = null;
        if (d.length > 0) {
            h = d[d.length - 1];
        }
        var i = c.length > d.length;
        var j = 0;
        for (j = 0; j < f; j++) {
            b[j] = d[j];
        }
        var k;
        var l;
        for (j = f; j < e; j++) {
            if (i) {
                k = c[j];
                l = h;
            }
            else {
                k = g;
                l = d[j];
            }
            if (l != null) {
                b[j] = l;
            }
            else {
                b[j] = k;
            }
        }
        return b;
    };
    LinearGraphScaleFrame.prototype.aa = function (a, b, c, d) {
        InterpolationUtil.d(LinearGraphRectFrame.$, b, a, c, d, function () { return new LinearGraphRectFrame(); }, LinearGraphRectFrame.a);
    };
    LinearGraphScaleFrame.prototype.k = function (a, b, c) {
        var d = 1 - a;
        return LinearGraphRectFrame.a(a, d, b, c);
    };
    LinearGraphScaleFrame.prototype.z = function (a, b, c, d) {
        InterpolationUtil.d(LinearGraphNeedleFrame.$, b, a, c, d, function () { return new LinearGraphNeedleFrame(); }, LinearGraphNeedleFrame.a);
    };
    LinearGraphScaleFrame.$t = markType(LinearGraphScaleFrame, 'LinearGraphScaleFrame');
    return LinearGraphScaleFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var BulletGraphScaleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(BulletGraphScaleFrame, _super);
    function BulletGraphScaleFrame() {
        var _this = _super.call(this) || this;
        _this.ag = null;
        _this.af = null;
        _this.ag = new LinearGraphRectFrame();
        _this.af = new LinearGraphRectFrame();
        return _this;
    }
    BulletGraphScaleFrame.prototype.y = function (a, b, c) {
        _super.prototype.y.call(this, a, b, c);
        this.ag = LinearGraphRectFrame.a(a, 1 - a, b.ag, c.ag);
        this.af = LinearGraphRectFrame.a(a, 1 - a, b.af, c.af);
    };
    BulletGraphScaleFrame.$t = markType(BulletGraphScaleFrame, 'BulletGraphScaleFrame', LinearGraphScaleFrame.$);
    return BulletGraphScaleFrame;
}(LinearGraphScaleFrame));

/*
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.
*/
/**
 * @hidden
 */
var BulletGraphFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(BulletGraphFrame, _super);
    function BulletGraphFrame() {
        var _this = _super.call(this) || this;
        _this._c = null;
        _this.c = new BulletGraphScaleFrame();
        return _this;
    }
    BulletGraphFrame.prototype.get_c = function () {
        return this._c;
    };
    BulletGraphFrame.prototype.set_c = function (a) {
        this._c = a;
    };
    Object.defineProperty(BulletGraphFrame.prototype, "c", {
        get: function () {
            return this.get_c();
        },
        set: function (a) {
            this.set_c(a);
        },
        enumerable: false,
        configurable: true
    });
    BulletGraphFrame.$t = markType(BulletGraphFrame, 'BulletGraphFrame', LinearGraphFrame.$);
    return BulletGraphFrame;
}(LinearGraphFrame));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaler = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaler, _super);
    function LinearGraphScaler(a, b, c, d, e) {
        var _this = _super.call(this) || this;
        _this.f = 0;
        _this.e = 0;
        _this.d = 0;
        _this.c = 0;
        _this.a = false;
        _this.g = 0;
        _this.b = 0;
        _this.f = c;
        _this.e = d;
        _this.a = e;
        _this.d = a;
        _this.c = b;
        _this.g = c;
        _this.b = d;
        return _this;
    }
    Object.defineProperty(LinearGraphScaler.prototype, "j", {
        get: function () {
            return this.g;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphScaler.prototype, "h", {
        get: function () {
            return this.b;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphScaler.prototype.i = function (a) {
        var b = (a - this.d) / (this.c - this.d);
        if (this.a) {
            b = 1 - b;
        }
        var c = this.g + (this.b - this.g) * b;
        c = Math.round(c * 100) / 100;
        return c;
    };
    LinearGraphScaler.prototype.k = function (a) {
        var b = (a - this.g) / (this.b - this.g);
        if (this.a) {
            b = 1 - b;
        }
        var c = this.d + (this.c - this.d) * b;
        return c;
    };
    LinearGraphScaler.$t = markType(LinearGraphScaler, 'LinearGraphScaler');
    return LinearGraphScaler;
}(Base));

/*
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.
*/
/**
 * Describes the orientation of a linear scale.
 */
var LinearScaleOrientation = /*@__PURE__*/ (function (LinearScaleOrientation) {
    /**
     * The scale has a horizontal orientation.
     */
    LinearScaleOrientation[LinearScaleOrientation["Horizontal"] = 0] = "Horizontal";
    /**
     * The scale has a vertical orientation.
     */
    LinearScaleOrientation[LinearScaleOrientation["Vertical"] = 1] = "Vertical";
    return LinearScaleOrientation;
})({});
/**
 * @hidden
 */
var LinearScaleOrientation_$type = markEnum('LinearScaleOrientation', 'Horizontal,0|Vertical,1');

/*
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.
*/
/**
 * @hidden
 */
var XamLinearGraphRange = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamLinearGraphRange, _super);
    function XamLinearGraphRange() {
        var _this = _super.call(this) || this;
        _this.propertyChanged = null;
        return _this;
    }
    XamLinearGraphRange.prototype.ac = function (a, b, c) {
    };
    XamLinearGraphRange.prototype.ab = function (a, b, c) {
        this.ac(a, b, c);
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    XamLinearGraphRange.$t = markType(XamLinearGraphRange, 'XamLinearGraphRange', DependencyObject.$, [INotifyPropertyChanged_$type]);
    XamLinearGraphRange.$$p = markDep(DependencyProperty, PropertyMetadata, XamLinearGraphRange, 'ab', ['Brush:an:ad', [Brush.$, null], 'EndValue:j:ae', [1, NaN], 'InnerEndExtent:k:af', [1, NaN], 'InnerStartExtent:l:ag', [1, NaN], 'Name:u:ah', [2, null], 'OuterEndExtent:m:ai', [1, NaN], 'OuterStartExtent:n:aj', [1, NaN], 'Outline:ao:ak', [Brush.$, null], 'StartValue:o:al', [1, NaN], 'StrokeThickness:p:am', [1, 1]]);
    return XamLinearGraphRange;
}(DependencyObject));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphRangeCollection = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphRangeCollection, _super);
    function LinearGraphRangeCollection() {
        return _super.call(this, XamLinearGraphRange.$, 0) || this;
    }
    LinearGraphRangeCollection.$t = markType(LinearGraphRangeCollection, 'LinearGraphRangeCollection', ObservableCollection$1.$.specialize(XamLinearGraphRange.$));
    return LinearGraphRangeCollection;
}(ObservableCollection$1));

/*
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.
*/
/**
 * @hidden
 */
var FormatLinearGraphLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(FormatLinearGraphLabelEventArgs, _super);
    function FormatLinearGraphLabelEventArgs() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.actualMinimumValue = 0;
        _this.actualMaximumValue = 0;
        _this.value = 0;
        _this.label = null;
        return _this;
    }
    FormatLinearGraphLabelEventArgs.$t = markType(FormatLinearGraphLabelEventArgs, 'FormatLinearGraphLabelEventArgs', EventArgs.$);
    return FormatLinearGraphLabelEventArgs;
}(EventArgs));

/*
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.
*/
/**
 * @hidden
 */
var AlignLinearGraphLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(AlignLinearGraphLabelEventArgs, _super);
    function AlignLinearGraphLabelEventArgs() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.width = 0;
        _this.height = 0;
        _this.offsetX = 0;
        _this.offsetY = 0;
        return _this;
    }
    AlignLinearGraphLabelEventArgs.$t = markType(AlignLinearGraphLabelEventArgs, 'AlignLinearGraphLabelEventArgs', FormatLinearGraphLabelEventArgs.$);
    return AlignLinearGraphLabelEventArgs;
}(FormatLinearGraphLabelEventArgs));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphVisualData, _super);
    function LinearGraphVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._scalePath = null;
        _this._backingPath = null;
        _this._underlayPath = null;
        _this._overlayPath = null;
        _this._scale = null;
        _this._scaleLabels = null;
        _this._scaleTickmarks = null;
        _this._ranges = null;
        _this._toolTip = null;
        _this._name = null;
        _this._viewport = null;
        return _this;
    }
    Object.defineProperty(LinearGraphVisualData.prototype, "scalePath", {
        get: function () {
            return this._scalePath;
        },
        set: function (a) {
            this._scalePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "backingPath", {
        get: function () {
            return this._backingPath;
        },
        set: function (a) {
            this._backingPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "underlayPath", {
        get: function () {
            return this._underlayPath;
        },
        set: function (a) {
            this._underlayPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "overlayPath", {
        get: function () {
            return this._overlayPath;
        },
        set: function (a) {
            this._overlayPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "scale", {
        get: function () {
            return this._scale;
        },
        set: function (a) {
            this._scale = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "scaleLabels", {
        get: function () {
            return this._scaleLabels;
        },
        set: function (a) {
            this._scaleLabels = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "scaleTickmarks", {
        get: function () {
            return this._scaleTickmarks;
        },
        set: function (a) {
            this._scaleTickmarks = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "ranges", {
        get: function () {
            return this._ranges;
        },
        set: function (a) {
            this._ranges = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "toolTip", {
        get: function () {
            return this._toolTip;
        },
        set: function (a) {
            this._toolTip = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphVisualData.prototype, "name", {
        get: function () {
            return this._name;
        },
        set: function (a) {
            this._name = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphVisualData.prototype.scaleByViewport = function () {
        var e_1, _a, e_2, _b, e_3, _c;
        if (this.scalePath != null) {
            this.scalePath.scaleByViewport(this.viewport);
        }
        if (this.backingPath != null) {
            this.backingPath.scaleByViewport(this.viewport);
        }
        if (this.underlayPath != null) {
            this.underlayPath.scaleByViewport(this.viewport);
        }
        if (this.overlayPath != null) {
            this.overlayPath.scaleByViewport(this.viewport);
        }
        if (this.scaleLabels != null) {
            try {
                for (var _d = __values(fromEnum(this.scaleLabels)), _e = _d.next(); !_e.done; _e = _d.next()) {
                    var a = _e.value;
                    a.scaleByViewport(this.viewport);
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (_e && !_e.done && (_a = _d.return))
                        _a.call(_d);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        if (this.scaleTickmarks != null) {
            try {
                for (var _f = __values(fromEnum(this.scaleTickmarks)), _g = _f.next(); !_g.done; _g = _f.next()) {
                    var b = _g.value;
                    if (b.tickPath != null) {
                        b.tickPath.scaleByViewport(this.viewport);
                    }
                }
            }
            catch (e_2_1) {
                e_2 = { error: e_2_1 };
            }
            finally {
                try {
                    if (_g && !_g.done && (_b = _f.return))
                        _b.call(_f);
                }
                finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
        }
        if (this.ranges != null) {
            try {
                for (var _h = __values(fromEnum(this.ranges)), _j = _h.next(); !_j.done; _j = _h.next()) {
                    var c = _j.value;
                    if (c.rangePath != null) {
                        c.rangePath.scaleByViewport(this.viewport);
                    }
                }
            }
            catch (e_3_1) {
                e_3 = { error: e_3_1 };
            }
            finally {
                try {
                    if (_j && !_j.done && (_c = _h.return))
                        _c.call(_h);
                }
                finally {
                    if (e_3)
                        throw e_3.error;
                }
            }
        }
    };
    LinearGraphVisualData.prototype.serialize = function () {
        var e_4, _a, e_5, _b, e_6, _c;
        var a = new StringBuilder(0);
        var b = true;
        a.u("{");
        if (this.scalePath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("scalePath: ");
            a.u(this.scalePath.serialize());
        }
        if (this.backingPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("backingPath: ");
            a.u(this.backingPath.serialize());
        }
        if (this.underlayPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("underlayPath: ");
            a.u(this.underlayPath.serialize());
        }
        if (this.overlayPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("overlayPath: ");
            a.u(this.overlayPath.serialize());
        }
        if (this.scaleLabels != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var c = true;
            a.l("scaleLabels: [");
            try {
                for (var _d = __values(fromEnum(this.scaleLabels)), _e = _d.next(); !_e.done; _e = _d.next()) {
                    var d = _e.value;
                    if (c) {
                        c = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(d.serialize());
                }
            }
            catch (e_4_1) {
                e_4 = { error: e_4_1 };
            }
            finally {
                try {
                    if (_e && !_e.done && (_a = _d.return))
                        _a.call(_d);
                }
                finally {
                    if (e_4)
                        throw e_4.error;
                }
            }
            a.u("]");
        }
        if (this.scaleTickmarks != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var e = true;
            a.l("scaleTickmarks: [");
            try {
                for (var _f = __values(fromEnum(this.scaleTickmarks)), _g = _f.next(); !_g.done; _g = _f.next()) {
                    var f = _g.value;
                    if (e) {
                        e = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(f.serialize());
                }
            }
            catch (e_5_1) {
                e_5 = { error: e_5_1 };
            }
            finally {
                try {
                    if (_g && !_g.done && (_b = _f.return))
                        _b.call(_f);
                }
                finally {
                    if (e_5)
                        throw e_5.error;
                }
            }
            a.u("]");
        }
        if (this.ranges != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var g = true;
            a.l("ranges: [");
            try {
                for (var _h = __values(fromEnum(this.ranges)), _j = _h.next(); !_j.done; _j = _h.next()) {
                    var h = _j.value;
                    if (g) {
                        g = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(h.serialize());
                }
            }
            catch (e_6_1) {
                e_6 = { error: e_6_1 };
            }
            finally {
                try {
                    if (_j && !_j.done && (_c = _h.return))
                        _c.call(_h);
                }
                finally {
                    if (e_6)
                        throw e_6.error;
                }
            }
            a.u("]");
        }
        if (this.name != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("name: '");
            a.l(this.name);
            a.u("'");
        }
        if (this.toolTip != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("toolTip: ");
            a.l(this.toolTip.serialize());
        }
        if (b) {
            b = false;
        }
        else {
            a.l(", ");
        }
        a.l("viewport: {");
        a.l("left: " + this.viewport.left + ", top: " + this.viewport.top + ", width: " + this.viewport.width + ", height: " + this.viewport.height);
        a.u("}");
        a.l("}");
        return a.toString();
    };
    Object.defineProperty(LinearGraphVisualData.prototype, "viewport", {
        get: function () {
            return this._viewport;
        },
        set: function (a) {
            this._viewport = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphVisualData.$t = markType(LinearGraphVisualData, 'LinearGraphVisualData');
    return LinearGraphVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var BulletGraphVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(BulletGraphVisualData, _super);
    function BulletGraphVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._targetValuePath = null;
        _this._valuePath = null;
        _this._highlightValuePath = null;
        _this._scaleBackgroundPath = null;
        _this._targetValue = null;
        _this._value = null;
        _this._highlightValue = null;
        return _this;
    }
    Object.defineProperty(BulletGraphVisualData.prototype, "targetValuePath", {
        get: function () {
            return this._targetValuePath;
        },
        set: function (a) {
            this._targetValuePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "valuePath", {
        get: function () {
            return this._valuePath;
        },
        set: function (a) {
            this._valuePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "highlightValuePath", {
        get: function () {
            return this._highlightValuePath;
        },
        set: function (a) {
            this._highlightValuePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "scaleBackgroundPath", {
        get: function () {
            return this._scaleBackgroundPath;
        },
        set: function (a) {
            this._scaleBackgroundPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "targetValue", {
        get: function () {
            return this._targetValue;
        },
        set: function (a) {
            this._targetValue = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "value", {
        get: function () {
            return this._value;
        },
        set: function (a) {
            this._value = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(BulletGraphVisualData.prototype, "highlightValue", {
        get: function () {
            return this._highlightValue;
        },
        set: function (a) {
            this._highlightValue = a;
        },
        enumerable: false,
        configurable: true
    });
    BulletGraphVisualData.prototype.scaleByViewport = function () {
        _super.prototype.scaleByViewport.call(this);
        if (this.targetValuePath != null) {
            this.targetValuePath.scaleByViewport(this.viewport);
        }
        if (this.valuePath != null) {
            this.valuePath.scaleByViewport(this.viewport);
        }
        if (this.highlightValuePath != null) {
            this.highlightValuePath.scaleByViewport(this.viewport);
        }
        if (this.scaleBackgroundPath != null) {
            this.scaleBackgroundPath.scaleByViewport(this.viewport);
        }
    };
    BulletGraphVisualData.prototype.serialize = function () {
        var a = _super.prototype.serialize.call(this);
        var b = new StringBuilder(0);
        var c = a.length == 0;
        if (this.targetValuePath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("targetValuePath: ");
            b.u(this.targetValuePath.serialize());
        }
        if (this.targetValue != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("targetValue: ");
            b.u(this.targetValue.serialize());
        }
        if (this.valuePath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("valuePath: ");
            b.u(this.valuePath.serialize());
        }
        if (this.highlightValuePath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("highlightValuePath: ");
            b.u(this.highlightValuePath.serialize());
        }
        if (this.value != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("value: ");
            b.u(this.value.serialize());
        }
        if (this.highlightValue != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("highlightValue: ");
            b.u(this.highlightValue.serialize());
        }
        if (this.scaleBackgroundPath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("scaleBackgroundPath: ");
            b.u(this.scaleBackgroundPath.serialize());
        }
        if (c) {
            return a;
        }
        b.l("}");
        return a.substr(0, a.length - 1) + b.toString();
    };
    BulletGraphVisualData.$t = markType(BulletGraphVisualData, 'BulletGraphVisualData', LinearGraphVisualData.$);
    return BulletGraphVisualData;
}(LinearGraphVisualData));

/*
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.
*/
/**
 * @hidden
 */
var ToolTipInfo = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ToolTipInfo, _super);
    function ToolTipInfo() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.c = null;
        _this.b = 0;
        _this.d = null;
        _this.a = null;
        return _this;
    }
    ToolTipInfo.$t = markType(ToolTipInfo, 'ToolTipInfo');
    return ToolTipInfo;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaleLabelVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaleLabelVisualData, _super);
    function LinearGraphScaleLabelVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._labelValue = null;
        _this._labelSize = null;
        _this._labelPosition = null;
        _this._appearance = null;
        return _this;
    }
    Object.defineProperty(LinearGraphScaleLabelVisualData.prototype, "labelValue", {
        get: function () {
            return this._labelValue;
        },
        set: function (a) {
            this._labelValue = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphScaleLabelVisualData.prototype, "labelSize", {
        get: function () {
            return this._labelSize;
        },
        set: function (a) {
            this._labelSize = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphScaleLabelVisualData.prototype, "labelPosition", {
        get: function () {
            return this._labelPosition;
        },
        set: function (a) {
            this._labelPosition = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphScaleLabelVisualData.prototype, "appearance", {
        get: function () {
            return this._appearance;
        },
        set: function (a) {
            this._appearance = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphScaleLabelVisualData.prototype.scaleByViewport = function (a) {
        this.labelPosition = new PointData((this.labelPosition.x - a.left) / a.width, (this.labelPosition.y - a.top) / a.height);
        this.labelSize = new SizeData((this.labelSize.width) / a.width, (this.labelSize.height) / a.height);
    };
    LinearGraphScaleLabelVisualData.prototype.serialize = function () {
        var a = this.labelValue.toString();
        var b = "{ labelValue: '" + a;
        b += "', labelSize: { width: " + this.labelSize.width + ", height: " + this.labelSize.height;
        b += "}, labelPosition: { x: " + this.labelPosition.x + ", y: " + this.labelPosition.y;
        b += "}, appearance: " + this.appearance.serialize() + "}";
        return b;
    };
    LinearGraphScaleLabelVisualData.$t = markType(LinearGraphScaleLabelVisualData, 'LinearGraphScaleLabelVisualData');
    return LinearGraphScaleLabelVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaleLabelVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaleLabelVisualDataList, _super);
    function LinearGraphScaleLabelVisualDataList() {
        return _super.call(this, LinearGraphScaleLabelVisualData.$, 0) || this;
    }
    LinearGraphScaleLabelVisualDataList.$t = markType(LinearGraphScaleLabelVisualDataList, 'LinearGraphScaleLabelVisualDataList', List$1.$.specialize(LinearGraphScaleLabelVisualData.$));
    return LinearGraphScaleLabelVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaleTickmarkVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaleTickmarkVisualData, _super);
    function LinearGraphScaleTickmarkVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._tickPath = null;
        return _this;
    }
    Object.defineProperty(LinearGraphScaleTickmarkVisualData.prototype, "tickPath", {
        get: function () {
            return this._tickPath;
        },
        set: function (a) {
            this._tickPath = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphScaleTickmarkVisualData.prototype.serialize = function () {
        return "{ tickPath: " + this.tickPath.serialize() + "}";
    };
    LinearGraphScaleTickmarkVisualData.$t = markType(LinearGraphScaleTickmarkVisualData, 'LinearGraphScaleTickmarkVisualData');
    return LinearGraphScaleTickmarkVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphScaleTickmarkVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphScaleTickmarkVisualDataList, _super);
    function LinearGraphScaleTickmarkVisualDataList() {
        return _super.call(this, LinearGraphScaleTickmarkVisualData.$, 0) || this;
    }
    LinearGraphScaleTickmarkVisualDataList.$t = markType(LinearGraphScaleTickmarkVisualDataList, 'LinearGraphScaleTickmarkVisualDataList', List$1.$.specialize(LinearGraphScaleTickmarkVisualData.$));
    return LinearGraphScaleTickmarkVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var ToolTipItemVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ToolTipItemVisualData, _super);
    function ToolTipItemVisualData() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ToolTipItemVisualData.$t = markType(ToolTipItemVisualData, 'ToolTipItemVisualData');
    return ToolTipItemVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphRangeVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphRangeVisualData, _super);
    function LinearGraphRangeVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._rangePath = null;
        return _this;
    }
    Object.defineProperty(LinearGraphRangeVisualData.prototype, "rangePath", {
        get: function () {
            return this._rangePath;
        },
        set: function (a) {
            this._rangePath = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphRangeVisualData.prototype.serialize = function () {
        return "{ rangePath: " + this.rangePath.serialize() + ", type: '" + this.type + "'}";
    };
    LinearGraphRangeVisualData.prototype.get_type = function () {
        return "range";
    };
    Object.defineProperty(LinearGraphRangeVisualData.prototype, "type", {
        get: function () {
            return this.get_type();
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphRangeVisualData.$t = markType(LinearGraphRangeVisualData, 'LinearGraphRangeVisualData', ToolTipItemVisualData.$);
    return LinearGraphRangeVisualData;
}(ToolTipItemVisualData));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphRangeVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphRangeVisualDataList, _super);
    function LinearGraphRangeVisualDataList() {
        return _super.call(this, LinearGraphRangeVisualData.$, 0) || this;
    }
    LinearGraphRangeVisualDataList.$t = markType(LinearGraphRangeVisualDataList, 'LinearGraphRangeVisualDataList', List$1.$.specialize(LinearGraphRangeVisualData.$));
    return LinearGraphRangeVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var ValueVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ValueVisualData, _super);
    function ValueVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._value = 0;
        return _this;
    }
    Object.defineProperty(ValueVisualData.prototype, "value", {
        get: function () {
            return this._value;
        },
        set: function (a) {
            this._value = a;
        },
        enumerable: false,
        configurable: true
    });
    ValueVisualData.prototype.serialize = function () {
        return "{ value: " + this.value.toString() + ", type: '" + this.type + "'}";
    };
    ValueVisualData.prototype.get_type = function () {
        return "value";
    };
    Object.defineProperty(ValueVisualData.prototype, "type", {
        get: function () {
            return this.get_type();
        },
        enumerable: false,
        configurable: true
    });
    ValueVisualData.$t = markType(ValueVisualData, 'ValueVisualData', ToolTipItemVisualData.$);
    return ValueVisualData;
}(ToolTipItemVisualData));

/*
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.
*/
/**
 * @hidden
 */
var BulletGraphTargetValueVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(BulletGraphTargetValueVisualData, _super);
    function BulletGraphTargetValueVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._value = 0;
        return _this;
    }
    Object.defineProperty(BulletGraphTargetValueVisualData.prototype, "value", {
        get: function () {
            return this._value;
        },
        set: function (a) {
            this._value = a;
        },
        enumerable: false,
        configurable: true
    });
    BulletGraphTargetValueVisualData.prototype.serialize = function () {
        return "{ value: " + this.value.toString() + ", type: '" + this.type + "'}";
    };
    BulletGraphTargetValueVisualData.prototype.get_type = function () {
        return "targetValue";
    };
    Object.defineProperty(BulletGraphTargetValueVisualData.prototype, "type", {
        get: function () {
            return this.get_type();
        },
        enumerable: false,
        configurable: true
    });
    BulletGraphTargetValueVisualData.$t = markType(BulletGraphTargetValueVisualData, 'BulletGraphTargetValueVisualData', ToolTipItemVisualData.$);
    return BulletGraphTargetValueVisualData;
}(ToolTipItemVisualData));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphToolTipVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphToolTipVisualData, _super);
    function LinearGraphToolTipVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._item = null;
        _this._outline = null;
        _this._itemBrush = null;
        _this._thickness = 0;
        return _this;
    }
    Object.defineProperty(LinearGraphToolTipVisualData.prototype, "item", {
        get: function () {
            return this._item;
        },
        set: function (a) {
            this._item = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphToolTipVisualData.prototype, "outline", {
        get: function () {
            return this._outline;
        },
        set: function (a) {
            this._outline = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphToolTipVisualData.prototype, "itemBrush", {
        get: function () {
            return this._itemBrush;
        },
        set: function (a) {
            this._itemBrush = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphToolTipVisualData.prototype, "thickness", {
        get: function () {
            return this._thickness;
        },
        set: function (a) {
            this._thickness = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphToolTipVisualData.prototype.serialize = function () {
        var a = new StringBuilder(0);
        a.l("{ item: ");
        if (this.item != null) {
            a.l(this.item.serialize());
        }
        a.l(", ");
        a.l("outline: ");
        a.l(this.outline.serialize());
        a.l(", ");
        a.l("itemBrush: ");
        a.l(this.itemBrush.serialize());
        a.l(", ");
        a.l("thickness: ");
        a.l(this.thickness.toString());
        a.l("}");
        return a.toString();
    };
    LinearGraphToolTipVisualData.$t = markType(LinearGraphToolTipVisualData, 'LinearGraphToolTipVisualData');
    return LinearGraphToolTipVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphTooltipDataContext = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphTooltipDataContext, _super);
    function LinearGraphTooltipDataContext() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.propertyChanged = null;
        return _this;
    }
    Object.defineProperty(LinearGraphTooltipDataContext.prototype, "item", {
        get: function () {
            return this.c(LinearGraphTooltipDataContext.itemProperty);
        },
        set: function (a) {
            this.h(LinearGraphTooltipDataContext.itemProperty, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphTooltipDataContext.prototype, "itemName", {
        get: function () {
            return this.c(LinearGraphTooltipDataContext.itemNameProperty);
        },
        set: function (a) {
            this.h(LinearGraphTooltipDataContext.itemNameProperty, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphTooltipDataContext.prototype, "brush", {
        get: function () {
            return this.c(LinearGraphTooltipDataContext.itemBrushProperty);
        },
        set: function (a) {
            this.h(LinearGraphTooltipDataContext.itemBrushProperty, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphTooltipDataContext.prototype, "label", {
        get: function () {
            return this.c(LinearGraphTooltipDataContext.labelProperty);
        },
        set: function (a) {
            this.h(LinearGraphTooltipDataContext.labelProperty, a);
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphTooltipDataContext.prototype.p = function (a, b, c) {
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    LinearGraphTooltipDataContext.$t = markType(LinearGraphTooltipDataContext, 'LinearGraphTooltipDataContext', DependencyObject.$, [INotifyPropertyChanged_$type]);
    LinearGraphTooltipDataContext.labelProperty = DependencyProperty.i("Label", String_$type, LinearGraphTooltipDataContext.$, new PropertyMetadata(2, null, function (a, b) { return (typeCast(LinearGraphTooltipDataContext.$, a)).p("Label", b.oldValue, b.newValue); }));
    LinearGraphTooltipDataContext.itemProperty = DependencyProperty.i("Item", Base.$, LinearGraphTooltipDataContext.$, new PropertyMetadata(2, null, function (a, b) { return (typeCast(LinearGraphTooltipDataContext.$, a)).p("Item", b.oldValue, b.newValue); }));
    LinearGraphTooltipDataContext.itemNameProperty = DependencyProperty.i("ItemName", Base.$, LinearGraphTooltipDataContext.$, new PropertyMetadata(2, null, function (a, b) { return (typeCast(LinearGraphTooltipDataContext.$, a)).p("ItemName", b.oldValue, b.newValue); }));
    LinearGraphTooltipDataContext.itemBrushProperty = DependencyProperty.i("ItemBrush", Brush.$, LinearGraphTooltipDataContext.$, new PropertyMetadata(2, null, function (a, b) { return (typeCast(LinearGraphTooltipDataContext.$, a)).p("ItemBrush", b.oldValue, b.newValue); }));
    LinearGraphTooltipDataContext.$$p = markDep(DependencyProperty, PropertyMetadata, LinearGraphTooltipDataContext, 'p', ['Outline', [Brush.$, null], 'Thickness', [1, 0]]);
    return LinearGraphTooltipDataContext;
}(DependencyObject));

/*
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.
*/
/**
 * @hidden
 */
var XamBulletGraph = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamBulletGraph, _super);
    function XamBulletGraph() {
        var _this = _super.call(this) || this;
        _this.propertyChanged = null;
        _this.aw = null;
        _this.bp = 0;
        _this.formatLabel = null;
        _this.alignLabel = null;
        _this.an = null;
        _this.am = null;
        _this.al = null;
        _this.ar = null;
        _this.av = null;
        _this.bm = 0;
        _this.bl = 100;
        _this.a1 = 0;
        _this.bk = 0.5;
        _this.ay = 1;
        _this.aj = null;
        _this.bd = false;
        _this.a5 = null;
        _this.a3 = null;
        _this.a2 = null;
        _this.a6 = null;
        _this.a4 = null;
        _this._view = null;
        _this.ic = null;
        _this.ib = null;
        _this.ia = null;
        _this.bo = NaN;
        _this.bn = 1;
        _this.bf = new List$1(TextBlock.$, 0);
        _this.bi = new List$1(TextBlock.$, 0);
        _this.bh = new List$1(Path.$, 0);
        _this.bg = new List$1(Path.$, 0);
        _this.a8 = false;
        _this.bo = NaN;
        _this.bn = 1;
        _this.av = new XamLinearGraphRange();
        var a = _this.av;
        a.propertyChanged = delegateCombine(a.propertyChanged, runOn(_this, _this.ft));
        _this.view = new XamBulletGraphView(_this);
        _this.view.a9();
        _this.ic = Rect.empty;
        _this.ib = Rect.empty;
        _this.ia = Rect.empty;
        _this.an = new BulletGraphFrame();
        _this.am = new BulletGraphFrame();
        _this.al = new BulletGraphFrame();
        _this.ranges = new LinearGraphRangeCollection();
        _this.a8 = true;
        _this.aw = new DoubleAnimator(0, 1, _this.c7);
        var b = _this.aw;
        b.propertyChanged = delegateCombine(b.propertyChanged, runOn(_this, _this.e8));
        _this.ab = XamBulletGraph.$;
        _this.a4 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bj);
            $ret.c = runOn(_this.view, _this.view.bk);
            $ret.d = runOn(_this.view, _this.view.bl);
            $ret.j = runOn(_this.view, _this.view.cs);
            return $ret;
        })());
        _this.a5 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bc);
            $ret.c = runOn(_this.view, _this.view.bd);
            $ret.d = runOn(_this.view, _this.view.be);
            $ret.j = runOn(_this.view, _this.view.cr);
            return $ret;
        })());
        _this.a3 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bc);
            $ret.c = runOn(_this.view, _this.view.bd);
            $ret.d = runOn(_this.view, _this.view.be);
            $ret.j = runOn(_this.view, _this.view.cr);
            return $ret;
        })());
        _this.a2 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.a1);
            $ret.c = runOn(_this.view, _this.view.a2);
            $ret.d = runOn(_this.view, _this.view.a3);
            $ret.j = runOn(_this.view, _this.view.b0);
            return $ret;
        })());
        _this.a6 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.bt);
            $ret.c = runOn(_this.view, _this.view.bu);
            $ret.d = runOn(_this.view, _this.view.bv);
            $ret.j = runOn(_this.view, _this.view.b1);
            return $ret;
        })());
        return _this;
    }
    XamBulletGraph.prototype.fk = function (a) {
        this.fr(a);
    };
    XamBulletGraph.prototype.fr = function (a) {
        var b = this.propertyChanged;
        if (b != null) {
            b(this, new PropertyChangedEventArgs(a));
        }
    };
    XamBulletGraph.prototype.onDetachedFromUI = function () {
        this.view.a8();
    };
    XamBulletGraph.prototype.onAttachedToUI = function () {
        this.view.a4();
    };
    XamBulletGraph.prototype.e8 = function (a, b) {
        this.cz = this.aw.o;
    };
    Object.defineProperty(XamBulletGraph.prototype, "a7", {
        get: function () {
            return this.aw.f();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "cz", {
        get: function () {
            return this.bp;
        },
        set: function (a) {
            var b = this.bp;
            this.bp = a;
            this.fj("TransitionProgress", b, this.bp);
        },
        enumerable: false,
        configurable: true
    });
    XamBulletGraph.prototype.f4 = function () {
        this.bp = 0;
        this.aw.w();
        this.aw.v();
    };
    Object.defineProperty(XamBulletGraph.prototype, "bc", {
        get: function () {
            return this.c7 > 0;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "h2", {
        get: function () {
            return this.c(XamBulletGraph.g4);
        },
        set: function (a) {
            this.h(XamBulletGraph.g4, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "h3", {
        get: function () {
            return this.c(XamBulletGraph.g5);
        },
        set: function (a) {
            this.h(XamBulletGraph.g5, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "ch", {
        get: function () {
            return this.c(XamBulletGraph.g6);
        },
        set: function (a) {
            this.h(XamBulletGraph.g6, a);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "bs", {
        get: function () {
            return this.bm;
        },
        set: function (a) {
            this.bm = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "br", {
        get: function () {
            return this.bl;
        },
        set: function (a) {
            this.bl = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "bq", {
        get: function () {
            return this.bk;
        },
        set: function (a) {
            var b = this.bk;
            this.bk = a;
            if (b != this.bk) {
                this.fj("ActualHighlightValueOpacity", b, a);
            }
        },
        enumerable: false,
        configurable: true
    });
    XamBulletGraph.prototype.f7 = function () {
        this.bq = isNaN_(this.b0) ? 0.5 : Math.max(0, Math.min(this.b0, 1));
    };
    Object.defineProperty(XamBulletGraph.prototype, "az", {
        get: function () {
            return this.ay;
        },
        set: function (a) {
            this.ay = a;
        },
        enumerable: false,
        configurable: true
    });
    XamBulletGraph.prototype.f6 = function () {
        if (this.a0 != 1) {
            if (isNaN_(this.bz) || isInfinity(this.bz)) {
                this.az = 1;
            }
            else {
                this.az = 2;
            }
        }
        else {
            this.az = 1;
        }
    };
    XamBulletGraph.prototype.fd = function () {
        this.a1 = 0;
        this.view.cm().an = null;
    };
    XamBulletGraph.prototype.by = function (a) {
        var b = 0;
        var c = a.x;
        if (this.as == 1) {
            b = a.y;
            c = this.ig.height;
        }
        return this.ar.k(c - b);
    };
    XamBulletGraph.prototype.at = function () {
        var _this = this;
        var a = new BulletGraphVisualData();
        a.viewport = new RectData(this.ig.left, this.ig.top, this.ig.width, this.ig.height);
        a.scaleLabels = new LinearGraphScaleLabelVisualDataList();
        a.scaleTickmarks = new LinearGraphScaleTickmarkVisualDataList();
        a.ranges = new LinearGraphRangeVisualDataList();
        a.value = ((function () {
            var $ret = new ValueVisualData();
            $ret.value = _this.c0;
            return $ret;
        })());
        a.highlightValue = ((function () {
            var $ret = new ValueVisualData();
            $ret.value = _this.bz;
            return $ret;
        })());
        a.targetValue = ((function () {
            var $ret = new BulletGraphTargetValueVisualData();
            $ret.value = _this.cn;
            return $ret;
        })());
        this.view.aw(a);
        var b = this.view.l();
        if (b != null) {
            var c_1;
            switch (b.c) {
                case "range":
                    c_1 = a.ranges._inner[b.b];
                    break;
                case "value":
                    c_1 = a.value;
                    break;
                default:
                    c_1 = a.targetValue;
                    break;
            }
            a.toolTip = ((function () {
                var $ret = new LinearGraphToolTipVisualData();
                $ret.item = c_1;
                $ret.itemBrush = AppearanceHelper.b(b.a.brush);
                $ret.outline = AppearanceHelper.b(b.a.outline);
                $ret.thickness = b.a.thickness;
                return $ret;
            })());
        }
        return a;
    };
    XamBulletGraph.prototype.dg = function () {
        var a = this.at();
        a.scaleByViewport();
        return a.serialize();
    };
    XamBulletGraph.prototype.destroy = function () {
        this.provideContainer(null);
    };
    XamBulletGraph.prototype.provideContainer = function (a) {
        this.view.a6(a);
    };
    XamBulletGraph.prototype.onMouseOver = function (a, b, c) {
        if (this.bd) {
            this.f3(a, null);
        }
    };
    XamBulletGraph.prototype.onMouseLeave = function () {
        if (this.bd) {
            this.f3({ $type: Point_$type, x: -10000, y: -10000 }, null);
        }
    };
    XamBulletGraph.prototype.containerResized = function () {
        this.view.a7();
    };
    XamBulletGraph.prototype.f5 = function () {
        this.view.bs();
    };
    XamBulletGraph.prototype.fc = function () {
        this.view.flush();
    };
    XamBulletGraph.prototype.bj = function (a) {
        var b = new List$1(Point_$type, 0);
        for (var c = 0; c < a.count; c++) {
            b.add({ $type: Point_$type, x: a._inner[c].x, y: a._inner[c].y });
        }
        return b;
    };
    XamBulletGraph.prototype.f3 = function (a, b) {
        var c = new PathVisualData(1, "targetValue", this.view.cp());
        var d = c.getPoints(new GetPointsSettings());
        if (d.count > 0) {
            var e = PolygonUtil.b(this.bj(d._inner[0]), a);
            if (e == true) {
                this.view.br(a, b, -1, "targetvalue");
                return;
            }
        }
        var f = new PathVisualData(1, "value", this.view.cq());
        var g = f.getPoints(new GetPointsSettings());
        if (g.count > 0) {
            var h = PolygonUtil.b(this.bj(g._inner[0]), a);
            if (h == true) {
                this.view.br(a, b, -1, "value");
                return;
            }
        }
        for (var i = 0; i < this.bg.count; i++) {
            var j = new PathVisualData(1, "range", this.bg._inner[i]);
            var k = j.getPoints(new GetPointsSettings());
            if (k.count > 0) {
                var l = PolygonUtil.b(this.bj(k._inner[0]), a);
                if (l == true) {
                    this.view.br(a, b, i, "range");
                    return;
                }
            }
        }
        this.view.az();
    };
    XamBulletGraph.prototype.fw = function () {
        if (!this.a8) {
            return;
        }
        var a = this.am.c;
        if (this.as == 0) {
            var b = 0;
            for (var c = 0; c < a.c.length; c++) {
                b = Math.max(b, a.c[c]);
            }
            var d = this.ig.height >= b ? this.ig.height - b : this.ig.height;
            this.ie = new Rect(0, 0, 0, this.ig.width, d);
        }
        else {
            var e = 0;
            for (var f = 0; f < a.f.length; f++) {
                e = Math.max(e, a.f[f]);
            }
            var g = this.ig.width >= e ? this.ig.width - e : this.ig.width;
            this.ie = new Rect(0, e, 0, g, this.ig.height);
        }
    };
    Object.defineProperty(XamBulletGraph.prototype, "view", {
        get: function () {
            return this._view;
        },
        set: function (a) {
            this._view = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "ig", {
        get: function () {
            return this.ic;
        },
        set: function (a) {
            var b = this.ic;
            this.ic = a;
            if (!b.equals1(this.ic)) {
                this.fl(b, this.ic);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "ie", {
        get: function () {
            return this.ib;
        },
        set: function (a) {
            this.ib = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "id", {
        get: function () {
            return this.ia;
        },
        set: function (a) {
            this.ia = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "ce", {
        get: function () {
            return this.bo;
        },
        set: function (a) {
            var b = this.bo;
            this.bo = a;
            this.fj("PixelScalingRatio", b, this.bo);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamBulletGraph.prototype, "bt", {
        get: function () {
            return this.bn;
        },
        set: function (a) {
            var b = this.bn;
            this.bn = a;
            this.fj("ActualPixelScalingRatio", b, this.bn);
        },
        enumerable: false,
        configurable: true
    });
    XamBulletGraph.prototype.ba = function () {
        return !isNaN_(this.bs) && !isNaN_(this.br) && !this.ig.isEmpty && this.view.s();
    };
    XamBulletGraph.prototype.e9 = function () {
        if (!this.ba()) {
            return;
        }
        var a = this.cl();
        this.ar = new LinearGraphScaler(this.bs, this.br, a, a + this.ck(), this.a9);
        if (this.a8) {
            if (this.a7) {
                if (this.aw.g) {
                    this.aw.t();
                }
                var b = this.an;
                this.an = this.al;
                this.al = b;
            }
            else {
                var c = this.an;
                this.an = this.am;
                this.am = c;
            }
        }
        else if (this.a7) {
            this.al.d(this.cz, this.an, this.am);
            this.fx(this.al);
            this.fz(this.al);
            this.f0(this.al);
            this.f2(this.al);
        }
        if (this.a8) {
            this.fn();
            this.fw();
            if (this.a1 == 1) {
                this.a1 = 2;
                var d = this.an.c;
                d.af = this.aq(this.c0, true, false);
            }
            else if (this.a1 == 4) {
                if (this.c7 > 0) {
                    this.a1 = 5;
                    var e = this.am.c;
                    e.af = this.aq(this.c0, true, false);
                }
                else {
                    this.fd();
                }
            }
            this.fp();
            this.fq();
            this.fo();
            this.fm();
        }
        if (this.a8 && this.bc) {
            this.f4();
            this.al.d(this.cz, this.an, this.am);
            this.fx(this.al);
            this.fz(this.al);
            this.f0(this.al);
            this.f2(this.al);
            this.f1(this.al);
            this.fy(this.al);
        }
        else {
            if (this.a8) {
                this.fx(this.am);
                this.fz(this.am);
                this.f0(this.am);
                this.f2(this.am);
                this.f1(this.am);
                this.fy(this.am);
            }
        }
        this.a8 = false;
        this.view.as();
    };
    XamBulletGraph.prototype.fo = function () {
        var a = this.am;
        var b = a.c;
        var c = this.ar;
        var d = this.b8;
        var e = this.ie;
        if (isNaN_(d)) {
            d = 3;
        }
        b.u = this.cm;
        b.r = this.cj;
        b.s = 0;
        b.t = 1;
        b.m.clear();
        for (var f = 0; f < this.ranges.count; f++) {
            var g = this.ranges._inner[f];
            if (g.j <= this.bs || g.o > this.br) {
                continue;
            }
            var h = g.o;
            var i = g.j;
            if (h < this.bs) {
                h = this.bs;
            }
            if (i > this.br) {
                i = this.br;
            }
            var j = new LinearGraphRectFrame();
            j.i = g.an != null ? g.an : this.h0(f, this.ah);
            j.j = g.ao != null ? g.ao : this.h0(f, this.ai);
            j.h = g.p;
            j.g = c.i(h);
            j.d = c.i(i);
            j.e = g.l;
            j.b = g.k;
            j.f = g.n;
            j.c = g.m;
            if (isNaN_(j.e)) {
                j.e = this.cf;
            }
            j.b = g.k;
            if (isNaN_(j.b)) {
                j.b = this.cf;
            }
            j.f = g.n;
            if (isNaN_(j.f)) {
                j.f = this.cg;
            }
            j.c = g.m;
            if (isNaN_(j.c)) {
                j.c = this.cg;
            }
            b.m.add(j);
        }
        b.l.i = this.h2;
        b.l.j = this.h3;
        b.l.h = this.ch;
        b.l.g = c.i(this.bs);
        b.l.d = c.i(this.br);
        b.l.e = this.cf;
        b.l.b = this.cf;
        b.l.f = this.cg;
        b.l.c = this.cg;
        b.ab = this.hz;
        b.ad = this.h6;
        b.x = this.cy;
        b.w = this.cw;
        b.v = this.cs;
        b.ac = this.h1;
        b.q = this.cd;
        b.p = this.cb;
        b.o = this.b9;
        var k = this.b1;
        if (isNaN_(k)) {
            k = (this.br - this.bs) / 10;
        }
        if (k == 0) {
            k = this.br - this.bs;
        }
        var l = new List$1(Number_$type, 0);
        var m = new List$1(Number_$type, 0);
        if (k > 0) {
            var n = this.bs + this.cu;
            var o = this.br - this.cv;
            var p = 100000;
            var q = Math.abs(o - n) / p;
            if (k >= q) {
                for (var r = n; r <= o || this.be(r, o, k); r = r + k) {
                    l.add(c.i(r));
                    for (var s = 0; s < d; s++) {
                        var t = (k / (d + 1)) * (s + 1);
                        if (t + r > o) {
                            continue;
                        }
                        m.add(c.i(t + r));
                    }
                }
            }
        }
        if (b.j.length != l.count || b.i.length != m.count) {
            b.j = new Array(l.count);
            b.i = new Array(m.count);
        }
        for (var u = 0; u < l.count; u++) {
            b.j[u] = l._inner[u];
        }
        for (var v = 0; v < m.count; v++) {
            b.i[v] = m._inner[v];
        }
    };
    XamBulletGraph.prototype.ih = function () {
        var a = this.b1;
        var b = this.b3;
        if (isNaN_(a)) {
            a = (this.br - this.bs) / 10;
        }
        if (isNaN_(b)) {
            b = a;
        }
        if (b == 0) {
            b = this.br - this.bs;
        }
        var c = new List$1(Number_$type, 0);
        if (b > 0) {
            var d = this.b4 + this.bs;
            var e = this.br - this.b5;
            var f = 100000;
            var g = Math.abs(e - d) / f;
            if (b >= g) {
                for (var h = d; h <= e || this.be(h, e, a); h += b) {
                    c.add(h);
                }
            }
        }
        var i = new Array(c.count);
        var j = new Array(c.count);
        var _loop_1 = function (k) {
            var l = c._inner[k];
            if (this_1.formatLabel == null && this_1.aj == null) {
                l = (Math.round(l * 100) / 100);
            }
            var m = l.toString();
            if (this_1.aj != null) {
                m = this_1.aj.i(l);
            }
            var n = new FormatLinearGraphLabelEventArgs();
            n.value = l;
            n.label = m;
            if (this_1.formatLabel != null) {
                this_1.formatLabel(this_1, n);
            }
            m = n.label;
            var o = this_1.view.ct(((function () {
                var $ret = new TextBlock();
                $ret.al = m;
                return $ret;
            })()));
            i[k] = o.width;
            j[k] = o.height;
        };
        var this_1 = this;
        for (var k = 0; k < c.count; k++) {
            _loop_1(k);
        }
        var p = 0;
        var q = 0;
        var r = 1 - this.cj + this.cm;
        if (this.as == 0) {
            for (var s = 0; s < j.length; s++) {
                q = Math.max(q, j[s]);
            }
            for (var t = 0; t < i.length; t++) {
                p += i[t];
            }
            if (i.length > 0) {
                p += i[0] / 2;
            }
            if (i.length > 1) {
                p += i[i.length - 1] / 2;
            }
            if (i.length > 0) {
                p += (i.length - 1) * 5;
            }
            if (r > 0) {
                p = p / Math.abs(1 - r);
            }
        }
        else {
            for (var u = 0; u < i.length; u++) {
                p = Math.max(p, i[u]);
            }
            for (var v = 0; v < j.length; v++) {
                q += j[v];
            }
            if (j.length > 0) {
                q -= j[0] / 2;
            }
            if (j.length > 1) {
                q -= j[j.length - 1] / 2;
            }
            if (r > 0) {
                q = q / Math.abs(1 - r);
            }
            if (j.length > 0) {
                q += (j.length - 1) * 5;
            }
        }
        return new Size(1, p, q);
    };
    XamBulletGraph.prototype.fn = function () {
        var a = this.am;
        var b = a.c;
        var c = this.ar;
        var d = this.b1;
        var e = this.b3;
        var f = this.b8;
        if (isNaN_(d)) {
            d = (this.br - this.bs) / 10;
        }
        if (isNaN_(e)) {
            e = d;
        }
        if (e == 0) {
            e = this.br - this.bs;
        }
        var g = new List$1(Tuple$2.$.specialize(Number_$type, Number_$type), 0);
        if (e > 0) {
            var h = this.b4 + this.bs;
            var i = this.br - this.b5;
            var j = 100000;
            var k = Math.abs(i - h) / j;
            if (e >= k) {
                for (var l = h; l <= i || this.be(l, i, e); l = l + e) {
                    g.add(new Tuple$2(Number_$type, Number_$type, l, c.i(l)));
                }
            }
        }
        if (b.d.length != g.count) {
            b.e = new Array(g.count);
            b.d = new Array(g.count);
            b.f = new Array(g.count);
            b.c = new Array(g.count);
            b.g = new Array(g.count);
            b.h = new Array(g.count);
        }
        b.n = this.b2;
        var m = new FormatLinearGraphLabelEventArgs();
        m.actualMinimumValue = this.bs;
        m.actualMaximumValue = this.br;
        var n = new AlignLinearGraphLabelEventArgs();
        n.actualMinimumValue = this.bs;
        n.actualMaximumValue = this.br;
        var _loop_2 = function (o) {
            var p = g._inner[o].c;
            if (this_2.formatLabel == null) {
                p = (Math.round(p * 100) / 100);
            }
            var q = (p).toString();
            if (this_2.aj != null) {
                q = this_2.aj.i(p);
            }
            m.value = p;
            n.value = p;
            m.label = q;
            if (this_2.formatLabel != null) {
                this_2.formatLabel(this_2, m);
            }
            q = m.label;
            n.label = q;
            var r = this_2.view.ct(((function () {
                var $ret = new TextBlock();
                $ret.al = q;
                return $ret;
            })()));
            n.width = r.width;
            n.height = r.height;
            if (this_2.as == 0) {
                n.offsetX = -1 * (r.width / 2);
                n.offsetY = -1 * (r.height);
            }
            else {
                n.offsetX = -1 * r.width;
                n.offsetY = -1 * (r.height / 2);
            }
            if (this_2.alignLabel != null) {
                this_2.alignLabel(this_2, n);
            }
            b.f[o] = n.width;
            b.c[o] = n.height;
            b.g[o] = n.offsetX;
            b.h[o] = n.offsetY;
            b.d[o] = q;
            b.e[o] = g._inner[o].d;
        };
        var this_2 = this;
        for (var o = 0; o < g.count; o++) {
            _loop_2(o);
        }
    };
    XamBulletGraph.prototype.be = function (a, b, c) {
        var d = c / 10000;
        if (isNaN_(d)) {
            d = 1E-05;
        }
        var e = Math.abs(a - b);
        if (e < d) {
            return true;
        }
        return false;
    };
    XamBulletGraph.prototype.fm = function () {
        var a = this.am;
        var b = a.a;
        b.e = this.hx;
        b.f = this.hy;
        b.c = this.bw;
        b.a = this.bu;
        b.b = this.bv;
    };
    XamBulletGraph.prototype.fp = function () {
        var a = this.am;
        var b = a.b;
        var c = this.ar;
        b.e = this.cp;
        b.b = this.cp;
        b.f = this.cq;
        b.c = this.cq;
        b.i = this.h4;
        b.j = this.h5;
        b.h = this.cr;
        if (isNaN_(this.cn)) {
            return;
        }
        var d = c.i(this.cn);
        var e = (this.co / 2);
        b.g = d - e;
        b.d = d + e;
    };
    XamBulletGraph.prototype.fq = function () {
        var a = this.am.c;
        var b = this.c0;
        if (isNaN_(b)) {
            return;
        }
        var c = !(this.a1 == 0 || this.a1 == 5);
        a.ag = this.aq(b, false, c);
        var d = this.bz;
        if (c && !isNaN_(d)) {
            a.af = this.aq(d, true, false);
        }
    };
    XamBulletGraph.prototype.aq = function (a, b, c) {
        var d = this.ar;
        var e = this.bs;
        if (isNaN_(e)) {
            e = this.bs;
        }
        var f = a;
        var g = new LinearGraphRectFrame();
        var h = this.h7;
        var i = this.h8;
        if (c) {
            h = BrushUtil.s(h, this.bq);
            i = BrushUtil.s(i, this.bq);
        }
        g.i = h;
        g.j = i;
        g.h = this.c3;
        g.g = d.i(e);
        g.d = d.i(f);
        g.e = this.c1;
        g.b = this.c1;
        g.f = this.c2;
        g.c = this.c2;
        return g;
    };
    XamBulletGraph.prototype.h0 = function (a, b) {
        if (b != null && b.count > 0) {
            return b.item(a % b.count);
        }
        else {
            return null;
        }
    };
    XamBulletGraph.prototype.f1 = function (a) {
        var b = this.ie;
        var c = a.c;
        var d = this.a5;
        var e = c.j;
        var f = c.w;
        var g = c.v;
        var h = c.ad;
        var i = c.x;
        var j = this.a3;
        var k = c.i;
        var l = c.p;
        var m = c.o;
        var n = c.ac;
        var o = c.q;
        d.f = true;
        for (var p = 0; p < this.bh.count; p++) {
            d.n(this.bh._inner[p]);
        }
        this.bh.clear();
        var q = this.ci();
        var r = this.c5();
        var _loop_3 = function (s) {
            var t = void 0, u = void 0, v, w;
            if (this_3.as == 1) {
                t = b.left + q * f;
                u = r - e[s];
                v = b.left + q * g;
                w = u;
            }
            else {
                t = b.left + e[s];
                u = q * (1 - f);
                v = t;
                w = q * (1 - g);
            }
            var x = d.a();
            var y = new PathGeometry();
            var z = new PathFigure();
            z._startPoint = { $type: Point_$type, x: t, y: u };
            z._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: v, y: w };
                return $ret;
            })()));
            y.c.add(z);
            x.an = y;
            x._stroke = h;
            x.ad = i;
            this_3.bh.add(x);
        };
        var this_3 = this;
        for (var s = 0; s < e.length; s++) {
            _loop_3(s);
        }
        var _loop_4 = function (aa) {
            var ab = void 0, ac = void 0, ad, ae;
            if (this_4.as == 1) {
                ab = b.left + q * l;
                ac = r - k[aa];
                ad = b.left + q * m;
                ae = ac;
            }
            else {
                ab = k[aa];
                ac = q * (1 - l);
                ad = ab;
                ae = q * (1 - m);
            }
            var af = d.a();
            var ag = new PathGeometry();
            var ah = new PathFigure();
            ah._startPoint = { $type: Point_$type, x: ab, y: ac };
            ah._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: ad, y: ae };
                return $ret;
            })()));
            ag.c.add(ah);
            af.an = ag;
            af._stroke = n;
            af.ad = o;
            this_4.bh.add(af);
        };
        var this_4 = this;
        for (var aa = 0; aa < k.length; aa++) {
            _loop_4(aa);
        }
        d.f = false;
    };
    XamBulletGraph.prototype.fy = function (a) {
        var b = this.ie;
        var c = a.c;
        var d = c.e;
        var e = c.d;
        var f = c.g;
        var g = c.h;
        var h = c.f;
        var i = c.c;
        var j = c.n;
        var k = this.a2;
        k.f = true;
        for (var l = 0; l < this.bf.count; l++) {
            k.n(this.bf._inner[l]);
        }
        this.bf.clear();
        var m = c.ab;
        var n = this.c4();
        var o = this.c5();
        for (var p = 0; p < e.length; p++) {
            var q = void 0, r = void 0;
            if (this.as == 1) {
                q = b.left + n * j;
                r = b.top + o - d[p];
            }
            else {
                q = b.left + d[p];
                r = b.top + n * (1 - j);
            }
            var s = k.a();
            s.al = e[p];
            this.view.bq(s, m);
            var t = h[p];
            var u = i[p];
            var v = f[p];
            var w = g[p];
            this.view.bh(s, q + v, r + w);
            this.bf.add(s);
        }
        k.f = false;
    };
    XamBulletGraph.prototype.fz = function (a) {
        var b = a.c;
        var c = this.a4;
        c.f = true;
        for (var d = 0; d < this.bg.count; d++) {
            c.n(this.bg._inner[d]);
        }
        this.bg.clear();
        var e = this.ci();
        var f = this.c5();
        var g = this.h9();
        var h = this.view.co();
        h.an = b.ae(g, e, f, this.as);
        for (var i = 0; i < b.m.count; i++) {
            var j = b.m._inner[i];
            var k = c.a();
            k.an = j.k(g, e, f, this.as);
            k._fill = j.i;
            k._stroke = j.j;
            k.ad = j.h;
            this.bg.add(k);
        }
        this.view.bp(this.bg);
        c.f = false;
        var l = this.view.cn();
        l.an = b.l.k(g, e, f, this.as);
        l._fill = b.l.i;
        l._stroke = b.l.j;
        l.ad = b.l.h;
    };
    XamBulletGraph.prototype.fx = function (a) {
        var b = this.id;
        var c = this.view.cl();
        var d = a.a;
        var e = this.as == 0 ? b.height : b.width;
        var f = this.as == 0 ? b.width : b.height;
        var g = d.g(e, f, this.as);
        c.an = g;
        c._fill = d.e;
        c._stroke = d.f;
        c.ad = d.c;
    };
    XamBulletGraph.prototype.f0 = function (a) {
        var b = this.view.cp();
        if (isNaN_(this.cn) || this.cn < this.bs || this.cn > this.br) {
            b.an = null;
            return;
        }
        var c = a.b;
        var d = this.ci();
        var e = this.c5();
        var f = this.h9();
        var g = c.k(f, d, e, this.as);
        b.an = g;
        b._fill = c.i;
        b._stroke = c.j;
        b.ad = c.h;
    };
    XamBulletGraph.prototype.f2 = function (a) {
        var b = this.view.cq();
        var c = this.view.cm();
        var d = this.c0;
        if (d <= this.bs || d > this.br || isNaN_(d)) {
            b.an = null;
            c.an = null;
            return;
        }
        var e = this.bz;
        var f = this.a1 != 0;
        if (!f || e <= this.bs || e > this.br || isNaN_(e)) {
            c.an = null;
            f = false;
        }
        var g = a.c;
        var h = this.ci();
        var i = this.c5();
        var j = this.h9();
        var k = g.ag;
        b.an = k.k(j, h, i, this.as);
        b._fill = k.i;
        b._stroke = k.j;
        b.ad = k.h;
        if (f) {
            var l = g.af;
            c.an = l.k(j, h, i, this.as);
            c._fill = l.i;
            c._stroke = l.j;
            c.ad = l.h;
        }
    };
    XamBulletGraph.prototype.fl = function (a, b) {
        this.a8 = true;
        this.view.bo();
    };
    XamBulletGraph.prototype.fg = function (a, b) {
        this.a8 = true;
        this.view.bo();
    };
    XamBulletGraph.prototype.ci = function () {
        if (this.as == 0) {
            return this.bb ? this.ig.height : this.ie.height;
        }
        return this.bb ? this.ig.width : this.ie.width;
    };
    XamBulletGraph.prototype.ck = function () {
        if (this.as == 0) {
            return this.ig.width * (this.cj - this.cm);
        }
        return this.ig.height * (this.cj - this.cm);
    };
    XamBulletGraph.prototype.c4 = function () {
        if (this.as == 0) {
            return this.ig.height;
        }
        return this.ig.width;
    };
    XamBulletGraph.prototype.c5 = function () {
        if (this.as == 0) {
            return this.ig.width;
        }
        return this.ig.height;
    };
    XamBulletGraph.prototype.cl = function () {
        var a = this.cm;
        if (this.as == 0) {
            if (this.a9) {
                a = 1 - this.cj;
            }
            return this.ig.left + this.ig.width * a;
        }
        if (this.a9) {
            a = 1 - this.cj;
        }
        return this.ig.top + this.ig.height * a;
    };
    XamBulletGraph.prototype.h9 = function () {
        var a = this.ie.left;
        if (this.bb) {
            a = 0;
        }
        var b = this.cm;
        if (this.as == 0) {
            if (this.a9) {
                b = 1 - this.cj;
            }
            return { $type: Point_$type, x: a + this.ie.width * b, y: this.ie.top };
        }
        if (!this.a9) {
            b = 1 - this.cj;
        }
        return { $type: Point_$type, x: a, y: this.ie.top + this.ie.height * b };
    };
    XamBulletGraph.prototype.fj = function (a, b, c) {
        switch (a) {
            case XamBulletGraph.$$p[51]:
            case XamBulletGraph.$$p[36]:
            case XamBulletGraph.$$p[40]:
            case XamBulletGraph.$$p[0]:
            case XamBulletGraph.$$p[3]:
            case XamBulletGraph.$$p[55]:
            case XamBulletGraph.$$p[43]:
            case XamBulletGraph.$$p[21]:
                this.view.a5(a, b, c);
                break;
            case XamBulletGraph.$$p[27]:
                this.view.ba(b, c);
                break;
            case XamBulletGraph.$$p[30]:
                this.view.bb(b, c);
                break;
        }
        switch (a) {
            case XamBulletGraph.$$p[13]:
            case XamBulletGraph.$$p[14]:
                if (this.dr != null) {
                    this.aj = new BindingFormatter();
                    this.aj.j = this.dr;
                    this.aj.d = this.ag;
                }
                else {
                    this.aj = null;
                }
                this.a8 = true;
                this.view.bo();
                break;
            case XamBulletGraph.$$p[50]:
                this.aw.r = this.c7;
                this.view.bo();
                break;
            case "TransitionProgress":
                if (this.cz >= 1) {
                    this.aw.w();
                    var d = this.am;
                    this.am = this.an;
                    this.an = d;
                    this.fn();
                    this.fp();
                    this.fq();
                    this.fo();
                    this.fm();
                    this.fx(this.am);
                    this.fz(this.am);
                    this.f0(this.am);
                    this.f2(this.am);
                    this.f1(this.am);
                    this.fy(this.am);
                    if (this.a1 == 5) {
                        this.fd();
                        this.view.bo();
                        return;
                    }
                    else if (this.a1 == 2) {
                        this.a1 = 3;
                    }
                }
                this.al.d(this.cz, this.an, this.am);
                this.fx(this.al);
                this.fz(this.al);
                this.f0(this.al);
                this.f2(this.al);
                this.f1(this.al);
                this.fy(this.al);
                this.view.as();
                break;
            case XamBulletGraph.$$p[56]:
            case XamBulletGraph.$$p[52]:
            case XamBulletGraph.$$p[54]:
            case XamBulletGraph.$$p[51]:
            case XamBulletGraph.$$p[55]:
            case XamBulletGraph.$$p[57]:
            case XamBulletGraph.$$p[36]:
            case XamBulletGraph.$$p[40]:
            case XamBulletGraph.$$p[42]:
            case XamBulletGraph.$$p[35]:
            case XamBulletGraph.$$p[37]:
            case XamBulletGraph.$$p[39]:
            case XamBulletGraph.$$p[0]:
            case XamBulletGraph.$$p[3]:
            case XamBulletGraph.$$p[43]:
            case XamBulletGraph.$$p[21]:
            case XamBulletGraph.$$p[27]:
            case XamBulletGraph.$$p[30]:
            case XamBulletGraph.$$p[19]:
            case XamBulletGraph.$$p[41]:
            case XamBulletGraph.$$p[38]:
            case XamBulletGraph.$$p[28]:
            case XamBulletGraph.$$p[29]:
            case XamBulletGraph.$$p[4]:
            case XamBulletGraph.$$p[1]:
            case XamBulletGraph.$$p[2]:
            case XamBulletGraph.$$p[10]:
            case XamBulletGraph.$$p[15]:
            case XamBulletGraph.$$p[12]:
            case XamBulletGraph.$$p[16]:
            case XamBulletGraph.$$p[17]:
            case XamBulletGraph.$$p[47]:
            case XamBulletGraph.$$p[48]:
            case XamBulletGraph.$$p[45]:
            case XamBulletGraph.$$p[44]:
            case XamBulletGraph.$$p[46]:
            case XamBulletGraph.$$p[24]:
            case XamBulletGraph.$$p[23]:
            case XamBulletGraph.$$p[22]:
            case XamBulletGraph.$$p[25]:
            case "ScaleBackgroundBrush":
            case "ScaleBackgroundOutline":
            case "ScaleBackgroundThickness":
                this.a8 = true;
                this.view.bo();
                break;
            case XamBulletGraph.$$p[31]:
                var e = b;
                var f = c;
                if (e != null) {
                    var g = e;
                    g.collectionChanged = delegateRemove(g.collectionChanged, runOn(this, this.fu));
                }
                if (f != null) {
                    var h = f;
                    h.collectionChanged = delegateCombine(h.collectionChanged, runOn(this, this.fu));
                }
                this.a8 = true;
                this.view.bo();
                break;
            case XamBulletGraph.$$p[26]:
            case XamBulletGraph.$$p[11]:
            case XamBulletGraph.$$p[20]:
            case XamBulletGraph.$$p[18]:
            case XamBulletGraph.$$p[32]:
            case XamBulletGraph.$$p[33]:
                this.bs = Math.min(this.b7, this.b6);
                this.br = Math.max(this.b7, this.b6);
                var i = this.cl();
                this.ar = new LinearGraphScaler(this.bs, this.br, i, i + this.ck(), this.a9);
                this.a8 = true;
                this.view.bo();
                break;
            case XamBulletGraph.$$p[5]:
            case XamBulletGraph.$$p[6]:
                this.view.by();
                this.a8 = true;
                this.view.bo();
                break;
            case "PixelScalingRatio":
                if (isNaN_(DeviceUtils.a(this.ce))) {
                    this.bt = 1;
                }
                else {
                    this.bt = DeviceUtils.a(this.ce);
                }
                break;
            case "ActualPixelScalingRatio":
                this.view.bf();
                break;
            case XamBulletGraph.$$p[9]:
                {
                    var j = this.az == 2;
                    this.f6();
                    var k = this.az == 2;
                    this.a8 = true;
                    if (!j && k) {
                        this.a1 = 1;
                    }
                    else if (j && !k) {
                        this.a1 = 4;
                    }
                    this.view.bo();
                    break;
                }
            case XamBulletGraph.$$p[7]:
                {
                    var l = this.az == 2;
                    this.f6();
                    var m = this.az == 2;
                    this.a8 = true;
                    if (!l && m) {
                        this.a1 = 1;
                    }
                    else if (l && !m) {
                        this.a1 = 4;
                    }
                    this.view.bo();
                    break;
                }
            case XamBulletGraph.$$p[8]:
                this.f7();
                break;
            case "ActualHighlightValueOpacity":
                this.a8 = true;
                this.view.bo();
                break;
        }
        this.fk(a);
    };
    XamBulletGraph.prototype.fu = function (a, b) {
        var e_1, _a, e_2, _b;
        if (b.oldItems != null) {
            try {
                for (var _c = __values(fromEn(b.oldItems)), _d = _c.next(); !_d.done; _d = _c.next()) {
                    var c = _d.value;
                    c.propertyChanged = delegateRemove(c.propertyChanged, runOn(this, this.ft));
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (_d && !_d.done && (_a = _c.return))
                        _a.call(_c);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        if (b.newItems != null) {
            try {
                for (var _e = __values(fromEn(b.newItems)), _f = _e.next(); !_f.done; _f = _e.next()) {
                    var d = _f.value;
                    d.propertyChanged = delegateCombine(d.propertyChanged, runOn(this, this.ft));
                }
            }
            catch (e_2_1) {
                e_2 = { error: e_2_1 };
            }
            finally {
                try {
                    if (_f && !_f.done && (_b = _e.return))
                        _b.call(_e);
                }
                finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
        }
        this.a8 = true;
        this.view.bo();
    };
    XamBulletGraph.prototype.ft = function (a, b) {
        this.a8 = true;
        this.view.bo();
    };
    XamBulletGraph.prototype.refresh = function () {
        this.a8 = true;
        this.view.bo();
    };
    XamBulletGraph.prototype.ax = function () {
        return FontUtil.toFontInfo(this.view.ag, this.dh);
    };
    XamBulletGraph.$t = markType(XamBulletGraph, 'XamBulletGraph', Control.$, [INotifyPropertyChanged_$type]);
    XamBulletGraph.g4 = DependencyProperty.i("ScaleBackgroundBrush", Brush.$, XamBulletGraph.$, new PropertyMetadata(2, null, function (a, b) { return a.fj("ScaleBackgroundBrush", b.oldValue, b.newValue); }));
    XamBulletGraph.g5 = DependencyProperty.i("ScaleBackgroundOutline", Brush.$, XamBulletGraph.$, new PropertyMetadata(2, null, function (a, b) { return a.fj("ScaleBackgroundOutline", b.oldValue, b.newValue); }));
    XamBulletGraph.g6 = DependencyProperty.i("ScaleBackgroundThickness", Number_$type, XamBulletGraph.$, new PropertyMetadata(2, 1, function (a, b) { return a.fj("ScaleBackgroundThickness", b.oldValue, b.newValue); }));
    XamBulletGraph.$$p = markDep(DependencyProperty, PropertyMetadata, XamBulletGraph, 'fj', ['BackingBrush:hx:f8', [Brush.$, null], 'BackingInnerExtent:bu:f9', [1, 0], 'BackingOuterExtent:bv:ga', [1, 1], 'BackingOutline:hy:gb', [Brush.$, null], 'BackingStrokeThickness:bw:gc', [1, 2], 'FontBrush:hz:gd', [Brush.$, null], 'Font:dh:ge', [2, null], 'HighlightValueDisplayMode:a0:gf', [HighlightedValueDisplayMode_$type, enumGetBox(HighlightedValueDisplayMode_$type, 0)], 'HighlightValueOpacity:b0:gg', [1, 0.5], 'HighlightValue:bz:gh', [1, NaN], 'Interval:b1:gi', [1, NaN], 'IsScaleInverted:a9:gj', [0, false], 'LabelExtent:b2:gk', [1, 0], 'LabelFormat:dr:gl', [2, null], 'LabelFormatSpecifiers:ag:gm', [Array_$type, null], 'LabelInterval:b3:gn', [1, NaN], 'LabelsPostInitial:b4:go', [1, 0], 'LabelsPreTerminal:b5:gp', [1, 0], 'MaximumValue:b6:gq', [1, 100], 'MergeViewports:bb:gr', [0, false], 'MinimumValue:b7:gs', [1, 0], 'MinorTickBrush:h1:gt', [Brush.$, null], 'MinorTickCount:b8:gu', [1, 3], 'MinorTickEndExtent:b9:gv', [1, 0.2], 'MinorTickStartExtent:cb:gw', [1, 0.1], 'MinorTickStrokeThickness:cd:gx', [1, 1], 'Orientation:as:gy', [LinearScaleOrientation_$type, enumGetBox(LinearScaleOrientation_$type, 0)], 'RangeBrushes:ah:gz', [BrushCollection.$, null], 'RangeInnerExtent:cf:g0', [1, 0.2], 'RangeOuterExtent:cg:g1', [1, 0.95], 'RangeOutlines:ai:g2', [BrushCollection.$, null], 'Ranges::g3', [LinearGraphRangeCollection.$, null], 'ScaleEndExtent:cj:g7', [1, 0.95], 'ScaleStartExtent:cm:g8', [1, 0.05], 'ShowToolTipTimeout:c6:g9', [1, 500], 'TargetValueBreadth:co:ha', [1, 3], 'TargetValueBrush:h4:hb', [Brush.$, null], 'TargetValueInnerExtent:cp:hc', [1, 0.3], 'TargetValueName:el:hd', [2, null], 'TargetValueOuterExtent:cq:he', [1, 0.85], 'TargetValueOutline:h5:hf', [Brush.$, null], 'TargetValue:cn:hg', [1, NaN], 'TargetValueStrokeThickness:cr:hh', [1, 1], 'TickBrush:h6:hi', [Brush.$, null], 'TickEndExtent:cs:hj', [1, 0.2], 'TickStartExtent:cw:hm', [1, 0.06], 'TickStrokeThickness:cy:hn', [1, 2], 'TicksPostInitial:cu:hk', [1, 0], 'TicksPreTerminal:cv:hl', [1, 0], 'ToolTip::ho', [4, null], 'TransitionDuration:c7:hp', [1, 0], 'ValueBrush:h7:hq', [Brush.$, null], 'ValueInnerExtent:c1:hr', [1, 0.5], 'ValueName:e2:hs', [2, null], 'ValueOuterExtent:c2:ht', [1, 0.65], 'ValueOutline:h8:hu', [Brush.$, null], 'Value:c0:hv', [1, NaN], 'ValueStrokeThickness:c3:hw', [1, 1]]);
    return XamBulletGraph;
}(Control));
/**
 * @hidden
 */
var XamBulletGraphView = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamBulletGraphView, _super);
    function XamBulletGraphView(a) {
        var _this = _super.call(this) || this;
        _this.ao = 0;
        _this.an = 0;
        _this.ap = 0;
        _this.m = null;
        _this.i = null;
        _this.ai = null;
        _this.p = null;
        _this.ag = null;
        _this.aa = null;
        _this.z = null;
        _this.y = null;
        _this.ab = null;
        _this.ck = null;
        _this.cg = null;
        _this.cj = null;
        _this.ci = null;
        _this.cf = null;
        _this.ch = null;
        _this.b7 = null;
        _this.b8 = null;
        _this.b4 = null;
        _this.b5 = null;
        _this.b9 = null;
        _this.ca = null;
        _this.b6 = null;
        _this.c = null;
        _this.d = null;
        _this.e = null;
        _this.f = null;
        _this.cb = null;
        _this.cc = null;
        _this.q = false;
        _this.v = null;
        _this.a = ["value", "targetvalue", "backing", "scale", "tick", "minortick", "label"];
        _this.u = false;
        _this.t = false;
        _this.ah = null;
        _this.k = null;
        _this.aj = 0;
        _this.al = 0;
        _this.aq = null;
        _this.am = -1;
        _this.cd = null;
        _this.ak = 0;
        _this.x = null;
        _this.b3 = ((function () {
            var $ret = new Brush();
            $ret.fill = "black";
            return $ret;
        })());
        _this.r = false;
        _this.n = null;
        _this.b2 = null;
        _this.ac = 0;
        _this.m = a;
        _this.v = new Dictionary$2(String_$type, Dictionary$2.$.specialize(String_$type, Brush.$), 0);
        _this.cj = new Path();
        _this.ck = new Path();
        _this.cg = new Path();
        _this.ci = new Path();
        _this.cf = new Path();
        _this.ch = new Path();
        _this.aa = new List$1(Path.$, 0);
        _this.z = new List$1(Path.$, 0);
        _this.y = new List$1(TextBlock.$, 0);
        _this.ab = new List$1(TextBlock.$, 0);
        return _this;
    }
    XamBulletGraphView.prototype.a4 = function () {
        this.a0();
        if (this.i != null) {
            this.i.at(this.ag.rootWrapper, "");
        }
    };
    XamBulletGraphView.prototype.a8 = function () {
        if (this.i != null && this.ag != null) {
            this.i.bh(this.ag.rootWrapper, "");
        }
    };
    XamBulletGraphView.prototype.a9 = function () {
        this.k = new LinearGraphTooltipDataContext();
        this.ak = this.m.c6;
        this.a0();
    };
    XamBulletGraphView.prototype.a0 = function () {
        var a = this.m.ce;
        var b = this.m.bt;
        if (!isNaN_(a) && a != 0) {
            return;
        }
        if (window.devicePixelRatio != undefined && window.devicePixelRatio != b) {
            this.m.bt = window.devicePixelRatio;
        }
    };
    XamBulletGraphView.prototype.s = function () {
        return true;
    };
    XamBulletGraphView.prototype.cp = function () {
        return this.cj;
    };
    XamBulletGraphView.prototype.cq = function () {
        return this.ck;
    };
    XamBulletGraphView.prototype.cm = function () {
        return this.cg;
    };
    XamBulletGraphView.prototype.co = function () {
        return this.ci;
    };
    XamBulletGraphView.prototype.cl = function () {
        return this.cf;
    };
    XamBulletGraphView.prototype.cn = function () {
        return this.ch;
    };
    XamBulletGraphView.prototype.ay = function () {
        this.q = true;
        var a = ["#778899", "black", "#EBEDEF", "#617583", "#617583", "rgba(100,107,114,.74)", "rgba(100,107,114,.74)"];
        var b = ["#778899", "black", "#B2B9C0", "#B2B9C0", null, null, null];
        var c = ((function () {
            var $ret = new List$1(Array_$type, 0);
            $ret.add(a);
            $ret.add(b);
            return $ret;
        })());
        this.v.clear();
        var d = this.a.length;
        var _loop_5 = function (e) {
            var f = this_5.a[e];
            var g = "ui-bulletgraph-" + f;
            var h = "ui-bulletgraph-" + f + "-fill";
            var i = "ui-bulletgraph-" + f + "-outline";
            var j;
            if (!((function () { var k = XamBulletGraphView.w.tryGetValue(h, j); j = k.p1; return k.ret; })())) {
                j = BrushUtil.m(h, g, "background-color", this_5.ag, a[e]);
                XamBulletGraphView.w.addItem(h, j);
            }
            var k;
            if (!((function () { var l = XamBulletGraphView.w.tryGetValue(i, k); k = l.p1; return l.ret; })())) {
                k = BrushUtil.m(i, g, "border-top-color", this_5.ag, b[e]);
                XamBulletGraphView.w.addItem(i, k);
            }
            var l = new Dictionary$2(String_$type, Brush.$, 0);
            l.item("fill", j);
            l.item("outline", k);
            this_5.v.item(this_5.a[e], l);
        };
        var this_5 = this;
        for (var e = 0; e < d; e++) {
            _loop_5(e);
        }
        this.bx();
        if (XamBulletGraphView.g == null || XamBulletGraphView.h == null) {
            var m = BrushUtil.i("ui-bulletgraph-range-fill-palette-", "ui-bulletgraph-range-outline-palette-", "ui-bulletgraph-range-palette-", this.ag, XamBulletGraphView.g, XamBulletGraphView.h, ["#216E99", "#216E99", "#44acd6", "#44acd6", "#cecece", "#cecece"]);
            XamBulletGraphView.g = m.p4;
            XamBulletGraphView.h = m.p5;
        }
        this.c = XamBulletGraphView.g;
        this.d = XamBulletGraphView.h;
        if (this.e == null) {
            this.m.ah = this.c;
        }
        if (this.f == null) {
            this.m.ai = this.d;
        }
        this.q = false;
    };
    XamBulletGraphView.prototype.bx = function () {
        this.q = true;
        var a = this.a.length;
        for (var b = 0; b < a; b++) {
            var c = this.a[b];
            this.bw(c, this.v.item(c));
        }
        this.q = false;
    };
    XamBulletGraphView.prototype.bw = function (a, b) {
        var c = b.item("fill");
        var d = b.item("outline");
        switch (a) {
            case "targetvalue":
                if (this.b7 == null) {
                    this.m.h4 = c;
                }
                if (this.b8 == null) {
                    this.m.h5 = d;
                }
                break;
            case "value":
                if (this.cb == null) {
                    this.m.h7 = c;
                }
                if (this.cc == null) {
                    this.m.h8 = d;
                }
                break;
            case "backing":
                if (this.b4 == null) {
                    this.m.hx = c;
                }
                if (this.b5 == null) {
                    this.m.hy = d;
                }
                break;
            case "tick":
                if (this.ca == null) {
                    this.m.h6 = c;
                }
                break;
            case "minortick":
                if (this.b6 == null) {
                    this.m.h1 = c;
                }
                break;
            case "label":
                this.b3 = c;
                break;
        }
    };
    XamBulletGraphView.prototype.a5 = function (a, b, c) {
        var d = b;
        var e = c;
        if (!this.q) {
            switch (a) {
                case XamBulletGraph.$$p[36]:
                    this.b7 = e;
                    break;
                case XamBulletGraph.$$p[40]:
                    this.b8 = e;
                    break;
                case XamBulletGraph.$$p[0]:
                    this.b4 = e;
                    break;
                case XamBulletGraph.$$p[3]:
                    this.b5 = e;
                    break;
                case XamBulletGraph.$$p[51]:
                    this.cb = e;
                    break;
                case XamBulletGraph.$$p[55]:
                    this.cc = e;
                    break;
                case XamBulletGraph.$$p[43]:
                    this.ca = e;
                    break;
                case XamBulletGraph.$$p[21]:
                    this.b6 = e;
                    break;
            }
            if (e == null) {
                this.bx();
            }
        }
    };
    XamBulletGraphView.prototype.ba = function (a, b) {
        if (!this.q) {
            this.e = b;
            if (this.e == null) {
                this.m.ah = this.c;
            }
        }
    };
    XamBulletGraphView.prototype.bb = function (a, b) {
        if (!this.q) {
            this.f = b;
            if (this.f == null) {
                this.m.ai = this.d;
            }
        }
    };
    XamBulletGraphView.prototype.b = function (a, b) {
        this.ag.startCSSQuery();
        for (var c = 0; c < b.length; c++) {
            b[c] = this.ag.getCssDefaultPropertyValue(a, b[c]);
        }
        this.ag.endCSSQuery();
        return b;
    };
    XamBulletGraphView.prototype.bs = function () {
        this.ay();
        this.by();
        this.bo();
    };
    XamBulletGraphView.prototype.ce = function (a) {
        var b = CanvasGestureDOMEventProxy.c4(this.ag.rootWrapper);
        return { $type: Point_$type, x: a.x - b.left, y: a.y - b.top };
    };
    XamBulletGraphView.prototype.br = function (a, b, c, d) {
        this.cd = a;
        this.am = c;
        this.aq = d;
        this.bn();
        this.al = window.setTimeout(runOn(this, this.bz), this.ak);
        this.t = true;
    };
    XamBulletGraphView.prototype.az = function () {
        if (this.t) {
            window.clearTimeout(this.al);
            this.t = false;
        }
        if (this.u) {
            var a = this.m.toolTip;
            window.clearTimeout(this.aj);
            a.hide();
            this.u = false;
            this.k = null;
        }
        this.ak = this.m.c6;
    };
    XamBulletGraphView.prototype.bn = function () {
        if (this.t) {
            window.clearTimeout(this.al);
        }
        if (this.u) {
            var a = this.m.toolTip;
            window.clearTimeout(this.aj);
            a.hide();
            this.u = false;
            this.ak = intDivide(this.m.c6, 2);
        }
    };
    XamBulletGraphView.prototype.bz = function () {
        var _this = this;
        if (this.t) {
            window.clearTimeout(this.al);
            this.t = false;
        }
        var a = this.am;
        var b = this.aq;
        var c = this.cd;
        if (this.ag != null) {
            this.aj = this.ag.setTimeout(runOn(this, this.az), 10 * this.m.c6);
        }
        else {
            this.aj = window.setTimeout(runOn(this, this.az), 10 * this.m.c6);
        }
        var d = this.m.ranges._inner[a];
        if (this.ah != this.m.toolTip) {
            if (this.ah != null) {
                this.ah.remove();
            }
            this.ah = this.m.toolTip;
            this.ah.setStyleProperty("z-index", "10000");
            this.ah.setStyleProperty("position", "absolute");
            this.ag.append(this.ah);
        }
        this.k = this.j(b, a);
        var context_ = this.k;
        var tooltip_ = this.ah;
        var tooltipType_ = b;
        if (tooltip_.updateToolTip) {
            tooltip_.updateToolTip(context_, tooltipType_);
        }
        ;
        var e = this.ah.findByClass(".ui-tooltip-container");
        if (e != null && e.length > 0) {
            e[0].setAttribute("style", null);
        }
        var f = "ui-simple-default-tooltip-content";
        var g = this.ah.findByClass("." + f);
        if (g != null && g.length > 0) {
            var h = ["border-top-color", "border-top-width", "border-top-style", "border-top-left-radius", "background-color", "padding-top", "font-weight"];
            var i = ["border-color", "border-width", "border-style", "border-radius", "background-color", "padding", "font-weight"];
            var j = ((function () {
                var $ret = new List$1(String_$type, 0);
                $ret.add(_this.k.brush.color.colorString);
                $ret.add("2px");
                $ret.add("solid");
                $ret.add("4px");
                $ret.add("rgba(230, 230, 230, 0.74)");
                $ret.add("4px");
                $ret.add("bold");
                return $ret;
            })());
            var k = new Dictionary$2(String_$type, String_$type, 0);
            var l = new Array(h.length);
            arrayCopy1(h, 0, l, 0, h.length);
            this.b(f, l);
            for (var m = 0; m < l.length; m++) {
                this.ah.setStyleProperty(i[m], (l[m] == null) ? j._inner[m] : l[m]);
            }
        }
        this.ah.setStyleProperty("top", (c.y + 15).toString() + "px").setStyleProperty("left", (c.x + 15).toString() + "px");
        this.ah.show();
        this.u = true;
    };
    XamBulletGraphView.prototype.j = function (a, b) {
        var c = new LinearGraphTooltipDataContext();
        switch (a) {
            case "range":
                var d = this.m.ranges._inner[b];
                c.item = d;
                c.itemName = d.u;
                c.label = d.u + ": " + d.o.toString() + "-" + d.j.toString();
                var e = d.an;
                var f = d.ao;
                c.brush = e != null ? e : this.m.h0(b, this.c);
                c.outline = f != null ? f : this.m.h0(b, this.d);
                c.thickness = d.p;
                break;
            case "value":
                c.item = this.m.c0;
                c.itemName = this.m.e2;
                c.label = this.m.e2 != null ? this.m.e2 + ": " + this.m.c0.toString() : this.m.c0.toString();
                c.brush = this.m.h7;
                c.outline = this.m.h8;
                c.thickness = this.m.c3;
                break;
            case "targetvalue":
                c.item = this.m.cn;
                c.itemName = this.m.el;
                c.label = this.m.el != null ? this.m.el + ": " + this.m.cn.toString() : this.m.cn.toString();
                c.brush = this.m.h4;
                c.outline = this.m.h5;
                c.thickness = this.m.cr;
                break;
        }
        return c;
    };
    XamBulletGraphView.prototype.a6 = function (a) {
        if (a == null) {
            this.ai = null;
            this.ag = null;
            this.ah = null;
            this.p = null;
            if (this.m.a7) {
                this.m.aw.w();
            }
            this.at();
            return;
        }
        var b = a;
        this.ag = b;
        this.m.aw.u(this.ag);
        this.ag.rootWrapper.addClass("ui-bulletgraph-container");
        this.ap = (isNaN_(this.m.ce) ? this.m.bt : this.m.ce);
        var c = this.ap;
        var d = Math.round(b.rootWrapper.width());
        var e = Math.round(b.rootWrapper.height());
        var f = d * c;
        var g = e * c;
        this.ag.rootWrapper.setStyleProperty("position", "relative");
        var h = this.ag.createElement("canvas");
        h.setStyleProperty("position", "absolute");
        this.ag.append(h);
        this.ao = f;
        this.an = g;
        h.setAttribute("width", f.toString());
        h.setAttribute("height", g.toString());
        h.setStyleProperty("width", d.toString());
        h.setStyleProperty("height", e.toString());
        h.setStyleProperty("left", "0px");
        h.setStyleProperty("top", "0px");
        this.m.ig = new Rect(0, 0, 0, d, e);
        this.m.id = new Rect(0, 0, 0, d, e);
        this.ai = h;
        var i = this.ag.get2DCanvasContext(this.ai);
        this.p = new RenderingContext(new CanvasViewRenderer(), i);
        this.ay();
        this.by();
        this.p.ad(this.n);
        this.at();
        if (TypeRegistrar.isRegistered("CanvasGestureDOMEventProxy")) {
            this.i = typeCast(EventProxy.$, TypeRegistrar.create("CanvasGestureDOMEventProxy", this.ag.rootWrapper, this.ag, false));
        }
        if (this.i != null) {
            var j = this.i;
            j.onMouseOver = delegateCombine(j.onMouseOver, runOn(this, this.av));
            var k = this.i;
            k.onMouseLeave = delegateCombine(k.onMouseLeave, runOn(this, this.au));
        }
        this.bm();
    };
    XamBulletGraphView.prototype.at = function () {
        if (this.i != null) {
            var a = this.i;
            a.onMouseOver = delegateRemove(a.onMouseOver, runOn(this, this.av));
            var b = this.i;
            b.onMouseLeave = delegateRemove(b.onMouseLeave, runOn(this, this.au));
            this.i.av();
        }
    };
    XamBulletGraphView.prototype.av = function (a, b, c) {
        if (this.m != null) {
            this.m.onMouseOver(a, b, c);
        }
    };
    XamBulletGraphView.prototype.au = function (a) {
        if (this.m != null) {
            this.m.onMouseLeave();
        }
    };
    XamBulletGraphView.prototype.a7 = function () {
        this.a0();
        var a = Math.round(this.ag.rootWrapper.width());
        var b = Math.round(this.ag.rootWrapper.height());
        this.m.ig = new Rect(0, 0, 0, a, b);
        this.m.id = new Rect(0, 0, 0, a, b);
        if (this.i != null) {
            this.i.bl = this.m.ig;
        }
    };
    XamBulletGraphView.prototype.as = function () {
        this.bm();
    };
    XamBulletGraphView.prototype.bp = function (a) {
        this.x = a;
    };
    XamBulletGraphView.prototype.bm = function () {
        var a = this.m.ig.width;
        var b = this.m.ig.height;
        var c = a * this.ap;
        var d = b * this.ap;
        if (this.ao != c || this.an != d) {
            this.ai.setAttribute("width", c.toString());
            this.ai.setAttribute("height", d.toString());
            this.ai.setStyleProperty("width", a.toString() + "px");
            this.ai.setStyleProperty("height", b.toString() + "px");
            this.ao = truncate(Math.round(c));
            this.an = truncate(Math.round(d));
        }
        if (this.p.d && this.ap != 1) {
            this.p.aa();
            this.p.ab(this.ap, this.ap);
        }
        this.p.l(this.m.ig.left, this.m.ig.top, this.m.ig.width, this.m.ig.height);
        this.p.t(this.cf);
        this.p.t(this.ch);
        if (this.x != null) {
            for (var e = 0; e < this.x.count; e++) {
                this.p.t(this.x._inner[e]);
            }
        }
        for (var f = 0; f < this.y.count; f++) {
            this.p.ad(this.n);
            this.p.x(this.y._inner[f]);
        }
        for (var g = 0; g < this.z.count; g++) {
            this.p.t(this.z._inner[g]);
        }
        this.p.t(this.ck);
        this.p.t(this.cg);
        this.p.t(this.cj);
        if (this.p.d && this.ap != 1) {
            this.p.z();
        }
    };
    XamBulletGraphView.prototype.by = function () {
        if (this.m.dh != null) {
            this.n = this.m.ax();
        }
        else {
            this.n = FontUtil.getFont(this.ag);
        }
        this.ac = this.ad(this.n);
        if (this.m.hz == null) {
            var a = this.ag.rootWrapper.getStyleProperty("color");
            if (stringIsNullOrEmpty(a) == false) {
                this.b2 = new Brush();
                this.b2._fill = a;
                this.m.hz = this.b2;
            }
        }
        if (this.p != null) {
            this.p.ad(this.n);
        }
    };
    XamBulletGraphView.prototype.ae = function (a) {
        var b = typeCast(TextBlock.$, a);
        if (b != null && b.al != null) {
            return this.p.f(b) + 0;
        }
        return 0;
    };
    XamBulletGraphView.prototype.ct = function (a) {
        if (isNaN_(this.ac)) {
            this.ac = this.ad(null);
        }
        var b = this.ae(a);
        var c = this.ac;
        return new Size(1, b, c);
    };
    XamBulletGraphView.prototype.bq = function (a, b) {
        if (b != null) {
            a.ao = b;
        }
        else {
            a.ao = this.b3;
        }
    };
    XamBulletGraphView.prototype.bh = function (a, b, c) {
        a.n = b;
        a.o = c;
    };
    XamBulletGraphView.prototype.bg = function (a, b) {
    };
    XamBulletGraphView.prototype.bi = function (a, b) {
    };
    XamBulletGraphView.prototype.ad = function (a) {
        return FontUtil.getCurrentFontHeight(this.ag, a);
    };
    XamBulletGraphView.prototype.bo = function () {
        if (!this.r) {
            this.r = true;
            if (this.ag != null) {
                this.ag.setTimeout(runOn(this, this.ar), 0);
            }
            else {
                window.setTimeout(runOn(this, this.ar), 0);
            }
        }
    };
    XamBulletGraphView.prototype.ar = function () {
        if (this.r) {
            this.r = false;
            this.m.e9();
        }
    };
    XamBulletGraphView.prototype.flush = function () {
        if (this.r) {
            this.ar();
        }
    };
    XamBulletGraphView.prototype.o = function (a, b) {
        return FontUtil.getFontInfo(this.ag, a, b);
    };
    XamBulletGraphView.prototype.aw = function (a) {
        var e_3, _a, e_4, _b, e_5, _c;
        a.scalePath = new PathVisualData(1, "Scale", this.ci);
        a.targetValuePath = new PathVisualData(1, "TargetValue", this.cj);
        a.valuePath = new PathVisualData(1, "Value", this.ck);
        a.highlightValuePath = new PathVisualData(1, "HighlightValue", this.cg);
        a.backingPath = new PathVisualData(1, "Backing", this.cf);
        a.scaleBackgroundPath = new PathVisualData(1, "ScaleBackground", this.ch);
        var b = this.n;
        try {
            for (var _d = __values(fromEnum(this.y)), _e = _d.next(); !_e.done; _e = _d.next()) {
                var c = _e.value;
                if (c._visibility == 0) {
                    var d = this.o(c, b);
                    var e = new LinearGraphScaleLabelVisualData();
                    e.labelValue = c.al;
                    e.labelPosition = PointData.b({ $type: Point_$type, x: c.n, y: c.o });
                    e.labelSize = SizeData.b(this.ct(c));
                    e.appearance = AppearanceHelper.c(c, d);
                    a.scaleLabels.add(e);
                }
            }
        }
        catch (e_3_1) {
            e_3 = { error: e_3_1 };
        }
        finally {
            try {
                if (_e && !_e.done && (_a = _d.return))
                    _a.call(_d);
            }
            finally {
                if (e_3)
                    throw e_3.error;
            }
        }
        try {
            for (var _f = __values(fromEnum(this.z)), _g = _f.next(); !_g.done; _g = _f.next()) {
                var f = _g.value;
                if (f._visibility == 0) {
                    var g = new LinearGraphScaleTickmarkVisualData();
                    g.tickPath = new PathVisualData(1, "tickmarks", f);
                    a.scaleTickmarks.add(g);
                }
            }
        }
        catch (e_4_1) {
            e_4 = { error: e_4_1 };
        }
        finally {
            try {
                if (_g && !_g.done && (_b = _f.return))
                    _b.call(_f);
            }
            finally {
                if (e_4)
                    throw e_4.error;
            }
        }
        try {
            for (var _h = __values(fromEnum(this.x)), _j = _h.next(); !_j.done; _j = _h.next()) {
                var h = _j.value;
                if (h._visibility == 0) {
                    var i = new LinearGraphRangeVisualData();
                    var j = new PathVisualData(1, "range", h);
                    i.rangePath = j;
                    a.ranges.add(i);
                }
            }
        }
        catch (e_5_1) {
            e_5 = { error: e_5_1 };
        }
        finally {
            try {
                if (_j && !_j.done && (_c = _h.return))
                    _c.call(_h);
            }
            finally {
                if (e_5)
                    throw e_5.error;
            }
        }
    };
    XamBulletGraphView.prototype.bj = function (a) {
        a._visibility = 0;
    };
    XamBulletGraphView.prototype.bk = function (a) {
        a._visibility = 1;
    };
    XamBulletGraphView.prototype.bl = function (a) {
        this.aa.remove(a);
    };
    XamBulletGraphView.prototype.cs = function () {
        var a = new Path();
        this.aa.add(a);
        return a;
    };
    XamBulletGraphView.prototype.bt = function (a) {
        a._visibility = 0;
    };
    XamBulletGraphView.prototype.bu = function (a) {
        a._visibility = 1;
    };
    XamBulletGraphView.prototype.bv = function (a) {
        this.ab.remove(a);
    };
    XamBulletGraphView.prototype.b1 = function () {
        var a = new TextBlock();
        this.ab.add(a);
        return a;
    };
    XamBulletGraphView.prototype.bc = function (a) {
        a._visibility = 0;
    };
    XamBulletGraphView.prototype.bd = function (a) {
        a._visibility = 1;
    };
    XamBulletGraphView.prototype.be = function (a) {
        this.z.remove(a);
    };
    XamBulletGraphView.prototype.cr = function () {
        var a = new Path();
        this.z.add(a);
        return a;
    };
    XamBulletGraphView.prototype.a1 = function (a) {
        a._visibility = 0;
    };
    XamBulletGraphView.prototype.a2 = function (a) {
        a._visibility = 1;
    };
    XamBulletGraphView.prototype.a3 = function (a) {
        this.y.remove(a);
    };
    XamBulletGraphView.prototype.b0 = function () {
        var a = new TextBlock();
        this.y.add(a);
        return a;
    };
    XamBulletGraphView.prototype.l = function () {
        var _this = this;
        if (this.k == null) {
            return null;
        }
        return ((function () {
            var $ret = new ToolTipInfo();
            $ret.b = _this.am;
            $ret.d = _this.cd;
            $ret.c = _this.aq;
            $ret.a = _this.k;
            return $ret;
        })());
    };
    XamBulletGraphView.prototype.bf = function () {
        this.ap = this.m.bt;
    };
    XamBulletGraphView.$t = markType(XamBulletGraphView, 'XamBulletGraphView');
    XamBulletGraphView.w = new Dictionary$2(String_$type, Brush.$, 0);
    XamBulletGraphView.g = null;
    XamBulletGraphView.h = null;
    return XamBulletGraphView;
}(Base));

/*
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.
*/

var defaultFont = "Verdana, Arial, \"Segoe UI\", \"Myriad Pro\", sans-serif";
var BulletGraphStylingDefaults = (function () {
    var BulletGraphStylingDefaults = {
        //"ui-bulletgraph-backing": {
        //    "background-color": "#ffffff",
        //    "border-color": "#ffffff"
        //},
        "ui-bulletgraph-targetvalue": {
            "background-color": "#333333",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-tick": {
            "background-color": "rgba(0, 0, 0, 0.35)",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-minortick": {
            "background-color": "rgba(0, 0, 0, 0.2)",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-label": {
            "background-color": FontDefaults.gaugesFontBrush.fill,
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-range-palette-1": {
            "background-color": "#0078C8",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-range-palette-2": {
            "background-color": "#0099FF",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-range-palette-3": {
            "background-color": "#21A7FF",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-range-palette-4": {
            "background-color": "#4FB9FF",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-range-palette-5": {
            "background-color": "#79C9FF",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph-value": {
            "background-color": "#333",
            "border-top-color": "transparent"
        },
        "ui-bulletgraph": {
            "font-family": FontDefaults.gaugesFontFamily,
            "font-size": FontDefaults.gaugesFontSize + "px",
            "color": FontDefaults.gaugesFontBrush.fill
        },
        "font-family": FontDefaults.gaugesFontFamily,
        "font-style": "normal",
        "font-weight": FontDefaults.gaugesFontWeight,
        "font-size": FontDefaults.gaugesFontSize + "px",
        "color": FontDefaults.gaugesFontBrush.fill,
        "font-variant": "",
        "line-height": ""
    };
    return BulletGraphStylingDefaults;
})();

/*
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.
*/
/**
 * Represents event argument for FormatLinearGraphLabel.
*/
var IgxFormatLinearGraphLabelEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgxFormatLinearGraphLabelEventArgs() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    IgxFormatLinearGraphLabelEventArgs.prototype.createImplementation = function () {
        return new FormatLinearGraphLabelEventArgs();
    };
    Object.defineProperty(IgxFormatLinearGraphLabelEventArgs.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxFormatLinearGraphLabelEventArgs.prototype.onImplementationCreated = function () {
    };
    IgxFormatLinearGraphLabelEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgxFormatLinearGraphLabelEventArgs.prototype, "actualMinimumValue", {
        get: function () {
            return this.i.actualMinimumValue;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatLinearGraphLabelEventArgs.prototype, "actualMaximumValue", {
        get: function () {
            return this.i.actualMaximumValue;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatLinearGraphLabelEventArgs.prototype, "value", {
        get: function () {
            return this.i.value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatLinearGraphLabelEventArgs.prototype, "label", {
        get: function () {
            return this.i.label;
        },
        set: function (value) {
            this.i.label = value;
        },
        enumerable: false,
        configurable: true
    });
    return IgxFormatLinearGraphLabelEventArgs;
}());

/*
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.
*/
/**
 * Represents event argument for AlignLinearGraphLabel.
*/
var IgxAlignLinearGraphLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxAlignLinearGraphLabelEventArgs, _super);
    function IgxAlignLinearGraphLabelEventArgs() {
        return _super.call(this) || this;
    }
    IgxAlignLinearGraphLabelEventArgs.prototype.createImplementation = function () {
        return new AlignLinearGraphLabelEventArgs();
    };
    Object.defineProperty(IgxAlignLinearGraphLabelEventArgs.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignLinearGraphLabelEventArgs.prototype, "width", {
        get: function () {
            return this.i.width;
        },
        set: function (value) {
            this.i.width = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignLinearGraphLabelEventArgs.prototype, "height", {
        get: function () {
            return this.i.height;
        },
        set: function (value) {
            this.i.height = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignLinearGraphLabelEventArgs.prototype, "offsetX", {
        get: function () {
            return this.i.offsetX;
        },
        set: function (value) {
            this.i.offsetX = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignLinearGraphLabelEventArgs.prototype, "offsetY", {
        get: function () {
            return this.i.offsetY;
        },
        set: function (value) {
            this.i.offsetY = value;
        },
        enumerable: false,
        configurable: true
    });
    return IgxAlignLinearGraphLabelEventArgs;
}(IgxFormatLinearGraphLabelEventArgs));

/*
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.
*/
var IgxLinearGraphRangeComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGraphRangeComponent() {
        this._renderer = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._zoneRunner = null;
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGraphRangeComponent.prototype.onImplementationCreated = function () {
    };
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "rangeInternal", {
        get: function () {
            return this.i;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGraphRangeComponent.prototype.createImplementation = function () {
        return new XamLinearGraphRange();
    };
    IgxLinearGraphRangeComponent.prototype.ngOnInit = function () {
    };
    IgxLinearGraphRangeComponent.prototype._provideRenderer = function (renderer) {
        this._renderer = renderer;
        this._zoneRunner = function (act) { return renderer._ngZone.run(act); };
    };
    IgxLinearGraphRangeComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "name", {
        /**
     * Gets or sets the name of the range.
    */
        get: function () {
            return this.i.u;
        },
        set: function (v) {
            this.i.u = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "brush", {
        /**
         * Gets or sets the brush to use to fill the range.
        */
        get: function () {
            return brushToString(this.i.an);
        },
        set: function (v) {
            this.i.an = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "outline", {
        /**
         * Gets or sets the outline to use when rendering the range.
        */
        get: function () {
            return brushToString(this.i.ao);
        },
        set: function (v) {
            this.i.ao = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "startValue", {
        /**
         * Gets or sets the value at which the range starts along the scale.
        */
        get: function () {
            return this.i.o;
        },
        set: function (v) {
            this.i.o = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "endValue", {
        /**
         * Gets or sets the value at which the range ends along the scale.
        */
        get: function () {
            return this.i.j;
        },
        set: function (v) {
            this.i.j = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "innerStartExtent", {
        /**
         * Gets or sets the distance measured from the front/bottom of the bullet graph (from 0 to 1) at which to start rendering the inner edge of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal width/height of the bullet graph.
        */
        get: function () {
            return this.i.l;
        },
        set: function (v) {
            this.i.l = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "innerEndExtent", {
        /**
         * Gets or sets the distance measured from the front/bottom of the bullet graph (from 0 to 1) at which to end rendering the inner edge of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal width/height of the bullet graph.
        */
        get: function () {
            return this.i.k;
        },
        set: function (v) {
            this.i.k = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "outerStartExtent", {
        /**
         * Gets or sets the distance measured from the front/bottom of the bullet graph (from 0 to 1) at which to start rendering the outer edge of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal width/height of the bullet graph.
        */
        get: function () {
            return this.i.n;
        },
        set: function (v) {
            this.i.n = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "outerEndExtent", {
        /**
         * Gets or sets the distance measured from the front/bottom of the bullet graph (from 0 to 1) at which to end rendering the outer edge of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal width/height of the bullet graph.
        */
        get: function () {
            return this.i.m;
        },
        set: function (v) {
            this.i.m = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "strokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering this range's outline.
        */
        get: function () {
            return this.i.p;
        },
        set: function (v) {
            this.i.p = +v;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGraphRangeComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        return null;
    };
    Object.defineProperty(IgxLinearGraphRangeComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGraphRangeComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxLinearGraphRangeComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("LinearGraphRangeComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    IgxLinearGraphRangeComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    IgxLinearGraphRangeComponent.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeComponent, deps: [], target: ɵɵFactoryTarget.Component });
    IgxLinearGraphRangeComponent.ɵcmp = ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxLinearGraphRangeComponent, selector: "igx-linear-graph-range", inputs: { name: "name", brush: "brush", outline: "outline", startValue: "startValue", endValue: "endValue", innerStartExtent: "innerStartExtent", innerEndExtent: "innerEndExtent", outerStartExtent: "outerStartExtent", outerEndExtent: "outerEndExtent", strokeThickness: "strokeThickness" }, providers: [], ngImport: i0, template: "", isInline: true });
    return IgxLinearGraphRangeComponent;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-linear-graph-range',
                    template: "",
                    providers: []
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { name: [{
                type: Input
            }], brush: [{
                type: Input
            }], outline: [{
                type: Input
            }], startValue: [{
                type: Input
            }], endValue: [{
                type: Input
            }], innerStartExtent: [{
                type: Input
            }], innerEndExtent: [{
                type: Input
            }], outerStartExtent: [{
                type: Input
            }], outerEndExtent: [{
                type: Input
            }], strokeThickness: [{
                type: Input
            }] } });

var IgxLinearGraphRangeCollection = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxLinearGraphRangeCollection, _super);
    function IgxLinearGraphRangeCollection(list) {
        var _this = _super.call(this) || this;
        if (!IgxLinearGraphRangeComponent.$type) {
            IgxLinearGraphRangeComponent.$type = markType(IgxLinearGraphRangeComponent, "IgxLinearGraphRangeComponent");
        }
        if (list) {
            for (var i = 0; i < list.length; i++) {
                _this.add(list[i]);
            }
        }
        return _this;
    }
    IgxLinearGraphRangeCollection.prototype._createInnerColl = function () {
        if (!IgxLinearGraphRangeComponent.$type) {
            IgxLinearGraphRangeComponent.$type = markType(IgxLinearGraphRangeComponent, "IgxLinearGraphRangeComponent");
        }
        var coll = new SyncableObservableCollection$2(IgxLinearGraphRangeComponent.$type, XamLinearGraphRange.$type, 0);
        coll.compare = function (ext, int) {
            var comp = ext;
            if (comp._implementation) {
                comp = comp._implementation;
            }
            if (comp.equals) {
                return comp.equals(int);
            }
            return comp === int;
        };
        coll.createTo = function (ext) {
            return ext._implementation;
        };
        coll.createFrom = function (int) {
            var ext = int.externalObject;
            if (!ext) {
                ext = IgxLinearGraphRangeComponent._createFromInternal(int);
                if (ext) {
                    if (!int.$type && ext._implementation.setNativeElement) {
                        ext._implementation.setNativeElement(int);
                    }
                    else {
                        ext._implementation = int;
                    }
                }
            }
            return ext;
        };
        return coll;
    };
    return IgxLinearGraphRangeCollection;
}(IgCollection));

/*
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.
*/
/**
 * Represents a bullet graph.
*/
var IgxBulletGraphComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxBulletGraphComponent(_renderer, _elRef, _ngZone, _componentFactoryResolver, _injector) {
        //super();
        var _this = this;
        this._renderer = _renderer;
        this._elRef = _elRef;
        this._ngZone = _ngZone;
        this._componentFactoryResolver = _componentFactoryResolver;
        this._injector = _injector;
        /**
        * The ranges actually present in the chart. Do not directly modify this array.
        * This array's contents can be modified by causing Angular to reproject the child content.
        * Or adding and removing ranges from the manual ranges collection on the ranges property.
        */
        this.actualRanges = [];
        this._ranges = null;
        this._rangesAdapter = null;
        this._tooltipTemplate = null;
        this._tooltipContent = null;
        this._defaultTooltips = null;
        this._zoneRunner = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._formatLabel = null;
        this._alignLabel = null;
        this._actualMinimumValueChange = null;
        this._actualMaximumValueChange = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._zoneRunner = function (act) { return _this._ngZone.run(act); };
        this._implementation = this.createImplementation();
        this._container = _renderer.createElement("div");
        _renderer.appendChild(_elRef.element.nativeElement, this._container);
        _renderer.setStyle(this._container, "display", "block");
        _renderer.setStyle(this._container, "width", "100%");
        _renderer.setStyle(this._container, "height", "100%");
        var root;
        root = this._container;
        if (this._container.nativeElement != null) {
            root = this._container.nativeElement;
        }
        this._root = root;
        var ren = new AngularRenderer(root, this._renderer, window.document, this._ngZone, true, BulletGraphStylingDefaults);
        this._wrapper = ren;
        var gauge = this.i;
        this._rangesAdapter = new CollectionAdapter([], this.i.ranges, this.actualRanges, function (c) { return c.i; }, function (i) {
            i._provideRenderer(_this._wrapper);
            if (_this._root && _this._root.parentElement) {
                i._styling(_this._root, _this, _this);
            }
        }, function (i) { i._provideRenderer(null); });
        this._gauge = gauge;
        gauge.provideContainer(ren);
        ren.addSizeWatcher(function () {
            _this._gauge.containerResized();
        });
    }
    Object.defineProperty(IgxBulletGraphComponent.prototype, "height", {
        get: function () {
            return this._height;
        },
        set: function (value) {
            this._height = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "height", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "width", {
        get: function () {
            return this._width;
        },
        set: function (value) {
            this._width = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "width", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "ranges", {
        /**
         * A collection or manually added axes for the chart.
        */
        get: function () {
            var _this = this;
            if (this._ranges === null) {
                var coll = new IgxLinearGraphRangeCollection();
                var inner = coll._innerColl;
                inner.addListener(function (sender, e) {
                    switch (e.action) {
                        case NotifyCollectionChangedAction.Add:
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Remove:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            break;
                        case NotifyCollectionChangedAction.Replace:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Reset:
                            _this._rangesAdapter.clearManualItems();
                            break;
                    }
                });
                this._ranges = coll;
            }
            return this._ranges;
        },
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent.prototype.ngOnDestroy = function () {
        this._wrapper.rootWrapper.unlistenAll();
        this._gauge.destroy();
        this._wrapper.destroy();
    };
    IgxBulletGraphComponent.prototype.createImplementation = function () {
        return new XamBulletGraph();
    };
    IgxBulletGraphComponent.prototype.ngAfterContentInit = function () {
        var _this = this;
        if (TypeRegistrar.isRegistered("IgxSimpleDefaultTooltipComponent")) {
            var c = TypeRegistrar.get("IgxSimpleDefaultTooltipComponent");
            var cf = this._componentFactoryResolver.resolveComponentFactory(c);
            var cr_1 = this._dynamicContent.createComponent(cf);
            this._defaultTooltips = cr_1;
            cr_1.instance.onContentReady.subscribe(function () {
                _this._onDefaultTooltipsReady(cr_1);
            });
            this._ensureTooltipCreated();
        }
        this._rangesAdapter.updateQuery(this.contentRanges);
    };
    IgxBulletGraphComponent.prototype.ngAfterViewInit = function () {
        this.updateStyle();
        this.i.containerResized();
    };
    IgxBulletGraphComponent.prototype.updateStyle = function () {
        this._styling(this._root, this);
        if (this.actualRanges && this.actualRanges.length > 0) {
            var currRange = this.actualRanges;
            for (var i = 0; i < currRange.length; i++) {
                currRange[i]._styling(this._root, this, this);
            }
        }
    };
    Object.defineProperty(IgxBulletGraphComponent.prototype, "tooltipTemplate", {
        get: function () {
            return this._tooltipTemplate;
        },
        set: function (value) {
            this._tooltipTemplate = value;
            if (value == null) {
                if (this._tooltipContent !== null) {
                    this._tooltipContent.destroy();
                    this._tooltipContent = null;
                }
            }
            if (this._tooltipContent != null) {
                this._tooltipContent.instance.template = this._tooltipTemplate;
            }
            else {
                this._ensureTooltipCreated();
            }
        },
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent.prototype._ensureTooltipCreated = function () {
        if (this.i.toolTip == null) {
            var tooltip = this.createTooltip();
            if (tooltip == null) {
                return;
            }
            this._tooltipContent = tooltip;
            tooltip.instance.template = this._tooltipTemplate;
            this.i.toolTip = this.createWrapper(tooltip.location.nativeElement);
        }
    };
    IgxBulletGraphComponent.prototype.createWrapper = function (ele) {
        var wrapper = new AngularWrapper(ele, this._renderer, this._ngZone);
        wrapper.updateToolTip = ele.updateToolTip;
        wrapper.hideToolTip = ele.hideToolTip;
        return wrapper;
    };
    IgxBulletGraphComponent.prototype._ensureDefaultTooltip = function () {
        if (this._defaultTooltips == null) {
            return;
        }
        this._defaultTooltips.instance["ensureDefaultTooltip"](this);
    };
    IgxBulletGraphComponent.prototype._onDefaultTooltipsReady = function (cr) {
        this._ensureDefaultTooltip();
    };
    IgxBulletGraphComponent.prototype.createTooltip = function () {
        if (!TypeRegistrar.isRegistered("IgxTooltipContainerComponent")) {
            return null;
        }
        var t = TypeRegistrar.get("IgxTooltipContainerComponent");
        var cf = this._componentFactoryResolver.resolveComponentFactory(t);
        var cr = this._dynamicContent.createComponent(cf);
        var ele = cr.location.nativeElement;
        var self = this;
        ele.updateToolTip = function (c) {
            if (c.externalObject) {
                c = c.externalObject;
            }
            else {
                var ext = new IgxDataContext();
                ext._implementation = c;
                c = ext;
            }
            if (ele.parentElement != self._container) {
                if (ele.parentElement != null) {
                    ele.parentElement.removeChild(ele);
                }
                self._container.appendChild(ele);
            }
            cr.instance.context = c;
            ele.style.display = "block";
            return true;
        };
        ele.hideToolTip = function () {
            ele.style.display = "none";
        };
        ele.style.display = "none";
        return cr;
    };
    IgxBulletGraphComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    Object.defineProperty(IgxBulletGraphComponent.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgxBulletGraphComponent.prototype, "animating", {
        /**
     * Gets a value indicating whether the bullet graph is currently animating.
    */
        get: function () {
            return this.i.a7;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "transitionProgress", {
        /**
         * Gets the transition progress of the animation when the control is animating.
        */
        get: function () {
            return this.i.cz;
        },
        set: function (v) {
            this.i.cz = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "orientation", {
        /**
         * Gets or sets the orientation of the scale.
        */
        get: function () {
            return this.i.as;
        },
        set: function (v) {
            this.i.as = ensureEnum(LinearScaleOrientation_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "scaleBackgroundBrush", {
        /**
         * Gets or sets the background brush for the scale.
        */
        get: function () {
            return brushToString(this.i.h2);
        },
        set: function (v) {
            this.i.h2 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "scaleBackgroundOutline", {
        /**
         * Gets or sets the background outline for the scale.
        */
        get: function () {
            return brushToString(this.i.h3);
        },
        set: function (v) {
            this.i.h3 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "scaleBackgroundThickness", {
        /**
         * Gets or sets the background outline thickness for the scale.
        */
        get: function () {
            return this.i.ch;
        },
        set: function (v) {
            this.i.ch = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "rangeBrushes", {
        /**
         * Gets or sets a collection of brushes to be used as the palette for bullet graph ranges.
        */
        get: function () {
            return fromBrushCollection(this.i.ah);
        },
        set: function (v) {
            this.i.ah = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "rangeOutlines", {
        /**
         * Gets or sets a collection of brushes to be used as the palette for bullet graph outlines.
        */
        get: function () {
            return fromBrushCollection(this.i.ai);
        },
        set: function (v) {
            this.i.ai = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minimumValue", {
        /**
         * Gets or sets the minimum value of the scale.
        */
        get: function () {
            return this.i.b7;
        },
        set: function (v) {
            this.i.b7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualMinimumValue", {
        /**
         * Gets the resolved minimum value of the scale.
        */
        get: function () {
            return this.i.bs;
        },
        set: function (v) {
            this.i.bs = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "maximumValue", {
        /**
         * Gets or sets the maximum value of the scale.
        */
        get: function () {
            return this.i.b6;
        },
        set: function (v) {
            this.i.b6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualMaximumValue", {
        /**
         * Gets the resolved maximum value of the scale.
        */
        get: function () {
            return this.i.br;
        },
        set: function (v) {
            this.i.br = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValue", {
        /**
         * Gets or sets the value indicated by the target value bar.
        */
        get: function () {
            return this.i.cn;
        },
        set: function (v) {
            this.i.cn = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueName", {
        /**
         * Gets or sets the name used for the target value. The name is displayed in the default target value tooltip.
        */
        get: function () {
            return this.i.el;
        },
        set: function (v) {
            this.i.el = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "value", {
        /**
         * Gets or sets the value at which the bar ends.
        */
        get: function () {
            return this.i.c0;
        },
        set: function (v) {
            this.i.c0 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueName", {
        /**
         * Gets or sets the name used for actual value.
        */
        get: function () {
            return this.i.e2;
        },
        set: function (v) {
            this.i.e2 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "highlightValue", {
        /**
         * Gets or sets the highlight value at which to point the secondary needle of the gauge.
        */
        get: function () {
            return this.i.bz;
        },
        set: function (v) {
            this.i.bz = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualHighlightValueOpacity", {
        /**
         * Gets the actual opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.bq;
        },
        set: function (v) {
            this.i.bq = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "highlightValueOpacity", {
        /**
         * Gets or sets the opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.b0;
        },
        set: function (v) {
            this.i.b0 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualHighlightValueDisplayMode", {
        /**
         * Gets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.az;
        },
        set: function (v) {
            this.i.az = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "highlightValueDisplayMode", {
        /**
         * Gets or sets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.a0;
        },
        set: function (v) {
            this.i.a0 = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "rangeInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the ranges, measured from the front/bottom of the control as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cf;
        },
        set: function (v) {
            this.i.cf = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "rangeOuterExtent", {
        /**
         * Gets or sets the position at which to stop rendering the range as a value from 0 to 1 measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cg;
        },
        set: function (v) {
            this.i.cg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the actual value geometries, measured from the front/bottom of the bullet graph as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.c1;
        },
        set: function (v) {
            this.i.c1 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueOuterExtent", {
        /**
         * Gets or sets the position at which to stop rendering the actual value geometries as a value from 0 to 1 measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.c2;
        },
        set: function (v) {
            this.i.c2 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "interval", {
        /**
         * Gets or sets the interval to use for the scale.
        */
        get: function () {
            return this.i.b1;
        },
        set: function (v) {
            this.i.b1 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "ticksPostInitial", {
        /**
         * A value to start adding tickmarks, added to the scale's MinimumValue.
        */
        get: function () {
            return this.i.cu;
        },
        set: function (v) {
            this.i.cu = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "ticksPreTerminal", {
        /**
         * A value to stop adding tickmarks, subtracted from the scale's MaximumValue.
        */
        get: function () {
            return this.i.cv;
        },
        set: function (v) {
            this.i.cv = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelInterval", {
        /**
         * Gets or sets the interval to use for rendering labels. This defaults to be the same interval as the tickmarks on the scale.
        */
        get: function () {
            return this.i.b3;
        },
        set: function (v) {
            this.i.b3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelExtent", {
        /**
         * Gets or sets the position at which to put the labels as a value from 0 to 1, measured from the bottom of the scale.
         * Values further from zero than 1 can be used to hide the labels of the bullet graph.
        */
        get: function () {
            return this.i.b2;
        },
        set: function (v) {
            this.i.b2 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelsPostInitial", {
        /**
         * A value to start adding labels, added to the scale's MinimumValue.
        */
        get: function () {
            return this.i.b4;
        },
        set: function (v) {
            this.i.b4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelsPreTerminal", {
        /**
         * A value to stop adding labels, subtracted from the scale's MaximumValue.
        */
        get: function () {
            return this.i.b5;
        },
        set: function (v) {
            this.i.b5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minorTickCount", {
        /**
         * Gets or sets the number of minor tickmarks to place between major tickmarks.
        */
        get: function () {
            return this.i.b8;
        },
        set: function (v) {
            this.i.b8 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "tickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the major tickmarks as a value from 0 to 1, measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cw;
        },
        set: function (v) {
            this.i.cw = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "tickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the major tickmarks as a value from 0 to 1, measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cs;
        },
        set: function (v) {
            this.i.cs = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "tickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering ticks.
        */
        get: function () {
            return this.i.cy;
        },
        set: function (v) {
            this.i.cy = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "tickBrush", {
        /**
         * Gets or sets the brush to use for the major tickmarks.
        */
        get: function () {
            return brushToString(this.i.h6);
        },
        set: function (v) {
            this.i.h6 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "fontBrush", {
        /**
         * Gets or sets the brush to use for the label font.
        */
        get: function () {
            return brushToString(this.i.hz);
        },
        set: function (v) {
            this.i.hz = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueBrush", {
        /**
         * Gets or sets the brush to use for the actual value element.
        */
        get: function () {
            return brushToString(this.i.h7);
        },
        set: function (v) {
            this.i.h7 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueOutline", {
        /**
         * Gets or sets the brush to use for the outline of actual value element.
        */
        get: function () {
            return brushToString(this.i.h8);
        },
        set: function (v) {
            this.i.h8 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "valueStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering single actual value element.
        */
        get: function () {
            return this.i.c3;
        },
        set: function (v) {
            this.i.c3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minorTickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the minor tickmarks as a value from 0 to 1, measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cb;
        },
        set: function (v) {
            this.i.cb = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minorTickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the minor tickmarks as a value from 0 to 1, measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.b9;
        },
        set: function (v) {
            this.i.b9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minorTickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering minor ticks.
        */
        get: function () {
            return this.i.cd;
        },
        set: function (v) {
            this.i.cd = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "minorTickBrush", {
        /**
         * Gets or sets the brush to use for the minor tickmarks.
        */
        get: function () {
            return brushToString(this.i.h1);
        },
        set: function (v) {
            this.i.h1 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "isScaleInverted", {
        /**
         * Gets or sets a value indicating whether the scale is inverted.
         * When the scale is inverted the direction in which the scale values increase is right to left.
        */
        get: function () {
            return this.i.a9;
        },
        set: function (v) {
            this.i.a9 = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "backingBrush", {
        /**
         * Gets or sets the brush to use to fill the backing of the bullet graph.
        */
        get: function () {
            return brushToString(this.i.hx);
        },
        set: function (v) {
            this.i.hx = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "backingOutline", {
        /**
         * Gets or sets the brush to use for the outline of the backing.
        */
        get: function () {
            return brushToString(this.i.hy);
        },
        set: function (v) {
            this.i.hy = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "backingStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the backing outline.
        */
        get: function () {
            return this.i.bw;
        },
        set: function (v) {
            this.i.bw = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "backingInnerExtent", {
        /**
         * Gets or sets the inner extent of the bullet graph backing.
        */
        get: function () {
            return this.i.bu;
        },
        set: function (v) {
            this.i.bu = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "backingOuterExtent", {
        /**
         * Gets or sets the outer extent of the bullet graph backing.
        */
        get: function () {
            return this.i.bv;
        },
        set: function (v) {
            this.i.bv = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "scaleStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the scale, measured from the front/bottom of the bullet graph as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cm;
        },
        set: function (v) {
            this.i.cm = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "scaleEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the scale as a value from 0 to 1, measured from the front/bottom of the bullet graph.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cj;
        },
        set: function (v) {
            this.i.cj = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueBrush", {
        /**
         * Gets or sets the brush to use when rendering the fill of the comparative marker.
        */
        get: function () {
            return brushToString(this.i.h4);
        },
        set: function (v) {
            this.i.h4 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueBreadth", {
        /**
         * Get or sets the breadth of the target value element.
        */
        get: function () {
            return this.i.co;
        },
        set: function (v) {
            this.i.co = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the target value, measured from the front/bottom of the control as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cp;
        },
        set: function (v) {
            this.i.cp = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueOuterExtent", {
        /**
         * Gets or sets the position at which to start rendering the target value, measured from the front/bottom of the control as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the bullet graph.
        */
        get: function () {
            return this.i.cq;
        },
        set: function (v) {
            this.i.cq = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueOutline", {
        /**
         * Gets or sets the brush to use when rendering the outline of the target value.
        */
        get: function () {
            return brushToString(this.i.h5);
        },
        set: function (v) {
            this.i.h5 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "targetValueStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the outline of the target value bar.
        */
        get: function () {
            return this.i.cr;
        },
        set: function (v) {
            this.i.cr = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "mergeViewports", {
        /**
         * Gets or sets whether the scale viewport will be merged with backing viewport.
        */
        get: function () {
            return this.i.bb;
        },
        set: function (v) {
            this.i.bb = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelFormat", {
        /**
         * Gets or sets the label composite format used when creating label values.
        */
        get: function () {
            return this.i.dr;
        },
        set: function (v) {
            this.i.dr = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "labelFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the LabelFormat string.
        */
        get: function () {
            return this.i.ag;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.ag = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "transitionDuration", {
        /**
         * Gets or sets the number of milliseconds over which changes to the bullet graph should be animated.
        */
        get: function () {
            return this.i.c7;
        },
        set: function (v) {
            this.i.c7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "showToolTipTimeout", {
        /**
         * Gets or sets the time in milliseconds that tooltip appearance is delayed with.
        */
        get: function () {
            return this.i.c6;
        },
        set: function (v) {
            this.i.c6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "showToolTip", {
        /**
         * Gets or sets a value indicating whether tooltips are enabled.
        */
        get: function () {
            return this.i.bd;
        },
        set: function (v) {
            this.i.bd = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "font", {
        /**
         * Gets or sets the font.
        */
        get: function () {
            return this.i.dh;
        },
        set: function (v) {
            this.i.dh = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "pixelScalingRatio", {
        /**
         * Gets or sets the scaling value used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.ce;
        },
        set: function (v) {
            this.i.ce = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualPixelScalingRatio", {
        /**
         * Gets the actual pixel scaling ratio used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.bt;
        },
        set: function (v) {
            this.i.bt = +v;
        },
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        if (this.ranges != null && this.ranges.findByName && this.ranges.findByName(name)) {
            return this.ranges.findByName(name);
        }
        if (this.labelFormatSpecifiers != null && arrayFindByName(this.labelFormatSpecifiers, name)) {
            return arrayFindByName(this.labelFormatSpecifiers, name);
        }
        return null;
    };
    Object.defineProperty(IgxBulletGraphComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxBulletGraphComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("BulletGraphComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    /**
 * Gets the value for the main scale of the bullet graph for a given point within the bounds of the bullet graph.

* @param point  * The point for which to retrieve the associated value.
*/
    IgxBulletGraphComponent.prototype.getValueForPoint = function (point) {
        var iv = this.i.by(toPoint(point));
        return (iv);
    };
    /**
     * Returns visuals as a serialized string.
    
    */
    IgxBulletGraphComponent.prototype.exportSerializedVisualData = function () {
        var iv = this.i.dg();
        return (iv);
    };
    /**
     * Provide a container for the bullet graph.
    
    * @param container  * The container.
    */
    IgxBulletGraphComponent.prototype.provideContainer = function (container) {
        this.i.provideContainer(container);
    };
    /**
     * Notify that the container has resized.
    
    */
    IgxBulletGraphComponent.prototype.containerResized = function () {
        this.i.containerResized();
    };
    /**
     * Notify that the bullet graph styling has updated.
    
    */
    IgxBulletGraphComponent.prototype.styleUpdated = function () {
        this.i.f5();
    };
    /**
     * Use to force the bullet graph to finish any deferred work before printing or evaluating its visual.
     * This should only be called if the visual of the bullet graph needs to be synchronously saved or evaluated.
     * Calling this method too often will hinder the performance of the bullet graph.
    
    */
    IgxBulletGraphComponent.prototype.flush = function () {
        this.i.fc();
    };
    Object.defineProperty(IgxBulletGraphComponent.prototype, "formatLabel", {
        /**
         * Event which is raised when a label of the bullet graph is formatted.
         * Function takes first argument evt and second argument ui.
         * Use ui.owner to obtain reference to the bullet graph widget.
         * Use ui.actualMinimumValue to obtain the minimum value of the bullet graph scale.
         * Use ui.actualMaximumValue to obtain the maximum value of the bullet graph scale.
         * Use ui.value to obtain the value on the the bullet graph scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._formatLabel == null) {
                this._formatLabel = new EventEmitter();
                this.i.formatLabel = delegateCombine(this.i.formatLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatLinearGraphLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatLabel) {
                            _this.beforeFormatLabel(_this, outerArgs);
                        }
                        _this._formatLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "alignLabel", {
        /**
         * Event which is raised when a label of the bullet graph is aligned along the scale.
         * Function takes first argument evt and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of the bullet graph scale.
         * Use ui.actualMaximumValue to obtain the maximum value of the bullet graph scale.
         * Use ui.value to obtain the value on the the bullet graph scale associated with the label.
         * Use ui.label to obtain the string value of the label.
         * Use ui.width to obtain the width of the label.
         * Use ui.height to obtain the height of the label.
         * Use ui.offsetX to obtain the X offset of the label on the bullet graph scale.
         * Use ui.offsetY to obtain the Y offset of the label on the bullet graph scale.
        */
        get: function () {
            var _this = this;
            if (this._alignLabel == null) {
                this._alignLabel = new EventEmitter();
                this.i.alignLabel = delegateCombine(this.i.alignLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignLinearGraphLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignLabel) {
                            _this.beforeAlignLabel(_this, outerArgs);
                        }
                        _this._alignLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualMinimumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMinimumValueChange == null) {
                this._actualMinimumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMinimumValue;
                    if (_this.beforeActualMinimumValueChange) {
                        _this.beforeActualMinimumValueChange(_this, ext);
                    }
                    _this._actualMinimumValueChange.emit(ext);
                });
            }
            return this._actualMinimumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxBulletGraphComponent.prototype, "actualMaximumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMaximumValueChange == null) {
                this._actualMaximumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMaximumValue;
                    if (_this.beforeActualMaximumValueChange) {
                        _this.beforeActualMaximumValueChange(_this, ext);
                    }
                    _this._actualMaximumValueChange.emit(ext);
                });
            }
            return this._actualMaximumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    IgxBulletGraphComponent.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphComponent, deps: [{ token: Renderer2 }, { token: ViewContainerRef }, { token: NgZone }, { token: ComponentFactoryResolver }, { token: Injector }], target: ɵɵFactoryTarget.Component });
    IgxBulletGraphComponent.ɵcmp = ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxBulletGraphComponent, selector: "igx-bullet-graph", inputs: { height: "height", width: "width", tooltipTemplate: "tooltipTemplate", transitionProgress: "transitionProgress", orientation: "orientation", scaleBackgroundBrush: "scaleBackgroundBrush", scaleBackgroundOutline: "scaleBackgroundOutline", scaleBackgroundThickness: "scaleBackgroundThickness", rangeBrushes: "rangeBrushes", rangeOutlines: "rangeOutlines", minimumValue: "minimumValue", actualMinimumValue: "actualMinimumValue", maximumValue: "maximumValue", actualMaximumValue: "actualMaximumValue", targetValue: "targetValue", targetValueName: "targetValueName", value: "value", valueName: "valueName", highlightValue: "highlightValue", actualHighlightValueOpacity: "actualHighlightValueOpacity", highlightValueOpacity: "highlightValueOpacity", actualHighlightValueDisplayMode: "actualHighlightValueDisplayMode", highlightValueDisplayMode: "highlightValueDisplayMode", rangeInnerExtent: "rangeInnerExtent", rangeOuterExtent: "rangeOuterExtent", valueInnerExtent: "valueInnerExtent", valueOuterExtent: "valueOuterExtent", interval: "interval", ticksPostInitial: "ticksPostInitial", ticksPreTerminal: "ticksPreTerminal", labelInterval: "labelInterval", labelExtent: "labelExtent", labelsPostInitial: "labelsPostInitial", labelsPreTerminal: "labelsPreTerminal", minorTickCount: "minorTickCount", tickStartExtent: "tickStartExtent", tickEndExtent: "tickEndExtent", tickStrokeThickness: "tickStrokeThickness", tickBrush: "tickBrush", fontBrush: "fontBrush", valueBrush: "valueBrush", valueOutline: "valueOutline", valueStrokeThickness: "valueStrokeThickness", minorTickStartExtent: "minorTickStartExtent", minorTickEndExtent: "minorTickEndExtent", minorTickStrokeThickness: "minorTickStrokeThickness", minorTickBrush: "minorTickBrush", isScaleInverted: "isScaleInverted", backingBrush: "backingBrush", backingOutline: "backingOutline", backingStrokeThickness: "backingStrokeThickness", backingInnerExtent: "backingInnerExtent", backingOuterExtent: "backingOuterExtent", scaleStartExtent: "scaleStartExtent", scaleEndExtent: "scaleEndExtent", targetValueBrush: "targetValueBrush", targetValueBreadth: "targetValueBreadth", targetValueInnerExtent: "targetValueInnerExtent", targetValueOuterExtent: "targetValueOuterExtent", targetValueOutline: "targetValueOutline", targetValueStrokeThickness: "targetValueStrokeThickness", mergeViewports: "mergeViewports", labelFormat: "labelFormat", labelFormatSpecifiers: "labelFormatSpecifiers", transitionDuration: "transitionDuration", showToolTipTimeout: "showToolTipTimeout", showToolTip: "showToolTip", font: "font", pixelScalingRatio: "pixelScalingRatio", actualPixelScalingRatio: "actualPixelScalingRatio" }, outputs: { formatLabel: "formatLabel", alignLabel: "alignLabel", actualMinimumValueChange: "actualMinimumValueChange", actualMaximumValueChange: "actualMaximumValueChange" }, host: { classAttribute: "igx-bullet-graph ig-bullet-graph" }, providers: [], queries: [{ propertyName: "contentRanges", predicate: IgxLinearGraphRangeComponent }], viewQueries: [{ propertyName: "_dynamicContent", first: true, predicate: ["dynamicContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #dynamicContent></ng-container>", isInline: true, styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"], changeDetection: ChangeDetectionStrategy.OnPush });
    return IgxBulletGraphComponent;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-bullet-graph',
                    template: "<ng-container #dynamicContent></ng-container>",
                    changeDetection: ChangeDetectionStrategy.OnPush,
                    providers: [],
                    host: { 'class': 'igx-bullet-graph ig-bullet-graph' },
                    styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"]
                }]
        }], ctorParameters: function () { return [{ type: Renderer2 }, { type: ViewContainerRef }, { type: NgZone }, { type: ComponentFactoryResolver }, { type: Injector }]; }, propDecorators: { _dynamicContent: [{
                type: ViewChild,
                args: ["dynamicContent", { read: ViewContainerRef, static: true }]
            }], height: [{
                type: Input
            }], width: [{
                type: Input
            }], contentRanges: [{
                type: ContentChildren,
                args: [IgxLinearGraphRangeComponent]
            }], tooltipTemplate: [{
                type: Input
            }], transitionProgress: [{
                type: Input
            }], orientation: [{
                type: Input
            }], scaleBackgroundBrush: [{
                type: Input
            }], scaleBackgroundOutline: [{
                type: Input
            }], scaleBackgroundThickness: [{
                type: Input
            }], rangeBrushes: [{
                type: Input
            }], rangeOutlines: [{
                type: Input
            }], minimumValue: [{
                type: Input
            }], actualMinimumValue: [{
                type: Input
            }], maximumValue: [{
                type: Input
            }], actualMaximumValue: [{
                type: Input
            }], targetValue: [{
                type: Input
            }], targetValueName: [{
                type: Input
            }], value: [{
                type: Input
            }], valueName: [{
                type: Input
            }], highlightValue: [{
                type: Input
            }], actualHighlightValueOpacity: [{
                type: Input
            }], highlightValueOpacity: [{
                type: Input
            }], actualHighlightValueDisplayMode: [{
                type: Input
            }], highlightValueDisplayMode: [{
                type: Input
            }], rangeInnerExtent: [{
                type: Input
            }], rangeOuterExtent: [{
                type: Input
            }], valueInnerExtent: [{
                type: Input
            }], valueOuterExtent: [{
                type: Input
            }], interval: [{
                type: Input
            }], ticksPostInitial: [{
                type: Input
            }], ticksPreTerminal: [{
                type: Input
            }], labelInterval: [{
                type: Input
            }], labelExtent: [{
                type: Input
            }], labelsPostInitial: [{
                type: Input
            }], labelsPreTerminal: [{
                type: Input
            }], minorTickCount: [{
                type: Input
            }], tickStartExtent: [{
                type: Input
            }], tickEndExtent: [{
                type: Input
            }], tickStrokeThickness: [{
                type: Input
            }], tickBrush: [{
                type: Input
            }], fontBrush: [{
                type: Input
            }], valueBrush: [{
                type: Input
            }], valueOutline: [{
                type: Input
            }], valueStrokeThickness: [{
                type: Input
            }], minorTickStartExtent: [{
                type: Input
            }], minorTickEndExtent: [{
                type: Input
            }], minorTickStrokeThickness: [{
                type: Input
            }], minorTickBrush: [{
                type: Input
            }], isScaleInverted: [{
                type: Input
            }], backingBrush: [{
                type: Input
            }], backingOutline: [{
                type: Input
            }], backingStrokeThickness: [{
                type: Input
            }], backingInnerExtent: [{
                type: Input
            }], backingOuterExtent: [{
                type: Input
            }], scaleStartExtent: [{
                type: Input
            }], scaleEndExtent: [{
                type: Input
            }], targetValueBrush: [{
                type: Input
            }], targetValueBreadth: [{
                type: Input
            }], targetValueInnerExtent: [{
                type: Input
            }], targetValueOuterExtent: [{
                type: Input
            }], targetValueOutline: [{
                type: Input
            }], targetValueStrokeThickness: [{
                type: Input
            }], mergeViewports: [{
                type: Input
            }], labelFormat: [{
                type: Input
            }], labelFormatSpecifiers: [{
                type: Input
            }], transitionDuration: [{
                type: Input
            }], showToolTipTimeout: [{
                type: Input
            }], showToolTip: [{
                type: Input
            }], font: [{
                type: Input
            }], pixelScalingRatio: [{
                type: Input
            }], actualPixelScalingRatio: [{
                type: Input
            }], formatLabel: [{
                type: Output
            }], alignLabel: [{
                type: Output
            }], actualMinimumValueChange: [{
                type: Output
            }], actualMaximumValueChange: [{
                type: Output
            }] } });

/*
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.
*/
var IgxLinearGraphRangeModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGraphRangeModule() {
    }
    IgxLinearGraphRangeModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGraphRangeModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeModule, declarations: [IgxLinearGraphRangeComponent], imports: [CommonModule], exports: [IgxLinearGraphRangeComponent] });
    IgxLinearGraphRangeModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeModule, imports: [[CommonModule,
            ]] });
    return IgxLinearGraphRangeModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [IgxLinearGraphRangeComponent],
                    exports: [IgxLinearGraphRangeComponent
                    ],
                    imports: [CommonModule,
                    ],
                    entryComponents: []
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxLinearGraphRangeDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGraphRangeDynamicModule() {
        TypeRegistrar.registerCons('IgxLinearGraphRangeComponent', IgxLinearGraphRangeComponent);
    }
    IgxLinearGraphRangeDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGraphRangeDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeDynamicModule, imports: [CommonModule, IgxLinearGraphRangeModule], exports: [IgxLinearGraphRangeModule] });
    IgxLinearGraphRangeDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeDynamicModule, imports: [[CommonModule, IgxLinearGraphRangeModule
            ], IgxLinearGraphRangeModule] });
    return IgxLinearGraphRangeDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGraphRangeDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxLinearGraphRangeModule
                    ],
                    imports: [CommonModule, IgxLinearGraphRangeModule
                    ],
                    entryComponents: [IgxLinearGraphRangeComponent]
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxBulletGraphCoreModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxBulletGraphCoreModule() {
    }
    IgxBulletGraphCoreModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxBulletGraphCoreModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreModule, declarations: [IgxBulletGraphComponent], imports: [CommonModule, IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule], exports: [IgxBulletGraphComponent,
            IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule] });
    IgxBulletGraphCoreModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreModule, imports: [[CommonModule, IgxLinearGraphRangeModule,
                IgxNumberFormatSpecifierModule
            ], IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule] });
    return IgxBulletGraphCoreModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [IgxBulletGraphComponent],
                    exports: [IgxBulletGraphComponent,
                        IgxLinearGraphRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    imports: [CommonModule, IgxLinearGraphRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    entryComponents: []
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxBulletGraphCoreDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxBulletGraphCoreDynamicModule() {
        TypeRegistrar.registerCons('IgxBulletGraphComponent', IgxBulletGraphComponent);
    }
    IgxBulletGraphCoreDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxBulletGraphCoreDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreDynamicModule, imports: [CommonModule, IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxBulletGraphCoreModule], exports: [IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxBulletGraphCoreModule] });
    IgxBulletGraphCoreDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreDynamicModule, imports: [[CommonModule, IgxLinearGraphRangeDynamicModule,
                IgxNumberFormatSpecifierDynamicModule,
                IgxBulletGraphCoreModule
            ], IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxBulletGraphCoreModule] });
    return IgxBulletGraphCoreDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphCoreDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxLinearGraphRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxBulletGraphCoreModule
                    ],
                    imports: [CommonModule, IgxLinearGraphRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxBulletGraphCoreModule
                    ],
                    entryComponents: [IgxBulletGraphComponent]
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxBulletGraphModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxBulletGraphModule() {
    }
    IgxBulletGraphModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxBulletGraphModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphModule, imports: [CommonModule, IgxBulletGraphCoreModule,
            IgxDVInteractivityModule], exports: [IgxBulletGraphCoreModule,
            IgxDVInteractivityModule] });
    IgxBulletGraphModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphModule, imports: [[CommonModule, IgxBulletGraphCoreModule,
                IgxDVInteractivityModule
            ], IgxBulletGraphCoreModule,
            IgxDVInteractivityModule] });
    return IgxBulletGraphModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxBulletGraphCoreModule,
                        IgxDVInteractivityModule
                    ],
                    imports: [CommonModule, IgxBulletGraphCoreModule,
                        IgxDVInteractivityModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/
var IgxBulletGraphDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxBulletGraphDynamicModule() {
    }
    IgxBulletGraphDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxBulletGraphDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphDynamicModule, imports: [CommonModule, IgxBulletGraphCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxBulletGraphModule], exports: [IgxBulletGraphCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxBulletGraphModule] });
    IgxBulletGraphDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphDynamicModule, imports: [[CommonModule, IgxBulletGraphCoreDynamicModule,
                IgxDVInteractivityDynamicModule,
                IgxBulletGraphModule
            ], IgxBulletGraphCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxBulletGraphModule] });
    return IgxBulletGraphDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxBulletGraphDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxBulletGraphCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxBulletGraphModule
                    ],
                    imports: [CommonModule, IgxBulletGraphCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxBulletGraphModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/

/*
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.
*/
/**
 * Enumeration of preset needle shapes.
 */
var LinearGraphNeedleShape = /*@__PURE__*/ (function (LinearGraphNeedleShape) {
    /**
     * A custom user defined needle shape.
     */
    LinearGraphNeedleShape[LinearGraphNeedleShape["Custom"] = 0] = "Custom";
    /**
     * A needle shaped like a rectangle.
     */
    LinearGraphNeedleShape[LinearGraphNeedleShape["Rectangle"] = 1] = "Rectangle";
    /**
     * A needle shaped like a triangle.
     */
    LinearGraphNeedleShape[LinearGraphNeedleShape["Triangle"] = 2] = "Triangle";
    /**
     * A needle shaped like a needle.
     */
    LinearGraphNeedleShape[LinearGraphNeedleShape["Needle"] = 3] = "Needle";
    /**
     * A needle shaped like a trapezoid.
     */
    LinearGraphNeedleShape[LinearGraphNeedleShape["Trapezoid"] = 4] = "Trapezoid";
    return LinearGraphNeedleShape;
})({});
/**
 * @hidden
 */
var LinearGraphNeedleShape_$type = markEnum('LinearGraphNeedleShape', 'Custom,0|Rectangle,1|Triangle,2|Needle,3|Trapezoid,4');

/*
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.
*/
/**
 * Enum specifying the position of the titles relative to scale's start/end.
 */
var TitlesPosition = /*@__PURE__*/ (function (TitlesPosition) {
    /**
     * The titles are placed at scale's start (minimum value).
     */
    TitlesPosition[TitlesPosition["ScaleStart"] = 0] = "ScaleStart";
    /**
     * The titles are placed at the scale's end (maximum value).
     */
    TitlesPosition[TitlesPosition["ScaleEnd"] = 1] = "ScaleEnd";
    return TitlesPosition;
})({});
/**
 * @hidden
 */
var TitlesPosition_$type = markEnum('TitlesPosition', 'ScaleStart,0|ScaleEnd,1');

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphNeedlePreparer = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphNeedlePreparer, _super);
    function LinearGraphNeedlePreparer() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.b = null;
        return _this;
    }
    LinearGraphNeedlePreparer.prototype.c = function (a) {
        this.d(a);
    };
    LinearGraphNeedlePreparer.prototype.d = function (a) {
        this.f(a);
        var b = this.a();
        a.n = b.u;
        a.m = b.q;
        a.q = 0;
        if (!isNaN_(b.t)) {
            a.q = Math.max(a.q, b.t);
        }
        if (!isNaN_(b.p)) {
            a.q = Math.max(a.q, b.p);
        }
        var c = 7;
        var d = new Array(c);
        var e = new Array(c + 1);
        this.e(a, d, e, b);
        for (var f = 0; f < c; f++) {
            var g = d[f].f;
            g.add(e[f]);
            g.add(e[f + 1]);
        }
    };
    LinearGraphNeedlePreparer.prototype.e = function (a, b, c, d) {
        var e = d.q;
        var f = d.u;
        var g = d.r;
        var h = d.v;
        if (d.d == 0) {
            e = 1 - e;
            f = 1 - f;
            g = 1 - g;
            h = 1 - h;
            b[0] = a.i;
            b[1] = a.j;
            b[2] = a.d;
            b[3] = a.g;
            b[4] = a.f;
            b[5] = a.h;
            b[6] = a.e;
            c[0] = { $type: Point_$type, x: (-1) * d.t, y: f };
            c[1] = { $type: Point_$type, x: d.t, y: f };
            c[2] = { $type: Point_$type, x: d.w, y: h };
            c[3] = { $type: Point_$type, x: d.s, y: g };
            c[4] = { $type: Point_$type, x: d.p, y: e };
            c[5] = { $type: Point_$type, x: (-1) * d.p, y: e };
            c[6] = { $type: Point_$type, x: (-1) * d.s, y: g };
            c[7] = { $type: Point_$type, x: (-1) * d.w, y: h };
        }
        else {
            b[0] = a.i;
            b[1] = a.j;
            b[2] = a.d;
            b[3] = a.g;
            b[4] = a.f;
            b[5] = a.h;
            b[6] = a.e;
            c[0] = { $type: Point_$type, x: f, y: (-1) * d.t };
            c[1] = { $type: Point_$type, x: f, y: d.t };
            c[2] = { $type: Point_$type, x: h, y: d.w };
            c[3] = { $type: Point_$type, x: g, y: d.s };
            c[4] = { $type: Point_$type, x: e, y: d.p };
            c[5] = { $type: Point_$type, x: e, y: (-1) * d.p };
            c[6] = { $type: Point_$type, x: g, y: (-1) * d.s };
            c[7] = { $type: Point_$type, x: h, y: (-1) * d.w };
        }
    };
    LinearGraphNeedlePreparer.prototype.a = function () {
        var a = this.b;
        var b = 0.85;
        var c = 0.25;
        var d = 0.45;
        var e = a.o;
        var f = 0.5;
        var g = a.q;
        var h = a.u;
        var i = a.r;
        var j = a.v;
        var k = a.p;
        var l = a.t;
        var m = a.s;
        var n = a.w;
        if (isNaN_(g)) {
            g = c;
        }
        if (isNaN_(h)) {
            h = b;
        }
        if (isNaN_(i)) {
            if (a.c == 3) {
                i = d;
            }
            else {
                i = c;
            }
        }
        if (isNaN_(j)) {
            j = b;
        }
        if (isNaN_(l)) {
            l = e;
        }
        if (isNaN_(k)) {
            if (a.c == 4) {
                k = l * f;
            }
            else {
                k = e;
            }
        }
        if (isNaN_(m)) {
            m = e;
        }
        if (isNaN_(n)) {
            n = e;
        }
        switch (a.c) {
            case 2:
            case 1:
            case 4:
                j = h;
                i = g;
                break;
        }
        if (a.c == 3) {
            k = 0;
            m = l;
            n = l;
            j = h;
        }
        if (a.c == 2) {
            k = 0;
            m = 0;
            n = l;
        }
        if (a.c == 4) {
            m = k;
            n = l;
        }
        if (a.c == 1) {
            var o = Math.max(k, l);
            k = o;
            l = o;
            m = o;
            n = o;
        }
        a.q = g;
        a.u = h;
        a.r = i;
        a.v = j;
        a.p = k;
        a.t = l;
        a.s = m;
        a.w = n;
        return a;
    };
    LinearGraphNeedlePreparer.prototype.f = function (a) {
        a.f.k();
        a.g.k();
        a.d.k();
        a.j.k();
        a.i.k();
        a.k.k();
        a.e.k();
        a.h.k();
        a.b.k();
        a.c.k();
    };
    LinearGraphNeedlePreparer.$t = markType(LinearGraphNeedlePreparer, 'LinearGraphNeedlePreparer');
    return LinearGraphNeedlePreparer;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGraphNeedleParameters = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGraphNeedleParameters, _super);
    function LinearGraphNeedleParameters() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.d = 0;
        _this.e = false;
        _this.k = NaN;
        _this.j = NaN;
        _this.g = NaN;
        _this.l = NaN;
        _this.i = NaN;
        _this.n = NaN;
        _this.h = NaN;
        _this.m = NaN;
        _this.f = NaN;
        _this.b = 3;
        _this.propertyChanged = null;
        return _this;
    }
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "u", {
        get: function () {
            return this.k;
        },
        set: function (a) {
            if (this.k != a) {
                this.k = a;
                this.x("OuterExtent");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "q", {
        get: function () {
            return this.j;
        },
        set: function (a) {
            if (this.j != a) {
                this.j = a;
                this.x("InnerExtent");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "p", {
        get: function () {
            return this.g;
        },
        set: function (a) {
            if (this.g != a) {
                this.g = a;
                this.x("InnerBaseWidth");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "t", {
        get: function () {
            return this.l;
        },
        set: function (a) {
            if (this.l != a) {
                this.l = a;
                this.x("OuterBaseWidth");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "s", {
        get: function () {
            return this.i;
        },
        set: function (a) {
            if (this.i != a) {
                this.i = a;
                this.x("InnerPointWidth");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "w", {
        get: function () {
            return this.n;
        },
        set: function (a) {
            if (this.n != a) {
                this.n = a;
                this.x("OuterPointWidth");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "r", {
        get: function () {
            return this.h;
        },
        set: function (a) {
            if (this.h != a) {
                this.h = a;
                this.x("InnerPointExtent");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "v", {
        get: function () {
            return this.m;
        },
        set: function (a) {
            if (this.m != a) {
                this.m = a;
                this.x("OuterPointExtent");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "o", {
        get: function () {
            return this.f;
        },
        set: function (a) {
            if (this.f != a) {
                this.f = a;
                this.x("DefaultWidth");
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGraphNeedleParameters.prototype, "c", {
        get: function () {
            return this.b;
        },
        set: function (a) {
            if (this.b != a) {
                this.b = a;
                this.x("NeedleShape");
            }
        },
        enumerable: false,
        configurable: true
    });
    LinearGraphNeedleParameters.prototype.a = function () {
        var a = new LinearGraphNeedleParameters();
        a.u = this.u;
        a.q = this.q;
        a.p = this.p;
        a.t = this.t;
        a.r = this.r;
        a.v = this.v;
        a.s = this.s;
        a.w = this.w;
        a.c = this.c;
        a.o = this.o;
        return a;
    };
    LinearGraphNeedleParameters.prototype.x = function (a) {
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    LinearGraphNeedleParameters.$t = markType(LinearGraphNeedleParameters, 'LinearGraphNeedleParameters', Base.$, [INotifyPropertyChanged_$type]);
    return LinearGraphNeedleParameters;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearScaleVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearScaleVisualData, _super);
    function LinearScaleVisualData() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    LinearScaleVisualData.$t = markType(LinearScaleVisualData, 'LinearScaleVisualData');
    return LinearScaleVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var LinearGaugeScaleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGaugeScaleFrame, _super);
    function LinearGaugeScaleFrame() {
        var _this = _super.call(this) || this;
        _this.ag = null;
        _this.af = null;
        _this.ag = new LinearGraphNeedleFrame();
        _this.af = new LinearGraphNeedleFrame();
        return _this;
    }
    LinearGaugeScaleFrame.prototype.y = function (a, b, c) {
        _super.prototype.y.call(this, a, b, c);
        this.ag = LinearGraphNeedleFrame.a(a, 1 - a, b.ag, c.ag);
        this.af = LinearGraphNeedleFrame.a(a, 1 - a, b.af, c.af);
    };
    LinearGaugeScaleFrame.$t = markType(LinearGaugeScaleFrame, 'LinearGaugeScaleFrame', LinearGraphScaleFrame.$);
    return LinearGaugeScaleFrame;
}(LinearGraphScaleFrame));

/*
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.
*/
/**
 * @hidden
 */
var LinearGaugeFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGaugeFrame, _super);
    function LinearGaugeFrame() {
        var _this = _super.call(this) || this;
        _this._c = null;
        _this.c = new LinearGaugeScaleFrame();
        return _this;
    }
    LinearGaugeFrame.prototype.get_c = function () {
        return this._c;
    };
    LinearGaugeFrame.prototype.set_c = function (a) {
        this._c = a;
    };
    Object.defineProperty(LinearGaugeFrame.prototype, "c", {
        get: function () {
            return this.get_c();
        },
        set: function (a) {
            this.set_c(a);
        },
        enumerable: false,
        configurable: true
    });
    LinearGaugeFrame.$t = markType(LinearGaugeFrame, 'LinearGaugeFrame', LinearGraphFrame.$);
    return LinearGaugeFrame;
}(LinearGraphFrame));

/*
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.
*/
/**
 * @hidden
 */
var LinearGaugeVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearGaugeVisualData, _super);
    function LinearGaugeVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._needlePath = null;
        _this._highlightNeedlePath = null;
        _this._needle = null;
        _this._highlightNeedle = null;
        return _this;
    }
    Object.defineProperty(LinearGaugeVisualData.prototype, "needlePath", {
        get: function () {
            return this._needlePath;
        },
        set: function (a) {
            this._needlePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGaugeVisualData.prototype, "highlightNeedlePath", {
        get: function () {
            return this._highlightNeedlePath;
        },
        set: function (a) {
            this._highlightNeedlePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGaugeVisualData.prototype, "needle", {
        get: function () {
            return this._needle;
        },
        set: function (a) {
            this._needle = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(LinearGaugeVisualData.prototype, "highlightNeedle", {
        get: function () {
            return this._highlightNeedle;
        },
        set: function (a) {
            this._highlightNeedle = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearGaugeVisualData.prototype.scaleByViewport = function () {
        _super.prototype.scaleByViewport.call(this);
        if (this.needlePath != null) {
            this.needlePath.scaleByViewport(this.viewport);
        }
        if (this.highlightNeedlePath != null) {
            this.highlightNeedlePath.scaleByViewport(this.viewport);
        }
    };
    LinearGaugeVisualData.prototype.serialize = function () {
        var a = _super.prototype.serialize.call(this);
        var b = new StringBuilder(0);
        var c = a.length == 0;
        if (this.needlePath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("needlePath: ");
            b.u(this.needlePath.serialize());
        }
        if (this.needle != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("needle: ");
            b.u(this.needle.serialize());
        }
        if (this.highlightNeedlePath != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("highlightNeedlePath: ");
            b.u(this.highlightNeedlePath.serialize());
        }
        if (this.highlightNeedle != null) {
            if (c) {
                c = false;
            }
            else {
                b.l(", ");
            }
            b.l("highlightNeedle: ");
            b.u(this.highlightNeedle.serialize());
        }
        if (c) {
            return a;
        }
        b.l("}");
        return a.substr(0, a.length - 1) + b.toString();
    };
    LinearGaugeVisualData.$t = markType(LinearGaugeVisualData, 'LinearGaugeVisualData', LinearGraphVisualData.$);
    return LinearGaugeVisualData;
}(LinearGraphVisualData));

/*
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.
*/
/**
 * @hidden
 */
var LinearNeedleVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearNeedleVisualData, _super);
    function LinearNeedleVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._value = 0;
        return _this;
    }
    Object.defineProperty(LinearNeedleVisualData.prototype, "value", {
        get: function () {
            return this._value;
        },
        set: function (a) {
            this._value = a;
        },
        enumerable: false,
        configurable: true
    });
    LinearNeedleVisualData.prototype.serialize = function () {
        return "{ value: " + this.value.toString() + ", type: '" + this.type + "'}";
    };
    LinearNeedleVisualData.prototype.get_type = function () {
        return "needle";
    };
    Object.defineProperty(LinearNeedleVisualData.prototype, "type", {
        get: function () {
            return this.get_type();
        },
        enumerable: false,
        configurable: true
    });
    LinearNeedleVisualData.$t = markType(LinearNeedleVisualData, 'LinearNeedleVisualData', ToolTipItemVisualData.$);
    return LinearNeedleVisualData;
}(ToolTipItemVisualData));

/*
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.
*/
/**
 * @hidden
 */
var XamLinearGauge = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamLinearGauge, _super);
    function XamLinearGauge() {
        var _this = _super.call(this) || this;
        _this.propertyChanged = null;
        _this.av = null;
        _this.b0 = 0;
        _this.formatLabel = null;
        _this.alignLabel = null;
        _this.valueChanged = null;
        _this.highlightValueChanged = null;
        _this.ao = null;
        _this.an = null;
        _this.am = null;
        _this.ar = null;
        _this.bx = 0;
        _this.bw = 100;
        _this.a3 = 0;
        _this.aj = null;
        _this.a2 = 0;
        _this.bv = 0.5;
        _this.az = 1;
        _this.bm = false;
        _this.a7 = null;
        _this.a5 = null;
        _this.a4 = null;
        _this.a8 = null;
        _this.a6 = null;
        _this.bt = null;
        _this.ix = null;
        _this.bs = null;
        _this.iw = null;
        _this._view = null;
        _this.iz = null;
        _this.iy = null;
        _this.iv = null;
        _this.bo = new List$1(TextBlock.$, 0);
        _this.br = new List$1(TextBlock.$, 0);
        _this.bq = new List$1(Path.$, 0);
        _this.bp = new List$1(Path.$, 0);
        _this.bc = false;
        _this.bz = NaN;
        _this.by = 1;
        _this.bz = NaN;
        _this.by = 1;
        _this.view = new XamLinearGaugeView(_this);
        _this.view.bc();
        _this.iz = Rect.empty;
        _this.iy = Rect.empty;
        _this.iv = Rect.empty;
        _this.ao = new LinearGaugeFrame();
        _this.an = new LinearGaugeFrame();
        _this.am = new LinearGaugeFrame();
        _this.ranges = new LinearGraphRangeCollection();
        _this.bc = true;
        _this.av = new DoubleAnimator(0, 1, _this.dh);
        var a = _this.av;
        a.propertyChanged = delegateCombine(a.propertyChanged, runOn(_this, _this.fl));
        _this.ab = XamLinearGauge.$;
        _this.a6 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bm);
            $ret.c = runOn(_this.view, _this.view.bn);
            $ret.d = runOn(_this.view, _this.view.bo);
            $ret.j = runOn(_this.view, _this.view.cq);
            return $ret;
        })());
        _this.a7 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bf);
            $ret.c = runOn(_this.view, _this.view.bg);
            $ret.d = runOn(_this.view, _this.view.bh);
            $ret.j = runOn(_this.view, _this.view.cp);
            return $ret;
        })());
        _this.a5 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.bf);
            $ret.c = runOn(_this.view, _this.view.bg);
            $ret.d = runOn(_this.view, _this.view.bh);
            $ret.j = runOn(_this.view, _this.view.cp);
            return $ret;
        })());
        _this.a4 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.a4);
            $ret.c = runOn(_this.view, _this.view.a5);
            $ret.d = runOn(_this.view, _this.view.a6);
            $ret.j = runOn(_this.view, _this.view.b3);
            return $ret;
        })());
        _this.a8 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.bw);
            $ret.c = runOn(_this.view, _this.view.bx);
            $ret.d = runOn(_this.view, _this.view.by);
            $ret.j = runOn(_this.view, _this.view.b4);
            return $ret;
        })());
        return _this;
    }
    XamLinearGauge.prototype.f2 = function (a) {
        this.f9(a);
    };
    XamLinearGauge.prototype.f9 = function (a) {
        var b = this.propertyChanged;
        if (b != null) {
            b(this, new PropertyChangedEventArgs(a));
        }
    };
    XamLinearGauge.prototype.fl = function (a, b) {
        this.dc = this.av.o;
    };
    Object.defineProperty(XamLinearGauge.prototype, "a9", {
        get: function () {
            return this.av.f();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "dc", {
        get: function () {
            return this.b0;
        },
        set: function (a) {
            var b = this.b0;
            this.b0 = a;
            this.f1("TransitionProgress", b, this.b0);
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.gl = function () {
        this.b0 = 0;
        this.av.w();
        this.av.v();
    };
    Object.defineProperty(XamLinearGauge.prototype, "bl", {
        get: function () {
            return this.dh > 0;
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.onDetachedFromUI = function () {
        this.view.bb();
    };
    XamLinearGauge.prototype.onAttachedToUI = function () {
        this.view.a7();
    };
    Object.defineProperty(XamLinearGauge.prototype, "b3", {
        get: function () {
            return this.bx;
        },
        set: function (a) {
            this.bx = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "b2", {
        get: function () {
            return this.bw;
        },
        set: function (a) {
            this.bw = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "b1", {
        get: function () {
            return this.bv;
        },
        set: function (a) {
            var b = this.bv;
            this.bv = a;
            if (b != this.bv) {
                this.f1("ActualHighlightValueOpacity", b, a);
            }
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.go = function () {
        this.b1 = isNaN_(this.ca) ? 0.5 : Math.max(0, Math.min(this.ca, 1));
    };
    Object.defineProperty(XamLinearGauge.prototype, "a0", {
        get: function () {
            return this.az;
        },
        set: function (a) {
            this.az = a;
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.gn = function () {
        if (this.a1 != 1) {
            if (isNaN_(this.b9) || isInfinity(this.b9)) {
                this.a0 = 1;
            }
            else {
                this.a0 = 2;
            }
        }
        else {
            this.a0 = 1;
        }
    };
    XamLinearGauge.prototype.fr = function () {
        this.a2 = 0;
        this.view.cm().an = null;
    };
    XamLinearGauge.prototype.b8 = function (a) {
        var b = 0;
        var c = a.x;
        if (this.as == 1) {
            b = a.y;
            c = this.i2.height;
        }
        return this.ar.k(c - b);
    };
    XamLinearGauge.prototype.bj = function (a) {
        if (this.bt == null) {
            return false;
        }
        return PolygonUtil.b(this.bt, a);
    };
    XamLinearGauge.prototype.ba = function (a) {
        if (this.bs == null) {
            return false;
        }
        return PolygonUtil.b(this.bs, a);
    };
    XamLinearGauge.prototype.needleContainsPoint = function (a, b) {
        if (this.bt == null) {
            return false;
        }
        return b ? this.ix.containsPoint(a) : PolygonUtil.b(this.bt, a);
    };
    XamLinearGauge.prototype.highlightNeedleContainsPoint = function (a, b) {
        if (this.bs == null) {
            return false;
        }
        return b ? this.iw.containsPoint(a) : PolygonUtil.b(this.bs, a);
    };
    XamLinearGauge.prototype.fp = function (a, b) {
        var c = this.b8(a);
        c = Math.max(Math.min(c, this.b2), this.b3);
        var d = this.a3 == 2;
        if (d) {
            if (c != this.b9) {
                this.b9 = c;
            }
        }
        else {
            if (c != this.dd) {
                this.dd = c;
            }
        }
    };
    XamLinearGauge.prototype.at = function () {
        var _this = this;
        var a = new LinearGaugeVisualData();
        a.viewport = new RectData(this.i2.left, this.i2.top, this.i2.width, this.i2.height);
        a.scaleLabels = new LinearGraphScaleLabelVisualDataList();
        a.scaleTickmarks = new LinearGraphScaleTickmarkVisualDataList();
        a.ranges = new LinearGraphRangeVisualDataList();
        a.needle = ((function () {
            var $ret = new LinearNeedleVisualData();
            $ret.value = _this.dd;
            return $ret;
        })());
        a.highlightNeedle = ((function () {
            var $ret = new LinearNeedleVisualData();
            $ret.value = _this.b9;
            return $ret;
        })());
        this.view.az(a);
        var b = this.view.l();
        if (b != null) {
            var c_1 = null;
            switch (b.c) {
                case "range":
                    c_1 = a.ranges._inner[b.b];
                    break;
                case "needle":
                    c_1 = a.needle;
                    break;
            }
            a.toolTip = ((function () {
                var $ret = new LinearGraphToolTipVisualData();
                $ret.item = c_1;
                $ret.itemBrush = AppearanceHelper.b(b.a.brush);
                $ret.outline = AppearanceHelper.b(b.a.outline);
                $ret.thickness = b.a.thickness;
                return $ret;
            })());
        }
        return a;
    };
    XamLinearGauge.prototype.dr = function () {
        var a = this.at();
        a.scaleByViewport();
        return a.serialize();
    };
    XamLinearGauge.prototype.fq = function () {
        this.view.flush();
    };
    XamLinearGauge.prototype.destroy = function () {
        this.provideContainer(null);
    };
    XamLinearGauge.prototype.provideContainer = function (a) {
        this.view.a9(a);
    };
    XamLinearGauge.prototype.onMouseOver = function (a, b, c) {
        if (this.bm) {
            this.gk(a, null);
        }
    };
    XamLinearGauge.prototype.onMouseLeave = function () {
        if (this.bm) {
            this.gk({ $type: Point_$type, x: -10000, y: -10000 }, null);
        }
    };
    XamLinearGauge.prototype.onMouseMove = function (a, b) {
        if (this.a3 != 0) {
            this.fp(a, b);
        }
    };
    XamLinearGauge.prototype.onMouseDown = function (a, b) {
        if (this.bf && this.a3 == 0 && this.needleContainsPoint(a, b)) {
            this.a3 = 1;
        }
        if (this.be && this.a3 == 0 && this.highlightNeedleContainsPoint(a, b)) {
            this.a3 = 2;
        }
    };
    Object.defineProperty(XamLinearGauge.prototype, "bd", {
        get: function () {
            return this.a3 != 0;
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.onMouseUp = function (a) {
        if (this.a3 != 0) {
            this.a3 = 0;
        }
    };
    XamLinearGauge.prototype.containerResized = function () {
        this.view.ba();
    };
    XamLinearGauge.prototype.gm = function () {
        this.view.bv();
    };
    XamLinearGauge.prototype.gk = function (a, b) {
        var c = this.bt;
        if (c != null && c.count > 0) {
            var d = PolygonUtil.b(c, a);
            if (d == true) {
                this.view.bu(a, b, -1, "needle");
                return;
            }
        }
        for (var e = 0; e < this.bp.count; e++) {
            var f = new PathVisualData(1, "range", this.bp._inner[e]);
            var g = f.getPoints(new GetPointsSettings());
            if (g.count > 0) {
                var h = PolygonUtil.b(this.bu(g._inner[0]), a);
                if (h == true) {
                    this.view.bu(a, b, e, "range");
                    return;
                }
            }
        }
        this.view.a2();
    };
    XamLinearGauge.prototype.ge = function () {
        if (!this.bc) {
            return;
        }
        var a = this.an.c;
        if (this.as == 0) {
            var b = 0;
            for (var c = 0; c < a.c.length; c++) {
                b = Math.max(b, a.c[c]);
            }
            var d = this.i2.height >= b ? this.i2.height - b : this.i2.height;
            this.i1 = new Rect(0, 0, 0, this.i2.width, d);
        }
        else {
            var e = 0;
            for (var f = 0; f < a.f.length; f++) {
                e = Math.max(e, a.f[f]);
            }
            var g = this.i2.width >= e ? this.i2.width - e : this.i2.width;
            this.i1 = new Rect(0, e, 0, g, this.i2.height);
        }
    };
    Object.defineProperty(XamLinearGauge.prototype, "view", {
        get: function () {
            return this._view;
        },
        set: function (a) {
            this._view = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "i2", {
        get: function () {
            return this.iz;
        },
        set: function (a) {
            var b = this.iz;
            this.iz = a;
            if (!b.equals1(this.iz)) {
                this.f3(b, this.iz);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "i1", {
        get: function () {
            return this.iy;
        },
        set: function (a) {
            this.iy = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "i0", {
        get: function () {
            return this.iv;
        },
        set: function (a) {
            this.iv = a;
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.prototype.bh = function () {
        return !isNaN_(this.b3) && !isNaN_(this.b2) && !this.i2.isEmpty && this.view.s();
    };
    XamLinearGauge.prototype.fm = function () {
        if (!this.bh()) {
            return;
        }
        var a = this.c4();
        this.ar = new LinearGraphScaler(this.b3, this.b2, a, a + this.c2(), this.bg);
        if (this.bc) {
            if (this.a9) {
                if (this.av.g) {
                    this.av.t();
                }
                var b = this.ao;
                this.ao = this.am;
                this.am = b;
            }
            else {
                var c = this.ao;
                this.ao = this.an;
                this.an = c;
            }
        }
        else if (this.a9) {
            this.am.d(this.dc, this.ao, this.an);
            this.gf(this.am);
            this.gi(this.am);
            this.gh(this.am, this.am.c.af, true);
            this.gh(this.am, this.am.c.ag, false);
        }
        if (this.bc) {
            this.f5();
            this.ge();
            if (this.a2 == 1) {
                this.a2 = 2;
                this.f7(this.ar.i(this.dd), this.ao.c, false, true);
            }
            else if (this.a2 == 4) {
                if (this.dh > 0) {
                    this.a2 = 5;
                    this.f7(this.ar.i(this.dd), this.an.c, false, true);
                }
                else {
                    this.fr();
                }
            }
            this.f6();
            this.f8();
            this.f4();
        }
        if (this.bc && this.bl) {
            this.gl();
            this.am.d(this.dc, this.ao, this.an);
            this.gf(this.am);
            this.gi(this.am);
            this.gh(this.am, this.am.c.af, true);
            this.gh(this.am, this.am.c.ag, false);
            this.gj(this.am);
            this.gg(this.am);
        }
        else {
            if (this.bc) {
                this.gf(this.an);
                this.gi(this.an);
                this.gh(this.an, this.an.c.af, true);
                this.gh(this.an, this.an.c.ag, false);
                this.gj(this.an);
                this.gg(this.an);
            }
        }
        this.bc = false;
        this.view.as();
    };
    XamLinearGauge.prototype.f8 = function () {
        var a = this.an;
        var b = a.c;
        var c = this.ar;
        var d = this.ci;
        var e = this.i1;
        b.u = this.c5;
        b.r = this.c0;
        b.s = this.c1;
        b.t = this.c3;
        b.m.clear();
        for (var f = 0; f < this.ranges.count; f++) {
            var g = this.ranges._inner[f];
            if (g.j <= this.b3 || g.o > this.b2) {
                continue;
            }
            var h = g.o;
            var i = g.j;
            if (h < this.b3) {
                h = this.b3;
            }
            if (i > this.b2) {
                i = this.b2;
            }
            var j = new LinearGraphRectFrame();
            j.i = g.an != null ? g.an : this.im(f, this.ah);
            j.j = g.ao != null ? g.ao : this.im(f, this.ai);
            j.h = g.p;
            j.g = c.i(h);
            j.d = c.i(i);
            j.e = g.l;
            j.b = g.k;
            j.f = g.n;
            j.c = g.m;
            if (isNaN_(j.e)) {
                j.e = this.cx;
            }
            j.b = g.k;
            if (isNaN_(j.b)) {
                j.b = this.cx;
            }
            j.f = g.n;
            if (isNaN_(j.f)) {
                j.f = this.cy;
            }
            j.c = g.m;
            if (isNaN_(j.c)) {
                j.c = this.cy;
            }
            b.m.add(j);
        }
        b.ab = this.il;
        b.ad = this.it;
        b.x = this.db;
        b.w = this.da;
        b.v = this.c7;
        b.ac = this.io;
        b.q = this.cl;
        b.p = this.ck;
        b.o = this.cj;
        var k = this.cb;
        if (isNaN_(k)) {
            k = (this.b2 - this.b3) / 10;
        }
        if (k == 0) {
            k = this.b2 - this.b3;
        }
        var l = new List$1(Number_$type, 0);
        var m = new List$1(Number_$type, 0);
        if (k > 0) {
            var n = this.b3 + this.c8;
            var o = this.b2 - this.c9;
            var p = 100000;
            var q = Math.abs(o - n) / p;
            if (k >= q) {
                for (var r = n; r <= o || this.bn(r, o, k); r = r + k) {
                    l.add(c.i(r));
                    for (var s = 0; s < d; s++) {
                        var t = (k / (d + 1)) * (s + 1);
                        if (t + r > o) {
                            continue;
                        }
                        m.add(c.i(t + r));
                    }
                }
            }
        }
        if (b.j.length != l.count || b.i.length != m.count) {
            b.j = new Array(l.count);
            b.i = new Array(m.count);
        }
        for (var u = 0; u < l.count; u++) {
            b.j[u] = l._inner[u];
        }
        for (var v = 0; v < m.count; v++) {
            b.i[v] = m._inner[v];
        }
    };
    XamLinearGauge.prototype.i3 = function () {
        var a = this.cb;
        var b = this.cd;
        if (isNaN_(a)) {
            a = (this.b2 - this.b3) / 10;
        }
        if (isNaN_(b)) {
            b = a;
        }
        if (b == 0) {
            b = this.b2 - this.b3;
        }
        var c = new List$1(Number_$type, 0);
        if (b > 0) {
            var d = this.ce + this.b3;
            var e = this.b2 - this.cf;
            var f = 100000;
            var g = Math.abs(e - d) / f;
            if (b >= g) {
                for (var h = d; h <= e || this.bn(h, e, a); h += b) {
                    c.add(h);
                }
            }
        }
        var i = new Array(c.count);
        var j = new Array(c.count);
        var _loop_1 = function (k) {
            var l = c._inner[k];
            if (this_1.formatLabel == null && this_1.aj == null) {
                l = (Math.round(l * 100) / 100);
            }
            var m = l.toString();
            if (this_1.aj != null) {
                m = this_1.aj.i(l);
            }
            var n = new FormatLinearGraphLabelEventArgs();
            n.value = l;
            n.label = m;
            if (this_1.formatLabel != null) {
                this_1.formatLabel(this_1, n);
            }
            m = n.label;
            var o = this_1.view.cr(((function () {
                var $ret = new TextBlock();
                $ret.al = m;
                return $ret;
            })()));
            i[k] = o.width;
            j[k] = o.height;
        };
        var this_1 = this;
        for (var k = 0; k < c.count; k++) {
            _loop_1(k);
        }
        var p = 0;
        var q = 0;
        var r = 1 - this.c0 + this.c5;
        if (this.as == 0) {
            for (var s = 0; s < j.length; s++) {
                q = Math.max(q, j[s]);
            }
            for (var t = 0; t < i.length; t++) {
                p += i[t];
            }
            if (i.length > 0) {
                p += i[0] / 2;
            }
            if (i.length > 1) {
                p += i[i.length - 1] / 2;
            }
            if (i.length > 0) {
                p += (i.length - 1) * 5;
            }
            if (r > 0) {
                p = p / Math.abs(1 - r);
            }
        }
        else {
            for (var u = 0; u < i.length; u++) {
                p = Math.max(p, i[u]);
            }
            for (var v = 0; v < j.length; v++) {
                q += j[v];
            }
            if (j.length > 0) {
                q -= j[0] / 2;
            }
            if (j.length > 1) {
                q -= j[j.length - 1] / 2;
            }
            if (r > 0) {
                q = q / Math.abs(1 - r);
            }
            if (j.length > 0) {
                q += (j.length - 1) * 5;
            }
        }
        return new Size(1, p, q);
    };
    XamLinearGauge.prototype.f5 = function () {
        var a = this.an;
        var b = a.c;
        var c = this.ar;
        var d = this.cb;
        var e = this.cd;
        var f = this.ci;
        if (isNaN_(d)) {
            d = (this.b2 - this.b3) / 10;
        }
        if (isNaN_(e)) {
            e = d;
        }
        if (e == 0) {
            e = this.b2 - this.b3;
        }
        var g = new List$1(Tuple$2.$.specialize(Number_$type, Number_$type), 0);
        if (e > 0) {
            var h = this.ce + this.b3;
            var i = this.b2 - this.cf;
            var j = 100000;
            var k = Math.abs(i - h) / j;
            if (e >= k) {
                for (var l = h; l <= i || this.bn(l, i, e); l = l + e) {
                    g.add(new Tuple$2(Number_$type, Number_$type, l, c.i(l)));
                }
            }
        }
        if (b.d.length != g.count) {
            b.e = new Array(g.count);
            b.d = new Array(g.count);
            b.f = new Array(g.count);
            b.c = new Array(g.count);
            b.g = new Array(g.count);
            b.h = new Array(g.count);
        }
        b.n = this.cc;
        var m = new FormatLinearGraphLabelEventArgs();
        m.actualMinimumValue = this.b3;
        m.actualMaximumValue = this.b2;
        var n = new AlignLinearGraphLabelEventArgs();
        n.actualMinimumValue = this.b3;
        n.actualMaximumValue = this.b2;
        var _loop_2 = function (o) {
            var p = g._inner[o].c;
            if (this_2.formatLabel == null) {
                p = (Math.round(p * 100) / 100);
            }
            var q = (p).toString();
            if (this_2.aj != null) {
                q = this_2.aj.i(p);
            }
            m.value = p;
            n.value = p;
            m.label = q;
            if (this_2.formatLabel != null) {
                this_2.formatLabel(this_2, m);
            }
            q = m.label;
            n.label = q;
            var r = this_2.view.cr(((function () {
                var $ret = new TextBlock();
                $ret.al = q;
                return $ret;
            })()));
            n.width = r.width;
            n.height = r.height;
            if (this_2.as == 0) {
                n.offsetX = -1 * (r.width / 2);
                n.offsetY = -1 * (r.height);
            }
            else {
                n.offsetX = -1 * r.width;
                n.offsetY = -1 * (r.height / 2);
            }
            if (this_2.alignLabel != null) {
                this_2.alignLabel(this_2, n);
            }
            b.f[o] = n.width;
            b.c[o] = n.height;
            b.g[o] = n.offsetX;
            b.h[o] = n.offsetY;
            b.d[o] = q;
            b.e[o] = g._inner[o].d;
        };
        var this_2 = this;
        for (var o = 0; o < g.count; o++) {
            _loop_2(o);
        }
    };
    XamLinearGauge.prototype.bn = function (a, b, c) {
        var d = c / 10000;
        if (isNaN_(d)) {
            d = 1E-05;
        }
        var e = Math.abs(a - b);
        if (e < d) {
            return true;
        }
        return false;
    };
    XamLinearGauge.prototype.f4 = function () {
        var a = this.an;
        var b = a.a;
        b.e = this.ij;
        b.f = this.ik;
        b.c = this.b7;
        b.a = this.b5;
        b.b = this.b6;
    };
    XamLinearGauge.prototype.f6 = function () {
        var a = this.dd;
        if (isNaN_(a)) {
            return;
        }
        var b = !(this.a2 == 0 || this.a2 == 5);
        var c = this.an.c;
        var d = this.ar;
        var e = d.i(a);
        this.f7(e, c, b, false);
        var f = this.b9;
        if (b && !isNaN_(f)) {
            this.f7(d.i(f), c, false, true);
        }
    };
    XamLinearGauge.prototype.f7 = function (a, b, c, d) {
        var e = new LinearGraphNeedleParameters();
        e.c = this.ap;
        e.e = this.bg;
        e.d = this.as;
        e.u = this.cs;
        e.q = this.co;
        e.v = this.ct;
        e.r = this.cp;
        e.t = this.cr;
        e.p = this.cn;
        e.s = this.cq;
        e.w = this.cu;
        e.o = this.cm * 0.5 / this.cz();
        var f = new LinearGraphNeedleFrame();
        var g = this.ip;
        var h = this.iq;
        if (c) {
            g = BrushUtil.s(g, this.b1);
            h = BrushUtil.s(h, this.b1);
        }
        f.r = g;
        f.s = h;
        f.o = this.cv;
        var i = new LinearGraphNeedlePreparer();
        i.b = e;
        i.c(f);
        f.l = -90;
        f.p = a;
        if (d) {
            b.af = f;
        }
        else {
            b.ag = f;
        }
    };
    XamLinearGauge.prototype.im = function (a, b) {
        if (b != null && b.count > 0) {
            return b.item(a % b.count);
        }
        else {
            return null;
        }
    };
    XamLinearGauge.prototype.gj = function (a) {
        var b = this.i1;
        var c = a.c;
        var d = this.a7;
        var e = c.j;
        var f = c.w;
        var g = c.v;
        var h = c.ad;
        var i = c.x;
        var j = this.a5;
        var k = c.i;
        var l = c.p;
        var m = c.o;
        var n = c.ac;
        var o = c.q;
        d.f = true;
        for (var p = 0; p < this.bq.count; p++) {
            d.n(this.bq._inner[p]);
        }
        this.bq.clear();
        var q = this.cz();
        var r = this.df();
        var _loop_3 = function (s) {
            var t = void 0, u = void 0, v, w;
            if (this_3.as == 1) {
                t = b.left + q * f;
                u = r - e[s];
                v = b.left + q * g;
                w = u;
            }
            else {
                t = b.left + e[s];
                u = q * (1 - f);
                v = t;
                w = q * (1 - g);
            }
            var x = d.a();
            var y = new PathGeometry();
            var z = new PathFigure();
            z._startPoint = { $type: Point_$type, x: t, y: u };
            z._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: v, y: w };
                return $ret;
            })()));
            y.c.add(z);
            x.an = y;
            x._stroke = h;
            x.ad = i;
            this_3.bq.add(x);
        };
        var this_3 = this;
        for (var s = 0; s < e.length; s++) {
            _loop_3(s);
        }
        var _loop_4 = function (aa) {
            var ab = void 0, ac = void 0, ad, ae;
            if (this_4.as == 1) {
                ab = b.left + q * l;
                ac = r - k[aa];
                ad = b.left + q * m;
                ae = ac;
            }
            else {
                ab = k[aa];
                ac = q * (1 - l);
                ad = ab;
                ae = q * (1 - m);
            }
            var af = d.a();
            var ag = new PathGeometry();
            var ah = new PathFigure();
            ah._startPoint = { $type: Point_$type, x: ab, y: ac };
            ah._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: ad, y: ae };
                return $ret;
            })()));
            ag.c.add(ah);
            af.an = ag;
            af._stroke = n;
            af.ad = o;
            this_4.bq.add(af);
        };
        var this_4 = this;
        for (var aa = 0; aa < k.length; aa++) {
            _loop_4(aa);
        }
        d.f = false;
    };
    XamLinearGauge.prototype.gg = function (a) {
        var b = this.i1;
        var c = a.c;
        var d = c.e;
        var e = c.d;
        var f = c.g;
        var g = c.h;
        var h = c.f;
        var i = c.c;
        var j = c.n;
        var k = this.a4;
        k.f = true;
        for (var l = 0; l < this.bo.count; l++) {
            k.n(this.bo._inner[l]);
        }
        this.bo.clear();
        var m = c.ab;
        var n = this.de();
        var o = this.df();
        for (var p = 0; p < e.length; p++) {
            var q = void 0, r = void 0;
            if (this.as == 1) {
                q = b.left + n * j;
                r = b.top + o - d[p];
            }
            else {
                q = b.left + d[p];
                r = b.top + n * (1 - j);
            }
            var s = k.a();
            s.al = e[p];
            this.view.bt(s, m);
            var t = h[p];
            var u = i[p];
            var v = f[p];
            var w = g[p];
            this.view.bk(s, q + v, r + w);
            this.bo.add(s);
        }
        k.f = false;
    };
    XamLinearGauge.prototype.gi = function (a) {
        var b = a.c;
        var c = this.a6;
        c.f = true;
        for (var d = 0; d < this.bp.count; d++) {
            c.n(this.bp._inner[d]);
        }
        this.bp.clear();
        var e = this.cz();
        var f = this.df();
        var g = this.iu();
        var h = this.view.co();
        if (isNaN_(b.s) || isNaN_(b.t) || isNaN_(b.u) || isNaN_(b.r)) {
            h.an = null;
        }
        else {
            var i = this.c2();
            h.an = b.ae(g, e, i, this.as);
            h._fill = this.ir;
            h._stroke = this.is;
            h.ad = this.c6;
        }
        for (var j = 0; j < b.m.count; j++) {
            var k = b.m._inner[j];
            var l = c.a();
            l.an = k.k(g, e, f, this.as);
            l._fill = k.i;
            l._stroke = k.j;
            l.ad = k.h;
            this.bp.add(l);
        }
        this.view.bs(this.bp);
        c.f = false;
    };
    XamLinearGauge.prototype.gf = function (a) {
        var b = this.i0;
        var c = this.view.cl();
        var d = a.a;
        var e = this.as == 0 ? b.height : b.width;
        var f = this.as == 0 ? b.width : b.height;
        var g = d.g(e, f, this.as);
        c.an = g;
        c._fill = d.e;
        c._stroke = d.f;
        c.ad = d.c;
    };
    XamLinearGauge.prototype.bu = function (a) {
        var b = new List$1(Point_$type, 0);
        for (var c = 0; c < a.count; c++) {
            b.add({ $type: Point_$type, x: a._inner[c].x, y: a._inner[c].y });
        }
        return b;
    };
    XamLinearGauge.prototype.gh = function (a, b, c) {
        if (c) {
            this.bs = null;
            if (this.a2 == 0) {
                return;
            }
        }
        else {
            this.bt = null;
        }
        var d = c ? this.view.cm() : this.view.cn();
        var e = this.dd;
        if (isNaN_(e) || e < this.b3 || e > this.b2) {
            d.an = null;
            return;
        }
        var f = this.cz();
        var g = this.df();
        var h = f;
        var i = b.p;
        var j = 0;
        if (this.as == 1) {
            i = this.i1.left;
            j = g - b.p;
        }
        d.an = b.t(h, i, j);
        d._fill = b.r;
        d._stroke = b.s;
        d.ad = b.o;
        var k = new PathVisualData(1, "needle", d);
        var l = k.getPoints(new GetPointsSettings());
        if (l.count > 0) {
            var m = this.bu(l._inner[0]);
            var n = 1.7976931348623157E+308, o = 1.7976931348623157E+308;
            var p = -1.7976931348623157E+308, q = -1.7976931348623157E+308;
            for (var r = 0; r < m.count; r++) {
                n = m._inner[r].x < n ? m._inner[r].x : n;
                o = m._inner[r].y < o ? m._inner[r].y : o;
                p = m._inner[r].x > p ? m._inner[r].x : p;
                q = m._inner[r].y > q ? m._inner[r].y : q;
            }
            var s = new Rect(2, { $type: Point_$type, x: n, y: o }, { $type: Point_$type, x: p, y: q });
            if (c) {
                this.bs = m;
                this.iw = s;
            }
            else {
                this.bt = m;
                this.ix = s;
            }
        }
    };
    XamLinearGauge.prototype.f3 = function (a, b) {
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.fv = function (a, b) {
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.cz = function () {
        if (this.as == 0) {
            return this.bi ? this.i2.height : this.i1.height;
        }
        return this.bi ? this.i2.width : this.i1.width;
    };
    XamLinearGauge.prototype.c2 = function () {
        if (this.as == 0) {
            return this.i2.width * (this.c0 - this.c5);
        }
        return this.i2.height * (this.c0 - this.c5);
    };
    XamLinearGauge.prototype.de = function () {
        if (this.as == 0) {
            return this.i2.height;
        }
        return this.i2.width;
    };
    XamLinearGauge.prototype.df = function () {
        if (this.as == 0) {
            return this.i2.width;
        }
        return this.i2.height;
    };
    XamLinearGauge.prototype.c4 = function () {
        var a = this.c5;
        if (this.as == 0) {
            if (this.bg) {
                a = 1 - this.c0;
            }
            return this.i2.left + this.i2.width * a;
        }
        if (this.bg) {
            a = 1 - this.c0;
        }
        return this.i2.top + this.i2.height * a;
    };
    XamLinearGauge.prototype.iu = function () {
        var a = this.i1.left;
        if (this.bi) {
            a = 0;
        }
        var b = this.c5;
        if (this.as == 0) {
            if (this.bg) {
                b = 1 - this.c0;
            }
            return { $type: Point_$type, x: a + this.i1.width * b, y: this.i1.top };
        }
        if (!this.bg) {
            b = 1 - this.c0;
        }
        return { $type: Point_$type, x: a, y: this.i1.top + this.i1.height * b };
    };
    XamLinearGauge.prototype.f1 = function (a, b, c) {
        switch (a) {
            case XamLinearGauge.$$p[0]:
            case XamLinearGauge.$$p[3]:
            case XamLinearGauge.$$p[48]:
            case XamLinearGauge.$$p[52]:
            case XamLinearGauge.$$p[56]:
            case XamLinearGauge.$$p[23]:
            case XamLinearGauge.$$p[29]:
            case XamLinearGauge.$$p[39]:
                this.view.a8(a, b, c);
                break;
            case XamLinearGauge.$$p[43]:
                this.view.bd(b, c);
                break;
            case XamLinearGauge.$$p[46]:
                this.view.be(b, c);
                break;
            case "PixelScalingRatio":
                if (isNaN_(DeviceUtils.a(this.cw))) {
                    this.b4 = 1;
                }
                else {
                    this.b4 = DeviceUtils.a(this.cw);
                }
                break;
            case "ActualPixelScalingRatio":
                this.view.bi();
                break;
        }
        switch (a) {
            case XamLinearGauge.$$p[15]:
            case XamLinearGauge.$$p[16]:
                if (this.d3 != null) {
                    this.aj = new BindingFormatter();
                    this.aj.j = this.d3;
                    this.aj.d = this.ag;
                }
                else {
                    this.aj = null;
                }
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[64]:
                if (this.valueChanged != null) {
                    this.valueChanged(this, new DoubleValueChangedEventArgs(b, c));
                }
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[9]:
                {
                    if (this.highlightValueChanged != null) {
                        this.highlightValueChanged(this, new DoubleValueChangedEventArgs(b, c));
                    }
                    var d = this.a0 == 2;
                    this.gn();
                    var e = this.a0 == 2;
                    this.bc = true;
                    if (!d && e) {
                        this.a2 = 1;
                    }
                    else if (d && !e) {
                        this.a2 = 4;
                    }
                    this.view.br();
                    break;
                }
            case XamLinearGauge.$$p[7]:
                {
                    var f = this.a0 == 2;
                    this.gn();
                    var g = this.a0 == 2;
                    this.bc = true;
                    if (!f && g) {
                        this.a2 = 1;
                    }
                    else if (f && !g) {
                        this.a2 = 4;
                    }
                    this.view.br();
                    break;
                }
            case XamLinearGauge.$$p[8]:
                this.go();
                break;
            case "ActualHighlightValueOpacity":
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[63]:
                this.av.r = this.dh;
                this.view.br();
                break;
            case "TransitionProgress":
                if (this.dc >= 1) {
                    this.av.w();
                    var h = this.an;
                    this.an = this.ao;
                    this.ao = h;
                    this.f5();
                    this.f6();
                    this.f8();
                    this.f4();
                    this.gf(this.an);
                    this.gi(this.an);
                    this.gh(this.an, this.an.c.af, true);
                    this.gh(this.an, this.an.c.ag, false);
                    this.gj(this.an);
                    this.gg(this.an);
                    if (this.a2 == 5) {
                        this.fr();
                        this.view.br();
                        return;
                    }
                    else if (this.a2 == 2) {
                        this.a2 = 3;
                    }
                }
                this.am.d(this.dc, this.ao, this.an);
                this.gf(this.am);
                this.gi(this.am);
                this.gh(this.am, this.am.c.af, true);
                this.gh(this.am, this.am.c.ag, false);
                this.gj(this.am);
                this.gg(this.am);
                this.view.as();
                break;
            case XamLinearGauge.$$p[29]:
            case XamLinearGauge.$$p[34]:
            case XamLinearGauge.$$p[28]:
            case XamLinearGauge.$$p[40]:
            case XamLinearGauge.$$p[31]:
            case XamLinearGauge.$$p[36]:
            case XamLinearGauge.$$p[32]:
            case XamLinearGauge.$$p[37]:
            case XamLinearGauge.$$p[30]:
            case XamLinearGauge.$$p[35]:
            case XamLinearGauge.$$p[33]:
            case XamLinearGauge.$$p[38]:
            case XamLinearGauge.$$p[41]:
            case XamLinearGauge.$$p[39]:
            case XamLinearGauge.$$p[0]:
            case XamLinearGauge.$$p[3]:
            case XamLinearGauge.$$p[4]:
            case XamLinearGauge.$$p[1]:
            case XamLinearGauge.$$p[2]:
            case XamLinearGauge.$$p[48]:
            case XamLinearGauge.$$p[52]:
            case XamLinearGauge.$$p[54]:
            case XamLinearGauge.$$p[50]:
            case XamLinearGauge.$$p[51]:
            case XamLinearGauge.$$p[56]:
            case XamLinearGauge.$$p[23]:
            case XamLinearGauge.$$p[43]:
            case XamLinearGauge.$$p[46]:
            case XamLinearGauge.$$p[21]:
            case XamLinearGauge.$$p[44]:
            case XamLinearGauge.$$p[45]:
            case XamLinearGauge.$$p[10]:
            case XamLinearGauge.$$p[17]:
            case XamLinearGauge.$$p[14]:
            case XamLinearGauge.$$p[18]:
            case XamLinearGauge.$$p[19]:
            case XamLinearGauge.$$p[60]:
            case XamLinearGauge.$$p[61]:
            case XamLinearGauge.$$p[58]:
            case XamLinearGauge.$$p[57]:
            case XamLinearGauge.$$p[59]:
            case XamLinearGauge.$$p[26]:
            case XamLinearGauge.$$p[25]:
            case XamLinearGauge.$$p[24]:
            case XamLinearGauge.$$p[27]:
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[47]:
                var i = b;
                var j = c;
                if (i != null) {
                    var k = i;
                    k.collectionChanged = delegateRemove(k.collectionChanged, runOn(this, this.gc));
                }
                if (j != null) {
                    var l = j;
                    l.collectionChanged = delegateCombine(l.collectionChanged, runOn(this, this.gc));
                }
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[42]:
            case XamLinearGauge.$$p[13]:
            case XamLinearGauge.$$p[22]:
            case XamLinearGauge.$$p[20]:
            case XamLinearGauge.$$p[49]:
            case XamLinearGauge.$$p[53]:
                this.b3 = Math.min(this.ch, this.cg);
                this.b2 = Math.max(this.ch, this.cg);
                var m = this.c4();
                this.ar = new LinearGraphScaler(this.b3, this.b2, m, m + this.c2(), this.bg);
                this.bc = true;
                this.view.br();
                break;
            case XamLinearGauge.$$p[5]:
            case XamLinearGauge.$$p[6]:
                this.view.b1();
                this.bc = true;
                this.view.br();
                break;
        }
        this.f2(a);
    };
    XamLinearGauge.prototype.gc = function (a, b) {
        var e_1, _a, e_2, _b;
        if (b.oldItems != null) {
            try {
                for (var _c = __values(fromEn(b.oldItems)), _d = _c.next(); !_d.done; _d = _c.next()) {
                    var c = _d.value;
                    c.propertyChanged = delegateRemove(c.propertyChanged, runOn(this, this.gb));
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (_d && !_d.done && (_a = _c.return))
                        _a.call(_c);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        if (b.newItems != null) {
            try {
                for (var _e = __values(fromEn(b.newItems)), _f = _e.next(); !_f.done; _f = _e.next()) {
                    var d = _f.value;
                    d.propertyChanged = delegateCombine(d.propertyChanged, runOn(this, this.gb));
                }
            }
            catch (e_2_1) {
                e_2 = { error: e_2_1 };
            }
            finally {
                try {
                    if (_f && !_f.done && (_b = _e.return))
                        _b.call(_e);
                }
                finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
        }
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.gb = function (a, b) {
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.fs = function (a, b) {
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.refresh = function () {
        this.bc = true;
        this.view.br();
    };
    XamLinearGauge.prototype.ay = function () {
        return FontUtil.toFontInfo(this.view.ah, this.ds);
    };
    Object.defineProperty(XamLinearGauge.prototype, "cw", {
        get: function () {
            return this.bz;
        },
        set: function (a) {
            var b = this.bz;
            this.bz = a;
            this.f1("PixelScalingRatio", b, this.bz);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamLinearGauge.prototype, "b4", {
        get: function () {
            return this.by;
        },
        set: function (a) {
            var b = this.by;
            this.by = a;
            this.f1("ActualPixelScalingRatio", b, this.by);
        },
        enumerable: false,
        configurable: true
    });
    XamLinearGauge.$t = markType(XamLinearGauge, 'XamLinearGauge', Control.$, [INotifyPropertyChanged_$type]);
    XamLinearGauge.$$p = markDep(DependencyProperty, PropertyMetadata, XamLinearGauge, 'f1', ['BackingBrush:ij:gp', [Brush.$, null], 'BackingInnerExtent:b5:gq', [1, 0], 'BackingOuterExtent:b6:gr', [1, 1], 'BackingOutline:ik:gs', [Brush.$, null], 'BackingStrokeThickness:b7:gt', [1, 2], 'FontBrush:il:gu', [Brush.$, null], 'Font:ds:gv', [2, null], 'HighlightValueDisplayMode:a1:gw', [HighlightedValueDisplayMode_$type, enumGetBox(HighlightedValueDisplayMode_$type, 0)], 'HighlightValueOpacity:ca:gx', [1, 0.5], 'HighlightValue:b9:gy', [1, NaN], 'Interval:cb:gz', [1, NaN], 'IsHighlightNeedleDraggingEnabled:be:g0', [0, false], 'IsNeedleDraggingEnabled:bf:g1', [0, false], 'IsScaleInverted:bg:g2', [0, false], 'LabelExtent:cc:g3', [1, 0], 'LabelFormat:d3:g4', [2, null], 'LabelFormatSpecifiers:ag:g5', [Array_$type, null], 'LabelInterval:cd:g6', [1, NaN], 'LabelsPostInitial:ce:g7', [1, 0], 'LabelsPreTerminal:cf:g8', [1, 0], 'MaximumValue:cg:g9', [1, 100], 'MergeViewports:bi:ha', [0, false], 'MinimumValue:ch:hb', [1, 0], 'MinorTickBrush:io:hc', [Brush.$, null], 'MinorTickCount:ci:hd', [1, 4], 'MinorTickEndExtent:cj:he', [1, 0.35], 'MinorTickStartExtent:ck:hf', [1, 0.05], 'MinorTickStrokeThickness:cl:hg', [1, 1], 'NeedleBreadth:cm:hh', [1, 6], 'NeedleBrush:ip:hi', [Brush.$, null], 'NeedleInnerBaseWidth:cn:hj', [1, NaN], 'NeedleInnerExtent:co:hk', [1, NaN], 'NeedleInnerPointExtent:cp:hl', [1, NaN], 'NeedleInnerPointWidth:cq:hm', [1, NaN], 'NeedleName:en:hn', [2, null], 'NeedleOuterBaseWidth:cr:ho', [1, NaN], 'NeedleOuterExtent:cs:hp', [1, NaN], 'NeedleOuterPointExtent:ct:hq', [1, NaN], 'NeedleOuterPointWidth:cu:hr', [1, NaN], 'NeedleOutline:iq:hs', [Brush.$, null], 'NeedleShape:ap:ht', [LinearGraphNeedleShape_$type, enumGetBox(LinearGraphNeedleShape_$type, 3)], 'NeedleStrokeThickness:cv:hu', [1, 1], 'Orientation:as:hv', [LinearScaleOrientation_$type, enumGetBox(LinearScaleOrientation_$type, 0)], 'RangeBrushes:ah:hw', [BrushCollection.$, null], 'RangeInnerExtent:cx:hx', [1, 0.05], 'RangeOuterExtent:cy:hy', [1, 0.65], 'RangeOutlines:ai:hz', [BrushCollection.$, null], 'Ranges::h0', [LinearGraphRangeCollection.$, null], 'ScaleBrush:ir:h1', [Brush.$, null], 'ScaleEndExtent:c0:h2', [1, 0.95], 'ScaleInnerExtent:c1:h3', [1, 0.05], 'ScaleOuterExtent:c3:h4', [1, 0.65], 'ScaleOutline:is:h5', [Brush.$, null], 'ScaleStartExtent:c5:h6', [1, 0.05], 'ScaleStrokeThickness:c6:h7', [1, 1], 'ShowToolTipTimeout:dg:h8', [1, 500], 'TickBrush:it:h9', [Brush.$, null], 'TickEndExtent:c7:ia', [1, 0.65], 'TickStartExtent:da:id', [1, 0.05], 'TickStrokeThickness:db:ie', [1, 2], 'TicksPostInitial:c8:ib', [1, 0], 'TicksPreTerminal:c9:ic', [1, 0], 'ToolTip::ig', [4, null], 'TransitionDuration:dh:ih', [1, 0], 'Value:dd:ii', [1, NaN]]);
    return XamLinearGauge;
}(Control));
/**
 * @hidden
 */
var XamLinearGaugeView = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamLinearGaugeView, _super);
    function XamLinearGaugeView(a) {
        var _this = _super.call(this) || this;
        _this.ap = 0;
        _this.ao = 0;
        _this.m = null;
        _this.i = null;
        _this.aj = null;
        _this.p = null;
        _this.ah = null;
        _this.aa = null;
        _this.z = null;
        _this.y = null;
        _this.ab = null;
        _this.cj = null;
        _this.ci = null;
        _this.ck = null;
        _this.ch = null;
        _this.ca = null;
        _this.cb = null;
        _this.b7 = null;
        _this.b8 = null;
        _this.cc = null;
        _this.cd = null;
        _this.ce = null;
        _this.b9 = null;
        _this.c = null;
        _this.d = null;
        _this.e = null;
        _this.f = null;
        _this.q = false;
        _this.v = null;
        _this.a = ["needle", "backing", "scale", "tick", "minortick", "label"];
        _this.u = false;
        _this.t = false;
        _this.ai = null;
        _this.k = null;
        _this.ak = 0;
        _this.am = 0;
        _this.aq = null;
        _this.an = -1;
        _this.cf = null;
        _this.al = 0;
        _this.x = null;
        _this.b6 = ((function () {
            var $ret = new Brush();
            $ret.fill = "black";
            return $ret;
        })());
        _this.r = false;
        _this.n = null;
        _this.b5 = null;
        _this.ac = 0;
        _this.ad = 1;
        _this.m = a;
        _this.v = new Dictionary$2(String_$type, Dictionary$2.$.specialize(String_$type, Brush.$), 0);
        _this.cj = new Path();
        _this.ci = new Path();
        _this.ck = new Path();
        _this.ch = new Path();
        _this.aa = new List$1(Path.$, 0);
        _this.z = new List$1(Path.$, 0);
        _this.y = new List$1(TextBlock.$, 0);
        _this.ab = new List$1(TextBlock.$, 0);
        return _this;
    }
    XamLinearGaugeView.prototype.a3 = function () {
        var a = this.m.cw;
        var b = this.m.b4;
        if (!isNaN_(a) && a != 0) {
            return;
        }
        if (window.devicePixelRatio != undefined && window.devicePixelRatio != b) {
            this.m.b4 = window.devicePixelRatio;
        }
    };
    XamLinearGaugeView.prototype.bc = function () {
        this.k = new LinearGraphTooltipDataContext();
        this.al = this.m.dg;
        this.a3();
    };
    XamLinearGaugeView.prototype.s = function () {
        return true;
    };
    XamLinearGaugeView.prototype.cn = function () {
        return this.cj;
    };
    XamLinearGaugeView.prototype.cm = function () {
        return this.ci;
    };
    XamLinearGaugeView.prototype.co = function () {
        return this.ck;
    };
    XamLinearGaugeView.prototype.cl = function () {
        return this.ch;
    };
    XamLinearGaugeView.prototype.a1 = function () {
        this.q = true;
        var a = ["#778899", "#EBEDEF", "#e0e0e0", "#617583", "rgba(100,107,114,.74)", "rgba(100,107,114,.74)"];
        var b = ["#778899", "#B2B9C0", "#e0e0e0", null, null, null];
        var c = ((function () {
            var $ret = new List$1(Array_$type, 0);
            $ret.add(a);
            $ret.add(b);
            return $ret;
        })());
        this.v.clear();
        var d = this.a.length;
        var _loop_5 = function (e) {
            var f = this_5.a[e];
            var g = "ui-lineargauge-" + f;
            var h = "ui-lineargauge-" + f + "-fill";
            var i = "ui-lineargauge-" + f + "-outline";
            var j;
            if (!((function () { var k = XamLinearGaugeView.w.tryGetValue(h, j); j = k.p1; return k.ret; })())) {
                j = BrushUtil.m(h, g, "background-color", this_5.ah, a[e]);
                XamLinearGaugeView.w.addItem(h, j);
            }
            var k;
            if (!((function () { var l = XamLinearGaugeView.w.tryGetValue(i, k); k = l.p1; return l.ret; })())) {
                k = BrushUtil.m(i, g, "border-top-color", this_5.ah, b[e]);
                XamLinearGaugeView.w.addItem(i, k);
            }
            var l = new Dictionary$2(String_$type, Brush.$, 0);
            l.item("fill", j);
            l.item("outline", k);
            this_5.v.item(this_5.a[e], l);
        };
        var this_5 = this;
        for (var e = 0; e < d; e++) {
            _loop_5(e);
        }
        this.b0();
        if (XamLinearGaugeView.g == null || XamLinearGaugeView.h == null) {
            var m = BrushUtil.i("ui-lineargauge-range-fill-palette-", "ui-lineargauge-range-outline-palette-", "ui-lineargauge-range-palette-", this.ah, XamLinearGaugeView.g, XamLinearGaugeView.h, ["#216E99", "#216E99", "#44acd6", "#44acd6", "#cecece", "#cecece"]);
            XamLinearGaugeView.g = m.p4;
            XamLinearGaugeView.h = m.p5;
        }
        this.c = XamLinearGaugeView.g;
        this.d = XamLinearGaugeView.h;
        if (this.e == null) {
            this.m.ah = this.c;
        }
        if (this.f == null) {
            this.m.ai = this.d;
        }
        this.q = false;
    };
    XamLinearGaugeView.prototype.b0 = function () {
        this.q = true;
        var a = this.a.length;
        for (var b = 0; b < a; b++) {
            var c = this.a[b];
            this.bz(c, this.v.item(c));
        }
        this.q = false;
    };
    XamLinearGaugeView.prototype.bz = function (a, b) {
        var c = b.item("fill");
        var d = b.item("outline");
        switch (a) {
            case "needle":
                if (this.ca == null) {
                    this.m.ip = c;
                }
                if (this.cb == null) {
                    this.m.iq = d;
                }
                break;
            case "scale":
                if (this.cc == null) {
                    this.m.ir = c;
                }
                if (this.cd == null) {
                    this.m.is = d;
                }
                break;
            case "backing":
                if (this.b7 == null) {
                    this.m.ij = c;
                }
                if (this.b8 == null) {
                    this.m.ik = d;
                }
                break;
            case "tick":
                if (this.ce == null) {
                    this.m.it = c;
                }
                break;
            case "minortick":
                if (this.b9 == null) {
                    this.m.io = c;
                }
                break;
            case "label":
                this.b6 = c;
                break;
        }
    };
    XamLinearGaugeView.prototype.a8 = function (a, b, c) {
        var d = b;
        var e = c;
        if (!this.q) {
            switch (a) {
                case XamLinearGauge.$$p[29]:
                    this.ca = e;
                    break;
                case XamLinearGauge.$$p[39]:
                    this.cb = e;
                    break;
                case XamLinearGauge.$$p[0]:
                    this.b7 = e;
                    break;
                case XamLinearGauge.$$p[3]:
                    this.b8 = e;
                    break;
                case XamLinearGauge.$$p[48]:
                    this.cc = e;
                    break;
                case XamLinearGauge.$$p[52]:
                    this.cd = e;
                    break;
                case XamLinearGauge.$$p[56]:
                    this.ce = e;
                    break;
                case XamLinearGauge.$$p[23]:
                    this.b9 = e;
                    break;
            }
            if (e == null) {
                this.b0();
            }
        }
    };
    XamLinearGaugeView.prototype.bd = function (a, b) {
        if (!this.q) {
            this.e = b;
            if (this.e == null) {
                this.m.ah = this.c;
            }
        }
    };
    XamLinearGaugeView.prototype.be = function (a, b) {
        if (!this.q) {
            this.f = b;
            if (this.f == null) {
                this.m.ai = this.d;
            }
        }
    };
    XamLinearGaugeView.prototype.b = function (a, b) {
        this.ah.startCSSQuery();
        for (var c = 0; c < b.length; c++) {
            b[c] = this.ah.getCssDefaultPropertyValue(a, b[c]);
        }
        this.ah.endCSSQuery();
        return b;
    };
    XamLinearGaugeView.prototype.bv = function () {
        this.a1();
        this.b1();
        this.br();
    };
    XamLinearGaugeView.prototype.cg = function (a) {
        var b = CanvasGestureDOMEventProxy.c4(this.ah.rootWrapper);
        return { $type: Point_$type, x: a.x - b.left, y: a.y - b.top };
    };
    XamLinearGaugeView.prototype.bu = function (a, b, c, d) {
        this.cf = a;
        this.an = c;
        this.aq = d;
        this.bq();
        if (this.ah != null) {
            this.am = this.ah.setTimeout(runOn(this, this.b2), this.al);
        }
        else {
            this.am = window.setTimeout(runOn(this, this.b2), this.al);
        }
        this.t = true;
    };
    XamLinearGaugeView.prototype.a2 = function () {
        if (this.t) {
            if (this.ah != null) {
                this.ah.clearTimeout(this.am);
            }
            else {
                window.clearTimeout(this.am);
            }
            this.t = false;
        }
        if (this.u) {
            var a = this.m.toolTip;
            if (this.ah != null) {
                this.ah.clearTimeout(this.ak);
            }
            else {
                window.clearTimeout(this.ak);
            }
            a.hide();
            this.u = false;
            this.k = null;
        }
        this.al = this.m.dg;
    };
    XamLinearGaugeView.prototype.bq = function () {
        if (this.t) {
            if (this.ah != null) {
                this.ah.clearTimeout(this.am);
            }
            else {
                window.clearTimeout(this.am);
            }
        }
        if (this.u) {
            var a = this.m.toolTip;
            if (this.ah != null) {
                this.ah.clearTimeout(this.ak);
            }
            else {
                window.clearTimeout(this.ak);
            }
            a.hide();
            this.u = false;
            this.al = intDivide(this.m.dg, 2);
        }
    };
    XamLinearGaugeView.prototype.b2 = function () {
        var _this = this;
        if (this.t) {
            if (this.ah != null) {
                this.ah.clearTimeout(this.am);
            }
            else {
                window.clearTimeout(this.am);
            }
            this.t = false;
        }
        var a = this.an;
        var b = this.aq;
        var c = this.cf;
        if (this.ah != null) {
            this.ak = this.ah.setTimeout(runOn(this, this.a2), 10 * this.m.dg);
        }
        else {
            this.ak = window.setTimeout(runOn(this, this.a2), 10 * this.m.dg);
        }
        var d = this.m.ranges._inner[a];
        if (this.ai != this.m.toolTip) {
            if (this.ai != null) {
                this.ai.remove();
            }
            this.ai = this.m.toolTip;
            this.ai.setStyleProperty("z-index", "10000");
            this.ai.setStyleProperty("position", "absolute");
            this.ah.append(this.ai);
        }
        this.k = this.j(b, a);
        var context_ = this.k;
        var tooltip_ = this.ai;
        var tooltipType_ = b;
        if (tooltip_.updateToolTip) {
            tooltip_.updateToolTip(context_, tooltipType_);
        }
        ;
        var e = this.ai.findByClass(".ui-tooltip-container");
        if (e != null && e.length > 0) {
            e[0].setAttribute("style", null);
        }
        var f = "ui-simple-default-tooltip-content";
        var g = this.ai.findByClass("." + f);
        if (g != null && g.length > 0) {
            var h = ["border-top-color", "border-top-width", "border-top-style", "border-top-left-radius", "background-color", "padding-top", "font-weight"];
            var i = ["border-color", "border-width", "border-style", "border-radius", "background-color", "padding", "font-weight"];
            var j = ((function () {
                var $ret = new List$1(String_$type, 0);
                $ret.add(_this.k.brush.color.colorString);
                $ret.add("2px");
                $ret.add("solid");
                $ret.add("4px");
                $ret.add("rgba(230, 230, 230, 0.74)");
                $ret.add("4px");
                $ret.add("bold");
                return $ret;
            })());
            var k = new Dictionary$2(String_$type, String_$type, 0);
            var l = new Array(h.length);
            arrayCopy1(h, 0, l, 0, h.length);
            this.b(f, l);
            for (var m = 0; m < l.length; m++) {
                this.ai.setStyleProperty(i[m], (l[m] == null) ? j._inner[m] : l[m]);
            }
        }
        this.ai.setStyleProperty("top", (c.y + 15).toString() + "px").setStyleProperty("left", (c.x + 15).toString() + "px");
        this.ai.show();
        this.u = true;
    };
    XamLinearGaugeView.prototype.j = function (a, b) {
        var c = new LinearGraphTooltipDataContext();
        switch (a) {
            case "range":
                var d = this.m.ranges._inner[b];
                c.item = d;
                c.itemName = d.u;
                c.label = d.u + ": " + d.o.toString() + "-" + d.j.toString();
                var e = d.an;
                var f = d.ao;
                c.brush = e != null ? e : this.m.im(b, this.c);
                c.outline = f != null ? f : this.m.im(b, this.d);
                c.thickness = d.p;
                break;
            case "needle":
                c.item = this.m.dd;
                c.itemName = this.m.en;
                c.label = this.m.en != null ? this.m.en + ": " + this.m.dd.toString() : this.m.dd.toString();
                c.brush = this.m.ip;
                c.outline = this.m.iq;
                c.thickness = this.m.cv;
                break;
        }
        return c;
    };
    XamLinearGaugeView.prototype.a9 = function (a) {
        if (a == null) {
            this.aj = null;
            this.ah = null;
            this.ai = null;
            this.p = null;
            if (this.m.a9) {
                this.m.av.w();
            }
            this.at();
            return;
        }
        var b = a;
        this.ah = b;
        this.m.av.u(this.ah);
        this.ah.rootWrapper.addClass("ui-lineargauge-container");
        this.ad = (isNaN_(this.m.cw) ? this.m.b4 : this.m.cw);
        var c = this.ad;
        var d = Math.round(b.rootWrapper.width());
        var e = Math.round(b.rootWrapper.height());
        var f = d * c;
        var g = e * c;
        this.ah.rootWrapper.setStyleProperty("position", "relative");
        var h = this.ah.createElement("canvas");
        h.setStyleProperty("position", "absolute");
        this.ah.append(h);
        this.ap = f;
        this.ao = g;
        h.setAttribute("width", f.toString());
        h.setAttribute("height", g.toString());
        h.setStyleProperty("width", d.toString() + "px");
        h.setStyleProperty("height", e.toString() + "px");
        h.setStyleProperty("left", "0px");
        h.setStyleProperty("top", "0px");
        this.m.i2 = new Rect(0, 0, 0, d, e);
        this.m.i0 = new Rect(0, 0, 0, d, e);
        this.aj = h;
        var i = this.ah.get2DCanvasContext(this.aj);
        this.p = new RenderingContext(new CanvasViewRenderer(), i);
        this.a1();
        this.b1();
        this.p.ad(this.n);
        this.at();
        if (TypeRegistrar.isRegistered("CanvasGestureDOMEventProxy")) {
            this.i = typeCast(EventProxy.$, TypeRegistrar.create("CanvasGestureDOMEventProxy", this.ah.rootWrapper, this.ah, false));
        }
        if (this.i != null) {
            var j = this.i;
            j.onMouseOver = delegateCombine(j.onMouseOver, runOn(this, this.ay));
            var k = this.i;
            k.onMouseLeave = delegateCombine(k.onMouseLeave, runOn(this, this.ax));
            var l = this.i;
            l.onContactStarted = delegateCombine(l.onContactStarted, runOn(this, this.aw));
            var m = this.i;
            m.onContactMoved = delegateCombine(m.onContactMoved, runOn(this, this.av));
            var n = this.i;
            n.onContactCompleted = delegateCombine(n.onContactCompleted, runOn(this, this.au));
        }
        this.bp();
    };
    XamLinearGaugeView.prototype.au = function (a, b) {
        if (this.m != null) {
            this.m.onMouseUp(a);
        }
    };
    XamLinearGaugeView.prototype.av = function (a, b) {
        if (this.m != null) {
            this.m.onMouseMove(a, b);
        }
    };
    XamLinearGaugeView.prototype.aw = function (a, b) {
        if (this.m != null) {
            this.m.onMouseDown(a, b);
        }
    };
    XamLinearGaugeView.prototype.ay = function (a, b, c) {
        if (this.m != null) {
            this.m.onMouseOver(a, b, c);
        }
    };
    XamLinearGaugeView.prototype.ax = function (a) {
        if (this.m != null) {
            this.m.onMouseLeave();
        }
    };
    XamLinearGaugeView.prototype.at = function () {
        if (this.i != null) {
            var a = this.i;
            a.onMouseOver = delegateRemove(a.onMouseOver, runOn(this, this.ay));
            var b = this.i;
            b.onMouseLeave = delegateRemove(b.onMouseLeave, runOn(this, this.ax));
            var c = this.i;
            c.onContactStarted = delegateRemove(c.onContactStarted, runOn(this, this.aw));
            var d = this.i;
            d.onContactMoved = delegateRemove(d.onContactMoved, runOn(this, this.av));
            var e = this.i;
            e.onContactCompleted = delegateRemove(e.onContactCompleted, runOn(this, this.au));
            this.i.av();
        }
    };
    XamLinearGaugeView.prototype.ba = function () {
        this.a3();
        var a = Math.round(this.ah.rootWrapper.width());
        var b = Math.round(this.ah.rootWrapper.height());
        this.m.i2 = new Rect(0, 0, 0, a, b);
        this.m.i0 = new Rect(0, 0, 0, a, b);
        if (this.i != null) {
            this.i.bl = this.m.i2;
        }
    };
    XamLinearGaugeView.prototype.as = function () {
        this.bp();
    };
    XamLinearGaugeView.prototype.bs = function (a) {
        this.x = a;
    };
    XamLinearGaugeView.prototype.bp = function () {
        var a = this.m.i2.width;
        var b = this.m.i2.height;
        var c = a * this.ad;
        var d = b * this.ad;
        if (this.ap != a || this.ao != b) {
            this.aj.setAttribute("width", c.toString());
            this.aj.setAttribute("height", d.toString());
            this.aj.setStyleProperty("width", a.toString() + "px");
            this.aj.setStyleProperty("height", b.toString() + "px");
            this.ap = truncate(Math.round(c));
            this.ao = truncate(Math.round(d));
        }
        if (this.p.d && this.ad != 1) {
            this.p.aa();
            this.p.ab(this.ad, this.ad);
        }
        this.p.l(this.m.i2.left, this.m.i2.top, this.m.i2.width, this.m.i2.height);
        this.p.t(this.ch);
        this.p.t(this.ck);
        if (this.x != null) {
            for (var e = 0; e < this.x.count; e++) {
                this.p.t(this.x._inner[e]);
            }
        }
        for (var f = 0; f < this.y.count; f++) {
            this.p.ad(this.n);
            this.p.x(this.y._inner[f]);
        }
        for (var g = 0; g < this.z.count; g++) {
            this.p.t(this.z._inner[g]);
        }
        this.p.t(this.cj);
        this.p.t(this.ci);
        if (this.p.d && this.ad != 1) {
            this.p.z();
        }
    };
    XamLinearGaugeView.prototype.b1 = function () {
        if (this.m.ds != null) {
            this.n = this.m.ay();
        }
        else {
            this.n = FontUtil.getFont(this.ah);
        }
        this.ac = this.ae(this.n);
        if (this.m.il == null) {
            var a = this.ah.rootWrapper.getStyleProperty("color");
            if (stringIsNullOrEmpty(a) == false) {
                this.b5 = new Brush();
                this.b5._fill = a;
                this.m.il = this.b5;
            }
        }
        if (this.p != null) {
            this.p.ad(this.n);
        }
    };
    XamLinearGaugeView.prototype.af = function (a) {
        var b = typeCast(TextBlock.$, a);
        if (b != null && b.al != null) {
            return this.p.f(b) + 0;
        }
        return 0;
    };
    XamLinearGaugeView.prototype.cr = function (a) {
        if (isNaN_(this.ac)) {
            this.ac = this.ae(null);
        }
        var b = this.af(a);
        var c = this.ac;
        return new Size(1, b, c);
    };
    XamLinearGaugeView.prototype.bt = function (a, b) {
        if (b != null) {
            a.ao = b;
        }
        else {
            a.ao = this.b6;
        }
    };
    XamLinearGaugeView.prototype.bk = function (a, b, c) {
        a.n = b;
        a.o = c;
    };
    XamLinearGaugeView.prototype.bj = function (a, b) {
    };
    XamLinearGaugeView.prototype.bl = function (a, b) {
    };
    XamLinearGaugeView.prototype.ae = function (a) {
        return FontUtil.getCurrentFontHeight(this.ah, a);
    };
    XamLinearGaugeView.prototype.br = function () {
        if (!this.r) {
            this.r = true;
            window.setTimeout(runOn(this, this.ar), 0);
        }
    };
    XamLinearGaugeView.prototype.ar = function () {
        if (this.r) {
            this.r = false;
            this.m.fm();
        }
    };
    XamLinearGaugeView.prototype.flush = function () {
        if (this.r) {
            this.ar();
        }
    };
    XamLinearGaugeView.prototype.o = function (a, b) {
        return FontUtil.getFontInfo(this.ah, a, b);
    };
    XamLinearGaugeView.prototype.az = function (a) {
        var e_3, _a, e_4, _b, e_5, _c;
        a.scalePath = new PathVisualData(1, "Scale", this.ck);
        a.needlePath = new PathVisualData(1, "Needle", this.cj);
        a.highlightNeedlePath = new PathVisualData(1, "HighlightNeedle", this.ci);
        a.backingPath = new PathVisualData(1, "Backing", this.ch);
        var b = this.n;
        try {
            for (var _d = __values(fromEnum(this.y)), _e = _d.next(); !_e.done; _e = _d.next()) {
                var c = _e.value;
                if (c._visibility == 0) {
                    var d = this.o(c, b);
                    var e = new LinearGraphScaleLabelVisualData();
                    e.labelValue = c.al;
                    e.labelPosition = PointData.b({ $type: Point_$type, x: c.n, y: c.o });
                    e.labelSize = SizeData.b(this.cr(c));
                    e.appearance = AppearanceHelper.c(c, d);
                    a.scaleLabels.add(e);
                }
            }
        }
        catch (e_3_1) {
            e_3 = { error: e_3_1 };
        }
        finally {
            try {
                if (_e && !_e.done && (_a = _d.return))
                    _a.call(_d);
            }
            finally {
                if (e_3)
                    throw e_3.error;
            }
        }
        try {
            for (var _f = __values(fromEnum(this.z)), _g = _f.next(); !_g.done; _g = _f.next()) {
                var f = _g.value;
                if (f._visibility == 0) {
                    var g = new LinearGraphScaleTickmarkVisualData();
                    g.tickPath = new PathVisualData(1, "tickmarks", f);
                    a.scaleTickmarks.add(g);
                }
            }
        }
        catch (e_4_1) {
            e_4 = { error: e_4_1 };
        }
        finally {
            try {
                if (_g && !_g.done && (_b = _f.return))
                    _b.call(_f);
            }
            finally {
                if (e_4)
                    throw e_4.error;
            }
        }
        try {
            for (var _h = __values(fromEnum(this.x)), _j = _h.next(); !_j.done; _j = _h.next()) {
                var h = _j.value;
                if (h._visibility == 0) {
                    var i = new LinearGraphRangeVisualData();
                    var j = new PathVisualData(1, "range", h);
                    i.rangePath = j;
                    a.ranges.add(i);
                }
            }
        }
        catch (e_5_1) {
            e_5 = { error: e_5_1 };
        }
        finally {
            try {
                if (_j && !_j.done && (_c = _h.return))
                    _c.call(_h);
            }
            finally {
                if (e_5)
                    throw e_5.error;
            }
        }
    };
    XamLinearGaugeView.prototype.a7 = function () {
        this.a3();
        if (this.i != null) {
            this.i.at(this.ah.rootWrapper, "");
        }
    };
    XamLinearGaugeView.prototype.bb = function () {
        if (this.i != null && this.ah != null) {
            this.i.bh(this.ah.rootWrapper, "");
        }
    };
    XamLinearGaugeView.prototype.bm = function (a) {
        a._visibility = 0;
    };
    XamLinearGaugeView.prototype.bn = function (a) {
        a._visibility = 1;
    };
    XamLinearGaugeView.prototype.bo = function (a) {
        this.aa.remove(a);
    };
    XamLinearGaugeView.prototype.cq = function () {
        var a = new Path();
        this.aa.add(a);
        return a;
    };
    XamLinearGaugeView.prototype.bw = function (a) {
        a._visibility = 0;
    };
    XamLinearGaugeView.prototype.bx = function (a) {
        a._visibility = 1;
    };
    XamLinearGaugeView.prototype.by = function (a) {
        this.ab.remove(a);
    };
    XamLinearGaugeView.prototype.b4 = function () {
        var a = new TextBlock();
        this.ab.add(a);
        return a;
    };
    XamLinearGaugeView.prototype.bf = function (a) {
        a._visibility = 0;
    };
    XamLinearGaugeView.prototype.bg = function (a) {
        a._visibility = 1;
    };
    XamLinearGaugeView.prototype.bh = function (a) {
        this.z.remove(a);
    };
    XamLinearGaugeView.prototype.cp = function () {
        var a = new Path();
        this.z.add(a);
        return a;
    };
    XamLinearGaugeView.prototype.a4 = function (a) {
        a._visibility = 0;
    };
    XamLinearGaugeView.prototype.a5 = function (a) {
        a._visibility = 1;
    };
    XamLinearGaugeView.prototype.a6 = function (a) {
        this.y.remove(a);
    };
    XamLinearGaugeView.prototype.b3 = function () {
        var a = new TextBlock();
        this.y.add(a);
        return a;
    };
    XamLinearGaugeView.prototype.l = function () {
        var _this = this;
        if (this.k == null) {
            return null;
        }
        return ((function () {
            var $ret = new ToolTipInfo();
            $ret.b = _this.an;
            $ret.d = _this.cf;
            $ret.c = _this.aq;
            $ret.a = _this.k;
            return $ret;
        })());
    };
    XamLinearGaugeView.prototype.bi = function () {
        this.ad = this.m.b4;
    };
    XamLinearGaugeView.$t = markType(XamLinearGaugeView, 'XamLinearGaugeView');
    XamLinearGaugeView.w = new Dictionary$2(String_$type, Brush.$, 0);
    XamLinearGaugeView.g = null;
    XamLinearGaugeView.h = null;
    return XamLinearGaugeView;
}(Base));

/*
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.
*/

var defaultFont$1 = "Verdana, \"Segoe UI\", Arial, \"Myriad Pro\", sans-serif";
var LinearGaugeStylingDefaults = {
    //"ui-lineargauge-backing": {
    //    "background-color": "#ffffff",
    //    "border-color": "#ffffff"
    //},
    "ui-lineargauge-needle": {
        "background-color": "#999999",
        "border-top-color": "#FFFFFF"
    },
    "ui-lineargauge-scale": {
        "background-color": "transparent",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-tick": {
        "background-color": "rgba(0, 0, 0, 0.35)",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-minortick": {
        "background-color": "rgba(0, 0, 0, 0.2)",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-label": {
        "background-color": FontDefaults.gaugesFontBrush.fill,
        "border-top-color": "transparent"
    },
    "ui-lineargauge-range-palette-1": {
        "background-color": "#0078C8",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-range-palette-2": {
        "background-color": "#0099FF",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-range-palette-3": {
        "background-color": "#21A7FF",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-range-palette-4": {
        "background-color": "#4FB9FF",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-range-palette-5": {
        "background-color": "#79C9FF",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-needle-palette-1": {
        "background-color": "#e0e0e0",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-needle-palette-2": {
        "background-color": "#c0c0c0",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-needle-palette-3": {
        "background-color": "#999999",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-needle-palette-4": {
        "background-color": "#494949",
        "border-top-color": "transparent"
    },
    "ui-lineargauge-needle-palette-5": {
        "background-color": "#353535",
        "border-top-color": "transparent"
    },
    //"ui-lineargauge-tooltip": {
    //    "border-style": "none",
    //    "white-space": "nowrap",
    //    "background-color": "transparent"
    //},
    //"ui-lineargauge-range-tooltip": {
    //    "border-style": "solid",
    //    "border-width": "2px",
    //    "border-radius": "4px",
    //    "background-color": "rgba(230, 230, 230, 0.74)",
    //    "padding": "4px",
    //    "font-weight": "bold"
    //},
    //"ui-lineargauge-needle-tooltip": {
    //    "border-style": "solid",
    //    "border-width": "2px",
    //    "border-radius": "4px",
    //    "background-color": "rgba(230, 230, 230, 0.74)",
    //    "padding": "4px",
    //    "font-weight": "bold"
    //},
    "ui-lineargauge": {
        "font-family": FontDefaults.gaugesFontFamily,
        "font-size": FontDefaults.gaugesFontSize + "px",
        "color": FontDefaults.gaugesFontBrush.fill
    },
    "font-family": FontDefaults.gaugesFontFamily,
    "font-style": "normal",
    "font-weight": FontDefaults.gaugesFontWeight,
    "font-size": FontDefaults.gaugesFontSize + "px",
    "color": FontDefaults.gaugesFontBrush.fill,
    "font-variant": "",
    "line-height": ""
};

/*
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.
*/
/**
 * A linear gauge for displaying a single value on a defined scale.
*/
var IgxLinearGaugeComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGaugeComponent(_renderer, _elRef, _ngZone, _componentFactoryResolver, _injector) {
        //super();
        var _this = this;
        this._renderer = _renderer;
        this._elRef = _elRef;
        this._ngZone = _ngZone;
        this._componentFactoryResolver = _componentFactoryResolver;
        this._injector = _injector;
        /**
        * The ranges actually present in the chart. Do not directly modify this array.
        * This array's contents can be modified by causing Angular to reproject the child content.
        * Or adding and removing ranges from the manual ranges collection on the ranges property.
        */
        this.actualRanges = [];
        this._ranges = null;
        this._rangesAdapter = null;
        this._tooltipTemplate = null;
        this._tooltipContent = null;
        this._defaultTooltips = null;
        this._zoneRunner = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._formatLabel = null;
        this._alignLabel = null;
        this._valueChanged = null;
        this._highlightValueChanged = null;
        this._actualMinimumValueChange = null;
        this._actualMaximumValueChange = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._zoneRunner = function (act) { return _this._ngZone.run(act); };
        this._implementation = this.createImplementation();
        this._container = _renderer.createElement("div");
        _renderer.appendChild(_elRef.element.nativeElement, this._container);
        _renderer.setStyle(this._container, "display", "block");
        _renderer.setStyle(this._container, "width", "100%");
        _renderer.setStyle(this._container, "height", "100%");
        var root;
        root = this._container;
        if (this._container.nativeElement != null) {
            root = this._container.nativeElement;
        }
        this._root = root;
        var ren = new AngularRenderer(root, this._renderer, window.document, this._ngZone, true, LinearGaugeStylingDefaults);
        this._wrapper = ren;
        var gauge = this.i;
        this._gauge = gauge;
        this._rangesAdapter = new CollectionAdapter([], this.i.ranges, this.actualRanges, function (c) { return c.i; }, function (i) {
            i._provideRenderer(_this._wrapper);
            if (_this._root && _this._root.parentElement) {
                i._styling(_this._root, _this, _this);
            }
        }, function (i) { i._provideRenderer(null); });
        gauge.provideContainer(ren);
        ren.addSizeWatcher(function () {
            _this._gauge.containerResized();
        });
    }
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "height", {
        get: function () {
            return this._height;
        },
        set: function (value) {
            this._height = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "height", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "width", {
        get: function () {
            return this._width;
        },
        set: function (value) {
            this._width = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "width", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "ranges", {
        /**
         * A collection or manually added axes for the chart.
        */
        get: function () {
            var _this = this;
            if (this._ranges === null) {
                var coll = new IgxLinearGraphRangeCollection();
                var inner = coll._innerColl;
                inner.addListener(function (sender, e) {
                    switch (e.action) {
                        case NotifyCollectionChangedAction.Add:
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Remove:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            break;
                        case NotifyCollectionChangedAction.Replace:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Reset:
                            _this._rangesAdapter.clearManualItems();
                            break;
                    }
                });
                this._ranges = coll;
            }
            return this._ranges;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent.prototype.ngOnDestroy = function () {
        this._gauge.destroy();
        this._wrapper.destroy();
    };
    IgxLinearGaugeComponent.prototype.createImplementation = function () {
        return new XamLinearGauge();
    };
    IgxLinearGaugeComponent.prototype.ngAfterContentInit = function () {
        var _this = this;
        if (TypeRegistrar.isRegistered("IgxSimpleDefaultTooltipComponent")) {
            var c = TypeRegistrar.get("IgxSimpleDefaultTooltipComponent");
            var cf = this._componentFactoryResolver.resolveComponentFactory(c);
            var cr_1 = this._dynamicContent.createComponent(cf);
            this._defaultTooltips = cr_1;
            cr_1.instance.onContentReady.subscribe(function () {
                _this._onDefaultTooltipsReady(cr_1);
            });
            this._ensureTooltipCreated();
        }
        this._rangesAdapter.updateQuery(this.contentRanges);
    };
    IgxLinearGaugeComponent.prototype.ngAfterViewInit = function () {
        this.updateStyle();
        this.i.containerResized();
    };
    IgxLinearGaugeComponent.prototype.updateStyle = function () {
        this._styling(this._root, this);
        if (this.actualRanges && this.actualRanges.length > 0) {
            var currRange = this.actualRanges;
            for (var i = 0; i < currRange.length; i++) {
                currRange[i]._styling(this._root, this, this);
            }
        }
    };
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "tooltipTemplate", {
        get: function () {
            return this._tooltipTemplate;
        },
        set: function (value) {
            this._tooltipTemplate = value;
            if (value == null) {
                if (this._tooltipContent !== null) {
                    this._tooltipContent.destroy();
                    this._tooltipContent = null;
                }
            }
            if (this._tooltipContent != null) {
                this._tooltipContent.instance.template = this._tooltipTemplate;
            }
            else {
                this._ensureTooltipCreated();
            }
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent.prototype._ensureTooltipCreated = function () {
        if (this.i.toolTip == null) {
            var tooltip = this.createTooltip();
            if (tooltip == null) {
                return;
            }
            this._tooltipContent = tooltip;
            tooltip.instance.template = this._tooltipTemplate;
            this.i.toolTip = this.createWrapper(tooltip.location.nativeElement);
        }
    };
    IgxLinearGaugeComponent.prototype.createWrapper = function (ele) {
        var wrapper = new AngularWrapper(ele, this._renderer, this._ngZone);
        wrapper.updateToolTip = ele.updateToolTip;
        wrapper.hideToolTip = ele.hideToolTip;
        return wrapper;
    };
    IgxLinearGaugeComponent.prototype._ensureDefaultTooltip = function () {
        if (this._defaultTooltips == null) {
            return;
        }
        this._defaultTooltips.instance["ensureDefaultTooltip"](this);
    };
    IgxLinearGaugeComponent.prototype._onDefaultTooltipsReady = function (cr) {
        this._ensureDefaultTooltip();
    };
    IgxLinearGaugeComponent.prototype.createTooltip = function () {
        if (!TypeRegistrar.isRegistered("IgxTooltipContainerComponent")) {
            return null;
        }
        var t = TypeRegistrar.get("IgxTooltipContainerComponent");
        var cf = this._componentFactoryResolver.resolveComponentFactory(t);
        var cr = this._dynamicContent.createComponent(cf);
        var ele = cr.location.nativeElement;
        var self = this;
        ele.updateToolTip = function (c) {
            if (c.externalObject) {
                c = c.externalObject;
            }
            else {
                var ext = new IgxDataContext();
                ext._implementation = c;
                c = ext;
            }
            if (ele.parentElement != self._container) {
                if (ele.parentElement != null) {
                    ele.parentElement.removeChild(ele);
                }
                self._container.appendChild(ele);
            }
            cr.instance.context = c;
            ele.style.display = "block";
            return true;
        };
        ele.hideToolTip = function () {
            ele.style.display = "none";
        };
        ele.style.display = "none";
        return cr;
    };
    IgxLinearGaugeComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "animating", {
        /**
     * Gets a value indicating whether the bullet graph is currently animating.
    */
        get: function () {
            return this.i.a9;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "transitionProgress", {
        /**
         * Gets the transition progress of the animation when the control is animating.
        */
        get: function () {
            return this.i.dc;
        },
        set: function (v) {
            this.i.dc = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "orientation", {
        /**
         * Gets or sets the orientation of the scale.
        */
        get: function () {
            return this.i.as;
        },
        set: function (v) {
            this.i.as = ensureEnum(LinearScaleOrientation_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "rangeBrushes", {
        /**
         * Gets or sets a collection of brushes to be used as the palette for linear gauge ranges.
        */
        get: function () {
            return fromBrushCollection(this.i.ah);
        },
        set: function (v) {
            this.i.ah = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "rangeOutlines", {
        /**
         * Gets or sets a collection of brushes to be used as the palette for linear gauge outlines.
        */
        get: function () {
            return fromBrushCollection(this.i.ai);
        },
        set: function (v) {
            this.i.ai = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minimumValue", {
        /**
         * Gets or sets the minimum value of the scale.
        */
        get: function () {
            return this.i.ch;
        },
        set: function (v) {
            this.i.ch = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualMinimumValue", {
        /**
         * Gets the resolved minimum value of the scale.
        */
        get: function () {
            return this.i.b3;
        },
        set: function (v) {
            this.i.b3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "maximumValue", {
        /**
         * Gets or sets the maximum value of the scale.
        */
        get: function () {
            return this.i.cg;
        },
        set: function (v) {
            this.i.cg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualMaximumValue", {
        /**
         * Gets the resolved maximum value of the scale.
        */
        get: function () {
            return this.i.b2;
        },
        set: function (v) {
            this.i.b2 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "value", {
        /**
         * Gets or sets the value at which the needle is positioned.
        */
        get: function () {
            return this.i.dd;
        },
        set: function (v) {
            this.i.dd = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleShape", {
        /**
         * Gets or sets the shape to use when rendering the needle from a number of options.
        */
        get: function () {
            return this.i.ap;
        },
        set: function (v) {
            this.i.ap = ensureEnum(LinearGraphNeedleShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleName", {
        /**
         * Gets or sets the name used for needle.
        */
        get: function () {
            return this.i.en;
        },
        set: function (v) {
            this.i.en = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "rangeInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the ranges, measured from the front/bottom of the control as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.cx;
        },
        set: function (v) {
            this.i.cx = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the scale, measured from the bottom/front (when orientation is horizontal/vertical) of the control as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.c1;
        },
        set: function (v) {
            this.i.c1 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "rangeOuterExtent", {
        /**
         * Gets or sets the position at which to stop rendering the range as a value from 0 to 1 measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.cy;
        },
        set: function (v) {
            this.i.cy = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleOuterExtent", {
        /**
         * Gets or sets the position at which to stop rendering the scale as a value from 0 to 1 measured from the bottom/front (when orientation is horizontal/vertical) of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.c3;
        },
        set: function (v) {
            this.i.c3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleInnerExtent", {
        /**
         * Gets or sets the position at which to start rendering the needle geometry, measured from the front/bottom of the linear gauge as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.co;
        },
        set: function (v) {
            this.i.co = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleOuterExtent", {
        /**
         * Gets or sets the position at which to stop rendering the needle geometry as a value from 0 to 1 measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.cs;
        },
        set: function (v) {
            this.i.cs = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleInnerBaseWidth", {
        /**
         * Gets or sets the width of the needle's inner base.
        */
        get: function () {
            return this.i.cn;
        },
        set: function (v) {
            this.i.cn = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleOuterBaseWidth", {
        /**
         * Gets or sets the width of the needle's outer base.
        */
        get: function () {
            return this.i.cr;
        },
        set: function (v) {
            this.i.cr = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleInnerPointWidth", {
        /**
         * Gets or sets the width of the needle's inner point.
        */
        get: function () {
            return this.i.cq;
        },
        set: function (v) {
            this.i.cq = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleOuterPointWidth", {
        /**
         * Gets or sets the width of the needle's outer point.
        */
        get: function () {
            return this.i.cu;
        },
        set: function (v) {
            this.i.cu = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleInnerPointExtent", {
        /**
         * Gets or sets the extent of the needle's inner point.
        */
        get: function () {
            return this.i.cp;
        },
        set: function (v) {
            this.i.cp = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleOuterPointExtent", {
        /**
         * Gets or sets the extent of the needle's outer point.
        */
        get: function () {
            return this.i.ct;
        },
        set: function (v) {
            this.i.ct = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "interval", {
        /**
         * Gets or sets the interval to use for the scale.
        */
        get: function () {
            return this.i.cb;
        },
        set: function (v) {
            this.i.cb = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "ticksPostInitial", {
        /**
         * A value to start adding tickmarks, added to the scale's MinimumValue.
        */
        get: function () {
            return this.i.c8;
        },
        set: function (v) {
            this.i.c8 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "ticksPreTerminal", {
        /**
         * A value to stop adding tickmarks, subtracted from the scale's MaximumValue.
        */
        get: function () {
            return this.i.c9;
        },
        set: function (v) {
            this.i.c9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelInterval", {
        /**
         * Gets or sets the interval to use for rendering labels. This defaults to be the same interval as the tickmarks on the scale.
        */
        get: function () {
            return this.i.cd;
        },
        set: function (v) {
            this.i.cd = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelExtent", {
        /**
         * Gets or sets the position at which to put the labels as a value from 0 to 1, measured from the bottom of the scale.
         * Values further from zero than 1 can be used to hide the labels of the linear gauge.
        */
        get: function () {
            return this.i.cc;
        },
        set: function (v) {
            this.i.cc = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelsPostInitial", {
        /**
         * A value to start adding labels, added to the scale's MinimumValue.
        */
        get: function () {
            return this.i.ce;
        },
        set: function (v) {
            this.i.ce = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelsPreTerminal", {
        /**
         * A value to stop adding labels, subtracted from the scale's MaximumValue.
        */
        get: function () {
            return this.i.cf;
        },
        set: function (v) {
            this.i.cf = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minorTickCount", {
        /**
         * Gets or sets the number of minor tickmarks to place between major tickmarks.
        */
        get: function () {
            return this.i.ci;
        },
        set: function (v) {
            this.i.ci = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "tickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the major tickmarks as a value from 0 to 1, measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.da;
        },
        set: function (v) {
            this.i.da = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "tickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the major tickmarks as a value from 0 to 1, measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.c7;
        },
        set: function (v) {
            this.i.c7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "tickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering ticks.
        */
        get: function () {
            return this.i.db;
        },
        set: function (v) {
            this.i.db = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "tickBrush", {
        /**
         * Gets or sets the brush to use for the major tickmarks.
        */
        get: function () {
            return brushToString(this.i.it);
        },
        set: function (v) {
            this.i.it = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "fontBrush", {
        /**
         * Gets or sets the brush to use for the label font.
        */
        get: function () {
            return brushToString(this.i.il);
        },
        set: function (v) {
            this.i.il = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleBreadth", {
        /**
         * Gets or sets the needle breadth.
        */
        get: function () {
            return this.i.cm;
        },
        set: function (v) {
            this.i.cm = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleBrush", {
        /**
         * Gets or sets the brush to use for needle element.
        */
        get: function () {
            return brushToString(this.i.ip);
        },
        set: function (v) {
            this.i.ip = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleOutline", {
        /**
         * Gets or sets the brush to use for the outline of needle element.
        */
        get: function () {
            return brushToString(this.i.iq);
        },
        set: function (v) {
            this.i.iq = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "needleStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering single actual value element.
        */
        get: function () {
            return this.i.cv;
        },
        set: function (v) {
            this.i.cv = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minorTickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the minor tickmarks as a value from 0 to 1, measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.ck;
        },
        set: function (v) {
            this.i.ck = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minorTickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the minor tickmarks as a value from 0 to 1, measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.cj;
        },
        set: function (v) {
            this.i.cj = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minorTickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering minor ticks.
        */
        get: function () {
            return this.i.cl;
        },
        set: function (v) {
            this.i.cl = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "minorTickBrush", {
        /**
         * Gets or sets the brush to use for the minor tickmarks.
        */
        get: function () {
            return brushToString(this.i.io);
        },
        set: function (v) {
            this.i.io = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "isScaleInverted", {
        /**
         * Gets or sets a value indicating whether the scale is inverted.
         * When the scale is inverted the direction in which the scale values increase is right to left.
        */
        get: function () {
            return this.i.bg;
        },
        set: function (v) {
            this.i.bg = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "backingBrush", {
        /**
         * Gets or sets the brush to use to fill the backing of the linear gauge.
        */
        get: function () {
            return brushToString(this.i.ij);
        },
        set: function (v) {
            this.i.ij = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "backingOutline", {
        /**
         * Gets or sets the brush to use for the outline of the backing.
        */
        get: function () {
            return brushToString(this.i.ik);
        },
        set: function (v) {
            this.i.ik = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "backingStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the backing outline.
        */
        get: function () {
            return this.i.b7;
        },
        set: function (v) {
            this.i.b7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "backingInnerExtent", {
        /**
         * Gets or sets the inner extent of the linear gauge backing.
        */
        get: function () {
            return this.i.b5;
        },
        set: function (v) {
            this.i.b5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "backingOuterExtent", {
        /**
         * Gets or sets the outer extent of the linear gauge backing.
        */
        get: function () {
            return this.i.b6;
        },
        set: function (v) {
            this.i.b6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the scale, measured from the front/bottom of the linear gauge as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.c5;
        },
        set: function (v) {
            this.i.c5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the scale as a value from 0 to 1, measured from the front/bottom of the linear gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal size of the linear gauge.
        */
        get: function () {
            return this.i.c0;
        },
        set: function (v) {
            this.i.c0 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleBrush", {
        /**
         * Gets or sets the brush to use to fill the scale of the linear gauge.
        */
        get: function () {
            return brushToString(this.i.ir);
        },
        set: function (v) {
            this.i.ir = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleOutline", {
        /**
         * Gets or sets the brush to use for the outline of the scale.
        */
        get: function () {
            return brushToString(this.i.is);
        },
        set: function (v) {
            this.i.is = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "scaleStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the scale outline.
        */
        get: function () {
            return this.i.c6;
        },
        set: function (v) {
            this.i.c6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "mergeViewports", {
        /**
         * Gets or sets whether the scale viewport will be merged with backing viewport.
        */
        get: function () {
            return this.i.bi;
        },
        set: function (v) {
            this.i.bi = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "isNeedleDraggingEnabled", {
        /**
         * Gets or sets whether needle dragging is enabled or not.
        */
        get: function () {
            return this.i.bf;
        },
        set: function (v) {
            this.i.bf = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "isHighlightNeedleDraggingEnabled", {
        /**
         * Gets or sets whether highlight needle dragging is enabled or not.
        */
        get: function () {
            return this.i.be;
        },
        set: function (v) {
            this.i.be = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelFormat", {
        /**
         * Gets or sets the label composite format used when creating label values.
        */
        get: function () {
            return this.i.d3;
        },
        set: function (v) {
            this.i.d3 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "labelFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the LabelFormat string.
        */
        get: function () {
            return this.i.ag;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.ag = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "transitionDuration", {
        /**
         * Gets or sets the number of milliseconds over which changes to the linear gauge should be animated.
        */
        get: function () {
            return this.i.dh;
        },
        set: function (v) {
            this.i.dh = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "highlightValue", {
        /**
         * Gets or sets the highlight value at which to point the secondary needle of the gauge.
        */
        get: function () {
            return this.i.b9;
        },
        set: function (v) {
            this.i.b9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualHighlightValueOpacity", {
        /**
         * Gets the actual opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.b1;
        },
        set: function (v) {
            this.i.b1 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "highlightValueOpacity", {
        /**
         * Gets or sets the opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.ca;
        },
        set: function (v) {
            this.i.ca = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualHighlightValueDisplayMode", {
        /**
         * Gets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.a0;
        },
        set: function (v) {
            this.i.a0 = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "highlightValueDisplayMode", {
        /**
         * Gets or sets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.a1;
        },
        set: function (v) {
            this.i.a1 = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "showToolTipTimeout", {
        /**
         * Gets or sets the time in milliseconds that tooltip appearance is delayed with.
        */
        get: function () {
            return this.i.dg;
        },
        set: function (v) {
            this.i.dg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "showToolTip", {
        /**
         * Gets or sets a value indicating whether tooltips are enabled.
        */
        get: function () {
            return this.i.bm;
        },
        set: function (v) {
            this.i.bm = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "font", {
        /**
         * Gets or sets the font.
        */
        get: function () {
            return this.i.ds;
        },
        set: function (v) {
            this.i.ds = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "pixelScalingRatio", {
        /**
         * Gets or sets the scaling value used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.cw;
        },
        set: function (v) {
            this.i.cw = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualPixelScalingRatio", {
        /**
         * Gets the actual pixel scaling ratio used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.b4;
        },
        set: function (v) {
            this.i.b4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        if (this.ranges != null && this.ranges.findByName && this.ranges.findByName(name)) {
            return this.ranges.findByName(name);
        }
        if (this.labelFormatSpecifiers != null && arrayFindByName(this.labelFormatSpecifiers, name)) {
            return arrayFindByName(this.labelFormatSpecifiers, name);
        }
        return null;
    };
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxLinearGaugeComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("LinearGaugeComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    /**
 * Gets the value for the main scale of the gauge for a given point within the bounds of the gauge.

* @param point  * The point for which to retrieve the associated value.
*/
    IgxLinearGaugeComponent.prototype.getValueForPoint = function (point) {
        var iv = this.i.b8(toPoint(point));
        return (iv);
    };
    IgxLinearGaugeComponent.prototype.needleContainsPoint = function (point, isFinger) {
        var iv = this.i.needleContainsPoint(toPoint(point), isFinger);
        return (iv);
    };
    IgxLinearGaugeComponent.prototype.highlightNeedleContainsPoint = function (point, isFinger) {
        var iv = this.i.highlightNeedleContainsPoint(toPoint(point), isFinger);
        return (iv);
    };
    /**
     * Returns visuals as a serialized string.
    
    */
    IgxLinearGaugeComponent.prototype.exportSerializedVisualData = function () {
        var iv = this.i.dr();
        return (iv);
    };
    /**
     * Use to force the linear gauge to finish any deferred work before printing or evaluating its visual.
     * This should only be called if the visual of the linear gauge needs to be synchronously saved or evaluated.
     * Calling this method too often will hinder the performance of the linear gauge.
    
    */
    IgxLinearGaugeComponent.prototype.flush = function () {
        this.i.fq();
    };
    /**
     * Called by the UI framework to provide a UI container for rendering this control.
    
    * @param container  * The UI container element.
    */
    IgxLinearGaugeComponent.prototype.provideContainer = function (container) {
        this.i.provideContainer(container);
    };
    IgxLinearGaugeComponent.prototype.containerResized = function () {
        this.i.containerResized();
    };
    IgxLinearGaugeComponent.prototype.styleUpdated = function () {
        this.i.gm();
    };
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "formatLabel", {
        /**
         * Event which is raised when a label of the the gauge is formatted.
         * Function takes first argument evt and second argument ui.
         * Use ui.owner to obtain reference to the gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of the gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of the gauge scale.
         * Use ui.value to obtain the value on the the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._formatLabel == null) {
                this._formatLabel = new EventEmitter();
                this.i.formatLabel = delegateCombine(this.i.formatLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatLinearGraphLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatLabel) {
                            _this.beforeFormatLabel(_this, outerArgs);
                        }
                        _this._formatLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "alignLabel", {
        /**
         * Event which is raised when a label of the linear gauge is aligned along the scale.
         * Function takes first argument evt and second argument ui.
         * Use ui.owner to obtain reference to the gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of the gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of the gauge scale.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
         * Use ui.width to obtain the width of the label.
         * Use ui.height to obtain the height of the label.
         * Use ui.offsetX to obtain the X offset of the label on the gauge scale.
         * Use ui.offsetY to obtain the Y offset of the label on the gauge scale.
        */
        get: function () {
            var _this = this;
            if (this._alignLabel == null) {
                this._alignLabel = new EventEmitter();
                this.i.alignLabel = delegateCombine(this.i.alignLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignLinearGraphLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignLabel) {
                            _this.beforeAlignLabel(_this, outerArgs);
                        }
                        _this._alignLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "valueChanged", {
        /**
         * Occurs when the Value property changes.
        */
        get: function () {
            var _this = this;
            if (this._valueChanged == null) {
                this._valueChanged = new EventEmitter();
                this.i.valueChanged = delegateCombine(this.i.valueChanged, function (o, e) {
                    var outerArgs = new IgxDoubleValueChangedEventArgs();
                    outerArgs._provideImplementation(e);
                    if (_this.beforeValueChanged) {
                        _this.beforeValueChanged(_this, outerArgs);
                    }
                    _this._valueChanged.emit({
                        sender: _this,
                        args: outerArgs
                    });
                });
            }
            return this._valueChanged;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "highlightValueChanged", {
        /**
         * Occurs when the Hightlight Value property changes.
        */
        get: function () {
            var _this = this;
            if (this._highlightValueChanged == null) {
                this._highlightValueChanged = new EventEmitter();
                this.i.highlightValueChanged = delegateCombine(this.i.highlightValueChanged, function (o, e) {
                    var outerArgs = new IgxDoubleValueChangedEventArgs();
                    outerArgs._provideImplementation(e);
                    if (_this.beforeHighlightValueChanged) {
                        _this.beforeHighlightValueChanged(_this, outerArgs);
                    }
                    _this._highlightValueChanged.emit({
                        sender: _this,
                        args: outerArgs
                    });
                });
            }
            return this._highlightValueChanged;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualMinimumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMinimumValueChange == null) {
                this._actualMinimumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMinimumValue;
                    if (_this.beforeActualMinimumValueChange) {
                        _this.beforeActualMinimumValueChange(_this, ext);
                    }
                    _this._actualMinimumValueChange.emit(ext);
                });
            }
            return this._actualMinimumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxLinearGaugeComponent.prototype, "actualMaximumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMaximumValueChange == null) {
                this._actualMaximumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMaximumValue;
                    if (_this.beforeActualMaximumValueChange) {
                        _this.beforeActualMaximumValueChange(_this, ext);
                    }
                    _this._actualMaximumValueChange.emit(ext);
                });
            }
            return this._actualMaximumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    IgxLinearGaugeComponent.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeComponent, deps: [{ token: Renderer2 }, { token: ViewContainerRef }, { token: NgZone }, { token: ComponentFactoryResolver }, { token: Injector }], target: ɵɵFactoryTarget.Component });
    IgxLinearGaugeComponent.ɵcmp = ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxLinearGaugeComponent, selector: "igx-linear-gauge", inputs: { height: "height", width: "width", tooltipTemplate: "tooltipTemplate", transitionProgress: "transitionProgress", orientation: "orientation", rangeBrushes: "rangeBrushes", rangeOutlines: "rangeOutlines", minimumValue: "minimumValue", actualMinimumValue: "actualMinimumValue", maximumValue: "maximumValue", actualMaximumValue: "actualMaximumValue", value: "value", needleShape: "needleShape", needleName: "needleName", rangeInnerExtent: "rangeInnerExtent", scaleInnerExtent: "scaleInnerExtent", rangeOuterExtent: "rangeOuterExtent", scaleOuterExtent: "scaleOuterExtent", needleInnerExtent: "needleInnerExtent", needleOuterExtent: "needleOuterExtent", needleInnerBaseWidth: "needleInnerBaseWidth", needleOuterBaseWidth: "needleOuterBaseWidth", needleInnerPointWidth: "needleInnerPointWidth", needleOuterPointWidth: "needleOuterPointWidth", needleInnerPointExtent: "needleInnerPointExtent", needleOuterPointExtent: "needleOuterPointExtent", interval: "interval", ticksPostInitial: "ticksPostInitial", ticksPreTerminal: "ticksPreTerminal", labelInterval: "labelInterval", labelExtent: "labelExtent", labelsPostInitial: "labelsPostInitial", labelsPreTerminal: "labelsPreTerminal", minorTickCount: "minorTickCount", tickStartExtent: "tickStartExtent", tickEndExtent: "tickEndExtent", tickStrokeThickness: "tickStrokeThickness", tickBrush: "tickBrush", fontBrush: "fontBrush", needleBreadth: "needleBreadth", needleBrush: "needleBrush", needleOutline: "needleOutline", needleStrokeThickness: "needleStrokeThickness", minorTickStartExtent: "minorTickStartExtent", minorTickEndExtent: "minorTickEndExtent", minorTickStrokeThickness: "minorTickStrokeThickness", minorTickBrush: "minorTickBrush", isScaleInverted: "isScaleInverted", backingBrush: "backingBrush", backingOutline: "backingOutline", backingStrokeThickness: "backingStrokeThickness", backingInnerExtent: "backingInnerExtent", backingOuterExtent: "backingOuterExtent", scaleStartExtent: "scaleStartExtent", scaleEndExtent: "scaleEndExtent", scaleBrush: "scaleBrush", scaleOutline: "scaleOutline", scaleStrokeThickness: "scaleStrokeThickness", mergeViewports: "mergeViewports", isNeedleDraggingEnabled: "isNeedleDraggingEnabled", isHighlightNeedleDraggingEnabled: "isHighlightNeedleDraggingEnabled", labelFormat: "labelFormat", labelFormatSpecifiers: "labelFormatSpecifiers", transitionDuration: "transitionDuration", highlightValue: "highlightValue", actualHighlightValueOpacity: "actualHighlightValueOpacity", highlightValueOpacity: "highlightValueOpacity", actualHighlightValueDisplayMode: "actualHighlightValueDisplayMode", highlightValueDisplayMode: "highlightValueDisplayMode", showToolTipTimeout: "showToolTipTimeout", showToolTip: "showToolTip", font: "font", pixelScalingRatio: "pixelScalingRatio", actualPixelScalingRatio: "actualPixelScalingRatio" }, outputs: { formatLabel: "formatLabel", alignLabel: "alignLabel", valueChanged: "valueChanged", highlightValueChanged: "highlightValueChanged", actualMinimumValueChange: "actualMinimumValueChange", actualMaximumValueChange: "actualMaximumValueChange" }, host: { classAttribute: "igx-linear-gauge ig-linear-gauge" }, providers: [], queries: [{ propertyName: "contentRanges", predicate: IgxLinearGraphRangeComponent }], viewQueries: [{ propertyName: "_dynamicContent", first: true, predicate: ["dynamicContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #dynamicContent></ng-container>", isInline: true, styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"], changeDetection: ChangeDetectionStrategy.OnPush });
    return IgxLinearGaugeComponent;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-linear-gauge',
                    template: "<ng-container #dynamicContent></ng-container>",
                    changeDetection: ChangeDetectionStrategy.OnPush,
                    providers: [],
                    host: { 'class': 'igx-linear-gauge ig-linear-gauge' },
                    styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"]
                }]
        }], ctorParameters: function () { return [{ type: Renderer2 }, { type: ViewContainerRef }, { type: NgZone }, { type: ComponentFactoryResolver }, { type: Injector }]; }, propDecorators: { _dynamicContent: [{
                type: ViewChild,
                args: ["dynamicContent", { read: ViewContainerRef, static: true }]
            }], height: [{
                type: Input
            }], width: [{
                type: Input
            }], contentRanges: [{
                type: ContentChildren,
                args: [IgxLinearGraphRangeComponent]
            }], tooltipTemplate: [{
                type: Input
            }], transitionProgress: [{
                type: Input
            }], orientation: [{
                type: Input
            }], rangeBrushes: [{
                type: Input
            }], rangeOutlines: [{
                type: Input
            }], minimumValue: [{
                type: Input
            }], actualMinimumValue: [{
                type: Input
            }], maximumValue: [{
                type: Input
            }], actualMaximumValue: [{
                type: Input
            }], value: [{
                type: Input
            }], needleShape: [{
                type: Input
            }], needleName: [{
                type: Input
            }], rangeInnerExtent: [{
                type: Input
            }], scaleInnerExtent: [{
                type: Input
            }], rangeOuterExtent: [{
                type: Input
            }], scaleOuterExtent: [{
                type: Input
            }], needleInnerExtent: [{
                type: Input
            }], needleOuterExtent: [{
                type: Input
            }], needleInnerBaseWidth: [{
                type: Input
            }], needleOuterBaseWidth: [{
                type: Input
            }], needleInnerPointWidth: [{
                type: Input
            }], needleOuterPointWidth: [{
                type: Input
            }], needleInnerPointExtent: [{
                type: Input
            }], needleOuterPointExtent: [{
                type: Input
            }], interval: [{
                type: Input
            }], ticksPostInitial: [{
                type: Input
            }], ticksPreTerminal: [{
                type: Input
            }], labelInterval: [{
                type: Input
            }], labelExtent: [{
                type: Input
            }], labelsPostInitial: [{
                type: Input
            }], labelsPreTerminal: [{
                type: Input
            }], minorTickCount: [{
                type: Input
            }], tickStartExtent: [{
                type: Input
            }], tickEndExtent: [{
                type: Input
            }], tickStrokeThickness: [{
                type: Input
            }], tickBrush: [{
                type: Input
            }], fontBrush: [{
                type: Input
            }], needleBreadth: [{
                type: Input
            }], needleBrush: [{
                type: Input
            }], needleOutline: [{
                type: Input
            }], needleStrokeThickness: [{
                type: Input
            }], minorTickStartExtent: [{
                type: Input
            }], minorTickEndExtent: [{
                type: Input
            }], minorTickStrokeThickness: [{
                type: Input
            }], minorTickBrush: [{
                type: Input
            }], isScaleInverted: [{
                type: Input
            }], backingBrush: [{
                type: Input
            }], backingOutline: [{
                type: Input
            }], backingStrokeThickness: [{
                type: Input
            }], backingInnerExtent: [{
                type: Input
            }], backingOuterExtent: [{
                type: Input
            }], scaleStartExtent: [{
                type: Input
            }], scaleEndExtent: [{
                type: Input
            }], scaleBrush: [{
                type: Input
            }], scaleOutline: [{
                type: Input
            }], scaleStrokeThickness: [{
                type: Input
            }], mergeViewports: [{
                type: Input
            }], isNeedleDraggingEnabled: [{
                type: Input
            }], isHighlightNeedleDraggingEnabled: [{
                type: Input
            }], labelFormat: [{
                type: Input
            }], labelFormatSpecifiers: [{
                type: Input
            }], transitionDuration: [{
                type: Input
            }], highlightValue: [{
                type: Input
            }], actualHighlightValueOpacity: [{
                type: Input
            }], highlightValueOpacity: [{
                type: Input
            }], actualHighlightValueDisplayMode: [{
                type: Input
            }], highlightValueDisplayMode: [{
                type: Input
            }], showToolTipTimeout: [{
                type: Input
            }], showToolTip: [{
                type: Input
            }], font: [{
                type: Input
            }], pixelScalingRatio: [{
                type: Input
            }], actualPixelScalingRatio: [{
                type: Input
            }], formatLabel: [{
                type: Output
            }], alignLabel: [{
                type: Output
            }], valueChanged: [{
                type: Output
            }], highlightValueChanged: [{
                type: Output
            }], actualMinimumValueChange: [{
                type: Output
            }], actualMaximumValueChange: [{
                type: Output
            }] } });

/*
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.
*/
var IgxLinearGaugeCoreModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGaugeCoreModule() {
    }
    IgxLinearGaugeCoreModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGaugeCoreModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreModule, declarations: [IgxLinearGaugeComponent], imports: [CommonModule, IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule], exports: [IgxLinearGaugeComponent,
            IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule] });
    IgxLinearGaugeCoreModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreModule, imports: [[CommonModule, IgxLinearGraphRangeModule,
                IgxNumberFormatSpecifierModule
            ], IgxLinearGraphRangeModule,
            IgxNumberFormatSpecifierModule] });
    return IgxLinearGaugeCoreModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [IgxLinearGaugeComponent],
                    exports: [IgxLinearGaugeComponent,
                        IgxLinearGraphRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    imports: [CommonModule, IgxLinearGraphRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    entryComponents: []
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxLinearGaugeCoreDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGaugeCoreDynamicModule() {
        TypeRegistrar.registerCons('IgxLinearGaugeComponent', IgxLinearGaugeComponent);
    }
    IgxLinearGaugeCoreDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGaugeCoreDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreDynamicModule, imports: [CommonModule, IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxLinearGaugeCoreModule], exports: [IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxLinearGaugeCoreModule] });
    IgxLinearGaugeCoreDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreDynamicModule, imports: [[CommonModule, IgxLinearGraphRangeDynamicModule,
                IgxNumberFormatSpecifierDynamicModule,
                IgxLinearGaugeCoreModule
            ], IgxLinearGraphRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxLinearGaugeCoreModule] });
    return IgxLinearGaugeCoreDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeCoreDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxLinearGraphRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxLinearGaugeCoreModule
                    ],
                    imports: [CommonModule, IgxLinearGraphRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxLinearGaugeCoreModule
                    ],
                    entryComponents: [IgxLinearGaugeComponent]
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxLinearGaugeModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGaugeModule() {
    }
    IgxLinearGaugeModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGaugeModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeModule, imports: [CommonModule, IgxLinearGaugeCoreModule,
            IgxDVInteractivityModule], exports: [IgxLinearGaugeCoreModule,
            IgxDVInteractivityModule] });
    IgxLinearGaugeModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeModule, imports: [[CommonModule, IgxLinearGaugeCoreModule,
                IgxDVInteractivityModule
            ], IgxLinearGaugeCoreModule,
            IgxDVInteractivityModule] });
    return IgxLinearGaugeModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxLinearGaugeCoreModule,
                        IgxDVInteractivityModule
                    ],
                    imports: [CommonModule, IgxLinearGaugeCoreModule,
                        IgxDVInteractivityModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/
var IgxLinearGaugeDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxLinearGaugeDynamicModule() {
    }
    IgxLinearGaugeDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxLinearGaugeDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeDynamicModule, imports: [CommonModule, IgxLinearGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxLinearGaugeModule], exports: [IgxLinearGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxLinearGaugeModule] });
    IgxLinearGaugeDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeDynamicModule, imports: [[CommonModule, IgxLinearGaugeCoreDynamicModule,
                IgxDVInteractivityDynamicModule,
                IgxLinearGaugeModule
            ], IgxLinearGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxLinearGaugeModule] });
    return IgxLinearGaugeDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxLinearGaugeDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxLinearGaugeCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxLinearGaugeModule
                    ],
                    imports: [CommonModule, IgxLinearGaugeCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxLinearGaugeModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/

/*
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.
*/
/**
 * @hidden
 */
var LinearNeedleVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(LinearNeedleVisualDataList, _super);
    function LinearNeedleVisualDataList() {
        return _super.call(this, LinearNeedleVisualData.$, 0) || this;
    }
    LinearNeedleVisualDataList.$t = markType(LinearNeedleVisualDataList, 'LinearNeedleVisualDataList', List$1.$.specialize(LinearNeedleVisualData.$));
    return LinearNeedleVisualDataList;
}(List$1));

/*
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.
*/
/**
 * Enum specifying various preset needle shapes.
 */
var RadialGaugeNeedleShape = /*@__PURE__*/ (function (RadialGaugeNeedleShape) {
    /**
     * No shape.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["None"] = 0] = "None";
    /**
     * A rectangle shape.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["Rectangle"] = 1] = "Rectangle";
    /**
     * A triangle shape.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["Triangle"] = 2] = "Triangle";
    /**
     * A needle shape.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["Needle"] = 3] = "Needle";
    /**
     * A trapezoid shape.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["Trapezoid"] = 4] = "Trapezoid";
    /**
     * A rectangle shape with a bulb at the end.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["RectangleWithBulb"] = 5] = "RectangleWithBulb";
    /**
     * A triangle shape with a bulb at the end.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["TriangleWithBulb"] = 6] = "TriangleWithBulb";
    /**
     * A needle shape with a bulb at the end.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["NeedleWithBulb"] = 7] = "NeedleWithBulb";
    /**
     * A trapezoid shape with a bulb at the end.
     */
    RadialGaugeNeedleShape[RadialGaugeNeedleShape["TrapezoidWithBulb"] = 8] = "TrapezoidWithBulb";
    return RadialGaugeNeedleShape;
})({});
/**
 * @hidden
 */
var RadialGaugeNeedleShape_$type = markEnum('RadialGaugeNeedleShape', 'None,0|Rectangle,1|Triangle,2|Needle,3|Trapezoid,4|RectangleWithBulb,5|TriangleWithBulb,6|NeedleWithBulb,7|TrapezoidWithBulb,8');

/*
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.
*/
/**
 * Enum specifying shapes for the needle pivot.
 */
var RadialGaugePivotShape = /*@__PURE__*/ (function (RadialGaugePivotShape) {
    /**
     * No pivot shape.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["None"] = 0] = "None";
    /**
     * A circle shaped pivot.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["Circle"] = 1] = "Circle";
    /**
     * A circle pivot with a hole in it.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["CircleWithHole"] = 2] = "CircleWithHole";
    /**
     * A circle pivot overlayed on top of the needle.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["CircleOverlay"] = 3] = "CircleOverlay";
    /**
     * A circle pivot with a hole in it overlayed on top of the needle.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["CircleOverlayWithHole"] = 4] = "CircleOverlayWithHole";
    /**
     * A circle pivot rendered underneath the needle.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["CircleUnderlay"] = 5] = "CircleUnderlay";
    /**
     * A circle pivot with a hold in it rendered underneath the needle.
     */
    RadialGaugePivotShape[RadialGaugePivotShape["CircleUnderlayWithHole"] = 6] = "CircleUnderlayWithHole";
    return RadialGaugePivotShape;
})({});
/**
 * @hidden
 */
var RadialGaugePivotShape_$type = markEnum('RadialGaugePivotShape', 'None,0|Circle,1|CircleWithHole,2|CircleOverlay,3|CircleOverlayWithHole,4|CircleUnderlay,5|CircleUnderlayWithHole,6');

/*
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.
*/
/**
 * Enum specifying oversweep shapes.
 */
var RadialGaugeScaleOversweepShape = /*@__PURE__*/ (function (RadialGaugeScaleOversweepShape) {
    /**
     * A default oversweep shape.
     */
    RadialGaugeScaleOversweepShape[RadialGaugeScaleOversweepShape["Auto"] = 0] = "Auto";
    /**
     * A circular oversweep shape.
     */
    RadialGaugeScaleOversweepShape[RadialGaugeScaleOversweepShape["Circular"] = 1] = "Circular";
    /**
     * A fitted oversweep shape.
     */
    RadialGaugeScaleOversweepShape[RadialGaugeScaleOversweepShape["Fitted"] = 2] = "Fitted";
    return RadialGaugeScaleOversweepShape;
})({});
/**
 * @hidden
 */
var RadialGaugeScaleOversweepShape_$type = markEnum('RadialGaugeScaleOversweepShape', 'Auto,0|Circular,1|Fitted,2');

/*
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.
*/
/**
 * Enum specifying shapes that can be used by the backing area of the radial gauge.
 */
var RadialGaugeBackingShape = /*@__PURE__*/ (function (RadialGaugeBackingShape) {
    /**
     * A circular backing shape.
     */
    RadialGaugeBackingShape[RadialGaugeBackingShape["Circular"] = 0] = "Circular";
    /**
     * A fitted backing shape.
     */
    RadialGaugeBackingShape[RadialGaugeBackingShape["Fitted"] = 1] = "Fitted";
    return RadialGaugeBackingShape;
})({});
/**
 * @hidden
 */
var RadialGaugeBackingShape_$type = markEnum('RadialGaugeBackingShape', 'Circular,0|Fitted,1');

/*
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.
*/
/**
 * @hidden
 */
var XamRadialGaugeRange = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamRadialGaugeRange, _super);
    function XamRadialGaugeRange() {
        var _this = _super.call(this) || this;
        _this.propertyChanged = null;
        return _this;
    }
    XamRadialGaugeRange.prototype.ad = function (a, b, c) {
    };
    XamRadialGaugeRange.prototype.ac = function (a, b, c) {
        this.ad(a, b, c);
        if (this.propertyChanged != null) {
            this.propertyChanged(this, new PropertyChangedEventArgs(a));
        }
    };
    XamRadialGaugeRange.$t = markType(XamRadialGaugeRange, 'XamRadialGaugeRange', DependencyObject.$, [INotifyPropertyChanged_$type]);
    XamRadialGaugeRange.q = DeviceUtils.g(1);
    XamRadialGaugeRange.$$p = markDep(DependencyProperty, PropertyMetadata, XamRadialGaugeRange, 'ac', ['Brush:ao:ae', [Brush.$, null], 'EndValue:j:af', [1, NaN], 'InnerEndExtent:k:ag', [1, NaN], 'InnerStartExtent:l:ah', [1, NaN], 'Name:v:ai', [2, null], 'OuterEndExtent:m:aj', [1, NaN], 'OuterStartExtent:n:ak', [1, NaN], 'Outline:ap:al', [Brush.$, null], 'StartValue:o:am', [1, NaN], 'StrokeThickness:p:an', [1, XamRadialGaugeRange.q]]);
    return XamRadialGaugeRange;
}(DependencyObject));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeRangeCollection = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeRangeCollection, _super);
    function RadialGaugeRangeCollection() {
        return _super.call(this, XamRadialGaugeRange.$, 0) || this;
    }
    RadialGaugeRangeCollection.$t = markType(RadialGaugeRangeCollection, 'RadialGaugeRangeCollection', ObservableCollection$1.$.specialize(XamRadialGaugeRange.$));
    return RadialGaugeRangeCollection;
}(ObservableCollection$1));

/*
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.
*/
/**
 * Enum specifying multiple strategies for omitting labels.
 */
var RadialGaugeDuplicateLabelOmissionStrategy = /*@__PURE__*/ (function (RadialGaugeDuplicateLabelOmissionStrategy) {
    /**
     * Omit the last label.
     */
    RadialGaugeDuplicateLabelOmissionStrategy[RadialGaugeDuplicateLabelOmissionStrategy["OmitLast"] = 0] = "OmitLast";
    /**
     * Omit the first label.
     */
    RadialGaugeDuplicateLabelOmissionStrategy[RadialGaugeDuplicateLabelOmissionStrategy["OmitFirst"] = 1] = "OmitFirst";
    /**
     * Omit no labels.
     */
    RadialGaugeDuplicateLabelOmissionStrategy[RadialGaugeDuplicateLabelOmissionStrategy["OmitNeither"] = 2] = "OmitNeither";
    /**
     * Omit both labels.
     */
    RadialGaugeDuplicateLabelOmissionStrategy[RadialGaugeDuplicateLabelOmissionStrategy["OmitBoth"] = 3] = "OmitBoth";
    return RadialGaugeDuplicateLabelOmissionStrategy;
})({});
/**
 * @hidden
 */
var RadialGaugeDuplicateLabelOmissionStrategy_$type = markEnum('RadialGaugeDuplicateLabelOmissionStrategy', 'OmitLast,0|OmitFirst,1|OmitNeither,2|OmitBoth,3');

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeScaler = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeScaler, _super);
    function RadialGaugeScaler(a, b, c, d, e) {
        var _this = _super.call(this) || this;
        _this.e = 0;
        _this.d = 0;
        _this.c = 0;
        _this.b = 0;
        _this.l = 0;
        _this.f = 0;
        _this.a = 0;
        _this.e = c;
        _this.d = d;
        if (isNaN_(_this.e) || isInfinity(_this.e)) {
            _this.e = 135;
        }
        if (isNaN_(_this.d) || isInfinity(_this.d)) {
            _this.d = 45;
        }
        _this.l = e;
        _this.c = a;
        _this.b = b;
        var f = MathUtil.o(_this.e);
        var g = MathUtil.o(_this.d);
        var h = RadialGaugeScaler.k(f, g, _this.l);
        _this.f = h.c;
        _this.a = h.d;
        return _this;
    }
    Object.defineProperty(RadialGaugeScaler.prototype, "i", {
        get: function () {
            return this.f;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(RadialGaugeScaler.prototype, "g", {
        get: function () {
            return this.a;
        },
        enumerable: false,
        configurable: true
    });
    RadialGaugeScaler.k = function (a, b, c) {
        if (c == 1 && b < a) {
            b += Math.PI * 2;
        }
        if (c == 0 && a < b) {
            a += Math.PI * 2;
        }
        if (c == 0) {
            var d = a;
            a = b;
            b = d;
        }
        return new Tuple$2(Number_$type, Number_$type, a, b);
    };
    RadialGaugeScaler.prototype.h = function (a) {
        var b = NaN;
        if (this.c == this.b) {
            b = 0;
        }
        else {
            b = (a - this.c) / (this.b - this.c);
        }
        if (this.l == 0) {
            b = 1 - b;
        }
        var c = this.f + (this.a - this.f) * b;
        return c;
    };
    RadialGaugeScaler.prototype.j = function (a) {
        var b = (a - this.f) / (this.a - this.f);
        if (this.l == 0) {
            b = 1 - b;
        }
        var c = this.c + (this.b - this.c) * b;
        return c;
    };
    RadialGaugeScaler.$t = markType(RadialGaugeScaler, 'RadialGaugeScaler');
    return RadialGaugeScaler;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeNeedleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeNeedleFrame, _super);
    function RadialGaugeNeedleFrame() {
        var _this = _super.call(this) || this;
        _this.ad = 0;
        _this.ac = 0;
        _this.af = 0;
        _this.ab = 0;
        _this.aj = null;
        _this.ak = null;
        _this.aa = 0;
        _this.ae = 0;
        _this.ai = null;
        _this.ah = null;
        _this.d = null;
        _this.b = null;
        _this.t = null;
        _this.e = null;
        _this.f = null;
        _this.x = null;
        _this.v = null;
        _this.w = null;
        _this.z = null;
        _this.y = null;
        _this.u = null;
        _this.h = null;
        _this.g = null;
        _this.c = null;
        _this.s = null;
        _this.a = null;
        _this.q = null;
        _this.r = null;
        _this.i = null;
        _this.l = null;
        _this.m = null;
        _this.p = null;
        _this.j = null;
        _this.k = null;
        _this.n = null;
        _this.o = null;
        _this.d = new MorphSegment();
        _this.b = new MorphSegment();
        _this.t = new MorphSegment();
        _this.e = new MorphSegment();
        _this.f = new MorphSegment();
        _this.x = new MorphSegment();
        _this.v = new MorphSegment();
        _this.w = new MorphSegment();
        _this.z = new MorphSegment();
        _this.y = new MorphSegment();
        _this.u = new MorphSegment();
        _this.h = new MorphSegment();
        _this.g = new MorphSegment();
        _this.c = new MorphSegment();
        _this.s = new MorphSegment();
        _this.a = new MorphSegment();
        _this.q = new MorphSegment();
        _this.r = new MorphSegment();
        _this.i = new MorphSegment();
        _this.l = new MorphSegment();
        _this.m = new MorphSegment();
        _this.p = new MorphSegment();
        _this.j = new MorphSegment();
        _this.k = new MorphSegment();
        _this.n = new MorphSegment();
        _this.o = new MorphSegment();
        return _this;
    }
    RadialGaugeNeedleFrame.prototype.ag = function (a, b, c) {
        this.ad = b.ad + (c.ad - b.ad) * a;
        this.ac = b.ac + (c.ac - b.ac) * a;
        this.af = b.af + (c.af - b.af) * a;
        this.ab = b.ab + (c.ab - b.ab) * a;
        this.aj = BrushUtil.n(b.aj, a, c.aj, 0);
        this.ak = BrushUtil.n(b.ak, a, c.ak, 0);
        this.ae = b.ae + (c.ae - b.ae) * a;
        this.aa = b.aa + (c.aa - b.aa) * a;
        this.ah = BrushUtil.n(b.ah, a, c.ah, 0);
        this.ai = BrushUtil.n(b.ai, a, c.ai, 0);
        this.d.j(a, b.d, c.d);
        this.b.j(a, b.b, c.b);
        this.t.j(a, b.t, c.t);
        this.e.j(a, b.e, c.e);
        this.f.j(a, b.f, c.f);
        this.x.j(a, b.x, c.x);
        this.v.j(a, b.v, c.v);
        this.w.j(a, b.w, c.w);
        this.z.j(a, b.z, c.z);
        this.y.j(a, b.y, c.y);
        this.u.j(a, b.u, c.u);
        this.h.j(a, b.h, c.h);
        this.g.j(a, b.g, c.g);
        this.c.j(a, b.c, c.c);
        this.s.j(a, b.s, c.s);
        this.a.j(a, b.a, c.a);
        this.q.j(a, b.q, c.q);
        this.r.j(a, b.r, c.r);
        this.i.j(a, b.i, c.i);
        this.l.j(a, b.l, c.l);
        this.m.j(a, b.m, c.m);
        this.p.j(a, b.p, c.p);
        this.j.j(a, b.j, c.j);
        this.k.j(a, b.k, c.k);
        this.n.j(a, b.n, c.n);
        this.o.j(a, b.o, c.o);
    };
    RadialGaugeNeedleFrame.prototype.am = function (a, b, c) {
        var d = new PathGeometry();
        var e = new PathFigure();
        var f = { $type: Point_$type, x: NaN, y: NaN };
        f = this.d.l(f, e, a, b, c);
        f = this.b.l(f, e, a, b, c);
        f = this.t.l(f, e, a, b, c);
        f = this.e.l(f, e, a, b, c);
        f = this.f.l(f, e, a, b, c);
        f = this.x.l(f, e, a, b, c);
        f = this.v.l(f, e, a, b, c);
        f = this.w.l(f, e, a, b, c);
        f = this.z.l(f, e, a, b, c);
        f = this.y.l(f, e, a, b, c);
        f = this.u.l(f, e, a, b, c);
        f = this.h.l(f, e, a, b, c);
        f = this.g.l(f, e, a, b, c);
        f = this.c.l(f, e, a, b, c);
        f = this.s.l(f, e, a, b, c);
        f = this.a.l(f, e, a, b, c);
        e._isClosed = true;
        d.c.add(e);
        var g = new PathFigure();
        if (this.q.f.count > 0 || this.r.f.count > 0) {
            f = this.q.l(f, g, a, b, c);
            f = this.r.l(f, g, a, b, c);
            g._isClosed = true;
            d.c.add(g);
        }
        return d;
    };
    RadialGaugeNeedleFrame.prototype.an = function (a, b, c) {
        var d = new PathGeometry();
        var e = { $type: Point_$type, x: NaN, y: NaN };
        var f = new PathFigure();
        if (this.m.f.count > 0 || this.p.f.count > 0) {
            e = this.m.l(e, f, a, b, c);
            e = this.p.l(e, f, a, b, c);
            f._isClosed = true;
            d.c.add(f);
        }
        var g = new PathFigure();
        if (this.n.f.count > 0 || this.o.f.count > 0) {
            e = this.n.l(e, g, a, b, c);
            e = this.o.l(e, g, a, b, c);
            g._isClosed = true;
            d.c.add(g);
        }
        return d;
    };
    RadialGaugeNeedleFrame.prototype.al = function (a, b, c) {
        var d = new PathGeometry();
        var e = { $type: Point_$type, x: NaN, y: NaN };
        var f = new PathFigure();
        if (this.i.f.count > 0 || this.l.f.count > 0) {
            e = this.i.l(e, f, a, b, c);
            e = this.l.l(e, f, a, b, c);
            f._isClosed = true;
            d.c.add(f);
        }
        var g = new PathFigure();
        if (this.j.f.count > 0 || this.k.f.count > 0) {
            e = this.j.l(e, g, a, b, c);
            e = this.k.l(e, g, a, b, c);
            g._isClosed = true;
            d.c.add(g);
        }
        return d;
    };
    RadialGaugeNeedleFrame.$t = markType(RadialGaugeNeedleFrame, 'RadialGaugeNeedleFrame');
    return RadialGaugeNeedleFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeScaleFrameLabel = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeScaleFrameLabel, _super);
    function RadialGaugeScaleFrameLabel() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.b = 0;
        _this.h = null;
        _this.e = 0;
        _this.d = 0;
        _this.f = 0;
        _this.g = 0;
        _this.c = 0;
        _this.i = null;
        _this.a = null;
        return _this;
    }
    RadialGaugeScaleFrameLabel.$t = markType(RadialGaugeScaleFrameLabel, 'RadialGaugeScaleFrameLabel');
    return RadialGaugeScaleFrameLabel;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeRangeFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeRangeFrame, _super);
    function RadialGaugeRangeFrame() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.f = 0;
        _this.g = 0;
        _this.e = 0;
        _this.b = 0;
        _this.c = 0;
        _this.d = 0;
        _this.k = null;
        _this.l = null;
        _this.h = 0;
        return _this;
    }
    RadialGaugeRangeFrame.a = function (a, b, c, d) {
        var e = new RadialGaugeRangeFrame();
        e.k = BrushUtil.n(c.k, a, d.k, 0);
        e.l = BrushUtil.n(c.l, a, d.l, 0);
        e.h = b * c.h + a * d.h;
        e.f = b * c.f + a * d.f;
        e.g = b * c.g + a * d.g;
        e.e = b * c.e + a * d.e;
        e.b = b * c.b + a * d.b;
        e.c = b * c.c + a * d.c;
        e.d = b * c.d + a * d.d;
        return e;
    };
    RadialGaugeRangeFrame.prototype.m = function (a, b, c) {
        var d = new PathGeometry();
        var e = new PathFigure();
        var f = 4;
        var g = 1 / a;
        var h = false;
        if (Math.abs(this.g - this.d) < g) {
            h = true;
        }
        var i = false;
        if (Math.abs(this.f - this.c) < g) {
            i = true;
        }
        var j = false;
        if ((this.b - this.e) >= 2 * Math.PI) {
            j = true;
        }
        if (i && h && j) {
            var k = this.i(0, Math.PI, this.g, a, b, c, true);
            e._startPoint = k.c;
            var l = this.i(Math.PI, 0, this.g, a, b, c, true);
            var m = new PathFigure();
            var n = this.i(0, Math.PI, this.f, a, b, c, false);
            m._startPoint = n.c;
            var o = this.i(Math.PI, 0, this.f, a, b, c, false);
            e._segments.add(k.d);
            e._segments.add(l.d);
            m._segments.add(n.d);
            m._segments.add(o.d);
            d.c.add(e);
            d.c.add(m);
            return d;
        }
        var p = null;
        if (h) {
            var q = this.i(this.e, this.b, Math.max(0, this.g), a, b, c, true);
            e._startPoint = q.c;
            p = q.d;
        }
        else {
            var r = this.j(this.e, this.b, this.g, this.d, a, b, c, true, f);
            e._startPoint = r.c;
            p = r.d;
        }
        var s = null;
        var t = new LineSegment(1);
        if (i) {
            var u = this.i(this.e, this.b, Math.max(0, this.f), a, b, c, false);
            s = u.d;
            t.c = u.c;
        }
        else {
            var v = this.j(this.e, this.b, this.f, this.c, a, b, c, false, f);
            s = v.d;
            t.c = v.c;
        }
        e._segments.add(p);
        e._segments.add(t);
        e._segments.add(s);
        e._isFilled = true;
        e._isClosed = true;
        d.c.add(e);
        return d;
    };
    RadialGaugeRangeFrame.prototype.j = function (a, b, c, d, e, f, g, h, i) {
        var j = new PolyLineSegment();
        var k = e * c;
        var l = e * d;
        var m = Math.max(k, l);
        var n = m + m;
        var o = Math.asin(i / n) * 2;
        var p;
        var q;
        var r;
        var s = l - k;
        var t = Math.abs(b - a);
        var u = j._points;
        if (h) {
            var v = void 0;
            for (v = a; v < b; v += o) {
                r = (v - a) / t;
                q = k + r * s;
                p = { $type: Point_$type, x: f + Math.cos(v) * q, y: g + Math.sin(v) * q };
                u.add(p);
            }
            v = b;
            r = (v - a) / t;
            q = k + r * s;
            p = { $type: Point_$type, x: f + Math.cos(v) * q, y: g + Math.sin(v) * q };
            u.add(p);
        }
        else {
            var w = void 0;
            for (w = b; w > a; w -= o) {
                r = (w - b) / t;
                q = l + r * s;
                p = { $type: Point_$type, x: f + Math.cos(w) * q, y: g + Math.sin(w) * q };
                u.add(p);
            }
            w = a;
            r = (w - b) / t;
            q = l + r * s;
            p = { $type: Point_$type, x: f + Math.cos(w) * q, y: g + Math.sin(w) * q };
            u.add(p);
        }
        return new Tuple$2(Point_$type, PathSegment.$, u._inner[0], j);
    };
    RadialGaugeRangeFrame.prototype.i = function (a, b, c, d, e, f, g) {
        var h = c * d;
        var i = new ArcSegment();
        i.d = g ? 1 : 0;
        i.b = b - a > Math.PI;
        i.f = new Size(1, h, h);
        var j = g ? b : a;
        var k = g ? a : b;
        i.e = { $type: Point_$type, x: e + Math.cos(j) * h, y: f + Math.sin(j) * h };
        var l = { $type: Point_$type, x: e + Math.cos(k) * h, y: f + Math.sin(k) * h };
        return new Tuple$2(Point_$type, PathSegment.$, l, i);
    };
    RadialGaugeRangeFrame.$t = markType(RadialGaugeRangeFrame, 'RadialGaugeRangeFrame');
    return RadialGaugeRangeFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeScaleFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeScaleFrame, _super);
    function RadialGaugeScaleFrame() {
        var _this = _super.call(this) || this;
        _this.l = null;
        _this.k = null;
        _this.c = null;
        _this.g = null;
        _this.h = null;
        _this.f = null;
        _this.i = null;
        _this.j = null;
        _this.t = 0;
        _this.e = null;
        _this.o = null;
        _this.p = null;
        _this.m = null;
        _this.ab = 0;
        _this.y = 0;
        _this.ad = 0;
        _this.ac = 0;
        _this.v = 0;
        _this.u = 0;
        _this.aa = 0;
        _this.x = 0;
        _this.ak = null;
        _this.ae = 0;
        _this.w = 0;
        _this.ai = null;
        _this.aj = null;
        _this.d = null;
        _this.z = 0;
        _this.r = null;
        _this.r = new List$1(RadialGaugeRangeFrame.$, 0);
        _this.l = new Array(0);
        _this.k = new Array(0);
        _this.c = new Array(0);
        _this.g = new Array(0);
        _this.h = new Array(0);
        _this.f = new Array(0);
        _this.i = new Array(0);
        _this.j = new Array(0);
        _this.e = new Array(0);
        _this.d = new Array(0);
        _this.o = new RadialGaugeScaleFrameLabel();
        _this.p = new RadialGaugeScaleFrameLabel();
        _this.m = new RadialGaugeScaleFrameLabel();
        return _this;
    }
    RadialGaugeScaleFrame.prototype.a = function (a, b, c, d) {
        var e = Math.max(c.length, d.length);
        var f = Math.min(c.length, d.length);
        if (b.length != e) {
            b = new Array(e);
        }
        var g = 0;
        if (c.length > 0) {
            g = c[c.length - 1];
        }
        var h = 0;
        if (d.length > 0) {
            h = d[d.length - 1];
        }
        var i = c.length > d.length;
        var j = 0;
        for (j = 0; j < f; j++) {
            b[j] = c[j] + (d[j] - c[j]) * a;
        }
        var k;
        var l;
        for (j = f; j < e; j++) {
            if (i) {
                k = c[j];
                l = h;
            }
            else {
                k = g;
                l = d[j];
            }
            b[j] = k + (l - k) * a;
        }
        return b;
    };
    RadialGaugeScaleFrame.prototype.b = function (a, b, c, d) {
        var e = Math.max(c.length, d.length);
        var f = Math.min(c.length, d.length);
        if (b.length != e) {
            b = new Array(e);
        }
        var g = null;
        if (c.length > 0) {
            g = c[c.length - 1];
        }
        var h = null;
        if (d.length > 0) {
            h = d[d.length - 1];
        }
        var i = c.length > d.length;
        var j = 0;
        for (j = 0; j < f; j++) {
            b[j] = d[j];
        }
        var k;
        var l;
        for (j = f; j < e; j++) {
            if (i) {
                k = c[j];
                l = h;
            }
            else {
                k = g;
                l = d[j];
            }
            if (l != null) {
                b[j] = l;
            }
            else {
                b[j] = k;
            }
        }
        return b;
    };
    RadialGaugeScaleFrame.prototype.af = function (a, b, c) {
        var _this = this;
        this.aj = BrushUtil.n(b.aj, a, c.aj, 0);
        this.ak = BrushUtil.n(b.ak, a, c.ak, 0);
        this.ai = BrushUtil.n(b.ai, a, c.ai, 0);
        this.ab = this.s(a, b.ab, c.ab);
        this.y = this.s(a, b.y, c.y);
        this.aa = this.s(a, b.aa, c.aa);
        this.x = this.s(a, b.x, c.x);
        this.z = this.s(a, b.z, c.z);
        this.t = this.s(a, b.t, c.t);
        this.ad = this.s(a, b.ad, c.ad);
        this.ac = this.s(a, b.ac, c.ac);
        this.ae = this.s(a, b.ae, c.ae);
        this.v = this.s(a, b.v, c.v);
        this.u = this.s(a, b.u, c.u);
        this.w = this.s(a, b.w, c.w);
        this.l = this.a(a, this.l, b.l, c.l);
        this.k = this.a(a, this.k, b.k, c.k);
        this.c = this.a(a, this.c, b.c, c.c);
        this.h = this.a(a, this.h, b.h, c.h);
        this.f = this.a(a, this.f, b.f, c.f);
        this.i = this.a(a, this.i, b.i, c.i);
        this.j = this.a(a, this.j, b.j, c.j);
        this.g = this.b(a, this.g, b.g, c.g);
        this.e = InterpolationUtil.a(FontInfo.$, this.e, a, b.e, c.e, function () { return null; }, function (d, e, f, g) { return _this.q(d, f, g); });
        this.d = InterpolationUtil.a(Brush.$, this.d, a, b.d, c.d, function () { return null; }, function (d, e, f, g) { return _this.ah(d, f, g); });
        this.p = this.n(a, b.p, c.p);
        this.o = this.n(a, b.o, c.o);
        this.m = this.n(a, b.m, c.m);
        this.ag(a, this.r, b.r, c.r);
    };
    RadialGaugeScaleFrame.prototype.ag = function (a, b, c, d) {
        InterpolationUtil.d(RadialGaugeRangeFrame.$, b, a, c, d, function () { return new RadialGaugeRangeFrame(); }, RadialGaugeRangeFrame.a);
    };
    RadialGaugeScaleFrame.prototype.ah = function (a, b, c) {
        if (b == null && c == null) {
            return null;
        }
        else {
            return BrushUtil.n(b, a, c, 0);
        }
    };
    RadialGaugeScaleFrame.prototype.s = function (a, b, c) {
        return b + (c - b) * a;
    };
    RadialGaugeScaleFrame.prototype.q = function (a, b, c) {
        var d = new FontInfo();
        FontUtil.interpolateFont(d, a, b, c);
        return d;
    };
    RadialGaugeScaleFrame.prototype.n = function (a, b, c) {
        b.i = this.ah(a, b.i, c.i);
        b.c = this.s(a, b.c, c.c);
        b.b = this.s(a, b.b, c.b);
        b.f = this.s(a, b.f, c.f);
        b.g = this.s(a, b.g, c.g);
        b.e = this.s(a, b.e, c.e);
        b.d = this.s(a, b.d, c.d);
        b.h = c.h;
        b.a = this.q(a, b.a, c.a);
        return b;
    };
    RadialGaugeScaleFrame.$t = markType(RadialGaugeScaleFrame, 'RadialGaugeScaleFrame');
    return RadialGaugeScaleFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var BackingFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(BackingFrame, _super);
    function BackingFrame() {
        var _this = _super.call(this) || this;
        _this.l = null;
        _this.m = null;
        _this.h = 0;
        _this.g = 0;
        _this.c = 0;
        _this.f = 0;
        _this.e = 0;
        _this.d = 0;
        _this.b = 0;
        return _this;
    }
    BackingFrame.prototype.k = function (a, b, c) {
        this.h = b.h + (c.h - b.h) * a;
        this.l = BrushUtil.n(b.l, a, c.l, 0);
        this.m = BrushUtil.n(b.m, a, c.m, 0);
        this.g = b.g + (c.g - b.g) * a;
        this.c = b.c + (c.c - b.c) * a;
        this.e = b.e + (c.e - b.e) * a;
        this.d = b.d + (c.d - b.d) * a;
        this.b = b.b + (c.b - b.b) * a;
        this.f = b.f + (c.f - b.f) * a;
    };
    BackingFrame.prototype.i = function (a, b, c, d) {
        var _this = this;
        a._startPoint = { $type: Point_$type, x: b * this.e + c, y: 0 + d };
        var e = ((function () {
            var $ret = new ArcSegment();
            $ret.e = { $type: Point_$type, x: -1 * b * _this.e + c, y: 0 + d };
            $ret.b = false;
            $ret.d = 1;
            $ret.f = new Size(1, b * _this.e, b * _this.e);
            return $ret;
        })());
        var f = ((function () {
            var $ret = new ArcSegment();
            $ret.e = { $type: Point_$type, x: b * _this.e + c, y: 0 + d };
            $ret.b = false;
            $ret.d = 1;
            $ret.f = new Size(1, b * _this.e, b * _this.e);
            return $ret;
        })());
        a._segments.add(e);
        a._segments.add(f);
        a._isClosed = true;
    };
    BackingFrame.prototype.n = function (a, b, c) {
        var d = new PathGeometry();
        var e = new PathFigure();
        if (this.g == this.c) {
            this.i(e, a, b, c);
        }
        else {
            var f = this.e;
            var g = this.d;
            var h = this.g;
            var i = this.c;
            var j = this.f;
            var k = h;
            var l = i;
            h -= j;
            i += j;
            if ((i - h) > 2 * Math.PI) {
                this.i(e, a, b, c);
            }
            else {
                this.j(e, a, b, c);
            }
        }
        e._isClosed = true;
        d.c.add(e);
        return d;
    };
    BackingFrame.prototype.a = function (a, b) {
        return Math.abs(a - b) < 1E-05;
    };
    BackingFrame.prototype.j = function (a, b, c, d) {
        var e = this.e;
        var f = this.d;
        var g = this.g;
        var h = this.c;
        var i = this.f;
        var j = g;
        var k = h;
        g -= i;
        h += i;
        var l = Math.sin(g);
        var m = Math.cos(g);
        var n = Math.sin(h);
        var o = Math.cos(h);
        var p = this.b;
        var q = b * e;
        var r = b * f;
        if (p * 2 > (q - r)) {
            p = (q - r) / 2;
        }
        var s = p / (b - p);
        var t = Math.atan(s);
        var u = q - p;
        var v = r + p;
        var w = Math.sin(g - t);
        var x = Math.sin(g + t);
        var y = Math.cos(g - t);
        var z = Math.cos(g + t);
        var aa = Math.sin(h - t);
        var ab = Math.sin(h + t);
        var ac = Math.cos(h - t);
        var ad = Math.cos(h + t);
        var ae = Math.sin(j);
        var af = Math.sin(k);
        var ag = Math.cos(j);
        var ah = Math.cos(k);
        a._startPoint = { $type: Point_$type, x: m * u + c, y: l * u + d };
        var ai = ((function () {
            var $ret = new ArcSegment();
            $ret.e = { $type: Point_$type, x: z * q + c, y: x * q + d };
            $ret.b = (t * 2) > Math.PI;
            $ret.d = 1;
            $ret.f = new Size(1, p, p);
            return $ret;
        })());
        var aj = ((function () {
            var $ret = new ArcSegment();
            $ret.e = { $type: Point_$type, x: ac * q + c, y: aa * q + d };
            $ret.b = ((h - t) - (g + t)) > Math.PI;
            $ret.d = 1;
            $ret.f = new Size(1, q, q);
            return $ret;
        })());
        var ak = ((function () {
            var $ret = new ArcSegment();
            $ret.e = { $type: Point_$type, x: o * u + c, y: n * u + d };
            $ret.b = (t * 2) > Math.PI;
            $ret.d = 1;
            $ret.f = new Size(1, p, p);
            return $ret;
        })());
        var al = { $type: Point_$type, x: ah * q + c, y: af * q + d };
        var am = { $type: Point_$type, x: ah * r + c, y: af * r + d };
        var an = { $type: Point_$type, x: o * q + c, y: n * q + d };
        var ao = { $type: Point_$type, x: o * r + c, y: n * r + d };
        var ap = an.y;
        var aq = an.x;
        if (al.x - am.x != 0) {
            aq = c;
            var ar = (al.y - am.y) / (al.x - am.x);
            ap = ar * (c - an.x) + an.y;
        }
        ao = { $type: Point_$type, x: c, y: ap };
        if (this.a(ao.x, an.x) && this.a(ao.y, an.y)) {
            ao = am;
        }
        var as = GeometryUtil.r(ao, an, { $type: Point_$type, x: c, y: d }, r);
        var at = { $type: Point_$type, x: ag * q + c, y: ae * q + d };
        var au = { $type: Point_$type, x: ag * r + c, y: ae * r + d };
        var av = { $type: Point_$type, x: m * q + c, y: l * q + d };
        var aw = { $type: Point_$type, x: m * r + c, y: l * r + d };
        var ax = av.y;
        var ay = av.x;
        if (at.x - au.x != 0) {
            ay = c;
            var az = (at.y - au.y) / (at.x - au.x);
            ax = az * (c - av.x) + av.y;
        }
        aw = { $type: Point_$type, x: ay, y: ax };
        if (this.a(aw.x, av.x) && this.a(aw.y, av.y)) {
            aw = au;
        }
        var a0 = GeometryUtil.r(aw, av, { $type: Point_$type, x: c, y: d }, r);
        if (isNaN_(as.c.x) || isNaN_(as.c.y) || isNaN_(as.d.x) || isNaN_(as.d.y) || isNaN_(a0.c.x) || isNaN_(a0.c.y) || isNaN_(a0.d.x) || isNaN_(a0.d.y)) {
            a._startPoint = { $type: Point_$type, x: m * q + c, y: l * q + d };
            a._segments.add(aj);
            var a1 = ((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: m * q + c, y: l * q + d };
                return $ret;
            })());
            a._segments.add(a1);
        }
        else {
            var a2_1;
            var a3_1;
            if ((Math.pow(as.c.x - an.x, 2) + Math.pow(as.c.y - an.y, 2)) < (Math.pow(as.d.x - an.x, 2) + Math.pow(as.d.y - an.y, 2))) {
                a2_1 = as.c;
            }
            else {
                a2_1 = as.d;
            }
            if ((Math.pow(a0.c.x - av.x, 2) + Math.pow(a0.c.y - av.y, 2)) < (Math.pow(a0.d.x - av.x, 2) + Math.pow(a0.d.y - av.y, 2))) {
                a3_1 = a0.c;
            }
            else {
                a3_1 = a0.d;
            }
            if ((Math.pow(a3_1.x - an.x, 2) + Math.pow(a3_1.y - an.y, 2)) <= (Math.pow(a2_1.x - an.x, 2) + Math.pow(a2_1.y - an.y, 2))) {
                a._startPoint = { $type: Point_$type, x: m * q + c, y: l * q + d };
                a._segments.add(aj);
                var a4 = ((function () {
                    var $ret = new LineSegment(1);
                    $ret.c = { $type: Point_$type, x: m * q + c, y: l * q + d };
                    return $ret;
                })());
                a._segments.add(a4);
            }
            else {
                a._segments.add(ai);
                a._segments.add(aj);
                a._segments.add(ak);
                var a5 = ((function () {
                    var $ret = new LineSegment(1);
                    $ret.c = a2_1;
                    return $ret;
                })());
                a._segments.add(a5);
                var a6_1 = GeometryUtil.j({ $type: Point_$type, x: c, y: d }, a2_1);
                var a7_1 = GeometryUtil.j({ $type: Point_$type, x: c, y: d }, a3_1);
                while (a7_1 < a6_1) {
                    a7_1 += 2 * Math.PI;
                }
                var a8 = ((function () {
                    var $ret = new ArcSegment();
                    $ret.e = a3_1;
                    $ret.b = a7_1 - a6_1 > Math.PI;
                    $ret.d = 1;
                    $ret.f = new Size(1, r, r);
                    return $ret;
                })());
                a._segments.add(a8);
                var a9 = ((function () {
                    var $ret = new LineSegment(1);
                    $ret.c = { $type: Point_$type, x: m * u + c, y: l * u + d };
                    return $ret;
                })());
                a._segments.add(a9);
            }
        }
    };
    BackingFrame.$t = markType(BackingFrame, 'BackingFrame');
    return BackingFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeFrame = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeFrame, _super);
    function RadialGaugeFrame() {
        var _this = _super.call(this) || this;
        _this.c = null;
        _this.b = null;
        _this.d = null;
        _this.a = null;
        _this.e = 0;
        _this.c = new RadialGaugeNeedleFrame();
        _this.b = new RadialGaugeNeedleFrame();
        _this.d = new RadialGaugeScaleFrame();
        _this.a = new BackingFrame();
        return _this;
    }
    RadialGaugeFrame.prototype.f = function (a, b, c) {
        this.e = b.e + (c.e - b.e) * a;
        this.c.ag(a, b.c, c.c);
        this.b.ag(a, b.b, c.b);
        this.d.af(a, b.d, c.d);
        this.a.k(a, b.a, c.a);
    };
    RadialGaugeFrame.$t = markType(RadialGaugeFrame, 'RadialGaugeFrame');
    return RadialGaugeFrame;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var FormatRadialGaugeLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(FormatRadialGaugeLabelEventArgs, _super);
    function FormatRadialGaugeLabelEventArgs() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.actualMinimumValue = 0;
        _this.actualMaximumValue = 0;
        _this.startAngle = 0;
        _this.endAngle = 0;
        _this.angle = 0;
        _this.value = 0;
        _this.label = null;
        _this.extent = 0;
        return _this;
    }
    FormatRadialGaugeLabelEventArgs.$t = markType(FormatRadialGaugeLabelEventArgs, 'FormatRadialGaugeLabelEventArgs', EventArgs.$);
    return FormatRadialGaugeLabelEventArgs;
}(EventArgs));

/*
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.
*/
/**
 * @hidden
 */
var AlignRadialGaugeLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(AlignRadialGaugeLabelEventArgs, _super);
    function AlignRadialGaugeLabelEventArgs() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.width = 0;
        _this.height = 0;
        _this.offsetX = 0;
        _this.offsetY = 0;
        _this.brush = null;
        _this.font = 0;
        return _this;
    }
    AlignRadialGaugeLabelEventArgs.$t = markType(AlignRadialGaugeLabelEventArgs, 'AlignRadialGaugeLabelEventArgs', FormatRadialGaugeLabelEventArgs.$);
    return AlignRadialGaugeLabelEventArgs;
}(FormatRadialGaugeLabelEventArgs));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeNeedleParameters = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeNeedleParameters, _super);
    function RadialGaugeNeedleParameters() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.m = 0;
        _this.k = 0;
        _this.n = 0;
        _this.l = 0;
        _this.e = 0;
        _this.d = 0;
        _this.q = 0;
        _this.p = 0;
        _this.j = 0;
        _this.b = 0;
        _this.c = 0;
        _this.i = 0;
        _this.r = null;
        _this.s = null;
        _this.h = 0;
        _this.t = null;
        _this.u = null;
        _this.o = 0;
        _this.g = 0;
        _this.f = 0;
        return _this;
    }
    RadialGaugeNeedleParameters.prototype.a = function () {
        var a = new RadialGaugeNeedleParameters();
        a.m = this.m;
        a.k = this.k;
        a.n = this.n;
        a.l = this.l;
        a.e = this.e;
        a.d = this.d;
        a.q = this.q;
        a.p = this.p;
        a.b = this.b;
        a.c = this.c;
        a.i = this.i;
        a.r = this.r;
        a.s = this.s;
        a.h = this.h;
        a.t = this.t;
        a.u = this.u;
        a.o = this.o;
        a.g = this.g;
        a.f = this.f;
        return a;
    };
    RadialGaugeNeedleParameters.$t = markType(RadialGaugeNeedleParameters, 'RadialGaugeNeedleParameters');
    return RadialGaugeNeedleParameters;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RadialGaugeNeedlePreparer = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RadialGaugeNeedlePreparer, _super);
    function RadialGaugeNeedlePreparer() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.b = null;
        return _this;
    }
    RadialGaugeNeedlePreparer.prototype.e = function (a) {
        var b = this.b;
        a.aj = b.t;
        a.ak = b.u;
        a.ah = b.r;
        a.ai = b.s;
        a.ae = b.o;
        a.aa = b.h;
        switch (b.b) {
            case 0:
                this.i(a);
                break;
            case 1:
                this.j(a);
                break;
            case 2:
                this.n(a);
                break;
            case 4:
                this.l(a);
                break;
            case 5:
                this.k(a);
                break;
            case 3:
                this.g(a);
                break;
            case 7:
                this.h(a);
                break;
            case 8:
                this.m(a);
                break;
            case 6:
                this.o(a);
                break;
        }
        switch (b.c) {
            case 3:
                this.d(a, true, false);
                break;
            case 5:
                this.d(a, false, false);
                break;
            case 4:
                this.d(a, true, true);
                break;
            case 6:
                this.d(a, false, true);
                break;
        }
    };
    RadialGaugeNeedlePreparer.prototype.d = function (a, b, c) {
        var d = this.a();
        var e = d.i;
        var f = d.g;
        var g = d.f;
        var h = a.m;
        if (b) {
            h = a.i;
        }
        var i = h.f;
        h.b = true;
        h.c = true;
        h.d = false;
        h.h = e;
        i.add({ $type: Point_$type, x: 0 + e, y: 0 });
        i.add({ $type: Point_$type, x: 0 - e, y: 0 });
        h = a.p;
        if (b) {
            h = a.l;
        }
        i = h.f;
        h.b = true;
        h.c = true;
        h.d = true;
        h.h = e;
        i.add({ $type: Point_$type, x: 0 - e, y: 0 });
        i.add({ $type: Point_$type, x: 0 + e, y: 0 });
        if (c) {
            h = a.n;
            if (b) {
                h = a.j;
            }
            i = h.f;
            h.b = true;
            h.c = false;
            h.d = false;
            h.h = g;
            i.add({ $type: Point_$type, x: 0 + g, y: 0 });
            i.add({ $type: Point_$type, x: 0 - g, y: 0 });
            h = a.o;
            if (b) {
                h = a.k;
            }
            i = h.f;
            h.b = true;
            h.c = false;
            h.d = true;
            h.h = g;
            i.add({ $type: Point_$type, x: 0 - g, y: 0 });
            i.add({ $type: Point_$type, x: 0 + g, y: 0 });
        }
    };
    RadialGaugeNeedlePreparer.prototype.o = function (a) {
        this.f(a, false, true, false, true);
    };
    RadialGaugeNeedlePreparer.prototype.m = function (a) {
        this.f(a, false, false, true, true);
    };
    RadialGaugeNeedlePreparer.prototype.l = function (a) {
        this.f(a, false, false, true, false);
    };
    RadialGaugeNeedlePreparer.prototype.n = function (a) {
        this.f(a, false, true, false, false);
    };
    RadialGaugeNeedlePreparer.prototype.h = function (a) {
        this.f(a, false, false, false, true);
    };
    RadialGaugeNeedlePreparer.prototype.c = function (a, b, c, d, e) {
        var f = 0;
        if (c == a) {
            f = 0;
        }
        else {
            f = (e - a) / (c - a);
        }
        var g = b + (d - b) * f;
        return g;
    };
    RadialGaugeNeedlePreparer.prototype.f = function (a, b, c, d, e) {
        this.p(a);
        var f = this.a();
        a.ad = f.m;
        a.ac = f.k;
        a.af = 0;
        if (!isNaN_(f.l)) {
            a.af = Math.max(a.af, f.l);
        }
        if (!isNaN_(f.i)) {
            a.af = Math.max(a.af, f.i);
        }
        if (!isNaN_(f.q)) {
            a.af = Math.max(a.af, f.q);
        }
        if (!isNaN_(f.e)) {
            a.af = Math.max(a.af, f.e);
        }
        if (c) {
            f.p = f.k;
            f.q = 0;
        }
        if (d) {
            f.p = f.k;
            f.q = f.l;
        }
        if (b) {
            var g = Math.max(f.n, f.l);
            f.n = g;
            f.l = g;
            f.p = f.k;
            f.q = f.l;
        }
        if (isNaN_(f.p)) {
            f.p = f.k;
        }
        var h = f.c == 1 || f.c == 2;
        var i = f.n;
        var j = f.l;
        if (!d && !b) {
            j = 0;
        }
        var k = f.q;
        var l = f.i;
        var m = f.m;
        var n = f.k;
        var o = f.d;
        var p = f.p;
        var q = f.e;
        var r = true;
        var s = true;
        if (isNaN_(p)) {
            r = false;
            p = n;
        }
        if (isNaN_(o)) {
            s = false;
            o = m;
        }
        var t = f.f;
        var u = f.g;
        var v = 0;
        var w = u;
        var x = u;
        var y = this.c(m, i, p, k, u);
        var z = y;
        var aa = f.c == 2;
        if (h) {
            var ab = GeometryUtil.r({ $type: Point_$type, x: m, y: i }, { $type: Point_$type, x: p, y: k }, { $type: Point_$type, x: 0, y: 0 }, l);
            if (isNaN_(ab.c.x) || isNaN_(ab.c.y) || isNaN_(ab.d.x) || isNaN_(ab.d.y)) {
                h = false;
            }
            else {
                var ac = ab.c;
                var ad = ab.d;
                w = ac.x;
                x = ad.x;
                y = ac.y;
                z = ad.y;
                if (w > x) {
                    var ae = w;
                    w = x;
                    x = ae;
                    ae = y;
                    y = z;
                    z = ae;
                }
            }
        }
        if (aa) {
            var af = GeometryUtil.r({ $type: Point_$type, x: m, y: i }, { $type: Point_$type, x: p, y: k }, { $type: Point_$type, x: 0, y: 0 }, t);
            if ((isNaN_(af.c.x) || isNaN_(af.c.y) || isNaN_(af.d.x) || isNaN_(af.d.y)) || h) {
                aa = true;
            }
            else {
                aa = false;
            }
        }
        if (m > x || n < w) {
            h = false;
            w = m;
            x = m;
        }
        var ag = false;
        var ah = false;
        if (h && m >= w) {
            ag = true;
        }
        if (h && n <= x) {
            ah = true;
        }
        if (isNaN_(o) || o > w) {
            o = w;
        }
        if (p < x) {
            p = x;
        }
        var ai = e;
        var aj = l;
        var ak = l;
        if (o + q > w) {
            ai = false;
        }
        var al = o;
        var am = i;
        var an = o;
        var ao = i;
        var ap = w;
        var aq = x;
        var ar = y;
        var as = z;
        var at = w;
        var au = x;
        var av = y;
        var aw = z;
        if (ai) {
            var ax = GeometryUtil.r({ $type: Point_$type, x: m, y: i }, { $type: Point_$type, x: p, y: k }, { $type: Point_$type, x: o, y: 0 }, q);
            if ((!isNaN_(ax.c.x) && !isNaN_(ax.c.y) && !isNaN_(ax.d.x) && !isNaN_(ax.d.y))) {
                ai = true;
                al = ax.c.x;
                am = ax.c.y;
                an = ax.d.x;
                ao = ax.d.y;
                if (al > an) {
                    var ay = al;
                    al = an;
                    an = ay;
                    ay = am;
                    am = ao;
                    ao = ay;
                }
            }
            else {
                ai = false;
            }
        }
        if (ag) {
            ai = false;
        }
        if (ai && m >= al) {
            ag = true;
            aj = q;
            ap = al;
            ar = am;
            aq = an;
            as = ao;
        }
        if (ai && n <= an) {
            ah = true;
            ak = q;
            ak = q;
            at = al;
            av = am;
            au = an;
            aw = ao;
        }
        var az = m;
        var a0 = a.a;
        var a1 = a0.f;
        var a2 = i;
        if (ag) {
            az = ap;
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = aj;
            o = ap;
            m = ap;
            a2 = ar;
            i = ar;
            h = false;
        }
        if (ah) {
            p = au;
            n = au;
            h = false;
        }
        var a3 = ag || ah || h;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.d;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = al;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.b;
        a1 = a0.f;
        if (ai) {
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = q;
        }
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = an;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.t;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = w;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.e;
        a1 = a0.f;
        if (a3) {
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = l;
        }
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = x;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.f;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = p;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.x;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.v;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: a2 });
        az = n;
        a2 = this.c(p, k, n, j, az);
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a0 = a.w;
        a1 = a0.f;
        if (ah) {
            az = au;
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = ak;
        }
        a1.add({ $type: Point_$type, x: az, y: a2 });
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.z;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = p;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.y;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.u;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = x;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.h;
        a1 = a0.f;
        if (a3) {
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = l;
        }
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = w;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.g;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = an;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.c;
        a1 = a0.f;
        if (ai) {
            a0.b = true;
            a0.d = false;
            a0.c = false;
            a0.h = q;
        }
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = al;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.s;
        a1 = a0.f;
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        az = m;
        a2 = this.c(m, i, p, k, az);
        a1.add({ $type: Point_$type, x: az, y: -1 * a2 });
        a0 = a.q;
        a1 = a0.f;
        if (aa && a3) {
            a0.b = true;
            a0.c = true;
            a0.d = false;
            a0.h = t;
            a1.add({ $type: Point_$type, x: 0 + t, y: 0 });
            a1.add({ $type: Point_$type, x: 0 - t, y: 0 });
        }
        a0 = a.r;
        a1 = a0.f;
        if (aa && a3) {
            a0.b = true;
            a0.c = true;
            a0.d = true;
            a0.h = t;
            a1.add({ $type: Point_$type, x: 0 - t, y: 0 });
            a1.add({ $type: Point_$type, x: 0 + t, y: 0 });
        }
    };
    RadialGaugeNeedlePreparer.prototype.g = function (a) {
        this.f(a, false, false, false, false);
    };
    RadialGaugeNeedlePreparer.prototype.k = function (a) {
        this.f(a, true, false, false, true);
    };
    RadialGaugeNeedlePreparer.prototype.a = function () {
        var a = this.b;
        var b = this.b.a();
        var c = 0;
        var d = 0.48;
        var e = NaN;
        var f = NaN;
        var g = 0.15;
        var h = 0.1;
        var i = 0.1;
        var j = 0.1;
        var k = 0.14;
        var l = 0.06;
        switch (a.b) {
            case 3:
                f = 0.4;
                break;
            case 4:
                h = 0.06;
                i = 0.02;
                break;
            case 7:
                f = 0.4;
                c = -0.3;
                e = -0.2;
                k = 0.14;
                break;
            case 5:
                c = -0.3;
                e = -0.2;
                k = 0.14;
                break;
            case 8:
                i = 0.06;
                c = -0.3;
                e = -0.2;
                k = 0.14;
                break;
            case 6:
                c = -0.3;
                e = -0.2;
                k = 0.14;
                break;
        }
        var m = a.m;
        var n = a.k;
        var o = a.c == 1 || a.c == 2;
        if (isNaN_(m)) {
            m = c;
        }
        if (isNaN_(n)) {
            n = d;
        }
        var p = Math.min(m, n);
        var q = Math.max(m, n);
        m = p;
        n = q;
        var r = a.n;
        if (isNaN_(r)) {
            r = h;
        }
        var s = a.l;
        if (isNaN_(s)) {
            s = i;
        }
        var t = a.i;
        var u = a.f;
        if (isNaN_(t)) {
            t = g;
        }
        if (isNaN_(u)) {
            u = j;
        }
        var v = Math.max(t, u);
        var w = Math.min(t, u);
        t = v;
        u = w;
        var x = a.d;
        if (isNaN_(x)) {
            x = e;
        }
        if (!isNaN_(x)) {
            if (x < m) {
                x = NaN;
            }
            if (x > 0 && m <= 0) {
                x = NaN;
            }
            if (x > n) {
                x = n;
            }
        }
        var y = a.p;
        if (isNaN_(y)) {
            y = f;
        }
        if (!isNaN_(y)) {
            if (y > n) {
                y = NaN;
            }
            if (y < 0 && n >= 0) {
                y = NaN;
            }
            if (y < m) {
                y = m;
            }
        }
        var z = 0;
        if (m > 0) {
            z = m;
        }
        if (n < 0) {
            z = m;
        }
        if (t <= 0) {
            t = 0;
        }
        var aa = a.e;
        var ab = a.q;
        if (isNaN_(aa)) {
            aa = k;
        }
        if (isNaN_(ab)) {
            ab = l;
        }
        b.i = t / 2;
        b.f = u / 2;
        b.d = x;
        b.p = y;
        b.m = m;
        b.k = n;
        b.g = z;
        b.n = r / 2;
        b.l = s / 2;
        b.q = ab / 2;
        b.e = aa / 2;
        return b;
    };
    RadialGaugeNeedlePreparer.prototype.j = function (a) {
        this.f(a, true, false, false, false);
    };
    RadialGaugeNeedlePreparer.prototype.p = function (a) {
        a.a.k();
        a.d.k();
        a.b.k();
        a.t.k();
        a.e.k();
        a.f.k();
        a.x.k();
        a.v.k();
        a.w.k();
        a.z.k();
        a.y.k();
        a.u.k();
        a.h.k();
        a.g.k();
        a.c.k();
        a.s.k();
        a.q.k();
        a.r.k();
        a.i.k();
        a.l.k();
        a.m.k();
        a.p.k();
        a.j.k();
        a.k.k();
        a.n.k();
        a.o.k();
    };
    RadialGaugeNeedlePreparer.prototype.i = function (a) {
        this.p(a);
        var b = 0;
        var c = 0;
        var d = 0;
        var e = 0;
        var f = 0;
        var g = 0;
        var h = 0;
        var i = a.a;
        var j = i.f;
        j.add({ $type: Point_$type, x: b, y: h });
        j.add({ $type: Point_$type, x: b, y: g });
        i = a.d;
        j = i.f;
        j.add({ $type: Point_$type, x: b, y: g });
        j.add({ $type: Point_$type, x: d, y: g });
        i = a.b;
        j = i.f;
        j.add({ $type: Point_$type, x: d, y: g });
        j.add({ $type: Point_$type, x: d, y: g });
        var k = f;
        var l = f;
        i = a.t;
        j = i.f;
        j.add({ $type: Point_$type, x: d, y: g });
        j.add({ $type: Point_$type, x: k, y: g });
        i = a.e;
        j = i.f;
        j.add({ $type: Point_$type, x: k, y: g });
        j.add({ $type: Point_$type, x: l, y: g });
        i = a.f;
        j = i.f;
        j.add({ $type: Point_$type, x: l, y: g });
        j.add({ $type: Point_$type, x: e, y: g });
        i = a.x;
        j = i.f;
        j.add({ $type: Point_$type, x: e, y: g });
        j.add({ $type: Point_$type, x: e, y: g });
        i = a.v;
        j = i.f;
        j.add({ $type: Point_$type, x: e, y: g });
        j.add({ $type: Point_$type, x: c, y: g });
        i = a.w;
        j = i.f;
        j.add({ $type: Point_$type, x: c, y: g });
        j.add({ $type: Point_$type, x: c, y: h });
        i = a.z;
        j = i.f;
        j.add({ $type: Point_$type, x: c, y: h });
        j.add({ $type: Point_$type, x: e, y: h });
        i = a.y;
        j = i.f;
        j.add({ $type: Point_$type, x: e, y: h });
        j.add({ $type: Point_$type, x: e, y: h });
        i = a.u;
        j = i.f;
        j.add({ $type: Point_$type, x: e, y: h });
        j.add({ $type: Point_$type, x: l, y: h });
        i = a.h;
        j = i.f;
        j.add({ $type: Point_$type, x: l, y: h });
        j.add({ $type: Point_$type, x: k, y: h });
        i = a.g;
        j = i.f;
        j.add({ $type: Point_$type, x: k, y: h });
        j.add({ $type: Point_$type, x: d, y: h });
        i = a.c;
        j = i.f;
        j.add({ $type: Point_$type, x: d, y: h });
        j.add({ $type: Point_$type, x: d, y: h });
        i = a.s;
        j = i.f;
        j.add({ $type: Point_$type, x: d, y: h });
        j.add({ $type: Point_$type, x: b, y: h });
    };
    RadialGaugeNeedlePreparer.$t = markType(RadialGaugeNeedlePreparer, 'RadialGaugeNeedlePreparer');
    return RadialGaugeNeedlePreparer;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var GaugeVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(GaugeVisualData, _super);
    function GaugeVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._scalePath = null;
        _this._needlePath = null;
        _this._highlightNeedlePath = null;
        _this._backingPath = null;
        _this._underlayPath = null;
        _this._overlayPath = null;
        _this._scale = null;
        _this._scaleLabels = null;
        _this._titleLabels = null;
        _this._subtitleLabels = null;
        _this._highlightLabels = null;
        _this._scaleTickmarks = null;
        _this._needle = null;
        _this._highlightNeedle = null;
        _this._ranges = null;
        _this._name = null;
        _this._viewport = null;
        return _this;
    }
    Object.defineProperty(GaugeVisualData.prototype, "scalePath", {
        get: function () {
            return this._scalePath;
        },
        set: function (a) {
            this._scalePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "needlePath", {
        get: function () {
            return this._needlePath;
        },
        set: function (a) {
            this._needlePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "highlightNeedlePath", {
        get: function () {
            return this._highlightNeedlePath;
        },
        set: function (a) {
            this._highlightNeedlePath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "backingPath", {
        get: function () {
            return this._backingPath;
        },
        set: function (a) {
            this._backingPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "underlayPath", {
        get: function () {
            return this._underlayPath;
        },
        set: function (a) {
            this._underlayPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "overlayPath", {
        get: function () {
            return this._overlayPath;
        },
        set: function (a) {
            this._overlayPath = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "scale", {
        get: function () {
            return this._scale;
        },
        set: function (a) {
            this._scale = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "scaleLabels", {
        get: function () {
            return this._scaleLabels;
        },
        set: function (a) {
            this._scaleLabels = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "titleLabels", {
        get: function () {
            return this._titleLabels;
        },
        set: function (a) {
            this._titleLabels = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "subtitleLabels", {
        get: function () {
            return this._subtitleLabels;
        },
        set: function (a) {
            this._subtitleLabels = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "highlightLabels", {
        get: function () {
            return this._highlightLabels;
        },
        set: function (a) {
            this._highlightLabels = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "scaleTickmarks", {
        get: function () {
            return this._scaleTickmarks;
        },
        set: function (a) {
            this._scaleTickmarks = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "needle", {
        get: function () {
            return this._needle;
        },
        set: function (a) {
            this._needle = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "highlightNeedle", {
        get: function () {
            return this._highlightNeedle;
        },
        set: function (a) {
            this._highlightNeedle = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "ranges", {
        get: function () {
            return this._ranges;
        },
        set: function (a) {
            this._ranges = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(GaugeVisualData.prototype, "name", {
        get: function () {
            return this._name;
        },
        set: function (a) {
            this._name = a;
        },
        enumerable: false,
        configurable: true
    });
    GaugeVisualData.prototype.scaleByViewport = function () {
        var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f;
        if (this.scalePath != null) {
            this.scalePath.scaleByViewport(this.viewport);
        }
        if (this.needlePath != null) {
            this.needlePath.scaleByViewport(this.viewport);
        }
        if (this.highlightNeedlePath != null) {
            this.highlightNeedlePath.scaleByViewport(this.viewport);
        }
        if (this.backingPath != null) {
            this.backingPath.scaleByViewport(this.viewport);
        }
        if (this.underlayPath != null) {
            this.underlayPath.scaleByViewport(this.viewport);
        }
        if (this.overlayPath != null) {
            this.overlayPath.scaleByViewport(this.viewport);
        }
        if (this.scaleLabels != null) {
            try {
                for (var _g = __values(fromEnum(this.scaleLabels)), _h = _g.next(); !_h.done; _h = _g.next()) {
                    var a = _h.value;
                    a.scaleByViewport(this.viewport);
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (_h && !_h.done && (_a = _g.return))
                        _a.call(_g);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        if (this.titleLabels != null) {
            try {
                for (var _j = __values(fromEnum(this.titleLabels)), _k = _j.next(); !_k.done; _k = _j.next()) {
                    var b = _k.value;
                    b.scaleByViewport(this.viewport);
                }
            }
            catch (e_2_1) {
                e_2 = { error: e_2_1 };
            }
            finally {
                try {
                    if (_k && !_k.done && (_b = _j.return))
                        _b.call(_j);
                }
                finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
        }
        if (this.subtitleLabels != null) {
            try {
                for (var _l = __values(fromEnum(this.subtitleLabels)), _m = _l.next(); !_m.done; _m = _l.next()) {
                    var c = _m.value;
                    c.scaleByViewport(this.viewport);
                }
            }
            catch (e_3_1) {
                e_3 = { error: e_3_1 };
            }
            finally {
                try {
                    if (_m && !_m.done && (_c = _l.return))
                        _c.call(_l);
                }
                finally {
                    if (e_3)
                        throw e_3.error;
                }
            }
        }
        if (this.highlightLabels != null) {
            try {
                for (var _o = __values(fromEnum(this.highlightLabels)), _p = _o.next(); !_p.done; _p = _o.next()) {
                    var d = _p.value;
                    d.scaleByViewport(this.viewport);
                }
            }
            catch (e_4_1) {
                e_4 = { error: e_4_1 };
            }
            finally {
                try {
                    if (_p && !_p.done && (_d = _o.return))
                        _d.call(_o);
                }
                finally {
                    if (e_4)
                        throw e_4.error;
                }
            }
        }
        if (this.scaleTickmarks != null) {
            try {
                for (var _q = __values(fromEnum(this.scaleTickmarks)), _r = _q.next(); !_r.done; _r = _q.next()) {
                    var e = _r.value;
                    if (e.tickPath != null) {
                        e.tickPath.scaleByViewport(this.viewport);
                    }
                }
            }
            catch (e_5_1) {
                e_5 = { error: e_5_1 };
            }
            finally {
                try {
                    if (_r && !_r.done && (_e = _q.return))
                        _e.call(_q);
                }
                finally {
                    if (e_5)
                        throw e_5.error;
                }
            }
        }
        if (this.ranges != null) {
            try {
                for (var _s = __values(fromEnum(this.ranges)), _t = _s.next(); !_t.done; _t = _s.next()) {
                    var f = _t.value;
                    if (f.rangePath != null) {
                        f.rangePath.scaleByViewport(this.viewport);
                    }
                }
            }
            catch (e_6_1) {
                e_6 = { error: e_6_1 };
            }
            finally {
                try {
                    if (_t && !_t.done && (_f = _s.return))
                        _f.call(_s);
                }
                finally {
                    if (e_6)
                        throw e_6.error;
                }
            }
        }
    };
    GaugeVisualData.prototype.serialize = function () {
        var e_7, _a, e_8, _b, e_9, _c, e_10, _d, e_11, _e, e_12, _f;
        var a = new StringBuilder(0);
        var b = true;
        a.u("{");
        if (this.scalePath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("scalePath: ");
            a.u(this.scalePath.serialize());
        }
        if (this.needlePath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("needlePath: ");
            a.u(this.needlePath.serialize());
        }
        if (this.highlightNeedlePath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("highlightNeedlePath: ");
            a.u(this.highlightNeedlePath.serialize());
        }
        if (this.backingPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("backingPath: ");
            a.u(this.backingPath.serialize());
        }
        if (this.underlayPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("underlayPath: ");
            a.u(this.underlayPath.serialize());
        }
        if (this.overlayPath != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("overlayPath: ");
            a.u(this.overlayPath.serialize());
        }
        if (this.scaleLabels != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var c = true;
            a.l("scaleLabels: [");
            try {
                for (var _g = __values(fromEnum(this.scaleLabels)), _h = _g.next(); !_h.done; _h = _g.next()) {
                    var d = _h.value;
                    if (c) {
                        c = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(d.serialize());
                }
            }
            catch (e_7_1) {
                e_7 = { error: e_7_1 };
            }
            finally {
                try {
                    if (_h && !_h.done && (_a = _g.return))
                        _a.call(_g);
                }
                finally {
                    if (e_7)
                        throw e_7.error;
                }
            }
            a.u("]");
        }
        if (this.titleLabels != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var e = true;
            a.l("titleLabels: [");
            try {
                for (var _j = __values(fromEnum(this.titleLabels)), _k = _j.next(); !_k.done; _k = _j.next()) {
                    var f = _k.value;
                    if (e) {
                        e = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(f.serialize());
                }
            }
            catch (e_8_1) {
                e_8 = { error: e_8_1 };
            }
            finally {
                try {
                    if (_k && !_k.done && (_b = _j.return))
                        _b.call(_j);
                }
                finally {
                    if (e_8)
                        throw e_8.error;
                }
            }
            a.u("]");
        }
        if (this.subtitleLabels != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var g = true;
            a.l("subtitleLabels: [");
            try {
                for (var _l = __values(fromEnum(this.subtitleLabels)), _m = _l.next(); !_m.done; _m = _l.next()) {
                    var h = _m.value;
                    if (g) {
                        g = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(h.serialize());
                }
            }
            catch (e_9_1) {
                e_9 = { error: e_9_1 };
            }
            finally {
                try {
                    if (_m && !_m.done && (_c = _l.return))
                        _c.call(_l);
                }
                finally {
                    if (e_9)
                        throw e_9.error;
                }
            }
            a.u("]");
        }
        if (this.highlightLabels != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var i = true;
            a.l("highlightLabels: [");
            try {
                for (var _o = __values(fromEnum(this.highlightLabels)), _p = _o.next(); !_p.done; _p = _o.next()) {
                    var j = _p.value;
                    if (i) {
                        i = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(j.serialize());
                }
            }
            catch (e_10_1) {
                e_10 = { error: e_10_1 };
            }
            finally {
                try {
                    if (_p && !_p.done && (_d = _o.return))
                        _d.call(_o);
                }
                finally {
                    if (e_10)
                        throw e_10.error;
                }
            }
            a.u("]");
        }
        if (this.scaleTickmarks != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var k = true;
            a.l("scaleTickmarks: [");
            try {
                for (var _q = __values(fromEnum(this.scaleTickmarks)), _r = _q.next(); !_r.done; _r = _q.next()) {
                    var l = _r.value;
                    if (k) {
                        k = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(l.serialize());
                }
            }
            catch (e_11_1) {
                e_11 = { error: e_11_1 };
            }
            finally {
                try {
                    if (_r && !_r.done && (_e = _q.return))
                        _e.call(_q);
                }
                finally {
                    if (e_11)
                        throw e_11.error;
                }
            }
            a.u("]");
        }
        if (this.needle != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("needle: ");
            a.u(this.needle.serialize());
        }
        if (this.highlightNeedle != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("highlightNeedle: ");
            a.u(this.highlightNeedle.serialize());
        }
        if (this.ranges != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            var m = true;
            a.l("ranges: [");
            try {
                for (var _s = __values(fromEnum(this.ranges)), _t = _s.next(); !_t.done; _t = _s.next()) {
                    var n = _t.value;
                    if (m) {
                        m = false;
                    }
                    else {
                        a.l(", ");
                    }
                    a.u(n.serialize());
                }
            }
            catch (e_12_1) {
                e_12 = { error: e_12_1 };
            }
            finally {
                try {
                    if (_t && !_t.done && (_f = _s.return))
                        _f.call(_s);
                }
                finally {
                    if (e_12)
                        throw e_12.error;
                }
            }
            a.u("]");
        }
        if (this.name != null) {
            if (b) {
                b = false;
            }
            else {
                a.l(", ");
            }
            a.l("name: '");
            a.l(this.name);
            a.u("'");
        }
        if (b) {
            b = false;
        }
        else {
            a.l(", ");
        }
        a.l("viewport: {");
        a.l("left: " + this.viewport.left + ", top: " + this.viewport.top + ", width: " + this.viewport.width + ", height: " + this.viewport.height);
        a.u("}");
        a.u("}");
        return a.toString();
    };
    Object.defineProperty(GaugeVisualData.prototype, "viewport", {
        get: function () {
            return this._viewport;
        },
        set: function (a) {
            this._viewport = a;
        },
        enumerable: false,
        configurable: true
    });
    GaugeVisualData.$t = markType(GaugeVisualData, 'GaugeVisualData');
    return GaugeVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var ScaleLabelVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ScaleLabelVisualData, _super);
    function ScaleLabelVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._labelValue = null;
        _this._labelSize = null;
        _this._labelPosition = null;
        _this._appearance = null;
        return _this;
    }
    Object.defineProperty(ScaleLabelVisualData.prototype, "labelValue", {
        get: function () {
            return this._labelValue;
        },
        set: function (a) {
            this._labelValue = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(ScaleLabelVisualData.prototype, "labelSize", {
        get: function () {
            return this._labelSize;
        },
        set: function (a) {
            this._labelSize = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(ScaleLabelVisualData.prototype, "labelPosition", {
        get: function () {
            return this._labelPosition;
        },
        set: function (a) {
            this._labelPosition = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(ScaleLabelVisualData.prototype, "appearance", {
        get: function () {
            return this._appearance;
        },
        set: function (a) {
            this._appearance = a;
        },
        enumerable: false,
        configurable: true
    });
    ScaleLabelVisualData.prototype.scaleByViewport = function (a) {
        this.labelPosition = new PointData((this.labelPosition.x - a.left) / a.width, (this.labelPosition.y - a.top) / a.height);
        this.labelSize = new SizeData((this.labelSize.width) / a.width, (this.labelSize.height) / a.height);
    };
    ScaleLabelVisualData.prototype.serialize = function () {
        return "{ labelValue: '" + this.labelValue + "', labelSize: { width: " + this.labelSize.width + ", height: " + this.labelSize.height + "}, labelPosition: { x: " + this.labelPosition.x + ", y: " + this.labelPosition.y + "}, appearance: " + this.appearance.serialize() + "}";
    };
    ScaleLabelVisualData.$t = markType(ScaleLabelVisualData, 'ScaleLabelVisualData');
    return ScaleLabelVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var ScaleLabelVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ScaleLabelVisualDataList, _super);
    function ScaleLabelVisualDataList() {
        return _super.call(this, ScaleLabelVisualData.$, 0) || this;
    }
    ScaleLabelVisualDataList.$t = markType(ScaleLabelVisualDataList, 'ScaleLabelVisualDataList', List$1.$.specialize(ScaleLabelVisualData.$));
    return ScaleLabelVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var ScaleTickmarkVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ScaleTickmarkVisualData, _super);
    function ScaleTickmarkVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._tickPath = null;
        return _this;
    }
    Object.defineProperty(ScaleTickmarkVisualData.prototype, "tickPath", {
        get: function () {
            return this._tickPath;
        },
        set: function (a) {
            this._tickPath = a;
        },
        enumerable: false,
        configurable: true
    });
    ScaleTickmarkVisualData.prototype.serialize = function () {
        return "{ tickPath: " + this.tickPath.serialize() + "}";
    };
    ScaleTickmarkVisualData.$t = markType(ScaleTickmarkVisualData, 'ScaleTickmarkVisualData');
    return ScaleTickmarkVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var ScaleTickmarkVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ScaleTickmarkVisualDataList, _super);
    function ScaleTickmarkVisualDataList() {
        return _super.call(this, ScaleTickmarkVisualData.$, 0) || this;
    }
    ScaleTickmarkVisualDataList.$t = markType(ScaleTickmarkVisualDataList, 'ScaleTickmarkVisualDataList', List$1.$.specialize(ScaleTickmarkVisualData.$));
    return ScaleTickmarkVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var RangeVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RangeVisualData, _super);
    function RangeVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._rangePath = null;
        return _this;
    }
    Object.defineProperty(RangeVisualData.prototype, "rangePath", {
        get: function () {
            return this._rangePath;
        },
        set: function (a) {
            this._rangePath = a;
        },
        enumerable: false,
        configurable: true
    });
    RangeVisualData.prototype.serialize = function () {
        return "{ rangePath: " + this.rangePath.serialize() + "}";
    };
    RangeVisualData.$t = markType(RangeVisualData, 'RangeVisualData');
    return RangeVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var RangeVisualDataList = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(RangeVisualDataList, _super);
    function RangeVisualDataList() {
        return _super.call(this, RangeVisualData.$, 0) || this;
    }
    RangeVisualDataList.$t = markType(RangeVisualDataList, 'RangeVisualDataList', List$1.$.specialize(RangeVisualData.$));
    return RangeVisualDataList;
}(List$1));

/*
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.
*/
/**
 * @hidden
 */
var NeedleVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(NeedleVisualData, _super);
    function NeedleVisualData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._angle = 0;
        return _this;
    }
    Object.defineProperty(NeedleVisualData.prototype, "angle", {
        get: function () {
            return this._angle;
        },
        set: function (a) {
            this._angle = a;
        },
        enumerable: false,
        configurable: true
    });
    NeedleVisualData.prototype.serialize = function () {
        return "{ angle: " + this.angle.toString() + "}";
    };
    NeedleVisualData.$t = markType(NeedleVisualData, 'NeedleVisualData');
    return NeedleVisualData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var XamRadialGauge = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamRadialGauge, _super);
    function XamRadialGauge() {
        var _this = _super.call(this) || this;
        _this.propertyChanged = null;
        _this.alignTitle = null;
        _this.alignSubtitle = null;
        _this.alignHighlightLabel = null;
        _this.formatTitle = null;
        _this.formatSubtitle = null;
        _this.formatHighlightLabel = null;
        _this._view = null;
        _this.bc = null;
        _this.c4 = 0;
        _this.c3 = 100;
        _this.bw = 0;
        _this.c2 = 0.5;
        _this.bt = 1;
        _this.bx = 0;
        _this.formatLabel = null;
        _this.am = null;
        _this.alignLabel = null;
        _this.valueChanged = null;
        _this.highlightValueChanged = null;
        _this.cb = false;
        _this.a9 = null;
        _this.mn = new Size(1, NaN, NaN);
        _this.ml = null;
        _this.cw = null;
        _this.cx = null;
        _this.cu = null;
        _this.cv = null;
        _this.a4 = null;
        _this.a3 = null;
        _this.a2 = null;
        _this.cz = new Stack$1(TextBlock.$);
        _this.c0 = new Stack$1(TextBlock.$);
        _this.c1 = new Stack$1(TextBlock.$);
        _this.cy = new Stack$1(TextBlock.$);
        _this.ct = new List$1(Path.$, 0);
        _this.cs = new List$1(Path.$, 0);
        _this.cr = new List$1(Path.$, 0);
        _this.c7 = 0;
        _this.b3 = null;
        _this.b0 = null;
        _this.bz = null;
        _this.b2 = null;
        _this.b4 = null;
        _this.by = null;
        _this.b1 = null;
        _this.c6 = NaN;
        _this.c5 = 1;
        _this.em = 0;
        _this.ao = null;
        _this.ap = null;
        _this.an = null;
        _this.bj = XamRadialGauge.bm();
        _this.bk = XamRadialGauge.bn();
        _this.bl = XamRadialGauge.bo();
        _this.view = new XamRadialGaugeView(_this);
        _this.view.az();
        _this.ml = Rect.empty;
        _this.a4 = new RadialGaugeFrame();
        _this.a3 = new RadialGaugeFrame();
        _this.a2 = new RadialGaugeFrame();
        _this.ranges = new RadialGaugeRangeCollection();
        _this.cb = true;
        _this.bc = new DoubleAnimator(0, 1, _this.fg);
        var a = _this.bc;
        a.propertyChanged = delegateCombine(a.propertyChanged, runOn(_this, _this.il));
        _this.ab = XamRadialGauge.$;
        _this.bz = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.ar);
            $ret.c = runOn(_this.view, _this.view.as);
            $ret.d = runOn(_this.view, _this.view.at);
            $ret.j = runOn(_this.view, _this.view.bm);
            return $ret;
        })());
        _this.b4 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.ar);
            $ret.c = runOn(_this.view, _this.view.as);
            $ret.d = runOn(_this.view, _this.view.bh);
            $ret.j = runOn(_this.view, _this.view.bo);
            return $ret;
        })());
        _this.b2 = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.ar);
            $ret.c = runOn(_this.view, _this.view.as);
            $ret.d = runOn(_this.view, _this.view.bg);
            $ret.j = runOn(_this.view, _this.view.bn);
            return $ret;
        })());
        _this.by = ((function () {
            var $ret = new StackPool$1(TextBlock.$);
            $ret.b = runOn(_this.view, _this.view.ar);
            $ret.c = runOn(_this.view, _this.view.as);
            $ret.d = runOn(_this.view, _this.view.ap);
            $ret.j = runOn(_this.view, _this.view.bl);
            return $ret;
        })());
        _this.b3 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.a2);
            $ret.c = runOn(_this.view, _this.view.a3);
            $ret.d = runOn(_this.view, _this.view.a4);
            $ret.j = runOn(_this.view, _this.view.ce);
            return $ret;
        })());
        _this.b0 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.a2);
            $ret.c = runOn(_this.view, _this.view.a3);
            $ret.d = runOn(_this.view, _this.view.a4);
            $ret.j = runOn(_this.view, _this.view.ce);
            return $ret;
        })());
        _this.b1 = ((function () {
            var $ret = new StackPool$1(Path.$);
            $ret.b = runOn(_this.view, _this.view.a7);
            $ret.c = runOn(_this.view, _this.view.a8);
            $ret.d = runOn(_this.view, _this.view.a9);
            $ret.j = runOn(_this.view, _this.view.cf);
            return $ret;
        })());
        _this.a9 = new RadialGaugeScaler(_this.da, _this.c9, _this.ez, _this.eu, _this.mi);
        return _this;
    }
    XamRadialGauge.prototype.iz = function (a) {
        this.i5(a);
    };
    XamRadialGauge.prototype.i5 = function (a) {
        var b = this.propertyChanged;
        if (b != null) {
            b(this, new PropertyChangedEventArgs(a));
        }
    };
    XamRadialGauge.bn = function () {
        if (XamRadialGauge.bh != null) {
            return XamRadialGauge.bh;
        }
        XamRadialGauge.bh = ((function () {
            var $ret = new FontInfo();
            $ret.f = FontDefaults.gaugesSubtitleSize;
            $ret.t = FontDefaults.gaugesFontStyle;
            $ret.q = FontDefaults.gaugesFontFamily;
            $ret.v = FontDefaults.gaugesFontWeight;
            $ret.r = FontDefaults.gaugesFontStretch;
            $ret.u = FontDefaults.gaugesFontVariant;
            return $ret;
        })());
        return XamRadialGauge.bh;
    };
    XamRadialGauge.bo = function () {
        if (XamRadialGauge.bi != null) {
            return XamRadialGauge.bi;
        }
        XamRadialGauge.bi = ((function () {
            var $ret = new FontInfo();
            $ret.f = FontDefaults.gaugesTitleSize;
            $ret.t = FontDefaults.gaugesFontStyle;
            $ret.q = FontDefaults.gaugesFontFamily;
            $ret.v = FontDefaults.gaugesFontWeight;
            $ret.r = FontDefaults.gaugesFontStretch;
            $ret.u = FontDefaults.gaugesFontVariant;
            return $ret;
        })());
        return XamRadialGauge.bi;
    };
    XamRadialGauge.bm = function () {
        if (XamRadialGauge.bg != null) {
            return XamRadialGauge.bg;
        }
        XamRadialGauge.bg = ((function () {
            var $ret = new FontInfo();
            $ret.f = FontDefaults.gaugesTitleSize;
            $ret.t = FontDefaults.gaugesFontStyle;
            $ret.q = FontDefaults.gaugesFontFamily;
            $ret.v = FontDefaults.gaugesFontWeight;
            $ret.r = FontDefaults.gaugesFontStretch;
            $ret.u = FontDefaults.gaugesFontVariant;
            return $ret;
        })());
        return XamRadialGauge.bg;
    };
    XamRadialGauge.prototype.av = function (a, b, c, d, e, f) {
        var g = new FormatRadialGaugeLabelEventArgs();
        g.startAngle = this.a9.i;
        g.endAngle = this.a9.g;
        g.actualMinimumValue = this.da;
        g.actualMaximumValue = this.c9;
        g.angle = MathUtil.o(b);
        g.value = a;
        var h = a;
        if (!d) {
            g.label = c;
        }
        else {
            if (e == null) {
                h = Math.round(g.value * 100) / 100;
            }
            g.label = (h).toString();
            if (e != null) {
                g.label = e.i(h);
            }
        }
        if (f != null) {
            f(this, g);
        }
        return g;
    };
    XamRadialGauge.prototype.aq = function (a, b, c, d, e, f) {
        var g = c.h(this.em);
        var h = new AlignRadialGaugeLabelEventArgs();
        h.startAngle = this.a9.i;
        h.endAngle = this.a9.g;
        h.actualMinimumValue = this.da;
        h.actualMaximumValue = this.c9;
        h.angle = d.angle;
        h.value = d.value;
        h.label = d.label;
        h.extent = a;
        h.brush = b;
        h.font = g;
        var i = c.b(h.font);
        var j = f(((function () {
            var $ret = new TextBlock();
            $ret.al = h.label;
            return $ret;
        })()), i);
        h.width = j.width;
        h.height = j.height;
        h.offsetX = -1 * (j.width / 2);
        h.offsetY = -1 * (j.height / 2);
        var k = h.offsetX;
        var l = h.offsetY;
        if (e != null) {
            e(this, h);
            if (h.font != g) {
                h.font *= this.em;
                i = i.b(h.font);
                j = f(((function () {
                    var $ret = new TextBlock();
                    $ret.al = h.label;
                    return $ret;
                })()), i);
                h.width = j.width;
                h.height = j.height;
                h.offsetX = -1 * (j.width / 2) + (h.offsetX - k);
                h.offsetY = -1 * (j.height / 2) + (h.offsetY - l);
            }
        }
        return h;
    };
    XamRadialGauge.prototype.onDetachedFromUI = function () {
        this.view.ay();
    };
    XamRadialGauge.prototype.onAttachedToUI = function () {
        this.view.au();
    };
    XamRadialGauge.prototype.e2 = function (a) {
        return this.a9.h(a);
    };
    XamRadialGauge.prototype.fe = function (a) {
        return this.a9.j(a);
    };
    XamRadialGauge.prototype.dn = function (a) {
        var b = this.mm;
        var c = Math.min(b.width / 2, b.height / 2) * this.ep;
        var d = this.mj();
        var e = d.x;
        var f = d.y;
        var g = GeometryUtil.j({ $type: Point_$type, x: e, y: f }, a);
        if (this.a9 != null && g < this.a9.i) {
            g += Math.PI * 2;
        }
        if (this.a9 != null && g > this.a9.g) {
            g -= Math.PI * 2;
        }
        var h = this.fe(g);
        return h;
    };
    XamRadialGauge.prototype.mk = function (a, b) {
        var c = this.e2(a);
        var d = Math.min(this.mm.width / 2, this.mm.height / 2) * this.ep * b;
        var e = this.mj();
        var f = e.x + Math.cos(c) * d;
        var g = e.y + Math.sin(c) * d;
        return { $type: Point_$type, x: f, y: g };
    };
    XamRadialGauge.prototype.l7 = function (a, b) {
        if (b != null && b.count > 0) {
            return b.item(a % b.count);
        }
        else {
            return null;
        }
    };
    Object.defineProperty(XamRadialGauge.prototype, "view", {
        get: function () {
            return this._view;
        },
        set: function (a) {
            this._view = a;
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.il = function (a, b) {
        this.fd = this.bc.o;
    };
    Object.defineProperty(XamRadialGauge.prototype, "da", {
        get: function () {
            return this.c4;
        },
        set: function (a) {
            this.c4 = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "c9", {
        get: function () {
            return this.c3;
        },
        set: function (a) {
            this.c3 = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "c8", {
        get: function () {
            return this.c2;
        },
        set: function (a) {
            var b = this.c2;
            this.c2 = a;
            if (b != this.c2) {
                this.iy("ActualHighlightValueOpacity", b, a);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "ds", {
        get: function () {
            return this.c(XamRadialGauge.j3);
        },
        set: function (a) {
            this.h(XamRadialGauge.j3, a);
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.jg = function () {
        this.c8 = isNaN_(this.ds) ? 0.5 : Math.max(0, Math.min(this.ds, 1));
    };
    Object.defineProperty(XamRadialGauge.prototype, "bu", {
        get: function () {
            return this.bt;
        },
        set: function (a) {
            this.bt = a;
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.jf = function () {
        if (this.bv != 1) {
            if (isNaN_(this.dr) || isInfinity(this.dr)) {
                this.bu = 1;
            }
            else {
                this.bu = 2;
            }
        }
        else {
            this.bu = 1;
        }
    };
    XamRadialGauge.prototype.is = function () {
        this.bw = 0;
        this.view.b9().an = null;
    };
    Object.defineProperty(XamRadialGauge.prototype, "ej", {
        get: function () {
            return this.c(XamRadialGauge.k1);
        },
        set: function (a) {
            this.h(XamRadialGauge.k1, a);
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.refresh = function () {
        this.cb = true;
        this.view.bb();
    };
    XamRadialGauge.prototype.iy = function (a, b, c) {
        switch (a) {
            case XamRadialGauge.$$p[41]:
            case XamRadialGauge.$$p[44]:
            case XamRadialGauge.$$p[45]:
            case XamRadialGauge.$$p[47]:
            case XamRadialGauge.$$p[0]:
            case XamRadialGauge.$$p[4]:
            case XamRadialGauge.$$p[62]:
            case XamRadialGauge.$$p[78]:
            case XamRadialGauge.$$p[34]:
            case XamRadialGauge.$$p[83]:
            case XamRadialGauge.$$p[71]:
                this.view.av(a, b, c);
                break;
            case XamRadialGauge.$$p[59]:
                this.view.a0(b, c);
                break;
            case XamRadialGauge.$$p[60]:
                this.view.a1(b, c);
                break;
            case "PixelScalingRatio":
                if (isNaN_(DeviceUtils.a(this.eo))) {
                    this.db = 1;
                }
                else {
                    this.db = DeviceUtils.a(this.eo);
                }
                break;
            case "ActualPixelScalingRatio":
                this.view.a5();
                break;
        }
        switch (a) {
            case XamRadialGauge.$$p[29]:
            case XamRadialGauge.$$p[30]:
                if (this.gi != null) {
                    this.am = new BindingFormatter();
                    this.am.j = this.gi;
                    this.am.d = this.ah;
                }
                else {
                    this.am = null;
                }
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[74]:
            case XamRadialGauge.$$p[75]:
                if (this.hu != null) {
                    this.ao = new BindingFormatter();
                    this.ao.j = this.hu;
                    this.ao.d = this.ai;
                }
                else {
                    this.ao = null;
                }
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[86]:
            case XamRadialGauge.$$p[87]:
                if (this.h9 != null) {
                    this.ap = new BindingFormatter();
                    this.ap.j = this.h9;
                    this.ap.d = this.aj;
                }
                else {
                    this.ap = null;
                }
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[17]:
            case XamRadialGauge.$$p[18]:
                if (this.f2 != null) {
                    this.an = new BindingFormatter();
                    this.an.j = this.f2;
                    this.an.d = this.ag;
                }
                else {
                    this.an = null;
                }
                this.cb = true;
                this.view.bb();
                break;
            case "SubtitleTextStyle":
                this.cb = true;
                this.view.bb();
                break;
            case "TitleTextStyle":
                this.cb = true;
                this.view.bb();
                break;
            case "HighlightLabelTextStyle":
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[92]:
                if (this.valueChanged != null) {
                    this.valueChanged(this, new DoubleValueChangedEventArgs(b, c));
                }
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[22]:
                {
                    if (this.highlightValueChanged != null) {
                        this.highlightValueChanged(this, new DoubleValueChangedEventArgs(b, c));
                    }
                    var d = this.bu == 2;
                    this.jf();
                    var e = this.bu == 2;
                    this.cb = true;
                    if (!d && e) {
                        this.bw = 1;
                    }
                    else if (d && !e) {
                        this.bw = 4;
                    }
                    this.view.bb();
                    break;
                }
            case XamRadialGauge.$$p[21]:
                {
                    var f = this.bu == 2;
                    this.jf();
                    var g = this.bu == 2;
                    this.cb = true;
                    if (!f && g) {
                        this.bw = 1;
                    }
                    else if (f && !g) {
                        this.bw = 4;
                    }
                    this.view.bb();
                    break;
                }
            case "HighlighValueOpacity":
                this.jg();
                break;
            case "ActualHighlightValueOpacity":
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[0]:
            case XamRadialGauge.$$p[4]:
            case XamRadialGauge.$$p[7]:
            case XamRadialGauge.$$p[6]:
            case XamRadialGauge.$$p[2]:
            case XamRadialGauge.$$p[3]:
            case XamRadialGauge.$$p[5]:
            case XamRadialGauge.$$p[1]:
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[69]:
            case XamRadialGauge.$$p[67]:
            case XamRadialGauge.$$p[63]:
            case XamRadialGauge.$$p[65]:
            case XamRadialGauge.$$p[66]:
                this.a9 = new RadialGaugeScaler(this.da, this.c9, this.ez, this.eu, this.mi);
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[33]:
            case XamRadialGauge.$$p[32]:
                var h = this.dz;
                var i = this.dx;
                if (isInfinity(h) || isNaN_(h)) {
                    h = 0;
                }
                if (isInfinity(i) || isNaN_(i)) {
                    i = 100;
                }
                this.da = Math.min(h, i);
                this.c9 = Math.max(h, i);
                this.a9 = new RadialGaugeScaler(this.da, this.c9, this.ez, this.eu, this.mi);
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[23]:
            case XamRadialGauge.$$p[68]:
            case XamRadialGauge.$$p[64]:
            case XamRadialGauge.$$p[28]:
            case XamRadialGauge.$$p[80]:
            case XamRadialGauge.$$p[79]:
            case XamRadialGauge.$$p[78]:
            case XamRadialGauge.$$p[62]:
            case XamRadialGauge.$$p[31]:
            case XamRadialGauge.$$p[35]:
            case XamRadialGauge.$$p[81]:
            case XamRadialGauge.$$p[38]:
            case XamRadialGauge.$$p[34]:
            case XamRadialGauge.$$p[37]:
            case XamRadialGauge.$$p[36]:
            case XamRadialGauge.$$p[8]:
            case XamRadialGauge.$$p[9]:
            case XamRadialGauge.$$p[58]:
            case XamRadialGauge.$$p[10]:
                this.a9 = new RadialGaugeScaler(this.da, this.c9, this.ez, this.eu, this.mi);
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[82]:
            case XamRadialGauge.$$p[70]:
            case XamRadialGauge.$$p[13]:
            case XamRadialGauge.$$p[85]:
            case XamRadialGauge.$$p[73]:
            case XamRadialGauge.$$p[16]:
            case XamRadialGauge.$$p[83]:
            case XamRadialGauge.$$p[71]:
            case XamRadialGauge.$$p[14]:
            case XamRadialGauge.$$p[84]:
            case XamRadialGauge.$$p[72]:
            case XamRadialGauge.$$p[15]:
            case XamRadialGauge.$$p[88]:
            case XamRadialGauge.$$p[76]:
            case XamRadialGauge.$$p[19]:
            case XamRadialGauge.$$p[57]:
            case XamRadialGauge.$$p[56]:
            case XamRadialGauge.$$p[54]:
            case XamRadialGauge.$$p[42]:
            case XamRadialGauge.$$p[41]:
            case XamRadialGauge.$$p[44]:
            case "NeedleStartWidth":
            case XamRadialGauge.$$p[43]:
            case XamRadialGauge.$$p[45]:
            case XamRadialGauge.$$p[47]:
            case XamRadialGauge.$$p[55]:
            case XamRadialGauge.$$p[49]:
            case XamRadialGauge.$$p[39]:
            case XamRadialGauge.$$p[40]:
            case XamRadialGauge.$$p[51]:
            case XamRadialGauge.$$p[52]:
            case XamRadialGauge.$$p[50]:
            case XamRadialGauge.$$p[46]:
            case XamRadialGauge.$$p[48]:
            case XamRadialGauge.$$p[53]:
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[90]:
                this.bc.r = this.fg;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[91]:
                this.bc.b = this.bf;
                break;
            case "TransitionProgress":
                if (this.fd >= 1) {
                    this.bc.w();
                    var j = this.a3;
                    this.a3 = this.a4;
                    this.a4 = j;
                    this.i1();
                    this.i2();
                    this.i4();
                    this.ja(this.a3);
                    this.jb(this.a3, this.a3.b, true);
                    this.jb(this.a3, this.a3.c, false);
                    this.jc(this.a3);
                    if (this.bw == 5) {
                        this.is();
                    }
                    else if (this.bw == 2) {
                        this.bw = 3;
                    }
                    this.view.ah();
                    return;
                }
                this.a2.f(this.fd, this.a4, this.a3);
                this.ja(this.a2);
                this.jb(this.a2, this.a2.b, true);
                this.jb(this.a2, this.a2.c, false);
                this.jc(this.a2);
                this.view.ah();
                break;
            case XamRadialGauge.$$p[61]:
                var k = b;
                var l = c;
                if (k != null) {
                    var m = k;
                    m.collectionChanged = delegateRemove(m.collectionChanged, runOn(this, this.i8));
                }
                if (l != null) {
                    var n = l;
                    n.collectionChanged = delegateCombine(n.collectionChanged, runOn(this, this.i8));
                }
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[60]:
            case XamRadialGauge.$$p[59]:
                this.cb = true;
                this.view.bb();
                break;
            case XamRadialGauge.$$p[11]:
            case XamRadialGauge.$$p[12]:
                this.cb = true;
                this.view.bk();
                this.view.bb();
                break;
        }
        this.iz(a);
    };
    XamRadialGauge.prototype.je = function () {
        this.view.bf();
    };
    XamRadialGauge.prototype.i8 = function (a, b) {
        var e_1, _a, e_2, _b;
        if (b.oldItems != null) {
            try {
                for (var _c = __values(fromEn(b.oldItems)), _d = _c.next(); !_d.done; _d = _c.next()) {
                    var c = _d.value;
                    c.propertyChanged = delegateRemove(c.propertyChanged, runOn(this, this.i7));
                }
            }
            catch (e_1_1) {
                e_1 = { error: e_1_1 };
            }
            finally {
                try {
                    if (_d && !_d.done && (_a = _c.return))
                        _a.call(_c);
                }
                finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        if (b.newItems != null) {
            try {
                for (var _e = __values(fromEn(b.newItems)), _f = _e.next(); !_f.done; _f = _e.next()) {
                    var d = _f.value;
                    d.propertyChanged = delegateCombine(d.propertyChanged, runOn(this, this.i7));
                }
            }
            catch (e_2_1) {
                e_2 = { error: e_2_1 };
            }
            finally {
                try {
                    if (_f && !_f.done && (_b = _e.return))
                        _b.call(_e);
                }
                finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
        }
        this.cb = true;
        this.view.bb();
    };
    XamRadialGauge.prototype.i7 = function (a, b) {
        this.cb = true;
        this.view.bb();
    };
    Object.defineProperty(XamRadialGauge.prototype, "mm", {
        get: function () {
            return this.ml;
        },
        set: function (a) {
            var b = this.ml;
            this.ml = a;
            if (!b.equals1(this.ml)) {
                this.i0(b, this.ml);
            }
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.i0 = function (a, b) {
        this.cb = true;
        this.view.bb();
    };
    XamRadialGauge.prototype.cg = function () {
        return !isNaN_(this.da) && !isNaN_(this.c9) && !isNaN_(this.ff) && !this.mm.isEmpty && this.view.n();
    };
    XamRadialGauge.prototype.im = function () {
        if (!this.cg()) {
            return;
        }
        if (this.cb) {
            if (this.b5) {
                if (this.bc.g) {
                    this.bc.t();
                }
                var a = this.a4;
                this.a4 = this.a2;
                this.a2 = a;
            }
            else {
                var b = this.a4;
                this.a4 = this.a3;
                this.a3 = b;
            }
        }
        else if (this.b5) {
            this.a2.f(this.fd, this.a4, this.a3);
            this.ja(this.a2);
            this.jb(this.a2, this.a2.b, true);
            this.jb(this.a2, this.a2.c, false);
            this.jc(this.a2);
        }
        if (this.cb) {
            if (this.bw == 1) {
                this.bw = 2;
                var c = this.et(this.ff, 0);
                this.i3(c, this.a4.b, false);
            }
            else if (this.bw == 4) {
                if (this.fg > 0) {
                    this.bw = 5;
                    var d = this.et(this.ff, 0);
                    this.i3(d, this.a3.b, false);
                }
                else {
                    this.is();
                }
            }
            this.i2();
            this.i4();
            this.i1();
        }
        if (this.cb && this.cl) {
            this.jd();
            this.a2.f(this.fd, this.a4, this.a3);
            this.ja(this.a2);
            this.jb(this.a2, this.a2.b, true);
            this.jb(this.a2, this.a2.c, false);
            this.jc(this.a2);
        }
        else {
            if (this.cb) {
                this.ja(this.a3);
                this.jb(this.a3, this.a3.b, true);
                this.jb(this.a3, this.a3.c, false);
                this.jc(this.a3);
            }
        }
        this.cb = false;
        this.view.ah();
    };
    XamRadialGauge.prototype.jd = function () {
        this.c7 = 0;
        this.bc.w();
        this.bc.v();
    };
    Object.defineProperty(XamRadialGauge.prototype, "cl", {
        get: function () {
            return this.fg > 0;
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.ja = function (a) {
        var b = this.mm;
        var c = this.view.b8();
        var d = a.a;
        var e = Math.min(b.width / 2, b.height / 2) * a.e;
        var f = this.mj();
        var g = f.x;
        var h = f.y;
        var i = d.n(e, g, h);
        c.an = i;
        c._fill = d.l;
        c._stroke = d.m;
        c.ad = d.h;
    };
    XamRadialGauge.prototype.ch = function (a) {
        return this.cj(a, false, false);
    };
    XamRadialGauge.prototype.needleContainsPoint = function (a, b) {
        return this.cj(a, b, false);
    };
    XamRadialGauge.prototype.b9 = function (a) {
        return this.cj(a, false, true);
    };
    XamRadialGauge.prototype.highlightNeedleContainsPoint = function (a, b) {
        return this.cj(a, b, true);
    };
    XamRadialGauge.prototype.cj = function (a, b, c) {
        var d;
        var e;
        if (c) {
            d = this.cu;
            e = this.cv;
        }
        else {
            d = this.cw;
            e = this.cx;
        }
        if (d == null) {
            return false;
        }
        return b ? PolygonUtil.b(e, a) : PolygonUtil.b(d, a);
    };
    XamRadialGauge.prototype.jb = function (a, b, c) {
        if (c) {
            if (this.bw == 0) {
                return;
            }
            this.cu = new List$1(Point_$type, 0);
            this.cv = new List$1(Point_$type, 0);
        }
        else {
            this.cw = new List$1(Point_$type, 0);
            this.cx = new List$1(Point_$type, 0);
        }
        var d = c ? this.cu : this.cw;
        var e = c ? this.cv : this.cx;
        var f = this.mm;
        var g = b.ab;
        var h = b.aj;
        var i = b.ak;
        var j = b.ae;
        var k = b.ah;
        var l = b.ai;
        var m = b.aa;
        var n = c ? this.view.b9() : this.view.ca();
        var o = this.view.cd();
        var p = this.view.cb();
        var q = Math.min(f.width / 2, f.height / 2) * a.e;
        var r = this.mj();
        var s = r.x;
        var t = r.y;
        var u = b.am(q, s, t);
        var v = g * 180 / Math.PI;
        n.an = u;
        var w = new TransformGroup();
        w.j.add(((function () {
            var $ret = new RotateTransform();
            $ret.k = s;
            $ret.l = t;
            $ret.j = v;
            return $ret;
        })()));
        n.j = w;
        n._fill = h;
        n._stroke = i;
        n.ad = j;
        o.an = b.an(q, s, t);
        p.an = b.al(q, s, t);
        o._fill = k;
        o._stroke = l;
        o.ad = m;
        p._fill = k;
        p._stroke = l;
        p.ad = m;
        var x = Math.cos(g);
        var y = Math.sin(g);
        var z = b.af / 2;
        var aa = { $type: Point_$type, x: b.ad * q, y: z * q };
        var ab = { $type: Point_$type, x: b.ac * q, y: z * q };
        var ac = { $type: Point_$type, x: b.ac * q, y: -z * q };
        var ad = { $type: Point_$type, x: b.ad * q, y: -z * q };
        aa = { $type: Point_$type, x: aa.x * x - aa.y * y + s, y: aa.y * x + aa.x * y + t };
        ab = { $type: Point_$type, x: ab.x * x - ab.y * y + s, y: ab.y * x + ab.x * y + t };
        ac = { $type: Point_$type, x: ac.x * x - ac.y * y + s, y: ac.y * x + ac.x * y + t };
        ad = { $type: Point_$type, x: ad.x * x - ad.y * y + s, y: ad.y * x + ad.x * y + t };
        d.add(aa);
        d.add(ab);
        d.add(ac);
        d.add(ad);
        z = (b.af / 2) * q;
        var ae = { $type: Point_$type, x: b.ad * q, y: z };
        var af = { $type: Point_$type, x: b.ac * q, y: z };
        var ag = { $type: Point_$type, x: b.ac * q, y: -z };
        var ah = { $type: Point_$type, x: b.ad * q, y: -z };
        ae = { $type: Point_$type, x: ae.x * x - ae.y * y + s, y: ae.y * x + ae.x * y + t };
        af = { $type: Point_$type, x: af.x * x - af.y * y + s, y: af.y * x + af.x * y + t };
        ag = { $type: Point_$type, x: ag.x * x - ag.y * y + s, y: ag.y * x + ag.x * y + t };
        ah = { $type: Point_$type, x: ah.x * x - ah.y * y + s, y: ah.y * x + ah.x * y + t };
        e.add(ae);
        e.add(af);
        e.add(ag);
        e.add(ah);
    };
    XamRadialGauge.prototype.mj = function () {
        var a = this.mm;
        var b = isNaN_(this.dl) ? 0.5 : this.dl;
        var c = isNaN_(this.dm) ? 0.5 : this.dm;
        var d = a.left + b * a.width;
        var e = a.top + c * a.height;
        return { $type: Point_$type, x: d, y: e };
    };
    XamRadialGauge.prototype.er = function (a) {
        if (isInfinity(a)) {
            return NaN;
        }
        return a;
    };
    XamRadialGauge.prototype.i2 = function () {
        var a = this.a3;
        a.e = this.ep;
        var b = this.mm;
        var c = !(this.bw == 0 || this.bw == 5);
        var d = this.et(this.ff, 0);
        this.i3(d, a.c, c);
        if (c) {
            var e = this.er(this.dr);
            this.i3(e, a.b, false);
        }
    };
    XamRadialGauge.prototype.i3 = function (a, b, c) {
        var d = this.a9;
        var e = d.h(a);
        var f = new RadialGaugeNeedlePreparer();
        var g = new RadialGaugeNeedleParameters();
        g.b = this.a5;
        g.o = this.er(this.ek);
        var h = this.ma;
        var i = this.mb;
        if (c) {
            h = BrushUtil.s(h, this.c8);
            i = BrushUtil.s(i, this.c8);
        }
        g.t = h;
        g.u = i;
        g.m = this.er(this.ei);
        g.k = this.er(this.ea);
        g.d = this.er(this.d8);
        g.e = this.er(this.d9);
        g.p = this.er(this.eg);
        g.q = this.er(this.eh);
        g.i = this.er(this.ef);
        g.f = this.er(this.ec);
        g.r = this.mc;
        g.s = this.md;
        g.c = this.a6;
        g.h = this.er(this.ed);
        g.n = this.er(this.ej);
        g.l = this.er(this.eb);
        if (isNaN_(g.o)) {
            g.o = XamRadialGauge.el;
        }
        if (isNaN_(g.h)) {
            g.h = XamRadialGauge.ee;
        }
        f.b = g;
        f.e(b);
        b.ab = e;
    };
    XamRadialGauge.prototype.jc = function (a) {
        var e_3, _a, e_4, _b, e_5, _c, e_6, _d;
        var b = this.mm;
        var c = a.d;
        var d = c.g;
        var e = c.c;
        var f = c.i;
        var g = c.j;
        var h = c.h;
        var i = c.f;
        var j = c.t;
        var k = c.e;
        var l = c.d;
        var m = c.ab;
        var n = c.y;
        var o = c.l;
        var p = c.k;
        var q = c.ad;
        var r = c.ac;
        var s = c.aa;
        var t = c.x;
        var u = c.aj;
        var v = c.ak;
        var w = c.ae;
        var x = c.ai;
        var y = c.v;
        var z = c.u;
        var aa = c.w;
        var ab = this.view.cc();
        var ac = c.z;
        m = Math.max(0, m);
        n = Math.max(0, n);
        var ad = true;
        if (this.a8 == 1 || (this.a8 == 0 && this.a0 == 0)) {
            ad = false;
        }
        var ae = Math.min(b.width / 2, b.height / 2) * a.e;
        var af = this.mj();
        var ag = af.x;
        var ah = af.y;
        var ai = s;
        var aj = t;
        s -= ac;
        t += ac;
        var ak = false;
        if ((t - s) >= 2 * Math.PI) {
            ak = true;
            s = 0;
            t = Math.PI;
        }
        var al = new PathGeometry();
        var am = new PathFigure();
        var an = Math.cos(s);
        var ao = Math.sin(s);
        var ap = Math.cos(t);
        var aq = Math.sin(t);
        var ar = ag + (ae * m) * an;
        var as = ah + (ae * m) * ao;
        var at = ag + (ae * n) * an;
        var au = ah + (ae * n) * ao;
        var av = ag + (ae * m) * ap;
        var aw = ah + (ae * m) * aq;
        var ax = ag + (ae * n) * ap;
        var ay = ah + (ae * n) * aq;
        var az = ak;
        if (ac != 0 && !ak && ad) {
            var a0 = Math.cos(ai);
            var a1 = Math.sin(ai);
            var a2 = Math.cos(aj);
            var a3 = Math.sin(aj);
            var a4 = ag + (ae * m) * a0;
            var a5 = ah + (ae * m) * a1;
            var a6 = ag + (ae * n) * a0;
            var a7 = ah + (ae * n) * a1;
            var a8 = ag + (ae * m) * a2;
            var a9 = ah + (ae * m) * a3;
            var ba = ag + (ae * n) * a2;
            var bb = ah + (ae * n) * a3;
            var bc = as;
            var bd = at;
            if (a6 - a4 != 0) {
                bd = ag;
                var be = (a7 - a5) / (a6 - a4);
                bc = be * (ag - at) + au;
            }
            var bf = { $type: Point_$type, x: bd, y: bc };
            var bg = GeometryUtil.r(bf, { $type: Point_$type, x: at, y: au }, { $type: Point_$type, x: ag, y: ah }, ae * m);
            var bh = aw;
            var bi = ax;
            if (ba - a8 != 0) {
                bi = ag;
                var bj = (bb - a9) / (ba - a8);
                bh = bj * (ag - ax) + ay;
            }
            var bk = { $type: Point_$type, x: bi, y: bh };
            var bl = GeometryUtil.r(bk, { $type: Point_$type, x: ax, y: ay }, { $type: Point_$type, x: ag, y: ah }, ae * m);
            if (isNaN_(bg.c.x) || isNaN_(bg.c.y) || isNaN_(bg.d.x) || isNaN_(bg.d.y) || isNaN_(bl.c.x) || isNaN_(bl.c.y) || isNaN_(bl.d.x) || isNaN_(bl.d.y)) {
                ak = true;
                s = 0;
                t = Math.PI;
            }
            else {
                var bm = void 0;
                var bn = void 0;
                if ((Math.pow(bg.c.x - at, 2) + Math.pow(bg.c.y - au, 2)) < (Math.pow(bg.d.x - at, 2) + Math.pow(bg.d.y - au, 2))) {
                    bm = bg.c;
                }
                else {
                    bm = bg.d;
                }
                if ((Math.pow(bl.c.x - ax, 2) + Math.pow(bl.c.y - ay, 2)) < (Math.pow(bl.d.x - ax, 2) + Math.pow(bl.d.y - ay, 2))) {
                    bn = bl.c;
                }
                else {
                    bn = bl.d;
                }
                if ((Math.pow(bn.x - at, 2) + Math.pow(bn.y - au, 2)) <= (Math.pow(bm.x - at, 2) + Math.pow(bm.y - au, 2))) {
                    ak = true;
                    s = 0;
                    t = Math.PI;
                }
                else {
                    var bo = GeometryUtil.j({ $type: Point_$type, x: ag, y: ah }, bm);
                    var bp = GeometryUtil.j({ $type: Point_$type, x: ag, y: ah }, bn);
                    var bq = s;
                    var br = t;
                    while (bq > Math.PI * 2) {
                        bq -= Math.PI * 2;
                    }
                    while (br > Math.PI * 2) {
                        br -= Math.PI * 2;
                    }
                    var bs = Math.min(Math.abs(bo - bq), Math.abs((Math.PI * 2 - bo) - bq));
                    var bt = Math.min(Math.abs(bp - br), Math.abs((Math.PI * 2 - bp) - br));
                    if ((t - s) + bs + bt >= 2 * Math.PI) {
                        ak = true;
                        s = 0;
                        t = Math.PI;
                    }
                    else {
                        ar = bm.x;
                        as = bm.y;
                        av = bn.x;
                        aw = bn.y;
                    }
                }
            }
        }
        if (ak && !az) {
            an = Math.cos(s);
            ao = Math.sin(s);
            ap = Math.cos(t);
            aq = Math.sin(t);
            ar = ag + (ae * m) * an;
            as = ah + (ae * m) * ao;
            at = ag + (ae * n) * an;
            au = ah + (ae * n) * ao;
            av = ag + (ae * m) * ap;
            aw = ah + (ae * m) * aq;
            ax = ag + (ae * n) * ap;
            ay = ah + (ae * n) * aq;
        }
        if (ak) {
            am._startPoint = { $type: Point_$type, x: at, y: au };
            am._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: ax, y: ay };
                $ret.b = false;
                $ret.d = 1;
                $ret.f = new Size(1, ae * n, ae * n);
                return $ret;
            })()));
            am._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: at, y: au };
                $ret.b = false;
                $ret.d = 1;
                $ret.f = new Size(1, ae * n, ae * n);
                return $ret;
            })()));
            var bu = new PathFigure();
            bu._startPoint = { $type: Point_$type, x: ar, y: as };
            bu._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: av, y: aw };
                $ret.b = false;
                $ret.d = 0;
                $ret.f = new Size(1, ae * m, ae * m);
                return $ret;
            })()));
            bu._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: ar, y: as };
                $ret.b = false;
                $ret.d = 0;
                $ret.f = new Size(1, ae * m, ae * m);
                return $ret;
            })()));
            al.c.add(am);
            al.c.add(bu);
        }
        else {
            am._startPoint = { $type: Point_$type, x: ar, y: as };
            am._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: at, y: au };
                return $ret;
            })()));
            am._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: ax, y: ay };
                $ret.b = (t - s) > Math.PI;
                $ret.d = 1;
                $ret.f = new Size(1, ae * n, ae * n);
                return $ret;
            })()));
            am._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: av, y: aw };
                return $ret;
            })()));
            am._segments.add(((function () {
                var $ret = new ArcSegment();
                $ret.e = { $type: Point_$type, x: ar, y: as };
                $ret.b = (t - s) > Math.PI;
                $ret.d = 0;
                $ret.f = new Size(1, ae * m, ae * m);
                return $ret;
            })()));
            al.c.add(am);
        }
        ab.an = al;
        ab._fill = u;
        var bv = this.bz;
        bv.f = true;
        try {
            for (var _e = __values(fromEnum(this.cz)), _f = _e.next(); !_f.done; _f = _e.next()) {
                var bw = _f.value;
                bv.n(bw);
            }
        }
        catch (e_3_1) {
            e_3 = { error: e_3_1 };
        }
        finally {
            try {
                if (_f && !_f.done && (_a = _e.return))
                    _a.call(_e);
            }
            finally {
                if (e_3)
                    throw e_3.error;
            }
        }
        this.cz.g();
        var bx = this.b2;
        bx.f = true;
        try {
            for (var _g = __values(fromEnum(this.c0)), _h = _g.next(); !_h.done; _h = _g.next()) {
                var by = _h.value;
                bx.n(by);
            }
        }
        catch (e_4_1) {
            e_4 = { error: e_4_1 };
        }
        finally {
            try {
                if (_h && !_h.done && (_b = _g.return))
                    _b.call(_g);
            }
            finally {
                if (e_4)
                    throw e_4.error;
            }
        }
        this.c0.g();
        var bz = this.b4;
        bz.f = true;
        try {
            for (var _j = __values(fromEnum(this.c1)), _k = _j.next(); !_k.done; _k = _j.next()) {
                var b0 = _k.value;
                bz.n(b0);
            }
        }
        catch (e_5_1) {
            e_5 = { error: e_5_1 };
        }
        finally {
            try {
                if (_k && !_k.done && (_c = _j.return))
                    _c.call(_j);
            }
            finally {
                if (e_5)
                    throw e_5.error;
            }
        }
        this.c1.g();
        var b1 = this.by;
        b1.f = true;
        try {
            for (var _l = __values(fromEnum(this.cy)), _m = _l.next(); !_m.done; _m = _l.next()) {
                var b2 = _m.value;
                b1.n(b2);
            }
        }
        catch (e_6_1) {
            e_6 = { error: e_6_1 };
        }
        finally {
            try {
                if (_m && !_m.done && (_d = _l.return))
                    _d.call(_l);
            }
            finally {
                if (e_6)
                    throw e_6.error;
            }
        }
        this.cy.g();
        var b3 = ae * j;
        for (var b4 = 0; b4 < e.length; b4++) {
            var b5 = ag + b3 * Math.cos(e[b4]);
            var b6 = ah + b3 * Math.sin(e[b4]);
            var b7 = bv.a();
            if (b7.al != d[b4]) {
                b7.al = d[b4];
            }
            this.view.bd(b7, l[b4]);
            this.view.be(b7, k[b4]);
            var b8 = h[b4];
            var b9 = i[b4];
            var ca = f[b4];
            var cb = g[b4];
            this.view.a6(b7, b5 + ca, b6 + cb);
            this.cz.h(b7);
        }
        bv.f = false;
        if (!isNaN_(c.p.c) && !isNaN_(c.p.b)) {
            var cc = ag + (ae * c.p.c) * Math.cos(c.p.b);
            var cd = ah + (ae * c.p.c) * Math.sin(c.p.b);
            var ce = bz.a();
            if (ce.al != c.p.h) {
                ce.al = c.p.h;
            }
            this.view.bd(ce, c.p.i);
            this.view.be(ce, c.p.a);
            this.view.a6(ce, cc + c.p.f, cd + c.p.g);
            this.c1.h(ce);
        }
        bz.f = false;
        if (!isNaN_(c.o.c) && !isNaN_(c.o.b)) {
            var cf = ag + (ae * c.o.c) * Math.cos(c.o.b);
            var cg = ah + (ae * c.o.c) * Math.sin(c.o.b);
            var ch = bx.a();
            if (ch.al != c.o.h) {
                ch.al = c.o.h;
            }
            this.view.bd(ch, c.o.i);
            this.view.be(ch, c.o.a);
            this.view.a6(ch, cf + c.o.f, cg + c.o.g);
            this.c0.h(ch);
        }
        bx.f = false;
        if (this.bw != 0) {
            if (!isNaN_(c.m.c) && !isNaN_(c.m.b)) {
                var ci = ag + (ae * c.m.c) * Math.cos(c.m.b);
                var cj = ah + (ae * c.m.c) * Math.sin(c.m.b);
                var ck = b1.a();
                if (ck.al != c.m.h) {
                    ck.al = c.m.h;
                }
                this.view.bd(ck, c.m.i);
                this.view.be(ck, c.m.a);
                this.view.a6(ck, ci + c.m.f, cj + c.m.g);
                this.cy.h(ck);
            }
            b1.f = false;
        }
        var cl = this.b3;
        cl.f = true;
        for (var cm = 0; cm < this.ct.count; cm++) {
            cl.n(this.ct._inner[cm]);
        }
        this.ct.clear();
        var _loop_1 = function (cn) {
            var co = ag + (ae * q) * Math.cos(o[cn]);
            var cp = ah + (ae * q) * Math.sin(o[cn]);
            var cq = ag + (ae * r) * Math.cos(o[cn]);
            var cr = ah + (ae * r) * Math.sin(o[cn]);
            var cs = cl.a();
            var ct = new PathGeometry();
            var cu = new PathFigure();
            cu._startPoint = { $type: Point_$type, x: co, y: cp };
            cu._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: cq, y: cr };
                return $ret;
            })()));
            ct.c.add(cu);
            cs.an = ct;
            cs._stroke = v;
            cs.ad = w;
            this_1.ct.add(cs);
        };
        var this_1 = this;
        for (var cn = 0; cn < o.length; cn++) {
            _loop_1(cn);
        }
        cl.f = false;
        var cv = this.b0;
        cv.f = true;
        for (var cw = 0; cw < this.cr.count; cw++) {
            cv.n(this.cr._inner[cw]);
        }
        this.cr.clear();
        var _loop_2 = function (cx) {
            var cy = ag + (ae * y) * Math.cos(p[cx]);
            var cz = ah + (ae * y) * Math.sin(p[cx]);
            var c0 = ag + (ae * z) * Math.cos(p[cx]);
            var c1 = ah + (ae * z) * Math.sin(p[cx]);
            var c2 = cv.a();
            var c3 = new PathGeometry();
            var c4 = new PathFigure();
            c4._startPoint = { $type: Point_$type, x: cy, y: cz };
            c4._segments.add(((function () {
                var $ret = new LineSegment(1);
                $ret.c = { $type: Point_$type, x: c0, y: c1 };
                return $ret;
            })()));
            c3.c.add(c4);
            c2.an = c3;
            c2._stroke = x;
            c2.ad = aa;
            this_2.cr.add(c2);
        };
        var this_2 = this;
        for (var cx = 0; cx < p.length; cx++) {
            _loop_2(cx);
        }
        cv.f = false;
        var c5 = this.b1;
        c5.f = true;
        for (var c6 = this.cs.count - 1; c6 >= 0; c6--) {
            c5.n(this.cs._inner[c6]);
        }
        this.cs.clear();
        for (var c7 = 0; c7 < c.r.count; c7++) {
            var c8 = c.r._inner[c7];
            var c9 = c5.a();
            c9.an = c8.m(ae, ag, ah);
            c9._fill = c8.k;
            c9._stroke = c8.l;
            c9.ad = c8.h;
            this.cs.add(c9);
        }
        this.view.bc(this.cs);
        c5.f = false;
    };
    XamRadialGauge.prototype.cq = function (a, b, c) {
        var d = c / 10000;
        if (isNaN_(d)) {
            d = 1E-05;
        }
        var e = Math.abs(a - b);
        if (e < d) {
            return true;
        }
        return false;
    };
    XamRadialGauge.prototype.es = function (a) {
        if (isInfinity(a)) {
            return NaN;
        }
        return a;
    };
    XamRadialGauge.prototype.eq = function (a, b) {
        if (isInfinity(a)) {
            return b;
        }
        return a;
    };
    XamRadialGauge.prototype.et = function (a, b) {
        if (isInfinity(a) || isNaN_(a)) {
            return b;
        }
        return a;
    };
    XamRadialGauge.prototype.i4 = function () {
        var a = this.a3;
        a.e = this.es(this.ep);
        if (isNaN_(a.e)) {
            a.e = 1;
        }
        if (this.ck && !isNaN_(this.en) && this.en > 0) {
            var b = Math.min(this.mm.width, this.mm.height);
            this.em = b / this.en;
        }
        else {
            this.em = 1;
        }
        var c = this.mm;
        var d = this.a9;
        var e = this.es(this.dt);
        var f = this.es(this.dw);
        var g = this.es(this.d1);
        if (isNaN_(e)) {
            e = (this.c9 - this.da) / 10;
        }
        if (isNaN_(f)) {
            f = e;
        }
        if (isNaN_(g)) {
            g = 3;
        }
        var h = new List$1(Tuple$2.$.specialize(Number_$type, Number_$type), 0);
        var i = d.i;
        var j = d.g;
        while (i >= Math.PI * 2) {
            i -= Math.PI * 2;
        }
        while (j >= Math.PI * 2) {
            j -= Math.PI * 2;
        }
        var k = Math.abs(j - i) < 0.0001;
        var l = this.a1 == 1 || this.a1 == 3;
        var m = this.a1 == 0 || this.a1 == 3;
        for (var n = this.da; n <= this.c9 || this.cq(n, this.c9, f); n += f) {
            if (k && this.cq(n, this.da, f) && l) {
                continue;
            }
            if (k && this.cq(n, this.c9, f) && m) {
                continue;
            }
            h.add(new Tuple$2(Number_$type, Number_$type, n, MathUtil.f(d.h(n))));
            if (f == 0) {
                break;
            }
        }
        var o = new List$1(Number_$type, 0);
        var p = new List$1(Number_$type, 0);
        for (var q = this.da; q <= this.c9 || this.cq(q, this.c9, e); q += e) {
            o.add(d.h(q));
            for (var r = 0; r < g; r++) {
                var s = (e / (g + 1)) * (r + 1);
                if (s + q > this.c9) {
                    continue;
                }
                p.add(d.h(s + q));
            }
            if (e == 0) {
                break;
            }
        }
        if (a.d.c.length != h.count) {
            a.d.g = new Array(h.count);
            a.d.c = new Array(h.count);
            a.d.h = new Array(h.count);
            a.d.f = new Array(h.count);
            a.d.i = new Array(h.count);
            a.d.j = new Array(h.count);
            a.d.e = new Array(h.count);
            a.d.d = new Array(h.count);
        }
        if (a.d.l.length != o.count || a.d.k.length != p.count) {
            a.d.l = new Array(o.count);
            a.d.k = new Array(p.count);
        }
        var t = this.bp();
        for (var u = 0; u < h.count; u++) {
            var v = h._inner[u].c;
            var w = h._inner[u].d;
            var x = this.av(v, w, "Label", true, this.am, this.formatLabel);
            var y = this.aq(this.du, this.l6, t, x, this.alignLabel, runOn(this.view, this.view.ch));
            a.d.c[u] = y.angle;
            a.d.h[u] = y.width;
            a.d.f[u] = y.height;
            a.d.i[u] = y.offsetX;
            a.d.j[u] = y.offsetY;
            a.d.g[u] = y.label;
            a.d.e[u] = t.b(y.font);
            a.d.d[u] = y.brush;
        }
        var z = this.fb;
        if (this.cp) {
            z = (MathUtil.f(this.a9.h(this.ff)) + 180) % 360;
        }
        var aa = this.av(this.ff, z, this.id, this.co, this.ap, this.formatTitle);
        var ab = this.bs.a();
        var ac = this.aq(this.fc, this.mh, ab, aa, this.alignTitle, runOn(this.view, this.view.cj));
        a.d.p.b = ac.angle;
        a.d.p.e = ac.width;
        a.d.p.d = ac.height;
        a.d.p.f = ac.offsetX;
        a.d.p.g = ac.offsetY;
        a.d.p.c = ac.extent;
        a.d.p.i = ac.brush;
        a.d.p.h = ac.label;
        a.d.p.a = ab.b(ac.font);
        var ad = this.e3;
        if (this.cn) {
            ad = (MathUtil.f(this.a9.h(this.ff)) + 180) % 360;
        }
        var ae = this.av(this.ff, ad, this.hy, this.cm, this.ao, this.formatSubtitle);
        var af = this.br.a();
        var ag = this.aq(this.e4, this.mf, af, ae, this.alignSubtitle, runOn(this.view, this.view.ci));
        a.d.o.b = ag.angle;
        a.d.o.e = ag.width;
        a.d.o.d = ag.height;
        a.d.o.f = ag.offsetX;
        a.d.o.g = ag.offsetY;
        a.d.o.c = ag.extent;
        a.d.o.i = ag.brush;
        a.d.o.h = ag.label;
        a.d.o.a = af.b(ag.font);
        var ah = this.dp;
        if (this.b8) {
            ah = (MathUtil.f(this.a9.h(this.dr)) + 180) % 360;
        }
        var ai = this.av(this.dr, ah, this.f6, this.b7, this.an, this.formatHighlightLabel);
        var aj = this.bq.a();
        var ak = this.aq(this.dq, this.l8, aj, ai, this.alignHighlightLabel, runOn(this.view, this.view.cg));
        a.d.m.b = ak.angle;
        a.d.m.e = ak.width;
        a.d.m.d = ak.height;
        a.d.m.f = ak.offsetX;
        a.d.m.g = ak.offsetY;
        a.d.m.c = ak.extent;
        a.d.m.i = ak.brush;
        var al = !(this.bw == 0 || this.bw == 5);
        a.d.m.h = al ? ak.label : null;
        a.d.m.a = aj.b(ak.font);
        for (var am = 0; am < o.count; am++) {
            a.d.l[am] = o._inner[am];
        }
        for (var an = 0; an < p.count; an++) {
            a.d.k[an] = p._inner[an];
        }
        a.d.ab = this.et(this.e0, 0.5);
        a.d.y = this.et(this.ev, 0.57);
        a.d.t = this.et(this.du, 0.65);
        a.d.ad = this.et(this.e7, 0.5);
        a.d.ac = this.et(this.e5, 0.57);
        a.d.v = this.et(this.d4, 0.54);
        a.d.u = this.et(this.d2, 0.57);
        a.d.aa = d.i;
        a.d.x = d.g;
        var ao = this.ex;
        if (isNaN_((ao))) {
            ao = 2.8;
        }
        var ap = ao * Math.PI / 180;
        if (ap < 0) {
            ap = 0;
        }
        a.d.z = ap;
        a.d.ak = this.mg;
        a.d.ai = this.l9;
        a.d.aj = this.me;
        a.d.ae = this.es(this.e9);
        a.d.w = this.es(this.d6);
        if (isNaN_(a.d.ae)) {
            a.d.ae = XamRadialGauge.fa;
        }
        if (isNaN_(a.d.w)) {
            a.d.w = XamRadialGauge.d7;
        }
        a.d.r.clear();
        for (var aq = 0; aq < this.ranges.count; aq++) {
            var ar = this.ranges._inner[aq];
            var as = this.es(Math.min(ar.o, ar.j));
            var at = this.es(Math.max(ar.o, ar.j));
            if (isNaN_(as) || isNaN_(at)) {
                continue;
            }
            var au = d.h(as);
            var av = d.h(at);
            var aw = RadialGaugeScaler.k(au, av, this.mi);
            au = aw.c;
            av = aw.d;
            var ax = new RadialGaugeRangeFrame();
            ax.e = au;
            ax.b = av;
            ax.k = ar.ao != null ? ar.ao : this.l7(aq, this.ak);
            ax.l = ar.ap != null ? ar.ap : this.l7(aq, this.al);
            ax.h = this.et(ar.p, XamRadialGaugeRange.q);
            ax.f = this.es(ar.l);
            if (isNaN_(ax.f)) {
                ax.f = Math.max(0, this.e0);
            }
            ax.c = this.es(ar.k);
            if (isNaN_(ax.c)) {
                ax.c = Math.max(0, this.e0);
            }
            ax.g = this.es(ar.n);
            if (isNaN_(ax.g)) {
                ax.g = Math.max(0, this.ev);
            }
            ax.d = this.es(ar.m);
            if (isNaN_(ax.d)) {
                ax.d = Math.max(0, this.ev);
            }
            if (this.mi == 0) {
                var ay = ax.f;
                ax.f = ax.c;
                ax.c = ay;
                ay = ax.g;
                ax.g = ax.d;
                ax.d = ay;
            }
            a.d.r.add(ax);
        }
    };
    XamRadialGauge.prototype.i1 = function () {
        var a = this.a3;
        a.e = this.ep;
        var b = a.a;
        var c = this.l4;
        var d = this.l5;
        var e = this.eq(this.dj, XamRadialGauge.dk);
        var f = this.a0;
        var g = this.dg;
        var h = this.de;
        if (isInfinity(h) || isNaN_(h)) {
            h = 0.12;
        }
        if (isInfinity(g) || isNaN_(g)) {
            g = 0.82;
        }
        var i = this.dc;
        if (isInfinity(i) || isNaN_(i)) {
            i = 4;
        }
        if (h > g) {
            var j = g;
            g = h;
            h = j;
        }
        var k = this.a9;
        var l = k.i;
        var m = k.g;
        b.l = c;
        b.m = d;
        b.h = e;
        if (f == 0) {
            b.b = 0;
            b.g = 0;
            b.c = 0;
            b.d = 0;
            b.e = this.dg;
        }
        else {
            b.b = i;
            var n = this.di * Math.PI / 180;
            if (n < 0) {
                n = 0;
            }
            if ((Math.PI * 2) - (m - l) < n) {
                b.f = 0;
                b.b = 0;
                b.g = 0;
                b.c = 0;
                b.d = 0;
                b.e = g;
            }
            else {
                b.f = n;
                b.g = l;
                b.c = m;
                b.b = i;
                b.d = h;
                b.e = g;
            }
        }
    };
    Object.defineProperty(XamRadialGauge.prototype, "b5", {
        get: function () {
            return this.bc.f();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "fd", {
        get: function () {
            return this.c7;
        },
        set: function (a) {
            var b = this.c7;
            this.c7 = a;
            this.iy("TransitionProgress", b, this.c7);
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.iq = function (a, b) {
        var c = this.dn(a);
        var d = this.bx == 2;
        var e = d ? this.cc : this.ce;
        if (e) {
            var f = this.fe(this.a9.g - Math.PI * 2);
            switch (this.mi) {
                case 1:
                    if (c < this.da) {
                        c = c < f * 0.5 ? this.c9 : this.da;
                    }
                    break;
                case 0:
                    if (c > this.c9) {
                        c = c < (f + this.c9) * 0.5 ? this.c9 : this.da;
                    }
                    break;
            }
        }
        if (d) {
            if (c != this.dr) {
                this.dr = c;
            }
        }
        else {
            if (c != this.ff) {
                this.ff = c;
            }
        }
    };
    XamRadialGauge.prototype.destroy = function () {
        this.provideContainer(null);
    };
    XamRadialGauge.prototype.provideContainer = function (a) {
        this.view.aw(a);
    };
    XamRadialGauge.prototype.onMouseMove = function (a, b) {
        if (this.bx != 0) {
            this.iq(a, b);
        }
    };
    XamRadialGauge.prototype.onMouseDown = function (a, b) {
        if (b === void 0) {
            b = false;
        }
        if (this.cf && this.needleContainsPoint(a, b) && this.bx == 0) {
            this.bx = 1;
        }
        if (this.cd && this.highlightNeedleContainsPoint(a, b) && this.bx == 0) {
            this.bx = 2;
        }
    };
    XamRadialGauge.prototype.onMouseUp = function (a) {
        if (this.bx != 0) {
            this.bx = 0;
        }
    };
    XamRadialGauge.prototype.containerResized = function () {
        this.view.ax();
    };
    XamRadialGauge.prototype.ir = function () {
        this.view.flush();
    };
    XamRadialGauge.prototype.ba = function () {
        var a = new GaugeVisualData();
        a.viewport = new RectData(this.mm.left, this.mm.top, this.mm.width, this.mm.height);
        a.scaleLabels = new ScaleLabelVisualDataList();
        a.scaleTickmarks = new ScaleTickmarkVisualDataList();
        a.ranges = new RangeVisualDataList();
        a.needle = new NeedleVisualData();
        a.highlightNeedle = new NeedleVisualData();
        a.titleLabels = new ScaleLabelVisualDataList();
        a.subtitleLabels = new ScaleLabelVisualDataList();
        a.highlightLabels = new ScaleLabelVisualDataList();
        this.view.am(a);
        return a;
    };
    XamRadialGauge.prototype.fu = function () {
        var a = this.ba();
        a.scaleByViewport();
        return a.serialize();
    };
    XamRadialGauge.prototype.bp = function () {
        if (this.fv == null) {
            return FontUtil.getFont(this.view.ac);
        }
        else {
            return FontUtil.toFontInfo(this.view.ac, this.fv);
        }
    };
    Object.defineProperty(XamRadialGauge.prototype, "eo", {
        get: function () {
            return this.c6;
        },
        set: function (a) {
            var b = this.c6;
            this.c6 = a;
            this.iy("PixelScalingRatio", b, this.c6);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "db", {
        get: function () {
            return this.c5;
        },
        set: function (a) {
            var b = this.c5;
            this.c5 = a;
            this.iy("ActualPixelScalingRatio", b, this.c5);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "bq", {
        get: function () {
            return this.bj;
        },
        set: function (a) {
            var b = this.bj;
            if (a == null || !this.b6(a)) {
                a = XamRadialGauge.bm();
            }
            else {
                a = FontUtil.getFontInfoFromString(this.view.ac, a.fontString);
            }
            this.bj = a;
            if (b != this.bj) {
                this.iy("HighlightLabelTextStyle", b, this.bj);
            }
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.prototype.b6 = function (a) {
        if (a == null) {
            return false;
        }
        return a.fontString != null && a.fontString != "NaNpx/normal";
    };
    Object.defineProperty(XamRadialGauge.prototype, "br", {
        get: function () {
            return this.bk;
        },
        set: function (a) {
            var b = this.bk;
            if (a == null || !this.b6(a)) {
                a = XamRadialGauge.bn();
            }
            else {
                a = FontUtil.getFontInfoFromString(this.view.ac, a.fontString);
            }
            this.bk = a;
            if (b != this.bk) {
                this.iy("SubtitleTextStyle", b, this.bk);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(XamRadialGauge.prototype, "bs", {
        get: function () {
            return this.bl;
        },
        set: function (a) {
            var b = this.bl;
            if (a == null || !this.b6(a)) {
                a = XamRadialGauge.bo();
            }
            else {
                a = FontUtil.getFontInfoFromString(this.view.ac, a.fontString);
            }
            this.bl = a;
            if (b != this.bl) {
                this.iy("TitleTextStyle", b, this.bl);
            }
        },
        enumerable: false,
        configurable: true
    });
    XamRadialGauge.$t = markType(XamRadialGauge, 'XamRadialGauge', Control.$, [INotifyPropertyChanged_$type]);
    XamRadialGauge.bh = null;
    XamRadialGauge.bi = null;
    XamRadialGauge.bg = null;
    XamRadialGauge.j3 = DependencyProperty.i("HighlighValueOpacity", Number_$type, XamRadialGauge.$, new PropertyMetadata(2, 0.5, function (a, b) { return a.iy("HighlighValueOpacity", b.oldValue, b.newValue); }));
    XamRadialGauge.k1 = DependencyProperty.i("NeedleStartWidth", Number_$type, XamRadialGauge.$, new PropertyMetadata(2, NaN, function (a, b) { return a.iy("NeedleStartWidth", b.oldValue, b.newValue); }));
    XamRadialGauge.el = DeviceUtils.g(1);
    XamRadialGauge.ee = DeviceUtils.g(1);
    XamRadialGauge.fa = DeviceUtils.g(3);
    XamRadialGauge.d7 = DeviceUtils.g(2);
    XamRadialGauge.dk = DeviceUtils.g(12);
    XamRadialGauge.$$p = markDep(DependencyProperty, PropertyMetadata, XamRadialGauge, 'iy', ['BackingBrush:l4:jh', [Brush.$, null], 'BackingCornerRadius:dc:ji', [1, 4], 'BackingInnerExtent:de:jj', [1, 0.12], 'BackingOuterExtent:dg:jk', [1, 0.82], 'BackingOutline:l5:jl', [Brush.$, null], 'BackingOversweep:di:jm', [1, 3], 'BackingShape:a0:jn', [RadialGaugeBackingShape_$type, enumGetBox(RadialGaugeBackingShape_$type, 0)], 'BackingStrokeThickness:dj:jo', [1, XamRadialGauge.dk], 'CenterX:dl:jp', [1, 0.5], 'CenterY:dm:jq', [1, 0.5], 'DuplicateLabelOmissionStrategy:a1:jr', [RadialGaugeDuplicateLabelOmissionStrategy_$type, enumGetBox(RadialGaugeDuplicateLabelOmissionStrategy_$type, 0)], 'FontBrush:l6:js', [Brush.$, null], 'Font:fv:jt', [2, null], 'HighlightLabelAngle:dp:ju', [1, 90], 'HighlightLabelBrush:l8:jv', [Brush.$, null], 'HighlightLabelDisplaysValue:b7:jw', [0, false], 'HighlightLabelExtent:dq:jx', [1, 0.2], 'HighlightLabelFormat:f2:jy', [2, null], 'HighlightLabelFormatSpecifiers:ag:jz', [Array_$type, null], 'HighlightLabelSnapsToNeedlePivot:b8:j0', [0, false], 'HighlightLabelText:f6:j1', [2, null], 'HighlightValueDisplayMode:bv:j2', [HighlightedValueDisplayMode_$type, enumGetBox(HighlightedValueDisplayMode_$type, 0)], 'HighlightValue:dr:j4', [1, NaN], 'Interval:dt:j5', [1, NaN], 'IsHighlightNeedleDraggingConstrained:cc:j6', [0, true], 'IsHighlightNeedleDraggingEnabled:cd:j7', [0, false], 'IsNeedleDraggingConstrained:ce:j8', [0, true], 'IsNeedleDraggingEnabled:cf:j9', [0, false], 'LabelExtent:du:ka', [1, 0.65], 'LabelFormat:gi:kb', [2, null], 'LabelFormatSpecifiers:ah:kc', [Array_$type, null], 'LabelInterval:dw:kd', [1, NaN], 'MaximumValue:dx:ke', [1, 100], 'MinimumValue:dz:kf', [1, 0], 'MinorTickBrush:l9:kg', [Brush.$, null], 'MinorTickCount:d1:kh', [1, 3], 'MinorTickEndExtent:d2:ki', [1, 0.57], 'MinorTickStartExtent:d4:kj', [1, 0.54], 'MinorTickStrokeThickness:d6:kk', [1, XamRadialGauge.d7], 'NeedleBaseFeatureExtent:d8:kl', [1, NaN], 'NeedleBaseFeatureWidthRatio:d9:km', [1, NaN], 'NeedleBrush:ma:kn', [Brush.$, null], 'NeedleEndExtent:ea:ko', [1, NaN], 'NeedleEndWidthRatio:eb:kp', [1, NaN], 'NeedleOutline:mb:kq', [Brush.$, null], 'NeedlePivotBrush:mc:kr', [Brush.$, null], 'NeedlePivotInnerWidthRatio:ec:ks', [1, NaN], 'NeedlePivotOutline:md:kt', [Brush.$, null], 'NeedlePivotShape:a6:ku', [RadialGaugePivotShape_$type, enumGetBox(RadialGaugePivotShape_$type, 3)], 'NeedlePivotStrokeThickness:ed:kv', [1, XamRadialGauge.ee], 'NeedlePivotWidthRatio:ef:kw', [1, NaN], 'NeedlePointFeatureExtent:eg:kx', [1, NaN], 'NeedlePointFeatureWidthRatio:eh:ky', [1, NaN], 'NeedleShape:a5:kz', [RadialGaugeNeedleShape_$type, enumGetBox(RadialGaugeNeedleShape_$type, 4)], 'NeedleStartExtent:ei:k0', [1, NaN], 'NeedleStrokeThickness:ek:k2', [1, XamRadialGauge.el], 'OpticalScalingEnabled:ck:k3', [0, false], 'OpticalScalingSize:en:k4', [1, 500], 'RadiusMultiplier:ep:k5', [1, 1], 'RangeBrushes:ak:k6', [BrushCollection.$, null], 'RangeOutlines:al:k7', [BrushCollection.$, null], 'Ranges::k8', [RadialGaugeRangeCollection.$, null], 'ScaleBrush:me:k9', [Brush.$, null], 'ScaleEndAngle:eu:la', [1, 45], 'ScaleEndExtent:ev:lb', [1, 0.57], 'ScaleOversweep:ex:lc', [1, 2.8], 'ScaleOversweepShape:a8:ld', [RadialGaugeScaleOversweepShape_$type, enumGetBox(RadialGaugeScaleOversweepShape_$type, 0)], 'ScaleStartAngle:ez:le', [1, 135], 'ScaleStartExtent:e0:lf', [1, 0.5], 'ScaleSweepDirection:mi:lg', [SweepDirection_$type, enumGetBox(SweepDirection_$type, 1)], 'SubtitleAngle:e3:lh', [1, 90], 'SubtitleBrush:mf:li', [Brush.$, null], 'SubtitleDisplaysValue:cm:lj', [0, false], 'SubtitleExtent:e4:lk', [1, 0.5], 'SubtitleFormat:hu:ll', [2, null], 'SubtitleFormatSpecifiers:ai:lm', [Array_$type, null], 'SubtitleSnapsToNeedlePivot:cn:ln', [0, false], 'SubtitleText:hy:lo', [2, null], 'TickBrush:mg:lp', [Brush.$, null], 'TickEndExtent:e5:lq', [1, 0.57], 'TickStartExtent:e7:lr', [1, 0.5], 'TickStrokeThickness:e9:ls', [1, XamRadialGauge.fa], 'TitleAngle:fb:lt', [1, 90], 'TitleBrush:mh:lu', [Brush.$, null], 'TitleDisplaysValue:co:lv', [0, false], 'TitleExtent:fc:lw', [1, 0.38], 'TitleFormat:h9:lx', [2, null], 'TitleFormatSpecifiers:aj:ly', [Array_$type, null], 'TitleSnapsToNeedlePivot:cp:lz', [0, false], 'TitleText:id:l0', [2, null], 'TransitionDuration:fg:l1', [1, 0], 'TransitionEasingFunction:bf:l2', [Delegate_$type, null], 'Value:ff:l3', [1, 0]]);
    return XamRadialGauge;
}(Control));
/**
 * @hidden
 */
var XamRadialGaugeView = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(XamRadialGaugeView, _super);
    function XamRadialGaugeView(a) {
        var _this = _super.call(this) || this;
        _this.h = null;
        _this.s = null;
        _this.r = null;
        _this.q = null;
        _this.v = null;
        _this.u = null;
        _this.t = null;
        _this.b4 = new Path();
        _this.b3 = new Path();
        _this.b6 = new Path();
        _this.b2 = new Path();
        _this.b5 = new Path();
        _this.b7 = new Path();
        _this.o = null;
        _this.a = ["needle", "needlePivot", "backing", "scale", "tick", "minorTick", "label"];
        _this.c = null;
        _this.d = null;
        _this.l = false;
        _this.m = false;
        _this.g = null;
        _this.ad = null;
        _this.k = null;
        _this.ac = null;
        _this.i = null;
        _this.bp = new Brush();
        _this.bq = ((function () {
            var $ret = new Brush();
            $ret.fill = "black";
            return $ret;
        })());
        _this.w = NaN;
        _this.p = null;
        _this.af = -1;
        _this.ae = -1;
        _this.bu = null;
        _this.bv = null;
        _this.bw = null;
        _this.bx = null;
        _this.br = null;
        _this.bs = null;
        _this.by = null;
        _this.b0 = null;
        _this.bt = null;
        _this.bz = null;
        _this.b1 = null;
        _this.e = null;
        _this.f = null;
        _this.x = 0;
        _this.h = a;
        _this.o = new Dictionary$2(String_$type, Dictionary$2.$.specialize(String_$type, String_$type), 0);
        _this.q = new List$1(TextBlock.$, 0);
        _this.r = new List$1(Path.$, 0);
        _this.s = new List$1(Path.$, 0);
        _this.v = new List$1(TextBlock.$, 0);
        _this.u = new List$1(TextBlock.$, 0);
        _this.t = new List$1(TextBlock.$, 0);
        return _this;
    }
    XamRadialGaugeView.prototype.ar = function (a) {
        a._visibility = 0;
    };
    XamRadialGaugeView.prototype.as = function (a) {
        a._visibility = 1;
    };
    XamRadialGaugeView.prototype.at = function (a) {
        this.q.remove(a);
    };
    XamRadialGaugeView.prototype.bm = function () {
        var a = new TextBlock();
        this.q.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.bh = function (a) {
        this.v.remove(a);
    };
    XamRadialGaugeView.prototype.bo = function () {
        var a = new TextBlock();
        this.v.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.bg = function (a) {
        this.u.remove(a);
    };
    XamRadialGaugeView.prototype.bn = function () {
        var a = new TextBlock();
        this.u.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.ap = function (a) {
        this.t.remove(a);
    };
    XamRadialGaugeView.prototype.bl = function () {
        var a = new TextBlock();
        this.t.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.a2 = function (a) {
        a._visibility = 0;
    };
    XamRadialGaugeView.prototype.a3 = function (a) {
        a._visibility = 1;
    };
    XamRadialGaugeView.prototype.a4 = function (a) {
        this.r.remove(a);
    };
    XamRadialGaugeView.prototype.ce = function () {
        var a = new Path();
        this.r.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.a7 = function (a) {
        a._visibility = 0;
    };
    XamRadialGaugeView.prototype.a8 = function (a) {
        a._visibility = 1;
    };
    XamRadialGaugeView.prototype.a9 = function (a) {
        this.s.remove(a);
    };
    XamRadialGaugeView.prototype.cf = function () {
        var a = new Path();
        this.s.add(a);
        return a;
    };
    XamRadialGaugeView.prototype.n = function () {
        return true;
    };
    XamRadialGaugeView.prototype.ca = function () {
        return this.b4;
    };
    XamRadialGaugeView.prototype.b9 = function () {
        return this.b3;
    };
    XamRadialGaugeView.prototype.cc = function () {
        return this.b6;
    };
    XamRadialGaugeView.prototype.z = function (a, b) {
        var c = typeCast(TextBlock.$, a);
        if (c != null && c.al != null) {
            this.k.ad(b);
            return this.k.f(c) + 0;
        }
        return 0;
    };
    XamRadialGaugeView.prototype.ch = function (a, b) {
        if (b == null) {
            b = this.h.bp();
        }
        var c = this.z(a, b);
        var d = this.y(b);
        return new Size(1, c, d);
    };
    XamRadialGaugeView.prototype.cj = function (a, b) {
        var c = this.z(a, b);
        var d = this.y(b);
        return new Size(1, c, d);
    };
    XamRadialGaugeView.prototype.ci = function (a, b) {
        var c = this.z(a, b);
        var d = this.y(b);
        return new Size(1, c, d);
    };
    XamRadialGaugeView.prototype.cg = function (a, b) {
        var c = this.z(a, b);
        var d = this.y(b);
        return new Size(1, c, d);
    };
    XamRadialGaugeView.prototype.ao = function () {
        this.l = true;
        var a = ["#CED3D8", "#CED3D8", "#EBEDEF", "#FFC73C", "#617583", "rgba(100,107,114,.74)", "rgba(100,107,114,.74)"];
        var b = ["#B2B9C0", "#B2B9C0", "#B2B9C0", null, null, null, null];
        var c = ["background-color", "border-top-color"];
        var d = ((function () {
            var $ret = new List$1(Array_$type, 0);
            $ret.add(a);
            $ret.add(b);
            return $ret;
        })());
        this.o.clear();
        var e = this.a.length;
        for (var f = 0; f < e; f++) {
            var g = new Dictionary$2(String_$type, String_$type, 0);
            var h = this.a[f];
            var i = new Array(c.length);
            arrayCopy1(c, 0, i, 0, c.length);
            this.b("ui-radialgauge-" + h, i);
            for (var j = 0; j < i.length; j++) {
                g.item(c[j], (i[j] == null) ? d._inner[j][f] : i[j]);
            }
            this.o.item(h, g);
        }
        this.bj();
        var k;
        var l;
        var m = BrushUtil.h("radialgauge-range", this.ac, k, l);
        k = m.p2;
        l = m.p3;
        this.c = k;
        this.d = l;
        if (this.e == null) {
            this.h.ak = this.c;
        }
        if (this.f == null) {
            this.h.al = this.d;
        }
        this.l = false;
    };
    XamRadialGaugeView.prototype.au = function () {
        this.aq();
        if (this.g != null) {
            this.g.at(this.ac.rootWrapper, "");
        }
    };
    XamRadialGaugeView.prototype.ay = function () {
        if (this.g != null && this.ac != null) {
            this.g.bh(this.ac.rootWrapper, "");
        }
    };
    XamRadialGaugeView.prototype.bj = function () {
        this.l = true;
        var a = this.a.length;
        for (var b = 0; b < a; b++) {
            var c = this.a[b];
            this.bi(c, this.o.item(c));
        }
        this.l = false;
    };
    XamRadialGaugeView.prototype.bi = function (a, b) {
        var e_7, _a;
        var c = null;
        var d = null;
        var e = b.count;
        try {
            for (var _b = __values(fromEnum(b.keys)), _c = _b.next(); !_c.done; _c = _b.next()) {
                var f = _c.value;
                switch (f) {
                    case "background-color":
                        c = new Brush();
                        if (b.item(f) != null) {
                            c._fill = b.item(f);
                        }
                        break;
                    case "border-top-color":
                        d = new Brush();
                        if (b.item(f) != null) {
                            d._fill = b.item(f);
                        }
                        break;
                }
            }
        }
        catch (e_7_1) {
            e_7 = { error: e_7_1 };
        }
        finally {
            try {
                if (_c && !_c.done && (_a = _b.return))
                    _a.call(_b);
            }
            finally {
                if (e_7)
                    throw e_7.error;
            }
        }
        switch (a) {
            case "needle":
                if (this.bu == null) {
                    this.h.ma = c;
                }
                if (this.bv == null) {
                    this.h.mb = d;
                }
                break;
            case "needlePivot":
                if (this.bw == null) {
                    this.h.mc = c;
                }
                if (this.bx == null) {
                    this.h.md = d;
                }
                break;
            case "backing":
                if (this.br == null) {
                    this.h.l4 = c;
                }
                if (this.bs == null) {
                    this.h.l5 = d;
                }
                break;
            case "scale":
                if (this.by == null) {
                    this.h.me = c;
                }
                break;
            case "tick":
                if (this.b0 == null) {
                    this.h.mg = c;
                }
                break;
            case "minorTick":
                if (this.bt == null) {
                    this.h.l9 = c;
                }
                break;
            case "label":
                this.bq = c;
                break;
        }
    };
    XamRadialGaugeView.prototype.b = function (a, b) {
        this.ac.startCSSQuery();
        for (var c = 0; c < b.length; c++) {
            b[c] = this.ac.getCssDefaultPropertyValue(a, b[c]);
        }
        this.ac.endCSSQuery();
        return b;
    };
    XamRadialGaugeView.ab = function (a, b) {
        var c = a == null ? 0 : a.length;
        if (c < 1) {
            return b;
        }
        var d = a.split('.');
        var e = (d[0].length > 0) ? parseInt(d[0]) : 0;
        if (d.length != 2) {
            return e;
        }
        c = d[1].length;
        var f = parseInt(d[1]);
        while (c-- > 0) {
            f /= 10;
        }
        return f + e;
    };
    XamRadialGaugeView.prototype.az = function () {
        this.l = true;
        this.h.ma = ((function () {
            var $ret = new Brush();
            $ret.fill = "#CED3D8";
            return $ret;
        })());
        this.h.mb = ((function () {
            var $ret = new Brush();
            $ret.fill = "#B2B9C0";
            return $ret;
        })());
        this.h.mg = ((function () {
            var $ret = new Brush();
            $ret.fill = "#617583";
            return $ret;
        })());
        this.h.me = ((function () {
            var $ret = new Brush();
            $ret.fill = "#FFC73C";
            return $ret;
        })());
        this.h.l4 = ((function () {
            var $ret = new Brush();
            $ret.fill = "#EBEDEF";
            return $ret;
        })());
        this.h.l5 = ((function () {
            var $ret = new Brush();
            $ret.fill = "#B2B9C0";
            return $ret;
        })());
        this.h.mc = ((function () {
            var $ret = new Brush();
            $ret.fill = "#CED3D8";
            return $ret;
        })());
        this.h.md = ((function () {
            var $ret = new Brush();
            $ret.fill = "#B2B9C0";
            return $ret;
        })());
        this.h.l9 = ((function () {
            var $ret = new Brush();
            $ret.fill = "rgba(100,107,114,.74)";
            return $ret;
        })());
        this.l = false;
        this.aq();
    };
    XamRadialGaugeView.prototype.aq = function () {
        var a = this.h.eo;
        var b = this.h.db;
        if (!isNaN_(a) && a != 0) {
            return;
        }
        if (window.devicePixelRatio != undefined && window.devicePixelRatio != b) {
            this.h.db = window.devicePixelRatio;
        }
    };
    XamRadialGaugeView.prototype.bb = function () {
        if (!this.m) {
            this.m = true;
            if (this.ac != null) {
                this.ac.setTimeout(runOn(this, this.ag), 0);
            }
            else {
                window.setTimeout(runOn(this, this.ag), 0);
            }
        }
    };
    XamRadialGaugeView.prototype.ag = function () {
        if (this.m) {
            this.m = false;
            this.h.im();
        }
    };
    XamRadialGaugeView.prototype.flush = function () {
        if (this.m) {
            this.ag();
        }
    };
    XamRadialGaugeView.prototype.a6 = function (a, b, c) {
        a.n = b;
        a.o = c;
    };
    XamRadialGaugeView.prototype.aw = function (a) {
        var _this = this;
        if (a == null) {
            this.ad = null;
            this.ac = null;
            this.k = null;
            if (this.h.b5) {
                this.h.bc.w();
            }
            this.ai();
            return;
        }
        this.x = (isNaN_(this.h.eo) ? this.h.db : this.h.eo);
        var b = a;
        this.ac = b;
        this.h.bc.u(this.ac);
        this.ac.rootWrapper.addClass("ui-radialgauge-container");
        var c = this.x;
        var d = Math.round(b.rootWrapper.width());
        var e = Math.round(b.rootWrapper.height());
        var f = d * c;
        var g = e * c;
        this.ac.rootWrapper.setStyleProperty("position", "relative");
        var h = this.ac.createElement("canvas");
        h.setStyleProperty("position", "absolute");
        this.ac.append(h);
        this.af = truncate(Math.round(f));
        this.ae = truncate(Math.round(g));
        h.setAttribute("width", f.toString());
        h.setAttribute("height", g.toString());
        h.setStyleProperty("width", d.toString() + "px");
        h.setStyleProperty("height", e.toString() + "px");
        h.setStyleProperty("left", "0px");
        h.setStyleProperty("top", "0px");
        this.h.mm = new Rect(0, 0, 0, d, e);
        this.ad = h;
        var i = this.ac.get2DCanvasContext(this.ad);
        this.k = new RenderingContext(new CanvasViewRenderer(), i);
        this.ao();
        this.bk();
        this.k.ad(this.i);
        this.ai();
        if (TypeRegistrar.isRegistered("CanvasGestureDOMEventProxy")) {
            this.g = typeCast(EventProxy.$, TypeRegistrar.create("CanvasGestureDOMEventProxy", this.ac.rootWrapper, this.ac, false));
        }
        if (this.g != null) {
            var j = this.g;
            j.onContactStarted = delegateCombine(j.onContactStarted, runOn(this, this.al));
            var k = this.g;
            k.onContactMoved = delegateCombine(k.onContactMoved, runOn(this, this.ak));
            var l = this.g;
            l.onContactCompleted = delegateCombine(l.onContactCompleted, runOn(this, this.aj));
            this.g.ao = function (m) { return (_this.h.cf && (_this.h.bx == 1 || _this.h.ch(m))) || (_this.h.cd && (_this.h.bx == 2 || _this.h.b9(m))); };
        }
        this.ba();
    };
    XamRadialGaugeView.prototype.aj = function (a, b) {
        if (this.h != null) {
            this.h.onMouseUp(a);
        }
    };
    XamRadialGaugeView.prototype.ak = function (a, b) {
        if (this.h != null) {
            this.h.onMouseMove(a, b);
        }
    };
    XamRadialGaugeView.prototype.al = function (a, b) {
        if (this.h != null) {
            this.h.onMouseDown(a);
        }
    };
    XamRadialGaugeView.prototype.ai = function () {
        if (this.g != null) {
            var a = this.g;
            a.onContactStarted = delegateRemove(a.onContactStarted, runOn(this, this.al));
            var b = this.g;
            b.onContactMoved = delegateRemove(b.onContactMoved, runOn(this, this.ak));
            var c = this.g;
            c.onContactCompleted = delegateRemove(c.onContactCompleted, runOn(this, this.aj));
            this.g.ao = null;
            this.g.av();
        }
    };
    XamRadialGaugeView.prototype.bd = function (a, b) {
        if (b != null) {
            a.ao = b;
        }
        else {
            a.ao = this.bq;
        }
    };
    XamRadialGaugeView.prototype.be = function (a, b) {
        if (a == null) {
            return;
        }
        if (b == null) {
            return;
        }
        a.dataContext = b;
    };
    XamRadialGaugeView.prototype.bf = function () {
        this.ao();
        this.bk();
        this.bb();
    };
    XamRadialGaugeView.prototype.bk = function () {
        this.i = FontUtil.getFont(this.ac);
        if (this.h.fv != null) {
            this.i = this.h.bp();
        }
        this.w = this.y(this.i);
        this.bp = new Brush();
        this.bp._fill = this.ac.rootWrapper.getStyleProperty("color");
        if (this.k != null) {
            this.k.ad(this.i);
        }
    };
    XamRadialGaugeView.prototype.ah = function () {
        this.ba();
    };
    XamRadialGaugeView.prototype.ba = function () {
        var a = this.h.mm.width;
        var b = this.h.mm.height;
        var c = Math.round(a * this.x);
        var d = Math.round(b * this.x);
        if (this.af != c || this.ae != d) {
            this.ad.setAttribute("width", c.toString());
            this.ad.setAttribute("height", d.toString());
            this.ad.setStyleProperty("width", a.toString() + "px");
            this.ad.setStyleProperty("height", b.toString() + "px");
            this.af = truncate(Math.round(c));
            this.ae = truncate(Math.round(d));
        }
        if (this.k.d && this.x != 1) {
            this.k.aa();
            this.k.ab(this.x, this.x);
        }
        this.k.l(this.h.mm.left, this.h.mm.top, this.h.mm.width, this.h.mm.height);
        this.k.t(this.b2);
        this.k.t(this.b6);
        if (this.p != null) {
            for (var e = 0; e < this.p.count; e++) {
                this.k.t(this.p._inner[e]);
            }
        }
        for (var f = 0; f < this.q.count; f++) {
            var g = this.q._inner[f];
            this.k.ad(g.dataContext);
            this.k.x(g);
        }
        for (var h = 0; h < this.v.count; h++) {
            var i = this.v._inner[h];
            this.k.ad(i.dataContext);
            this.k.x(i);
        }
        for (var j = 0; j < this.u.count; j++) {
            var k = this.u._inner[j];
            this.k.ad(k.dataContext);
            this.k.x(k);
        }
        for (var l = 0; l < this.t.count; l++) {
            var m = this.t._inner[l];
            this.k.ad(m.dataContext);
            this.k.x(m);
        }
        for (var n = 0; n < this.r.count; n++) {
            this.k.t(this.r._inner[n]);
        }
        this.k.t(this.b7);
        if (this.b4.j != null) {
            this.k.aa();
            this.k.k(this.b4.j);
        }
        this.k.t(this.b4);
        if (this.b4.j != null) {
            this.k.z();
        }
        if (this.b3.j != null) {
            this.k.aa();
            this.k.k(this.b3.j);
        }
        this.k.t(this.b3);
        if (this.b3.j != null) {
            this.k.z();
        }
        this.k.t(this.b5);
        if (this.k.d && this.x != 1) {
            this.k.z();
        }
    };
    XamRadialGaugeView.prototype.y = function (a) {
        return FontUtil.getCurrentFontHeight(this.ac, a);
    };
    XamRadialGaugeView.prototype.bc = function (a) {
        this.p = a;
    };
    XamRadialGaugeView.prototype.b8 = function () {
        return this.b2;
    };
    XamRadialGaugeView.prototype.cd = function () {
        return this.b7;
    };
    XamRadialGaugeView.prototype.cb = function () {
        return this.b5;
    };
    XamRadialGaugeView.prototype.ax = function () {
        this.aq();
        var a = Math.round(this.ac.rootWrapper.width());
        var b = Math.round(this.ac.rootWrapper.height());
        this.h.mm = new Rect(0, 0, 0, a, b);
        if (this.g != null) {
            this.g.bl = this.h.mm;
        }
    };
    XamRadialGaugeView.prototype.j = function (a, b) {
        return FontUtil.getFontInfo(this.ac, a, b);
    };
    XamRadialGaugeView.prototype.am = function (a) {
        var e_8, _a, e_9, _b, e_10, _c, e_11, _d, e_12, _e, e_13, _f;
        a.scalePath = new PathVisualData(1, "Scale", this.b6);
        a.needlePath = new PathVisualData(1, "Needle", this.b4);
        a.highlightNeedlePath = new PathVisualData(1, "HighlightNeedle", this.b3);
        var b = this.b4.j.j._inner[0].j;
        a.needle.angle = b;
        if (this.b3 != null && typeCast(TransformGroup.$, this.b3.j) !== null) {
            var c = this.b3.j.j._inner[0].j;
            a.highlightNeedle.angle = c;
        }
        else {
            a.highlightNeedle.angle = NaN;
        }
        a.backingPath = new PathVisualData(1, "Backing", this.b2);
        a.overlayPath = new PathVisualData(1, "Overlay", this.b5);
        a.underlayPath = new PathVisualData(1, "Underlay", this.b7);
        var d = this.i;
        try {
            for (var _g = __values(fromEnum(this.q)), _h = _g.next(); !_h.done; _h = _g.next()) {
                var e = _h.value;
                if (e._visibility == 0) {
                    var f = e.dataContext;
                    var g = new ScaleLabelVisualData();
                    g.labelValue = e.al;
                    g.labelPosition = PointData.b({ $type: Point_$type, x: e.n, y: e.o });
                    g.labelSize = SizeData.b(this.ch(e, f));
                    g.appearance = AppearanceHelper.c(e, f);
                    a.scaleLabels.add(g);
                }
            }
        }
        catch (e_8_1) {
            e_8 = { error: e_8_1 };
        }
        finally {
            try {
                if (_h && !_h.done && (_a = _g.return))
                    _a.call(_g);
            }
            finally {
                if (e_8)
                    throw e_8.error;
            }
        }
        try {
            for (var _j = __values(fromEnum(this.v)), _k = _j.next(); !_k.done; _k = _j.next()) {
                var h = _k.value;
                if (h._visibility == 0) {
                    var i = h.dataContext;
                    var j = new ScaleLabelVisualData();
                    j.labelValue = h.al;
                    j.labelPosition = PointData.b({ $type: Point_$type, x: h.n, y: h.o });
                    j.labelSize = SizeData.b(this.ch(h, i));
                    j.appearance = AppearanceHelper.c(h, i);
                    a.titleLabels.add(j);
                }
            }
        }
        catch (e_9_1) {
            e_9 = { error: e_9_1 };
        }
        finally {
            try {
                if (_k && !_k.done && (_b = _j.return))
                    _b.call(_j);
            }
            finally {
                if (e_9)
                    throw e_9.error;
            }
        }
        try {
            for (var _l = __values(fromEnum(this.u)), _m = _l.next(); !_m.done; _m = _l.next()) {
                var k = _m.value;
                if (k._visibility == 0) {
                    var l = k.dataContext;
                    var m = new ScaleLabelVisualData();
                    m.labelValue = k.al;
                    m.labelPosition = PointData.b({ $type: Point_$type, x: k.n, y: k.o });
                    m.labelSize = SizeData.b(this.ch(k, l));
                    m.appearance = AppearanceHelper.c(k, l);
                    a.subtitleLabels.add(m);
                }
            }
        }
        catch (e_10_1) {
            e_10 = { error: e_10_1 };
        }
        finally {
            try {
                if (_m && !_m.done && (_c = _l.return))
                    _c.call(_l);
            }
            finally {
                if (e_10)
                    throw e_10.error;
            }
        }
        try {
            for (var _o = __values(fromEnum(this.t)), _p = _o.next(); !_p.done; _p = _o.next()) {
                var n = _p.value;
                if (n._visibility == 0) {
                    var o = n.dataContext;
                    var p = new ScaleLabelVisualData();
                    p.labelValue = n.al;
                    p.labelPosition = PointData.b({ $type: Point_$type, x: n.n, y: n.o });
                    p.labelSize = SizeData.b(this.ch(n, o));
                    p.appearance = AppearanceHelper.c(n, o);
                    a.highlightLabels.add(p);
                }
            }
        }
        catch (e_11_1) {
            e_11 = { error: e_11_1 };
        }
        finally {
            try {
                if (_p && !_p.done && (_d = _o.return))
                    _d.call(_o);
            }
            finally {
                if (e_11)
                    throw e_11.error;
            }
        }
        try {
            for (var _q = __values(fromEnum(this.r)), _r = _q.next(); !_r.done; _r = _q.next()) {
                var q = _r.value;
                if (q._visibility == 0) {
                    var r = new ScaleTickmarkVisualData();
                    r.tickPath = new PathVisualData(1, "tickmarks", q);
                    a.scaleTickmarks.add(r);
                }
            }
        }
        catch (e_12_1) {
            e_12 = { error: e_12_1 };
        }
        finally {
            try {
                if (_r && !_r.done && (_e = _q.return))
                    _e.call(_q);
            }
            finally {
                if (e_12)
                    throw e_12.error;
            }
        }
        try {
            for (var _s = __values(fromEnum(this.s)), _t = _s.next(); !_t.done; _t = _s.next()) {
                var s = _t.value;
                if (s._visibility == 0) {
                    var t = new RangeVisualData();
                    var u = new PathVisualData(1, "range", s);
                    t.rangePath = u;
                    a.ranges.add(t);
                }
            }
        }
        catch (e_13_1) {
            e_13 = { error: e_13_1 };
        }
        finally {
            try {
                if (_t && !_t.done && (_f = _s.return))
                    _f.call(_s);
            }
            finally {
                if (e_13)
                    throw e_13.error;
            }
        }
    };
    XamRadialGaugeView.prototype.av = function (a, b, c) {
        var d = b;
        var e = c;
        if (!this.l) {
            switch (a) {
                case XamRadialGauge.$$p[41]:
                    this.bu = e;
                    break;
                case XamRadialGauge.$$p[44]:
                    this.bv = e;
                    break;
                case XamRadialGauge.$$p[45]:
                    this.bw = e;
                    break;
                case XamRadialGauge.$$p[47]:
                    this.bx = e;
                    break;
                case XamRadialGauge.$$p[0]:
                    this.br = e;
                    break;
                case XamRadialGauge.$$p[4]:
                    this.bs = e;
                    break;
                case XamRadialGauge.$$p[62]:
                    this.by = e;
                    break;
                case XamRadialGauge.$$p[78]:
                    this.b0 = e;
                    break;
                case XamRadialGauge.$$p[34]:
                    this.bt = e;
                    break;
            }
            if (e == null) {
                this.bj();
            }
        }
    };
    XamRadialGaugeView.prototype.a0 = function (a, b) {
        if (!this.l) {
            this.e = b;
            if (this.e == null) {
                this.h.ak = this.c;
            }
        }
    };
    XamRadialGaugeView.prototype.a1 = function (a, b) {
        if (!this.l) {
            this.f = b;
            if (this.f == null) {
                this.h.al = this.d;
            }
        }
    };
    XamRadialGaugeView.prototype.a5 = function () {
        this.x = this.h.db;
    };
    XamRadialGaugeView.$t = markType(XamRadialGaugeView, 'XamRadialGaugeView');
    return XamRadialGaugeView;
}(Base));

/*
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.
*/

/*
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.
*/
/**
 * Represents event argument for FormatRadialGaugeLabel.
*/
var IgxFormatRadialGaugeLabelEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgxFormatRadialGaugeLabelEventArgs() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    IgxFormatRadialGaugeLabelEventArgs.prototype.createImplementation = function () {
        return new FormatRadialGaugeLabelEventArgs();
    };
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxFormatRadialGaugeLabelEventArgs.prototype.onImplementationCreated = function () {
    };
    IgxFormatRadialGaugeLabelEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "actualMinimumValue", {
        get: function () {
            return this.i.actualMinimumValue;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "actualMaximumValue", {
        get: function () {
            return this.i.actualMaximumValue;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "startAngle", {
        get: function () {
            return this.i.startAngle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "endAngle", {
        get: function () {
            return this.i.endAngle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "angle", {
        get: function () {
            return this.i.angle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "value", {
        get: function () {
            return this.i.value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxFormatRadialGaugeLabelEventArgs.prototype, "label", {
        get: function () {
            return this.i.label;
        },
        set: function (value) {
            this.i.label = value;
        },
        enumerable: false,
        configurable: true
    });
    return IgxFormatRadialGaugeLabelEventArgs;
}());

/*
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.
*/
/**
 * Represents event argument for AlignRadialGaugeLabel.
*/
var IgxAlignRadialGaugeLabelEventArgs = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxAlignRadialGaugeLabelEventArgs, _super);
    function IgxAlignRadialGaugeLabelEventArgs() {
        return _super.call(this) || this;
    }
    IgxAlignRadialGaugeLabelEventArgs.prototype.createImplementation = function () {
        return new AlignRadialGaugeLabelEventArgs();
    };
    Object.defineProperty(IgxAlignRadialGaugeLabelEventArgs.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignRadialGaugeLabelEventArgs.prototype, "width", {
        get: function () {
            return this.i.width;
        },
        set: function (value) {
            this.i.width = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignRadialGaugeLabelEventArgs.prototype, "height", {
        get: function () {
            return this.i.height;
        },
        set: function (value) {
            this.i.height = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignRadialGaugeLabelEventArgs.prototype, "offsetX", {
        get: function () {
            return this.i.offsetX;
        },
        set: function (value) {
            this.i.offsetX = value;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxAlignRadialGaugeLabelEventArgs.prototype, "offsetY", {
        get: function () {
            return this.i.offsetY;
        },
        set: function (value) {
            this.i.offsetY = value;
        },
        enumerable: false,
        configurable: true
    });
    return IgxAlignRadialGaugeLabelEventArgs;
}(IgxFormatRadialGaugeLabelEventArgs));

var defaultFont$2 = "Verdana, Arial, \"Segoe UI\", \"Myriad Pro\", sans-serif";
var RadialGaugeStylingDefaults = {
    //"ui-radialgauge-needle": {
    //    "background-color": "#333"
    //},
    //"ui-radialgauge-needleCap": {
    //    "background-color": "#494949",
    //    "border-color": "#494949"
    //},
    "ui-radialgauge-backing": {
        "background-color": "#FFFFFF",
        "border-top-color": "#CCCCCC"
    },
    //"ui-radialgauge-scale": {
    //    "background-color": "#44ACD6",
    //    "border": "none"
    //},
    "ui-radialgauge-tick": {
        "background-color": "rgba(0, 0, 0, 0.35)",
        "border-top-color": "none"
    },
    "ui-radialgauge-minorTick": {
        "background-color": "rgba(0, 0, 0, 0.2)",
        "border-top-color": "none"
    },
    "ui-radialgauge-label": {
        "background-color": FontDefaults.gaugesFontBrush.fill,
        "borde-top-color": "none"
    },
    "ui-radialgauge-range-palette-1": {
        "background-color": "#005E9C",
        "border-top-color": "none"
    },
    "ui-radialgauge-range-palette-2": {
        "background-color": "#0078C8",
        "border-top-color": "none"
    },
    "ui-radialgauge-range-palette-3": {
        "background-color": "#0092F4",
        "border-top-color": "none"
    },
    "ui-radialgauge-range-palette-4": {
        "background-color": "#21A7FF",
        "border-top-color": "none"
    },
    "ui-radialgauge-range-palette-5": {
        "background-color": "#4FB9FF",
        "border-top-color": "none"
    },
    "ui-radialgauge": {
        "font-family": FontDefaults.gaugesFontFamily,
        "font-size": FontDefaults.gaugesFontSize + "px"
    },
    "font-family": FontDefaults.gaugesFontFamily,
    "font-style": "normal",
    "font-weight": FontDefaults.gaugesFontWeight,
    "font-size": FontDefaults.gaugesFontSize + "px",
    "color": FontDefaults.gaugesFontBrush.fill,
    "font-variant": "",
    "line-height": ""
};

/*
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.
*/
var IgxRadialGaugeRangeComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeRangeComponent() {
        this._renderer = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._zoneRunner = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeRangeComponent.prototype.onImplementationCreated = function () {
    };
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "rangeInternal", {
        get: function () {
            return this.i;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeRangeComponent.prototype.createImplementation = function () {
        return new XamRadialGaugeRange();
    };
    IgxRadialGaugeRangeComponent.prototype.ngOnInit = function () {
    };
    IgxRadialGaugeRangeComponent.prototype._provideRenderer = function (renderer) {
        this._renderer = renderer;
        this._zoneRunner = function (act) { return renderer._ngZone.run(act); };
    };
    IgxRadialGaugeRangeComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "name", {
        /**
     * Gets or sets the name of the range.
    */
        get: function () {
            return this.i.v;
        },
        set: function (v) {
            this.i.v = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "brush", {
        /**
         * Gets or sets the brush to use to fill the range.
        */
        get: function () {
            return brushToString(this.i.ao);
        },
        set: function (v) {
            this.i.ao = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "outline", {
        /**
         * Gets or sets the outline to use when rendering the range.
        */
        get: function () {
            return brushToString(this.i.ap);
        },
        set: function (v) {
            this.i.ap = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "startValue", {
        /**
         * Gets or sets the value at which the range starts along the scale.
        */
        get: function () {
            return this.i.o;
        },
        set: function (v) {
            this.i.o = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "endValue", {
        /**
         * Gets or sets the value at which the range ends along the scale.
        */
        get: function () {
            return this.i.j;
        },
        set: function (v) {
            this.i.j = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "innerStartExtent", {
        /**
         * Gets or sets the distance from the center of the gauge (from 0 to 1) at which to start rendering the inner sweep of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.l;
        },
        set: function (v) {
            this.i.l = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "innerEndExtent", {
        /**
         * Gets or sets the distance from the center of the gauge (from 0 to 1) at which to end rendering the inner sweep of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.k;
        },
        set: function (v) {
            this.i.k = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "outerStartExtent", {
        /**
         * Gets or sets the distance from the center of the gauge (from 0 to 1) at which to start rendering the outer sweep of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.n;
        },
        set: function (v) {
            this.i.n = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "outerEndExtent", {
        /**
         * Gets or sets the distance from the center of the gauge (from 0 to 1) at which to end rendering the outer sweep of the range.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.m;
        },
        set: function (v) {
            this.i.m = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "strokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering this range's outline.
        */
        get: function () {
            return this.i.p;
        },
        set: function (v) {
            this.i.p = +v;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeRangeComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        return null;
    };
    Object.defineProperty(IgxRadialGaugeRangeComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeRangeComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxRadialGaugeRangeComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("RadialGaugeRangeComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    IgxRadialGaugeRangeComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    IgxRadialGaugeRangeComponent.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeComponent, deps: [], target: ɵɵFactoryTarget.Component });
    IgxRadialGaugeRangeComponent.ɵcmp = ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxRadialGaugeRangeComponent, selector: "igx-radial-gauge-range", inputs: { name: "name", brush: "brush", outline: "outline", startValue: "startValue", endValue: "endValue", innerStartExtent: "innerStartExtent", innerEndExtent: "innerEndExtent", outerStartExtent: "outerStartExtent", outerEndExtent: "outerEndExtent", strokeThickness: "strokeThickness" }, providers: [], ngImport: i0, template: "", isInline: true });
    return IgxRadialGaugeRangeComponent;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-radial-gauge-range',
                    template: "",
                    providers: []
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { name: [{
                type: Input
            }], brush: [{
                type: Input
            }], outline: [{
                type: Input
            }], startValue: [{
                type: Input
            }], endValue: [{
                type: Input
            }], innerStartExtent: [{
                type: Input
            }], innerEndExtent: [{
                type: Input
            }], outerStartExtent: [{
                type: Input
            }], outerEndExtent: [{
                type: Input
            }], strokeThickness: [{
                type: Input
            }] } });

var IgxRadialGaugeRangeCollection = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxRadialGaugeRangeCollection, _super);
    function IgxRadialGaugeRangeCollection(list) {
        var _this = _super.call(this) || this;
        if (!IgxRadialGaugeRangeComponent.$type) {
            IgxRadialGaugeRangeComponent.$type = markType(IgxRadialGaugeRangeComponent, "IgxRadialGaugeRangeComponent");
        }
        if (list) {
            for (var i = 0; i < list.length; i++) {
                _this.add(list[i]);
            }
        }
        return _this;
    }
    IgxRadialGaugeRangeCollection.prototype._createInnerColl = function () {
        if (!IgxRadialGaugeRangeComponent.$type) {
            IgxRadialGaugeRangeComponent.$type = markType(IgxRadialGaugeRangeComponent, "IgxRadialGaugeRangeComponent");
        }
        var coll = new SyncableObservableCollection$2(IgxRadialGaugeRangeComponent.$type, XamRadialGaugeRange.$type, 0);
        coll.compare = function (ext, int) {
            var comp = ext;
            if (comp._implementation) {
                comp = comp._implementation;
            }
            if (comp.equals) {
                return comp.equals(int);
            }
            return comp === int;
        };
        coll.createTo = function (ext) {
            return ext._implementation;
        };
        coll.createFrom = function (int) {
            var ext = int.externalObject;
            if (!ext) {
                ext = IgxRadialGaugeRangeComponent._createFromInternal(int);
                if (ext) {
                    if (!int.$type && ext._implementation.setNativeElement) {
                        ext._implementation.setNativeElement(int);
                    }
                    else {
                        ext._implementation = int;
                    }
                }
            }
            return ext;
        };
        return coll;
    };
    return IgxRadialGaugeRangeCollection;
}(IgCollection));

/*
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.
*/
/**
 * A radial gauge for displaying a single value on a defined scale.
*/
var IgxRadialGaugeComponent = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeComponent(_renderer, _elRef, _ngZone, _componentFactoryResolver, _injector) {
        var _this = this;
        this._renderer = _renderer;
        this._elRef = _elRef;
        this._ngZone = _ngZone;
        this._componentFactoryResolver = _componentFactoryResolver;
        this._injector = _injector;
        /**
        * The ranges actually present in the chart. Do not directly modify this array.
        * This array's contents can be modified by causing Angular to reproject the child content.
        * Or adding and removing ranges from the manual ranges collection on the ranges property.
        */
        this.actualRanges = [];
        this._ranges = null;
        this._rangesAdapter = null;
        this._zoneRunner = null;
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._alignTitle = null;
        this._alignSubtitle = null;
        this._alignHighlightLabel = null;
        this._formatTitle = null;
        this._formatSubtitle = null;
        this._formatHighlightLabel = null;
        this._formatLabel = null;
        this._alignLabel = null;
        this._valueChanged = null;
        this._highlightValueChanged = null;
        this._actualMinimumValueChange = null;
        this._actualMaximumValueChange = null;
        //super();
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._zoneRunner = function (act) { return _this._ngZone.run(act); };
        this._implementation = this.createImplementation();
        this._container = _renderer.createElement("div");
        _renderer.appendChild(_elRef.element.nativeElement, this._container);
        _renderer.setStyle(this._container, "display", "block");
        _renderer.setStyle(this._container, "width", "100%");
        _renderer.setStyle(this._container, "height", "100%");
        var root;
        root = this._container;
        if (this._container.nativeElement != null) {
            root = this._container.nativeElement;
        }
        var ren = new AngularRenderer(root, this._renderer, window.document, this._ngZone, true, RadialGaugeStylingDefaults);
        this._root = root;
        this._wrapper = ren;
        var gauge = this.i;
        this._gauge = gauge;
        this._rangesAdapter = new CollectionAdapter([], this.i.ranges, this.actualRanges, function (c) { return c.i; }, function (i) {
            i._provideRenderer(_this._wrapper);
            if (_this._root && _this._root.parentElement) {
                i._styling(_this._root, _this, _this);
            }
        }, function (i) { i._provideRenderer(null); });
        gauge.provideContainer(ren);
        ren.addSizeWatcher(function () {
            _this._gauge.containerResized();
        });
    }
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "height", {
        get: function () {
            return this._height;
        },
        set: function (value) {
            this._height = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "height", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "width", {
        get: function () {
            return this._width;
        },
        set: function (value) {
            this._width = value;
            this._renderer.setStyle(this._elRef.element.nativeElement, "width", value);
            this._gauge.containerResized();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "ranges", {
        /**
         * A collection or manually added axes for the chart.
        */
        get: function () {
            var _this = this;
            if (this._ranges === null) {
                var coll = new IgxRadialGaugeRangeCollection();
                var inner = coll._innerColl;
                inner.addListener(function (sender, e) {
                    switch (e.action) {
                        case NotifyCollectionChangedAction.Add:
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Remove:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            break;
                        case NotifyCollectionChangedAction.Replace:
                            _this._rangesAdapter.removeManualItemAt(e.oldStartingIndex);
                            _this._rangesAdapter.insertManualItem(e.newStartingIndex, e.newItems.item(0));
                            break;
                        case NotifyCollectionChangedAction.Reset:
                            _this._rangesAdapter.clearManualItems();
                            break;
                    }
                });
                this._ranges = coll;
            }
            return this._ranges;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeComponent.prototype.ngOnDestroy = function () {
        this._gauge.destroy();
        this._wrapper.destroy();
    };
    IgxRadialGaugeComponent.prototype.createImplementation = function () {
        return new XamRadialGauge();
    };
    IgxRadialGaugeComponent.prototype.ngAfterContentInit = function () {
        this._rangesAdapter.updateQuery(this.contentRanges);
    };
    IgxRadialGaugeComponent.prototype.ngAfterViewInit = function () {
        this.updateStyle();
        this.i.containerResized();
    };
    IgxRadialGaugeComponent.prototype.updateStyle = function () {
        this._styling(this._container, this);
        if (this.actualRanges && this.actualRanges.length > 0) {
            var currRange = this.actualRanges;
            for (var i = 0; i < currRange.length; i++) {
                currRange[i]._styling(this._root, this, this);
            }
        }
    };
    IgxRadialGaugeComponent.prototype._runInZone = function (act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    };
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        } /**
                                     * @hidden
                                     */,
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeComponent._createFromInternal = function (internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        var name = internal.$type.name;
        var externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    };
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "rangeBrushes", {
        /**
     * Gets or sets a collection of brushes to be used as the palette for gauge ranges.
    */
        get: function () {
            return fromBrushCollection(this.i.ak);
        },
        set: function (v) {
            this.i.ak = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "rangeOutlines", {
        /**
         * Gets or sets a collection of brushes to be used as the palette for gauge outlines.
        */
        get: function () {
            return fromBrushCollection(this.i.al);
        },
        set: function (v) {
            this.i.al = toBrushCollection(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minimumValue", {
        /**
         * Gets or sets the minimum value of the scale.
        */
        get: function () {
            return this.i.dz;
        },
        set: function (v) {
            this.i.dz = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualMinimumValue", {
        /**
         * Gets the resolved minimum value of the scale.
        */
        get: function () {
            return this.i.da;
        },
        set: function (v) {
            this.i.da = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "maximumValue", {
        /**
         * Gets or sets the maximum value of the scale.
        */
        get: function () {
            return this.i.dx;
        },
        set: function (v) {
            this.i.dx = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualMaximumValue", {
        /**
         * Gets the resolved maximum value of the scale.
        */
        get: function () {
            return this.i.c9;
        },
        set: function (v) {
            this.i.c9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "interval", {
        /**
         * Gets or sets the interval to use for the scale.
        */
        get: function () {
            return this.i.dt;
        },
        set: function (v) {
            this.i.dt = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "centerX", {
        /**
         * Gets or sets the x position of the center of the gauge with the value ranging from 0 to 1.
        */
        get: function () {
            return this.i.dl;
        },
        set: function (v) {
            this.i.dl = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "centerY", {
        /**
         * Gets or sets the y position of the center of the gauge with the value ranging from 0 to 1.
        */
        get: function () {
            return this.i.dm;
        },
        set: function (v) {
            this.i.dm = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "value", {
        /**
         * Gets or sets the value at which to point the needle of the gauge.
        */
        get: function () {
            return this.i.ff;
        },
        set: function (v) {
            this.i.ff = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightValue", {
        /**
         * Gets or sets the highlight value at which to point the secondary needle of the gauge.
        */
        get: function () {
            return this.i.dr;
        },
        set: function (v) {
            this.i.dr = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualHighlightValueOpacity", {
        /**
         * Gets the actual opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.c8;
        },
        set: function (v) {
            this.i.c8 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightValueOpacity", {
        /**
         * Gets or sets the opacity of the primary needle while highlighting
        */
        get: function () {
            return this.i.ds;
        },
        set: function (v) {
            this.i.ds = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualHighlightValueDisplayMode", {
        /**
         * Gets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.bu;
        },
        set: function (v) {
            this.i.bu = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightValueDisplayMode", {
        /**
         * Gets or sets whether and how to display the highlighted value.
        */
        get: function () {
            return this.i.bv;
        },
        set: function (v) {
            this.i.bv = ensureEnum(HighlightedValueDisplayMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleStartAngle", {
        /**
         * Gets or sets the start angle for the scale in degrees.
        */
        get: function () {
            return this.i.ez;
        },
        set: function (v) {
            this.i.ez = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleEndAngle", {
        /**
         * Gets or sets the end angle for the scale in degrees.
        */
        get: function () {
            return this.i.eu;
        },
        set: function (v) {
            this.i.eu = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleSweepDirection", {
        /**
         * Gets or sets the direction in which the scale sweeps around the center from the start angle to end angle.
        */
        get: function () {
            return this.i.mi;
        },
        set: function (v) {
            this.i.mi = ensureEnum(SweepDirection_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "transitionDuration", {
        /**
         * Gets or sets the number of milliseconds over which changes to the gauge should be animated.
        */
        get: function () {
            return this.i.fg;
        },
        set: function (v) {
            this.i.fg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleBrush", {
        /**
         * Gets or sets the brush to use when rendering the fill of the needle.
        */
        get: function () {
            return brushToString(this.i.ma);
        },
        set: function (v) {
            this.i.ma = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleOutline", {
        /**
         * Gets or sets the brush to use when rendering the outline of the needle.
        */
        get: function () {
            return brushToString(this.i.mb);
        },
        set: function (v) {
            this.i.mb = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleStartExtent", {
        /**
         * Gets or sets the extent (from -1 to 1) at which to start rendering the needle, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.ei;
        },
        set: function (v) {
            this.i.ei = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleEndExtent", {
        /**
         * Gets or sets the extent (from -1 to 1) at which to end rendering the needle, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.ea;
        },
        set: function (v) {
            this.i.ea = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleShape", {
        /**
         * Gets or sets the shape to use when rendering the needle from a number of options.
        */
        get: function () {
            return this.i.a5;
        },
        set: function (v) {
            this.i.a5 = ensureEnum(RadialGaugeNeedleShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleStartWidthRatio", {
        /**
         * Gets or sets the width of the needle at its point using a value from (0 to 1). Note: Only some needle shapes respect this property.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.ej;
        },
        set: function (v) {
            this.i.ej = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleEndWidthRatio", {
        /**
         * Gets or sets the width of the needle at its point using a value from (0 to 1). Note: Only some needle shapes respect this property.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.eb;
        },
        set: function (v) {
            this.i.eb = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleBaseFeatureWidthRatio", {
        /**
         * Gets or sets the width of the needle at its feature which is closest to the base (e.g. a bulb) with a value from 0 to 1. Note: Only some needle shapes respect this property, namely: NeedleWithBulb, RectangleWithBulb, TrapezoidWithBulb, and TriangleWithBulb.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.d9;
        },
        set: function (v) {
            this.i.d9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleBaseFeatureExtent", {
        /**
         * Gets or sets the extent of the feature which is closest to the base (e.g. a bulb) with a value from -1 to 1. Note: Only some needle shapes respect this property, namely: NeedleWithBulb, RectangleWithBulb, TrapezoidWithBulb, and TriangleWithBulb.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.d8;
        },
        set: function (v) {
            this.i.d8 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePointFeatureWidthRatio", {
        /**
         * Gets or sets the width of the needle at its feature which is closest to the point (e.g. the tapering point of a needle) with a value from 0 to 1. Note: Only some needle shapes respect this property.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.eh;
        },
        set: function (v) {
            this.i.eh = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePointFeatureExtent", {
        /**
         * Gets or sets the extent of the feature which is closest to the point (e.g. the tapering point of a needle) with a value from -1 to 1. Note: Only some needle shapes respect this property.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.eg;
        },
        set: function (v) {
            this.i.eg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotWidthRatio", {
        /**
         * Gets or sets the width of the cap of the needle with a value from 0 to 1. Note: Will only take effect if you have a cap set on the needle.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.ef;
        },
        set: function (v) {
            this.i.ef = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotInnerWidthRatio", {
        /**
         * Gets or sets the width of the inner cutout section of the needle cap with a value from 0 to 1. Note: Will only take effect if you have a cap set on the needle that has a cutout section.
        */
        get: function () {
            return this.i.ec;
        },
        set: function (v) {
            this.i.ec = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotShape", {
        /**
         * Gets or sets the shape to use for the needle cap.
        */
        get: function () {
            return this.i.a6;
        },
        set: function (v) {
            this.i.a6 = ensureEnum(RadialGaugePivotShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the scale, measured from the center of the gauge as a value from 0 to 1.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.e0;
        },
        set: function (v) {
            this.i.e0 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotBrush", {
        /**
         * Gets or sets the brush to use for filling the needle cap. Note: this only applies to certain cap shapes.
        */
        get: function () {
            return brushToString(this.i.mc);
        },
        set: function (v) {
            this.i.mc = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotOutline", {
        /**
         * Gets or sets the brush to use for the outlines of the needle cap.
        */
        get: function () {
            return brushToString(this.i.md);
        },
        set: function (v) {
            this.i.md = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needleStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the needle outline.
        */
        get: function () {
            return this.i.ek;
        },
        set: function (v) {
            this.i.ek = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "needlePivotStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use for the outline of the needle cap.
        */
        get: function () {
            return this.i.ed;
        },
        set: function (v) {
            this.i.ed = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the scale as a value from 0 to 1 measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.ev;
        },
        set: function (v) {
            this.i.ev = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "labelExtent", {
        /**
         * Gets or sets the position at which to put the labels as a value from 0 to 1, measured form the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.du;
        },
        set: function (v) {
            this.i.du = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "labelInterval", {
        /**
         * Gets or sets the interval to use for rendering labels. This defaults to be the same interval as the tickmarks on the scale.
        */
        get: function () {
            return this.i.dw;
        },
        set: function (v) {
            this.i.dw = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "tickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the major tickmarks as a value from 0 to 1, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.e7;
        },
        set: function (v) {
            this.i.e7 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "tickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the major tickmarks as a value from 0 to 1, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.e5;
        },
        set: function (v) {
            this.i.e5 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "tickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering ticks.
        */
        get: function () {
            return this.i.e9;
        },
        set: function (v) {
            this.i.e9 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "tickBrush", {
        /**
         * Gets or sets the brush to use for the major tickmarks.
        */
        get: function () {
            return brushToString(this.i.mg);
        },
        set: function (v) {
            this.i.mg = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "fontBrush", {
        /**
         * Gets or sets the brush to use for the label font.
        */
        get: function () {
            return brushToString(this.i.l6);
        },
        set: function (v) {
            this.i.l6 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minorTickStartExtent", {
        /**
         * Gets or sets the position at which to start rendering the minor tickmarks as a value from 0 to 1, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.d4;
        },
        set: function (v) {
            this.i.d4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minorTickEndExtent", {
        /**
         * Gets or sets the position at which to stop rendering the minor tickmarks as a value from 0 to 1, measured from the center of the gauge.
         * Values further from zero than 1 can be used to make this extend further than the normal radius of the gauge.
        */
        get: function () {
            return this.i.d2;
        },
        set: function (v) {
            this.i.d2 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minorTickStrokeThickness", {
        /**
         * Gets or sets the stroke thickness to use when rendering minor ticks.
        */
        get: function () {
            return this.i.d6;
        },
        set: function (v) {
            this.i.d6 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minorTickBrush", {
        /**
         * Gets or sets the brush to use for the minor tickmarks.
        */
        get: function () {
            return brushToString(this.i.l9);
        },
        set: function (v) {
            this.i.l9 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "minorTickCount", {
        /**
         * Gets or sets the number of minor tickmarks to place between major tickmarks.
        */
        get: function () {
            return this.i.d1;
        },
        set: function (v) {
            this.i.d1 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleBrush", {
        /**
         * Gets or sets the brush to use to fill the background of the scale.
        */
        get: function () {
            return brushToString(this.i.me);
        },
        set: function (v) {
            this.i.me = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingBrush", {
        /**
         * Gets or sets the brush to use to fill the backing of the gauge.
        */
        get: function () {
            return brushToString(this.i.l4);
        },
        set: function (v) {
            this.i.l4 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingOutline", {
        /**
         * Gets or sets the brush to use for the outline of the backing.
        */
        get: function () {
            return brushToString(this.i.l5);
        },
        set: function (v) {
            this.i.l5 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingStrokeThickness", {
        /**
         * Gets or sets the stroke thickness of the backing outline.
        */
        get: function () {
            return this.i.dj;
        },
        set: function (v) {
            this.i.dj = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingOuterExtent", {
        /**
         * Gets or sets the outer extent of the gauge backing.
        */
        get: function () {
            return this.i.dg;
        },
        set: function (v) {
            this.i.dg = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingOversweep", {
        /**
         * Gets or sets the over sweep angle to apply to the backing if it is displaying fitted (in degrees). Must be greater or equal to 0.
        */
        get: function () {
            return this.i.di;
        },
        set: function (v) {
            this.i.di = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleOversweep", {
        /**
         * Gets or sets the extra degrees of sweep to apply to the scale background. Must be greater or equal to 0.
        */
        get: function () {
            return this.i.ex;
        },
        set: function (v) {
            this.i.ex = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "scaleOversweepShape", {
        /**
         * Gets or sets the oversweep shape to use for the excess fill area for the scale.
        */
        get: function () {
            return this.i.a8;
        },
        set: function (v) {
            this.i.a8 = ensureEnum(RadialGaugeScaleOversweepShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingCornerRadius", {
        /**
         * Gets or sets the corner rounding radius to use for the fitted scale backings.
        */
        get: function () {
            return this.i.dc;
        },
        set: function (v) {
            this.i.dc = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingInnerExtent", {
        /**
         * Gets or sets the inner extent of the gauge backing.
        */
        get: function () {
            return this.i.de;
        },
        set: function (v) {
            this.i.de = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "backingShape", {
        /**
         * Gets or sets the type of shape to use for the backing of the gauge.
        */
        get: function () {
            return this.i.a0;
        },
        set: function (v) {
            this.i.a0 = ensureEnum(RadialGaugeBackingShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "radiusMultiplier", {
        /**
         * Gets or sets the multiplying factor to apply to the normal radius of the gauge.
         * The radius of the gauge is defined by the minimum of the width and height of the control divided by 2.0.
         * This introduces a multiplicative factor to that value.
        */
        get: function () {
            return this.i.ep;
        },
        set: function (v) {
            this.i.ep = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "duplicateLabelOmissionStrategy", {
        /**
         * Gets or sets the strategy to use for omitting labels if the first and last label have the same value.
        */
        get: function () {
            return this.i.a1;
        },
        set: function (v) {
            this.i.a1 = ensureEnum(RadialGaugeDuplicateLabelOmissionStrategy_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "isNeedleDraggingEnabled", {
        /**
         * Gets or sets whether needle dragging is enabled or not.
        */
        get: function () {
            return this.i.cf;
        },
        set: function (v) {
            this.i.cf = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "isNeedleDraggingConstrained", {
        /**
         * Gets or sets whether the needle is constrained within the minimum and maximum value range during dragging.
        */
        get: function () {
            return this.i.ce;
        },
        set: function (v) {
            this.i.ce = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "isHighlightNeedleDraggingEnabled", {
        /**
         * Gets or sets whether needle dragging is enabled or not.
        */
        get: function () {
            return this.i.cd;
        },
        set: function (v) {
            this.i.cd = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "isHighlightNeedleDraggingConstrained", {
        /**
         * Gets or sets whether the needle is constrained within the minimum and maximum value range during dragging.
        */
        get: function () {
            return this.i.cc;
        },
        set: function (v) {
            this.i.cc = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "font", {
        /**
         * Gets or sets the font.
        */
        get: function () {
            return this.i.fv;
        },
        set: function (v) {
            this.i.fv = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "labelFormat", {
        /**
         * Gets or sets the label composite format used when creating label values.
        */
        get: function () {
            return this.i.gi;
        },
        set: function (v) {
            this.i.gi = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "labelFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the LabelFormat string.
        */
        get: function () {
            return this.i.ah;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.ah = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "animating", {
        /**
         * Gets a value indicating whether the radial gauge is currently animating.
        */
        get: function () {
            return this.i.b5;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "transitionProgress", {
        /**
         * Gets the transition progress of the animation when the control is animating.
        */
        get: function () {
            return this.i.fd;
        },
        set: function (v) {
            this.i.fd = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "pixelScalingRatio", {
        /**
         * Gets or sets the scaling value used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.eo;
        },
        set: function (v) {
            this.i.eo = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualPixelScalingRatio", {
        /**
         * Gets the actual pixel scaling ratio used to affect the pixel density of the control.
         * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
         * to appear blurry.
        */
        get: function () {
            return this.i.db;
        },
        set: function (v) {
            this.i.db = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "opticalScalingRatio", {
        /**
         * Gets the optical scaling ratio calculated by dividing minimum gauge size by value of OpticalScalingSize property.
        */
        get: function () {
            return this.i.em;
        },
        set: function (v) {
            this.i.em = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "opticalScalingEnabled", {
        /**
         * Gets or sets the title uses optical scaling when the gauge is resized.
        */
        get: function () {
            return this.i.ck;
        },
        set: function (v) {
            this.i.ck = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "opticalScalingSize", {
        /**
         * Gets or sets the size at which labels have 100% optical scaling, e.g. labels will have larger fonts when gauge's size is larger
         * - labels will have 200% larger fonts when gauge's size is 1000 and this property is set to 500
         * - labels will have 50% smaller fonts when gauge's size is 250 and this property is set to 500
        */
        get: function () {
            return this.i.en;
        },
        set: function (v) {
            this.i.en = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleText", {
        /**
         * Gets or sets the text displayed in the title of the gauge.
        */
        get: function () {
            return this.i.id;
        },
        set: function (v) {
            this.i.id = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleText", {
        /**
         * Gets or sets the text displayed in the subtitle of the gauge.
        */
        get: function () {
            return this.i.hy;
        },
        set: function (v) {
            this.i.hy = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleAngle", {
        /**
         * Gets or sets the angle for the inner label in degrees.
        */
        get: function () {
            return this.i.fb;
        },
        set: function (v) {
            this.i.fb = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleAngle", {
        /**
         * Gets or sets the angle for the inner label in degrees.
        */
        get: function () {
            return this.i.e3;
        },
        set: function (v) {
            this.i.e3 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleExtent", {
        /**
         * Gets or sets the angle for the inner label in degrees.
        */
        get: function () {
            return this.i.fc;
        },
        set: function (v) {
            this.i.fc = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleExtent", {
        /**
         * Gets or sets the angle for the inner label in degrees.
        */
        get: function () {
            return this.i.e4;
        },
        set: function (v) {
            this.i.e4 = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleBrush", {
        /**
         * Gets or sets the brush to use for rendering inner unit text
        */
        get: function () {
            return brushToString(this.i.mh);
        },
        set: function (v) {
            this.i.mh = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleBrush", {
        /**
         * Gets or sets the brush to use for rendering inner unit text
        */
        get: function () {
            return brushToString(this.i.mf);
        },
        set: function (v) {
            this.i.mf = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleDisplaysValue", {
        /**
         * Gets or sets the title show values of the gauge.
        */
        get: function () {
            return this.i.co;
        },
        set: function (v) {
            this.i.co = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleDisplaysValue", {
        /**
         * Gets or sets the subtitle show values of the gauge.
        */
        get: function () {
            return this.i.cm;
        },
        set: function (v) {
            this.i.cm = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleSnapsToNeedlePivot", {
        /**
         * Gets or sets whether or not the title should snap angle position to needle pivot (opposite of needle pointer).
        */
        get: function () {
            return this.i.cp;
        },
        set: function (v) {
            this.i.cp = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleSnapsToNeedlePivot", {
        /**
         * Gets or sets whether or not the subtitle should snap angle position to needle pivot (opposite of needle pointer).
        */
        get: function () {
            return this.i.cn;
        },
        set: function (v) {
            this.i.cn = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleFormat", {
        /**
         * Gets or sets the subtitle format used when creating subtitle label.
        */
        get: function () {
            return this.i.hu;
        },
        set: function (v) {
            this.i.hu = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the SubtitleFormat string.
        */
        get: function () {
            return this.i.ai;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.ai = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleFormat", {
        /**
         * Gets or sets the title format used when creating title label.
        */
        get: function () {
            return this.i.h9;
        },
        set: function (v) {
            this.i.h9 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the TitleFormat string.
        */
        get: function () {
            return this.i.aj;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aj = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelText", {
        /**
         * Gets or sets the text displayed for the highlight label of the gauge.
        */
        get: function () {
            return this.i.f6;
        },
        set: function (v) {
            this.i.f6 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelAngle", {
        /**
         * Gets or sets the angle for the highlight label in degrees.
        */
        get: function () {
            return this.i.dp;
        },
        set: function (v) {
            this.i.dp = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelExtent", {
        /**
         * Gets or sets the angle for the highlight label in degrees.
        */
        get: function () {
            return this.i.dq;
        },
        set: function (v) {
            this.i.dq = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelBrush", {
        /**
         * Gets or sets the brush to use for rendering highlight text
        */
        get: function () {
            return brushToString(this.i.l8);
        },
        set: function (v) {
            this.i.l8 = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelDisplaysValue", {
        /**
         * Gets or sets the highlight label shows values of the gauge.
        */
        get: function () {
            return this.i.b7;
        },
        set: function (v) {
            this.i.b7 = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelSnapsToNeedlePivot", {
        /**
         * Gets or sets whether or not the highlight label should snap angle position to needle pivot (opposite of needle pointer).
        */
        get: function () {
            return this.i.b8;
        },
        set: function (v) {
            this.i.b8 = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelFormat", {
        /**
         * Gets or sets the format used when creating highlight label.
        */
        get: function () {
            return this.i.f2;
        },
        set: function (v) {
            this.i.f2 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the HighlightLabelFormat string.
        */
        get: function () {
            return this.i.ag;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.ag = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightLabelTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.bq == null) {
                return null;
            }
            return this.i.bq.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.bq = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "subtitleTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.br == null) {
                return null;
            }
            return this.i.br.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.br = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "titleTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.bs == null) {
                return null;
            }
            return this.i.bs.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.bs = fi;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeComponent.prototype.findByName = function (name) {
        if (this.findEphemera) {
            if (name && name.indexOf("@@e:") == 0) {
                return this.findEphemera(name);
            }
        }
        if (this.ranges != null && this.ranges.findByName && this.ranges.findByName(name)) {
            return this.ranges.findByName(name);
        }
        if (this.labelFormatSpecifiers != null && arrayFindByName(this.labelFormatSpecifiers, name)) {
            return arrayFindByName(this.labelFormatSpecifiers, name);
        }
        if (this.subtitleFormatSpecifiers != null && arrayFindByName(this.subtitleFormatSpecifiers, name)) {
            return arrayFindByName(this.subtitleFormatSpecifiers, name);
        }
        if (this.titleFormatSpecifiers != null && arrayFindByName(this.titleFormatSpecifiers, name)) {
            return arrayFindByName(this.titleFormatSpecifiers, name);
        }
        if (this.highlightLabelFormatSpecifiers != null && arrayFindByName(this.highlightLabelFormatSpecifiers, name)) {
            return arrayFindByName(this.highlightLabelFormatSpecifiers, name);
        }
        return null;
    };
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "hasUserValues", {
        get: function () {
            return this._hasUserValues;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeComponent.prototype.__m = function (propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    };
    IgxRadialGaugeComponent.prototype._styling = function (container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        var genericPrefix = "";
        var typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("RadialGaugeComponent");
        var additionalPrefixes = [];
        var prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        var b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            var basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            var parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            var parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    };
    /**
 * Scales a value on the gauge's main scale to an angle around the center point of the gauge, in radians.

* @param value  * The value to scale.
*/
    IgxRadialGaugeComponent.prototype.scaleValue = function (value) {
        var iv = this.i.e2(value);
        return (iv);
    };
    /**
     * Unscales a value from an angle in radians to the represented value along the main scale of the gauge.
    
    * @param angle  * The angle in radians to unscale to a value.
    */
    IgxRadialGaugeComponent.prototype.unscaleValue = function (angle) {
        var iv = this.i.fe(angle);
        return (iv);
    };
    /**
     * Gets the value for the main scale of the gauge for a given point within the bounds of the gauge.
    
    * @param point  * The point for which to retrieve the associated value.
    */
    IgxRadialGaugeComponent.prototype.getValueForPoint = function (point) {
        var iv = this.i.dn(toPoint(point));
        return (iv);
    };
    IgxRadialGaugeComponent.prototype.getPointForValue = function (value, extent) {
        var iv = this.i.mk(value, extent);
        return fromPoint(iv);
    };
    IgxRadialGaugeComponent.prototype.styleUpdated = function () {
        this.i.je();
    };
    IgxRadialGaugeComponent.prototype.needleContainsPoint = function (point, isFinger) {
        var iv = this.i.needleContainsPoint(toPoint(point), isFinger);
        return (iv);
    };
    IgxRadialGaugeComponent.prototype.highlightNeedleContainsPoint = function (point, isFinger) {
        var iv = this.i.highlightNeedleContainsPoint(toPoint(point), isFinger);
        return (iv);
    };
    /**
     * Called by the UI framework to provide a UI container for rendering this control.
    
    * @param container  * The UI container element.
    */
    IgxRadialGaugeComponent.prototype.provideContainer = function (container) {
        this.i.provideContainer(container);
    };
    IgxRadialGaugeComponent.prototype.containerResized = function () {
        this.i.containerResized();
    };
    /**
     * Use to force the radial gauge to finish any deferred work before printing or evaluating its visual.
     * This should only be called if the visual of the radial gauge needs to be synchronously saved or evaluated.
     * Calling this method too often will hinder the performance of the radial gauge.
    
    */
    IgxRadialGaugeComponent.prototype.flush = function () {
        this.i.ir();
    };
    /**
     * Returns visuals as a serialized string.
    
    */
    IgxRadialGaugeComponent.prototype.exportSerializedVisualData = function () {
        var iv = this.i.fu();
        return (iv);
    };
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "alignTitle", {
        /**
         * Event which is raised when a title of the gauge is aligned and styled.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the label will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._alignTitle == null) {
                this._alignTitle = new EventEmitter();
                this.i.alignTitle = delegateCombine(this.i.alignTitle, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignTitle) {
                            _this.beforeAlignTitle(_this, outerArgs);
                        }
                        _this._alignTitle.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignTitle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "alignSubtitle", {
        /**
         * Event which is raised when a subtitle of the gauge is aligned and styled.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the label will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._alignSubtitle == null) {
                this._alignSubtitle = new EventEmitter();
                this.i.alignSubtitle = delegateCombine(this.i.alignSubtitle, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignSubtitle) {
                            _this.beforeAlignSubtitle(_this, outerArgs);
                        }
                        _this._alignSubtitle.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignSubtitle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "alignHighlightLabel", {
        /**
         * Event which is raised when a highlight label of the gauge is aligned and styled.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the label will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._alignHighlightLabel == null) {
                this._alignHighlightLabel = new EventEmitter();
                this.i.alignHighlightLabel = delegateCombine(this.i.alignHighlightLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignHighlightLabel) {
                            _this.beforeAlignHighlightLabel(_this, outerArgs);
                        }
                        _this._alignHighlightLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignHighlightLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "formatTitle", {
        /**
         * Event which is raised when a title of the gauge is formatted.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the title will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the title.
         * Use ui.label to obtain the string value of the title.
        */
        get: function () {
            var _this = this;
            if (this._formatTitle == null) {
                this._formatTitle = new EventEmitter();
                this.i.formatTitle = delegateCombine(this.i.formatTitle, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatTitle) {
                            _this.beforeFormatTitle(_this, outerArgs);
                        }
                        _this._formatTitle.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatTitle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "formatSubtitle", {
        /**
         * Event which is raised when a subtitle of the gauge is formatted.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the subtitle will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the subtitle.
         * Use ui.label to obtain the string value of the subtitle.
        */
        get: function () {
            var _this = this;
            if (this._formatSubtitle == null) {
                this._formatSubtitle = new EventEmitter();
                this.i.formatSubtitle = delegateCombine(this.i.formatSubtitle, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatSubtitle) {
                            _this.beforeFormatSubtitle(_this, outerArgs);
                        }
                        _this._formatSubtitle.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatSubtitle;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "formatHighlightLabel", {
        /**
         * Event which is raised when a highlight label of the gauge is formatted.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the title will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the title.
         * Use ui.label to obtain the string value of the title.
        */
        get: function () {
            var _this = this;
            if (this._formatHighlightLabel == null) {
                this._formatHighlightLabel = new EventEmitter();
                this.i.formatHighlightLabel = delegateCombine(this.i.formatHighlightLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatHighlightLabel) {
                            _this.beforeFormatHighlightLabel(_this, outerArgs);
                        }
                        _this._formatHighlightLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatHighlightLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "formatLabel", {
        /**
         * Event which is raised when a label of the gauge is formatted.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the label will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
        */
        get: function () {
            var _this = this;
            if (this._formatLabel == null) {
                this._formatLabel = new EventEmitter();
                this.i.formatLabel = delegateCombine(this.i.formatLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxFormatRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeFormatLabel) {
                            _this.beforeFormatLabel(_this, outerArgs);
                        }
                        _this._formatLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._formatLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "alignLabel", {
        /**
         * Event which is raised when a label of the gauge is aligned along the scale.
         * Function takes first argument null and second argument ui.
         * Use ui.owner to obtain reference to gauge widget.
         * Use ui.actualMinimumValue to obtain the minimum value of gauge scale.
         * Use ui.actualMaximumValue to obtain the maximum value of gauge scale.
         * Use ui.startAngle to obtain the starting angle of gauge scale.
         * Use ui.endAngle to obtain the ending angle of gauge scale.
         * Use ui.angle to obtain the angle on the gauge scale at which the label will be located.
         * Use ui.value to obtain the value on the gauge scale associated with the label.
         * Use ui.label to obtain the string value of the label.
         * Use ui.width to obtain the width of the label.
         * Use ui.height to obtain the height of the label.
         * Use ui.offsetX to obtain the X offset of the label on the gauge scale.
         * Use ui.offsetY to obtain the Y offset of the label on the gauge scale.
        */
        get: function () {
            var _this = this;
            if (this._alignLabel == null) {
                this._alignLabel = new EventEmitter();
                this.i.alignLabel = delegateCombine(this.i.alignLabel, function (o, e) {
                    _this._runInZone(function () {
                        var outerArgs = new IgxAlignRadialGaugeLabelEventArgs();
                        outerArgs._provideImplementation(e);
                        if (_this.beforeAlignLabel) {
                            _this.beforeAlignLabel(_this, outerArgs);
                        }
                        _this._alignLabel.emit({
                            sender: _this,
                            args: outerArgs
                        });
                    });
                });
            }
            return this._alignLabel;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "valueChanged", {
        /**
         * Occurs when the Value property changes.
        */
        get: function () {
            var _this = this;
            if (this._valueChanged == null) {
                this._valueChanged = new EventEmitter();
                this.i.valueChanged = delegateCombine(this.i.valueChanged, function (o, e) {
                    var outerArgs = new IgxDoubleValueChangedEventArgs();
                    outerArgs._provideImplementation(e);
                    if (_this.beforeValueChanged) {
                        _this.beforeValueChanged(_this, outerArgs);
                    }
                    _this._valueChanged.emit({
                        sender: _this,
                        args: outerArgs
                    });
                });
            }
            return this._valueChanged;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "highlightValueChanged", {
        /**
         * Occurs when the Hightlight Value property changes.
        */
        get: function () {
            var _this = this;
            if (this._highlightValueChanged == null) {
                this._highlightValueChanged = new EventEmitter();
                this.i.highlightValueChanged = delegateCombine(this.i.highlightValueChanged, function (o, e) {
                    var outerArgs = new IgxDoubleValueChangedEventArgs();
                    outerArgs._provideImplementation(e);
                    if (_this.beforeHighlightValueChanged) {
                        _this.beforeHighlightValueChanged(_this, outerArgs);
                    }
                    _this._highlightValueChanged.emit({
                        sender: _this,
                        args: outerArgs
                    });
                });
            }
            return this._highlightValueChanged;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualMinimumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMinimumValueChange == null) {
                this._actualMinimumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMinimumValue;
                    if (_this.beforeActualMinimumValueChange) {
                        _this.beforeActualMinimumValueChange(_this, ext);
                    }
                    _this._actualMinimumValueChange.emit(ext);
                });
            }
            return this._actualMinimumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxRadialGaugeComponent.prototype, "actualMaximumValueChange", {
        get: function () {
            var _this = this;
            if (this._actualMaximumValueChange == null) {
                this._actualMaximumValueChange = new EventEmitter();
                this.i.propertyChanged = delegateCombine(this.i.propertyChanged, function (o, e) {
                    var iv = e;
                    var ext = _this.actualMaximumValue;
                    if (_this.beforeActualMaximumValueChange) {
                        _this.beforeActualMaximumValueChange(_this, ext);
                    }
                    _this._actualMaximumValueChange.emit(ext);
                });
            }
            return this._actualMaximumValueChange;
        },
        enumerable: false,
        configurable: true
    });
    IgxRadialGaugeComponent.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeComponent, deps: [{ token: Renderer2 }, { token: ViewContainerRef }, { token: NgZone }, { token: ComponentFactoryResolver }, { token: Injector }], target: ɵɵFactoryTarget.Component });
    IgxRadialGaugeComponent.ɵcmp = ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxRadialGaugeComponent, selector: "igx-radial-gauge", inputs: { height: "height", width: "width", rangeBrushes: "rangeBrushes", rangeOutlines: "rangeOutlines", minimumValue: "minimumValue", actualMinimumValue: "actualMinimumValue", maximumValue: "maximumValue", actualMaximumValue: "actualMaximumValue", interval: "interval", centerX: "centerX", centerY: "centerY", value: "value", highlightValue: "highlightValue", actualHighlightValueOpacity: "actualHighlightValueOpacity", highlightValueOpacity: "highlightValueOpacity", actualHighlightValueDisplayMode: "actualHighlightValueDisplayMode", highlightValueDisplayMode: "highlightValueDisplayMode", scaleStartAngle: "scaleStartAngle", scaleEndAngle: "scaleEndAngle", scaleSweepDirection: "scaleSweepDirection", transitionDuration: "transitionDuration", needleBrush: "needleBrush", needleOutline: "needleOutline", needleStartExtent: "needleStartExtent", needleEndExtent: "needleEndExtent", needleShape: "needleShape", needleStartWidthRatio: "needleStartWidthRatio", needleEndWidthRatio: "needleEndWidthRatio", needleBaseFeatureWidthRatio: "needleBaseFeatureWidthRatio", needleBaseFeatureExtent: "needleBaseFeatureExtent", needlePointFeatureWidthRatio: "needlePointFeatureWidthRatio", needlePointFeatureExtent: "needlePointFeatureExtent", needlePivotWidthRatio: "needlePivotWidthRatio", needlePivotInnerWidthRatio: "needlePivotInnerWidthRatio", needlePivotShape: "needlePivotShape", scaleStartExtent: "scaleStartExtent", needlePivotBrush: "needlePivotBrush", needlePivotOutline: "needlePivotOutline", needleStrokeThickness: "needleStrokeThickness", needlePivotStrokeThickness: "needlePivotStrokeThickness", scaleEndExtent: "scaleEndExtent", labelExtent: "labelExtent", labelInterval: "labelInterval", tickStartExtent: "tickStartExtent", tickEndExtent: "tickEndExtent", tickStrokeThickness: "tickStrokeThickness", tickBrush: "tickBrush", fontBrush: "fontBrush", minorTickStartExtent: "minorTickStartExtent", minorTickEndExtent: "minorTickEndExtent", minorTickStrokeThickness: "minorTickStrokeThickness", minorTickBrush: "minorTickBrush", minorTickCount: "minorTickCount", scaleBrush: "scaleBrush", backingBrush: "backingBrush", backingOutline: "backingOutline", backingStrokeThickness: "backingStrokeThickness", backingOuterExtent: "backingOuterExtent", backingOversweep: "backingOversweep", scaleOversweep: "scaleOversweep", scaleOversweepShape: "scaleOversweepShape", backingCornerRadius: "backingCornerRadius", backingInnerExtent: "backingInnerExtent", backingShape: "backingShape", radiusMultiplier: "radiusMultiplier", duplicateLabelOmissionStrategy: "duplicateLabelOmissionStrategy", isNeedleDraggingEnabled: "isNeedleDraggingEnabled", isNeedleDraggingConstrained: "isNeedleDraggingConstrained", isHighlightNeedleDraggingEnabled: "isHighlightNeedleDraggingEnabled", isHighlightNeedleDraggingConstrained: "isHighlightNeedleDraggingConstrained", font: "font", labelFormat: "labelFormat", labelFormatSpecifiers: "labelFormatSpecifiers", transitionProgress: "transitionProgress", pixelScalingRatio: "pixelScalingRatio", actualPixelScalingRatio: "actualPixelScalingRatio", opticalScalingRatio: "opticalScalingRatio", opticalScalingEnabled: "opticalScalingEnabled", opticalScalingSize: "opticalScalingSize", titleText: "titleText", subtitleText: "subtitleText", titleAngle: "titleAngle", subtitleAngle: "subtitleAngle", titleExtent: "titleExtent", subtitleExtent: "subtitleExtent", titleBrush: "titleBrush", subtitleBrush: "subtitleBrush", titleDisplaysValue: "titleDisplaysValue", subtitleDisplaysValue: "subtitleDisplaysValue", titleSnapsToNeedlePivot: "titleSnapsToNeedlePivot", subtitleSnapsToNeedlePivot: "subtitleSnapsToNeedlePivot", subtitleFormat: "subtitleFormat", subtitleFormatSpecifiers: "subtitleFormatSpecifiers", titleFormat: "titleFormat", titleFormatSpecifiers: "titleFormatSpecifiers", highlightLabelText: "highlightLabelText", highlightLabelAngle: "highlightLabelAngle", highlightLabelExtent: "highlightLabelExtent", highlightLabelBrush: "highlightLabelBrush", highlightLabelDisplaysValue: "highlightLabelDisplaysValue", highlightLabelSnapsToNeedlePivot: "highlightLabelSnapsToNeedlePivot", highlightLabelFormat: "highlightLabelFormat", highlightLabelFormatSpecifiers: "highlightLabelFormatSpecifiers", highlightLabelTextStyle: "highlightLabelTextStyle", subtitleTextStyle: "subtitleTextStyle", titleTextStyle: "titleTextStyle" }, outputs: { alignTitle: "alignTitle", alignSubtitle: "alignSubtitle", alignHighlightLabel: "alignHighlightLabel", formatTitle: "formatTitle", formatSubtitle: "formatSubtitle", formatHighlightLabel: "formatHighlightLabel", formatLabel: "formatLabel", alignLabel: "alignLabel", valueChanged: "valueChanged", highlightValueChanged: "highlightValueChanged", actualMinimumValueChange: "actualMinimumValueChange", actualMaximumValueChange: "actualMaximumValueChange" }, host: { classAttribute: "igx-radial-gauge ig-radial-gauge" }, providers: [], queries: [{ propertyName: "contentRanges", predicate: IgxRadialGaugeRangeComponent }], viewQueries: [{ propertyName: "_dynamicContent", first: true, predicate: ["dynamicContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #dynamicContent></ng-container>", isInline: true, styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"], changeDetection: ChangeDetectionStrategy.OnPush });
    return IgxRadialGaugeComponent;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-radial-gauge',
                    template: "<ng-container #dynamicContent></ng-container>",
                    changeDetection: ChangeDetectionStrategy.OnPush,
                    providers: [],
                    host: { 'class': 'igx-radial-gauge ig-radial-gauge' },
                    styles: ["\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t"]
                }]
        }], ctorParameters: function () { return [{ type: Renderer2 }, { type: ViewContainerRef }, { type: NgZone }, { type: ComponentFactoryResolver }, { type: Injector }]; }, propDecorators: { _dynamicContent: [{
                type: ViewChild,
                args: ["dynamicContent", { read: ViewContainerRef, static: true }]
            }], height: [{
                type: Input
            }], width: [{
                type: Input
            }], contentRanges: [{
                type: ContentChildren,
                args: [IgxRadialGaugeRangeComponent]
            }], rangeBrushes: [{
                type: Input
            }], rangeOutlines: [{
                type: Input
            }], minimumValue: [{
                type: Input
            }], actualMinimumValue: [{
                type: Input
            }], maximumValue: [{
                type: Input
            }], actualMaximumValue: [{
                type: Input
            }], interval: [{
                type: Input
            }], centerX: [{
                type: Input
            }], centerY: [{
                type: Input
            }], value: [{
                type: Input
            }], highlightValue: [{
                type: Input
            }], actualHighlightValueOpacity: [{
                type: Input
            }], highlightValueOpacity: [{
                type: Input
            }], actualHighlightValueDisplayMode: [{
                type: Input
            }], highlightValueDisplayMode: [{
                type: Input
            }], scaleStartAngle: [{
                type: Input
            }], scaleEndAngle: [{
                type: Input
            }], scaleSweepDirection: [{
                type: Input
            }], transitionDuration: [{
                type: Input
            }], needleBrush: [{
                type: Input
            }], needleOutline: [{
                type: Input
            }], needleStartExtent: [{
                type: Input
            }], needleEndExtent: [{
                type: Input
            }], needleShape: [{
                type: Input
            }], needleStartWidthRatio: [{
                type: Input
            }], needleEndWidthRatio: [{
                type: Input
            }], needleBaseFeatureWidthRatio: [{
                type: Input
            }], needleBaseFeatureExtent: [{
                type: Input
            }], needlePointFeatureWidthRatio: [{
                type: Input
            }], needlePointFeatureExtent: [{
                type: Input
            }], needlePivotWidthRatio: [{
                type: Input
            }], needlePivotInnerWidthRatio: [{
                type: Input
            }], needlePivotShape: [{
                type: Input
            }], scaleStartExtent: [{
                type: Input
            }], needlePivotBrush: [{
                type: Input
            }], needlePivotOutline: [{
                type: Input
            }], needleStrokeThickness: [{
                type: Input
            }], needlePivotStrokeThickness: [{
                type: Input
            }], scaleEndExtent: [{
                type: Input
            }], labelExtent: [{
                type: Input
            }], labelInterval: [{
                type: Input
            }], tickStartExtent: [{
                type: Input
            }], tickEndExtent: [{
                type: Input
            }], tickStrokeThickness: [{
                type: Input
            }], tickBrush: [{
                type: Input
            }], fontBrush: [{
                type: Input
            }], minorTickStartExtent: [{
                type: Input
            }], minorTickEndExtent: [{
                type: Input
            }], minorTickStrokeThickness: [{
                type: Input
            }], minorTickBrush: [{
                type: Input
            }], minorTickCount: [{
                type: Input
            }], scaleBrush: [{
                type: Input
            }], backingBrush: [{
                type: Input
            }], backingOutline: [{
                type: Input
            }], backingStrokeThickness: [{
                type: Input
            }], backingOuterExtent: [{
                type: Input
            }], backingOversweep: [{
                type: Input
            }], scaleOversweep: [{
                type: Input
            }], scaleOversweepShape: [{
                type: Input
            }], backingCornerRadius: [{
                type: Input
            }], backingInnerExtent: [{
                type: Input
            }], backingShape: [{
                type: Input
            }], radiusMultiplier: [{
                type: Input
            }], duplicateLabelOmissionStrategy: [{
                type: Input
            }], isNeedleDraggingEnabled: [{
                type: Input
            }], isNeedleDraggingConstrained: [{
                type: Input
            }], isHighlightNeedleDraggingEnabled: [{
                type: Input
            }], isHighlightNeedleDraggingConstrained: [{
                type: Input
            }], font: [{
                type: Input
            }], labelFormat: [{
                type: Input
            }], labelFormatSpecifiers: [{
                type: Input
            }], transitionProgress: [{
                type: Input
            }], pixelScalingRatio: [{
                type: Input
            }], actualPixelScalingRatio: [{
                type: Input
            }], opticalScalingRatio: [{
                type: Input
            }], opticalScalingEnabled: [{
                type: Input
            }], opticalScalingSize: [{
                type: Input
            }], titleText: [{
                type: Input
            }], subtitleText: [{
                type: Input
            }], titleAngle: [{
                type: Input
            }], subtitleAngle: [{
                type: Input
            }], titleExtent: [{
                type: Input
            }], subtitleExtent: [{
                type: Input
            }], titleBrush: [{
                type: Input
            }], subtitleBrush: [{
                type: Input
            }], titleDisplaysValue: [{
                type: Input
            }], subtitleDisplaysValue: [{
                type: Input
            }], titleSnapsToNeedlePivot: [{
                type: Input
            }], subtitleSnapsToNeedlePivot: [{
                type: Input
            }], subtitleFormat: [{
                type: Input
            }], subtitleFormatSpecifiers: [{
                type: Input
            }], titleFormat: [{
                type: Input
            }], titleFormatSpecifiers: [{
                type: Input
            }], highlightLabelText: [{
                type: Input
            }], highlightLabelAngle: [{
                type: Input
            }], highlightLabelExtent: [{
                type: Input
            }], highlightLabelBrush: [{
                type: Input
            }], highlightLabelDisplaysValue: [{
                type: Input
            }], highlightLabelSnapsToNeedlePivot: [{
                type: Input
            }], highlightLabelFormat: [{
                type: Input
            }], highlightLabelFormatSpecifiers: [{
                type: Input
            }], highlightLabelTextStyle: [{
                type: Input
            }], subtitleTextStyle: [{
                type: Input
            }], titleTextStyle: [{
                type: Input
            }], alignTitle: [{
                type: Output
            }], alignSubtitle: [{
                type: Output
            }], alignHighlightLabel: [{
                type: Output
            }], formatTitle: [{
                type: Output
            }], formatSubtitle: [{
                type: Output
            }], formatHighlightLabel: [{
                type: Output
            }], formatLabel: [{
                type: Output
            }], alignLabel: [{
                type: Output
            }], valueChanged: [{
                type: Output
            }], highlightValueChanged: [{
                type: Output
            }], actualMinimumValueChange: [{
                type: Output
            }], actualMaximumValueChange: [{
                type: Output
            }] } });

/*
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.
*/
var IgxRadialGaugeRangeModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeRangeModule() {
    }
    IgxRadialGaugeRangeModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeRangeModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeModule, declarations: [IgxRadialGaugeRangeComponent], imports: [CommonModule], exports: [IgxRadialGaugeRangeComponent] });
    IgxRadialGaugeRangeModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeModule, imports: [[CommonModule,
            ]] });
    return IgxRadialGaugeRangeModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [IgxRadialGaugeRangeComponent],
                    exports: [IgxRadialGaugeRangeComponent
                    ],
                    imports: [CommonModule,
                    ],
                    entryComponents: []
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxRadialGaugeRangeDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeRangeDynamicModule() {
        TypeRegistrar.registerCons('IgxRadialGaugeRangeComponent', IgxRadialGaugeRangeComponent);
    }
    IgxRadialGaugeRangeDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeRangeDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeDynamicModule, imports: [CommonModule, IgxRadialGaugeRangeModule], exports: [IgxRadialGaugeRangeModule] });
    IgxRadialGaugeRangeDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeDynamicModule, imports: [[CommonModule, IgxRadialGaugeRangeModule
            ], IgxRadialGaugeRangeModule] });
    return IgxRadialGaugeRangeDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeRangeDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxRadialGaugeRangeModule
                    ],
                    imports: [CommonModule, IgxRadialGaugeRangeModule
                    ],
                    entryComponents: [IgxRadialGaugeRangeComponent]
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxRadialGaugeCoreModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeCoreModule() {
    }
    IgxRadialGaugeCoreModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeCoreModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreModule, declarations: [IgxRadialGaugeComponent], imports: [CommonModule, IgxRadialGaugeRangeModule,
            IgxNumberFormatSpecifierModule], exports: [IgxRadialGaugeComponent,
            IgxRadialGaugeRangeModule,
            IgxNumberFormatSpecifierModule] });
    IgxRadialGaugeCoreModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreModule, imports: [[CommonModule, IgxRadialGaugeRangeModule,
                IgxNumberFormatSpecifierModule
            ], IgxRadialGaugeRangeModule,
            IgxNumberFormatSpecifierModule] });
    return IgxRadialGaugeCoreModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [IgxRadialGaugeComponent],
                    exports: [IgxRadialGaugeComponent,
                        IgxRadialGaugeRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    imports: [CommonModule, IgxRadialGaugeRangeModule,
                        IgxNumberFormatSpecifierModule
                    ],
                    entryComponents: []
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxRadialGaugeCoreDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeCoreDynamicModule() {
        TypeRegistrar.registerCons('IgxRadialGaugeComponent', IgxRadialGaugeComponent);
    }
    IgxRadialGaugeCoreDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeCoreDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreDynamicModule, imports: [CommonModule, IgxRadialGaugeRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxRadialGaugeCoreModule], exports: [IgxRadialGaugeRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxRadialGaugeCoreModule] });
    IgxRadialGaugeCoreDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreDynamicModule, imports: [[CommonModule, IgxRadialGaugeRangeDynamicModule,
                IgxNumberFormatSpecifierDynamicModule,
                IgxRadialGaugeCoreModule
            ], IgxRadialGaugeRangeDynamicModule,
            IgxNumberFormatSpecifierDynamicModule,
            IgxRadialGaugeCoreModule] });
    return IgxRadialGaugeCoreDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeCoreDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxRadialGaugeRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxRadialGaugeCoreModule
                    ],
                    imports: [CommonModule, IgxRadialGaugeRangeDynamicModule,
                        IgxNumberFormatSpecifierDynamicModule,
                        IgxRadialGaugeCoreModule
                    ],
                    entryComponents: [IgxRadialGaugeComponent]
                }]
        }], ctorParameters: function () { return []; } });

/*
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.
*/
var IgxRadialGaugeModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeModule() {
    }
    IgxRadialGaugeModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeModule, imports: [CommonModule, IgxRadialGaugeCoreModule,
            IgxDVInteractivityModule], exports: [IgxRadialGaugeCoreModule,
            IgxDVInteractivityModule] });
    IgxRadialGaugeModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeModule, imports: [[CommonModule, IgxRadialGaugeCoreModule,
                IgxDVInteractivityModule
            ], IgxRadialGaugeCoreModule,
            IgxDVInteractivityModule] });
    return IgxRadialGaugeModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxRadialGaugeCoreModule,
                        IgxDVInteractivityModule
                    ],
                    imports: [CommonModule, IgxRadialGaugeCoreModule,
                        IgxDVInteractivityModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/
var IgxRadialGaugeDynamicModule = /** @class */ /*@__PURE__*/ (function () {
    function IgxRadialGaugeDynamicModule() {
    }
    IgxRadialGaugeDynamicModule.ɵfac = ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeDynamicModule, deps: [], target: ɵɵFactoryTarget.NgModule });
    IgxRadialGaugeDynamicModule.ɵmod = ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeDynamicModule, imports: [CommonModule, IgxRadialGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxRadialGaugeModule], exports: [IgxRadialGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxRadialGaugeModule] });
    IgxRadialGaugeDynamicModule.ɵinj = ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeDynamicModule, imports: [[CommonModule, IgxRadialGaugeCoreDynamicModule,
                IgxDVInteractivityDynamicModule,
                IgxRadialGaugeModule
            ], IgxRadialGaugeCoreDynamicModule,
            IgxDVInteractivityDynamicModule,
            IgxRadialGaugeModule] });
    return IgxRadialGaugeDynamicModule;
}());
ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeDynamicModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [],
                    exports: [IgxRadialGaugeCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxRadialGaugeModule
                    ],
                    imports: [CommonModule, IgxRadialGaugeCoreDynamicModule,
                        IgxDVInteractivityDynamicModule,
                        IgxRadialGaugeModule
                    ],
                    entryComponents: []
                }]
        }] });

/*
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.
*/

/*
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.
*/
/**
 * @hidden
 */
var CommonData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(CommonData, _super);
    function CommonData() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._borderBrush = null;
        _this._borderThickness = null;
        return _this;
    }
    Object.defineProperty(CommonData.prototype, "borderBrush", {
        get: function () {
            return this._borderBrush;
        },
        set: function (a) {
            this._borderBrush = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(CommonData.prototype, "borderThickness", {
        get: function () {
            return this._borderThickness;
        },
        set: function (a) {
            this._borderThickness = a;
        },
        enumerable: false,
        configurable: true
    });
    CommonData.$t = markType(CommonData, 'CommonData');
    return CommonData;
}(Base));

/*
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.
*/
/**
 * @hidden
 */
var ScaleVisualData = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(ScaleVisualData, _super);
    function ScaleVisualData() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    ScaleVisualData.$t = markType(ScaleVisualData, 'ScaleVisualData');
    return ScaleVisualData;
}(Base));

/**
 * Generated bundle index. Do not edit.
 */

export { AlignLinearGraphLabelEventArgs, AlignRadialGaugeLabelEventArgs, BackingFrame, BulletGraphFrame, BulletGraphScaleFrame, BulletGraphStylingDefaults, BulletGraphTargetValueVisualData, BulletGraphVisualData, CommonData, FormatLinearGraphLabelEventArgs, FormatRadialGaugeLabelEventArgs, GaugeVisualData, IgxAlignLinearGraphLabelEventArgs, IgxAlignRadialGaugeLabelEventArgs, IgxBulletGraphComponent, IgxBulletGraphCoreDynamicModule, IgxBulletGraphCoreModule, IgxBulletGraphDynamicModule, IgxBulletGraphModule, IgxFormatLinearGraphLabelEventArgs, IgxFormatRadialGaugeLabelEventArgs, IgxLinearGaugeComponent, IgxLinearGaugeCoreDynamicModule, IgxLinearGaugeCoreModule, IgxLinearGaugeDynamicModule, IgxLinearGaugeModule, IgxLinearGraphRangeCollection, IgxLinearGraphRangeComponent, IgxLinearGraphRangeDynamicModule, IgxLinearGraphRangeModule, IgxRadialGaugeComponent, IgxRadialGaugeCoreDynamicModule, IgxRadialGaugeCoreModule, IgxRadialGaugeDynamicModule, IgxRadialGaugeModule, IgxRadialGaugeRangeCollection, IgxRadialGaugeRangeComponent, IgxRadialGaugeRangeDynamicModule, IgxRadialGaugeRangeModule, LinearGaugeFrame, LinearGaugeScaleFrame, LinearGaugeStylingDefaults, LinearGaugeVisualData, LinearGraphBackingFrame, LinearGraphFrame, LinearGraphNeedleFrame, LinearGraphNeedleParameters, LinearGraphNeedlePreparer, LinearGraphNeedleShape, LinearGraphNeedleShape_$type, LinearGraphRangeCollection, LinearGraphRangeVisualData, LinearGraphRangeVisualDataList, LinearGraphRectFrame, LinearGraphScaleFrame, LinearGraphScaleLabelVisualData, LinearGraphScaleLabelVisualDataList, LinearGraphScaleTickmarkVisualData, LinearGraphScaleTickmarkVisualDataList, LinearGraphScaler, LinearGraphToolTipVisualData, LinearGraphTooltipDataContext, LinearGraphVisualData, LinearNeedleVisualData, LinearNeedleVisualDataList, LinearScaleOrientation, LinearScaleOrientation_$type, LinearScaleVisualData, MorphSegment, NeedleVisualData, RadialGaugeBackingShape, RadialGaugeBackingShape_$type, RadialGaugeDuplicateLabelOmissionStrategy, RadialGaugeDuplicateLabelOmissionStrategy_$type, RadialGaugeFrame, RadialGaugeNeedleFrame, RadialGaugeNeedleParameters, RadialGaugeNeedlePreparer, RadialGaugeNeedleShape, RadialGaugeNeedleShape_$type, RadialGaugePivotShape, RadialGaugePivotShape_$type, RadialGaugeRangeCollection, RadialGaugeRangeFrame, RadialGaugeScaleFrame, RadialGaugeScaleFrameLabel, RadialGaugeScaleOversweepShape, RadialGaugeScaleOversweepShape_$type, RadialGaugeScaler, RadialGaugeStylingDefaults, RangeVisualData, RangeVisualDataList, ScaleLabelVisualData, ScaleLabelVisualDataList, ScaleTickmarkVisualData, ScaleTickmarkVisualDataList, ScaleVisualData, TitlesPosition, TitlesPosition_$type, ToolTipInfo, ToolTipItemVisualData, ValueVisualData, XamBulletGraph, XamBulletGraphView, XamLinearGauge, XamLinearGaugeView, XamLinearGraphRange, XamRadialGauge, XamRadialGaugeRange, XamRadialGaugeView };