Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
cc9ccb1
feat(aggrid): migrate legacy theme to new theming api
danielleroux Jun 18, 2025
58100d4
Merge remote-tracking branch 'origin/release-4.0.0' into feat/aggrid-โ€ฆ
danielleroux Sep 4, 2025
c8fb0b6
update function name
danielleroux Sep 4, 2025
06d4062
add first mapping draft
danielleroux Sep 5, 2025
4f25c37
ix aggrid new theming API final
lzeiml Oct 14, 2025
c91afb8
Merge branch 'main' into feat/aggrid-v33-theme
lzeiml Oct 14, 2025
638f046
build + install
lzeiml Oct 14, 2025
31f8ecf
fix build
lzeiml Oct 14, 2025
b2381fc
use es2022
lzeiml Oct 14, 2025
c52f425
Create tiny-ducks-behave.md
nuke-ellington Oct 15, 2025
6fe0b48
fix tests
lzeiml Oct 16, 2025
d6bbd6a
Merge branch 'feat/aggrid-v33-theme' of https://github.com/siemens/ixโ€ฆ
lzeiml Oct 16, 2025
4d367e4
Update packages/aggrid/tests/setup.ts
lzeiml Oct 16, 2025
3fef930
fix
lzeiml Oct 20, 2025
70050b3
fix
lzeiml Oct 21, 2025
d818978
fix tests
lzeiml Oct 21, 2025
6bec035
Merge branch 'main' into feat/aggrid-v33-theme
lzeiml Oct 21, 2025
e718323
merge
lzeiml Oct 21, 2025
bfb824a
remove unused file
lzeiml Oct 21, 2025
0e8cc13
fix
lzeiml Oct 21, 2025
f79b173
fix
lzeiml Oct 21, 2025
806dd2b
test
lzeiml Oct 21, 2025
fbac2a0
fix snapshots
lzeiml Oct 21, 2025
96ad259
remove unused file
lzeiml Oct 21, 2025
4af8797
fix
lzeiml Oct 21, 2025
8561299
test
lzeiml Oct 21, 2025
0d548c9
debug
lzeiml Oct 21, 2025
fe53276
debug
lzeiml Oct 21, 2025
8192656
debug
lzeiml Oct 21, 2025
69629d6
fix
lzeiml Oct 21, 2025
9b1de68
revert
lzeiml Oct 21, 2025
12171c8
pipeline test
lzeiml Oct 21, 2025
016b061
test
lzeiml Oct 21, 2025
29b987e
test debug setup
lzeiml Oct 21, 2025
0b5be55
update snapshots
lzeiml Oct 21, 2025
02430fc
fix snapshots (please)
lzeiml Oct 22, 2025
d7dd493
remove debug logs, add pagination test
lzeiml Oct 22, 2025
2ca3884
Merge branch 'main' into feat/aggrid-v33-theme
lzeiml Oct 22, 2025
c72ea25
fix build
lzeiml Oct 22, 2025
3b1d4b5
remove tsconfig duplicate entries
lzeiml Oct 22, 2025
47509f9
fix icons version
lzeiml Oct 22, 2025
4ae0f78
remove logs
lzeiml Oct 23, 2025
ed35470
remove IIFE
lzeiml Oct 23, 2025
b47cba6
docs(aggrid): update readme OSS
nuke-ellington Oct 23, 2025
ec1e9d0
fix checkbox styles
lzeiml Oct 23, 2025
10225e1
add radiobutton styles
lzeiml Oct 23, 2025
65e09c1
Merge branch 'feat/aggrid-v33-theme' of https://github.com/siemens/ixโ€ฆ
lzeiml Oct 23, 2025
79cc1ff
update snapshots
lzeiml Oct 23, 2025
8f3d08c
fix styles
lzeiml Oct 23, 2025
214989e
update version
lzeiml Oct 27, 2025
ea05087
add preview examples
lzeiml Oct 27, 2025
db8cc03
adapt html example
lzeiml Oct 27, 2025
7a75c89
update theme params
lzeiml Oct 27, 2025
34db0df
snapshots
lzeiml Oct 27, 2025
3b9258c
sonarqube fix
lzeiml Oct 27, 2025
fc28def
rename ixTheme function
lzeiml Oct 28, 2025
d203530
fix input styling
lzeiml Oct 28, 2025
c4ed117
update tests, add v34 test
lzeiml Oct 28, 2025
9fbc9fb
simplify example code
lzeiml Oct 28, 2025
7e3447c
fix sonarqube issues
lzeiml Oct 29, 2025
2ef4c72
fix
lzeiml Oct 29, 2025
e91d1b2
revert wrong color
lzeiml Oct 29, 2025
3c06a73
regex fix
lzeiml Oct 29, 2025
194299d
revert to older buildTarget
lzeiml Oct 29, 2025
e46ce20
Merge branch 'main' into feat/aggrid-v33-theme
lzeiml Nov 4, 2025
7d9b231
fixes
lzeiml Nov 4, 2025
8923f74
Update packages/aggrid/tests/basic/setup-basic.ts
lzeiml Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/tiny-ducks-behave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@siemens/ix-aggrid": major
---

