igniteui-angular 21.1.0-rc.5 → 21.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,6 +24,8 @@ class IgxGridLite extends IgcGridLite {
24
24
  * @fires sorted - Emitted when a sort operation initiated through the UI has completed.
25
25
  * @fires filtering - Emitted when filtering is initiated through the UI.
26
26
  * @fires filtered - Emitted when a filter operation initiated through the UI has completed.
27
+ *
28
+ * @developerPreview 21.1.0
27
29
  */
28
30
  class IgxGridLiteComponent {
29
31
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-grids-lite.mjs","sources":["../../../projects/igniteui-angular/grids/lite/src/grid-lite.component.ts","../../../projects/igniteui-angular/grids/lite/src/grid-lite-column.component.ts","../../../projects/igniteui-angular/grids/lite/src/grid-lite-column.component.html","../../../projects/igniteui-angular/grids/lite/src/igniteui-angular-grids-lite.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, ElementRef, inject, input, model, OnInit } from '@angular/core';\nimport { DataPipelineConfiguration, FilterExpression, GridLiteSortingOptions, IgcGridLite, Keys, SortingExpression } from 'igniteui-grid-lite';\nimport { IgxGridLiteColumnConfiguration } from './grid-lite-column.component';\n\nexport type IgxGridLiteSortingOptions = GridLiteSortingOptions;\nexport type IgxGridLiteDataPipelineConfiguration<T extends object = any> = DataPipelineConfiguration<T>;\nexport type IgxGridLiteSortingExpression<T extends object = any> = SortingExpression<T>;\nexport type IgxGridLiteFilteringExpression<T extends object = any> = FilterExpression<T>;\n\n\nclass IgxGridLite<T extends object = any> extends IgcGridLite<T> {\n public static override get tagName() {\n return 'igx-grid-lite' as any;\n }\n public static override register(): void {\n // still call super for child components:\n super.register();\n\n if (!customElements.get(IgxGridLite.tagName)) {\n customElements.define(IgxGridLite.tagName, IgxGridLite);\n }\n }\n}\n\n/**\n * The Grid Lite is a web component for displaying data in a tabular format quick and easy.\n *\n * Out of the box it provides row virtualization, sort and filter operations (client and server side),\n * the ability to template cells and headers and column hiding.\n *\n * @fires sorting - Emitted when sorting is initiated through the UI.\n * @fires sorted - Emitted when a sort operation initiated through the UI has completed.\n * @fires filtering - Emitted when filtering is initiated through the UI.\n * @fires filtered - Emitted when a filter operation initiated through the UI has completed.\n */\n@Component({\n selector: 'igx-grid-lite',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n host: {\n '[data]': \"data()\",\n '[autoGenerate]': \"autoGenerate()\",\n '[sortingOptions]': \"sortingOptions()\",\n '[dataPipelineConfiguration]': \"dataPipelineConfiguration()\",\n '(sorted)': \"onSorted($any($event))\",\n '(filtered)': \"onFiltered($any($event))\",\n 'adopt-root-styles': '',\n },\n template: `<ng-content></ng-content>`\n})\n\nexport class IgxGridLiteComponent<T extends object = any> implements OnInit {\n\n //#region Internal state\n\n private readonly gridRef = inject(ElementRef) as ElementRef<IgxGridLite<T>>;\n\n //#endregion\n\n //#region Inputs\n\n /** The data source for the grid. */\n public readonly data = input<T[]>([]);\n\n /**\n * Whether the grid will try to \"resolve\" its column configuration based on the passed\n * data source.\n *\n * @remarks\n * This property is ignored if any existing column configuration already exists in the grid.\n */\n public readonly autoGenerate = input(false, { transform: booleanAttribute });;\n\n /** Sort configuration property for the grid. */\n public readonly sortingOptions = input<IgxGridLiteSortingOptions>({\n mode: 'multiple'\n });\n\n /**\n * Configuration object which controls remote data operations for the grid.\n */\n public readonly dataPipelineConfiguration = input<IgxGridLiteDataPipelineConfiguration>();\n\n /**\n * The sort state for the grid.\n *\n * @remarks\n * This is a two-way bindable property. It will be updated when sort operations\n * complete through the UI.\n */\n public readonly sortingExpressions = model<IgxGridLiteSortingExpression<T>[]>([]);\n\n /**\n * The filter state for the grid.\n *\n * @remarks\n * This is a two-way bindable property. It will be updated when filter operations\n * complete through the UI.\n */\n public readonly filteringExpressions = model<IgxGridLiteFilteringExpression<T>[]>([]);\n\n //#endregion\n\n //#region Getters / Setters\n\n /**\n * Get the column configuration of the grid.\n */\n public get columns(): IgxGridLiteColumnConfiguration<T>[] {\n return this.gridRef.nativeElement.columns ?? [];\n }\n\n /**\n * Returns the collection of rendered row elements in the grid.\n *\n * @remarks\n * Since the grid has virtualization, this property returns only the currently rendered\n * chunk of elements in the DOM.\n */\n public get rows() {\n return this.gridRef.nativeElement.rows ?? [];\n }\n\n /**\n * Returns the state of the data source after sort/filter operations\n * have been applied.\n */\n public get dataView(): ReadonlyArray<T> {\n return this.gridRef.nativeElement.dataView ?? [];\n }\n\n //#endregion\n\n constructor() {\n // D.P. Temporary guarded assign instead of binding to prevent WC issue with setter logic re-doing sort/filter\n effect(() => {\n const grid = this.gridRef.nativeElement\n if (!grid) return;\n const newValue = this.filteringExpressions();\n if (new Set(newValue).symmetricDifference(new Set(grid.filterExpressions)).size !== 0) {\n grid.clearFilter();\n grid.filterExpressions = newValue;\n }\n });\n effect(() => {\n const grid = this.gridRef.nativeElement\n if (!grid) return;\n const newValue = this.sortingExpressions();\n if (new Set(newValue).symmetricDifference(new Set(grid.sortingExpressions)).size !== 0) {\n grid.clearSort();\n grid.sortingExpressions = newValue;\n }\n });\n }\n\n /**\n * @hidden @internal\n */\n public ngOnInit(): void {\n IgxGridLite.register();\n }\n\n //#region Public API\n\n /**\n * Performs a filter operation in the grid based on the passed expression(s).\n */\n public filter(config: IgxGridLiteFilteringExpression | IgxGridLiteFilteringExpression[]): void {\n this.gridRef.nativeElement.filter(config as FilterExpression<T> | FilterExpression<T>[]);\n }\n\n /**\n * Performs a sort operation in the grid based on the passed expression(s).\n */\n public sort(expressions: IgxGridLiteSortingExpression<T> | IgxGridLiteSortingExpression<T>[]) {\n this.gridRef.nativeElement.sort(expressions);\n }\n\n /**\n * Resets the current sort state of the control.\n */\n public clearSort(key?: Keys<T>): void {\n this.gridRef.nativeElement.clearSort(key);\n }\n\n /**\n * Resets the current filter state of the control.\n */\n public clearFilter(key?: Keys<T>): void {\n this.gridRef.nativeElement.clearFilter(key);\n }\n\n /**\n * Navigates to a position in the grid based on provided row index and column field.\n * @param row The row index to navigate to\n * @param column The column field to navigate to, if any\n * @param activate Optionally also activate the navigated cell\n */\n public async navigateTo(row: number, column?: Keys<T>, activate = false) {\n await this.gridRef.nativeElement.navigateTo(row, column, activate);\n }\n\n /**\n * Returns a {@link IgxGridLiteColumnConfiguration} for a given column.\n */\n public getColumn(id: Keys<T> | number): IgxGridLiteColumnConfiguration<T> | undefined {\n return this.gridRef.nativeElement.getColumn(id);\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected onSorted(_event: CustomEvent<SortingExpression<T>>): void {\n this.sortingExpressions.set(this.gridRef.nativeElement.sortingExpressions ?? []);\n }\n\n protected onFiltered(_event: CustomEvent<FilterExpression<T>>): void {\n this.filteringExpressions.set(this.gridRef.nativeElement.filterExpressions ?? []);\n }\n\n //#endregion\n\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgxGridLite.tagName]: IgxGridLite;\n }\n\n interface HTMLElementEventMap {\n 'sorting': CustomEvent<IgxGridLiteSortingExpression<any>>;\n 'sorted': CustomEvent<IgxGridLiteSortingExpression<any>>;\n 'filtering': CustomEvent<IgxGridLiteFilteringExpression<any>>;\n 'filtered': CustomEvent<IgxGridLiteFilteringExpression<any>>;\n }\n}\n\n// see https://github.com/ng-packagr/ng-packagr/issues/3233\nexport {};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, contentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, effect, EmbeddedViewRef, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ColumnConfiguration, ColumnSortConfiguration, IgcCellContext, IgcHeaderContext, Keys, DataType } from 'igniteui-grid-lite';\n\n/** Configuration object for grid columns. */\nexport type IgxGridLiteColumnConfiguration<T extends object = any> = ColumnConfiguration<T>;\n\nexport type IgxGridLiteColumnSortConfiguration<T extends object = any> = ColumnSortConfiguration<T>;\n\n\n/**\n * Directive providing type information for header template contexts.\n * Use this directive on ng-template elements that render header templates.\n *\n * @example\n * ```html\n * <ng-template igxGridLiteHeader let-column>\n * <div>{{column.header}}</div>\n * </ng-template>\n * ```\n */\n@Directive({ selector: '[igxGridLiteHeader]' })\nexport class IgxGridLiteHeaderTemplateDirective<T extends object = any> {\n public template = inject<TemplateRef<IgxGridLiteHeaderTemplateContext<T>>>(TemplateRef);\n\n public static ngTemplateContextGuard<T extends object = any>(_: IgxGridLiteHeaderTemplateDirective<T>, ctx: any): ctx is IgxGridLiteHeaderTemplateContext<T> {\n return true;\n }\n}\n\n/**\n * Directive providing type information for cell template contexts.\n * Use this directive on ng-template elements that render cell templates.\n *\n * @example\n * ```html\n * <ng-template igxGridLiteCell let-value let-column=\"column\" let-rowIndex=\"rowIndex\" let-data=\"data\">\n * <div>{{value}}</div>\n * </ng-template>\n * ```\n */\n@Directive({ selector: '[igxGridLiteCell]' })\nexport class IgxGridLiteCellTemplateDirective<T extends object = any> {\n public template = inject<TemplateRef<IgxGridLiteCellTemplateContext<T>>>(TemplateRef);\n\n public static ngTemplateContextGuard<T extends object = any>(_: IgxGridLiteCellTemplateDirective<T>, ctx: unknown): ctx is IgxGridLiteCellTemplateContext<T> {\n return true;\n }\n}\n\n@Component({\n selector: 'igx-grid-lite-column',\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: './grid-lite-column.component.html'\n})\nexport class IgxGridLiteColumnComponent<T extends object = any> {\n\n //#region Internal state\n\n private readonly _view = inject(ViewContainerRef);\n\n /** Reference to the embedded view for the header template and its template function. */\n private headerViewRef?: EmbeddedViewRef<IgxGridLiteHeaderTemplateContext<T>>;\n protected headerTemplateFunc?: (ctx: IgcHeaderContext<T>) => Node[];\n\n /** Reference to the embedded view for the cell template and its template function. */\n private cellViewRefs? = new Map<T, EmbeddedViewRef<IgxGridLiteCellTemplateContext<T>>>();\n protected cellTemplateFunc?: (ctx: IgcCellContext<T>) => Node[];\n\n /** Template directives used for inline templating */\n private readonly headerTemplateDirective = contentChild(IgxGridLiteHeaderTemplateDirective<T>);\n private readonly cellTemplateDirective = contentChild(IgxGridLiteCellTemplateDirective<T>);\n\n //#endregion\n\n //#region Inputs\n\n /** The field from the data for this column. */\n public readonly field = input<Keys<T>>();\n\n /** The data type of the column's values. */\n public readonly dataType = input<DataType>('string');\n\n /** The header text of the column. */\n public readonly header = input<string>();\n\n /** The width of the column. */\n public readonly width = input<string>();\n\n /** Indicates whether the column is hidden. */\n public readonly hidden = input(false, { transform: booleanAttribute });\n\n /** Indicates whether the column is resizable. */\n public readonly resizable = input(false, { transform: booleanAttribute });\n\n /** Indicates whether the column is sortable. */\n public readonly sortable = input(false, { transform: booleanAttribute });\n\n /** Whether sort operations will be case sensitive. */\n public readonly sortingCaseSensitive = input(false, { transform: booleanAttribute });\n\n /** Sort configuration for the column (e.g., custom comparer). */\n public readonly sortConfiguration = input<IgxGridLiteColumnSortConfiguration<T>>();\n\n /** Indicates whether the column is filterable. */\n public readonly filterable = input(false, { transform: booleanAttribute });\n\n /** Whether filter operations will be case sensitive. */\n public readonly filteringCaseSensitive = input(false, { transform: booleanAttribute });\n\n /** Custom header template for the column. */\n public readonly headerTemplate = input<TemplateRef<IgxGridLiteHeaderTemplateContext<T>>>();\n\n /** Custom cell template for the column. */\n public readonly cellTemplate = input<TemplateRef<IgxGridLiteCellTemplateContext<T>>>();\n\n //#endregion\n\n constructor() {\n effect((onCleanup) => {\n const directive = this.headerTemplateDirective();\n const template = this.headerTemplate() ?? directive?.template;\n if (template) {\n this.headerTemplateFunc = (ctx: IgcHeaderContext<T>) => {\n if (!this.headerViewRef) {\n const angularContext = {\n ...ctx,\n $implicit: ctx.column\n }\n this.headerViewRef = this._view.createEmbeddedView(template, angularContext);\n }\n return this.headerViewRef.rootNodes;\n };\n }\n onCleanup(() => {\n if (this.headerViewRef) {\n this.headerViewRef.destroy();\n this.headerViewRef = undefined;\n }\n })\n });\n\n effect((onCleanup) => {\n const directive = this.cellTemplateDirective();\n const template = this.cellTemplate() ?? directive?.template;\n if (template) {\n this.cellTemplateFunc = (ctx: IgcCellContext<T>) => {\n const oldViewRef = this.cellViewRefs.get(ctx.row.data);\n const angularContext = {\n ...ctx,\n $implicit: ctx.value,\n } as IgxGridLiteCellTemplateContext<T>;\n if (!oldViewRef) {\n const newViewRef = this._view.createEmbeddedView(template, angularContext);\n this.cellViewRefs.set(ctx.row.data, newViewRef);\n return newViewRef.rootNodes;\n }\n Object.assign(oldViewRef.context, angularContext);\n return oldViewRef.rootNodes;\n };\n }\n onCleanup(() => {\n this.cellViewRefs.forEach((viewRef) => {\n viewRef.destroy();\n });\n this.cellViewRefs?.clear();\n });\n });\n }\n}\n\n/**\n * Context provided to the header template.\n */\nexport type IgxGridLiteHeaderTemplateContext<T extends object = any> = IgcHeaderContext<T> & {\n /**\n * The current configuration for the column.\n */\n $implicit: IgcHeaderContext<T>['column'];\n}\n\n/**\n * Context provided to the header template.\n */\nexport type IgxGridLiteCellTemplateContext<T extends object = any> = IgcCellContext<T> & {\n /**\n * The value from the data source for this cell.\n */\n $implicit: IgcCellContext<T>['value'];\n};\n","<igc-grid-lite-column\n [field]=\"field()\"\n [dataType]=\"dataType()\"\n [header]=\"header()\"\n [width]=\"width()\"\n [hidden]=\"hidden()\"\n [resizable]=\"resizable()\"\n [sortable]=\"sortable()\"\n [sortingCaseSensitive]=\"sortingCaseSensitive()\"\n [sortConfiguration]=\"sortConfiguration()\"\n [filterable]=\"filterable()\"\n [filteringCaseSensitive]=\"filteringCaseSensitive()\"\n [headerTemplate]=\"headerTemplateFunc\"\n [cellTemplate]=\"cellTemplateFunc\"\n></igc-grid-lite-column>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-grids-lite.mjs","sources":["../../../projects/igniteui-angular/grids/lite/src/grid-lite.component.ts","../../../projects/igniteui-angular/grids/lite/src/grid-lite-column.component.ts","../../../projects/igniteui-angular/grids/lite/src/grid-lite-column.component.html","../../../projects/igniteui-angular/grids/lite/src/igniteui-angular-grids-lite.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, ElementRef, inject, input, model, OnInit } from '@angular/core';\nimport { DataPipelineConfiguration, FilterExpression, GridLiteSortingOptions, IgcGridLite, Keys, SortingExpression } from 'igniteui-grid-lite';\nimport { IgxGridLiteColumnConfiguration } from './grid-lite-column.component';\n\nexport type IgxGridLiteSortingOptions = GridLiteSortingOptions;\nexport type IgxGridLiteDataPipelineConfiguration<T extends object = any> = DataPipelineConfiguration<T>;\nexport type IgxGridLiteSortingExpression<T extends object = any> = SortingExpression<T>;\nexport type IgxGridLiteFilteringExpression<T extends object = any> = FilterExpression<T>;\n\n\nclass IgxGridLite<T extends object = any> extends IgcGridLite<T> {\n public static override get tagName() {\n return 'igx-grid-lite' as any;\n }\n public static override register(): void {\n // still call super for child components:\n super.register();\n\n if (!customElements.get(IgxGridLite.tagName)) {\n customElements.define(IgxGridLite.tagName, IgxGridLite);\n }\n }\n}\n\n/**\n * The Grid Lite is a web component for displaying data in a tabular format quick and easy.\n *\n * Out of the box it provides row virtualization, sort and filter operations (client and server side),\n * the ability to template cells and headers and column hiding.\n *\n * @fires sorting - Emitted when sorting is initiated through the UI.\n * @fires sorted - Emitted when a sort operation initiated through the UI has completed.\n * @fires filtering - Emitted when filtering is initiated through the UI.\n * @fires filtered - Emitted when a filter operation initiated through the UI has completed.\n *\n * @developerPreview 21.1.0\n */\n@Component({\n selector: 'igx-grid-lite',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n host: {\n '[data]': \"data()\",\n '[autoGenerate]': \"autoGenerate()\",\n '[sortingOptions]': \"sortingOptions()\",\n '[dataPipelineConfiguration]': \"dataPipelineConfiguration()\",\n '(sorted)': \"onSorted($any($event))\",\n '(filtered)': \"onFiltered($any($event))\",\n 'adopt-root-styles': '',\n },\n template: `<ng-content></ng-content>`\n})\n\nexport class IgxGridLiteComponent<T extends object = any> implements OnInit {\n\n //#region Internal state\n\n private readonly gridRef = inject(ElementRef) as ElementRef<IgxGridLite<T>>;\n\n //#endregion\n\n //#region Inputs\n\n /** The data source for the grid. */\n public readonly data = input<T[]>([]);\n\n /**\n * Whether the grid will try to \"resolve\" its column configuration based on the passed\n * data source.\n *\n * @remarks\n * This property is ignored if any existing column configuration already exists in the grid.\n */\n public readonly autoGenerate = input(false, { transform: booleanAttribute });;\n\n /** Sort configuration property for the grid. */\n public readonly sortingOptions = input<IgxGridLiteSortingOptions>({\n mode: 'multiple'\n });\n\n /**\n * Configuration object which controls remote data operations for the grid.\n */\n public readonly dataPipelineConfiguration = input<IgxGridLiteDataPipelineConfiguration>();\n\n /**\n * The sort state for the grid.\n *\n * @remarks\n * This is a two-way bindable property. It will be updated when sort operations\n * complete through the UI.\n */\n public readonly sortingExpressions = model<IgxGridLiteSortingExpression<T>[]>([]);\n\n /**\n * The filter state for the grid.\n *\n * @remarks\n * This is a two-way bindable property. It will be updated when filter operations\n * complete through the UI.\n */\n public readonly filteringExpressions = model<IgxGridLiteFilteringExpression<T>[]>([]);\n\n //#endregion\n\n //#region Getters / Setters\n\n /**\n * Get the column configuration of the grid.\n */\n public get columns(): IgxGridLiteColumnConfiguration<T>[] {\n return this.gridRef.nativeElement.columns ?? [];\n }\n\n /**\n * Returns the collection of rendered row elements in the grid.\n *\n * @remarks\n * Since the grid has virtualization, this property returns only the currently rendered\n * chunk of elements in the DOM.\n */\n public get rows() {\n return this.gridRef.nativeElement.rows ?? [];\n }\n\n /**\n * Returns the state of the data source after sort/filter operations\n * have been applied.\n */\n public get dataView(): ReadonlyArray<T> {\n return this.gridRef.nativeElement.dataView ?? [];\n }\n\n //#endregion\n\n constructor() {\n // D.P. Temporary guarded assign instead of binding to prevent WC issue with setter logic re-doing sort/filter\n effect(() => {\n const grid = this.gridRef.nativeElement\n if (!grid) return;\n const newValue = this.filteringExpressions();\n if (new Set(newValue).symmetricDifference(new Set(grid.filterExpressions)).size !== 0) {\n grid.clearFilter();\n grid.filterExpressions = newValue;\n }\n });\n effect(() => {\n const grid = this.gridRef.nativeElement\n if (!grid) return;\n const newValue = this.sortingExpressions();\n if (new Set(newValue).symmetricDifference(new Set(grid.sortingExpressions)).size !== 0) {\n grid.clearSort();\n grid.sortingExpressions = newValue;\n }\n });\n }\n\n /**\n * @hidden @internal\n */\n public ngOnInit(): void {\n IgxGridLite.register();\n }\n\n //#region Public API\n\n /**\n * Performs a filter operation in the grid based on the passed expression(s).\n */\n public filter(config: IgxGridLiteFilteringExpression | IgxGridLiteFilteringExpression[]): void {\n this.gridRef.nativeElement.filter(config as FilterExpression<T> | FilterExpression<T>[]);\n }\n\n /**\n * Performs a sort operation in the grid based on the passed expression(s).\n */\n public sort(expressions: IgxGridLiteSortingExpression<T> | IgxGridLiteSortingExpression<T>[]) {\n this.gridRef.nativeElement.sort(expressions);\n }\n\n /**\n * Resets the current sort state of the control.\n */\n public clearSort(key?: Keys<T>): void {\n this.gridRef.nativeElement.clearSort(key);\n }\n\n /**\n * Resets the current filter state of the control.\n */\n public clearFilter(key?: Keys<T>): void {\n this.gridRef.nativeElement.clearFilter(key);\n }\n\n /**\n * Navigates to a position in the grid based on provided row index and column field.\n * @param row The row index to navigate to\n * @param column The column field to navigate to, if any\n * @param activate Optionally also activate the navigated cell\n */\n public async navigateTo(row: number, column?: Keys<T>, activate = false) {\n await this.gridRef.nativeElement.navigateTo(row, column, activate);\n }\n\n /**\n * Returns a {@link IgxGridLiteColumnConfiguration} for a given column.\n */\n public getColumn(id: Keys<T> | number): IgxGridLiteColumnConfiguration<T> | undefined {\n return this.gridRef.nativeElement.getColumn(id);\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected onSorted(_event: CustomEvent<SortingExpression<T>>): void {\n this.sortingExpressions.set(this.gridRef.nativeElement.sortingExpressions ?? []);\n }\n\n protected onFiltered(_event: CustomEvent<FilterExpression<T>>): void {\n this.filteringExpressions.set(this.gridRef.nativeElement.filterExpressions ?? []);\n }\n\n //#endregion\n\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgxGridLite.tagName]: IgxGridLite;\n }\n\n interface HTMLElementEventMap {\n 'sorting': CustomEvent<IgxGridLiteSortingExpression<any>>;\n 'sorted': CustomEvent<IgxGridLiteSortingExpression<any>>;\n 'filtering': CustomEvent<IgxGridLiteFilteringExpression<any>>;\n 'filtered': CustomEvent<IgxGridLiteFilteringExpression<any>>;\n }\n}\n\n// see https://github.com/ng-packagr/ng-packagr/issues/3233\nexport {};\n","import { booleanAttribute, ChangeDetectionStrategy, Component, contentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, effect, EmbeddedViewRef, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ColumnConfiguration, ColumnSortConfiguration, IgcCellContext, IgcHeaderContext, Keys, DataType } from 'igniteui-grid-lite';\n\n/** Configuration object for grid columns. */\nexport type IgxGridLiteColumnConfiguration<T extends object = any> = ColumnConfiguration<T>;\n\nexport type IgxGridLiteColumnSortConfiguration<T extends object = any> = ColumnSortConfiguration<T>;\n\n\n/**\n * Directive providing type information for header template contexts.\n * Use this directive on ng-template elements that render header templates.\n *\n * @example\n * ```html\n * <ng-template igxGridLiteHeader let-column>\n * <div>{{column.header}}</div>\n * </ng-template>\n * ```\n */\n@Directive({ selector: '[igxGridLiteHeader]' })\nexport class IgxGridLiteHeaderTemplateDirective<T extends object = any> {\n public template = inject<TemplateRef<IgxGridLiteHeaderTemplateContext<T>>>(TemplateRef);\n\n public static ngTemplateContextGuard<T extends object = any>(_: IgxGridLiteHeaderTemplateDirective<T>, ctx: any): ctx is IgxGridLiteHeaderTemplateContext<T> {\n return true;\n }\n}\n\n/**\n * Directive providing type information for cell template contexts.\n * Use this directive on ng-template elements that render cell templates.\n *\n * @example\n * ```html\n * <ng-template igxGridLiteCell let-value let-column=\"column\" let-rowIndex=\"rowIndex\" let-data=\"data\">\n * <div>{{value}}</div>\n * </ng-template>\n * ```\n */\n@Directive({ selector: '[igxGridLiteCell]' })\nexport class IgxGridLiteCellTemplateDirective<T extends object = any> {\n public template = inject<TemplateRef<IgxGridLiteCellTemplateContext<T>>>(TemplateRef);\n\n public static ngTemplateContextGuard<T extends object = any>(_: IgxGridLiteCellTemplateDirective<T>, ctx: unknown): ctx is IgxGridLiteCellTemplateContext<T> {\n return true;\n }\n}\n\n@Component({\n selector: 'igx-grid-lite-column',\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: './grid-lite-column.component.html'\n})\nexport class IgxGridLiteColumnComponent<T extends object = any> {\n\n //#region Internal state\n\n private readonly _view = inject(ViewContainerRef);\n\n /** Reference to the embedded view for the header template and its template function. */\n private headerViewRef?: EmbeddedViewRef<IgxGridLiteHeaderTemplateContext<T>>;\n protected headerTemplateFunc?: (ctx: IgcHeaderContext<T>) => Node[];\n\n /** Reference to the embedded view for the cell template and its template function. */\n private cellViewRefs? = new Map<T, EmbeddedViewRef<IgxGridLiteCellTemplateContext<T>>>();\n protected cellTemplateFunc?: (ctx: IgcCellContext<T>) => Node[];\n\n /** Template directives used for inline templating */\n private readonly headerTemplateDirective = contentChild(IgxGridLiteHeaderTemplateDirective<T>);\n private readonly cellTemplateDirective = contentChild(IgxGridLiteCellTemplateDirective<T>);\n\n //#endregion\n\n //#region Inputs\n\n /** The field from the data for this column. */\n public readonly field = input<Keys<T>>();\n\n /** The data type of the column's values. */\n public readonly dataType = input<DataType>('string');\n\n /** The header text of the column. */\n public readonly header = input<string>();\n\n /** The width of the column. */\n public readonly width = input<string>();\n\n /** Indicates whether the column is hidden. */\n public readonly hidden = input(false, { transform: booleanAttribute });\n\n /** Indicates whether the column is resizable. */\n public readonly resizable = input(false, { transform: booleanAttribute });\n\n /** Indicates whether the column is sortable. */\n public readonly sortable = input(false, { transform: booleanAttribute });\n\n /** Whether sort operations will be case sensitive. */\n public readonly sortingCaseSensitive = input(false, { transform: booleanAttribute });\n\n /** Sort configuration for the column (e.g., custom comparer). */\n public readonly sortConfiguration = input<IgxGridLiteColumnSortConfiguration<T>>();\n\n /** Indicates whether the column is filterable. */\n public readonly filterable = input(false, { transform: booleanAttribute });\n\n /** Whether filter operations will be case sensitive. */\n public readonly filteringCaseSensitive = input(false, { transform: booleanAttribute });\n\n /** Custom header template for the column. */\n public readonly headerTemplate = input<TemplateRef<IgxGridLiteHeaderTemplateContext<T>>>();\n\n /** Custom cell template for the column. */\n public readonly cellTemplate = input<TemplateRef<IgxGridLiteCellTemplateContext<T>>>();\n\n //#endregion\n\n constructor() {\n effect((onCleanup) => {\n const directive = this.headerTemplateDirective();\n const template = this.headerTemplate() ?? directive?.template;\n if (template) {\n this.headerTemplateFunc = (ctx: IgcHeaderContext<T>) => {\n if (!this.headerViewRef) {\n const angularContext = {\n ...ctx,\n $implicit: ctx.column\n }\n this.headerViewRef = this._view.createEmbeddedView(template, angularContext);\n }\n return this.headerViewRef.rootNodes;\n };\n }\n onCleanup(() => {\n if (this.headerViewRef) {\n this.headerViewRef.destroy();\n this.headerViewRef = undefined;\n }\n })\n });\n\n effect((onCleanup) => {\n const directive = this.cellTemplateDirective();\n const template = this.cellTemplate() ?? directive?.template;\n if (template) {\n this.cellTemplateFunc = (ctx: IgcCellContext<T>) => {\n const oldViewRef = this.cellViewRefs.get(ctx.row.data);\n const angularContext = {\n ...ctx,\n $implicit: ctx.value,\n } as IgxGridLiteCellTemplateContext<T>;\n if (!oldViewRef) {\n const newViewRef = this._view.createEmbeddedView(template, angularContext);\n this.cellViewRefs.set(ctx.row.data, newViewRef);\n return newViewRef.rootNodes;\n }\n Object.assign(oldViewRef.context, angularContext);\n return oldViewRef.rootNodes;\n };\n }\n onCleanup(() => {\n this.cellViewRefs.forEach((viewRef) => {\n viewRef.destroy();\n });\n this.cellViewRefs?.clear();\n });\n });\n }\n}\n\n/**\n * Context provided to the header template.\n */\nexport type IgxGridLiteHeaderTemplateContext<T extends object = any> = IgcHeaderContext<T> & {\n /**\n * The current configuration for the column.\n */\n $implicit: IgcHeaderContext<T>['column'];\n}\n\n/**\n * Context provided to the header template.\n */\nexport type IgxGridLiteCellTemplateContext<T extends object = any> = IgcCellContext<T> & {\n /**\n * The value from the data source for this cell.\n */\n $implicit: IgcCellContext<T>['value'];\n};\n","<igc-grid-lite-column\n [field]=\"field()\"\n [dataType]=\"dataType()\"\n [header]=\"header()\"\n [width]=\"width()\"\n [hidden]=\"hidden()\"\n [resizable]=\"resizable()\"\n [sortable]=\"sortable()\"\n [sortingCaseSensitive]=\"sortingCaseSensitive()\"\n [sortConfiguration]=\"sortConfiguration()\"\n [filterable]=\"filterable()\"\n [filteringCaseSensitive]=\"filteringCaseSensitive()\"\n [headerTemplate]=\"headerTemplateFunc\"\n [cellTemplate]=\"cellTemplateFunc\"\n></igc-grid-lite-column>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igniteui-angular",
3
- "version": "21.1.0-rc.5",
3
+ "version": "21.1.0",
4
4
  "description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
5
5
  "author": "Infragistics",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -86,8 +86,8 @@
86
86
  "@angular/forms": "21",
87
87
  "hammerjs": "^2.0.8",
88
88
  "@types/hammerjs": "^2.0.46",
89
- "igniteui-webcomponents": "^6.5.0",
90
- "igniteui-grid-lite": "~0.5.0"
89
+ "igniteui-webcomponents": "^7.0.0",
90
+ "igniteui-grid-lite": "~0.6.0"
91
91
  },
92
92
  "peerDependenciesMeta": {
93
93
  "hammerjs": {
@@ -104,7 +104,7 @@
104
104
  }
105
105
  },
106
106
  "igxDevDependencies": {
107
- "@igniteui/angular-schematics": "~21.1.1490-beta.0"
107
+ "@igniteui/angular-schematics": "~21.1.1490"
108
108
  },
109
109
  "ng-update": {
110
110
  "migrations": "./migrations/migration-collection.json",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: igniteui-angular-components
3
- description: "All Ignite UI Angular UI components: application setup and architecture, form controls (Input Group, Combo, Select, Date/Time Pickers, Calendar, Checkbox, Radio, Switch, Slider, reactive forms), layout (Tabs, Bottom Navigation, Stepper, Accordion, Splitter, Navigation Drawer, Layout Manager directives), data display (List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress, Chat), feedback/overlays (Dialog, Snackbar, Toast, Banner), directives (Button, Ripple, Tooltip, Drag and Drop), Dock Manager, and Charts (Area Chart, Bar Chart, Column Chart, Stock/Financial Chart, Pie Chart, IgxCategoryChart, IgxFinancialChart, IgxDataChart, IgxPieChart). Use for any non-grid Ignite UI Angular UI question."
3
+ description: "All Ignite UI Angular UI components: application setup and architecture, form controls (Input Group, Combo, Select, Date/Time Pickers, Calendar, Checkbox, Radio, Switch, Slider, reactive forms), layout (Tabs, Bottom Navigation, Stepper, Accordion, Splitter, Navigation Drawer, Layout Manager), data display (List, Tree, Card, Chips, Avatar, Badge, Icon, Carousel, Paginator, Progress bar, Linear Progress Bar, Circular Progress Bar, Chat), feedback/overlays (Dialog, Snackbar, Toast, Banner), directives (Button, Ripple, Tooltip, Drag and Drop), Dock Manager, and Charts (Area Chart, Bar Chart, Column Chart, Stock/Financial Chart, Pie Chart, IgxCategoryChart, IgxFinancialChart, IgxDataChart, IgxPieChart). Use for any non-grid Ignite UI Angular UI question."
4
4
  user-invokable: true
5
5
  ---
6
6
 
@@ -47,11 +47,11 @@ Base your code and explanation exclusively on what you read. If the reference fi
47
47
  ## Prerequisites
48
48
 
49
49
  - Angular 20+ project
50
- - `igniteui-angular` installed via `npm install igniteui-angular`, **or** `@infragistics/igniteui-angular` for licensed users
51
- - A theme applied (see [`igniteui-angular-theming`](../igniteui-angular-theming/SKILL.md))
50
+ - `@angular/cli` installed
51
+ - `igniteui-angular` or `@infragistics/igniteui-angular` added to the project via `ng add igniteui-angular` (or the `@infragistics` variant) or `npm install` — see [Package Variants](#package-variants) below.
52
+ - A theme applied to the application (see [`igniteui-angular-theming`](../igniteui-angular-theming/SKILL.md)).
52
53
  - `provideAnimations()` in `app.config.ts` — **required before using any overlay or animated component**
53
54
 
54
- ---
55
55
 
56
56
  ## Package Variants
57
57
 
@@ -61,6 +61,7 @@ Base your code and explanation exclusively on what you read. If the reference fi
61
61
  | `@infragistics/igniteui-angular` | Requires private `@infragistics` registry | Licensed / enterprise users |
62
62
 
63
63
  Both packages share **identical entry-point paths**. Check `package.json` and use that package name as the prefix for every import. Never import from the root barrel of either package.
64
+ Both packages can be added to the project using `@angular/cli` with the following commands: `ng add igniteui-angular` or `ng add @infragistics/igniteui-angular`.
64
65
 
65
66
  ---
66
67
 
@@ -64,9 +64,8 @@ Selection modes: `'None'`, `'BiCascade'`, `'Cascade'`.
64
64
  ```typescript
65
65
  import { IgxCardComponent, IgxCardHeaderComponent, IgxCardContentDirective, IgxCardActionsComponent, IgxCardMediaDirective, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardHeaderThumbnailDirective } from 'igniteui-angular/card';
66
66
  import { IgxAvatarComponent } from 'igniteui-angular/avatar';
67
- import { IgxButtonDirective } from 'igniteui-angular/button';
68
- import { IgxRippleDirective } from 'igniteui-angular/ripple';
69
- import { IgxIconButtonDirective } from 'igniteui-angular/button';
67
+ import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';
68
+ import { IgxRippleDirective } from 'igniteui-angular/directives';
70
69
  import { IgxIconComponent } from 'igniteui-angular/icon';
71
70
  ```
72
71
 
@@ -215,8 +214,8 @@ import { IgxPaginatorComponent } from 'igniteui-angular/paginator';
215
214
  > **Docs:** [Linear Progress](https://www.infragistics.com/products/ignite-ui-angular/angular/components/linear-progress) · [Circular Progress](https://www.infragistics.com/products/ignite-ui-angular/angular/components/circular-progress)
216
215
 
217
216
  ```typescript
218
- import { IgxLinearProgressBarComponent } from 'igniteui-angular/linear-progress-bar';
219
- import { IgxCircularProgressBarComponent } from 'igniteui-angular/circular-progress-bar';
217
+ import { IgxLinearProgressBarComponent } from 'igniteui-angular/progressbar';
218
+ import { IgxCircularProgressBarComponent } from 'igniteui-angular/progressbar';
220
219
  ```
221
220
 
222
221
  ```html
@@ -248,26 +247,94 @@ import { IgxChatComponent } from 'igniteui-angular/chat';
248
247
  ```
249
248
 
250
249
  ```html
251
- <igx-chat
252
- [messages]="messages()"
253
- [isSendDisabled]="isLoading()"
254
- (sendMessage)="onSend($event)">
255
- </igx-chat>
250
+ <igx-chat
251
+ [options]="options()"
252
+ [messages]="messages()"
253
+ [draftMessage]="draftMessage"
254
+ [templates]="templates()"
255
+ (messageCreated)="onMessageCreated($event)">
256
+ </igx-chat>
257
+
258
+ <ng-template #messageHeader let-message>
259
+ @if (message.sender !== 'user') {
260
+ <div>
261
+ <span style="font-weight: bold; color: #c00000;"
262
+ >Developer Support</span
263
+ >
264
+ </div>
265
+ }
266
+ </ng-template>
267
+
268
+ <ng-template #suggestionPrefix>
269
+ <span style="font-weight: bold">💡</span>
270
+ </ng-template>
271
+
272
+ <ng-template #messageContent let-message igxChatMessageContext>
273
+ <div [innerHTML]="message.text | fromMarkdown | async"></div>
274
+ </ng-template>
256
275
  ```
257
276
 
258
277
  ```typescript
259
- import { IgxChatComponent, IgxMessage } from 'igniteui-angular/chat';
260
-
261
- messages = signal<IgxMessage[]>([]);
262
- isLoading = signal(false);
263
-
264
- async onSend(text: string) {
265
- this.messages.update(m => [...m, { author: 'user', content: text }]);
266
- this.isLoading.set(true);
267
- const reply = await this.aiService.ask(text);
268
- this.messages.update(m => [...m, { author: 'assistant', content: reply }]);
269
- this.isLoading.set(false);
270
- }
278
+ import { IgxChatComponent, IgxChatMessageContextDirective, type IgxChatOptions } from 'igniteui-angular/chat';
279
+ import { MarkdownPipe } from 'igniteui-angular/chat-extras';
280
+
281
+ @Component({
282
+ selector: 'app-chat-features-sample',
283
+ styleUrls: ['./features-sample.component.scss'],
284
+ templateUrl: './features-sample.component.html',
285
+ imports: [IgxChatComponent, IgxChatMessageContextDirective, AsyncPipe, MarkdownPipe]
286
+ })
287
+ export class ChatFeaturesSampleComponent {
288
+ private _messageHeader = viewChild.required('messageHeader');
289
+ private _suggestionPrefix = viewChild.required('suggestionPrefix');
290
+ private _messageContent = viewChild.required('messageContent');
291
+
292
+ ...
293
+
294
+
295
+ public options = signal<IgxChatOptions>({
296
+ disableAutoScroll: false,
297
+ disableInputAttachments: false,
298
+ inputPlaceholder: 'Type your message here...',
299
+ headerText: 'Developer Support',
300
+ suggestionsPosition: "below-input",
301
+ suggestions: [ 'Send me an e-mail when support is available.' ]
302
+ });
303
+
304
+ public templates = signal({});
305
+
306
+ constructor() {
307
+ effect(() => {
308
+ const messageHeader = this._messageHeader();
309
+ const suggestionPrefix = this._suggestionPrefix();
310
+ const messageContent = this._messageContent();
311
+
312
+ if (messageHeader && suggestionPrefix && messageContent) {
313
+ this.templates.set({
314
+ messageHeader: messageHeader,
315
+ suggestionPrefix: suggestionPrefix,
316
+ messageContent: messageContent
317
+ });
318
+ }
319
+ });
320
+ }
321
+
322
+ public onMessageCreated(e: any): void {
323
+ const newMessage = e;
324
+ this.messages.update(messages => [...messages, newMessage]);
325
+ this.options.update(options => ({ ...options, isTyping: true, suggestions: [] }));
326
+
327
+ const responseMessage = {
328
+ id: Date.now().toString(),
329
+ text: 'Our support team is currently unavailable. We\'ll get back to you as soon as possible.',
330
+ sender: 'support',
331
+ timestamp: Date.now().toString()
332
+ };
333
+
334
+ this.draftMessage = { text: '', attachments: [] };
335
+ this.messages.update(messages => [...messages, responseMessage]);
336
+ this.options.update(options => ({ ...options, isTyping: false }));
337
+ }
271
338
  ```
272
339
 
273
340
  ## See Also
@@ -8,7 +8,7 @@
8
8
  > **Docs:** [Button Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/button)
9
9
 
10
10
  ```typescript
11
- import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/button';
11
+ import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';
12
12
  import { IgxIconComponent } from 'igniteui-angular/icon';
13
13
  ```
14
14
 
@@ -38,7 +38,7 @@ Button variants for `igxIconButton`: `'flat'`, `'outlined'`, `'contained'`.
38
38
  > **Docs:** [Ripple Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/ripple)
39
39
 
40
40
  ```typescript
41
- import { IgxRippleDirective } from 'igniteui-angular/ripple';
41
+ import { IgxRippleDirective } from 'igniteui-angular/directives';
42
42
  ```
43
43
 
44
44
  ```html
@@ -58,7 +58,7 @@ Inputs: `[igxRipple]` (ripple color), `[igxRippleCentered]` (always start from c
58
58
  > **Docs:** [Tooltip Directive](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tooltip)
59
59
 
60
60
  ```typescript
61
- import { IgxTooltipDirective, IgxTooltipTargetDirective } from 'igniteui-angular/tooltip';
61
+ import { IgxTooltipDirective, IgxTooltipTargetDirective } from 'igniteui-angular/directives';
62
62
  ```
63
63
 
64
64
  ```html
@@ -84,7 +84,7 @@ hideTooltip() { this.tooltip().close(); }
84
84
  > **Docs:** [Drag and Drop](https://www.infragistics.com/products/ignite-ui-angular/angular/components/drag-drop)
85
85
 
86
86
  ```typescript
87
- import { IgxDragDirective, IgxDropDirective, IDragMoveEventArgs, IDropDroppedEventArgs } from 'igniteui-angular/drag-drop';
87
+ import { IgxDragDirective, IgxDropDirective, IDragMoveEventArgs, IDropDroppedEventArgs } from 'igniteui-angular/directives';
88
88
  ```
89
89
 
90
90
  ### Basic drag and drop
@@ -11,7 +11,7 @@
11
11
 
12
12
  ```typescript
13
13
  import { IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective } from 'igniteui-angular/dialog';
14
- import { IgxButtonDirective } from 'igniteui-angular/button';
14
+ import { IgxButtonDirective } from 'igniteui-angular/directives';
15
15
  ```
16
16
 
17
17
  ```html
@@ -50,7 +50,7 @@ Events: `(opening)`, `(opened)`, `(closing)`, `(closed)`, `(leftButtonSelect)`,
50
50
 
51
51
  ```typescript
52
52
  import { IgxSnackbarComponent, IgxSnackbarActionDirective } from 'igniteui-angular/snackbar';
53
- import { IgxButtonDirective } from 'igniteui-angular/button';
53
+ import { IgxButtonDirective } from 'igniteui-angular/directives';
54
54
  ```
55
55
 
56
56
  ```html
@@ -98,7 +98,7 @@ Toast vs Snackbar: Toast is non-interactive (no action button), always auto-hide
98
98
  ```typescript
99
99
  import { IgxBannerComponent, IgxBannerActionsDirective } from 'igniteui-angular/banner';
100
100
  import { IgxIconComponent } from 'igniteui-angular/icon';
101
- import { IgxButtonDirective } from 'igniteui-angular/button';
101
+ import { IgxButtonDirective } from 'igniteui-angular/directives';
102
102
  ```
103
103
 
104
104
  ```html
@@ -109,9 +109,11 @@ Implements `ControlValueAccessor` and `Validator`. Works with both reactive and
109
109
  > **Docs:** [Date Range Picker](https://www.infragistics.com/products/ignite-ui-angular/angular/components/date-range-picker)
110
110
 
111
111
  ```typescript
112
- import { IgxDateRangePickerComponent } from 'igniteui-angular/date-range-picker';
113
- import { IgxDateTimeEditorDirective } from 'igniteui-angular/date-time-editor';
112
+ import { IgxDateRangePickerComponent } from 'igniteui-angular/date-picker';
113
+ import { IgxDateTimeEditorDirective } from 'igniteui-angular/directives';
114
114
  import { IGX_INPUT_GROUP_DIRECTIVES } from 'igniteui-angular/input-group';
115
+
116
+ // import { IgxDateTimeEditorDirective, IGX_INPUT_GROUP_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
115
117
  ```
116
118
 
117
119
  ```html
@@ -186,7 +188,13 @@ import { IgxSwitchComponent } from 'igniteui-angular/switch';
186
188
  > **Docs:** [Slider Component](https://www.infragistics.com/products/ignite-ui-angular/angular/components/slider/slider)
187
189
 
188
190
  ```typescript
189
- import { IgxSliderComponent, SliderType } from 'igniteui-angular/slider';
191
+ import { IgxSliderComponent, IgxSliderType } from 'igniteui-angular/slider';
192
+
193
+ public sliderType = IgxSliderType;
194
+ public priceRange = {
195
+ lower: 200,
196
+ upper: 800
197
+ };
190
198
  ```
191
199
 
192
200
  ```html
@@ -195,7 +203,7 @@ import { IgxSliderComponent, SliderType } from 'igniteui-angular/slider';
195
203
 
196
204
  <!-- Range slider -->
197
205
  <igx-slider
198
- [type]="SliderType.RANGE"
206
+ [type]="sliderType.RANGE"
199
207
  [minValue]="0"
200
208
  [maxValue]="100"
201
209
  [lowerBound]="20"
@@ -171,9 +171,9 @@ import { IgxSplitterComponent, IgxSplitterPaneComponent, SplitterType } from 'ig
171
171
  > **Docs:** [Navigation Drawer](https://www.infragistics.com/products/ignite-ui-angular/angular/components/navdrawer)
172
172
 
173
173
  ```typescript
174
- import { IgxNavDrawerComponent, IgxNavDrawerItemDirective, IgxNavDrawerTemplateDirective, IgxNavDrawerMiniTemplateDirective } from 'igniteui-angular/nav-drawer';
174
+ import { IgxNavigationDrawerComponent, IgxNavDrawerItemDirective, IgxNavDrawerTemplateDirective, IgxNavDrawerMiniTemplateDirective } from 'igniteui-angular/navigation-drawer';
175
175
  import { IgxIconComponent } from 'igniteui-angular/icon';
176
- import { IgxRippleDirective } from 'igniteui-angular/ripple';
176
+ import { IgxRippleDirective } from 'igniteui-angular/directives';
177
177
  ```
178
178
 
179
179
  ```html
@@ -50,7 +50,7 @@ All Ignite UI components are **standalone** — no NgModules needed. Import them
50
50
 
51
51
  ```typescript
52
52
  import { ChangeDetectionStrategy, Component } from '@angular/core';
53
- import { IgxButtonDirective } from 'igniteui-angular/button';
53
+ import { IgxButtonDirective } from 'igniteui-angular/directives';
54
54
  import { IgxDialogComponent } from 'igniteui-angular/dialog';
55
55
 
56
56
  @Component({
@@ -94,7 +94,7 @@ import { IgxComboComponent } from 'igniteui-angular';
94
94
  | Stepper | `igniteui-angular/stepper` |
95
95
  | Accordion / Expansion Panel | `igniteui-angular/expansion-panel` |
96
96
  | Splitter | `igniteui-angular/splitter` |
97
- | Navigation Drawer | `igniteui-angular/nav-drawer` |
97
+ | Navigation Drawer | `igniteui-angular/navigation-drawer` |
98
98
  | Bottom Navigation | `igniteui-angular/bottom-nav` |
99
99
  | List | `igniteui-angular/list` |
100
100
  | Tree | `igniteui-angular/tree` |
@@ -109,18 +109,29 @@ import { IgxComboComponent } from 'igniteui-angular';
109
109
  | Icon | `igniteui-angular/icon` |
110
110
  | Carousel | `igniteui-angular/carousel` |
111
111
  | Paginator | `igniteui-angular/paginator` |
112
- | Linear Progress | `igniteui-angular/linear-progress-bar` |
113
- | Circular Progress | `igniteui-angular/circular-progress-bar` |
112
+ | Linear Progress | `igniteui-angular/progressbar` |
113
+ | Circular Progress | `igniteui-angular/progressbar` |
114
114
  | Chat | `igniteui-angular/chat` |
115
- | Button / Icon Button | `igniteui-angular/button` |
116
- | Ripple | `igniteui-angular/ripple` |
117
- | Tooltip | `igniteui-angular/tooltip` |
118
- | Drag & Drop | `igniteui-angular/drag-drop` |
115
+ | Button / Icon Button | `igniteui-angular/directives` |
116
+ | Ripple | `igniteui-angular/directives` |
117
+ | IgxTooltipDirective, IgxTooltipTargetDirective | `igniteui-angular/directives` |
118
+ | Drag & Drop | `igniteui-angular/directives` |
119
119
  | Layout Manager (`igxLayout`, `igxFlex`) | `igniteui-angular/directives` |
120
+ | Core utilities, services, base types | `igniteui-angular/core` |
120
121
  | Icon Service | `igniteui-angular/icon` |
121
122
  | Overlay Service | `igniteui-angular/core` |
122
123
  | **Dock Manager** | `igniteui-dockmanager` *(separate package — `npm install igniteui-dockmanager`)* |
123
124
 
125
+ **Grid-specific entry points** (tree-shakable imports):
126
+
127
+ | Component / Feature | Entry Point |
128
+ |---|---|
129
+ | Shared grid infrastructure (columns, toolbar, filtering, sorting, etc.) | `igniteui-angular/grids/core` |
130
+ | Standard grid (`IgxGridComponent`) | `igniteui-angular/grids/grid` |
131
+ | Tree grid (`IgxTreeGridComponent`) | `igniteui-angular/grids/tree-grid` |
132
+ | Hierarchical grid (`IgxHierarchicalGridComponent`, `IgxRowIslandComponent`) | `igniteui-angular/grids/hierarchical-grid` |
133
+ | Pivot grid (`IgxPivotGridComponent`, `IgxPivotDataSelectorComponent`) | `igniteui-angular/grids/pivot-grid` |
134
+
124
135
  ### Convenience Directive Collections
125
136
 
126
137
  For complex components, use the bundled directive arrays instead of listing every sub-directive individually:
@@ -59,7 +59,7 @@ Ignite UI has **five grid types**. Picking the correct one is the most important
59
59
 
60
60
  Ask these questions in order:
61
61
 
62
- 1. **Does the user need a lightweight, read-only data display** with sorting, filtering, and virtualization but no editing, selection, or paging? → **Grid Lite** (open-source, MIT licensed)
62
+ 1. **Does the user need a lightweight, read-only data display** with sorting, filtering, and virtualization but no editing, selection, or paging? → **Grid Lite** (open-source, MIT licensed). **If the user later needs features beyond Grid Lite's capabilities, upgrade strictly to `igx-grid` (`IgxGridComponent`)** — never recommend non-grid components as a substitute.
63
63
  2. **Does the user need pivot-table analytics** (rows/columns/values/aggregations that users can drag-and-drop to reshape)? → **Pivot Grid**
64
64
  3. **Does the data have parent-child relationships where each level has a DIFFERENT schema** (e.g., Companies → Departments → Employees)? → **Hierarchical Grid**
65
65
  4. **Does the data have parent-child relationships within a SINGLE schema** (e.g., Employees with a `managerId` field, or nested children arrays)? → **Tree Grid**
@@ -145,7 +145,8 @@ Sorting modes:
145
145
  ### Programmatic Sorting
146
146
 
147
147
  ```typescript
148
- import { SortingDirection } from 'igniteui-angular/grids/core';
148
+ import { SortingDirection } from 'igniteui-angular/core';
149
+ // import { SortingDirection } from '@infragistics/igniteui-angular/core'; for licensed package
149
150
 
150
151
  // Sort a single column
151
152
  this.gridRef().sort({ fieldName: 'name', dir: SortingDirection.Asc, ignoreCase: true });
@@ -161,7 +161,9 @@ onChildGridCreated(event: IGridCreatedEventArgs) {
161
161
 
162
162
  The **lightest grid option** — an open-source (MIT licensed) Web Component with an Angular wrapper. Use it for **read-only data display** with sorting, filtering, column hiding/resizing, and row virtualization. It has **no editing, no selection, no paging, no grouping, no summaries, no export**.
163
163
 
164
- > **When to recommend Grid Lite vs. Flat Grid**: If the user only needs to display data with basic sorting/filtering and doesn't need editing, batch operations, paging, grouping, summaries, or export, Grid Lite is the lighter, faster choice. If any of those enterprise features are needed, use the Flat Grid.
164
+ > **When to recommend Grid Lite vs. Flat Grid**: If the user only needs to display data with basic sorting/filtering and doesn't need editing, batch operations, paging, grouping, summaries, or export, Grid Lite is the lighter, faster choice. If any of those enterprise features are needed, **upgrade strictly to `igx-grid` (`IgxGridComponent`)** from `igniteui-angular/grids/grid` — do NOT recommend other non-grid components as a substitute.
165
+
166
+ > **AGENT INSTRUCTION — Grid Lite → Grid Upgrade**: When a user is working with `igx-grid-lite` and you identify that their requirements exceed Grid Lite's capabilities (e.g., they need editing, selection, paging, grouping, summaries, export, row operations, or any feature not available in Grid Lite), you MUST recommend upgrading to `igx-grid` (`IgxGridComponent`). Never suggest a different component type — the upgrade path from Grid Lite is always to `igx-grid`. Replace `IgxGridLiteComponent` with `IgxGridComponent`, update imports from `igniteui-angular/grids/lite` to `igniteui-angular/grids/grid`, use `IGX_GRID_DIRECTIVES` instead of individual Grid Lite imports, and remove `CUSTOM_ELEMENTS_SCHEMA`.
165
167
 
166
168
  ### Installation
167
169
 
@@ -114,6 +114,8 @@ type IgxGridLiteFilteringExpression<T extends object = any> = FilterExpression<T
114
114
  * @fires sorted - Emitted when a sort operation initiated through the UI has completed.
115
115
  * @fires filtering - Emitted when filtering is initiated through the UI.
116
116
  * @fires filtered - Emitted when a filter operation initiated through the UI has completed.
117
+ *
118
+ * @developerPreview 21.1.0
117
119
  */
118
120
  declare class IgxGridLiteComponent<T extends object = any> implements OnInit {
119
121
  private readonly gridRef;