UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

100 lines (99 loc) 9.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Directive, ElementRef, Input, ViewContainerRef } from '@angular/core'; import { ValidationResult } from '../component/model/ValidationResult'; import { ValidationStatus } from '../component/validate/ValidationStatus'; import { AbstractValidator } from '../component/validate/AbstractValidator'; import { PhloxAppInfoService } from '../service/PhloxAppInfoService.service'; import { I18N } from '../decorator/I18N.decorator'; import { Option } from '../decorator/Option.decorator'; const /** @type {?} */ NAME = 'regex'; export class RegexValidator extends AbstractValidator { /** * @param {?} el * @param {?} target * @param {?} phloxAppService */ constructor(el, target, phloxAppService) { super(el, target, NAME, null, phloxAppService); } /** * @return {?} */ ngOnInit() { super.ngOnInit(); // if string pass if object setTo Options if (typeof this.regex === 'object') { this.setOptions(this.regex); } } /** * @param {?} value * @return {?} */ doValidate(value) { value = value !== null && value !== undefined ? value.toString() : value; let /** @type {?} */ message = ""; let /** @type {?} */ status = ValidationStatus.SUCCESS; let /** @type {?} */ source = this.getTargetComponent(); let /** @type {?} */ result = new ValidationResult(message, status, source); if (this.regex === null || typeof this.regex !== 'string') { status = ValidationStatus.NORMAL; result.setStatus(status); return result; } if (value !== null && typeof value === 'string') { let /** @type {?} */ regTest = new RegExp(this.regex); if (!regTest.test(value)) { message = this.getMessage(); status = ValidationStatus.ERROR; } } else { message = this.getMessage(); status = ValidationStatus.ERROR; } result.setMessage(message); result.setStatus(status); return result; } } RegexValidator.NAME = NAME; RegexValidator.decorators = [ { type: Directive, args: [{ selector: '[phxRegex]' },] }, ]; /** @nocollapse */ RegexValidator.ctorParameters = () => [ { type: ElementRef, }, { type: ViewContainerRef, }, { type: PhloxAppInfoService, }, ]; RegexValidator.propDecorators = { "regex": [{ type: Input, args: ['phxRegex',] },], }; tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", String) ], RegexValidator.prototype, "regex", void 0); function RegexValidator_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ RegexValidator.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ RegexValidator.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ RegexValidator.propDecorators; /** @type {?} */ RegexValidator.NAME; /** @type {?} */ RegexValidator.prototype.regex; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnZXhWYWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlL1JlZ2V4VmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFnQixLQUFLLEVBQTRCLGdCQUFnQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdkQsdUJBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQztBQUtyQixNQUFNLHFCQUFzQixTQUFRLGlCQUF5Qjs7Ozs7O0lBUzNELFlBQVksRUFBYyxFQUFFLE1BQXdCLEVBQUUsZUFBb0M7UUFDeEYsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztLQUNoRDs7OztJQUVNLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7O1FBR2pCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCOzs7Ozs7SUFHSSxVQUFVLENBQUMsS0FBYTtRQUM3QixLQUFLLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RSxxQkFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLHFCQUFJLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDdEMscUJBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZDLHFCQUFJLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUQsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXpCLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDZjtRQUVELEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoRCxxQkFBSSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7YUFDakM7U0FDRjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpCLE1BQU0sQ0FBQyxNQUFNLENBQUM7OztzQkFoRGEsSUFBSTs7WUFMbEMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2FBQ3ZCOzs7O1lBZm1CLFVBQVU7WUFBaUQsZ0JBQWdCO1lBS3RGLG1CQUFtQjs7O3NCQWV6QixLQUFLLFNBQUMsVUFBVTs7O0lBQ2hCLElBQUksRUFBRTtJQUNOLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlciwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vY29tcG9uZW50L21vZGVsL1ZhbGlkYXRpb25SZXN1bHQnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4uL2NvbXBvbmVudC92YWxpZGF0ZS9JVmFsaWRhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRpb25TdGF0dXMgfSBmcm9tICcuLi9jb21wb25lbnQvdmFsaWRhdGUvVmFsaWRhdGlvblN0YXR1cyc7XG5pbXBvcnQgeyBBYnN0cmFjdFZhbGlkYXRvciB9IGZyb20gJy4uL2NvbXBvbmVudC92YWxpZGF0ZS9BYnN0cmFjdFZhbGlkYXRvcic7XG5pbXBvcnQgeyBQaGxveEFwcEluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9QaGxveEFwcEluZm9TZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuY29uc3QgTkFNRSA9ICdyZWdleCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1twaHhSZWdleF0nXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2V4VmFsaWRhdG9yIGV4dGVuZHMgQWJzdHJhY3RWYWxpZGF0b3I8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyBOQU1FOiBzdHJpbmcgPSBOQU1FO1xuXG4gIEBJbnB1dCgncGh4UmVnZXgnKVxuICBASTE4TigpXG4gIEBPcHRpb24oKVxuICBwcml2YXRlIHJlZ2V4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIHRhcmdldDogVmlld0NvbnRhaW5lclJlZiwgcGhsb3hBcHBTZXJ2aWNlOiBQaGxveEFwcEluZm9TZXJ2aWNlKSB7XG4gICAgc3VwZXIoZWwsIHRhcmdldCwgTkFNRSwgbnVsbCwgcGhsb3hBcHBTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgLy8gaWYgc3RyaW5nIHBhc3MgaWYgb2JqZWN0IHNldFRvIE9wdGlvbnNcbiAgICBpZiAodHlwZW9mIHRoaXMucmVnZXggPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLnNldE9wdGlvbnModGhpcy5yZWdleCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRvVmFsaWRhdGUodmFsdWU6IHN0cmluZyk6IFZhbGlkYXRpb25SZXN1bHQge1xuICAgIHZhbHVlID0gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlLnRvU3RyaW5nKCkgOiB2YWx1ZTtcbiAgICBsZXQgbWVzc2FnZSA9IFwiXCI7XG4gICAgbGV0IHN0YXR1cyA9IFZhbGlkYXRpb25TdGF0dXMuU1VDQ0VTUztcbiAgICBsZXQgc291cmNlID0gdGhpcy5nZXRUYXJnZXRDb21wb25lbnQoKTtcbiAgICBsZXQgcmVzdWx0ID0gbmV3IFZhbGlkYXRpb25SZXN1bHQobWVzc2FnZSwgc3RhdHVzLCBzb3VyY2UpO1xuXG4gICAgaWYgKHRoaXMucmVnZXggPT09IG51bGwgfHwgdHlwZW9mIHRoaXMucmVnZXggIT09ICdzdHJpbmcnKSB7XG4gICAgICBzdGF0dXMgPSBWYWxpZGF0aW9uU3RhdHVzLk5PUk1BTDtcbiAgICAgIHJlc3VsdC5zZXRTdGF0dXMoc3RhdHVzKTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IHJlZ1Rlc3QgPSBuZXcgUmVnRXhwKHRoaXMucmVnZXgpO1xuICAgICAgaWYgKCFyZWdUZXN0LnRlc3QodmFsdWUpKSB7XG4gICAgICAgIG1lc3NhZ2UgPSB0aGlzLmdldE1lc3NhZ2UoKTtcbiAgICAgICAgc3RhdHVzID0gVmFsaWRhdGlvblN0YXR1cy5FUlJPUjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZSA9IHRoaXMuZ2V0TWVzc2FnZSgpO1xuICAgICAgc3RhdHVzID0gVmFsaWRhdGlvblN0YXR1cy5FUlJPUjtcbiAgICB9XG5cbiAgICByZXN1bHQuc2V0TWVzc2FnZShtZXNzYWdlKTtcbiAgICByZXN1bHQuc2V0U3RhdHVzKHN0YXR1cyk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cbiJdfQ==