Require **AG Grid** V33 or higher and support new theming API.

Fixes: #1784
44 changes: 43 additions & 1 deletion BREAKING_CHANGES/v4.md
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,48 @@ Renamed property `standaloneAppearance` to `embedded` and changed default value

- Removed unused `offsetBottom` property. No migration required - this property had no effect and can be safely removed from your code.

### ix-aggrid

The AG Grid version has been updated and now requires v33 or v34. We are also providing a new brand-aligned iX theme through the new AG Grid theming API.

Remove the `ix-aggrid.css` import:

```scss
// โŒ Remove all occurrences of this line
@import '@siemens/ix-aggrid/dist/ix-aggrid/ix-aggrid.css';
```

The `ag-theme-alpine-dark` and `ag-theme-ix` classes donโ€™t have to be applied anymore:

```html
<!-- โŒ Remove these classes -->
<div class="ag-theme-alpine-dark ag-theme-ix"></div>
```

Configure the theme using the new theming API:

```javascript
import { getIxTheme, getIxThemeAsync } from '@siemens/ix-aggrid';
import * as agGrid from 'ag-grid-community';

// Get iX theme based on your AG Grid module
const ixTheme = getIxTheme(agGrid);
// Alternative: Use async import
const ixTheme = await getIxThemeAsync(() => import('ag-grid-community'));

// Option 1: Set the theme per grid instance
const gridOptions = {
theme: ixTheme,
// ... other options
};

// Option 2: Set the theme globally for all grids
// Note: Must be called before initializing any grid instance
agGrid.provideGlobalGridOptions({
theme: ixTheme,
});
```

## Theme

### Theme switcher
Expand Down Expand Up @@ -488,4 +530,4 @@ themeSwitcher.setVariant('light');
### ix-flip-tile

- Rename property `state` to `variant`
- Rename `FlipTileState` to `FlipTileVariant`
- Rename `FlipTileState` to `FlipTileVariant`
15 changes: 0 additions & 15 deletions packages/aggrid/.editorconfig

This file was deleted.

13 changes: 0 additions & 13 deletions packages/aggrid/.prettierrc.json

This file was deleted.

40 changes: 20 additions & 20 deletions packages/aggrid/READMEOSS.html

Large diffs are not rendered by default.

52 changes: 0 additions & 52 deletions packages/aggrid/gulpfile.ts

This file was deleted.

