-
Notifications
You must be signed in to change notification settings - Fork 337
/
Copy pathdropdown-treeview.component.ts
44 lines (39 loc) · 1.66 KB
/
dropdown-treeview.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { Component, EventEmitter, Input, Output, HostListener, ViewChild, TemplateRef } from '@angular/core';
import { TreeviewI18n } from './treeview-i18n';
import { TreeviewItem } from './treeview-item';
import { TreeviewConfig } from './treeview-config';
import { TreeviewComponent } from './treeview.component';
import { DropdownDirective } from './dropdown.directive';
import { TreeviewHeaderTemplateContext } from './treeview-header-template-context';
import { TreeviewItemTemplateContext } from './treeview-item-template-context';
@Component({
selector: 'ngx-dropdown-treeview',
templateUrl: './dropdown-treeview.component.html',
styleUrls: ['./dropdown-treeview.component.scss']
})
export class DropdownTreeviewComponent {
@Input() buttonClass = 'btn-outline-secondary';
@Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;
@Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;
@Input() items: TreeviewItem[];
@Input() config: TreeviewConfig;
@Output() selectedChange = new EventEmitter<any[]>(true);
@Output() filterChange = new EventEmitter<string>();
@ViewChild(TreeviewComponent) treeviewComponent: TreeviewComponent;
@ViewChild(DropdownDirective) dropdownDirective: DropdownDirective;
constructor(
public i18n: TreeviewI18n,
private defaultConfig: TreeviewConfig
) {
this.config = this.defaultConfig;
}
getText(): string {
return this.i18n.getText(this.treeviewComponent.selection);
}
onSelectedChange(values: any[]) {
this.selectedChange.emit(values);
}
onFilterChange(text: string) {
this.filterChange.emit(text);
}
}