UNPKG

ngx-materialize

Version:

An Angular wrap around Materialize library

141 lines (140 loc) 14.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Component, ContentChild, Input } from '@angular/core'; import { NgControl } from '@angular/forms'; import { MzValidationComponent } from '../../validation/validation.component'; import { MzSelectDirective } from '../select.directive'; export class MzSelectContainerComponent { /** * @return {?} */ ngAfterViewInit() { this.initControlSubscription(); this.initSelectSubscription(); } /** * @return {?} */ ngOnDestroy() { this.removeControlSubscription(); this.removeSelectSubscription(); } /** * @return {?} */ initControlSubscription() { if (this.ngControl) { this.mzSelectDirective.disabled = this.ngControl.control.disabled; this.statusChangesSubscription = this.ngControl.control.statusChanges.subscribe((status) => { // to handle enabling/disabling formControl const /** @type {?} */ disabled = status === 'DISABLED'; if (disabled !== this.mzSelectDirective.disabled) { this.mzSelectDirective.disabled = disabled; this.mzSelectDirective.handleDisabled(); } }); this.selectValueSubscription = this.ngControl.valueChanges.subscribe((value) => { // to synchronize input and select when value changes programmatically const /** @type {?} */ isDropdownOpen = this.mzSelectDirective.inputElement.hasClass('active'); const /** @type {?} */ inputValue = this.mzSelectDirective.inputElement.val(); const /** @type {?} */ options = this.mzSelectDirective.selectElement.children('option'); const /** @type {?} */ selectedOptions = options.filter('option:selected').toArray(); const /** @type {?} */ disabledOptions = options.filter(':disabled').toArray(); const /** @type {?} */ selectedOptionText = selectedOptions.length === 0 ? disabledOptions.map(option => option.textContent)[0] : selectedOptions.map(option => option.textContent).join(', '); if (inputValue !== selectedOptionText && !isDropdownOpen) { this.mzSelectDirective.updateMaterialSelect(); } }); } } /** * @return {?} */ initSelectSubscription() { if (this.mzSelectDirective) { this.mzSelectDirective.update .subscribe(() => this.registerOnBlur()) .next(); } } /** * @return {?} */ registerOnBlur() { this.mzSelectDirective.inputElement.on('blur', () => { if (this.ngControl) { this.ngControl.control.markAsTouched(); } if (this.mzValidationComponent) { this.mzValidationComponent.setValidationState(); } }); } /** * @return {?} */ removeControlSubscription() { if (this.mzSelectDirective) { this.mzSelectDirective.update.unsubscribe(); this.mzSelectDirective.inputElement.off(); } } /** * @return {?} */ removeSelectSubscription() { if (this.statusChangesSubscription) { this.statusChangesSubscription.unsubscribe(); } if (this.selectValueSubscription) { this.selectValueSubscription.unsubscribe(); } } } MzSelectContainerComponent.decorators = [ { type: Component, args: [{ selector: 'mz-select-container', template: `<div class="input-field" [class.inline]="inline" > <ng-content></ng-content> </div>`, styles: [`.input-field:not(.inline){display:block}/deep/ .input-field .dropdown-content [type=checkbox]+label{top:-11px}`], },] }, ]; /** @nocollapse */ MzSelectContainerComponent.propDecorators = { "inline": [{ type: Input },], "mzSelectDirective": [{ type: ContentChild, args: [MzSelectDirective,] },], "mzValidationComponent": [{ type: ContentChild, args: [MzValidationComponent,] },], "ngControl": [{ type: ContentChild, args: [NgControl,] },], }; function MzSelectContainerComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ MzSelectContainerComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ MzSelectContainerComponent.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ MzSelectContainerComponent.propDecorators; /** @type {?} */ MzSelectContainerComponent.prototype.inline; /** @type {?} */ MzSelectContainerComponent.prototype.mzSelectDirective; /** @type {?} */ MzSelectContainerComponent.prototype.mzValidationComponent; /** @type {?} */ MzSelectContainerComponent.prototype.ngControl; /** @type {?} */ MzSelectContainerComponent.prototype.selectValueSubscription; /** @type {?} */ MzSelectContainerComponent.prototype.statusChangesSubscription; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbWF0ZXJpYWxpemUvIiwic291cmNlcyI6WyJzcmMvc2VsZWN0L3NlbGVjdC1jb250YWluZXIvc2VsZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBWXhELE1BQU07Ozs7SUFVSixlQUFlO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7S0FDL0I7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7S0FDakM7Ozs7SUFFRCx1QkFBdUI7UUFDckIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFFbEUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTs7Z0JBRWpHLHVCQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssVUFBVSxDQUFDO2dCQUN2QyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFD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OUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztLQUNGOzs7WUEvRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7T0FLTDtnQkFDTCxNQUFNLEVBQUUsQ0FBQyxnSEFBZ0gsQ0FBQzthQUMzSDs7Ozt1QkFFRSxLQUFLO2tDQUVMLFlBQVksU0FBQyxpQkFBaUI7c0NBQzlCLFlBQVksU0FBQyxxQkFBcUI7MEJBQ2xDLFlBQVksU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE16VmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNelNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL3NlbGVjdC5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtei1zZWxlY3QtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYDxkaXZcclxuICBjbGFzcz1cImlucHV0LWZpZWxkXCJcclxuICBbY2xhc3MuaW5saW5lXT1cImlubGluZVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBbYC5pbnB1dC1maWVsZDpub3QoLmlubGluZSl7ZGlzcGxheTpibG9ja30vZGVlcC8gLmlucHV0LWZpZWxkIC5kcm9wZG93bi1jb250ZW50IFt0eXBlPWNoZWNrYm94XStsYWJlbHt0b3A6LTExcHh9YF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNelNlbGVjdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgaW5saW5lOiBib29sZWFuO1xyXG5cclxuICBAQ29udGVudENoaWxkKE16U2VsZWN0RGlyZWN0aXZlKSBtelNlbGVjdERpcmVjdGl2ZTogTXpTZWxlY3REaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChNelZhbGlkYXRpb25Db21wb25lbnQpIG16VmFsaWRhdGlvbkNvbXBvbmVudDogTXpWYWxpZGF0aW9uQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoTmdDb250cm9sKSBuZ0NvbnRyb2w6IE5nQ29udHJvbDtcclxuXHJcbiAgc2VsZWN0VmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBzdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdENvbnRyb2xTdWJzY3JpcHRpb24oKTtcclxuICAgIHRoaXMuaW5pdFNlbGVjdFN1YnNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnJlbW92ZUNvbnRyb2xTdWJzY3JpcHRpb24oKTtcclxuICAgIHRoaXMucmVtb3ZlU2VsZWN0U3Vic2NyaXB0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBpbml0Q29udHJvbFN1YnNjcmlwdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLmRpc2FibGVkID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZDtcclxuXHJcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1czogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgLy8gdG8gaGFuZGxlIGVuYWJsaW5nL2Rpc2FibGluZyBmb3JtQ29udHJvbFxyXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gc3RhdHVzID09PSAnRElTQUJMRUQnO1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCAhPT0gdGhpcy5telNlbGVjdERpcmVjdGl2ZS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICAgICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS5oYW5kbGVEaXNhYmxlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdFZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIHRvIHN5bmNocm9uaXplIGlucHV0IGFuZCBzZWxlY3Qgd2hlbiB2YWx1ZSBjaGFuZ2VzIHByb2dyYW1tYXRpY2FsbHlcclxuICAgICAgICBjb25zdCBpc0Ryb3Bkb3duT3BlbiA9IHRoaXMubXpTZWxlY3REaXJlY3RpdmUuaW5wdXRFbGVtZW50Lmhhc0NsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5telNlbGVjdERpcmVjdGl2ZS5pbnB1dEVsZW1lbnQudmFsKCk7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMubXpTZWxlY3REaXJlY3RpdmUuc2VsZWN0RWxlbWVudC5jaGlsZHJlbignb3B0aW9uJyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoJ29wdGlvbjpzZWxlY3RlZCcpLnRvQXJyYXkoKTtcclxuICAgICAgICBjb25zdCBkaXNhYmxlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcignOmRpc2FibGVkJykudG9BcnJheSgpO1xyXG5cclxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvblRleHQgPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICA/IGRpc2FibGVkT3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi50ZXh0Q29udGVudClbMF1cclxuICAgICAgICAgIDogc2VsZWN0ZWRPcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnRleHRDb250ZW50KS5qb2luKCcsICcpO1xyXG5cclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSAhPT0gc2VsZWN0ZWRPcHRpb25UZXh0ICYmICFpc0Ryb3Bkb3duT3Blbikge1xyXG4gICAgICAgICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS51cGRhdGVNYXRlcmlhbFNlbGVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0U2VsZWN0U3Vic2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubXpTZWxlY3REaXJlY3RpdmUpIHtcclxuICAgICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS51cGRhdGVcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVnaXN0ZXJPbkJsdXIoKSlcclxuICAgICAgICAubmV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkJsdXIoKSB7XHJcbiAgICB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLmlucHV0RWxlbWVudC5vbignYmx1cicsICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubXpWYWxpZGF0aW9uQ29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5telZhbGlkYXRpb25Db21wb25lbnQuc2V0VmFsaWRhdGlvblN0YXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29udHJvbFN1YnNjcmlwdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm16U2VsZWN0RGlyZWN0aXZlKSB7XHJcbiAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUudXBkYXRlLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUuaW5wdXRFbGVtZW50Lm9mZigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU2VsZWN0U3Vic2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdFZhbHVlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0VmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19