Merge "adding action attributes sidebard"
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.css
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html
new file mode 100644
index 0000000..9a38186
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html
@@ -0,0 +1,164 @@
+<ng-sidebar [(opened)]="actionAttributesSideBar" [sidebarClass]="'demo-sidebar attributesSideBar '" [mode]="'push'"
+            [position]="'right'" #sidebarRight1>
+    <div class="container-fluid0">
+        <div class="row m-0">
+            <div class="col attributesContainer">
+                <div class="row m-0 attributesContainertTitle">
+                    <div class="col-2 pl-0">
+                        <button (click)="sidebarRight1.close()" class="closeBar" tooltip="Close"
+                                placement="bottom"><i class="icon-close" type="button" aria-hidden="true"></i></button>
+                    </div>
+                    <h6 class="col pl-0">Action Attributes</h6>
+                    <div class="col-3 pl-0">
+                        <div class="btn-group" role="group" aria-label="Basic example">
+                            <button type="button" class="btn view-source" tooltip="View Action Source"
+                                    placement="bottom"><i class="icon-source"></i></button>
+                            <button type="button" class="btn trash-item" tooltip="Delete Action"
+                                    placement="bottom"><i class="icon-delete-sm" type="button"
+                                                          aria-hidden="true"></i></button>
+                        </div>
+                    </div>
+                </div>
+                <div class="scrollWrapper">
+                    <div class="row m-0">
+                        <div class="col">
+                            <div class="form-group">
+                                <label for="exampleInputEmail1">Action Name</label>
+                                <input type="text" class="form-control" placeholder="Action Name"
+                                       value="resource-assignment">
+                            </div>
+                        </div>
+                    </div>
+                    <!--Add Attribute-->
+                    <div class="row m-b add-attribute">
+                        <div class="col">
+                            <h5>Add Attribute</h5>
+                            <div class="row">
+                                <div class="col pr-0 text-center">
+                                    <button type="button" data-toggle="modal" data-target="#exampleModalScrollable"
+                                            class="btn btn-secondary"><i class="icon-custom-attribute" type="button"
+                                                                         aria-hidden="true"></i></button>
+                                    <span>Custom Attribute</span>
+
+
+                                </div>
+                                <div class="col text-center">
+                                    <button type="button" class="btn btn-secondary"><i
+                                            class="icon-function-attribute" type="button"
+                                            aria-hidden="true"></i></button>
+                                    <span>Function Attribute</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!--INPUTS-->
+                    <div class="accordion" id="accordionExample">
+                        <div class="card">
+                            <div class="card-header row" id="headingOne">
+                                <button class="btn btn-link" type="button" data-toggle="collapse"
+                                        data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
+                                    Inputs
+                                </button>
+                            </div>
+                            <div id="collapseOne" class="collapse show" aria-labelledby="headingOne"
+                                 data-parent="#accordionExample">
+                                <div class="card-body action-attributes">
+                                    <div class="row">
+                                        <div class="col">
+                                            <div class="form-group" *ngFor="let input of inputs">
+                                                <label for="exampleFormControlTextarea1">{{input.name}}
+                                                    <i [hidden]="!input.required" class="icon-required-star"
+                                                       type="button"
+                                                       aria-hidden="true"></i>
+                                                    <i [hidden]="input.required" type="button"
+                                                       aria-hidden="true"></i>
+                                                </label>
+                                                <div class="attributeOptions">
+                                                    <a data-toggle="modal" data-target="#templateDeletionModal"
+                                                       class="accordion-delete editAttribute"
+                                                       tooltip="Edit Attribute" placement="bottom"><i
+                                                            class="icon-edit"></i></a><a data-toggle="modal"
+                                                                                         data-target="#templateDeletionModal"
+                                                                                         class="accordion-delete deleteAttribute"
+                                                                                         tooltip="Delete Attribute"
+                                                                                         placement="bottom"><i
+                                                        class="icon-delete-sm"></i></a>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!--OUTPUTS-->
+                    <div class="accordion" id="accordionExample1">
+                        <div class="card">
+                            <div class="card-header row" id="headingOne">
+                                <button class="btn btn-link" type="button" data-toggle="collapse"
+                                        data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
+                                    Outputs
+                                </button>
+                            </div>
+
+                            <div id="collapseTwo" class="collapse show" aria-labelledby="headingOne"
+                                 data-parent="#accordionExample1">
+                                <div class="card-body">
+                                    <div class="row">
+                                        <div class="col">
+                                            <div class="form-group" *ngFor="let output of outputs">
+                                                <label for="exampleFormControlTextarea1">{{output.name}}
+                                                    <i [hidden]="output.required" class="icon-required-star optional-attribute" type="button"
+                                                       aria-hidden="true"></i>
+                                                    <i [hidden]="output.required" class="optional-attribute" type="button"
+                                                       aria-hidden="true"></i>
+                                                </label>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</ng-sidebar>
+
+<!--Action - Add Custom Attribute - Modal-->
+<div class="modal fade" id="exampleModalScrollable" tabindex="-1" role="dialog"
+     aria-labelledby="exampleModalScrollableTitle" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-scrollable" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="exampleModalScrollableTitle">
+                    Add Custom Attributes</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <img src="assets/img/icon-close.svg"/>
+                </button>
+            </div>
+            <div class="modal-body">
+                <ul class="nav nav-tabs" id="myTab" role="tablist">
+                    <li class="nav-item">
+                        <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab"
+                           aria-controls="home" aria-selected="true">Home</a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab"
+                           aria-controls="profile" aria-selected="false">Profile</a>
+                    </li>
+                </ul>
+                <div class="tab-content" id="myTabContent">
+                    <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">...
+                    </div>
+                    <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">...</div>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
+                <button type="button" class="btn btn-primary">Submit Attributes</button>
+            </div>
+        </div>
+    </div>
+</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.spec.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.spec.ts
new file mode 100644
index 0000000..12078eb
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ActionAttributesComponent } from './action-attributes.component';
+
+describe('ActionAttributesComponent', () => {
+  let component: ActionAttributesComponent;
+  let fixture: ComponentFixture<ActionAttributesComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ActionAttributesComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ActionAttributesComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts
new file mode 100644
index 0000000..b5e5fda
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts
@@ -0,0 +1,32 @@
+import {Component, OnInit} from '@angular/core';
+import {InputActionAttribute, OutputActionAttribute} from './models/InputActionAttribute';
+
+@Component({
+    selector: 'app-action-attributes',
+    templateUrl: './action-attributes.component.html',
+    styleUrls: ['./action-attributes.component.css']
+})
+export class ActionAttributesComponent implements OnInit {
+
+    inputs: [InputActionAttribute];
+    outputs: [OutputActionAttribute];
+    actionAttributesSideBar: boolean;
+
+    constructor() {
+    }
+
+    ngOnInit() {
+    }
+
+    _toggleSidebar2() {
+        this.actionAttributesSideBar = !this.actionAttributesSideBar;
+    }
+
+    addInput(input: InputActionAttribute) {
+        this.inputs.push(input);
+    }
+
+    addOutput(output: OutputActionAttribute) {
+        this.outputs.push(output);
+    }
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/models/InputActionAttribute.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/models/InputActionAttribute.ts
new file mode 100644
index 0000000..5d2c111
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/models/InputActionAttribute.ts
@@ -0,0 +1,10 @@
+export class InputActionAttribute {
+    name: string;
+    description: string;
+    type: string;
+    required: boolean;
+}
+
+export class OutputActionAttribute extends InputActionAttribute {
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
index 980a94c..bca5ba9 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.html
@@ -269,175 +269,11 @@
         </div>
         <!--<button (click)="_toggleSidebar2()" style="float:right;">Toggle sidebar right</button> -->
     </div>
-
-    <!--Right Side Menu - Action Attribute-->
     <ng-sidebar [(opened)]="actionAttributesSideBar" [sidebarClass]="'demo-sidebar attributesSideBar '" [mode]="'push'"
-        [position]="'right'" #sidebarRight1>
-        <div class="container-fluid0">
-            <div class="row m-0">
-                <div class="col attributesContainer">
-                    <div class="row m-0 attributesContainertTitle">
-                        <div class="col-2 pl-0">
-                            <button (click)="sidebarRight1.close()" class="closeBar" tooltip="Close"
-                                placement="bottom"><i class="icon-close" type="button" aria-hidden="true"></i></button>
-                        </div>
-                        <h6 class="col pl-0">Action Attributes</h6>
-                        <div class="col-3 pl-0">
-                            <div class="btn-group" role="group" aria-label="Basic example">
-                                <button type="button" class="btn view-source" tooltip="View Action Source"
-                                    placement="bottom"><i class="icon-source"></i></button>
-                                <button type="button" class="btn trash-item" tooltip="Delete Action"
-                                    placement="bottom"><i class="icon-delete-sm" type="button"
-                                        aria-hidden="true"></i></button>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="scrollWrapper">
-                        <div class="row m-0">
-                            <div class="col">
-                                <div class="form-group">
-                                    <label for="exampleInputEmail1">Action Name</label>
-                                    <input type="text" class="form-control" placeholder="Action Name"
-                                        value="resource-assignment">
-                                </div>
-                            </div>
-                        </div>
-                        <!--Add Attribute-->
-                        <div class="row m-b add-attribute">
-                            <div class="col">
-                                <h5>Add Attribute</h5>
-                                <div class="row">
-                                    <div class="col pr-0 text-center">
-                                        <button type="button" data-toggle="modal" data-target="#exampleModalScrollable"
-                                            class="btn btn-secondary"><i class="icon-custom-attribute" type="button"
-                                                aria-hidden="true"></i></button>
-                                        <span>Custom Attribute</span>
+                [position]="'right'" #sidebarRight1>
 
-
-                                    </div>
-                                    <div class="col text-center">
-                                        <button type="button" class="btn btn-secondary"><i
-                                                class="icon-function-attribute" type="button"
-                                                aria-hidden="true"></i></button>
-                                        <span>Function Attribute</span>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <!--INPUTS-->
-                        <div class="accordion" id="accordionExample">
-                            <div class="card">
-                                <div class="card-header row" id="headingOne">
-                                    <button class="btn btn-link" type="button" data-toggle="collapse"
-                                        data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
-                                        Inputs
-                                    </button>
-                                </div>
-                                <div id="collapseOne" class="collapse show" aria-labelledby="headingOne"
-                                    data-parent="#accordionExample">
-                                    <div class="card-body action-attributes">
-                                        <div class="row">
-                                            <div class="col">
-                                                <div class="form-group">
-                                                    <label for="exampleFormControlTextarea1">template-prefix
-                                                        <i class="icon-required-star" type="button"
-                                                            aria-hidden="true"></i></label>
-                                                    <div class="attributeOptions">
-                                                        <a data-toggle="modal" data-target="#templateDeletionModal"
-                                                            class="accordion-delete editAttribute"
-                                                            tooltip="Edit Attribute" placement="bottom"><i
-                                                                class="icon-edit"></i></a><a data-toggle="modal"
-                                                            data-target="#templateDeletionModal"
-                                                            class="accordion-delete deleteAttribute"
-                                                            tooltip="Delete Attribute" placement="bottom"><i
-                                                                class="icon-delete-sm"></i></a>
-                                                    </div>
-                                                </div>
-                                                <div class="form-group">
-                                                    <label for="exampleInputEmail1">resource-assignment-properties <i
-                                                            class="icon-required-star" type="button"
-                                                            aria-hidden="true"></i></label>
-                                                    <div class="attributeOptions">
-                                                        <a data-toggle="modal" data-target="#templateDeletionModal"
-                                                            class="accordion-delete editAttribute"
-                                                            tooltip="Edit Attribute" placement="bottom"><i
-                                                                class="icon-edit"></i></a><a data-toggle="modal"
-                                                            data-target="#templateDeletionModal"
-                                                            class="accordion-delete deleteAttribute"
-                                                            tooltip="Delete Attribute" placement="bottom"><i
-                                                                class="icon-delete-sm"></i></a>
-                                                    </div>
-                                                </div>
-                                                <div class="form-group">
-                                                    <label for="exampleInputEmail1">occurrence <i
-                                                            class="icon-required-star optional-attribute" type="button"
-                                                            aria-hidden="true"></i></label>
-                                                    <div class="attributeOptions">
-                                                        <a data-toggle="modal" data-target="#templateDeletionModal"
-                                                            class="accordion-delete editAttribute"
-                                                            tooltip="Edit Attribute" placement="bottom"><i
-                                                                class="icon-edit"></i></a><a data-toggle="modal"
-                                                            data-target="#templateDeletionModal"
-                                                            class="accordion-delete deleteAttribute"
-                                                            tooltip="Delete Attribute" placement="bottom"><i
-                                                                class="icon-delete-sm"></i></a>
-                                                    </div>
-                                                </div>
-                                                <div class="form-group">
-                                                    <label for="exampleFormControlTextarea1">store-result
-                                                        <i class="icon-required-star optional-attribute" type="button"
-                                                            aria-hidden="true"></i></label>
-                                                    <div class="attributeOptions">
-                                                        <a data-toggle="modal" data-target="#templateDeletionModal"
-                                                            class="accordion-delete editAttribute"
-                                                            tooltip="Edit Attribute" placement="bottom"><i
-                                                                class="icon-edit"></i></a><a data-toggle="modal"
-                                                            data-target="#templateDeletionModal"
-                                                            class="accordion-delete deleteAttribute"
-                                                            tooltip="Delete Attribute" placement="bottom"><i
-                                                                class="icon-delete-sm"></i></a>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                        <!--OUTPUTS-->
-                        <div class="accordion" id="accordionExample1">
-                            <div class="card">
-                                <div class="card-header row" id="headingOne">
-                                    <button class="btn btn-link" type="button" data-toggle="collapse"
-                                        data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">
-                                        Outputs
-                                    </button>
-                                </div>
-
-                                <div id="collapseTwo" class="collapse show" aria-labelledby="headingOne"
-                                    data-parent="#accordionExample1">
-                                    <div class="card-body">
-                                        <div class="row">
-                                            <div class="col">
-                                                <div class="form-group">
-                                                    <label for="exampleFormControlTextarea1">resolved-data
-                                                        <i class="icon-required-star optional-attribute" type="button"
-                                                            aria-hidden="true"></i></label>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!-- Modal -->
-
+   <app-action-attributes></app-action-attributes>
     </ng-sidebar>
-
     <!--Right Side Menu - Function Attribute-->
     <ng-sidebar [(opened)]="functionAttributeSidebar" [sidebarClass]="'demo-sidebar attributesSideBar'" [mode]="'push'"
         [position]="'right'" #sidebarRight2>
@@ -680,4 +516,4 @@
             </div>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
index 828860a..d152e1e 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
@@ -34,6 +34,7 @@
 import {ComponentCanDeactivateGuard} from '../../../common/core/canDactivate/ComponentCanDeactivateGuard';
 import { ImportPackageComponent } from './packages-dashboard/import-package/import-package.component';
 import { FunctionsAttributeComponent } from './designer/functions-attribute/functions-attribute.component';
+import { ActionAttributesComponent } from './designer/action-attributes/action-attributes.component';
 
 @NgModule({
     declarations: [PackagesDashboardComponent,
@@ -58,6 +59,7 @@
         DesignerSourceViewComponent,
         ImportPackageComponent,
         FunctionsAttributeComponent,
+        ActionAttributesComponent,
 
     ],
     imports: [