UNPKG

ngx-dynamic-dashboard

Version:
54 lines 6.51 kB
import { Component, ElementRef, EventEmitter, Input, Output } from '@angular/core'; import { RuntimeService } from '../services/runtime.service'; /** * Created by jayhamilton on 2/26/17. */ export class TypeAheadInputComponent { constructor(myElement, _runtimeService) { this._runtimeService = _runtimeService; this.selectionEvent = new EventEmitter(); this.ArtificialIntelligenceEventEmitter = new EventEmitter(); this.requestCounter = 0; this.maxAttempts = 5; this.query = ''; this.filteredList = []; this.elementRef = myElement; } filter() { if (this.query !== '') { this.filteredList = this.searchList.filter(function (el) { return el.toLowerCase().indexOf(this.query.toLowerCase()) > -1; }.bind(this)); } else { this.filteredList = []; } this.selectionEvent.emit(this.query); this.requestCounter++; } select(item) { this.query = item; this.filteredList = []; this.selectionEvent.emit(item); } } TypeAheadInputComponent.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: 'dashboard-typeahead-input', template: "<div [ngClass]=\"{inverted:typeAheadIsInMenu == true}\" class=\"ui fluid transparent icon input\">\n <input (keyup)=filter() [(ngModel)]=query placeholder={{placeHolderText}} type=\"text\" width=\"100%\">\n <i *ngIf=\"!query\" class=\"large grey search icon\"></i> <i (click)=\"query=''\" *ngIf=\"query\"\n class=\"large grey remove link icon\"></i>\n</div>\n\n<div *ngIf='filteredList.length > 0' class='suggestions'>\n\n <ul style='list-style-type:none; background: white; border-radius: 7px;'>\n <li *ngFor='let item of filteredList' style='padding:5px'>\n <a (click)='select(item)'>{{item}}</a>\n </li>\n </ul>\n</div>\n", styles: [".full-width{width:100%}/deep/ .ui.menu .item>.input input{font-size:1.1em!important}/deep/ .mat-form-field-underline{height:0!important}"] },] } ]; TypeAheadInputComponent.ctorParameters = () => [ { type: ElementRef }, { type: RuntimeService } ]; TypeAheadInputComponent.propDecorators = { searchList: [{ type: Input }], placeHolderText: [{ type: Input }], typeAheadIsInMenu: [{ type: Input }], selectionEvent: [{ type: Output }], ArtificialIntelligenceEventEmitter: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvYmVubGkvd29ya3NwYWNlcy9uZ3gtZHluYW1pYy1kYXNoYm9hcmQtZnJhbWV3b3JrL3Byb2plY3RzL25neC1keW5hbWljLWRhc2hib2FyZC9zcmMvIiwic291cmNlcyI6WyJkYXNoYm9hcmQvdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTNEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQWVoQyxZQUFZLFNBQXFCLEVBQVUsZUFBK0I7UUFBL0Isb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBVmhFLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1Qyx1Q0FBa0MsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxRixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVULFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUlyQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUVoQyxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ25ELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2pCO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7O1lBM0NKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ25CLFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLDZ0QkFBMEI7O2FBRTdCOzs7WUFaa0IsVUFBVTtZQUNyQixjQUFjOzs7eUJBY2pCLEtBQUs7OEJBQ0wsS0FBSztnQ0FDTCxLQUFLOzZCQUNMLE1BQU07aURBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSdW50aW1lU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDcmVhdGVkIGJ5IGpheWhhbWlsdG9uIG9uIDIvMjYvMTcuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gICAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgICBzZWxlY3RvcjogJ2Rhc2hib2FyZC10eXBlYWhlYWQtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92aWV3Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZUFoZWFkSW5wdXRDb21wb25lbnQge1xuXG4gICAgQElucHV0KCkgc2VhcmNoTGlzdDogc3RyaW5nW107XG4gICAgQElucHV0KCkgcGxhY2VIb2xkZXJUZXh0O1xuICAgIEBJbnB1dCgpIHR5cGVBaGVhZElzSW5NZW51OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBBcnRpZmljaWFsSW50ZWxsaWdlbmNlRXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcmVxdWVzdENvdW50ZXIgPSAwO1xuICAgIG1heEF0dGVtcHRzID0gNTtcblxuICAgIHB1YmxpYyBxdWVyeSA9ICcnO1xuICAgIHB1YmxpYyBmaWx0ZXJlZExpc3QgPSBbXTtcbiAgICBwdWJsaWMgZWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKG15RWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IG15RWxlbWVudDtcblxuICAgIH1cblxuICAgIGZpbHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucXVlcnkgIT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IHRoaXMuc2VhcmNoTGlzdC5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLnF1ZXJ5LnRvTG93ZXJDYXNlKCkpID4gLTE7XG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZExpc3QgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5xdWVyeSk7XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0Q291bnRlcisrO1xuICAgIH1cblxuICAgIHNlbGVjdChpdGVtKSB7XG4gICAgICAgIHRoaXMucXVlcnkgPSBpdGVtO1xuICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQoaXRlbSk7XG4gICAgfVxuXG59XG4iXX0=