Repository navigation
Conversation
…into remove-deprecated-api-23
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Several v23 migration transforms can silently change application logic or leave migrated projects uncompilable.
Review effort: Balanced
Findings: 3
Open (6)
Overbroad rewriting changes unrelated top/bottom literals · New Early return skips migration of nested receiver and arguments · New Type-only import produces invalid runtime lookup · New Removing input discards customized search text · New Generated call changes default-parameter semantics · New Regex replacement alters Sass strings and comments · New
What changed in this PR
Removes pre-21.1 deprecated APIs for v23 and provides migrations for affected applications.
Changes:
- Removes deprecated component, grid, event, filtering, and theming APIs.
- Adds TypeScript, template, and Sass migrations with coverage.
- Updates samples, documentation, tests, Elements metadata, and Indigo elevations.
| File | Description |
|---|---|
src/app/reactive-from/reactive-form-sample.component.html |
Migrates combo placeholder resources. |
src/app/pivot-grid/pivot-grid.sample.html |
Migrates combo placeholder resources. |
src/app/pivot-grid-hierarchy/pivot-grid-hierarchy.sample.html |
Migrates combo placeholder resources. |
src/app/grid-row-edit/grid-row-edit-sample.component.ts |
Uses rowKey. |
src/app/carousel/carousel.sample.ts |
Uses new orientation values. |
src/app/action-strip/action-strip.sample.ts |
Uses rowKey. |
skills/igniteui-angular-grids/references/editing.md |
Updates event-argument guidance. |
skills/igniteui-angular-grids/references/data-operations.md |
Documents filtering replacements. |
skills/igniteui-angular-figma-to-app/references/theme-generation.md |
Documents removed theme mixins. |
projects/igniteui-angular/test-utils/tree-grid-components.spec.ts |
Uses row selector key. |
projects/igniteui-angular/test-utils/grid-samples.spec.ts |
Uses row selector key. |
projects/igniteui-angular/tabs/src/tabs/tabs/tab-content.component.ts |
Deletes obsolete tab content implementation. |
projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.component.ts |
Removes deprecated example input. |
projects/igniteui-angular/query-builder/src/query-builder/query-builder.component.ts |
Removes deprecated fields. |
projects/igniteui-angular/query-builder/src/query-builder/query-builder.component.spec.ts |
Tests combo resource propagation. |
projects/igniteui-angular/query-builder/src/query-builder/query-builder-tree.component.ts |
Adds combo resource mapping. |
projects/igniteui-angular/query-builder/src/query-builder/query-builder-tree.component.html |
Uses combo resources. |
projects/igniteui-angular/query-builder/src/query-builder/query-builder-header.component.ts |
Removes deprecated header inputs. |
projects/igniteui-angular/paginator/src/paginator/paginator.component.ts |
Removes deprecated page getters. |
projects/igniteui-angular/migrations/update-23_0_0/index.ts |
Implements v23 migrations. |
projects/igniteui-angular/migrations/update-23_0_0/index.spec.ts |
Tests v23 migrations. |
projects/igniteui-angular/migrations/update-23_0_0/changes/members.json |
Migrates column children access. |
projects/igniteui-angular/migrations/update-23_0_0/changes/inputs.json |
Defines input migrations. |
projects/igniteui-angular/migrations/update-23_0_0/changes/classes.json |
Renames the for-of event type. |
projects/igniteui-angular/migrations/migration-collection.json |
Registers v23 migration. |
projects/igniteui-angular/icon/src/icon/icon.service.ts |
Removes registerFamilyAlias. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid.pipes.ts |
Uses add-parent rowKey. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid.component.ts |
Removes deprecated event fields. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid-selection.spec.ts |
Updates selector expectations. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid-row.component.html |
Removes selector rowID. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid-expanding.spec.ts |
Expects rowKey. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid-crud.spec.ts |
Updates row event expectations. |
projects/igniteui-angular/grids/tree-grid/src/tree-grid-add-row-ui.spec.ts |
Uses add-parent rowKey. |
projects/igniteui-angular/grids/pivot-grid/src/pivot-grid.spec.ts |
Removes deprecated assertions. |
projects/igniteui-angular/grids/pivot-grid/src/pivot-grid.component.ts |
Removes shouldGenerate. |
projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-row.component.html |
Removes selector rowID. |
projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid.spec.ts |
Updates path segments. |
projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid.selection.spec.ts |
Updates selector expectations. |
projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid.navigation.spec.ts |
Updates navigation paths. |
projects/igniteui-angular/grids/hierarchical-grid/src/hierarchical-grid-navigation.service.ts |
Emits rowKey paths. |
projects/igniteui-angular/grids/grid/src/grid.nested.props.spec.ts |
Updates edit arguments. |
projects/igniteui-angular/grids/grid/src/grid-row.component.html |
Removes selector rowID. |
projects/igniteui-angular/grids/grid/src/grid-row-selection.spec.ts |
Updates selector expectations. |
projects/igniteui-angular/grids/grid/src/grid-row-pinning.spec.ts |
Updates pinning arguments. |
projects/igniteui-angular/grids/grid/src/grid-row-editing.spec.ts |
Updates editing arguments. |
projects/igniteui-angular/grids/grid/src/grid-filtering.spec.ts |
Removes global-filter tests. |
projects/igniteui-angular/grids/grid/src/grid-filtering-ui.spec.ts |
Uses ExpressionsTreeUtil. |
projects/igniteui-angular/grids/grid/src/grid-cell-editing.spec.ts |
Uses rowKey. |
projects/igniteui-angular/grids/grid/src/grid-base.directive.ts |
Removes deprecated grid APIs. |
projects/igniteui-angular/grids/core/src/toolbar/grid-toolbar.component.ts |
Makes grid read-only. |
projects/igniteui-angular/grids/core/src/summaries/grid-summary.service.ts |
Resolves edited rows via cellID. |
projects/igniteui-angular/grids/core/src/state-base.directive.ts |
Removes legacy parent restoration. |
projects/igniteui-angular/grids/core/src/services/exporter-common/base-export-service.ts |
Updates hierarchical paths. |
projects/igniteui-angular/grids/core/src/grid-actions/grid-editing-actions.component.spec.ts |
Updates event expectations. |
projects/igniteui-angular/grids/core/src/filtering/grid-filtering.service.ts |
Removes filterGlobal. |
projects/igniteui-angular/grids/core/src/common/grid.interface.ts |
Removes selector rowID. |
projects/igniteui-angular/grids/core/src/common/events.ts |
Removes deprecated event members. |
projects/igniteui-angular/grids/core/src/common/crud.service.ts |
Produces updated event shapes. |
projects/igniteui-angular/grids/core/src/columns/column.component.ts |
Marks children internal. |
projects/igniteui-angular/grids/core/src/columns/column-group.component.ts |
Marks children internal. |
projects/igniteui-angular/grids/core/src/api.service.ts |
Uses new row event fields. |
projects/igniteui-angular/directives/src/public_api.ts |
Removes deprecated event export. |
projects/igniteui-angular/directives/src/directives/for-of/for_of.directive.ts |
Removes deprecated event alias. |
projects/igniteui-angular/core/src/data-operations/README-DATAUTIL.md |
Documents ExpressionsTreeUtil. |
projects/igniteui-angular/core/src/data-operations/grid-types.ts |
Removes path rowID. |
projects/igniteui-angular/core/src/data-operations/filtering-expressions-tree.ts |
Removes instance lookup methods. |
projects/igniteui-angular/core/src/core/styles/themes/presets/igniteui-indigo-light.scss |
Applies Indigo elevations. |
projects/igniteui-angular/core/src/core/styles/themes/presets/igniteui-indigo-dark.scss |
Applies Indigo elevations. |
projects/igniteui-angular/core/src/core/styles/themes/generators/_indigo.scss |
Deletes Indigo wrappers. |
projects/igniteui-angular/core/src/core/styles/themes/generators/_index.scss |
Stops forwarding wrappers. |
projects/igniteui-angular/core/src/core/styles/themes/generators/_fluent.scss |
Deletes Fluent wrappers. |
projects/igniteui-angular/core/src/core/styles/themes/generators/_bootstrap.scss |
Deletes Bootstrap wrappers. |
projects/igniteui-angular/core/src/core/styles/themes/generators/_base.scss |
Deletes Material wrappers. |
projects/igniteui-angular/core/src/core/styles/themes/_palettes.scss |
Removes deprecated palettes. |
projects/igniteui-angular/core/src/core/styles/base/_mixins.scss |
Updates palette documentation. |
projects/igniteui-angular/combo/src/combo/combo.component.ts |
Removes searchPlaceholder. |
projects/igniteui-angular/combo/src/combo/combo.component.spec.ts |
Tests resource placeholders. |
projects/igniteui-angular/combo/README.md |
Documents resource replacement. |
projects/igniteui-angular/carousel/src/carousel/slide.component.ts |
Preserves slide tabindex internally. |
projects/igniteui-angular/carousel/src/carousel/enums.ts |
Removes old orientation values. |
projects/igniteui-angular/carousel/src/carousel/carousel.component.ts |
Uses orientation directly. |
projects/igniteui-angular/carousel/src/carousel/carousel.component.spec.ts |
Tests slide tabindex behavior. |
projects/igniteui-angular/carousel/README.md |
Documents orientation values. |
projects/igniteui-angular/avatar/src/avatar/avatar.component.ts |
Removes color inputs. |
projects/igniteui-angular/avatar/README.md |
Documents style bindings. |
projects/igniteui-angular-performance/src/styles.scss |
Uses explicit theme schema. |
projects/igniteui-angular-elements/src/themes/light/indigo.scss |
Applies Indigo elevations. |
projects/igniteui-angular-elements/src/themes/dark/indigo.scss |
Applies Indigo elevations. |
projects/igniteui-angular-elements/src/themes/_util.scss |
Supports configurable elevations. |
projects/igniteui-angular-elements/src/analyzer/elements.config.ts |
Updates exposed Elements APIs. |
projects/bundle-test/src/styles.scss |
Replaces legacy theme wrapper. |
CHANGELOG.md |
Documents breaking changes. |
.github/themes-contributing.md |
Updates theme architecture guidance. |
.agents/agents/theming-styles-agent.md |
Removes obsolete generator guidance. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+44
to
+47
| args.value = args.value | ||
| .replace(/(['"])(top|bottom)\1/g, (_, quote, value) => `${quote}${replacements[value]}${quote}`) | ||
| .replace(/\bCarouselIndicatorsOrientation\.(top|bottom)\b/g, | ||
| (_, value) => `CarouselIndicatorsOrientation.${replacements[value]}`); |
Comment on lines
+227
to
+228
| if (migrateCall(node, node.expression)) { | ||
| return; |
Comment on lines
+348
to
+353
| for (const declaration of igImports) { | ||
| const bindings = declaration.importClause?.namedBindings; | ||
| const existing = bindings && tss.isNamedImports(bindings) && bindings.elements.find(e => (e.propertyName ?? e.name).text === name); | ||
| if (existing) { | ||
| return (existing as tss.ImportSpecifier).name.text; | ||
| } |
Comment on lines
+38
to
+43
| "name": "searchPlaceholder", | ||
| "remove": true, | ||
| "owner": { | ||
| "selector": "igx-combo", | ||
| "type": "component" | ||
| } |
Comment on lines
+303
to
+307
| const [alias, className = alias, type = `'font'`] = args; | ||
| changes.push({ | ||
| start: callee.name.getStart(sourceFile), | ||
| end: node.getEnd(), | ||
| text: `setFamily(${alias}, { className: ${className}, type: ${type} })` |
Comment on lines
+584
to
+590
| for (const [palette, replacement] of Object.entries(PALETTES)) { | ||
| const local = declaresLocally(content, 'variable', palette); | ||
| const paletteRegex = new RegExp(String.raw`(^|[^\w$.-]|([\w-]+)\.)\$${palette}(?![\w-])`, 'g'); | ||
| content = content.replace(paletteRegex, (text, before: string, namespace: string) => { | ||
| const library = namespace ? namespaces.has(namespace) : global && !local; | ||
| return library ? `${before}$${replacement}` : text; | ||
| }); |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Description
Everything deprecated before 21.1.0 has been removed except ten NgModules (question below). I added a new 23.0.0
ng updatemigration and documented the removals in CHANGELOG. Everything is on branch remove-deprecated-api-23 and nothing is committed.Checks: the library build, theme generation and lint:lib pass. The library, specs, Elements and demo app typecheck with 0 errors. All 528 schematics/migration specs pass, including 22 new ones. In targeted Karma runs, every failure (for-of scrollbars, query-builder drag-and-drop, some grid layout/locale tests) also fails on a clean checkout of master.
What was removed:
Migrations: the existing ones from 17.1.0, 18.1.0, 18.2.0 and 19.1.0 are copied into update-23_0_0. New ones cover avatar colors (become [style.color]/[style.background]), carousel orientation, registerFamilyAlias, find/findIndex, the renamed event-arg members, row selector rowID → key, the theme wrappers and the palette variables.
The old member migrations couldn't simply be copied for removed members. They find the member through the language service, which can't resolve it once it's gone from the package. The new code checks the type of the object the member is accessed on instead. Members with no replacement, like filterGlobal, are reported as warnings for the user to fix by hand.
Motivation / Context
Removing deprecated APIs isn't automated. I'm running removal for everything that is left from before 21.1.
Type of Change (check all that apply):
Component(s) / Area(s) Affected:
How Has This Been Tested?
Test Configuration:
Screenshots / Recordings
Checklist:
feature/README.MDupdates for the feature docsREADME.MDCHANGELOG.MDupdates for newly added functionalityng updatemigrations for the breaking changes (migrations guidelines)