-
Notifications
You must be signed in to change notification settings - Fork 157
refactor(exporters): moving exporters under grids/core #16519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(exporters): moving exporters under grids/core #16519
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR refactors the codebase by moving exporter services (CSV, Excel, and PDF) from the core package to grids/core, consolidating grid-related functionality in a more appropriate location.
- Relocated exporter services and related utilities from
igniteui-angular/coretoigniteui-angular/grids/core - Updated import paths across the codebase to reflect the new location
- Added migration mappings for version 21.0.0 to guide users through the breaking changes
Reviewed changes
Copilot reviewed 23 out of 38 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| projects/igniteui-angular/test-utils/sample-test-data.spec.ts | Updated import path for ValueData to reflect new location in grids/core |
| projects/igniteui-angular/migrations/update-21_0_0_import-migration/index.ts | Added comprehensive migration mappings for all exporter-related types and services |
| projects/igniteui-angular/grids/grid/src/grid-toolbar.spec.ts | Consolidated exporter service imports to grids/core |
| projects/igniteui-angular/grids/grid/src/grid-base.directive.ts | Moved CharSeparatedValueData import from core to grids/core |
| projects/igniteui-angular/grids/core/src/toolbar/grid-toolbar-exporter.component.ts | Replaced core imports with specific imports from grids/core services |
| projects/igniteui-angular/grids/core/src/services/pdf/pdf-exporter.ts | Updated IBaseEventArgs import to use igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/services/pdf/pdf-exporter.spec.ts | Adjusted test data import path for new directory structure |
| projects/igniteui-angular/grids/core/src/services/pdf/pdf-exporter-grid.spec.ts | Updated multiple test component import paths |
| projects/igniteui-angular/grids/core/src/services/exporter-common/test-methods.spec.ts | Consolidated imports from new locations |
| projects/igniteui-angular/grids/core/src/services/exporter-common/base-export-service.ts | Consolidated multiple imports into single import from igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/services/excel/excel-files.ts | Updated yieldingLoop import to igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/services/excel/excel-exporter.ts | Updated IBaseEventArgs import to igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/services/excel/excel-exporter.spec.ts | Adjusted test data import path |
| projects/igniteui-angular/grids/core/src/services/excel/excel-exporter-grid.spec.ts | Reorganized imports and updated paths for new structure |
| projects/igniteui-angular/grids/core/src/services/csv/csv-verification-wrapper.spec.ts | Removed unused private field |
| projects/igniteui-angular/grids/core/src/services/csv/csv-exporter.ts | Updated IBaseEventArgs import to igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/services/csv/csv-exporter.spec.ts | Adjusted test data import path |
| projects/igniteui-angular/grids/core/src/services/csv/csv-exporter-grid.spec.ts | Consolidated and reorganized imports |
| projects/igniteui-angular/grids/core/src/services/csv/char-separated-value-data.ts | Updated yieldingLoop import to igniteui-angular/core |
| projects/igniteui-angular/grids/core/src/public_api.ts | Added exports for all exporter services and types |
| projects/igniteui-angular/grids/core/src/common/events.ts | Split exporter imports to use grids/core instead of core |
| projects/igniteui-angular/core/src/services/public_api.ts | Removed exporter-related exports |
| projects/igniteui-angular/core/src/public_api.ts | Added export for data-operations/operations |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree'; | ||
| import { FilteringLogic } from '../../data-operations/filtering-expression.interface'; | ||
| import { FilteringExpressionsTree } from '../../../../../core/src/data-operations/filtering-expressions-tree'; | ||
| import { FilteringLogic } from '../../../../../core/src/data-operations/filtering-expression.interface'; |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These imports use relative paths to access the core package instead of the package import path 'igniteui-angular/core'. For consistency with other files in this PR (like csv-exporter-grid.spec.ts line 22), these should use the package import path.
| import { FilteringLogic } from '../../../../../core/src/data-operations/filtering-expression.interface'; | |
| import { FilteringLogic } from 'igniteui-angular/core'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 23 out of 38 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| export { Direction as ɵDirection, DIR_DOCUMENT as ɵDIR_DOCUMENT, IgxDirectionality as ɵIgxDirectionality } from './direction/directionality'; | ||
| export * from './excel/excel-exporter'; | ||
| export * from './excel/excel-exporter-options'; | ||
| export * from './pdf/pdf-exporter'; | ||
| export * from './pdf/pdf-exporter-options'; | ||
| export * from './exporter-common/base-export-service'; | ||
| export * from './exporter-common/exporter-options-base'; | ||
| export * from './overlay/overlay'; |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Removed exporter service exports leave a formatting gap. The export statement on line 5 should have consistent spacing with line 6 (consider adding a blank line after line 5 or removing the existing blank line before line 6 for consistency).
| import { getHierarchy, isHierarchyMatch } from '../../data-operations/operations'; | ||
| import { IGroupByExpandState } from '../../data-operations/groupby-expand-state.interface'; | ||
| import { IFilteringState } from '../../data-operations/filtering-state.interface'; | ||
| import { type ITreeGridRecord, type ColumnType, type GridTypeBase, type IPathSegment, type IgxSummaryResult, type GridColumnDataType, DataUtil, FilterUtil, GridSummaryCalculationMode, IBaseEventArgs, IFilteringState, IGroupByExpandState, IGroupByRecord, IGroupingState, TreeGridFilteringStrategy, cloneArray, cloneValue, columnFieldPath, resolveNestedPath, yieldingLoop, getHierarchy, isHierarchyMatch } from 'igniteui-angular/core'; |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The consolidated import on line 4 is extremely long with 22 named imports. Consider splitting this into multiple imports grouped by related functionality (e.g., types, utilities, data operations) to improve readability.
| import { type ITreeGridRecord, type ColumnType, type GridTypeBase, type IPathSegment, type IgxSummaryResult, type GridColumnDataType, DataUtil, FilterUtil, GridSummaryCalculationMode, IBaseEventArgs, IFilteringState, IGroupByExpandState, IGroupByRecord, IGroupingState, TreeGridFilteringStrategy, cloneArray, cloneValue, columnFieldPath, resolveNestedPath, yieldingLoop, getHierarchy, isHierarchyMatch } from 'igniteui-angular/core'; | |
| // Types | |
| import { type ITreeGridRecord, type ColumnType, type GridTypeBase, type IPathSegment, type IgxSummaryResult, type GridColumnDataType, type IBaseEventArgs, type IFilteringState, type IGroupByExpandState, type IGroupByRecord, type IGroupingState } from 'igniteui-angular/core'; | |
| // Utilities | |
| import { DataUtil, FilterUtil, cloneArray, cloneValue, columnFieldPath, resolveNestedPath, yieldingLoop, getHierarchy, isHierarchyMatch } from 'igniteui-angular/core'; | |
| // Strategies and Enums | |
| import { TreeGridFilteringStrategy, GridSummaryCalculationMode } from 'igniteui-angular/core'; |
Closes #
Additional information (check all that apply):
Checklist:
feature/README.MDupdates for the feature docsREADME.MDCHANGELOG.MDupdates for newly added functionalityng updatemigrations for the breaking changes (migrations guidelines)