42 changes: 25 additions & 17 deletions packages/aggrid/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,49 @@
"directory": "packages/aggrid"
},
"description": "AG Grid theme based on ix theme variables",
"version": "3.0.2",
"version": "4.0.0",
"files": [
"LICENSE",
"README.md",
"READMEOSS.html",
"dist/"
],
"module": "dist/index.js",
"types": "dist/types/index.d.ts",
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/types/index.d.ts"
}
},
"scripts": {
"build.watch": "rollup -c -w",
"test.setup": "playwright install chromium --with-deps",
"build": "gulp",
"visual-regression": "playwright test",
"host-root": "http-server -a 127.0.0.1"
"build": "npm run clean && npm run compile",
"clean": "rimraf dist",
"compile": "rollup -c",
"visual-regression": "playwright test --config=playwright.config.ts"
},
"devDependencies": {
"@playwright/test": "^1.54.1",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-typescript": "^8.5.0",
"@siemens/ix": "workspace:*",
"@siemens/ix-icons": "^3.2.0",
"@types/gulp": "^4.0.14",
"@types/gulp-postcss": "^8.0.4",
"@types/gulp-sass": "^5.0.2",
"ag-grid-community": "^32.1.0",
"autoprefixer": "10.4.20",
"cssnano": "^6.1.2",
"gulp": "^4.0.2",
"gulp-postcss": "^9.0.1",
"gulp-sass": "^5.1.0",
"@types/node": "^24.0.3",
"ag-grid-community": "^33.3.2",
"http-server": "^14.1.1",
"rimraf": "^5.0.9",
"sass": "^1.89.2",
"ts-node": "^10.9.2"
"rimraf": "^6.0.1",
"rollup": "^4.43.0",
"rollup-plugin-import-css": "^4.0.1",
"typescript": "^5.8.3",
"vite": "^6.3.5",
"ag-grid-community-34": "npm:ag-grid-community@^34.3.0"
},
"dependencies": {
"@siemens/ix": "^3.2.0"
},
"peerDependencies": {
"ag-grid-community": "^28 || ^29 || ^30 || ^31 || ^32"
"ag-grid-community": "^33"
}
}
63 changes: 17 additions & 46 deletions packages/aggrid/playwright.config.ts
Original file line number Diff line number Diff line change
@@ -1,54 +1,26 @@
/*
* SPDX-FileCopyrightText: 2024 Siemens AG
*
* SPDX-License-Identifier: MIT
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import type { PlaywrightTestConfig } from '@playwright/test';
import { devices } from '@playwright/test';

/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();

let THEMES = ['theme-classic-light', 'theme-classic-dark'];
import { defineConfig, devices } from '@playwright/test';
import { visualTestConfig } from './visual-regression.config';

function buildProjectsWithThemes() {
return THEMES.flatMap(theme => {
return visualTestConfig.flatMap((theme) => {
return [
{
name: `chromium - ${theme}`,
name: `chromium - ${theme.name}`,
use: {
...devices['Desktop Chrome'],
},
metadata: {
theme,
theme: theme.theme,
colorSchema: theme.colorSchema,
},
},
];
});
}

/**
* See https://playwright.dev/docs/test-configuration.
*/
/** @type {import('@playwright/test').PlaywrightTestConfig} */
const config: PlaywrightTestConfig = {
testMatch: '*.e2e.ts',
/* Maximum time one test can run for. */
timeout: 30 * 1000,
expect: {
/**
* Maximum time expect() should wait for the condition to be met.
* For example in `await expect(locator).toHaveText();`
*/
timeout: 5000,
},
export default defineConfig({
testMatch: 'tests/*.e2e.ts',

/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
Expand All @@ -58,23 +30,22 @@ const config: PlaywrightTestConfig = {
/* Opt out of parallel tests on CI. */
workers: 10,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
reporter: process.env.CI ? 'blob' : 'html',
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
/* Base URL to use in actions like `await page.goto('/')`. */
// baseURL: 'http://localhost:3000',
baseURL: 'http://localhost:5173',

/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
},

/* Configure projects for major browsers */
projects: buildProjectsWithThemes(),

/* Run your local dev server before starting the tests */
webServer: {
command: 'pnpm host-root',
port: 8080,
command: 'pnpm vite',
port: 5173,
},
};

export default config;
});
43 changes: 43 additions & 0 deletions packages/aggrid/rollup.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { resolve } from 'node:path';
import nodeResolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import css from 'rollup-plugin-import-css';

const __dirname = resolve();
const external = new Set(['@ag-grid-community/theming']);

/** @type {import('rollup').RollupOptions} */
const config = {
output: [
{
dir: 'dist',
entryFileNames: '[name].js',
chunkFileNames: '[name]-[hash].js',
format: 'esm',
sourcemap: true,
},
],
input: {
index: 'src/index.ts',
},
plugins: [
css(),
typescript({
tsconfig: resolve(__dirname, 'tsconfig.lib.json'),
}),
nodeResolve(),
],
external: (id) => {
return external.has(id);
},

watch: {
include: 'src/**',
chokidar: {
usePolling: true, // Use polling to detect changes
interval: 100, // Polling interval in milliseconds
},
},
};

export default config;
Loading
Loading