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
JavaScript
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