Skip to content

Commit 44e5ea1

Browse files
shadowbasbas080
authored andcommitted
Add horizontalResize event to resize observer directive
Use this event instead to reset column widths.
1 parent d755825 commit 44e5ea1

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

src/app/app.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ <h3 class="noMessageSelectedNotification">No Message Selected</h3>
403403

404404
<div
405405
appResizeObserver
406-
(resize)="onTableResize()"
406+
(horizontalResize)="onTableResize()"
407407
id="canvasTableContainerArea"
408408
[ngStyle]="{'bottom.px': canvasTableBtmOffset}">
409409

src/app/app.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export class AppComponent implements OnInit, AfterViewInit, CanvasTableSelectLis
9494
private rowsSubject= new BehaviorSubject(this.rows);
9595
debouncedRows$ = this.rowsSubject.asObservable().pipe(debounceTime(300));
9696

97-
lastCheckedIndex: number = null;
97+
lastCheckedIndex: number = -1;
9898
scrollToIndex: number = 0;
9999
rowSelectionModel = new FilterSelectionModel(
100100
false,
@@ -1521,7 +1521,6 @@ export class AppComponent implements OnInit, AfterViewInit, CanvasTableSelectLis
15211521
// When nothing is selected yet.
15221522
if (from === -1) return this.oneSelect(to, check)
15231523

1524-
15251524
return this.rangeSelectFrom(from, to, check)
15261525
}
15271526

src/app/directives/resize-observer.directive.ts

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,35 @@ import { Directive, ElementRef, EventEmitter, OnDestroy, Output } from '@angular
2424
standalone: true,
2525
})
2626
export class ResizeObserverDirective implements OnDestroy {
27-
@Output() resize = new EventEmitter<ResizeObserverEntry[]>();
27+
@Output() resize = new EventEmitter<ResizeObserverEntry>();
28+
@Output() horizontalResize = new EventEmitter<ResizeObserverEntry>();
29+
@Output() verticalResize = new EventEmitter<ResizeObserverEntry>();
2830

2931
private observer: ResizeObserver;
32+
private lastSize: { width: number; height: number } | null = null;
3033

3134
constructor(private elementRef: ElementRef) {
32-
console.log('yes i am called', this)
33-
this.observer = new ResizeObserver((entries) => this.resize.emit(entries));
35+
this.observer = new ResizeObserver((entries) => {
36+
const entry = entries[0];
37+
38+
if (!entry) return;
39+
40+
const { width, height } = entry.contentRect;
41+
42+
if (this.lastSize) {
43+
if (this.lastSize.width !== width) {
44+
this.horizontalResize.emit(entry);
45+
}
46+
47+
if (this.lastSize.height !== height) {
48+
this.verticalResize.emit(entry);
49+
}
50+
}
51+
52+
this.resize.emit(entry);
53+
this.lastSize = { width, height };
54+
});
55+
3456
this.observer.observe(this.elementRef.nativeElement);
3557
}
3658

0 commit comments

Comments
 (0)