aboutsummaryrefslogtreecommitdiffstats
path: root/src/angular/form-elements/validation/validation-group.component.ts
diff options
context:
space:
mode:
authorIsrael Lavi <israel.lavi@intl.att.com>2018-05-21 17:42:00 +0300
committerIsrael Lavi <il0695@att.com>2018-05-21 17:52:01 +0300
commit1994c98063c27a41797dec01f2ca9fcbe33ceab0 (patch)
treef30beeaf15a8358f6da78fdd74bcbda74bd334f8 /src/angular/form-elements/validation/validation-group.component.ts
parent4749f4631426fcbe29ed98cef8f24cab18b501d0 (diff)
init commit onap ui
Change-Id: I1dace78817dbba752c550c182dfea118b4a38646 Issue-ID: SDC-1350 Signed-off-by: Israel Lavi <il0695@att.com>
Diffstat (limited to 'src/angular/form-elements/validation/validation-group.component.ts')
-rw-r--r--src/angular/form-elements/validation/validation-group.component.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/angular/form-elements/validation/validation-group.component.ts b/src/angular/form-elements/validation/validation-group.component.ts
new file mode 100644
index 0000000..59ecf4c
--- /dev/null
+++ b/src/angular/form-elements/validation/validation-group.component.ts
@@ -0,0 +1,47 @@
+import { Input, Component, ContentChildren, EventEmitter, Output, QueryList, SimpleChanges, HostBinding, AfterContentInit } from "@angular/core";
+import { AbstractControl, FormControl } from "@angular/forms";
+import { Subscribable } from "rxjs/Observable";
+import { AnonymousSubscription } from "rxjs/Subscription";
+import { IValidator } from './validators/validator.interface';
+import { ValidatorComponent } from './validators/base.validator.component';
+import { RegexValidatorComponent } from './validators/regex.validator.component';
+import { RequiredValidatorComponent } from './validators/required.validator.component';
+import { ValidatableComponent } from './validatable.component';
+import { ValidationComponent } from './validation.component';
+import { CustomValidatorComponent } from './validators/custom.validator.component';
+import template from "./validation.component.html";
+
+@Component({
+ selector: 'sdc-validation-group',
+ template
+})
+export class ValidationGroupComponent implements AfterContentInit {
+
+ @Input() public disabled: boolean;
+ @HostBinding('class') classes;
+
+ @ContentChildren(ValidationComponent) public validationsComponents: QueryList<ValidationComponent>;
+
+ private supportedValidator: Array<QueryList<ValidatorComponent>>;
+
+ constructor() {
+ this.disabled = false;
+ this.classes = 'sdc-validation-group';
+ }
+
+ ngAfterContentInit(): void {
+
+ }
+
+ public validate(): boolean {
+ let validationResult = true;
+ // Iterate over all validationComponent inside the group and return boolean result true in case all validations passed.
+ this.validationsComponents.forEach((validationComponent) => {
+ if (validationComponent.validate()) {
+ validationResult = false;
+ }
+ });
+ return validationResult;
+ }
+
+}