UNPKG

mdc-autocomplete-list-item

Version:

MdcAutocomplete in conjunction with MdcAutocompleteList and MdcAutocompleteListItem are a pack of angular components to provide an autocomplete functionality to Angular MDC web.

92 lines (91 loc) 5.78 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, Input, Output, ViewChild, ElementRef } from '@angular/core'; import { Subject } from 'rxjs'; // tslint:disable-next-line:component-class-suffix export class MdcAutocompleteListItem { constructor() { this.itemClicked = new Subject(); this.itemHovered = new Subject(); this._visible = true; } /** * @return {?} */ get visible() { return this._visible; } /** * @param {?} v * @return {?} */ set visible(v) { this._visible = v; } /** * @return {?} */ ngOnInit() { } /** * @return {?} */ scrollIntoView() { this.li.nativeElement.parentElement.scrollIntoView({ behaviour: 'auto', block: 'nearest', inline: 'nearest' }); } /** * @return {?} */ onItemClicked() { this.itemClicked.next(this.value); } /** * @return {?} */ onHover() { this.itemHovered.next(this.value); } } MdcAutocompleteListItem.decorators = [ { type: Component, args: [{ selector: 'mdc-autocomplete-list-item', template: `<li #li *ngIf="visible" [class.focused]="focused" class="mdc-autocomplete-list-item" (click)="onItemClicked()" (mouseenter)="onHover()"> <ng-content></ng-content> </li> `, styles: [`li{overflow:auto;cursor:pointer}li.focused{background-color:#dedede}`] },] }, ]; /** @nocollapse */ MdcAutocompleteListItem.ctorParameters = () => []; MdcAutocompleteListItem.propDecorators = { value: [{ type: Input }], filterString: [{ type: Input }], focused: [{ type: Input }], itemClicked: [{ type: Output }], itemHovered: [{ type: Output }], li: [{ type: ViewChild, args: ['li',] }] }; if (false) { /** @type {?} */ MdcAutocompleteListItem.prototype.value; /** @type {?} */ MdcAutocompleteListItem.prototype.filterString; /** @type {?} */ MdcAutocompleteListItem.prototype.focused; /** @type {?} */ MdcAutocompleteListItem.prototype.itemClicked; /** @type {?} */ MdcAutocompleteListItem.prototype.itemHovered; /** @type {?} */ MdcAutocompleteListItem.prototype.li; /** @type {?} */ MdcAutocompleteListItem.prototype._visible; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS8iLCJzb3VyY2VzIjpbImxpYi9hdXRvY29tcGxldGUtbGlzdC1pdGVtL2F1dG9jb21wbGV0ZS1saXN0LWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CO0FBU0EsTUFBTTtJQW9CSjsyQkFmNkMsSUFBSSxPQUFPLEVBQUU7MkJBQ2IsSUFBSSxPQUFPLEVBQUU7UUFleEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7S0FDdEI7Ozs7UUFWVSxPQUFPO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOzs7Ozs7UUFHWixPQUFPLENBQUMsQ0FBVTtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzs7Ozs7SUFPcEIsUUFBUTtLQUNQOzs7O0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1lBQ2pELFNBQVMsRUFBRSxNQUFNO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ2xCLENBQUMsQ0FBQzs7Ozs7SUFHTCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DOzs7O0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQzs7O1lBbERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxRQUFRLEVBQUU7OztDQUdYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLHNFQUFzRSxDQUFDO2FBQ2pGOzs7OztvQkFJRSxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxNQUFNOzBCQUNOLE1BQU07aUJBRU4sU0FBUyxTQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kYy1hdXRvY29tcGxldGUtbGlzdC1pdGVtJyxcbiAgdGVtcGxhdGU6IGA8bGkgI2xpICpuZ0lmPVwidmlzaWJsZVwiIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBjbGFzcz1cIm1kYy1hdXRvY29tcGxldGUtbGlzdC1pdGVtXCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrZWQoKVwiIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoKVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2xpPlxuYCxcbiAgc3R5bGVzOiBbYGxpe292ZXJmbG93OmF1dG87Y3Vyc29yOnBvaW50ZXJ9bGkuZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNkZWRlZGV9YF1cbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIE1kY0F1dG9jb21wbGV0ZUxpc3RJdGVtIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICBASW5wdXQoKSBmaWx0ZXJTdHJpbmc6IHN0cmluZztcbiAgQElucHV0KCkgZm9jdXNlZDogYm9vbGVhbjtcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtQ2xpY2tlZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtSG92ZXJlZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBAVmlld0NoaWxkKCdsaScpIGxpOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW47XG5cbiAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHNldCB2aXNpYmxlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3Zpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsSW50b1ZpZXcoKSB7XG4gICAgdGhpcy5saS5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmVoYXZpb3VyOiAnYXV0bycsXG4gICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgaW5saW5lOiAnbmVhcmVzdCdcbiAgICB9KTtcbiAgfVxuXG4gIG9uSXRlbUNsaWNrZWQoKSB7XG4gICAgdGhpcy5pdGVtQ2xpY2tlZC5uZXh0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25Ib3ZlcigpIHtcbiAgICB0aGlzLml0ZW1Ib3ZlcmVkLm5leHQodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==