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.

148 lines (140 loc) 9.37 kB
import { Injectable, Component, NgModule, Input, Output, ViewChild, defineInjectable } from '@angular/core'; import { Subject } from 'rxjs'; import { CommonModule } from '@angular/common'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class MdcAutocompleteListItemService { constructor() { } } MdcAutocompleteListItemService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] }, ]; /** @nocollapse */ MdcAutocompleteListItemService.ctorParameters = () => []; /** @nocollapse */ MdcAutocompleteListItemService.ngInjectableDef = defineInjectable({ factory: function MdcAutocompleteListItemService_Factory() { return new MdcAutocompleteListItemService(); }, token: MdcAutocompleteListItemService, providedIn: "root" }); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class MdcAutocompleteListItemComponent { constructor() { } /** * @return {?} */ ngOnInit() { } } MdcAutocompleteListItemComponent.decorators = [ { type: Component, args: [{ selector: 'mdc-mdc-autocomplete-list-item', template: ` <p> mdc-autocomplete-list-item works! </p> `, styles: [] },] }, ]; /** @nocollapse */ MdcAutocompleteListItemComponent.ctorParameters = () => []; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ // tslint:disable-next-line:component-class-suffix 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',] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class MdcAutocompleteListItemModule { } MdcAutocompleteListItemModule.decorators = [ { type: NgModule, args: [{ imports: [ CommonModule ], declarations: [MdcAutocompleteListItemComponent, MdcAutocompleteListItem], exports: [MdcAutocompleteListItem] },] }, ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ export { MdcAutocompleteListItemService, MdcAutocompleteListItemModule, MdcAutocompleteListItem, MdcAutocompleteListItemComponent as ɵa }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRjLWF1dG9jb21wbGV0ZS1saXN0LWl0ZW0uanMubWFwIiwic291cmNlcyI6WyJuZzovL21kYy1hdXRvY29tcGxldGUtbGlzdC1pdGVtL2xpYi9tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS5zZXJ2aWNlLnRzIiwibmc6Ly9tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS9saWIvbWRjLWF1dG9jb21wbGV0ZS1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwibmc6Ly9tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS9saWIvYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS9hdXRvY29tcGxldGUtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIm5nOi8vbWRjLWF1dG9jb21wbGV0ZS1saXN0LWl0ZW0vbGliL21kYy1hdXRvY29tcGxldGUtbGlzdC1pdGVtLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1kY0F1dG9jb21wbGV0ZUxpc3RJdGVtU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kYy1tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICBtZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbSB3b3JrcyFcbiAgICA8L3A+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgTWRjQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlOiBgPGxpICNsaSAqbmdJZj1cInZpc2libGVcIiBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCIgY2xhc3M9XCJtZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbVwiIChjbGljayk9XCJvbkl0ZW1DbGlja2VkKClcIiAobW91c2VlbnRlcik9XCJvbkhvdmVyKClcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9saT5cbmAsXG4gIHN0eWxlczogW2BsaXtvdmVyZmxvdzphdXRvO2N1cnNvcjpwb2ludGVyfWxpLmZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZGVkZWRlfWBdXG59KVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBNZGNBdXRvY29tcGxldGVMaXN0SXRlbSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgQElucHV0KCkgZmlsdGVyU3RyaW5nOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvY3VzZWQ6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbUNsaWNrZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbUhvdmVyZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQFZpZXdDaGlsZCgnbGknKSBsaTogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlzaWJsZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgcHVibGljIHNjcm9sbEludG9WaWV3KCkge1xuICAgIHRoaXMubGkubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJlaGF2aW91cjogJ2F1dG8nLFxuICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICAgIGlubGluZTogJ25lYXJlc3QnXG4gICAgfSk7XG4gIH1cblxuICBvbkl0ZW1DbGlja2VkKCkge1xuICAgIHRoaXMuaXRlbUNsaWNrZWQubmV4dCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uSG92ZXIoKSB7XG4gICAgdGhpcy5pdGVtSG92ZXJlZC5uZXh0KHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1kY0F1dG9jb21wbGV0ZUxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZGMtYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWRjQXV0b2NvbXBsZXRlTGlzdEl0ZW0gfSBmcm9tICcuL2F1dG9jb21wbGV0ZS1saXN0LWl0ZW0vYXV0b2NvbXBsZXRlLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW01kY0F1dG9jb21wbGV0ZUxpc3RJdGVtQ29tcG9uZW50LCBNZGNBdXRvY29tcGxldGVMaXN0SXRlbV0sXG4gIGV4cG9ydHM6IFtNZGNBdXRvY29tcGxldGVMaXN0SXRlbV1cbn0pXG5leHBvcnQgY2xhc3MgTWRjQXV0b2NvbXBsZXRlTGlzdEl0ZW1Nb2R1bGUgeyB9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtJQU9FLGlCQUFpQjs7O1lBTGxCLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7OztBQ0pEO0lBYUUsaUJBQWlCOzs7O0lBRWpCLFFBQVE7S0FDUDs7O1lBZEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLFFBQVEsRUFBRTs7OztHQUlUO2dCQUNELE1BQU0sRUFBRSxFQUFFO2FBQ1g7Ozs7Ozs7OztBQ1ZELEFBR0E7QUFTQTtJQW9CRTsyQkFmNkMsSUFBSSxPQUFPLEVBQUU7MkJBQ2IsSUFBSSxPQUFPLEVBQUU7UUFleEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7S0FDdEI7Ozs7UUFWVSxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQzs7Ozs7O1FBR1osT0FBTyxDQUFDLENBQVU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7Ozs7O0lBT3BCLFFBQVE7S0FDUDs7OztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUNqRCxTQUFTLEVBQUUsTUFBTTtZQUNqQixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsU0FBUztTQUNsQixDQUFDLENBQUM7Ozs7O0lBR0wsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQzs7OztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbkM7OztZQWxERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsUUFBUSxFQUFFOzs7Q0FHWDtnQkFDQyxNQUFNLEVBQUUsQ0FBQyxzRUFBc0UsQ0FBQzthQUNqRjs7Ozs7b0JBSUUsS0FBSzsyQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsTUFBTTswQkFDTixNQUFNO2lCQUVOLFNBQVMsU0FBQyxJQUFJOzs7Ozs7O0FDcEJqQjs7O1lBS0MsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRSxDQUFDLGdDQUFnQyxFQUFFLHVCQUF1QixDQUFDO2dCQUN6RSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUNuQzs7Ozs7Ozs7Ozs7Ozs7OyJ9