@fdot/angular-staff
Version:
The angular-staff package wraps service calls to FDOT Staff API and also includes pipes and components based on bootstrap 4. ## Installation The angular staff package use a peer dependency of ng-bootstrap so you will need to also perform an NPM install
143 lines (142 loc) • 12.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { AngularStaffService } from './../angular-staff.service';
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { debounceTime, distinctUntilChanged, tap, switchMap, catchError } from 'rxjs/operators';
import { of } from 'rxjs';
var StaffSelectorComponent = /** @class */ (function () {
function StaffSelectorComponent(staffService) {
var _this = this;
this.staffService = staffService;
this.selected = new EventEmitter();
this.searching = false;
this.searchFailed = false;
this.search = function (text$) {
return text$.pipe(debounceTime(300), distinctUntilChanged(), tap(function () { return _this.searching = true; }), switchMap(function (term) {
return term && term.length > 2 ?
_this.staffService.SearchActiveStaffByName(term).pipe(tap(function () { return _this.searchFailed = false; }), catchError(function () {
_this.searchFailed = true;
return of([]);
}))
: of([]);
}), tap(function () { return _this.searching = false; }));
};
this.formatter = function (result) {
if (result != null) {
return _this.staffService.Format(result, _this.format);
}
return '';
};
}
Object.defineProperty(StaffSelectorComponent.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this._value;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
this._value = value;
this.staffService.GetStaffById(value).subscribe(function (s) {
if (s) {
_this.model = s;
_this.selected.emit(s);
}
});
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
StaffSelectorComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
StaffSelectorComponent.prototype.onBlur = /**
* @return {?}
*/
function () {
if (typeof this.model !== 'object') {
this.model = null;
this.selected.emit(null);
}
};
/**
* @param {?} event
* @return {?}
*/
StaffSelectorComponent.prototype.itemSelected = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (event) {
this.selected.emit(event.item);
}
};
StaffSelectorComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'fdot-staff-selector',
template: "<div class=\"form-group\">\n <input type=\"text\" class=\"form-control\" [class.is-invalid]=\"searchFailed\" [(ngModel)]=\"model\" [ngbTypeahead]=\"search\" placeholder=\"{{placeholder}}\"\n [editable]=\"false\" (blur)=\"onBlur()\" [resultFormatter]=\"formatter\" (selectItem)=\"itemSelected($event)\" [inputFormatter]=\"formatter\"\n />\n <span *ngIf=\"searching\">searching...</span>\n <div class=\"invalid-feedback\" *ngIf=\"searchFailed\">No results found</div>\n</div>",
styles: [""]
},] },
];
/** @nocollapse */
StaffSelectorComponent.ctorParameters = function () { return [
{ type: AngularStaffService, },
]; };
StaffSelectorComponent.propDecorators = {
"selected": [{ type: Output },],
"format": [{ type: Input },],
"placeholder": [{ type: Input },],
"value": [{ type: Input },],
};
return StaffSelectorComponent;
}());
export { StaffSelectorComponent };
function StaffSelectorComponent_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
StaffSelectorComponent.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
StaffSelectorComponent.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
StaffSelectorComponent.propDecorators;
/** @type {?} */
StaffSelectorComponent.prototype.selected;
/** @type {?} */
StaffSelectorComponent.prototype.model;
/** @type {?} */
StaffSelectorComponent.prototype.format;
/** @type {?} */
StaffSelectorComponent.prototype.placeholder;
/** @type {?} */
StaffSelectorComponent.prototype._value;
/** @type {?} */
StaffSelectorComponent.prototype.searching;
/** @type {?} */
StaffSelectorComponent.prototype.searchFailed;
/** @type {?} */
StaffSelectorComponent.prototype.search;
/** @type {?} */
StaffSelectorComponent.prototype.formatter;
/** @type {?} */
StaffSelectorComponent.prototype.staffService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZmYtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZkb3QvYW5ndWxhci1zdGFmZi8iLCJzb3VyY2VzIjpbImxpYi9zdGFmZi1zZWxlY3Rvci9zdGFmZi1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0lBaUJwQyxnQ0FBb0IsWUFBaUM7UUFBckQsaUJBQTBEO1FBQXRDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjt3QkFHZixJQUFJLFlBQVksRUFBZTt5QkF5QnpELEtBQUs7NEJBQ0YsS0FBSztzQkFZWCxVQUFDLEtBQXlCO1lBQ2pDLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FDUixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQXJCLENBQXFCLENBQUMsRUFDaEMsU0FBUyxDQUFDLFVBQUMsSUFBWTtnQkFBSyxPQUFBLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxLQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDbEQsR0FBRyxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBekIsQ0FBeUIsQ0FBQyxFQUNwQyxVQUFVLENBQUM7d0JBQ1QsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7d0JBQ3pCLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ2YsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBUGtCLENBT2xCLENBQ1QsRUFDRCxHQUFHLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUF0QixDQUFzQixDQUFDLENBQ2xDO1FBZEQsQ0FjQzt5QkFRUyxVQUFDLE1BQW1CO1lBQzlCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0RDtZQUNELE1BQU0sQ0FBQyxFQUFFLENBQUM7U0FDWDtLQXJFeUQ7MEJBY3RELHlDQUFLOzs7O1FBVVQ7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjs7Ozs7a0JBWlMsS0FBYTs7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUMsQ0FBYztnQkFDN0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDTixLQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDZixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdkI7YUFDRixDQUFDLENBQUM7Ozs7Ozs7O0lBVUwseUNBQVE7OztJQUFSO0tBQ0M7Ozs7SUFFRCx1Q0FBTTs7O0lBQU47UUFDRSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtLQUNGOzs7OztJQW1CRCw2Q0FBWTs7OztJQUFaLFVBQWEsS0FBa0M7UUFDN0MsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztLQUNGOztnQkE1RUYsU0FBUyxTQUFDOztvQkFFVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsa2VBTUw7b0JBQ0wsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiOzs7O2dCQWpCUSxtQkFBbUI7Ozs2QkFzQnpCLE1BQU07MkJBSU4sS0FBSztnQ0FFTCxLQUFLOzBCQUtMLEtBQUs7O2lDQWxDUjs7U0FtQmEsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhZmZNZW1iZXIgfSBmcm9tICcuLi9tb2RlbHMvc3RhZmZtZW1iZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBBbmd1bGFyU3RhZmZTZXJ2aWNlIH0gZnJvbSAnLi8uLi9hbmd1bGFyLXN0YWZmLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgc3dpdGNoTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JUeXBlYWhlYWRTZWxlY3RJdGVtRXZlbnQgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvdHlwZWFoZWFkL3R5cGVhaGVhZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnZmRvdC1zdGFmZi1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2NsYXNzLmlzLWludmFsaWRdPVwic2VhcmNoRmFpbGVkXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtuZ2JUeXBlYWhlYWRdPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxyXG4gICAgW2VkaXRhYmxlXT1cImZhbHNlXCIgKGJsdXIpPVwib25CbHVyKClcIiBbcmVzdWx0Rm9ybWF0dGVyXT1cImZvcm1hdHRlclwiIChzZWxlY3RJdGVtKT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCIgW2lucHV0Rm9ybWF0dGVyXT1cImZvcm1hdHRlclwiXHJcbiAgLz5cclxuICA8c3BhbiAqbmdJZj1cInNlYXJjaGluZ1wiPnNlYXJjaGluZy4uLjwvc3Bhbj5cclxuICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2VhcmNoRmFpbGVkXCI+Tm8gcmVzdWx0cyBmb3VuZDwvZGl2PlxyXG48L2Rpdj5gLFxyXG4gIHN0eWxlczogW2BgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhZmZTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RhZmZTZXJ2aWNlOiBBbmd1bGFyU3RhZmZTZXJ2aWNlKSB7IH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxTdGFmZk1lbWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0YWZmTWVtYmVyPigpO1xyXG5cclxuICBtb2RlbDogU3RhZmZNZW1iZXI7XHJcbiAgQElucHV0KClcclxuICBmb3JtYXQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YWZmU2VydmljZS5HZXRTdGFmZkJ5SWQodmFsdWUpLnN1YnNjcmliZSgoczogU3RhZmZNZW1iZXIpID0+IHtcclxuICAgICAgaWYgKHMpIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gcztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQocyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hpbmcgPSBmYWxzZTtcclxuICBzZWFyY2hGYWlsZWQgPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMubW9kZWwgIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2ggPSAodGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPik6IE9ic2VydmFibGU8U3RhZmZNZW1iZXJbXT4gPT5cclxuICAgIHRleHQkLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hpbmcgPSB0cnVlKSxcclxuICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IHRlcm0gJiYgdGVybS5sZW5ndGggPiAyID9cclxuICAgICAgICB0aGlzLnN0YWZmU2VydmljZS5TZWFyY2hBY3RpdmVTdGFmZkJ5TmFtZSh0ZXJtKS5waXBlKFxyXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMuc2VhcmNoRmFpbGVkID0gZmFsc2UpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoRmFpbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgICAgICAgIH0pKVxyXG4gICAgICAgIDogb2YoW10pXHJcbiAgICAgICksXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNlYXJjaGluZyA9IGZhbHNlKVxyXG4gICAgKTtcclxuXHJcbiAgaXRlbVNlbGVjdGVkKGV2ZW50OiBOZ2JUeXBlYWhlYWRTZWxlY3RJdGVtRXZlbnQpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZXZlbnQuaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXR0ZXIgPSAocmVzdWx0OiBTdGFmZk1lbWJlcik6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhZmZTZXJ2aWNlLkZvcm1hdChyZXN1bHQsIHRoaXMuZm9ybWF0KTtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbn0iXX0=