From e0e7a70f4c0ee1d2619b675240555f98e1ac7a8f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 4 Feb 2026 12:12:37 +0200
Subject: [PATCH 1/2] feat(grid-lite): Update all components to use declarative
column API v0.4.0
Co-authored-by: damyanpetev <3198469+damyanpetev@users.noreply.github.com>
---
package-lock.json | 59 +++++---
package.json | 2 +-
...-lite-column-config-dynamic.component.html | 7 +-
...id-lite-column-config-dynamic.component.ts | 71 ++-------
...-lite-column-config-headers.component.html | 9 +-
...id-lite-column-config-headers.component.ts | 43 +-----
...d-lite-column-config-simple.component.html | 9 +-
...rid-lite-column-config-simple.component.ts | 60 ++------
...d-lite-data-binding-dynamic.component.html | 2 +-
...rid-lite-data-binding-dynamic.component.ts | 15 +-
.../grid-lite-filtering-events.component.html | 5 +-
.../grid-lite-filtering-events.component.ts | 41 +-----
...rid-lite-filtering-pipeline.component.html | 5 +-
.../grid-lite-filtering-pipeline.component.ts | 41 +-----
.../grid-lite-filtering-simple.component.html | 8 +-
.../grid-lite-filtering-simple.component.ts | 41 +-----
.../grid-lite-overview.component.html | 12 +-
.../grid-lite-overview.component.ts | 139 ++++++------------
.../grid-lite-sorting-events.component.html | 6 +-
.../grid-lite-sorting-events.component.ts | 48 +-----
...id-lite-sorting-grid-config.component.html | 15 +-
...grid-lite-sorting-grid-config.component.ts | 59 ++------
.../grid-lite-sorting-pipeline.component.html | 6 +-
.../grid-lite-sorting-pipeline.component.ts | 52 ++-----
.../grid-lite-sorting-simple.component.html | 9 +-
.../grid-lite-sorting-simple.component.ts | 52 ++-----
.../grid-lite-styling-custom.component.html | 6 +-
.../grid-lite-styling-custom.component.ts | 38 -----
.../grid-lite-styling-themes.component.html | 6 +-
.../grid-lite-styling-themes.component.ts | 51 +------
30 files changed, 277 insertions(+), 640 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 561389e00..2e1b3c940 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -42,7 +42,7 @@
"igniteui-angular-extras": "^21.0.0",
"igniteui-angular-i18n": "^21.0.0",
"igniteui-dockmanager": "^1.17.0",
- "igniteui-grid-lite": "^0.0.1",
+ "igniteui-grid-lite": "~0.4.0",
"igniteui-live-editing": "^3.3.0",
"igniteui-webcomponents": "^6.5.0",
"marked": "^17.0.1",
@@ -2107,6 +2107,24 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/@igniteui/angular-schematics/node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@igniteui/angular-schematics/node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -2266,6 +2284,22 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/@igniteui/angular-schematics/node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@igniteui/angular-schematics/node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@@ -12066,29 +12100,14 @@
"license": "Apache-2.0"
},
"node_modules/igniteui-grid-lite": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/igniteui-grid-lite/-/igniteui-grid-lite-0.0.1.tgz",
- "integrity": "sha512-QR+yu3lW8jtF5tfR+HChw+ksnTbMz8vIAEbPv0kJyNR0Dk2nCQSuw8z531psgl6ket2o1OoGDpkZJNgNNQ9T2g==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/igniteui-grid-lite/-/igniteui-grid-lite-0.4.0.tgz",
+ "integrity": "sha512-QZ12Q9C9FxrJIZIO0beOQMAZ2E9UADEqS0cjL2Qt2YP1DNge7+x+AzXCp8aOOzT5Y5E+O6O0u6u7JPdtc3RhxA==",
"license": "MIT",
"dependencies": {
"@lit-labs/virtualizer": "~2.1.0",
"@lit/context": "~1.1.5",
- "igniteui-webcomponents": "~6.1.0",
- "lit": "^3.3.0"
- },
- "engines": {
- "node": ">=20"
- }
- },
- "node_modules/igniteui-grid-lite/node_modules/igniteui-webcomponents": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/igniteui-webcomponents/-/igniteui-webcomponents-6.1.2.tgz",
- "integrity": "sha512-q3a3Q28xzRwDBmfDprY0PsN9cs5xgqOJigXWWmbWAfcMgPg5dIrPyMDV6Aj6GD7u1RgPeoZmTP/pz9gTWNhHJA==",
- "license": "SEE LICENSE IN LICENSE",
- "dependencies": {
- "@floating-ui/dom": "^1.7.0",
- "@lit-labs/virtualizer": "^2.1.0",
- "@lit/context": "^1.1.0",
+ "igniteui-webcomponents": "~6.5.0",
"lit": "^3.3.0"
},
"engines": {
diff --git a/package.json b/package.json
index c2914d757..40c79b19c 100644
--- a/package.json
+++ b/package.json
@@ -79,7 +79,7 @@
"igniteui-angular-extras": "^21.0.0",
"igniteui-angular-i18n": "^21.0.0",
"igniteui-dockmanager": "^1.17.0",
- "igniteui-grid-lite": "^0.0.1",
+ "igniteui-grid-lite": "~0.4.0",
"igniteui-live-editing": "^3.3.0",
"igniteui-webcomponents": "^6.5.0",
"marked": "^17.0.1",
diff --git a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
index 43bfef600..a505dd354 100644
--- a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
@@ -11,7 +11,12 @@
+
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
index fe2717eca..fdf49fd0e 100644
--- a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
@@ -20,72 +20,31 @@ export class GridLiteColumnConfigDynamicComponent implements OnInit {
@ViewChild('gridLite', { static: false }) gridLite!: ElementRef;
public data: ProductInfo[] = [];
- public columns: any[] = [];
public hasFormatters = true;
- private formatter = new Intl.NumberFormat('en-EN', {
+ public formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'EUR'
});
ngOnInit() {
this.data = this.dataService.generateProducts(50);
-
- this.columns = [
- {
- key: 'id',
- hidden: true,
- headerText: 'ID',
- width: '15rem'
- },
- {
- key: 'name',
- headerText: 'Product Name',
- width: '15rem'
- },
- {
- key: 'price',
- headerText: 'Price',
- type: 'number',
- width: '15rem',
- cellTemplate: (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Units sold',
- width: '15rem'
- },
- {
- key: 'total',
- headerText: 'Total sold',
- width: '15rem',
- cellTemplate: (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
- }
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Customer rating',
- width: '15rem',
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- }
- ];
}
+ formatCurrency = (params: any) => {
+ const span = document.createElement('span');
+ span.textContent = this.formatter.format(params.value);
+ return span;
+ };
+
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
updateColumnProperty(key: string, prop: string, value: any) {
const grid = this.gridLite?.nativeElement as any;
if (grid && grid.updateColumns) {
diff --git a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
index 9b6326efb..f4e8bba8e 100644
--- a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
@@ -1,6 +1,9 @@
-
+
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
index cefaadf5e..22aa0b28c 100644
--- a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
@@ -18,43 +18,16 @@ export class GridLiteColumnConfigHeadersComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
ngOnInit() {
this.data = this.dataService.generateProducts(50);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Product Name'
- },
- {
- key: 'price',
- headerText: 'Price (€)',
- type: 'number'
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Units Sold'
- },
- {
- key: 'total',
- headerText: 'Total Revenue',
- type: 'number'
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Customer Rating ⭐',
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- }
- ];
}
+
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
}
diff --git a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
index 9b6326efb..73fda3cac 100644
--- a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
@@ -1,6 +1,9 @@
-
+
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
index 86cc1c7ad..2cda7d4b2 100644
--- a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
@@ -18,57 +18,27 @@ export class GridLiteColumnConfigSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
- private formatter = new Intl.NumberFormat('en-EN', {
+ public formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'EUR'
});
ngOnInit() {
this.data = this.dataService.generateProducts(50);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Product Name'
- },
- {
- key: 'price',
- headerText: 'Price',
- type: 'number',
- cellTemplate: (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Units sold'
- },
- {
- key: 'total',
- headerText: 'Total sold',
- cellTemplate: (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
- }
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Customer rating',
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- }
- ];
}
+
+ formatCurrency = (params: any) => {
+ const span = document.createElement('span');
+ span.textContent = this.formatter.format(params.value);
+ return span;
+ };
+
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
}
diff --git a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
index 52f0b2fd6..9e217c700 100644
--- a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
+++ b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
@@ -2,7 +2,7 @@
Switch data
diff --git a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
index 5f2c4d1ce..e3c6a78b8 100644
--- a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
+++ b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
@@ -21,7 +21,6 @@ export class GridLiteDataBindingDynamicComponent implements OnInit {
public data: (ProductInfo | UserSimple)[] = [];
public dataType: 'products' | 'users' = 'products';
- public autoGenerate = true;
ngOnInit() {
this.data = this.dataService.generateProducts(50);
@@ -29,16 +28,10 @@ export class GridLiteDataBindingDynamicComponent implements OnInit {
switchData() {
this.dataType = this.dataType === 'products' ? 'users' : 'products';
- const grid = this.gridLite?.nativeElement as any;
-
- if (grid) {
- grid.columns = [];
- if (this.dataType === 'products') {
- this.data = this.dataService.generateProducts(50);
- } else {
- this.data = this.dataService.generateSimpleUsers(50);
- }
- grid.data = this.data;
+ if (this.dataType === 'products') {
+ this.data = this.dataService.generateProducts(50);
+ } else {
+ this.data = this.dataService.generateSimpleUsers(50);
}
}
}
diff --git a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
index e6cdea1be..f1662dbef 100644
--- a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
@@ -1,9 +1,12 @@
+
+
+
+
@for (entry of log; track entry) {
diff --git a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
index 811ab5818..bf087b8b2 100644
--- a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
@@ -18,45 +18,20 @@ export class GridLiteFilteringEventsComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: User[] = [];
- public columns: any[] = [];
public log: string[] = [];
ngOnInit() {
this.data = this.dataService.generateUsers(50);
-
- this.columns = [
- {
- key: 'firstName',
- headerText: 'First name',
- filter: true
- },
- {
- key: 'lastName',
- headerText: 'Last name',
- filter: true
- },
- {
- key: 'age',
- headerText: 'Age',
- filter: true,
- type: 'number'
- },
- {
- key: 'active',
- headerText: 'Active',
- type: 'boolean',
- filter: true,
- cellTemplate: (params: any) => {
- const checkbox = document.createElement('igc-checkbox');
- if (params.value) {
- checkbox.setAttribute('checked', '');
- }
- return checkbox;
- }
- }
- ];
}
+ formatCheckbox = (params: any) => {
+ const checkbox = document.createElement('igc-checkbox');
+ if (params.value) {
+ checkbox.setAttribute('checked', '');
+ }
+ return checkbox;
+ };
+
private get timeStamp(): string {
return `[${new Date().toLocaleTimeString()}]`;
}
diff --git a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
index 650a29cac..3593e2aa8 100644
--- a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
@@ -9,9 +9,12 @@
Generated request
indeterminate>
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
index 16dc1ebdc..c329c00e8 100644
--- a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
@@ -18,45 +18,12 @@ export class GridLiteFilteringPipelineComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: User[] = [];
- public columns: any[] = [];
public dataPipelineConfiguration: any;
public inOperation = false;
public queryString = '';
ngOnInit() {
this.data = this.dataService.generateUsers(50);
-
- this.columns = [
- {
- key: 'firstName',
- headerText: 'First name',
- filter: true
- },
- {
- key: 'lastName',
- headerText: 'Last name',
- filter: true
- },
- {
- key: 'age',
- headerText: 'Age',
- filter: true,
- type: 'number'
- },
- {
- key: 'active',
- headerText: 'Active',
- type: 'boolean',
- filter: true,
- cellTemplate: (params: any) => {
- const checkbox = document.createElement('igc-checkbox');
- if (params.value) {
- checkbox.setAttribute('checked', '');
- }
- return checkbox;
- }
- }
- ];
this.dataPipelineConfiguration = {
filter: async ({ data, grid }: any) => {
@@ -69,6 +36,14 @@ export class GridLiteFilteringPipelineComponent implements OnInit {
};
}
+ formatCheckbox = (params: any) => {
+ const checkbox = document.createElement('igc-checkbox');
+ if (params.value) {
+ checkbox.setAttribute('checked', '');
+ }
+ return checkbox;
+ };
+
private buildUri(state: any[]) {
const grouped = this.groupBy(state, 'key');
const out: string[] = [];
diff --git a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
index 9b6326efb..64d259fc1 100644
--- a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
@@ -1,6 +1,8 @@
-
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
index 8c6e2360e..098bad469 100644
--- a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
@@ -18,41 +18,16 @@ export class GridLiteFilteringSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: User[] = [];
- public columns: any[] = [];
ngOnInit() {
this.data = this.dataService.generateUsers(50);
-
- this.columns = [
- {
- key: 'firstName',
- headerText: 'First name',
- filter: true
- },
- {
- key: 'lastName',
- headerText: 'Last name',
- filter: true
- },
- {
- key: 'age',
- headerText: 'Age',
- filter: true,
- type: 'number'
- },
- {
- key: 'active',
- headerText: 'Active',
- type: 'boolean',
- filter: true,
- cellTemplate: (params: any) => {
- const checkbox = document.createElement('igc-checkbox');
- if (params.value) {
- checkbox.setAttribute('checked', '');
- }
- return checkbox;
- }
- }
- ];
}
+
+ formatCheckbox = (params: any) => {
+ const checkbox = document.createElement('igc-checkbox');
+ if (params.value) {
+ checkbox.setAttribute('checked', '');
+ }
+ return checkbox;
+ };
}
diff --git a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
index 9b6326efb..759717371 100644
--- a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
+++ b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
@@ -1,6 +1,12 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
index feb189906..534b04ea4 100644
--- a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
+++ b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
@@ -30,101 +30,56 @@ export class GridLiteOverviewComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: User[] = [];
- public columns: any[] = [];
private choices = ['Low', 'Standard', 'High'];
ngOnInit() {
this.data = this.dataService.generateUsers(1000);
-
- this.columns = [
- {
- key: 'avatar',
- headerText: 'Avatar',
- cellTemplate: (params: any) => {
- const cell = document.createElement('igc-avatar');
- cell.setAttribute('shape', 'circle');
- cell.setAttribute('alt', 'User avatar');
- cell.setAttribute('src', params.value);
- return cell;
- }
- },
- {
- key: 'firstName',
- headerText: 'First name',
- sort: true,
- filter: true,
- resizable: true
- },
- {
- key: 'lastName',
- headerText: 'Last name',
- sort: true,
- filter: true,
- resizable: true
- },
- {
- key: 'email',
- headerText: 'Email Address'
- },
- {
- key: 'priority',
- headerText: 'Priority',
- width: '12rem',
- sort: {
- comparer: (a: string, b: string) => this.choices.indexOf(a) - this.choices.indexOf(b),
- caseSensitive: true
- },
- cellTemplate: (params: any) => {
- const select = document.createElement('igc-select');
- select.setAttribute('outlined', '');
- select.setAttribute('flip', '');
- select.setAttribute('value', params.value);
-
- this.choices.forEach(choice => {
- const item = document.createElement('igc-select-item');
- item.setAttribute('value', choice);
- item.textContent = choice;
- select.appendChild(item);
- });
-
- return select;
- }
- },
- {
- key: 'satisfaction',
- headerText: 'Satisfaction rating',
- type: 'number',
- sort: true,
- filter: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- },
- {
- key: 'registeredAt',
- headerText: 'Registered @',
- sort: true,
- cellTemplate: (params: any) => {
- const span = document.createElement('span');
- span.textContent = params.value.toLocaleString();
- return span;
- }
- },
- {
- key: 'active',
- type: 'boolean',
- headerText: 'Active',
- cellTemplate: (params: any) => {
- const checkbox = document.createElement('igc-checkbox');
- if (params.value) {
- checkbox.setAttribute('checked', '');
- }
- return checkbox;
- }
- }
- ];
}
+
+ formatAvatar = (params: any) => {
+ const cell = document.createElement('igc-avatar');
+ cell.setAttribute('shape', 'circle');
+ cell.setAttribute('alt', 'User avatar');
+ cell.setAttribute('src', params.value);
+ return cell;
+ };
+
+ formatPriority = (params: any) => {
+ const select = document.createElement('igc-select');
+ select.setAttribute('outlined', '');
+ select.setAttribute('flip', '');
+ select.setAttribute('value', params.value);
+
+ this.choices.forEach(choice => {
+ const item = document.createElement('igc-select-item');
+ item.setAttribute('value', choice);
+ item.textContent = choice;
+ select.appendChild(item);
+ });
+
+ return select;
+ };
+
+ priorityComparer = (a: string, b: string) => this.choices.indexOf(a) - this.choices.indexOf(b);
+
+ formatSatisfaction = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
+ formatRegisteredAt = (params: any) => {
+ const span = document.createElement('span');
+ span.textContent = params.value.toLocaleString();
+ return span;
+ };
+
+ formatActive = (params: any) => {
+ const checkbox = document.createElement('igc-checkbox');
+ if (params.value) {
+ checkbox.setAttribute('checked', '');
+ }
+ return checkbox;
+ };
}
diff --git a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
index 5370c694c..ebc73ffa3 100644
--- a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
@@ -1,9 +1,13 @@
+
+
+
+
+
@for (entry of log; track entry) {
diff --git a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
index a41750c92..359254c86 100644
--- a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
@@ -18,52 +18,20 @@ export class GridLiteSortingEventsComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
public log: string[] = [];
ngOnInit() {
this.data = this.dataService.generateProducts(100);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Name',
- sort: true
- },
- {
- key: 'price',
- type: 'number',
- headerText: 'Price',
- sort: true
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Rating',
- sort: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Sold',
- sort: true
- },
- {
- key: 'total',
- type: 'number',
- headerText: 'Total',
- sort: true
- }
- ];
}
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
private get timeStamp(): string {
return `[${new Date().toLocaleTimeString()}]`;
}
diff --git a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
index 9b5314523..44c94546e 100644
--- a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
@@ -1,20 +1,19 @@
Enable multi-sort
-
- Enable tri-state sorting
-
+ [sortingOptions]="sortingOptions">
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
index eeeddaf90..fbc5463f9 100644
--- a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
@@ -18,56 +18,27 @@ export class GridLiteSortingGridConfigComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
- public sortConfiguration: any = {
- multiple: true,
- triState: true
+ public sortingOptions: any = {
+ mode: 'multiple'
};
ngOnInit() {
this.data = this.dataService.generateProducts(100);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Name',
- sort: true
- },
- {
- key: 'price',
- type: 'number',
- headerText: 'Price',
- sort: true
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Rating',
- sort: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Sold',
- sort: true
- },
- {
- key: 'total',
- type: 'number',
- headerText: 'Total',
- sort: true
- }
- ];
}
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
updateConfig(prop: string, value: boolean) {
- this.sortConfiguration = { ...this.sortConfiguration, [prop]: value };
+ if (prop === 'multiple') {
+ this.sortingOptions = { ...this.sortingOptions, mode: value ? 'multiple' : 'single' };
+ } else {
+ this.sortingOptions = { ...this.sortingOptions, [prop]: value };
+ }
}
}
diff --git a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
index 650a29cac..6d998608a 100644
--- a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
@@ -9,9 +9,13 @@
Generated request
indeterminate>
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
index abaeb8c57..f3704969d 100644
--- a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
@@ -18,58 +18,18 @@ export class GridLiteSortingPipelineComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
public dataPipelineConfiguration: any;
public inOperation = false;
public queryString = '';
ngOnInit() {
this.data = this.dataService.generateProducts(100);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Name',
- sort: true
- },
- {
- key: 'price',
- type: 'number',
- headerText: 'Price',
- sort: true
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Rating',
- sort: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Sold',
- sort: true
- },
- {
- key: 'total',
- type: 'number',
- headerText: 'Total',
- sort: true
- }
- ];
this.dataPipelineConfiguration = {
sort: async ({ data, grid }: any) => {
this.inOperation = true;
- this.queryString = grid.sortExpressions.length
- ? this.buildUri(grid.sortExpressions)
+ this.queryString = grid.sortingExpressions.length
+ ? this.buildUri(grid.sortingExpressions)
: '';
await new Promise(resolve => setTimeout(resolve, 250));
this.inOperation = false;
@@ -78,6 +38,14 @@ export class GridLiteSortingPipelineComponent implements OnInit {
};
}
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
private buildUri(state: any[]): string {
const uri: string[] = [];
for (const expr of state) {
diff --git a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
index 9b6326efb..4c54461bd 100644
--- a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
@@ -1,6 +1,9 @@
-
+
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
index d3256cb04..f534909b8 100644
--- a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
@@ -18,50 +18,18 @@ export class GridLiteSortingSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
ngOnInit() {
this.data = this.dataService.generateProducts(100);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Name',
- sort: {
- comparer: (a: string, b: string) => a.length - b.length
- }
- },
- {
- key: 'price',
- type: 'number',
- headerText: 'Price',
- sort: true
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Rating',
- sort: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('step', '0.01');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Sold',
- sort: true
- },
- {
- key: 'total',
- type: 'number',
- headerText: 'Total',
- sort: true
- }
- ];
}
+
+ nameComparer = (a: string, b: string) => a.length - b.length;
+
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('step', '0.01');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
}
diff --git a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.html b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.html
index f1befbff9..e2cab0cb5 100644
--- a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.html
+++ b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.html
@@ -11,7 +11,11 @@
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.ts b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.ts
index 8c1449c39..ec1f78a68 100644
--- a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.ts
+++ b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.ts
@@ -19,48 +19,10 @@ export class GridLiteStylingCustomComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
public theme: 'dark' | 'light' = 'dark';
ngOnInit() {
this.data = this.dataService.generateProducts(50);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Product',
- filter: true,
- sort: true
- },
- {
- key: 'price',
- headerText: 'Price',
- type: 'number',
- filter: true,
- sort: true
- },
- {
- key: 'sold',
- type: 'number',
- headerText: 'Sold',
- filter: true,
- sort: true
- },
- {
- key: 'total',
- headerText: 'Total',
- type: 'number',
- filter: true,
- sort: true
- },
- {
- key: 'rating',
- type: 'number',
- headerText: 'Rating',
- filter: true,
- sort: true
- }
- ];
}
switchTheme() {
diff --git a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
index c19f47b31..965238f3b 100644
--- a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
+++ b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
@@ -13,7 +13,11 @@
+
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
index 095ef4abd..93b8c1d14 100644
--- a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
+++ b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
@@ -18,7 +18,6 @@ export class GridLiteStylingThemesComponent implements OnInit {
private dataService = inject(GridLiteDataService);
public data: ProductInfo[] = [];
- public columns: any[] = [];
public selectedTheme = 'Bootstrap';
public themes = [
'Bootstrap',
@@ -33,51 +32,15 @@ export class GridLiteStylingThemesComponent implements OnInit {
ngOnInit() {
this.data = this.dataService.generateProducts(50);
-
- this.columns = [
- {
- key: 'name',
- headerText: 'Product',
- sort: true,
- filter: true
- },
- {
- key: 'price',
- headerText: 'Price per item',
- sort: true,
- filter: true,
- type: 'number'
- },
- {
- key: 'sold',
- headerText: 'Items sold',
- sort: true,
- filter: true,
- type: 'number'
- },
- {
- key: 'total',
- headerText: 'Total',
- sort: true,
- filter: true,
- type: 'number'
- },
- {
- key: 'rating',
- headerText: 'User rating',
- type: 'number',
- sort: true,
- filter: true,
- cellTemplate: (params: any) => {
- const rating = document.createElement('igc-rating');
- rating.setAttribute('readonly', '');
- rating.setAttribute('value', params.value.toString());
- return rating;
- }
- }
- ];
}
+ formatRating = (params: any) => {
+ const rating = document.createElement('igc-rating');
+ rating.setAttribute('readonly', '');
+ rating.setAttribute('value', params.value.toString());
+ return rating;
+ };
+
updateTheme(event: any) {
this.selectedTheme = event.detail.value;
}
From 4c68fbee2b9e048fa8a619bd7dd9825eeb8bc724 Mon Sep 17 00:00:00 2001
From: damyanpetev
Date: Thu, 5 Feb 2026 12:15:51 +0200
Subject: [PATCH 2/2] refactor(grid-lite): revert extra bits, additional fixes
and cleanup
---
package-lock.json | 34 ----------------
...-lite-column-config-dynamic.component.html | 13 +++----
...-lite-column-config-dynamic.component.scss | 4 +-
...id-lite-column-config-dynamic.component.ts | 39 +++----------------
...-lite-column-config-headers.component.html | 2 +-
...id-lite-column-config-headers.component.ts | 4 +-
...d-lite-column-config-simple.component.html | 2 +-
...rid-lite-column-config-simple.component.ts | 12 +++---
...d-lite-data-binding-dynamic.component.html | 5 +--
...rid-lite-data-binding-dynamic.component.ts | 6 +--
.../grid-lite-filtering-events.component.html | 4 +-
.../grid-lite-filtering-events.component.ts | 4 +-
...rid-lite-filtering-pipeline.component.html | 4 +-
.../grid-lite-filtering-pipeline.component.ts | 8 ++--
.../grid-lite-filtering-simple.component.html | 2 +-
.../grid-lite-filtering-simple.component.ts | 4 +-
.../grid-lite-overview.component.html | 10 ++---
.../grid-lite-overview.component.ts | 18 ++++-----
.../grid-lite-sorting-events.component.html | 4 +-
.../grid-lite-sorting-events.component.ts | 6 +--
...id-lite-sorting-grid-config.component.html | 9 +++--
...grid-lite-sorting-grid-config.component.ts | 17 ++++----
.../grid-lite-sorting-pipeline.component.html | 4 +-
.../grid-lite-sorting-pipeline.component.ts | 4 +-
.../grid-lite-sorting-simple.component.html | 2 +-
.../grid-lite-sorting-simple.component.ts | 6 +--
.../grid-lite-styling-custom.component.scss | 2 +-
.../grid-lite-styling-themes.component.html | 6 +--
.../grid-lite-styling-themes.component.ts | 4 +-
29 files changed, 84 insertions(+), 155 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2e1b3c940..7ec61d6aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2107,24 +2107,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@igniteui/angular-schematics/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/@igniteui/angular-schematics/node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -2284,22 +2266,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/@igniteui/angular-schematics/node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/@igniteui/angular-schematics/node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
diff --git a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
index a505dd354..6eea4b3f5 100644
--- a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.html
@@ -1,22 +1,19 @@
- Column properties
-
+ (igcChange)="hasFormatters = $event.detail.checked">
Value formatters:
-
-
+
+
-
+
diff --git a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.scss b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.scss
index e5cc3df9a..8a50ec703 100644
--- a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.scss
+++ b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.scss
@@ -9,11 +9,9 @@
}
.panel {
- margin: 1rem 0;
+ padding: 1rem;
display: flex;
- flex-flow: row nowrap;
justify-content: space-between;
- align-items: center;
}
igc-grid-lite {
diff --git a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
index fdf49fd0e..71e9c823d 100644
--- a/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-dynamic/grid-lite-column-config-dynamic.component.ts
@@ -1,4 +1,4 @@
-import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, ViewChild, ElementRef, inject } from '@angular/core';
+import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { defineComponents, IgcButtonComponent, IgcCheckboxComponent, IgcDropdownComponent, IgcSwitchComponent } from 'igniteui-webcomponents';
import { IgcGridLite } from 'igniteui-grid-lite';
@@ -16,13 +16,11 @@ defineComponents(IgcCheckboxComponent, IgcDropdownComponent, IgcSwitchComponent,
})
export class GridLiteColumnConfigDynamicComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
- @ViewChild('gridLite', { static: false }) gridLite!: ElementRef;
-
+
public data: ProductInfo[] = [];
public hasFormatters = true;
- public formatter = new Intl.NumberFormat('en-US', {
+ public formatter = new Intl.NumberFormat('en-150', {
style: 'currency',
currency: 'EUR'
});
@@ -31,40 +29,15 @@ export class GridLiteColumnConfigDynamicComponent implements OnInit {
this.data = this.dataService.generateProducts(50);
}
- formatCurrency = (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
+ protected formatCurrency = (params: any) => {
+ return this.formatter.format(params.value);
};
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
rating.setAttribute('value', params.value.toString());
return rating;
};
-
- updateColumnProperty(key: string, prop: string, value: any) {
- const grid = this.gridLite?.nativeElement as any;
- if (grid && grid.updateColumns) {
- grid.updateColumns({ key, [prop]: value });
- }
- }
-
- toggleFormatters(enabled: boolean) {
- this.hasFormatters = enabled;
- const grid = this.gridLite?.nativeElement as any;
- if (grid && grid.updateColumns) {
- const updates = ['price', 'total'].map(key => ({
- key,
- cellTemplate: enabled ? (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
- } : undefined
- }));
- grid.updateColumns(updates);
- }
- }
}
diff --git a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
index f4e8bba8e..df8729a96 100644
--- a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.html
@@ -4,6 +4,6 @@
-
+
diff --git a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
index 22aa0b28c..60d1b3698 100644
--- a/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-headers/grid-lite-column-config-headers.component.ts
@@ -16,14 +16,14 @@ defineComponents(IgcRatingComponent);
})
export class GridLiteColumnConfigHeadersComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
ngOnInit() {
this.data = this.dataService.generateProducts(50);
}
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
diff --git a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
index 73fda3cac..83768a244 100644
--- a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
+++ b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.html
@@ -4,6 +4,6 @@
-
+
diff --git a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
index 2cda7d4b2..ed7a83759 100644
--- a/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-column-config-simple/grid-lite-column-config-simple.component.ts
@@ -16,10 +16,10 @@ defineComponents(IgcRatingComponent);
})
export class GridLiteColumnConfigSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
- public formatter = new Intl.NumberFormat('en-US', {
+ public formatter = new Intl.NumberFormat('en-150', {
style: 'currency',
currency: 'EUR'
});
@@ -28,13 +28,11 @@ export class GridLiteColumnConfigSimpleComponent implements OnInit {
this.data = this.dataService.generateProducts(50);
}
- formatCurrency = (params: any) => {
- const span = document.createElement('span');
- span.textContent = this.formatter.format(params.value);
- return span;
+ protected formatCurrency = (params: any) => {
+ return this.formatter.format(params.value);
};
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
diff --git a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
index 9e217c700..6630c55b7 100644
--- a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
+++ b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.html
@@ -1,8 +1,7 @@
Switch data
-
diff --git a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
index e3c6a78b8..7661a9509 100644
--- a/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
+++ b/src/app/grid-lite/grid-lite-data-binding-dynamic/grid-lite-data-binding-dynamic.component.ts
@@ -1,4 +1,4 @@
-import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, ViewChild, ElementRef, inject } from '@angular/core';
+import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { defineComponents, IgcButtonComponent } from 'igniteui-webcomponents';
import { IgcGridLite } from 'igniteui-grid-lite';
@@ -16,9 +16,7 @@ defineComponents(IgcButtonComponent);
})
export class GridLiteDataBindingDynamicComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
- @ViewChild('gridLite', { static: false }) gridLite!: ElementRef;
-
+
public data: (ProductInfo | UserSimple)[] = [];
public dataType: 'products' | 'users' = 'products';
diff --git a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
index f1662dbef..91886b333 100644
--- a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.html
@@ -1,12 +1,12 @@
-
-
+
@for (entry of log; track entry) {
diff --git a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
index bf087b8b2..a0353d47a 100644
--- a/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-events/grid-lite-filtering-events.component.ts
@@ -16,7 +16,7 @@ defineComponents(IgcCheckboxComponent);
})
export class GridLiteFilteringEventsComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: User[] = [];
public log: string[] = [];
@@ -24,7 +24,7 @@ export class GridLiteFilteringEventsComponent implements OnInit {
this.data = this.dataService.generateUsers(50);
}
- formatCheckbox = (params: any) => {
+ protected checkboxTemplate = (params: any) => {
const checkbox = document.createElement('igc-checkbox');
if (params.value) {
checkbox.setAttribute('checked', '');
diff --git a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
index 3593e2aa8..af557467e 100644
--- a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.html
@@ -8,13 +8,13 @@
Generated request
[class.in-operation]="inOperation"
indeterminate>
-
-
+
diff --git a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
index c329c00e8..5e0c1a949 100644
--- a/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-pipeline/grid-lite-filtering-pipeline.component.ts
@@ -16,7 +16,7 @@ defineComponents(IgcCheckboxComponent, IgcCircularProgressComponent);
})
export class GridLiteFilteringPipelineComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: User[] = [];
public dataPipelineConfiguration: any;
public inOperation = false;
@@ -36,7 +36,7 @@ export class GridLiteFilteringPipelineComponent implements OnInit {
};
}
- formatCheckbox = (params: any) => {
+ protected checkboxTemplate = (params: any) => {
const checkbox = document.createElement('igc-checkbox');
if (params.value) {
checkbox.setAttribute('checked', '');
@@ -47,11 +47,11 @@ export class GridLiteFilteringPipelineComponent implements OnInit {
private buildUri(state: any[]) {
const grouped = this.groupBy(state, 'key');
const out: string[] = [];
-
+
for (const [key, exprs] of Object.entries(grouped)) {
out.push(`${key}(${this.mapExpressions(exprs as any[])})`);
}
-
+
this.queryString = `GET: /data?filter=${out.join('&')}`;
}
diff --git a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
index 64d259fc1..1f2324f57 100644
--- a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
+++ b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.html
@@ -3,6 +3,6 @@
-
+
diff --git a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
index 098bad469..cd2525fbe 100644
--- a/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-filtering-simple/grid-lite-filtering-simple.component.ts
@@ -16,14 +16,14 @@ defineComponents(IgcCheckboxComponent);
})
export class GridLiteFilteringSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: User[] = [];
ngOnInit() {
this.data = this.dataService.generateUsers(50);
}
- formatCheckbox = (params: any) => {
+ protected checkboxTemplate = (params: any) => {
const checkbox = document.createElement('igc-checkbox');
if (params.value) {
checkbox.setAttribute('checked', '');
diff --git a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
index 759717371..c9f8ac300 100644
--- a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
+++ b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.html
@@ -1,12 +1,12 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
index 534b04ea4..64536a4a0 100644
--- a/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
+++ b/src/app/grid-lite/grid-lite-overview/grid-lite-overview.component.ts
@@ -1,6 +1,6 @@
import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
-import {
+import {
defineComponents,
IgcRatingComponent,
IgcCheckboxComponent,
@@ -28,7 +28,7 @@ defineComponents(
})
export class GridLiteOverviewComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: User[] = [];
private choices = ['Low', 'Standard', 'High'];
@@ -36,7 +36,7 @@ export class GridLiteOverviewComponent implements OnInit {
this.data = this.dataService.generateUsers(1000);
}
- formatAvatar = (params: any) => {
+ protected avatarTemplate = (params: any) => {
const cell = document.createElement('igc-avatar');
cell.setAttribute('shape', 'circle');
cell.setAttribute('alt', 'User avatar');
@@ -44,38 +44,38 @@ export class GridLiteOverviewComponent implements OnInit {
return cell;
};
- formatPriority = (params: any) => {
+ protected priorityTemplate = (params: any) => {
const select = document.createElement('igc-select');
select.setAttribute('outlined', '');
select.setAttribute('flip', '');
select.setAttribute('value', params.value);
-
+
this.choices.forEach(choice => {
const item = document.createElement('igc-select-item');
item.setAttribute('value', choice);
item.textContent = choice;
select.appendChild(item);
});
-
+
return select;
};
priorityComparer = (a: string, b: string) => this.choices.indexOf(a) - this.choices.indexOf(b);
- formatSatisfaction = (params: any) => {
+ protected satisfactionTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('value', params.value.toString());
return rating;
};
- formatRegisteredAt = (params: any) => {
+ protected registeredAtTemplate = (params: any) => {
const span = document.createElement('span');
span.textContent = params.value.toLocaleString();
return span;
};
- formatActive = (params: any) => {
+ protected activeTemplate = (params: any) => {
const checkbox = document.createElement('igc-checkbox');
if (params.value) {
checkbox.setAttribute('checked', '');
diff --git a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
index ebc73ffa3..d9bbc866b 100644
--- a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.html
@@ -1,11 +1,11 @@
-
-
+
diff --git a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
index 359254c86..ef05bdaba 100644
--- a/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-events/grid-lite-sorting-events.component.ts
@@ -16,7 +16,7 @@ defineComponents(IgcRatingComponent);
})
export class GridLiteSortingEventsComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
public log: string[] = [];
@@ -24,7 +24,7 @@ export class GridLiteSortingEventsComponent implements OnInit {
this.data = this.dataService.generateProducts(100);
}
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
@@ -46,7 +46,7 @@ export class GridLiteSortingEventsComponent implements OnInit {
handleSorting(event: any) {
const { detail, type } = event;
const allowedColumns = ['price', 'total', 'sold'];
-
+
if (!allowedColumns.includes(detail.key)) {
event.preventDefault();
this.updateLog(
diff --git a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
index 44c94546e..f72da9b8c 100644
--- a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.html
@@ -2,17 +2,18 @@
+ (igcChange)="updateConfig($event.detail.checked)">
Enable multi-sort
-
-
-
+
diff --git a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
index fbc5463f9..87d389018 100644
--- a/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-grid-config/grid-lite-sorting-grid-config.component.ts
@@ -1,4 +1,4 @@
-import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, inject } from '@angular/core';
+import { Component, CUSTOM_ELEMENTS_SCHEMA, OnInit, inject, ViewChild, ElementRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { defineComponents, IgcRatingComponent, IgcSwitchComponent } from 'igniteui-webcomponents';
import { IgcGridLite } from 'igniteui-grid-lite';
@@ -16,7 +16,9 @@ defineComponents(IgcRatingComponent, IgcSwitchComponent);
})
export class GridLiteSortingGridConfigComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
+ @ViewChild('gridLite', { static: true }) gridLite!: ElementRef;
+
public data: ProductInfo[] = [];
public sortingOptions: any = {
mode: 'multiple'
@@ -26,7 +28,7 @@ export class GridLiteSortingGridConfigComponent implements OnInit {
this.data = this.dataService.generateProducts(100);
}
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
@@ -34,11 +36,8 @@ export class GridLiteSortingGridConfigComponent implements OnInit {
return rating;
};
- updateConfig(prop: string, value: boolean) {
- if (prop === 'multiple') {
- this.sortingOptions = { ...this.sortingOptions, mode: value ? 'multiple' : 'single' };
- } else {
- this.sortingOptions = { ...this.sortingOptions, [prop]: value };
- }
+ protected updateConfig(value: boolean) {
+ this.sortingOptions = { ...this.sortingOptions, mode: value ? 'multiple' : 'single' };
+ this.gridLite.nativeElement.clearSort();
}
}
diff --git a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
index 6d998608a..5a52cc6d8 100644
--- a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.html
@@ -8,12 +8,12 @@
Generated request
[class.in-operation]="inOperation"
indeterminate>
-
-
+
diff --git a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
index f3704969d..7bac31695 100644
--- a/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-pipeline/grid-lite-sorting-pipeline.component.ts
@@ -16,7 +16,7 @@ defineComponents(IgcRatingComponent, IgcCircularProgressComponent);
})
export class GridLiteSortingPipelineComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
public dataPipelineConfiguration: any;
public inOperation = false;
@@ -38,7 +38,7 @@ export class GridLiteSortingPipelineComponent implements OnInit {
};
}
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
diff --git a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
index 4c54461bd..a012964af 100644
--- a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
+++ b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.html
@@ -2,7 +2,7 @@
-
+
diff --git a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
index f534909b8..949d274b4 100644
--- a/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
+++ b/src/app/grid-lite/grid-lite-sorting-simple/grid-lite-sorting-simple.component.ts
@@ -16,16 +16,16 @@ defineComponents(IgcRatingComponent);
})
export class GridLiteSortingSimpleComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
ngOnInit() {
this.data = this.dataService.generateProducts(100);
}
- nameComparer = (a: string, b: string) => a.length - b.length;
+ protected nameComparer = (a: string, b: string) => a.length - b.length;
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('step', '0.01');
diff --git a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.scss b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.scss
index 60fe9043c..69a79b605 100644
--- a/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.scss
+++ b/src/app/grid-lite/grid-lite-styling-custom/grid-lite-styling-custom.component.scss
@@ -12,7 +12,7 @@
}
.theme-switcher {
- margin-bottom: 2rem;
+ padding: 1rem;
}
igc-grid-lite {
diff --git a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
index 965238f3b..2f4cfd77d 100644
--- a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
+++ b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.html
@@ -10,14 +10,14 @@
}
-
-
-
+
diff --git a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
index 93b8c1d14..7e25a50bd 100644
--- a/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
+++ b/src/app/grid-lite/grid-lite-styling-themes/grid-lite-styling-themes.component.ts
@@ -16,7 +16,7 @@ defineComponents(IgcRatingComponent, IgcSelectComponent, IgcSelectItemComponent)
})
export class GridLiteStylingThemesComponent implements OnInit {
private dataService = inject(GridLiteDataService);
-
+
public data: ProductInfo[] = [];
public selectedTheme = 'Bootstrap';
public themes = [
@@ -34,7 +34,7 @@ export class GridLiteStylingThemesComponent implements OnInit {
this.data = this.dataService.generateProducts(50);
}
- formatRating = (params: any) => {
+ protected ratingTemplate = (params: any) => {
const rating = document.createElement('igc-rating');
rating.setAttribute('readonly', '');
rating.setAttribute('value', params.value.toString());