ngx-dynamic-dashboard
Version:
an dashboard lib for angular 10
54 lines • 6.51 kB
JavaScript
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=