ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
104 lines • 5.12 kB
JavaScript
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