UNPKG

ngx-materialize

Version:

An Angular wrap around Materialize library

164 lines (163 loc) 15.8 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'; var MzSelectContainerComponent = /** @class */ (function () { function MzSelectContainerComponent() { } /** * @return {?} */ MzSelectContainerComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.initControlSubscription(); this.initSelectSubscription(); }; /** * @return {?} */ MzSelectContainerComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.removeControlSubscription(); this.removeSelectSubscription(); }; /** * @return {?} */ MzSelectContainerComponent.prototype.initControlSubscription = /** * @return {?} */ function () { var _this = this; if (this.ngControl) { this.mzSelectDirective.disabled = this.ngControl.control.disabled; this.statusChangesSubscription = this.ngControl.control.statusChanges.subscribe(function (status) { // to handle enabling/disabling formControl var /** @type {?} */ disabled = status === 'DISABLED'; if (disabled !== _this.mzSelectDirective.disabled) { _this.mzSelectDirective.disabled = disabled; _this.mzSelectDirective.handleDisabled(); } }); this.selectValueSubscription = this.ngControl.valueChanges.subscribe(function (value) { // to synchronize input and select when value changes programmatically var /** @type {?} */ isDropdownOpen = _this.mzSelectDirective.inputElement.hasClass('active'); var /** @type {?} */ inputValue = _this.mzSelectDirective.inputElement.val(); var /** @type {?} */ options = _this.mzSelectDirective.selectElement.children('option'); var /** @type {?} */ selectedOptions = options.filter('option:selected').toArray(); var /** @type {?} */ disabledOptions = options.filter(':disabled').toArray(); var /** @type {?} */ selectedOptionText = selectedOptions.length === 0 ? disabledOptions.map(function (option) { return option.textContent; })[0] : selectedOptions.map(function (option) { return option.textContent; }).join(', '); if (inputValue !== selectedOptionText && !isDropdownOpen) { _this.mzSelectDirective.updateMaterialSelect(); } }); } }; /** * @return {?} */ MzSelectContainerComponent.prototype.initSelectSubscription = /** * @return {?} */ function () { var _this = this; if (this.mzSelectDirective) { this.mzSelectDirective.update .subscribe(function () { return _this.registerOnBlur(); }) .next(); } }; /** * @return {?} */ MzSelectContainerComponent.prototype.registerOnBlur = /** * @return {?} */ function () { var _this = this; this.mzSelectDirective.inputElement.on('blur', function () { if (_this.ngControl) { _this.ngControl.control.markAsTouched(); } if (_this.mzValidationComponent) { _this.mzValidationComponent.setValidationState(); } }); }; /** * @return {?} */ MzSelectContainerComponent.prototype.removeControlSubscription = /** * @return {?} */ function () { if (this.mzSelectDirective) { this.mzSelectDirective.update.unsubscribe(); this.mzSelectDirective.inputElement.off(); } }; /** * @return {?} */ MzSelectContainerComponent.prototype.removeSelectSubscription = /** * @return {?} */ function () { if (this.statusChangesSubscription) { this.statusChangesSubscription.unsubscribe(); } if (this.selectValueSubscription) { this.selectValueSubscription.unsubscribe(); } }; MzSelectContainerComponent.decorators = [ { type: Component, args: [{ selector: 'mz-select-container', template: "<div\n class=\"input-field\"\n [class.inline]=\"inline\"\n>\n <ng-content></ng-content>\n</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,] },], }; return MzSelectContainerComponent; }()); export { MzSelectContainerComponent }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbWF0ZXJpYWxpemUvIiwic291cmNlcyI6WyJzcmMvc2VsZWN0L3NlbGVjdC1jb250YWluZXIvc2VsZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0lBc0J0RCxvREFBZTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztLQUMvQjs7OztJQUVELGdEQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0tBQ2pDOzs7O0lBRUQsNERBQXVCOzs7SUFBdkI7UUFBQSxpQkE4QkM7UUE3QkMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFFbEUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBQyxNQUFjOztnQkFFN0YscUJBQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxVQUFVLENBQUM7Z0JBQ3ZDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxL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QUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzlDO1FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUM7S0FDRjs7Z0JBL0ZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsb0dBS0w7b0JBQ0wsTUFBTSxFQUFFLENBQUMsZ0hBQWdILENBQUM7aUJBQzNIOzs7OzJCQUVFLEtBQUs7c0NBRUwsWUFBWSxTQUFDLGlCQUFpQjswQ0FDOUIsWUFBWSxTQUFDLHFCQUFxQjs4QkFDbEMsWUFBWSxTQUFDLFNBQVM7O3FDQXRCekI7O1NBaUJhLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNelZhbGlkYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXpTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuLi9zZWxlY3QuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXotc2VsZWN0LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2XHJcbiAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXHJcbiAgW2NsYXNzLmlubGluZV09XCJpbmxpbmVcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5gLFxyXG4gIHN0eWxlczogW2AuaW5wdXQtZmllbGQ6bm90KC5pbmxpbmUpe2Rpc3BsYXk6YmxvY2t9L2RlZXAvIC5pbnB1dC1maWVsZCAuZHJvcGRvd24tY29udGVudCBbdHlwZT1jaGVja2JveF0rbGFiZWx7dG9wOi0xMXB4fWBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXpTZWxlY3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGlubGluZTogYm9vbGVhbjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChNelNlbGVjdERpcmVjdGl2ZSkgbXpTZWxlY3REaXJlY3RpdmU6IE16U2VsZWN0RGlyZWN0aXZlO1xyXG4gIEBDb250ZW50Q2hpbGQoTXpWYWxpZGF0aW9uQ29tcG9uZW50KSBtelZhbGlkYXRpb25Db21wb25lbnQ6IE16VmFsaWRhdGlvbkNvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkKE5nQ29udHJvbCkgbmdDb250cm9sOiBOZ0NvbnRyb2w7XHJcblxyXG4gIHNlbGVjdFZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXRDb250cm9sU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB0aGlzLmluaXRTZWxlY3RTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5yZW1vdmVDb250cm9sU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZVNlbGVjdFN1YnNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbnRyb2xTdWJzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS5kaXNhYmxlZCA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQ7XHJcblxyXG4gICAgICB0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXM6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIC8vIHRvIGhhbmRsZSBlbmFibGluZy9kaXNhYmxpbmcgZm9ybUNvbnRyb2xcclxuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IHN0YXR1cyA9PT0gJ0RJU0FCTEVEJztcclxuICAgICAgICBpZiAoZGlzYWJsZWQgIT09IHRoaXMubXpTZWxlY3REaXJlY3RpdmUuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUuaGFuZGxlRGlzYWJsZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMubmdDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyB0byBzeW5jaHJvbml6ZSBpbnB1dCBhbmQgc2VsZWN0IHdoZW4gdmFsdWUgY2hhbmdlcyBwcm9ncmFtbWF0aWNhbGx5XHJcbiAgICAgICAgY29uc3QgaXNEcm9wZG93bk9wZW4gPSB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLmlucHV0RWxlbWVudC5oYXNDbGFzcygnYWN0aXZlJyk7XHJcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMubXpTZWxlY3REaXJlY3RpdmUuaW5wdXRFbGVtZW50LnZhbCgpO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLnNlbGVjdEVsZW1lbnQuY2hpbGRyZW4oJ29wdGlvbicpO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKCdvcHRpb246c2VsZWN0ZWQnKS50b0FycmF5KCk7XHJcbiAgICAgICAgY29uc3QgZGlzYWJsZWRPcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoJzpkaXNhYmxlZCcpLnRvQXJyYXkoKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25UZXh0ID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgPyBkaXNhYmxlZE9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24udGV4dENvbnRlbnQpWzBdXHJcbiAgICAgICAgICA6IHNlbGVjdGVkT3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi50ZXh0Q29udGVudCkuam9pbignLCAnKTtcclxuXHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgIT09IHNlbGVjdGVkT3B0aW9uVGV4dCAmJiAhaXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUudXBkYXRlTWF0ZXJpYWxTZWxlY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFNlbGVjdFN1YnNjcmlwdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm16U2VsZWN0RGlyZWN0aXZlKSB7XHJcbiAgICAgIHRoaXMubXpTZWxlY3REaXJlY3RpdmUudXBkYXRlXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZ2lzdGVyT25CbHVyKCkpXHJcbiAgICAgICAgLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25CbHVyKCkge1xyXG4gICAgdGhpcy5telNlbGVjdERpcmVjdGl2ZS5pbnB1dEVsZW1lbnQub24oJ2JsdXInLCAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm16VmFsaWRhdGlvbkNvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMubXpWYWxpZGF0aW9uQ29tcG9uZW50LnNldFZhbGlkYXRpb25TdGF0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbnRyb2xTdWJzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5telNlbGVjdERpcmVjdGl2ZSkge1xyXG4gICAgICB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLnVwZGF0ZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm16U2VsZWN0RGlyZWN0aXZlLmlucHV0RWxlbWVudC5vZmYoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVNlbGVjdFN1YnNjcmlwdGlvbigpIHtcclxuICAgIGlmICh0aGlzLnN0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RWYWx1ZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnNlbGVjdFZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==