UNPKG

ngx-mat-cdk

Version:

Extra Components for Angular Material including Filters,Drag Drop File, MatSelect Mobile Version

69 lines 7.63 kB
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==