'use strict'; import { Component, EventEmitter, ElementRef, Output, AfterContentInit } from '@angular/core'; import { CORE_DIRECTIVES } from '@angular/common'; import DropKick from 'dropkickjs'; @Component({ selector: 'drop-down', template: ` `, directives: [CORE_DIRECTIVES], styleUrls: ['./drop-down.css'] }) export class DropDown implements AfterContentInit { @Output() change = new EventEmitter(); elem: any; inst: any; constructor(elem:ElementRef) { this.elem = elem.nativeElement; } ngAfterContentInit() { this.inst = new DropKick(this.elem.firstElementChild, {autoWidth: true}); } onChange(value) { this.change.next(value); } destroy() { this.inst.dispose(); } }