2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 import { Component, EventEmitter, Input, Output } from '@angular/core'
22 import { ValidationConfiguration } from "app/models";
23 import { FormControl, Validators } from '@angular/forms';
25 export interface UiElementBaseInterface {
29 export interface IUiElementChangeEvent {
38 export class UiElementBase {
40 protected validation = ValidationConfiguration.validation;
41 protected control: FormControl;
44 @Output() valueChange: EventEmitter<any> = new EventEmitter<any>();
45 @Output('elementChanged') baseEmitter: EventEmitter<IUiElementChangeEvent> = new EventEmitter<IUiElementChangeEvent>();
47 @Input() name: string;
48 @Input() type: string;
49 @Input() pattern: any;
50 @Input() readonly:boolean;
53 //this.control = new FormControl('', [Validators.required]);
54 this.control = new FormControl('', []);
56 this.baseEmitter.subscribe((changeEvent: IUiElementChangeEvent) => {
57 this.valueChange.emit(changeEvent.value);
62 this.baseEmitter.emit({
64 isValid: this.control.valid