com.phloxui
Version:
PhloxUI Ng2+ Framework
100 lines (99 loc) • 9.1 kB
JavaScript
/**
* @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==