pm-controls
Version:
ProModel Controls
63 lines (55 loc) • 1.8 kB
text/typescript
import {
Component,
ElementRef,
HostBinding,
Input,
OnChanges,
SimpleChanges } from '@angular/core';
import { ElementExtensions } from '../../../objects/extensions/element-extensions';
export class SidebarComponent extends ElementRef {
constructor(private element: ElementRef) {
super(element.nativeElement);
}
ngDoCheck() {
var flexBasis = this.element.nativeElement.style["flex-basis"];
var size = ElementExtensions.parsePx(flexBasis);
if (!size) return;
if (this.IsCollapsed && size > this.MinWidthPx) {
this.IsCollapsed = false;
return;
}
if (!this.IsCollapsed && size < this.MinWidthPx) {
this.IsCollapsed = true;
return;
}
}
Header: string;
RibbonHeader: string;
IsCollapsed: boolean;
FlexBasisPx = 300;
MinWidthPx = 35;
PreviousFlexBasis: any;
OnToggleHeader() {
if (this.IsCollapsed) {
this.element.nativeElement.style["flex-basis"] = this.PreviousFlexBasis;
} else {
this.PreviousFlexBasis = this.element.nativeElement.style["flex-basis"];
this.element.nativeElement.style["flex-basis"] = this.MinWidthPx + "px";
}
this.IsCollapsed = !this.IsCollapsed;
}
}