jqwidgets-framework
Version:
jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.
179 lines (165 loc) • 5.93 kB
text/typescript
import { Component, AfterViewInit, HostListener, ViewChild, ElementRef } from '@angular/core';
import { SharedService } from '../../services/shared-service';
import { jqxExpanderComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxexpander';
export class NewsExpandersComponent implements AfterViewInit {
newsContainer: ElementRef;
forumContainer: ElementRef;
expander1: jqxExpanderComponent;
expander2: jqxExpanderComponent;
expander3: jqxExpanderComponent;
expander4: jqxExpanderComponent;
expander5: jqxExpanderComponent;
expander6: jqxExpanderComponent;
expander7: jqxExpanderComponent;
expander8: jqxExpanderComponent;
expander9: jqxExpanderComponent;
expander10: jqxExpanderComponent;
dropdownId: number = 0;
hide1: boolean;
hide2: boolean;
hide3: boolean;
hide4: boolean;
hide5: boolean;
hide6: boolean;
hide7: boolean;
hide8: boolean;
hide9: boolean;
hide10: boolean;
constructor(private sharedService: SharedService) { }
onResize(event) {
this.setHeight();
}
ngAfterViewInit() {
this.setHeight();
}
updateExpanders(id: number): void {
if (this.dropdownId === 0) {
this.expander1.collapse();
this.expander2.collapse();
this.expander3.collapse();
this.expander4.collapse();
this.expander5.collapse();
this.expander6.collapse();
this.expander7.collapse();
this.expander8.collapse();
this.expander9.collapse();
this.expander10.collapse();
}
else if (this.dropdownId === 1) {
this.expander1.collapse();
this.expander2.collapse();
this.expander3.collapse();
this.expander4.collapse();
this.expander5.collapse();
} else {
this.expander6.collapse();
this.expander7.collapse();
this.expander8.collapse();
this.expander9.collapse();
this.expander10.collapse();
}
setTimeout(() => {
this.dropdownId = id;
},15)
setTimeout(() => {
this.setHeight();
}, 20);
}
setHeight() {
let newsHeight = 0;
let forumHeight = 0;
if (this.dropdownId === 0 || this.dropdownId === 1) {
newsHeight = this.newsContainer.nativeElement.offsetHeight;
}
if (this.dropdownId === 0 || this.dropdownId === 2) {
forumHeight = this.forumContainer.nativeElement.offsetHeight;
}
let newsContainerHeight = newsHeight + forumHeight + 197;
if (this.sharedService.mainSplitter.orientation() === 'vertical') {
this.sharedService.mainSplitter.height(newsContainerHeight);
} else {
this.sharedService.mainSplitter.height(newsContainerHeight + 113);
this.sharedService.mainSplitter.panels([{ size: 113 }, { size: newsContainerHeight }]);
}
}
updatePanel(num, expanding) {
switch (num) {
case 1: {
this.hide1 = expanding ? true : false;
setTimeout(() =>{
this.expander1.refresh();
}, 1);
}
break;
case 2: {
this.hide2 = expanding ? true : false;
setTimeout(() => {
this.expander2.refresh();
}, 1);
}
break;
case 3: {
this.hide3 = expanding ? true : false;
setTimeout(() => {
this.expander3.refresh();
}, 1);
}
break;
case 4: {
this.hide4 = expanding ? true : false;
setTimeout(() => {
this.expander4.refresh();
}, 1);
}
break;
case 5: {
this.hide5 = expanding ? true : false;
setTimeout(() => {
this.expander5.refresh();
}, 1);
}
break;
case 6: {
this.hide6 = expanding ? true : false;
setTimeout(() => {
this.expander6.refresh();
}, 1);
}
break;
case 7: {
this.hide7 = expanding ? true : false;
setTimeout(() => {
this.expander7.refresh();
}, 1);
}
break;
case 8: {
this.hide8 = expanding ? true : false;
setTimeout(() => {
this.expander8.refresh();
}, 1);
}
break;
case 9: {
this.hide9 = expanding ? true : false;
setTimeout(() => {
this.expander9.refresh();
}, 1);
}
break;
case 10: {
this.hide10 = expanding ? true : false;
setTimeout(() => {
this.expander10.refresh();
}, 1);
}
}
this.setHeight();
}
}