ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
76 lines (75 loc) • 5.87 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, ChangeDetectorRef, ContentChild } from "@angular/core";
import { FormControl, NgControl } from "@angular/forms";
import { MatFormFieldControl } from "@angular/material";
/**
* @abstract
*/
export class CustomMatFormFieldNgControl extends NgControl {
}
if (false) {
/** @type {?} */
CustomMatFormFieldNgControl.prototype.form;
}
/**
* @abstract
* @template T
*/
export class CustomMatFormFieldControl extends MatFormFieldControl {
}
if (false) {
/** @type {?} */
CustomMatFormFieldControl.prototype.required;
/** @type {?} */
CustomMatFormFieldControl.prototype.ngControl;
}
export class MatFormFieldRequiredDirective {
/**
* @param {?} _cdRef
*/
constructor(_cdRef) {
this._cdRef = _cdRef;
}
/**
* @return {?}
*/
ngAfterViewInit() {
if (this._control && this._control.ngControl) {
const { ngControl } = this._control;
/** @type {?} */
const validator = ngControl.form // [formControl] standalone
? ngControl.form.validator
: ngControl.control // formControlName in FromGroup
? ngControl.control.validator
: null;
if (validator) {
Promise.resolve().then(() => {
this._control.required = !!(validator(new FormControl()) || {})["required"]; // thx @kwkelly
this._cdRef.markForCheck();
});
}
}
}
}
MatFormFieldRequiredDirective.decorators = [
{ type: Directive, args: [{
selector: "mat-form-field"
},] }
];
/** @nocollapse */
MatFormFieldRequiredDirective.ctorParameters = () => [
{ type: ChangeDetectorRef }
];
MatFormFieldRequiredDirective.propDecorators = {
_control: [{ type: ContentChild, args: [MatFormFieldControl,] }]
};
if (false) {
/** @type {?} */
MatFormFieldRequiredDirective.prototype._control;
/** @type {?} */
MatFormFieldRequiredDirective.prototype._cdRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWZvcm0tZmllbGQtcmVxdWlyZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC9tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUV0RCxNQUFNLE9BQWdCLDJCQUE0QixTQUFRLFNBQVM7Q0FFbEU7Ozs7Ozs7OztBQUVELE1BQU0sT0FBZ0IseUJBQTZCLFNBQVEsbUJBQXNCO0NBR2hGOzs7Ozs7O0FBS0QsTUFBTSxPQUFPLDZCQUE2Qjs7OztJQUd0QyxZQUFvQixNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtLQUM1Qzs7OztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDMUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7O1lBQ2xDLE1BQU0sU0FBUyxHQUNYLFNBQVMsQ0FBQyxJQUFJO2dCQUNWLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVM7Z0JBQzFCLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTztvQkFDbkIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUztvQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNmLElBQUksU0FBUyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFTLENBQUM7b0JBQ3pFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQzlCLENBQUMsQ0FBQzthQUNOO1NBQ0o7S0FDSjs7O1lBekJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzdCOzs7O1lBZmtCLGlCQUFpQjs7O3VCQWlCL0IsWUFBWSxTQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29udGVudENoaWxkLCBBZnRlclZpZXdJbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgTmdDb250cm9sLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWxcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbU1hdEZvcm1GaWVsZE5nQ29udHJvbCBleHRlbmRzIE5nQ29udHJvbCB7XG4gICAgZm9ybT86IEFic3RyYWN0Q29udHJvbDtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbU1hdEZvcm1GaWVsZENvbnRyb2w8VD4gZXh0ZW5kcyBNYXRGb3JtRmllbGRDb250cm9sPFQ+IHtcbiAgICByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBuZ0NvbnRyb2w6IEN1c3RvbU1hdEZvcm1GaWVsZE5nQ29udHJvbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwibWF0LWZvcm0tZmllbGRcIlxufSlcbmV4cG9ydCBjbGFzcyBNYXRGb3JtRmllbGRSZXF1aXJlZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBDb250ZW50Q2hpbGQoTWF0Rm9ybUZpZWxkQ29udHJvbCkgX2NvbnRyb2w6IEN1c3RvbU1hdEZvcm1GaWVsZENvbnRyb2w8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRyb2wgJiYgdGhpcy5fY29udHJvbC5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnN0IHtuZ0NvbnRyb2x9ID0gdGhpcy5fY29udHJvbDtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvciA9XG4gICAgICAgICAgICAgICAgbmdDb250cm9sLmZvcm0gLy8gW2Zvcm1Db250cm9sXSBzdGFuZGFsb25lXG4gICAgICAgICAgICAgICAgICAgID8gbmdDb250cm9sLmZvcm0udmFsaWRhdG9yXG4gICAgICAgICAgICAgICAgICAgIDogbmdDb250cm9sLmNvbnRyb2wgLy8gZm9ybUNvbnRyb2xOYW1lIGluIEZyb21Hcm91cFxuICAgICAgICAgICAgICAgICAgICA/IG5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvclxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRyb2wucmVxdWlyZWQgPSAhISh2YWxpZGF0b3IobmV3IEZvcm1Db250cm9sKCkpIHx8IHt9KS5yZXF1aXJlZDsgLy8gdGh4IEBrd2tlbGx5XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=