ngx-mat-cdk
Version:
Extra Components for Angular Material including Filters,Drag Drop File, MatSelect Mobile Version
69 lines • 7.63 kB
JavaScript
import { Directive, EventEmitter, Injector, Input, Output, } from '@angular/core';
import { MatSelectSearchComponent } from 'ngx-mat-select-search';
import { MatSelectBase } from "./mat-select-base";
export class MatSelectSearchDirective extends MatSelectBase {
constructor(injector) {
super(injector);
this.injector = injector;
this.loadingFunc = (loading) => {
if (this.hostInp) {
this.hostInp['searching'] = loading;
}
};
this.valueMember = 'id';
this.displayMember = 'name';
this.initSource = [];
this.filterSourceChange = new EventEmitter();
this.filterSource = [];
this.isStringArray = false;
this.maximumCount = 30;
this.hostInp = injector.get(MatSelectSearchComponent, null);
}
ngAfterViewInit() {
if (this.hostInp) {
if (this.hostInp.matSelect) {
this.hostInp.matSelect.compareWith = (o1, o2) => {
if (typeof (o1) === 'object') {
return o1[this.valueMember] === o2[this.valueMember];
}
else {
return o1 === o2;
}
};
this.changeDetected();
}
super.ngAfterViewInit();
// this.valueChangeSub = this.hostInp.matSelect.valueChange.subscribe(value => {
// this.value = value;
// this.changeDetected();
// });
}
}
ngOnDestroy() {
super.ngOnDestroy();
if (this.valueChangeSub) {
this.valueChangeSub.unsubscribe();
}
}
}
MatSelectSearchDirective.decorators = [
{ type: Directive, args: [{
selector: '[matSelectSearch],[mat-select-search]',
exportAs: 'matSelectSearch'
},] }
];
MatSelectSearchDirective.ctorParameters = () => [
{ type: Injector }
];
MatSelectSearchDirective.propDecorators = {
valueMember: [{ type: Input }],
displayMember: [{ type: Input }],
isLazy: [{ type: Input }],
initSource: [{ type: Input }],
filterSourceChange: [{ type: Output }],
filterSource: [{ type: Input }],
searcher: [{ type: Input }],
isStringArray: [{ type: Input }],
maximumCount: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1zZWFyY2guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL0FsaXJlemEgTW9oYW1tYWRpL3NvdXJjZS9yZXBvcy9NeUxpYnJhcnkvQW5ndWxhci5MaWJyYXJ5L2xpYnMvcHJvamVjdHMvbmd4LW1hdC1jZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9kaXJlY3RpdmVzL21hdC1zZWxlY3Qtc2VhcmNoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFBRSxRQUFRLEVBQ3RCLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBT2hELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBR3pELFlBQ1csUUFBa0I7UUFFM0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRlAsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU83QixnQkFBVyxHQUFHLENBQUMsT0FBTyxFQUFRLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQTtRQUNRLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsTUFBTSxDQUFDO1FBRXZCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNoRCxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUV6QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQWpCekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTlELENBQUM7SUFrQkQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFXLEVBQUU7b0JBQ3ZELElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFFBQVEsRUFBRTt3QkFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7cUJBQ3JEO3lCQUFNO3dCQUNMLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztxQkFDbEI7Z0JBQ0gsQ0FBQyxDQUFDO2dCQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtZQUNELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUV4QixnRkFBZ0Y7WUFDaEYsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQixNQUFNO1NBQ1A7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNuQztJQUNILENBQUM7OztZQXpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVDQUF1QztnQkFDakQsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7O1lBYmUsUUFBUTs7OzBCQThCckIsS0FBSzs0QkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSztpQ0FDTCxNQUFNOzJCQUNOLEtBQUs7dUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRGlyZWN0aXZlLCBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsXHJcbiAgSW5wdXQsIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdFNlbGVjdFNlYXJjaENvbXBvbmVudH0gZnJvbSAnbmd4LW1hdC1zZWxlY3Qtc2VhcmNoJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge01hdFNlbGVjdEJhc2V9IGZyb20gXCIuL21hdC1zZWxlY3QtYmFzZVwiO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW21hdFNlbGVjdFNlYXJjaF0sW21hdC1zZWxlY3Qtc2VhcmNoXScsXHJcbiAgZXhwb3J0QXM6ICdtYXRTZWxlY3RTZWFyY2gnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRTZWxlY3RTZWFyY2hEaXJlY3RpdmUgZXh0ZW5kcyBNYXRTZWxlY3RCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIHZhbHVlQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5ob3N0SW5wID0gaW5qZWN0b3IuZ2V0KE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCwgbnVsbCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZGluZ0Z1bmMgPSAobG9hZGluZyk6IHZvaWQgPT4ge1xyXG4gICAgaWYgKHRoaXMuaG9zdElucCkge1xyXG4gICAgICB0aGlzLmhvc3RJbnBbJ3NlYXJjaGluZyddID0gbG9hZGluZztcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgdmFsdWVNZW1iZXIgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlNZW1iZXIgPSAnbmFtZSc7XHJcbiAgQElucHV0KCkgaXNMYXp5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluaXRTb3VyY2U6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbHRlclNvdXJjZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQElucHV0KCkgZmlsdGVyU291cmNlOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNlYXJjaGVyOiAoc2VhcmNoOiBzdHJpbmcpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIGlzU3RyaW5nQXJyYXkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXhpbXVtQ291bnQgPSAzMDtcclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhvc3RJbnApIHtcclxuICAgICAgaWYgKHRoaXMuaG9zdElucC5tYXRTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLmhvc3RJbnAubWF0U2VsZWN0LmNvbXBhcmVXaXRoID0gKG8xLCBvMik6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAobzEpID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gbzFbdGhpcy52YWx1ZU1lbWJlcl0gPT09IG8yW3RoaXMudmFsdWVNZW1iZXJdXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbzEgPT09IG8yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZVN1YiA9IHRoaXMuaG9zdElucC5tYXRTZWxlY3QudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgLy8gICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIC8vICAgdGhpcy5jaGFuZ2VEZXRlY3RlZCgpO1xyXG4gICAgICAvLyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlU3ViKSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ==