import * as tslib_1 from "tslib";
var IgxStandardDeviationIndicatorComponent_1;
import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core';
import { IgxStrategyBasedIndicatorComponent } from "./igx-strategy-based-indicator-component";
import { IgxFinancialIndicatorComponent } from "./igx-financial-indicator-component";
import { IgxFinancialSeriesComponent } from "./igx-financial-series-component";
import { IgxSeriesComponent } from "./igx-series-component";
import { StandardDeviationIndicator } from "./StandardDeviationIndicator";
/**
 * Represents a IgxDataChartComponent Standard Deviation indicator series.
 * Default required members: High, Low, Close
*
* `IgxStandardDeviationIndicatorComponent` (SDI) measures statistical variation in stock prices or volatility. The difference between an individual security’s closing price and the average security closing price is called the dispersion. The larger the dispersion is the higher the standard deviation will be and therefore the volatility. The smaller the dispersion is (the difference between an individual closing price and the average price), the smaller the standard deviation and the lower the price volatility.
*
* Using this indicator requires setting both the `HighMemberPath`, `LowMemberPath` and `CloseMemberPath`.
*
* ```html
*  <igx-data-chart
*     width=500px
*     height=500px
*     [dataSource]="data" >
*     <igx-ordinal-time-x-axis
*         dateTimeMemberPath="TimeStamp"
*         #xAxis>
*       </igx-ordinal-time-x-axis>
*     <igx-numeric-y-axis
*        #yAxis></igx-numeric-y-axis>
*     <igx-standard-deviation-indicator
*        [xAxis]="xAxis"
*        [yAxis]="yAxis"
*        closeMemberPath="Close"
*        highMemberPath="High"
*        lowMemberPath="Low">
*      </igx-standard-deviation-indicator>
* </igx-data-chart>
* ```
*
* ```ts
* let series = new IgxStandardDeviatioIndicatorComponent();
*    series.xAxis = this.xAxis;
*    series.yAxis = this.yAxis;
*    series.highMemberPath = "high";
*    series.lowMemberPath = "low";
*    series.closeMemberPath = "close";
*    this.chart.series.add(series);
*
* ```
*/
export const IgxStandardDeviationIndicatorComponent_PROVIDERS = [{ provide: IgxStrategyBasedIndicatorComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent) }, { provide: IgxFinancialIndicatorComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent) }, { provide: IgxFinancialSeriesComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent) }];
let IgxStandardDeviationIndicatorComponent = IgxStandardDeviationIndicatorComponent_1 = class IgxStandardDeviationIndicatorComponent extends IgxStrategyBasedIndicatorComponent {
    constructor() {
        super();
    }
    createImplementation() {
        return new StandardDeviationIndicator();
    }
    /**
                                 * @hidden
                                 */
    get i() {
        return this._implementation;
    }
    /**
     * Gets or sets the moving average period for the current StandardDeviationIndicator object.
     * The typical, and initial, value for STDEV periods is 20.
    */
    get period() {
        return this.i.qx;
    }
    set period(v) {
        this.i.qx = +v;
    }
};
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxStandardDeviationIndicatorComponent.prototype, "period", null);
IgxStandardDeviationIndicatorComponent = IgxStandardDeviationIndicatorComponent_1 = tslib_1.__decorate([
    Component({
        selector: 'igx-standard-deviation-indicator',
        template: ``,
        providers: [{ provide: IgxStrategyBasedIndicatorComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent_1) }, { provide: IgxFinancialIndicatorComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent_1) }, { provide: IgxFinancialSeriesComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent_1) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxStandardDeviationIndicatorComponent_1) }],
        changeDetection: ChangeDetectionStrategy.OnPush
    }),
    tslib_1.__metadata("design:paramtypes", [])
], IgxStandardDeviationIndicatorComponent);
export { IgxStandardDeviationIndicatorComponent };
//# sourceMappingURL=igx-standard-deviation-indicator-component.js.map