import { __extends } from "tslib";
import { Component, forwardRef, 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 { NegativeVolumeIndexIndicator } from "./NegativeVolumeIndexIndicator";
import * as i0 from "@angular/core";
/**
 * Represents a IgxDataChartComponent Negative Volume Index indicator (NVI) series.
 * Default required members: Close, Volume
*
* The `NegativeVolumeIndexIndicator` (NVI) is a finacial indicator frequently used in combination with the PositiveVolumeIndexIndicator. This calculation can be used to identify bull markets. These two indicators are based on the premise that smart money trades on low volume days and less informed or overly optimistic investors trade on high volume days.
*
* Using this indicator requires setting both the `CloseMemberPath` and `VolumeMemberPath`.
*
* ```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-negative-volume-index-indicator
*        [xAxis]="xAxis"
*        [yAxis]="yAxis"
*        volumeMemberPath="volume"
*        closeMemberPath="close">
*     </igx-negative-volume-index-indicator>
* </igx-data-chart>
* ```
*
* ```ts
* let series = new IgxNegativeVolumeIndexIndicatorComponent();
* series.xAxis = this.xAxis;
* series.yAxis = this.yAxis;
* series.closeMemberPath = "Close";
* series.volumeMemberPath = "Volume";
* series.dataSource = this.data;
* this.chart.series.add(series);
* ```
*/
var IgxNegativeVolumeIndexIndicatorComponent = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxNegativeVolumeIndexIndicatorComponent, _super);
    function IgxNegativeVolumeIndexIndicatorComponent() {
        return _super.call(this) || this;
    }
    IgxNegativeVolumeIndexIndicatorComponent.prototype.createImplementation = function () {
        return new NegativeVolumeIndexIndicator();
    };
    Object.defineProperty(IgxNegativeVolumeIndexIndicatorComponent.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxNegativeVolumeIndexIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: IgxNegativeVolumeIndexIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    IgxNegativeVolumeIndexIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: IgxNegativeVolumeIndexIndicatorComponent, selector: "igx-negative-volume-index-indicator", providers: [{ provide: IgxStrategyBasedIndicatorComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxFinancialIndicatorComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxFinancialSeriesComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxSeriesComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }], usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
    return IgxNegativeVolumeIndexIndicatorComponent;
}(IgxStrategyBasedIndicatorComponent));
export { IgxNegativeVolumeIndexIndicatorComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: IgxNegativeVolumeIndexIndicatorComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-negative-volume-index-indicator',
                    template: "",
                    providers: [{ provide: IgxStrategyBasedIndicatorComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxFinancialIndicatorComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxFinancialSeriesComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }, { provide: IgxSeriesComponent, useExisting: forwardRef(function () { return IgxNegativeVolumeIndexIndicatorComponent; }) }],
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }], ctorParameters: function () { return []; } });
