ngx-form-control
Version:
Form controls for angular 6
183 lines (182 loc) • 10.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Input } from '@angular/core';
/**
* @abstract
*/
var BaseControlComponent = /** @class */ (function () {
function BaseControlComponent() {
this.id = 'ngx-' + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
this.innerCustomErrorMessages = [];
this.name = '';
this.label = '';
this.placeholder = '';
this.title = '';
this.required = false;
this.disabled = false;
this.validMessage = '';
this.requiredErrorMessage = 'This field is required.';
}
Object.defineProperty(BaseControlComponent.prototype, "customErrorMessages", {
set: /**
* @param {?} messages
* @return {?}
*/
function (messages) {
if (!messages) {
this.innerCustomErrorMessages = [];
}
else if ('string' === typeof messages) {
this.innerCustomErrorMessages = [messages];
}
else if (messages[0]) {
this.innerCustomErrorMessages = messages;
}
else {
this.innerCustomErrorMessages = [];
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(BaseControlComponent.prototype, "hasCustomError", {
get: /**
* @return {?}
*/
function () {
return !!(this.innerCustomErrorMessages && this.innerCustomErrorMessages[0]);
},
enumerable: true,
configurable: true
});
Object.defineProperty(BaseControlComponent.prototype, "hasRequiredError", {
get: /**
* @return {?}
*/
function () {
return this.required && this.value !== false && this.value !== 0 && !this.value;
},
enumerable: true,
configurable: true
});
/**
* @param {?} fn
* @return {?}
*/
BaseControlComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
var _this = this;
this._onChangeCallback = function (event) {
if (_this.cleanCustomErrorMessageOnChanged) {
_this.innerCustomErrorMessages = [];
}
return fn(event);
};
};
/**
* @param {?} fn
* @return {?}
*/
BaseControlComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onTouchedCallback = fn;
};
/**
* @return {?}
*/
BaseControlComponent.prototype.triggerChange = /**
* @return {?}
*/
function () {
if (this._onChangeCallback) {
this._onChangeCallback(this.value);
}
};
BaseControlComponent.propDecorators = {
name: [{ type: Input }],
label: [{ type: Input }],
placeholder: [{ type: Input }],
title: [{ type: Input }],
required: [{ type: Input }],
disabled: [{ type: Input }],
validMessage: [{ type: Input }],
requiredErrorMessage: [{ type: Input }],
cleanCustomErrorMessageOnChanged: [{ type: Input }],
customErrorMessages: [{ type: Input }]
};
return BaseControlComponent;
}());
export { BaseControlComponent };
if (false) {
/** @type {?} */
BaseControlComponent.prototype.id;
/** @type {?} */
BaseControlComponent.prototype.innerCustomErrorMessages;
/** @type {?} */
BaseControlComponent.prototype.name;
/** @type {?} */
BaseControlComponent.prototype.label;
/** @type {?} */
BaseControlComponent.prototype.placeholder;
/** @type {?} */
BaseControlComponent.prototype.title;
/** @type {?} */
BaseControlComponent.prototype.required;
/** @type {?} */
BaseControlComponent.prototype.disabled;
/** @type {?} */
BaseControlComponent.prototype.validMessage;
/** @type {?} */
BaseControlComponent.prototype.requiredErrorMessage;
/** @type {?} */
BaseControlComponent.prototype.cleanCustomErrorMessageOnChanged;
/** @type {?} */
BaseControlComponent.prototype._onTouchedCallback;
/** @type {?} */
BaseControlComponent.prototype._onChangeCallback;
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.value = function () { };
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.invalid = function () { };
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.valid = function () { };
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.errorMessages = function () { };
/**
* @abstract
* @param {?} value
* @return {?}
*/
BaseControlComponent.prototype.writeValue = function (value) { };
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.validate = function () { };
/**
* @abstract
* @return {?}
*/
BaseControlComponent.prototype.reset = function () { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mb3JtLWNvbnRyb2wvIiwic291cmNlcyI6WyJ1dGlscy9iYXNlLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7a0JBS3RCLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO3dDQUM5QyxFQUFFO29CQUM1QixFQUFFO3FCQUNELEVBQUU7MkJBQ0ksRUFBRTtxQkFDUixFQUFFO3dCQUNDLEtBQUs7d0JBQ0wsS0FBSzs0QkFDRCxFQUFFO29DQUNNLHlCQUF5Qjs7SUFLekQsc0JBQWEscURBQW1COzs7OztRQUFoQyxVQUFpQyxRQUFnQztZQUMvRCxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQzthQUNwQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM1QztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsUUFBUSxDQUFDO2FBQzFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQzthQUNwQztTQUNGOzs7T0FBQTtJQVVELHNCQUFJLGdEQUFjOzs7O1FBQWxCO1lBQ0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RTs7O09BQUE7SUFFRCxzQkFBSSxrREFBZ0I7Ozs7UUFBcEI7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDakY7OztPQUFBOzs7OztJQUlELCtDQUFnQjs7OztJQUFoQixVQUFpQixFQUFPO1FBQXhCLGlCQVFDO1FBUEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQUEsS0FBSztZQUM1QixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxLQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO2FBQ3BDO1lBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQixDQUFDO0tBQ0g7Ozs7O0lBRUQsZ0RBQWlCOzs7O0lBQWpCLFVBQWtCLEVBQU87UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztLQUM5Qjs7OztJQUVELDRDQUFhOzs7SUFBYjtRQUNFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztLQUNGOzt1QkE1REEsS0FBSzt3QkFDTCxLQUFLOzhCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7K0JBQ0wsS0FBSzt1Q0FDTCxLQUFLO21EQUNMLEtBQUs7c0NBSUwsS0FBSzs7K0JBcEJSOztTQUdzQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcclxuXHJcbiAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xyXG4gIHB1YmxpYyBpZCA9ICduZ3gtJyArIE1hdGguZmxvb3IoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSk7XHJcbiAgaW5uZXJDdXN0b21FcnJvck1lc3NhZ2VzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB2YWxpZE1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSByZXF1aXJlZEVycm9yTWVzc2FnZSA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLic7XHJcbiAgQElucHV0KCkgY2xlYW5DdXN0b21FcnJvck1lc3NhZ2VPbkNoYW5nZWQ7XHJcbiAgcHJvdGVjdGVkIF9vblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZDtcclxuICBwcm90ZWN0ZWQgX29uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQ7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjdXN0b21FcnJvck1lc3NhZ2VzKG1lc3NhZ2VzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICBpZiAoIW1lc3NhZ2VzKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJDdXN0b21FcnJvck1lc3NhZ2VzID0gW107XHJcbiAgICB9IGVsc2UgaWYgKCdzdHJpbmcnID09PSB0eXBlb2YgbWVzc2FnZXMpIHtcclxuICAgICAgdGhpcy5pbm5lckN1c3RvbUVycm9yTWVzc2FnZXMgPSBbbWVzc2FnZXNdO1xyXG4gICAgfSBlbHNlIGlmIChtZXNzYWdlc1swXSkge1xyXG4gICAgICB0aGlzLmlubmVyQ3VzdG9tRXJyb3JNZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckN1c3RvbUVycm9yTWVzc2FnZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldCB2YWx1ZSgpO1xyXG5cclxuICBhYnN0cmFjdCBnZXQgaW52YWxpZCgpOiBib29sZWFuO1xyXG5cclxuICBhYnN0cmFjdCBnZXQgdmFsaWQoKTogYm9vbGVhbjtcclxuXHJcbiAgYWJzdHJhY3QgZ2V0IGVycm9yTWVzc2FnZXMoKTogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgZ2V0IGhhc0N1c3RvbUVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhKHRoaXMuaW5uZXJDdXN0b21FcnJvck1lc3NhZ2VzICYmIHRoaXMuaW5uZXJDdXN0b21FcnJvck1lc3NhZ2VzWzBdKTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNSZXF1aXJlZEVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQgJiYgdGhpcy52YWx1ZSAhPT0gZmFsc2UgJiYgdGhpcy52YWx1ZSAhPT0gMCAmJiAhdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQ7XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGV2ZW50ID0+IHtcclxuICAgICAgaWYgKHRoaXMuY2xlYW5DdXN0b21FcnJvck1lc3NhZ2VPbkNoYW5nZWQpIHtcclxuICAgICAgICB0aGlzLmlubmVyQ3VzdG9tRXJyb3JNZXNzYWdlcyA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZm4oZXZlbnQpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFic3RyYWN0IHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnM7XHJcblxyXG4gIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcclxuICBhYnN0cmFjdCByZXNldCgpOiB2b2lkO1xyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==