feat: use panel width event instead of ResizeObserver

This commit is contained in:
Antonella Sgarlatta
2021-05-31 12:59:35 -03:00
parent 7ac5856205
commit b7c2fa0b60
9 changed files with 185 additions and 110 deletions

View File

@@ -38,6 +38,7 @@ interface PanelResizerScope {
index: number
minWidth: number
onResizeFinish: () => ResizeFinishCallback
onWidthEvent?: () => void
panelId: string
property: PanelSide
}
@@ -53,6 +54,7 @@ class PanelResizerCtrl implements PanelResizerScope {
index!: number
minWidth!: number
onResizeFinish!: () => ResizeFinishCallback
onWidthEvent?: () => () => void
panelId!: string
property!: PanelSide
@@ -102,6 +104,7 @@ class PanelResizerCtrl implements PanelResizerScope {
$onDestroy() {
(this.onResizeFinish as any) = undefined;
(this.onWidthEvent as any) = undefined;
(this.control as any) = undefined;
window.removeEventListener(WINDOW_EVENT_RESIZE, this.handleResize);
document.removeEventListener(MouseEventType.Move, this.onMouseMove);
@@ -246,6 +249,9 @@ class PanelResizerCtrl implements PanelResizerScope {
this.handleLeftEvent(event);
} else {
this.handleWidthEvent(event);
if (this.onWidthEvent) {
this.onWidthEvent()();
}
}
}
@@ -387,6 +393,7 @@ export class PanelResizer extends WebDirective {
index: '=',
minWidth: '=',
onResizeFinish: '&',
onWidthEvent: '&',
panelId: '=',
property: '='
};