UNPKG

ferngully-aurelia-tools

Version:

Ferngully Tools for Aurelia

104 lines 5.12 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { computedFrom, transient, autoinject } from "aurelia-framework"; import { ValidationControllerFactory } from "aurelia-validation"; import { JavaScriptService } from "../javascript-service"; var ValidationService = (function () { function ValidationService(javaScriptService, validationControllerFactory) { this.javaScriptService = javaScriptService; this.validationControllerFactory = validationControllerFactory; this.validationController = this.validationControllerFactory.create(); } Object.defineProperty(ValidationService.prototype, "validateTrigger", { get: function () { return this.validationController.validateTrigger; }, set: function (value) { this.validationController.validateTrigger = value; }, enumerable: true, configurable: true }); ValidationService.prototype.addValidationRenderer = function (renderer) { this.validationController.addRenderer(renderer); }; ValidationService.prototype.removeValidationRenderer = function (renderer) { this.validationController.removeRenderer(renderer); }; ValidationService.prototype.validate = function (instances, validationRules) { if (!instances) { return this.validationController.validate() .then(function (result) { return result.results; }); } else if (instances instanceof Array) { var promises = new Array(); var _loop_1 = function (instance) { promises.push(function () { this.javaScriptService.yield(); return this.validationController.validate({ object: instance, rules: validationRules }); }()); }; for (var _i = 0, _a = instances; _i < _a.length; _i++) { var instance = _a[_i]; _loop_1(instance); } return Promise.all(promises).then(function (result) { var errors = [].concat.apply([], result.map(function (r) { return r.results; })); return errors; }); } else { return this.validationController.validate({ object: instances, rules: validationRules }) .then(function (result) { return result.results; }); } }; ValidationService.prototype.isValid = function (instance, validationRules) { return this.validate(instance, validationRules) .then(function (validationMessages) { return !validationMessages || (validationMessages.filter(function (m) { return !m.valid; }).length === 0); }); }; ValidationService.prototype.registerInstances = function (instances, validationRules) { for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) { var instance = instances_1[_i]; this.validationController.addObject(instance, validationRules); } }; ValidationService.prototype.unRegisterInstances = function (instances) { for (var _i = 0, instances_2 = instances; _i < instances_2.length; _i++) { var instance = instances_2[_i]; this.validationController.removeObject(instance); } }; Object.defineProperty(ValidationService.prototype, "validationMessages", { get: function () { return this.validationController.errors; }, enumerable: true, configurable: true }); ValidationService.prototype.validationMessagesForInstance = function (instance) { return this.validationMessages.filter(function (message) { return message.object === instance; }); }; __decorate([ computedFrom("validationController.errors"), __metadata("design:type", Array), __metadata("design:paramtypes", []) ], ValidationService.prototype, "validationMessages", null); ValidationService = __decorate([ transient(), autoinject, __metadata("design:paramtypes", [JavaScriptService, ValidationControllerFactory]) ], ValidationService); return ValidationService; }()); export { ValidationService }; //# sourceMappingURL=validation-service.js.map