diff --git a/projects/igniteui-angular-elements/src/analyzer/elements.config.ts b/projects/igniteui-angular-elements/src/analyzer/elements.config.ts index 0eb64660797..84e321ab136 100644 --- a/projects/igniteui-angular-elements/src/analyzer/elements.config.ts +++ b/projects/igniteui-angular-elements/src/analyzer/elements.config.ts @@ -262,6 +262,7 @@ export var registerConfig = [ { name: "pinnedColumnsCount" }, { name: "transactions" }, { name: "lastSearchInfo" }, + { name: "type" }, { name: "filteredData" }, { name: "filteredSortedData" }, { name: "validation" }, @@ -549,6 +550,7 @@ export var registerConfig = [ additionalProperties: [ { name: "foreignKey" }, { name: "selectedCells" }, + { name: "type" }, { name: "gridAPI", writable: true }, { name: "navigation", writable: true }, { name: "shouldGenerate", writable: true }, @@ -733,8 +735,10 @@ export var registerConfig = [ ], additionalProperties: [ { name: "dimensionsSortingExpressions" }, + { name: "type" }, { name: "navigation", writable: true }, { name: "allDimensions" }, + { name: "visibleRowDimensions", writable: true }, { name: "rowList" }, { name: "dataRowList" }, { name: "lastSearchInfo" }, @@ -860,6 +864,7 @@ export var registerConfig = [ ], additionalProperties: [ { name: "rowIslandAPI", writable: true }, + { name: "type" }, { name: "gridAPI", writable: true }, { name: "navigation", writable: true }, { name: "shouldGenerate", writable: true }, diff --git a/projects/igniteui-angular-elements/src/analyzer/utils.ts b/projects/igniteui-angular-elements/src/analyzer/utils.ts index 59dee75fa46..75a4ea918d6 100644 --- a/projects/igniteui-angular-elements/src/analyzer/utils.ts +++ b/projects/igniteui-angular-elements/src/analyzer/utils.ts @@ -71,10 +71,11 @@ export function isMethod(symbol: ts.Symbol): boolean { } export function isPublic(symbol: ts.Symbol) { - const tags = new Set(['hidden', 'internal']); + const nonPublicTags = new Set(['hidden', 'internal']); + const elementsShowTags = new Set(['exportElements']); if (!(symbol && symbol.valueDeclaration)) return false; if ((ts.getCombinedModifierFlags(symbol.valueDeclaration) & ts.ModifierFlags.Public) !== ts.ModifierFlags.None) { - return !symbol.getJsDocTags().some(({ name }) => tags.has(name)); + return !symbol.getJsDocTags().some(({ name }) => nonPublicTags.has(name)) || symbol.getJsDocTags().some(({ name }) => elementsShowTags.has(name)); } return false; } diff --git a/projects/igniteui-angular-elements/src/lib/csv-exporter.ts b/projects/igniteui-angular-elements/src/lib/csv-exporter.ts new file mode 100644 index 00000000000..41c5cfcf7dd --- /dev/null +++ b/projects/igniteui-angular-elements/src/lib/csv-exporter.ts @@ -0,0 +1,10 @@ +import { IgxCsvExporterOptions, IgxCsvExporterService } from 'igniteui-angular'; +import { IgcNgElement } from '../app/custom-strategy'; + +export class IgcCsvExporterService extends IgxCsvExporterService { + public override export(grid: any, options: IgxCsvExporterOptions): void { + const elementGrid = grid as IgcNgElement; + const gridRef = (elementGrid.ngElementStrategy as any)?.componentRef?.instance; + super.export(gridRef, options); + } +} diff --git a/projects/igniteui-angular-elements/src/lib/excel-exporter.ts b/projects/igniteui-angular-elements/src/lib/excel-exporter.ts new file mode 100644 index 00000000000..bb632f5ba37 --- /dev/null +++ b/projects/igniteui-angular-elements/src/lib/excel-exporter.ts @@ -0,0 +1,10 @@ +import { IgxExcelExporterOptions, IgxExcelExporterService } from 'igniteui-angular'; +import { IgcNgElement } from '../app/custom-strategy'; + +export class IgcExcelExporterService extends IgxExcelExporterService { + public override export(grid: any, options: IgxExcelExporterOptions): void { + const elementGrid = grid as IgcNgElement; + const gridRef = (elementGrid.ngElementStrategy as any)?.componentRef?.instance; + super.export(gridRef, options); + } +} diff --git a/projects/igniteui-angular-elements/src/public_api.ts b/projects/igniteui-angular-elements/src/public_api.ts index d8081637986..b26794882a7 100644 --- a/projects/igniteui-angular-elements/src/public_api.ts +++ b/projects/igniteui-angular-elements/src/public_api.ts @@ -12,6 +12,10 @@ import { IgxPivotDateDimension } from 'projects/igniteui-angular/src/lib/grids/p import { PivotDimensionType } from 'projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.interface'; import { IgxDateSummaryOperand, IgxNumberSummaryOperand, IgxSummaryOperand, IgxTimeSummaryOperand } from 'projects/igniteui-angular/src/lib/grids/summaries/grid-summary'; import { HorizontalAlignment, VerticalAlignment } from 'projects/igniteui-angular/src/lib/services/overlay/utilities'; +import { IgxExcelExporterOptions } from 'igniteui-angular/src/lib/services/excel/excel-exporter-options'; +import { CsvFileTypes, IgxCsvExporterOptions } from 'igniteui-angular/src/lib/services/csv/csv-exporter-options'; +import { IgcExcelExporterService } from './lib/excel-exporter'; +import { IgcCsvExporterService } from './lib/csv-exporter'; /** Export Public API, TODO: reorganize, Generate all w/ renames? */ @@ -54,4 +58,10 @@ export { // overlay position settings (used in grids, paginator, toolbar) HorizontalAlignment, VerticalAlignment, + + IgxExcelExporterOptions as IgcExcelExporterOptions, + IgxCsvExporterOptions as IgcCsvExporterOptions, + IgcExcelExporterService, + IgcCsvExporterService, + CsvFileTypes } diff --git a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts index fb89132ee38..ae21365cbe4 100644 --- a/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/grid-base.directive.ts @@ -3038,7 +3038,7 @@ export abstract class IgxGridBaseDirective implements GridType, */ public EMPTY_DATA = []; - /** @hidden @internal */ + /** @hidden @internal @exportElements */ public get type(): GridType["type"] { return 'flat'; } diff --git a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts index 2167421b88e..9246f3212a3 100644 --- a/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.ts @@ -92,7 +92,7 @@ export abstract class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirect @Output() public dataPreLoad = new EventEmitter(); - /** @hidden @internal */ + /** @hidden @internal @exportElements */ public override get type(): GridType["type"] { return 'hierarchical'; } diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts index 5eb3a803e22..7795676a958 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts @@ -649,7 +649,7 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni public get pivotKeys() { return this.pivotConfiguration.pivotKeys || DEFAULT_PIVOT_KEYS; } - /** @hidden @internal */ + /** @hidden @internal @exportElements */ public override get type(): GridType["type"] { return 'pivot'; } @@ -1318,7 +1318,7 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni return this.pivotConfiguration.rows?.filter(x => x.enabled) || []; } - /** @hidden @internal */ + /** @hidden @internal @exportElements */ public set visibleRowDimensions(value: IPivotDimension[]) { this._visibleRowDimensions = value; } diff --git a/projects/igniteui-angular/src/lib/services/csv/csv-exporter-options.ts b/projects/igniteui-angular/src/lib/services/csv/csv-exporter-options.ts index 8cfd793da4d..41b0fae97c5 100644 --- a/projects/igniteui-angular/src/lib/services/csv/csv-exporter-options.ts +++ b/projects/igniteui-angular/src/lib/services/csv/csv-exporter-options.ts @@ -1,5 +1,6 @@ import { IgxExporterOptionsBase } from '../exporter-common/exporter-options-base'; +/* csSuppress */ /** * Objects of this class are used to configure the CSV exporting process. */ diff --git a/projects/igniteui-angular/src/lib/services/csv/csv-exporter.ts b/projects/igniteui-angular/src/lib/services/csv/csv-exporter.ts index d6a5c9596ae..5c3a8ecf4d9 100644 --- a/projects/igniteui-angular/src/lib/services/csv/csv-exporter.ts +++ b/projects/igniteui-angular/src/lib/services/csv/csv-exporter.ts @@ -5,10 +5,12 @@ import { CharSeparatedValueData } from './char-separated-value-data'; import { CsvFileTypes, IgxCsvExporterOptions } from './csv-exporter-options'; import { IBaseEventArgs } from '../../core/utils'; +/* csSuppress */ export interface ICsvExportEndedEventArgs extends IBaseEventArgs { csvData?: string; } +/* csSuppress */ /** * **Ignite UI for Angular CSV Exporter Service** - * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter-csv) diff --git a/projects/igniteui-angular/src/lib/services/excel/excel-exporter-options.ts b/projects/igniteui-angular/src/lib/services/excel/excel-exporter-options.ts index 0dc941ad668..264d6784d2d 100644 --- a/projects/igniteui-angular/src/lib/services/excel/excel-exporter-options.ts +++ b/projects/igniteui-angular/src/lib/services/excel/excel-exporter-options.ts @@ -1,5 +1,6 @@ import { IgxExporterOptionsBase } from '../exporter-common/exporter-options-base'; +/* csSuppress */ /** * Objects of this class are used to configure the Excel exporting process. */ diff --git a/projects/igniteui-angular/src/lib/services/excel/excel-exporter.ts b/projects/igniteui-angular/src/lib/services/excel/excel-exporter.ts index 0aa6c387e9f..5339d2c2d4f 100644 --- a/projects/igniteui-angular/src/lib/services/excel/excel-exporter.ts +++ b/projects/igniteui-angular/src/lib/services/excel/excel-exporter.ts @@ -11,6 +11,7 @@ import { WorksheetData } from './worksheet-data'; import { IBaseEventArgs } from '../../core/utils'; import { WorksheetFile } from './excel-files'; +/* csSuppress */ export interface IExcelExportEndedEventArgs extends IBaseEventArgs { xlsx?: Object } @@ -18,6 +19,7 @@ export interface IExcelExportEndedEventArgs extends IBaseEventArgs { const EXCEL_MAX_ROWS = 1048576; const EXCEL_MAX_COLS = 16384; +/* csSuppress */ /** * **Ignite UI for Angular Excel Exporter Service** - * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter_excel.html)