2 * Created by ob0695 on 11.04.2018.
4 import {Component, Input} from "@angular/core";
5 import {UiBaseObject} from "../../../../../models/ui-models/ui-base-object";
6 import {IDropDownOption} from "sdc-ui/lib/angular/form-elements/dropdown/dropdown-models";
9 selector: 'add-elements',
10 templateUrl: './add-elements.component.html',
11 styleUrls: ['./add-elements.component.less']
14 export class AddElementsComponent {
16 @Input() elementsToAdd:Array<UiBaseObject>;
17 @Input() elementName: string;
19 private existingElements:Array<UiBaseObject>;
20 private dropdownOptions:Array<IDropDownOption>;
21 private selectedElement:IDropDownOption;
24 this.existingElements = [];
25 this.convertElementToDropdownDisplay();
29 private convertElementToDropdownDisplay = () => {
30 this.dropdownOptions = [];
31 _.forEach(this.elementsToAdd, (elementToAdd:UiBaseObject) =>{
32 this.dropdownOptions.push({label:elementToAdd.name, value: elementToAdd.uniqueId })
36 onElementSelected(selectedElement:IDropDownOption):void {
37 this.selectedElement = selectedElement
42 if(this.selectedElement){
43 this.dropdownOptions = _.reject(this.dropdownOptions, (option: IDropDownOption) => { // remove from dropDown
44 return option.value === this.selectedElement.value;
47 let selected = _.find(this.elementsToAdd, (element:UiBaseObject) => {
48 return this.selectedElement.value === element.uniqueId;
51 this.elementsToAdd =_.without(this.elementsToAdd, selected); // remove from optional elements to add
52 this.existingElements.push(selected); // add to existing element list
53 this.selectedElement = undefined;
55 console.log("no element selected"); //TODO:show error?
59 removeElement(element:UiBaseObject):void {
61 this.existingElements =_.without(this.existingElements, element); // remove from optional elements to add
62 this.dropdownOptions.push({label:element.name, value: element.uniqueId });
63 this.elementsToAdd.push(element);