UNPKG

ferngully-aurelia-tools

Version:

Ferngully Tools for Aurelia

89 lines 4.06 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"; let ValidationService = class ValidationService { constructor(javaScriptService, validationControllerFactory) { this.javaScriptService = javaScriptService; this.validationControllerFactory = validationControllerFactory; this.validationController = this.validationControllerFactory.create(); } get validateTrigger() { return this.validationController.validateTrigger; } set validateTrigger(value) { this.validationController.validateTrigger = value; } addValidationRenderer(renderer) { this.validationController.addRenderer(renderer); } removeValidationRenderer(renderer) { this.validationController.removeRenderer(renderer); } validate(instances, validationRules) { if (!instances) { return this.validationController.validate() .then((result) => { return result.results; }); } else if (instances instanceof Array) { let promises = new Array(); for (let instance of instances) { promises.push(function () { this.javaScriptService.yield(); return this.validationController.validate({ object: instance, rules: validationRules }); }()); } return Promise.all(promises).then((result) => { let errors = [].concat.apply([], result.map((r) => r.results)); return errors; }); } else { return this.validationController.validate({ object: instances, rules: validationRules }) .then((result) => { return result.results; }); } } isValid(instance, validationRules) { return this.validate(instance, validationRules) .then((validationMessages) => { return !validationMessages || (validationMessages.filter(m => !m.valid).length === 0); }); } registerInstances(instances, validationRules) { for (let instance of instances) { this.validationController.addObject(instance, validationRules); } } unRegisterInstances(instances) { for (let instance of instances) { this.validationController.removeObject(instance); } } get validationMessages() { return this.validationController.errors; } validationMessagesForInstance(instance) { return this.validationMessages.filter((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); export { ValidationService }; //# sourceMappingURL=validation-service.js.map