com.phloxui
Version:
PhloxUI Ng2+ Framework
95 lines (94 loc) • 8.58 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 { AbstractValidator } from '../component/validate/AbstractValidator';
import { ValidationStatus } from '../component/validate/ValidationStatus';
import { PhloxAppInfoService } from '../service/PhloxAppInfoService.service';
import { Option } from '../decorator/Option.decorator';
const /** @type {?} */ NAME = 'custom';
export class CustomValidator extends AbstractValidator {
/**
* @param {?} el
* @param {?} target
* @param {?} phloxAppService
*/
constructor(el, target, phloxAppService) {
super(el, target, NAME, null, phloxAppService);
}
/**
* @return {?}
*/
ngOnInit() {
super.ngOnInit();
}
/**
* @param {?} value
* @return {?}
*/
doValidate(value) {
let /** @type {?} */ source = this.getTargetComponent();
let /** @type {?} */ result = new ValidationResult();
result.setStatus(ValidationStatus.NORMAL);
result.setSource(source);
if (this.validatorFunc === null || typeof this.validatorFunc !== 'function') {
return result;
}
// Call validatorFunc()
let /** @type {?} */ funcResult = this.validatorFunc(value, source);
if (funcResult === null || funcResult === undefined) {
return result;
}
else if (funcResult instanceof ValidationResult) {
result.setStatus(funcResult.getStatus());
result.setMessage(funcResult.getMessage());
}
else if (typeof funcResult === 'number') {
// This should be ValidationStatus.
result.setStatus(funcResult);
}
else if (typeof funcResult === 'string') {
// This should be message.
result.setMessage(funcResult);
}
return result;
}
}
CustomValidator.NAME = NAME;
CustomValidator.decorators = [
{ type: Directive, args: [{
selector: '[phxCustomValidator]'
},] },
];
/** @nocollapse */
CustomValidator.ctorParameters = () => [
{ type: ElementRef, },
{ type: ViewContainerRef, },
{ type: PhloxAppInfoService, },
];
CustomValidator.propDecorators = {
"validatorFunc": [{ type: Input, args: ['phxCustomValidator',] },],
};
tslib_1.__decorate([
Option('validate'),
tslib_1.__metadata("design:type", Function)
], CustomValidator.prototype, "validatorFunc", void 0);
function CustomValidator_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
CustomValidator.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
CustomValidator.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
CustomValidator.propDecorators;
/** @type {?} */
CustomValidator.NAME;
/** @type {?} */
CustomValidator.prototype.validatorFunc;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tVmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZS9DdXN0b21WYWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWdCLEtBQUssRUFBNEIsZ0JBQWdCLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXZELHVCQUFNLElBQUksR0FBRyxRQUFRLENBQUM7QUFLdEIsTUFBTSxzQkFBdUIsU0FBUSxpQkFBc0I7Ozs7OztJQVF6RCxZQUFZLEVBQWMsRUFBRSxNQUF3QixFQUFFLGVBQW9DO1FBQ3hGLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDaEQ7Ozs7SUFFTSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDOzs7Ozs7SUFHWixVQUFVLENBQUMsS0FBVTtRQUMxQixxQkFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdkMscUJBQUksTUFBTSxHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFFdEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDZjs7UUFHRCxxQkFBSSxVQUFVLEdBQVEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ2Y7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxZQUFZLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDNUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQzs7WUFFMUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDOztZQUUxQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQzs7O3VCQXpDYSxJQUFJOztZQUxsQyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjthQUNqQzs7OztZQWhCbUIsVUFBVTtZQUFpRCxnQkFBZ0I7WUFNdEYsbUJBQW1COzs7OEJBZXpCLEtBQUssU0FBQyxvQkFBb0I7OztJQUMxQixNQUFNLENBQUMsVUFBVSxDQUFDO3NDQUNJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIsIE9uSW5pdCwgVmlld0NvbnRhaW5lclJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vY29tcG9uZW50L21vZGVsL1ZhbGlkYXRpb25SZXN1bHQnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4uL2NvbXBvbmVudC92YWxpZGF0ZS9JVmFsaWRhdG9yJztcbmltcG9ydCB7IEFic3RyYWN0VmFsaWRhdG9yIH0gZnJvbSAnLi4vY29tcG9uZW50L3ZhbGlkYXRlL0Fic3RyYWN0VmFsaWRhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRpb25TdGF0dXMgfSBmcm9tICcuLi9jb21wb25lbnQvdmFsaWRhdGUvVmFsaWRhdGlvblN0YXR1cyc7XG5pbXBvcnQgeyBQaGxveEFwcEluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9QaGxveEFwcEluZm9TZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuY29uc3QgTkFNRSA9ICdjdXN0b20nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcGh4Q3VzdG9tVmFsaWRhdG9yXSdcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVmFsaWRhdG9yIGV4dGVuZHMgQWJzdHJhY3RWYWxpZGF0b3I8YW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyBOQU1FOiBzdHJpbmcgPSBOQU1FO1xuXG4gIEBJbnB1dCgncGh4Q3VzdG9tVmFsaWRhdG9yJylcbiAgQE9wdGlvbigndmFsaWRhdGUnKVxuICBwcml2YXRlIHZhbGlkYXRvckZ1bmM6IEZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYsIHBobG94QXBwU2VydmljZTogUGhsb3hBcHBJbmZvU2VydmljZSkge1xuICAgIHN1cGVyKGVsLCB0YXJnZXQsIE5BTUUsIG51bGwsIHBobG94QXBwU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb1ZhbGlkYXRlKHZhbHVlOiBhbnkpOiBWYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBsZXQgc291cmNlID0gdGhpcy5nZXRUYXJnZXRDb21wb25lbnQoKTtcbiAgICBsZXQgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gbmV3IFZhbGlkYXRpb25SZXN1bHQoKTtcblxuICAgIHJlc3VsdC5zZXRTdGF0dXMoVmFsaWRhdGlvblN0YXR1cy5OT1JNQUwpO1xuICAgIHJlc3VsdC5zZXRTb3VyY2Uoc291cmNlKTtcblxuICAgIGlmICh0aGlzLnZhbGlkYXRvckZ1bmMgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMudmFsaWRhdG9yRnVuYyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBDYWxsIHZhbGlkYXRvckZ1bmMoKVxuICAgIGxldCBmdW5jUmVzdWx0OiBhbnkgPSB0aGlzLnZhbGlkYXRvckZ1bmModmFsdWUsIHNvdXJjZSk7XG5cbiAgICBpZiAoZnVuY1Jlc3VsdCA9PT0gbnVsbCB8fCBmdW5jUmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIGlmIChmdW5jUmVzdWx0IGluc3RhbmNlb2YgVmFsaWRhdGlvblJlc3VsdCkge1xuICAgICAgcmVzdWx0LnNldFN0YXR1cyhmdW5jUmVzdWx0LmdldFN0YXR1cygpKTtcbiAgICAgIHJlc3VsdC5zZXRNZXNzYWdlKGZ1bmNSZXN1bHQuZ2V0TWVzc2FnZSgpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBmdW5jUmVzdWx0ID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gVGhpcyBzaG91bGQgYmUgVmFsaWRhdGlvblN0YXR1cy5cbiAgICAgIHJlc3VsdC5zZXRTdGF0dXMoZnVuY1Jlc3VsdCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZnVuY1Jlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIG1lc3NhZ2UuXG4gICAgICByZXN1bHQuc2V0TWVzc2FnZShmdW5jUmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cbiJdfQ==