svogv
Version:
A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.
48 lines • 5.3 kB
JavaScript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { TreeNodeModel } from './models';
/**
* The treeview can held any tree of nodes, which can be styles, linked, and bound to events.
* Clicking on the items fires various events.
*
* The component creates a treeview that can handle {@link TreeNodeModel objects that create text, checkboxes, or}highlights.
* A node can have an icon. The icons are based on FontAwesome's css classes.
*
* Example of usage:
* <example-url>/#/widget/tree</example-url>
*/
export class TreeViewComponent {
constructor() {
this.nodeClick = new EventEmitter();
this.checkChanged = new EventEmitter();
this.selectedChanged = new EventEmitter();
this.collapseChanged = new EventEmitter();
}
onNodeClick(node) {
this.nodeClick.emit(node);
}
onCheckChanged(node) {
this.checkChanged.emit(node);
}
onSelectedChanged(node) {
this.selectedChanged.emit(node);
}
onCollapseChanged(node) {
this.collapseChanged.emit(node);
}
}
TreeViewComponent.decorators = [
{ type: Component, args: [{
selector: 'ac-tree',
template: "<ul class=\"treeview\">\n <ac-treenode\n [node]=\"nodes\"\n (nodeClick)=\"onNodeClick($event)\"\n (checkChanged)=\"onCheckChanged($event)\"\n (selectedChanged)=\"onSelectedChanged($event)\"\n (collapseChanged)=\"onCollapseChanged($event)\"\n ></ac-treenode>\n</ul>\n",
styles: ['.treeview { list-style: none; margin-left: -25px; }']
},] }
];
TreeViewComponent.ctorParameters = () => [];
TreeViewComponent.propDecorators = {
nodes: [{ type: Input }],
nodeClick: [{ type: Output }],
checkChanged: [{ type: Output }],
selectedChanged: [{ type: Output }],
collapseChanged: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3N2b2d2L3NyYy8iLCJzb3VyY2VzIjpbImxpYi93aWRnZXRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekM7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQU81QjtRQUxVLGNBQVMsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDM0UsaUJBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDOUUsb0JBQWUsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDakYsb0JBQWUsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFJM0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFtQjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQW1CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFtQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBbUI7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7O1lBOUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsU0FBUztnQkFDbkIsdVNBQXdDO3lCQUMvQixxREFBcUQ7YUFDL0Q7Ozs7b0JBRUUsS0FBSzt3QkFDTCxNQUFNOzJCQUNOLE1BQU07OEJBQ04sTUFBTTs4QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyZWVOb2RlTW9kZWwgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogVGhlIHRyZWV2aWV3IGNhbiBoZWxkIGFueSB0cmVlIG9mIG5vZGVzLCB3aGljaCBjYW4gYmUgc3R5bGVzLCBsaW5rZWQsIGFuZCBib3VuZCB0byBldmVudHMuXG4gKiBDbGlja2luZyBvbiB0aGUgaXRlbXMgZmlyZXMgdmFyaW91cyBldmVudHMuXG4gKlxuICogVGhlIGNvbXBvbmVudCBjcmVhdGVzIGEgdHJlZXZpZXcgdGhhdCBjYW4gaGFuZGxlIHtAbGluayBUcmVlTm9kZU1vZGVsIG9iamVjdHMgdGhhdCBjcmVhdGUgdGV4dCwgY2hlY2tib3hlcywgb3J9aGlnaGxpZ2h0cy5cbiAqIEEgbm9kZSBjYW4gaGF2ZSBhbiBpY29uLiBUaGUgaWNvbnMgYXJlIGJhc2VkIG9uIEZvbnRBd2Vzb21lJ3MgY3NzIGNsYXNzZXMuXG4gKlxuICogRXhhbXBsZSBvZiB1c2FnZTpcbiAqIDxleGFtcGxlLXVybD4vIy93aWRnZXQvdHJlZTwvZXhhbXBsZS11cmw+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFsnLnRyZWV2aWV3IHsgbGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luLWxlZnQ6IC0yNXB4OyB9J11cbn0pIC8vXG5leHBvcnQgY2xhc3MgVHJlZVZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBub2RlczogVHJlZU5vZGVNb2RlbDtcbiAgQE91dHB1dCgpIG5vZGVDbGljazogRXZlbnRFbWl0dGVyPFRyZWVOb2RlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlTm9kZU1vZGVsPigpO1xuICBAT3V0cHV0KCkgY2hlY2tDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VHJlZU5vZGVNb2RlbD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWVOb2RlTW9kZWw+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUcmVlTm9kZU1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZU5vZGVNb2RlbD4oKTtcbiAgQE91dHB1dCgpIGNvbGxhcHNlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFRyZWVOb2RlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlTm9kZU1vZGVsPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gIH1cblxuICBvbk5vZGVDbGljayhub2RlOiBUcmVlTm9kZU1vZGVsKSB7XG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdChub2RlKTtcbiAgfVxuXG4gIG9uQ2hlY2tDaGFuZ2VkKG5vZGU6IFRyZWVOb2RlTW9kZWwpIHtcbiAgICB0aGlzLmNoZWNrQ2hhbmdlZC5lbWl0KG5vZGUpO1xuICB9XG5cbiAgb25TZWxlY3RlZENoYW5nZWQobm9kZTogVHJlZU5vZGVNb2RlbCkge1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2VkLmVtaXQobm9kZSk7XG4gIH1cblxuICBvbkNvbGxhcHNlQ2hhbmdlZChub2RlOiBUcmVlTm9kZU1vZGVsKSB7XG4gICAgdGhpcy5jb2xsYXBzZUNoYW5nZWQuZW1pdChub2RlKTtcbiAgfVxuXG59XG4iXX0=