/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import * as tslib_1 from "tslib";
import { ChangeDetectorRef, Component, Directive, HostBinding, Input, Optional, ViewChild, Inject, TemplateRef } from '@angular/core';
import { DisplayDensityToken, DisplayDensityBase } from '../core/displayDensity';
import { CsvFileTypes, IgxCsvExporterOptions, IgxCsvExporterService, IgxExcelExporterOptions, IgxExcelExporterService, AbsoluteScrollStrategy } from '../services/index';
import { GridBaseAPIService } from './api.service';
import { IgxButtonDirective } from '../directives/button/button.directive';
import { IgxDropDownComponent } from '../drop-down/drop-down.component';
import { IgxColumnHidingComponent } from './column-hiding.component';
import { IgxColumnPinningComponent } from './column-pinning.component';
import { HorizontalAlignment, VerticalAlignment } from '../services/overlay/utilities';
import { ConnectedPositioningStrategy } from '../services/overlay/position';
/**
 * This class encapsulates the Toolbar's logic and is internally used by
 * the `IgxGridComponent`, `IgxTreeGridComponent` and `IgxHierarchicalGridComponent`.
 */
var IgxGridToolbarComponent = /** @class */ (function (_super) {
    tslib_1.__extends(IgxGridToolbarComponent, _super);
    function IgxGridToolbarComponent(gridAPI, cdr, excelExporter, csvExporter, _displayDensityOptions) {
        var _this = _super.call(this, _displayDensityOptions) || this;
        _this.gridAPI = gridAPI;
        _this.cdr = cdr;
        _this.excelExporter = excelExporter;
        _this.csvExporter = csvExporter;
        _this._displayDensityOptions = _displayDensityOptions;
        _this._filterColumnsPrompt = 'Filter columns list ...';
        _this._positionSettings = {
            horizontalDirection: HorizontalAlignment.Left,
            horizontalStartPoint: HorizontalAlignment.Right,
            verticalDirection: VerticalAlignment.Bottom,
            verticalStartPoint: VerticalAlignment.Bottom
        };
        _this._overlaySettings = {
            positionStrategy: new ConnectedPositioningStrategy(_this._positionSettings),
            scrollStrategy: new AbsoluteScrollStrategy(),
            modal: false,
            closeOnOutsideClick: true,
            excludePositionTarget: true
        };
        return _this;
    }
    Object.defineProperty(IgxGridToolbarComponent.prototype, "filterColumnsPrompt", {
        /**
         * Gets the default text shown in the filtering box.
         * ```typescript
         * const filterPrompt = this.grid.toolbar.filterColumnsPrompt;
         * ```
         */
        get: /**
         * Gets the default text shown in the filtering box.
         * ```typescript
         * const filterPrompt = this.grid.toolbar.filterColumnsPrompt;
         * ```
         * @return {?}
         */
        function () {
            return this._filterColumnsPrompt;
        },
        /**
         * Sets the default text shown in the filtering box.
         * ```typescript
         * this.grid.toolbar.filterColumnsPrompt('Filter columns ...');
         * ```
         */
        set: /**
         * Sets the default text shown in the filtering box.
         * ```typescript
         * this.grid.toolbar.filterColumnsPrompt('Filter columns ...');
         * ```
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._filterColumnsPrompt = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "defaultDropDownsMaxHeight", {
        /**
         * Gets the height for the `IgxGridToolbarComponent`'s drop down panels.
         * ```typescript
         * const dropdownHeight = this.grid.toolbar.defaultDropDownsMaxHeight;
         * ```
         */
        get: /**
         * Gets the height for the `IgxGridToolbarComponent`'s drop down panels.
         * ```typescript
         * const dropdownHeight = this.grid.toolbar.defaultDropDownsMaxHeight;
         * ```
         * @return {?}
         */
        function () {
            /** @type {?} */
            var gridHeight = this.grid.calcHeight;
            return (gridHeight) ? gridHeight * 0.7 + 'px' : '100%';
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "grid", {
        /**
         * Returns a reference to the `IgxGridComponent` component, hosting the `IgxGridToolbarComponent`.
         * ```typescript
         * const grid = this.igxGrid1.toolbar.grid;
         * ```
         */
        get: /**
         * Returns a reference to the `IgxGridComponent` component, hosting the `IgxGridToolbarComponent`.
         * ```typescript
         * const grid = this.igxGrid1.toolbar.grid;
         * ```
         * @return {?}
         */
        function () {
            return this.gridAPI.grid;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "shouldShowExportButton", {
        /**
         * Returns whether the `IgxGridComponent` renders an export button.
         * ```typescript
         * const exportButton = this.igxGrid1.toolbar.shouldShowExportButton;
         * ```
         */
        get: /**
         * Returns whether the `IgxGridComponent` renders an export button.
         * ```typescript
         * const exportButton = this.igxGrid1.toolbar.shouldShowExportButton;
         * ```
         * @return {?}
         */
        function () {
            return (this.grid != null && (this.grid.exportExcel || this.grid.exportCsv));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "shouldShowExportExcelButton", {
        /**
         * Returns whether the `IgxGridComponent` renders an Excel export button.
         * ```typescript
         * const exportExcelButton = this.igxGrid1.toolbar.shouldShowExportExcelButton;
         * ```
         */
        get: /**
         * Returns whether the `IgxGridComponent` renders an Excel export button.
         * ```typescript
         * const exportExcelButton = this.igxGrid1.toolbar.shouldShowExportExcelButton;
         * ```
         * @return {?}
         */
        function () {
            return (this.grid != null && this.grid.exportExcel);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "shouldShowExportCsvButton", {
        /**
         * Returns whether the `IgxGridComponent` renders an CSV export button.
         * ```typescript
         * const exportCSVButton = this.igxGrid1.toolbar.shouldShowExportCsvButton;
         * ```
         */
        get: /**
         * Returns whether the `IgxGridComponent` renders an CSV export button.
         * ```typescript
         * const exportCSVButton = this.igxGrid1.toolbar.shouldShowExportCsvButton;
         * ```
         * @return {?}
         */
        function () {
            return (this.grid != null && this.grid.exportCsv);
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "pinnedColumnsCount", {
        /**
         * Returns how many columns are pinned.
         * ```typescript
         * const pinnedCount = this.igxGrid1.toolbar.pinnedColumnsCount;
         * ```
         */
        get: /**
         * Returns how many columns are pinned.
         * ```typescript
         * const pinnedCount = this.igxGrid1.toolbar.pinnedColumnsCount;
         * ```
         * @return {?}
         */
        function () {
            return this.grid.pinnedColumns.filter(function (col) { return !col.columnLayout; }).length;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "hostClass", {
        /**
         * Returns the theme of the `IgxGridToolbarComponent`.
         * ```typescript
         * const toolbarTheme = this.grid.toolbar.hostClass;
         * ```
         */
        get: /**
         * Returns the theme of the `IgxGridToolbarComponent`.
         * ```typescript
         * const toolbarTheme = this.grid.toolbar.hostClass;
         * ```
         * @return {?}
         */
        function () {
            return this.getComponentDensityClass('igx-grid-toolbar');
        },
        enumerable: true,
        configurable: true
    });
    /**
     * Returns the title of `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarTitle = this.igxGrid1.toolbar.getTitle();
     * ```
     */
    /**
     * Returns the title of `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarTitle = this.igxGrid1.toolbar.getTitle();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.getTitle = /**
     * Returns the title of `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarTitle = this.igxGrid1.toolbar.getTitle();
     * ```
     * @return {?}
     */
    function () {
        return this.grid != null ? this.grid.toolbarTitle : '';
    };
    /**
     * Returns the text of the export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExportText = this.igxGrid1.toolbar.getTitle();
     * ```
     */
    /**
     * Returns the text of the export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExportText = this.igxGrid1.toolbar.getTitle();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.getExportText = /**
     * Returns the text of the export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExportText = this.igxGrid1.toolbar.getTitle();
     * ```
     * @return {?}
     */
    function () {
        return this.grid != null ? this.grid.exportText : '';
    };
    /**
     * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();
     * ```
     */
    /**
     * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.getExportExcelText = /**
     * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();
     * ```
     * @return {?}
     */
    function () {
        return this.grid != null ? this.grid.exportExcelText : '';
    };
    /**
     * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();
     * ```
     */
    /**
     * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.getExportCsvText = /**
     * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.
     * ```typescript
     * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();
     * ```
     * @return {?}
     */
    function () {
        return this.grid != null ? this.grid.exportCsvText : '';
    };
    /**
     * Toggles the export button's dropdown menu.
     * ```typescript
     * this.igxGrid1.toolbar.exportClicked();
     * ```
     */
    /**
     * Toggles the export button's dropdown menu.
     * ```typescript
     * this.igxGrid1.toolbar.exportClicked();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.exportClicked = /**
     * Toggles the export button's dropdown menu.
     * ```typescript
     * this.igxGrid1.toolbar.exportClicked();
     * ```
     * @return {?}
     */
    function () {
        this._overlaySettings.positionStrategy.settings.target = this.exportButton.nativeElement;
        this._overlaySettings.outlet = this.grid.outletDirective;
        this.exportDropdown.toggle(this._overlaySettings);
    };
    /**
     * Exports the grid to excel.
     * ```typescript
     * this.igxGrid1.toolbar.exportToExcelClicked();
     * ```
     */
    /**
     * Exports the grid to excel.
     * ```typescript
     * this.igxGrid1.toolbar.exportToExcelClicked();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.exportToExcelClicked = /**
     * Exports the grid to excel.
     * ```typescript
     * this.igxGrid1.toolbar.exportToExcelClicked();
     * ```
     * @return {?}
     */
    function () {
        this.performExport(this.excelExporter, 'excel');
    };
    /**
     * Exports the grid to CSV.
     * ```typescript
     * this.igxGrid1.toolbar.exportToCsvClicked();
     * ```
     */
    /**
     * Exports the grid to CSV.
     * ```typescript
     * this.igxGrid1.toolbar.exportToCsvClicked();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.exportToCsvClicked = /**
     * Exports the grid to CSV.
     * ```typescript
     * this.igxGrid1.toolbar.exportToCsvClicked();
     * ```
     * @return {?}
     */
    function () {
        this.performExport(this.csvExporter, 'csv');
    };
    /**
     * @private
     * @param {?} exp
     * @param {?} exportType
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.performExport = /**
     * @private
     * @param {?} exp
     * @param {?} exportType
     * @return {?}
     */
    function (exp, exportType) {
        this.exportClicked();
        /** @type {?} */
        var fileName = 'ExportedData';
        /** @type {?} */
        var options = exportType === 'excel' ?
            new IgxExcelExporterOptions(fileName) :
            new IgxCsvExporterOptions(fileName, CsvFileTypes.CSV);
        /** @type {?} */
        var args = { grid: this.grid, exporter: exp, options: options, cancel: false };
        this.grid.onToolbarExporting.emit(args);
        if (args.cancel) {
            return;
        }
        exp.export(this.grid, options);
    };
    /**
     * Toggles the Column Hiding UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnHidingUI();
     * ```
     */
    /**
     * Toggles the Column Hiding UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnHidingUI();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.toggleColumnHidingUI = /**
     * Toggles the Column Hiding UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnHidingUI();
     * ```
     * @return {?}
     */
    function () {
        this._overlaySettings.positionStrategy.settings.target = this.columnHidingButton.nativeElement;
        this._overlaySettings.outlet = this.grid.outletDirective;
        this.columnHidingDropdown.toggle(this._overlaySettings);
    };
    /**
     * Toggles the Column Pinning UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnPinningUI();
     * ```
     */
    /**
     * Toggles the Column Pinning UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnPinningUI();
     * ```
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.toggleColumnPinningUI = /**
     * Toggles the Column Pinning UI.
     * ```typescript
     * this.grid1.toolbar.toggleColumnPinningUI();
     * ```
     * @return {?}
     */
    function () {
        this._overlaySettings.positionStrategy.settings.target = this.columnPinningButton.nativeElement;
        this._overlaySettings.outlet = this.grid.outletDirective;
        this.columnPinningDropdown.toggle(this._overlaySettings);
    };
    /**
     * @hidden @internal
     */
    /**
     * @hidden \@internal
     * @return {?}
     */
    IgxGridToolbarComponent.prototype.showAdvancedFilteringUI = /**
     * @hidden \@internal
     * @return {?}
     */
    function () {
        this.grid.openAdvancedFilteringDialog();
    };
    Object.defineProperty(IgxGridToolbarComponent.prototype, "context", {
        /**
         * Returns the `context` object which represents the `template context` binding into the
         * `toolbar custom container` by providing references to the parent IgxGird and the toolbar itself.
         * ```typescript
         * const context =  this.igxGrid.toolbar.context;
         * ```
         */
        get: /**
         * Returns the `context` object which represents the `template context` binding into the
         * `toolbar custom container` by providing references to the parent IgxGird and the toolbar itself.
         * ```typescript
         * const context =  this.igxGrid.toolbar.context;
         * ```
         * @return {?}
         */
        function () {
            return {
                // $implicit: this
                grid: this.grid,
                toolbar: this
            };
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxGridToolbarComponent.prototype, "customContentTemplate", {
        /** @hidden */
        get: /**
         * @hidden
         * @return {?}
         */
        function () {
            if (this.grid != null && this.grid.toolbarCustomContentTemplate != null) {
                return this.grid.toolbarCustomContentTemplate.template;
            }
            else {
                return null;
            }
        },
        enumerable: true,
        configurable: true
    });
    IgxGridToolbarComponent.decorators = [
        { type: Component, args: [{
                    selector: 'igx-grid-toolbar',
                    template: "<span class=\"igx-grid-toolbar__title\" *ngIf=\"getTitle()\">\n    {{ getTitle() }}\n</span>\n\n<div class=\"igx-grid-toolbar__custom-content\" *ngIf=\"customContentTemplate != null\">\n    <ng-container *ngTemplateOutlet=\"customContentTemplate; context: context\">\n    </ng-container>\n</div>\n\n<div class=\"igx-grid-toolbar__actions\">\n    <div *ngIf=\"grid.allowAdvancedFiltering\">\n        <button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" #advancedFilteringButton name=\"btnAdvancedFiltering\" igxRipple\n            [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\"\n            (click)=\"showAdvancedFilteringUI()\">\n            <div class=\"igx-grid-toolbar__button-space\">\n                <igx-icon>\n                    filter_list\n                </igx-icon>\n                <span>{{grid.resourceStrings.igx_grid_advanced_filter_title}}</span>\n            </div>\n        </button>\n    </div>\n\n    <div *ngIf=\"grid.columnHiding\">\n        <button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" #columnHidingButton name=\"btnColumnHiding\" igxRipple\n            (click)=\"toggleColumnHidingUI()\">\n            <div  class=\"igx-grid-toolbar__button-space\">\n                <igx-icon *ngIf=\"grid.hiddenColumnsCount > 0\">visibility_off</igx-icon>\n                <igx-icon *ngIf=\"grid.hiddenColumnsCount === 0\">visibility</igx-icon>\n                <span>{{ grid.hiddenColumnsCount }}</span>\n                <span>{{ grid.hiddenColumnsText }}</span>\n            </div>\n        </button>\n        <igx-drop-down #columnHidingDropdown>\n            <igx-column-hiding\n                [columns]=\"grid.columns\"\n                [title]=\"grid.columnHidingTitle\"\n                [filterColumnsPrompt]=\"filterColumnsPrompt\"\n                [columnsAreaMaxHeight]=\"defaultDropDownsMaxHeight\"\n                (onColumnVisibilityChanged)=\"grid.toggleColumnVisibility($event)\">\n            </igx-column-hiding>\n        </igx-drop-down>\n    </div>\n    <div *ngIf=\"grid.columnPinning\">\n        <button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" #columnPinningButton name=\"btnColumnPinning\" igxRipple\n            (click)=\"toggleColumnPinningUI()\">\n            <div  class=\"igx-grid-toolbar__button-space\">\n                <igx-icon *ngIf=\"pinnedColumnsCount > 0\">lock</igx-icon>\n                <igx-icon *ngIf=\"pinnedColumnsCount === 0\">lock_open</igx-icon>\n                <span>{{ pinnedColumnsCount }}</span>\n                <span>{{ grid.pinnedColumnsText }}</span>\n                <span></span>\n            </div>\n        </button>\n        <igx-drop-down #columnPinningDropdown>\n            <igx-column-pinning\n                [columns]=\"grid.columns\"\n                [title]=\"grid.columnPinningTitle\"\n                [filterColumnsPrompt]=\"filterColumnsPrompt\"\n                [columnsAreaMaxHeight]=\"defaultDropDownsMaxHeight\"></igx-column-pinning>\n        </igx-drop-down>\n    </div>\n\n    <div class=\"igx-grid-toolbar__dropdown\" *ngIf=\"shouldShowExportButton\" id=\"btnExport\">\n        <button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" igxRipple #btnExport\n                (click)=\"exportClicked()\">\n            <span class=\"igx-grid-toolbar__button-space\">\n                <igx-icon fontSet=\"material\">import_export</igx-icon>\n                <span>{{ getExportText() }}</span>\n                <igx-icon fontSet=\"material\">arrow_drop_down</igx-icon>\n            </span>\n        </button>\n\n        <igx-drop-down #exportDropdown>\n            <ul class=\"igx-grid-toolbar__dd-list\">\n                <li class=\"igx-grid-toolbar__dd-list-items\" igxRipple *ngIf=\"shouldShowExportExcelButton\" id=\"btnExportExcel\"\n                (click)=\"exportToExcelClicked()\">{{ getExportExcelText() }}</li>\n                <li class=\"igx-grid-toolbar__dd-list-items\" igxRipple *ngIf=\"shouldShowExportCsvButton\" id=\"btnExportCsv\"\n                (click)=\"exportToCsvClicked()\">{{ getExportCsvText() }}</li>\n            </ul>\n        </igx-drop-down>\n    </div>\n</div>\n"
                }] }
    ];
    /** @nocollapse */
    IgxGridToolbarComponent.ctorParameters = function () { return [
        { type: GridBaseAPIService },
        { type: ChangeDetectorRef },
        { type: IgxExcelExporterService, decorators: [{ type: Optional }] },
        { type: IgxCsvExporterService, decorators: [{ type: Optional }] },
        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }
    ]; };
    IgxGridToolbarComponent.propDecorators = {
        gridID: [{ type: HostBinding, args: ['class.igx-grid-toolbar',] }, { type: Input }],
        filterColumnsPrompt: [{ type: Input }],
        defaultDropDownsMaxHeight: [{ type: Input }],
        columnHidingDropdown: [{ type: ViewChild, args: ['columnHidingDropdown', { read: IgxDropDownComponent, static: false },] }],
        columnHidingUI: [{ type: ViewChild, args: [IgxColumnHidingComponent, { static: false },] }],
        columnHidingButton: [{ type: ViewChild, args: ['columnHidingButton', { read: IgxButtonDirective, static: false },] }],
        exportDropdown: [{ type: ViewChild, args: ['exportDropdown', { read: IgxDropDownComponent, static: false },] }],
        exportButton: [{ type: ViewChild, args: ['btnExport', { read: IgxButtonDirective, static: false },] }],
        columnPinningDropdown: [{ type: ViewChild, args: ['columnPinningDropdown', { read: IgxDropDownComponent, static: false },] }],
        columnPinningUI: [{ type: ViewChild, args: [IgxColumnPinningComponent, { static: false },] }],
        columnPinningButton: [{ type: ViewChild, args: ['columnPinningButton', { read: IgxButtonDirective, static: false },] }],
        hostClass: [{ type: HostBinding, args: ['attr.class',] }]
    };
    return IgxGridToolbarComponent;
}(DisplayDensityBase));
export { IgxGridToolbarComponent };
if (false) {
    /**
     * @hidden
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.gridID;
    /**
     * @type {?}
     * @private
     */
    IgxGridToolbarComponent.prototype._filterColumnsPrompt;
    /**
     * Provides a reference to the `IgxDropDownComponent` of the Column Hiding UI.
     * ```typescript
     * const dropdownHiding = this.grid.toolbar.columnHidingDropdown;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnHidingDropdown;
    /**
     * Provides a reference to the `IgxColumnHidingComponent`.
     * ```typescript
     * const hidingUI = this.grid.toolbar.columnHidingUI;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnHidingUI;
    /**
     * Provides a reference to the Column Hiding button.
     * ```typescript
     * const hidingButton = this.grid.toolbar.columnHidingButton;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnHidingButton;
    /**
     * Provides a reference to the `IgxDropDownComponent` of the Export button.
     * ```typescript
     * const exportDropdown = this.grid.toolbar.exportDropdown;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.exportDropdown;
    /**
     * Provides a reference to the Export button.
     * ```typescript
     * const exportBtn = this.grid.toolbar.exportButton;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.exportButton;
    /**
     * Provides a reference to the `IgxDropDownComponent` of the Column Pinning UI.
     * ```typescript
     * const dropdownPinning = this.grid.toolbar.columnPinningDropdown;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnPinningDropdown;
    /**
     * Provides a reference to the `IgxColumnPinningComponent`.
     * ```typescript
     * const pinningUI = this.grid.toolbar.columnPinningDropdown;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnPinningUI;
    /**
     * Provides a reference to the Column Pinning button.
     * ```typescript
     * const pinningButton = this.grid.toolbar.columnPinningButton;
     * ```
     * @type {?}
     */
    IgxGridToolbarComponent.prototype.columnPinningButton;
    /**
     * @type {?}
     * @private
     */
    IgxGridToolbarComponent.prototype._positionSettings;
    /**
     * @type {?}
     * @private
     */
    IgxGridToolbarComponent.prototype._overlaySettings;
    /** @type {?} */
    IgxGridToolbarComponent.prototype.gridAPI;
    /** @type {?} */
    IgxGridToolbarComponent.prototype.cdr;
    /** @type {?} */
    IgxGridToolbarComponent.prototype.excelExporter;
    /** @type {?} */
    IgxGridToolbarComponent.prototype.csvExporter;
    /**
     * @type {?}
     * @protected
     */
    IgxGridToolbarComponent.prototype._displayDensityOptions;
}
/**
 * The IgxGridToolbarCustomContentDirective directive is used to mark an 'ng-template' (with
 * the 'igxToolbarCustomContent' selector) defined in the IgxGrid which is used to provide
 * custom content for cener part of the IgxGridToolbar.
 */
var IgxGridToolbarCustomContentDirective = /** @class */ (function () {
    function IgxGridToolbarCustomContentDirective(template) {
        this.template = template;
    }
    IgxGridToolbarCustomContentDirective.decorators = [
        { type: Directive, args: [{
                    selector: '[igxToolbarCustomContent]'
                },] }
    ];
    /** @nocollapse */
    IgxGridToolbarCustomContentDirective.ctorParameters = function () { return [
        { type: TemplateRef }
    ]; };
    return IgxGridToolbarCustomContentDirective;
}());
export { IgxGridToolbarCustomContentDirective };
if (false) {
    /** @type {?} */
    IgxGridToolbarCustomContentDirective.prototype.template;
}
//# sourceMappingURL=data:application/json;base64, 