diff --git a/projects/igniteui-angular-elements/src/analyzer/elements.config.ts b/projects/igniteui-angular-elements/src/analyzer/elements.config.ts index 05c86c74b99..87e78af2051 100644 --- a/projects/igniteui-angular-elements/src/analyzer/elements.config.ts +++ b/projects/igniteui-angular-elements/src/analyzer/elements.config.ts @@ -266,6 +266,7 @@ export var registerConfig = [ { name: "pinnedColumnsCount" }, { name: "transactions" }, { name: "lastSearchInfo" }, + { name: "type" }, { name: "filteredData" }, { name: "filteredSortedData" }, { name: "virtualizationState" }, @@ -551,6 +552,7 @@ export var registerConfig = [ additionalProperties: [ { name: "foreignKey" }, { name: "selectedCells" }, + { name: "type" }, { name: "gridAPI", writable: true }, { name: "navigation", writable: true }, { name: "validation" }, @@ -737,11 +739,13 @@ export var registerConfig = [ ], additionalProperties: [ { name: "gridAPI" }, + { name: "type" }, { name: "navigation", writable: true }, { name: "dimensionsSortingExpressions" }, { name: "allDimensions" }, { name: "validation" }, { name: "cdr" }, + { name: "visibleRowDimensions", writable: true }, { name: "rowList" }, { name: "dataRowList" }, { name: "lastSearchInfo" }, @@ -889,6 +893,7 @@ export var registerConfig = [ ], additionalProperties: [ { name: "rowIslandAPI", writable: true }, + { name: "type" }, { name: "gridAPI", writable: true }, { name: "navigation", writable: true }, { name: "validation" }, 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 2e32da4515e..b727ff8ecc5 100644 --- a/projects/igniteui-angular-elements/src/public_api.ts +++ b/projects/igniteui-angular-elements/src/public_api.ts @@ -1,6 +1,8 @@ import { registerI18n, setCurrentI18n } from 'igniteui-i18n-core'; import { ByLevelTreeGridMergeStrategy, ColumnPinningPosition, DefaultMergeStrategy, DefaultTreeGridMergeStrategy, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, HorizontalAlignment, IgxBooleanFilteringOperand, IgxDateFilteringOperand, IgxDateTimeFilteringOperand, IgxFilteringOperand, IgxNumberFilteringOperand, IgxStringFilteringOperand, IgxTimeFilteringOperand, NoopFilteringStrategy, NoopSortingStrategy, SortingDirection, VerticalAlignment } from 'igniteui-angular/core'; -import { DropPosition, GridPagingMode, IgxDateSummaryOperand, IgxNumberSummaryOperand, IgxPivotAggregate, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotNumericAggregate, IgxPivotTimeAggregate, IgxSummaryOperand, IgxTimeSummaryOperand, NoopPivotDimensionsStrategy, PivotDimensionType, RowPinningPosition } from 'igniteui-angular/grids/core'; +import { CsvFileTypes, DropPosition, GridPagingMode, IgxCsvExporterOptions, IgxDateSummaryOperand, IgxExcelExporterOptions, IgxNumberSummaryOperand, IgxPivotAggregate, IgxPivotDateAggregate, IgxPivotDateDimension, IgxPivotNumericAggregate, IgxPivotTimeAggregate, IgxSummaryOperand, IgxTimeSummaryOperand, NoopPivotDimensionsStrategy, PivotDimensionType, RowPinningPosition } from 'igniteui-angular/grids/core'; +import { IgcExcelExporterService } from './lib/excel-exporter'; +import { IgcCsvExporterService } from './lib/csv-exporter'; /** Export Public API, TODO: reorganize, Generate all w/ renames? */ export { @@ -49,4 +51,10 @@ export { // i18n registerI18n, setCurrentI18n, + + IgxExcelExporterOptions as IgcExcelExporterOptions, + IgxCsvExporterOptions as IgcCsvExporterOptions, + IgcExcelExporterService, + IgcCsvExporterService, + CsvFileTypes } diff --git a/projects/igniteui-angular/grids/core/src/services/csv/csv-exporter-options.ts b/projects/igniteui-angular/grids/core/src/services/csv/csv-exporter-options.ts index 8cfd793da4d..41b0fae97c5 100644 --- a/projects/igniteui-angular/grids/core/src/services/csv/csv-exporter-options.ts +++ b/projects/igniteui-angular/grids/core/src/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/grids/core/src/services/csv/csv-exporter.ts b/projects/igniteui-angular/grids/core/src/services/csv/csv-exporter.ts index 7f6f99b6eb4..a85e1affe0a 100644 --- a/projects/igniteui-angular/grids/core/src/services/csv/csv-exporter.ts +++ b/projects/igniteui-angular/grids/core/src/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 'igniteui-angular/core'; +/* 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/grids/core/src/services/excel/excel-exporter-options.ts b/projects/igniteui-angular/grids/core/src/services/excel/excel-exporter-options.ts index 0dc941ad668..264d6784d2d 100644 --- a/projects/igniteui-angular/grids/core/src/services/excel/excel-exporter-options.ts +++ b/projects/igniteui-angular/grids/core/src/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/grids/core/src/services/excel/excel-exporter.ts b/projects/igniteui-angular/grids/core/src/services/excel/excel-exporter.ts index 8061064328a..299373c5127 100644 --- a/projects/igniteui-angular/grids/core/src/services/excel/excel-exporter.ts +++ b/projects/igniteui-angular/grids/core/src/services/excel/excel-exporter.ts @@ -11,6 +11,7 @@ import { WorksheetData } from './worksheet-data'; import { WorksheetFile } from './excel-files'; import { IBaseEventArgs } from 'igniteui-angular/core'; +/* 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) diff --git a/projects/igniteui-angular/grids/grid/src/grid-base.directive.ts b/projects/igniteui-angular/grids/grid/src/grid-base.directive.ts index ff880dca911..d7839a574c3 100644 --- a/projects/igniteui-angular/grids/grid/src/grid-base.directive.ts +++ b/projects/igniteui-angular/grids/grid/src/grid-base.directive.ts @@ -3084,7 +3084,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/grids/hierarchical-grid/src/hierarchical-grid-base.directive.ts b/projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid-base.directive.ts index 5acc69f1fa6..437c2a36c03 100644 --- a/projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid-base.directive.ts +++ b/projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid-base.directive.ts @@ -76,7 +76,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/grids/pivot-grid/src/pivot-grid.component.ts b/projects/igniteui-angular/grids/pivot-grid/src/pivot-grid.component.ts index afc3939de51..7eeaa6ada7d 100644 --- a/projects/igniteui-angular/grids/pivot-grid/src/pivot-grid.component.ts +++ b/projects/igniteui-angular/grids/pivot-grid/src/pivot-grid.component.ts @@ -614,7 +614,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'; } @@ -1248,7 +1248,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; }