diff --git a/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss b/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss index d2f87afc3cc..a6c19956671 100644 --- a/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss +++ b/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss @@ -23,6 +23,10 @@ @extend %igx-grid-toolbar__actions !optional; } + @include e(export-progress){ + @extend %igx-grid-toolbar__export-progress !optional; + } + @include e(adv-filter, $m: 'filtered') { @extend %igx-grid-toolbar__adv-filter--filtered !optional; } diff --git a/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss b/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss index 57efb77b016..debb9ca7929 100644 --- a/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +++ b/projects/igniteui-angular/src/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss @@ -134,6 +134,7 @@ %igx-grid-toolbar { display: flex; + flex-wrap: wrap; align-items: center; justify-content: flex-end; grid-row: 1; @@ -253,6 +254,10 @@ } } + %igx-grid-toolbar__export-progress { + flex-basis: 100%; + } + %igx-grid-toolbar__adv-filter--filtered { border-color: igx-color(map-get($theme, 'palette'), 'secondary') !important; diff --git a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.html b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.html index 68dc6b258f0..554394c4a0b 100644 --- a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.html +++ b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.html @@ -41,6 +41,7 @@ +
+ +
+ +
diff --git a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.ts b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.ts index 393a1867048..f2693be2fa9 100644 --- a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.ts +++ b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.ts @@ -74,6 +74,7 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After } private _filterColumnsPrompt = this.grid.resourceStrings.igx_grid_toolbar_actions_filter_prompt; + private _isExporting = false; /** * @hidden @@ -186,6 +187,13 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After return (this.grid != null && (this.grid.exportExcel || this.grid.exportCsv)); } + /** + * @hidden @internal + */ + public get isExporting(): boolean { + return this._isExporting; + } + /** * Returns whether the `IgxGridComponent` renders an Excel export button. * ```typescript @@ -315,6 +323,11 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After * ``` */ public exportToExcelClicked() { + this._isExporting = true; + this.excelExporter.onExportEnded.subscribe((args: any) => { + this._isExporting = false; + this.cdr.detectChanges(); + }); this.performExport(this.excelExporter, 'excel'); } @@ -325,10 +338,17 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After * ``` */ public exportToCsvClicked() { + this._isExporting = true; + this.csvExporter.onExportEnded.subscribe((args: any) => { + this._isExporting = false; + this.cdr.detectChanges(); + }); this.performExport(this.csvExporter, 'csv'); } private performExport(exp: IgxBaseExporter, exportType: string) { + this.t1 = performance.now(); + this.exportClicked(); const fileName = 'ExportedData';