UNPKG

igniteui-angular-gauges

Version:

Ignite UI Angular gauge components.

2,417 lines 95.7 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 { EventEmitter, Output, Component, ViewChild, ContentChildren, Input, ChangeDetectionStrategy, ViewContainerRef } from '@angular/core';
import { AngularRenderer } from "igniteui-angular-core";
import { TypeRegistrar } from "igniteui-angular-core";
import { XamRadialGauge } from './XamRadialGauge';
import { CollectionAdapter, brushToString, stringToBrush, toPoint, fromPoint, fromBrushCollection, toBrushCollection, ensureBool, ensureEnum, toSpinal, initializePropertiesFromCss, NamePatcher, arrayFindByName } from "igniteui-angular-core";
import { delegateCombine } from "igniteui-angular-core";
import { NotifyCollectionChangedAction } from "igniteui-angular-core";
import { SweepDirection_$type } from "igniteui-angular-core";
import { RadialGaugeNeedleShape_$type } from './RadialGaugeNeedleShape';
import { RadialGaugePivotShape_$type } from './RadialGaugePivotShape';
import { RadialGaugeScaleOversweepShape_$type } from './RadialGaugeScaleOversweepShape';
import { RadialGaugeBackingShape_$type } from './RadialGaugeBackingShape';
import { RadialGaugeDuplicateLabelOmissionStrategy_$type } from './RadialGaugeDuplicateLabelOmissionStrategy';
import { IgxFormatRadialGaugeLabelEventArgs } from './igx-format-radial-gauge-label-event-args';
import { IgxAlignRadialGaugeLabelEventArgs } from './igx-align-radial-gauge-label-event-args';
import { RadialGaugeStylingDefaults } from './RadialGaugeStylingDefaults';
import { IgxRadialGaugeRangeComponent } from './igx-radial-gauge-range-component';
import { IgxRadialGaugeRangeCollection } from './igx-radial-gauge-range-collection';
import { IgxDoubleValueChangedEventArgs } from "igniteui-angular-core";
import { FontInfo } from "igniteui-angular-core";
import { HighlightedValueDisplayMode_$type } from "igniteui-angular-core";
import * as i0 from "@angular/core";
/**
 * 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 = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxRadialGaugeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
    IgxRadialGaugeComponent.ɵcmp = i0.ɵɵ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: i0.ChangeDetectionStrategy.OnPush });
    return IgxRadialGaugeComponent;
}());
export { IgxRadialGaugeComponent };
i0.ɵɵ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: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ComponentFactoryResolver }, { type: i0.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
            }] } });