Skip to content

Commit a42734e

Browse files
authored
fix(grid): Make sure border does not appear when new theme is loaded runtime. (#17032)
1 parent 5e5eb88 commit a42734e

6 files changed

Lines changed: 66 additions & 16 deletions

File tree

angular.json

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"index": "src/index.html",
2424
"polyfills": [
25-
"zone.js"
25+
"zone.js"
2626
],
2727
"tsConfig": "src/tsconfig.app.json",
2828
"assets": [
@@ -31,7 +31,12 @@
3131
"src/web.config"
3232
],
3333
"styles": [
34-
"src/styles/styles.scss"
34+
"src/styles/styles.scss",
35+
{
36+
"input": "src/styles/grid-cell-merging-alternate-theme.scss",
37+
"bundleName": "grid-cell-merging-alternate-theme",
38+
"inject": false
39+
}
3540
],
3641
"scripts": [],
3742
"extractLicenses": false,
@@ -288,11 +293,19 @@
288293
"projects/igniteui-angular-elements/src/styles.scss"
289294
],
290295
"scripts": [
291-
{ "input": "./node_modules/lit-html/lit-html.js", "inject": false },
292-
{ "input": "./node_modules/lit-html/development/directive.js", "inject": false }
296+
{
297+
"input": "./node_modules/lit-html/lit-html.js",
298+
"inject": false
299+
},
300+
{
301+
"input": "./node_modules/lit-html/development/directive.js",
302+
"inject": false
303+
}
293304
],
294305
"stylePreprocessorOptions": {
295-
"includePaths": ["node_modules"]
306+
"includePaths": [
307+
"node_modules"
308+
]
296309
},
297310
"browser": "projects/igniteui-angular-elements/src/main.ts"
298311
},
@@ -333,8 +346,8 @@
333346
"namedChunks": true
334347
},
335348
"dev-app": {
336-
"browser": "projects/igniteui-angular-elements/src/main.app.ts",
337-
"tsConfig": "projects/igniteui-angular-elements/tsconfig.app.json"
349+
"browser": "projects/igniteui-angular-elements/src/main.app.ts",
350+
"tsConfig": "projects/igniteui-angular-elements/tsconfig.app.json"
338351
}
339352
},
340353
"defaultConfiguration": "production"
@@ -361,7 +374,7 @@
361374
"builder": "@angular/build:karma",
362375
"options": {
363376
"main": "projects/igniteui-angular-elements/src/test.ts",
364-
"polyfills": [
377+
"polyfills": [
365378
"projects/igniteui-angular-elements/src/polyfills.ts"
366379
],
367380
"tsConfig": "projects/igniteui-angular-elements/tsconfig.spec.json",
@@ -375,7 +388,9 @@
375388
"projects/igniteui-angular-elements/src/styles.scss"
376389
],
377390
"stylePreprocessorOptions": {
378-
"includePaths": ["node_modules"]
391+
"includePaths": [
392+
"node_modules"
393+
]
379394
},
380395
"scripts": []
381396
}
@@ -507,7 +522,9 @@
507522
"projects/igniteui-angular-performance/src/styles.scss"
508523
],
509524
"stylePreprocessorOptions": {
510-
"includePaths": ["node_modules"]
525+
"includePaths": [
526+
"node_modules"
527+
]
511528
}
512529
},
513530
"configurations": {

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,7 @@
13751375
}
13761376

13771377
%igx-grid__tr--merged {
1378+
border-bottom: 0;
13781379
border-block-end: 0;
13791380
}
13801381

projects/igniteui-angular/src/lib/grids/row.directive.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -693,10 +693,6 @@ export class IgxRowDirective implements DoCheck, AfterViewInit, OnDestroy {
693693
}
694694
const isPinned = this.pinned && !this.disabled;
695695
const indexInData = this.grid.isRowPinningToTop && !isPinned ? this.index - this.grid.pinnedRecordsCount : this.index;
696-
if ((this.grid as any)._cdrRequests) {
697-
// recalc size if repaint is requested.
698-
this.grid.verticalScrollContainer.recalcUpdateSizes();
699-
}
700696
const size = this.grid.verticalScrollContainer.getSizeAt(indexInData);
701697
return size || this.grid.rowHeight;
702698
}

src/app/grid-cellMerging/grid-cellMerging.component.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<h4 class="sample-title">Grid with cell merge</h4>
22

3+
<button (click)="toggleTheme()">{{ themeLoaded() ? 'Unload Theme CSS' : 'Load Theme CSS' }}</button>
4+
35
<div class="grid__wrapper">
46
<igx-input-group type="search" class="searchInput">
57
<igx-prefix>

src/app/grid-cellMerging/grid-cellMerging.component.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Component, HostBinding, ViewChild } from '@angular/core';
1+
import { Component, OnDestroy, ViewChild, inject, signal } from '@angular/core';
2+
import { DOCUMENT } from '@angular/common';
23
import { FormsModule } from '@angular/forms';
34
import {
45
DefaultTreeGridMergeStrategy,
@@ -56,7 +57,10 @@ import { INVOICE_DATA } from '../shared/invoiceData';
5657
IgxCellTemplateDirective
5758
]
5859
})
59-
export class GridCellMergingComponent {
60+
export class GridCellMergingComponent implements OnDestroy {
61+
private readonly document = inject(DOCUMENT);
62+
public themeLoaded = signal(false);
63+
private readonly THEME_LINK_ID = 'grid-cell-merging-alternate-theme';
6064
public hierarchicalData = HIERARCHICAL_DATA.concat(HIERARCHICAL_DATA).concat(HIERARCHICAL_DATA);
6165
public treeData = HIERARCHICAL_SAMPLE_DATA;
6266
public treeGridMergeStrategy = new ByLevelTreeGridMergeStrategy();
@@ -77,6 +81,25 @@ export class GridCellMergingComponent {
7781
this.data = allData;
7882
}
7983

84+
public ngOnDestroy(): void {
85+
this.document.getElementById(this.THEME_LINK_ID)?.remove();
86+
}
87+
88+
public toggleTheme(): void {
89+
const existing = this.document.getElementById(this.THEME_LINK_ID);
90+
if (existing) {
91+
existing.remove();
92+
this.themeLoaded.set(false);
93+
} else {
94+
const link = this.document.createElement('link');
95+
link.rel = 'stylesheet';
96+
link.href = 'grid-cell-merging-alternate-theme.css';
97+
link.id = this.THEME_LINK_ID;
98+
this.document.head.appendChild(link);
99+
this.themeLoaded.set(true);
100+
}
101+
}
102+
80103
public toggleStrategy() {
81104
if (this.treeGridMergeStrategy instanceof ByLevelTreeGridMergeStrategy) {
82105
this.treeGridMergeStrategy = new DefaultTreeGridMergeStrategy();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@use '../../projects/igniteui-angular/src/lib/core/styles/themes' as *;
2+
3+
@include core();
4+
@include typography(
5+
$font-family: $material-typeface,
6+
$type-scale: $material-type-scale
7+
);
8+
@include theme(
9+
$schema: $dark-material-schema,
10+
$palette: $dark-material-palette,
11+
);

0 commit comments

Comments
 (0)