ngx-forms-builder
Version:
A small library that adds validation with decorators and build angular forms.
62 lines • 5.18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Validations } from './validations.enum';
/** @type {?} */
export const createValidationDecorator = (/**
* @param {?} validation
* @return {?}
*/
(validation) => {
return (/**
* @return {?}
*/
() => {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
(target, propertyKey) => {
Reflect.defineMetadata(String(validation), true, target, propertyKey);
});
});
});
/** @type {?} */
export const createValidationDecoratorWithValue = (/**
* @template T
* @param {?} validation
* @return {?}
*/
(validation) => {
return (/**
* @param {?=} value
* @return {?}
*/
(value) => {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
(target, propertyKey) => {
Reflect.defineMetadata(String(validation), value, target, propertyKey);
});
});
});
/** @type {?} */
export const Required = createValidationDecorator(Validations.REQUIRED);
/** @type {?} */
export const Email = createValidationDecorator(Validations.EMAIL);
/** @type {?} */
export const Exclude = createValidationDecorator(Validations.EXCLUDE);
/** @type {?} */
export const Min = createValidationDecoratorWithValue(Validations.MIN);
/** @type {?} */
export const Max = createValidationDecoratorWithValue(Validations.MAX);
/** @type {?} */
export const Pattern = createValidationDecoratorWithValue(Validations.PATTERN);
/** @type {?} */
export const CustomValidator = createValidationDecoratorWithValue(Validations.CUSTOMVALIDATOR);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZm9ybXMtYnVpbGRlci8iLCJzb3VyY2VzIjpbImxpYi92YWxpZGF0aW9ucy92YWxpZGF0aW9uLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUtqRCxNQUFNLE9BQU8seUJBQXlCOzs7O0FBQUcsQ0FBQyxVQUF1QixFQUFFLEVBQUU7SUFDbkU7OztJQUFPLEdBQXNCLEVBQUU7UUFDN0I7Ozs7O1FBQU8sQ0FBQyxNQUFjLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1lBQzdDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxFQUFDO0lBQ0osQ0FBQyxFQUFDO0FBQ0osQ0FBQyxDQUFBOztBQUVELE1BQU0sT0FBTyxrQ0FBa0M7Ozs7O0FBQUcsQ0FBSSxVQUF1QixFQUFFLEVBQUU7SUFDL0U7Ozs7SUFBTyxDQUFDLEtBQVMsRUFBcUIsRUFBRTtRQUN0Qzs7Ozs7UUFBTyxDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RSxDQUFDLEVBQUM7SUFDSixDQUFDLEVBQUM7QUFDSixDQUFDLENBQUE7O0FBRUQsTUFBTSxPQUFPLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDOztBQUN2RSxNQUFNLE9BQU8sS0FBSyxHQUFHLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7O0FBQ2pFLE1BQU0sT0FBTyxPQUFPLEdBQUcseUJBQXlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzs7QUFDckUsTUFBTSxPQUFPLEdBQUcsR0FBRyxrQ0FBa0MsQ0FBUyxXQUFXLENBQUMsR0FBRyxDQUFDOztBQUM5RSxNQUFNLE9BQU8sR0FBRyxHQUFHLGtDQUFrQyxDQUFTLFdBQVcsQ0FBQyxHQUFHLENBQUM7O0FBQzlFLE1BQU0sT0FBTyxPQUFPLEdBQUcsa0NBQWtDLENBQWtCLFdBQVcsQ0FBQyxPQUFPLENBQUM7O0FBQy9GLE1BQU0sT0FBTyxlQUFlLEdBQUcsa0NBQWtDLENBQWMsV0FBVyxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25zIH0gZnJvbSAnLi92YWxpZGF0aW9ucy5lbnVtJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5kZWNsYXJlIHR5cGUgUHJvcGVydHlEZWNvcmF0b3IgPSAodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVWYWxpZGF0aW9uRGVjb3JhdG9yID0gKHZhbGlkYXRpb246IFZhbGlkYXRpb25zKSA9PiB7XG4gIHJldHVybiAoKTogUHJvcGVydHlEZWNvcmF0b3IgPT4ge1xuICAgIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoU3RyaW5nKHZhbGlkYXRpb24pLCB0cnVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVZhbGlkYXRpb25EZWNvcmF0b3JXaXRoVmFsdWUgPSA8VD4odmFsaWRhdGlvbjogVmFsaWRhdGlvbnMpID0+IHtcbiAgcmV0dXJuICh2YWx1ZT86IFQpOiBQcm9wZXJ0eURlY29yYXRvciA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xuICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShTdHJpbmcodmFsaWRhdGlvbiksIHZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IFJlcXVpcmVkID0gY3JlYXRlVmFsaWRhdGlvbkRlY29yYXRvcihWYWxpZGF0aW9ucy5SRVFVSVJFRCk7XG5leHBvcnQgY29uc3QgRW1haWwgPSBjcmVhdGVWYWxpZGF0aW9uRGVjb3JhdG9yKFZhbGlkYXRpb25zLkVNQUlMKTtcbmV4cG9ydCBjb25zdCBFeGNsdWRlID0gY3JlYXRlVmFsaWRhdGlvbkRlY29yYXRvcihWYWxpZGF0aW9ucy5FWENMVURFKTtcbmV4cG9ydCBjb25zdCBNaW4gPSBjcmVhdGVWYWxpZGF0aW9uRGVjb3JhdG9yV2l0aFZhbHVlPG51bWJlcj4oVmFsaWRhdGlvbnMuTUlOKTtcbmV4cG9ydCBjb25zdCBNYXggPSBjcmVhdGVWYWxpZGF0aW9uRGVjb3JhdG9yV2l0aFZhbHVlPG51bWJlcj4oVmFsaWRhdGlvbnMuTUFYKTtcbmV4cG9ydCBjb25zdCBQYXR0ZXJuID0gY3JlYXRlVmFsaWRhdGlvbkRlY29yYXRvcldpdGhWYWx1ZTxSZWdFeHAgfCBzdHJpbmc+KFZhbGlkYXRpb25zLlBBVFRFUk4pO1xuZXhwb3J0IGNvbnN0IEN1c3RvbVZhbGlkYXRvciA9IGNyZWF0ZVZhbGlkYXRpb25EZWNvcmF0b3JXaXRoVmFsdWU8VmFsaWRhdG9yRm4+KFZhbGlkYXRpb25zLkNVU1RPTVZBTElEQVRPUik7XG4iXX0=