UNPKG

svogv

Version:

A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.

48 lines 5.3 kB
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=