Initial Commit - NG UI

* Roboto and font-awesome fonts are added in package.json
* Replace Nginx alpine varient to stable
* Devops files are added
* Docker file aligned as per community reviews
* Enhancement - NS primitive, Azure inclusion and domain name
* RWD changes

Change-Id: If543efbf127964cbd8f4be4c5a67260c91407fd9
Signed-off-by: kumaran.m <kumaran.m@tataelxsi.co.in>
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
new file mode 100644
index 0000000..d22cbae
--- /dev/null
+++ b/src/assets/i18n/en.json
@@ -0,0 +1,479 @@
+{
+    "OSM": "OSM",
+    "APPVERSION": "App Version",
+    "OSMVERSION": "OSM Version",
+    "OSMSOURCEMANO": "Open Source MANO",
+    "ADMIN": "Admin",
+    "ENTRIES": "Entries",
+    "COMPOSE": "Compose a",
+    "CREATE": "Create",
+    "SELECT": "Select",
+    "CANCEL": "Cancel",
+    "SAVE": "Save",
+    "ACTION": "Action",
+    "COUNT": "Count",
+    "IMAGE": "Image",
+    "IPPROFILEREF": "IP Profile Ref",
+    "ADD": "Add",
+    "EDIT": "Edit",
+    "APPLY": "Apply",
+    "FORCE": "Force",
+    "DOWNLOAD": "Download",
+    "CONTENT": "Content",
+    "DELETE": "Delete",
+    "FORCEDELETE": "Force Delete",
+    "RENAME": "Rename",
+    "INFO": "Info",
+    "NSPACKAGES": "NS Packages",
+    "VNFPACKAGES": "VNF Packages",
+    "INSTANCES": "Instances",
+    "INSTANTIATE": "Instantiate",
+    "NSINSTANCES": "NS Instances",
+    "VNFINSTANCES": "VNF Instances",
+    "PDUINSTANCES": "PDU Instances",
+    "VIMACCOUNTS": "VIM Accounts",
+    "WIMACCOUNTS": "WIM Accounts",
+    "SDNCONTROLLER": "SDN Controller",
+    "NETSLICE": "Netslice",
+    "PROJECT": "Project",
+    "DOMAIN": "Domain",
+    "PACKAGES": "Packages",
+    "MODIFIED": "Modified",
+    "NODATAMSG": "No data available in table",
+    "SHORTNAME": "Short Name",
+    "IDENTIFIER": "Identifier",
+    "DESCRIPTION": "Description",
+    "VENDOR": "Vendor",
+    "VERSION": "Version",
+    "ACTIONS": "Actions",
+    "NAME": "Name",
+    "USAGESTATE": "UsageState",
+    "MODIFICATIONDATE": "Modification Date",
+    "CREATEDDATE": "Creation Date",
+    "OPERATIONALSTATUS": "Operational Status",
+    "OPERATIONALSTATE": "Operational State",
+    "CONFIGSTATUS": "Config Status",
+    "DETAILEDSTATUS": "Detailed Status",
+    "NSDNAME": "Nsd name",
+    "NSTNAME": "Nst name",
+    "TYPE": "Type",
+    "VNFD": "VNFD",
+    "VNF": "VNF",
+    "MEMBERINDEX": "Member Index",
+    "NS": "NS",
+    "CREATEDAT": "Created At",
+    "CREATED": "Created",
+    "ALL": "All",
+    "ID": "Id",
+    "OPERATIONSTATE": "Operation State",
+    "STARTTIME": "Start Time",
+    "STATUSENTEREDTIME": "Status Entered Time",
+    "HISTORYOFOPERATIONS": "History Of Operations",
+    "UPDATE": "Update",
+    "READONLYMODE": "Read only mode",
+    "CURRENTLY": "Currently",
+    "ON": "On",
+    "OFF": "Off",
+    "IN": "in",
+    "FILES": "Files",
+    "NEW": "New",
+    "RECENTLY": "Recently",
+    "TOPOLOGY": "Topology",
+    "PLEASEWAIT": "Please Wait",
+    "LOADING": "Loading",
+    "RESOURCEORCHESTRATOR": "Resource Orchestrator",
+    "VIEW": "View",
+    "DROP": "Drop",
+    "HERE": "Here",
+    "MAPVIEW": "Map View",
+    "LISTVIEW": "List View",
+    "OK": "Ok",
+    "DELETEDSUCCESSFULLY": "{{title}} deleted successfully",
+    "SESSIONEXPIRY": "Session expired, please login again",
+    "DELETECONFIRMPOPUPMESSAGE": "Are you sure want to delete",
+    "DELETELOADERMESSAGE": "Please wait while {{title}} deletion is in progress",
+    "VALUE": "Value",
+    "PERFORMACTION": "Perform Action",
+    "EXECUTE": "Execute",
+    "EXECNSPRIMITIVE": "Exec NS Primitive",
+    "PRIMITIVETYPE": "Primitive Type",
+    "VNFPRIMITIVE": "VNF Level Primitive",
+    "NSPRIMITIVE": "NS Level Primitive",
+    "DESCRIPTOR": "Descriptor",
+    "ERROR": "Something Went wrong please try again",
+    "SHOWGRAPH": "Show Graph",
+    "UPDATESHOWGRAPH": "Update and Show Graph",
+    "CREATEPACKAGE": "Create New Package",
+    "GZFILETYPEERRROR": "Upload only tar.gz file and size should not exceed 15 MB",
+    "YAMLFILETYPEERRROR": "Upload only YAML file and size should not exceed 15 MB",
+    "JSONFILETYPEERRROR": "Upload only JSON file and size should not exceed 15 MB",
+    "PUBFILETYPEERRROR": "Upload only PUB file and size should not exceed 15 MB",
+    "PACKAGE": "Package",
+    "URL": "URL",
+    "DEPLOYED": "Deployed",
+    "ROLES": "Roles",
+    "INSTANCEDETAILS": "Instance Details",
+    "IPADDRESS": "IP Address",
+    "MGMT": "Mgmt",
+    "NETNAME": "Net Name",
+    "USER": "User",
+    "PORT": "Port",
+    "USERNAME": "Username",
+    "PASSWORD": "Password",
+    "NODATAERROR": "An error occurred while retrieving the information",
+    "FREEZE": "Freeze",
+    "UNFREEZE": "Unfreeze",
+    "CLONE": "Clone",
+    "CLONECONFIRMPOPUPMESSAGE": "Are you sure want to clone",
+    "CLONESUCCESSFULLY": "Package cloned successfully",
+    "DROPFILES": "Just drag and drop files or click here to upload files",
+    "DROPFILESVALIDATION": "Please select one file to process",
+    "METRICS": "Metrics",
+    "NOOFHOURS": "No Of Hours",
+    "MANDATORYCHECK": "Mandatory fields are marked with an asterisk (*)",
+    "K8VERSION": "K8 Version",
+    "ENTER": "Enter",
+    "SWITCHPROJECT": "Switch Project",
+    "CURRENTPROJECT": "Current Project",
+    "SUBMIT": "Submit",
+    "REFRESH": "Refresh",
+    "OPEN": "Open",
+    "UPLOADCONFIG": "Upload Config",
+    "FILEUPLOADLABEL": "Or load from file",
+    "CONFIG": "Config",
+    "YAMLCONFIG": "Yaml Config",
+    "CHOOSEFILE": "Choose File",
+    "INVALIDCONFIG": "Invalid configuration",
+    "PAGE": {
+        "DASHBOARD": {
+            "DASHBOARD": "Dashboard",
+            "RECENTUSERLOG": "Recent User Log",
+            "LOGS": "Logs",
+            "FAILEDINSTANCES": "Failed Instances",
+            "NOINSTANCES": "No Instances Available",
+            "UPTIME": "Uptime",
+            "RUNNINGINSTANCES": "Running Instances",
+            "NETSLICETEMPLATE": "NetSlice Template",
+            "NETSLICEINSTANCE": "NetSlice Instances",
+            "USERS": "Users",
+            "PROJECTS": "Projects",
+            "USERSETTINGS": "User Settings",
+            "LOGOUT": "Logout"
+        },
+        "LOGIN": {
+            "USERNAME": "Username",
+            "PASSWORD": "Password",
+            "SIGNUP": "Sign Up",
+            "ACCOUNTCREATEMESSAGE": "Don't have an account?",
+            "LOGIN": "Log In",
+            "PASSWORDVALIDMESSAGE": "Password is required",
+            "USERNAMEVALIDMESSAGE": "Username is required",
+            "SIGNINMSG": "Sign in to start your session",
+            "PASSWORDMINLENGTHVALIDMESSAGE": "Password must be 8 characters and contains at least one upper case, lower case, numeric & special character",
+            "USERNAMEMINLENGTHVALIDMESSAGE": "Username must be at least 5 characters"
+        },
+        "INSTANCEINSTANTIATE": {
+            "NEWINSTANCE": "New Instance",
+            "NSNAME": "Ns Name",
+            "DESCRIPTION": "Description",
+            "NSID": "Nsd Id",
+            "SSHKEY": "SSH Key",
+            "VIMACCOUNT": "VIM Account",
+            "SSHKEYMSG": "Paste your key here"
+        },
+        "NSMETRIC": {
+            "INSTANCESMETRIC": "Instances Metric",
+            "METRICERROR": "Data not available in metrics"
+        },
+        "USERSETTINGS": {
+            "LANGUAGE": "Language"
+        },
+        "VIM": {
+            "CREATEDSUCCESSFULLY": "VIM Created Successfully",
+            "LOACTIONINFO": "Type the location name and click enter button to select the location from the list"
+        },
+        "VIMDETAILS": {
+            "NEWVIM": "New VIM",
+            "VIMACCOUNTDETAILS": "VIM Account details",
+            "NAME": "Name",
+            "VIMUSERNAME": "VIM Username",
+            "VIMURL": "VIM URL",
+            "VIMTYPE": "Type",
+            "TENANTNAME": "Tenant name",
+            "DESCRIPTION": "Description",
+            "SCHEMATYPE": "Schema Type",
+            "SCHEMAVERSION": "Schema Version",
+            "CONFIGPARAMETERS": "CONFIG PARAMETERS",
+            "SDNCONTROLLER": "SDN Controller",
+            "SDNPORTMAPPING": "SDN Port Mapping",
+            "VIMNETWORKNAME": "VIM Network Name",
+            "SECURITYGROUPS": "Security Groups",
+            "AVAILABILITYZONE": "Availability Zone",
+            "REGIONALNAME": "Region Name",
+            "INSECURE": "Insecure",
+            "USEEXISTINGFLAVOURS": "Use existing flavors",
+            "USEINTERNALENDPOINT": "Use internal endpoint",
+            "APIVERSION": "API version",
+            "PROJECTDOMAINID": "Project domain id",
+            "PROJECTDOMAINNAME": "Project domain name",
+            "USERDOMAINID": "User domain id",
+            "USERDOMAINUSER": "User domain name",
+            "KEYPAIR": "Keypair",
+            "DATAPLANEPHYSICALNET": "Dataplane physical net",
+            "USEFLOATINGIP": "Use floating ip",
+            "DATAPLANENETVLANRANGE": "Dataplane net vlan range",
+            "MICROVERSION": "Microversion",
+            "BACKTOVIMACCOUNTS": "Back to VimAccounts",
+            "VIMPASSWORD": "VIM Password",
+            "ADDITIONALCONFIG": "Additional configuration",
+            "ADDITIONALCONFIGPLACEHOLDER": "{'key1':[...],'key2':{},'key3':''}",
+            "NEWVIMACCOUNT": "New VIM Account",
+            "ORGNAME": "Orgname",
+            "VCENTERIP": "Vcenter ip",
+            "VCENTERPORT": "Vcenter port",
+            "ADMINUSERNAME": "Admin username",
+            "VCENTERUSER": "Vcenter user",
+            "ADMINPASSWORD": "Admin password",
+            "VCENTERPASSWORD": "Vcenter password",
+            "NSXMANAGER": "Nsx manager",
+            "VROPSSITE": "Vrops site",
+            "NSXUSER": "Nsx user",
+            "VROPSUSER": "Vrops user",
+            "NSXPASSWORD": "Nsx password",
+            "VROPSPASSWORD": "Vrops password",
+            "VPCCIDRBLOCK": "VPC cidr block",
+            "FLAVORIINFO": "Flavor info",
+            "VIM_TYPE": "VIM Type",
+            "VIMLOCATION": "VIM Location",
+            "SUBSCRIPTIONID": "Subscription ID",
+            "RESOURCEGROUP": "Resource Group",
+            "VNETNAME": "VNet Name",
+            "FLAVORSPATTERN": "Flavors Pattern"
+        },
+        "WIMACCOUNTS": {
+            "CREATEDSUCCESSFULLY": "WIM Created Successfully",
+            "WIMDETAILS": "WIM Details",
+            "NEWWIM": "New WIM",
+            "SCHEMAVERSION": "Schema Version",
+            "RO": "RO",
+            "ROACCOUNT": "RO Account",
+            "USERNAME": "WIM Username",
+            "PASSWORD": "WIM Password"
+        },
+        "NSINSTANCE": {
+            "NEWNSINSTANCE": "New NS",
+            "CREATEDSUCCESSFULLY": "NS Instance Created Successfully"
+        },
+        "VNFINSTANCE": {
+            "ADDVNFINSTANCE": "Add VNF Instance"
+        },
+        "PDUINSTANCE": {
+            "NEWPDUINSTANCE": "New PDU",
+            "PDUTYPE": "PDU Type",
+            "PARAMETERS": "PDU Instances Parameters",
+            "ADDINSTANCEPARAMS": "Add Params",
+            "CREATEDSUCCESSFULLY": "PDU Instances Created Successfully"
+        },
+        "NETSLICEINSTANCE": {
+            "CREATENETSLICEINSTANCE": "Create NSI"
+        },
+        "SDNCONTROLLER": {
+            "NEWSDNCONTROLLER": "New SDN Controller",
+            "REGISTEREDSDNCONTROLLER": "Registered SDN Controllers",
+            "RO": "RO",
+            "DPID": "DPID",
+            "CREATEDSUCCESSFULLY": "SDN Registered Successfully",
+            "DPIDPLACEHOLDER": "xx:xx:xx:xx:xx:xx:xx:xx",
+            "DETAILS": "SDN Controller Details"
+        },
+        "USERS": {
+            "CREATEUSER": "Create User",
+            "NEWUSER": "New User",
+            "USERNAME": "User Name",
+            "PASSWORD": "Password",
+            "CONFPASSWORD": "Confirm Password",
+            "EDITUSER": "Edit User",
+            "NEWPASSWORD": "New Password",
+            "DEFAULTPROJECT": "Default Project",
+            "PASSWORDCONFLICT": "Password and confirm password are not matched",
+            "PASSWORDMATCH": "Password Match",
+            "CREATEDSUCCESSFULLY": "User Created Successfully",
+            "EDITEDSUCCESSFULLY": "User Edit Successfully",
+            "EDITCREDENTIALS": "Change Password",
+            "EDITUSERNAME": "Change Username",
+            "PROJECTSROLES": "Projects Roles",
+            "EDITPROJECTROLEMAPPING": "Edit Project Role Mapping",
+            "ADDMAPPINGS": "Add Mappings",
+            "EDITPROJECTROLEERROR": "Please provide at least one project role mapping to continue"
+        },
+        "TOPOLOGY": {
+            "SELECTELEMENT": "Select Element",
+            "VL": "VL",
+            "VNF": "VNF",
+            "VNFD": "VNFD",
+            "CP": "CP",
+            "NSD": "NSD",
+            "NS": "NS",
+            "VIRTUALLINK": "Virtual Link",
+            "CONNECTIONPOINT": "Connection Point",
+            "INTCONNECTIONPOINT": "Int Connection Point",
+            "LINK": "Link",
+            "ADDINGCP": "Please select a connection point of {{vnfdname}} to link {{vlname}}?",
+            "INFO": "Info",
+            "HELP": "Help",
+            "HELPINFO": {
+                "CREATEEDGE": "Create edge",
+                "CREATEEDGEFIRSTSETENCE": "Select the first vertex by clicking on it using",
+                "CREATEEDGESECONDSETENCE": "on another vertex (different than the selected one).",
+                "DELETEEDGEVERTEX": "Delete edge/vertex",
+                "DELETEEDGEVERTEXSENTENCE": "Double clicking on edge/vertex.",
+                "SPREADEDGE": "Spread edge",
+                "SPREADEDGESENTENCE": "Select the vertex by clicking on it using",
+                "EDGEINFO": "Show edge information",
+                "EDGEINFOSENTENCE": "Select the edge by clicking. The information will be shown on the left side."
+            },
+            "VDU": "VDU",
+            "INTVL": "IntVL",
+            "INTCP": "IntCP",
+            "DATAEMPTY": "Please change something"
+        },
+        "PROJECT": {
+            "NEWPROJECT": "New Project",
+            "CREATEDSUCCESSFULLY": "Project Created Successfully",
+            "UPDATEDSUCCESSFULLY": "Project Updated Successfully"
+        },
+        "NSPACKAGE": {
+            "ADDNSPACKAGE": "Compose a new NS",
+            "CREATEDSUCCESSFULLY": "NS Package Created Successfully",
+            "NSCOMPOSE": {
+                "UPDATEDSUCCESSFULLY": "Descriptor Updated Successfully",
+                "CONFIRMCONNECTIONPOINT": "Please confirm to add connection point",
+                "CANNOTLINKVNF": "You can't link a vnf with a vnf",
+                "CANNOTLINKVL": "You can't link a VL with a VL",
+                "CANNOTLINKVLVNF": "You can't link a VL with a vnf",
+                "CANNOTLINKVNFCP": "You can't link a VNF with a CP",
+                "CANNOTLINKVLCP": "You can't link a VL with a CP",
+                "CANNOTLINKCP": "You can't link a CP with a CP",
+                "ADDNSD": "Virtual Link is added succesfully",
+                "ADDVNFD": "VNFD is added succesfully",
+                "ADDNS": "Connection Link is added succesfully",
+                "DELETENSD": "Successfully Deleted the Virtual Link",
+                "DELETEVNFD": "Successfully Deleted the VNF",
+                "DELETENS": "Successfully Deleted the Connection point",
+                "DELETELINK": "Successfully Deleted the Link",
+                "MGMTNETWORK": "Mgmt Network",
+                "VIMNETWORKNAME": "Vim Network Name",
+                "MEMBER-VNF-INDEX": "member-vnf-index",
+                "VNFD-ID-REF": "vnfd-id-ref",
+                "VLD-ID": "vld-id",
+                "VNFD-CP-REF": "vnfd-connection-point-ref"
+            },
+            "EDITPACKAGES": {
+                "UPDATEDSUCCESSFULLY": "Descriptor Updated Successfully"
+            }
+        },
+        "VNFPACKAGE": {
+            "ADDVNFPACKAGE": "Compose a new VNF",
+            "CREATEDSUCCESSFULLY": "VNF Package Created Successfully",
+            "VNFCOMPOSE": {
+                "UPDATEDSUCCESSFULLY": "Descriptor Updated Successfully",
+                "INVALIDSELECTION": "Invalid Selection",
+                "YOUCANNOTDELETELINK": "You cannot delete link",
+                "CANNOTLINKVDUANDINTCP": "You cant link vdu with int_cp",
+                "CANNOTLINKINTCPANDVDU": "You cant link int_cp with vdu",
+                "CANNOTLINKCPANDVNFVL": "You cant link cp with vnf_vl",
+                "CANNOTLINKVNFVLANDCP": "You cant link vnf_vl with cp",
+                "CANNOTLINKINTCPANDCP": "You cant link intcp with cp",
+                "CANNOTLINKCPANDINTCP": "You cant link cp with int_cp",
+                "CANNOTLINKVDUANDVDU": "You can't link a vdu with a vdu"
+            }
+        },
+        "NETSLICE": {
+            "CREATEDSUCCESSFULLY": "Netslice Created Successfully",
+            "TEMPLATECREATEDSUCCESSFULLY": "Netslice Template Created Successfully",
+            "UPDATEDSUCCESSFULLY": "Template Updated Successfully"
+        },
+        "NETSLICETEMPLATE": {
+            "NETSLICETEMPLATEDETAILS": "Network Slices Template Details"
+        },
+        "NSTINSTANCEINSTANTIATE": {
+            "NEWINSTANCE": "New Instance",
+            "NSNAME": "Ns Name",
+            "DESCRIPTION": "Description",
+            "NSTID": "Nst Id",
+            "SSHKEY": "SSH Key",
+            "VIMACCOUNT": "VIM Account",
+            "SSHKEYMSG": "Paste your key here ..."
+        },
+        "NSPRIMITIVE": {
+            "PRIMITIVE": "Primitive",
+            "PRIMITIVEPARAMETERS": "Primitive Parameters",
+            "ADDPRIMITIVEPARAMS": "Add Primitive Params",
+            "EXECUTEDSUCCESSFULLY": "Executed NS Primitive Configuration"
+        },
+        "ROLES": {
+            "CREATEROLE": "Create Role",
+            "ROLE": "Role",
+            "PERMISSIONS": "Permissions",
+            "YAMLPERMISSIONS": "YAML Permissions",
+            "CREATEDSUCCESSFULLY": "Role Created Successfully",
+            "UPDATEDSUCCESSFULLY": "Role Updated Successfully",
+            "ROLEJSONERROR": "Role permissions should be provided in a key-value fashion",
+            "ROLEKEYERROR": "Value of '{{roleKey}}' in a role permissions should be boolean",
+            "EDITROLE": "Edit Role",
+            "PREVIEW": "Preview",
+            "TEXTVIEW": "Text View"
+        },
+        "K8S": {
+            "MENUK8S": "K8s",
+            "MENUK8SCLUSTER": "K8s Clusters",
+            "MENUK8SREPO": "K8s Repos",
+            "REGISTERK8CLUSTER": "Registered K8s clusters",
+            "ADDK8CLUSTER": "Add K8s Cluster",
+            "K8SCLUSTERDETAILS": "K8s Cluster Details",
+            "REGISTERK8REPO": "Registered K8s repository",
+            "ADDK8REPO": "Add K8s Repository",
+            "K8SREPODETAILS": "K8s Repository Details",
+            "CREATEDSUCCESSFULLY": "K8s Created Successfully",
+            "NEWK8SCLUSTER": "New K8s Cluster",
+            "NAME": "Name",
+            "K8SVERSION": "K8s Version",
+            "VIMACCOUNT": "Vim Account",
+            "DESCRIPTION": "Description",
+            "NETS": "Nets",
+            "NETSPLACEHOLDER": "example: {'net1': 'osm-ext'}",
+            "CREDENTIALS": "Credentials",
+            "NEWK8SREPO": "New K8s Repository",
+            "TYPE": "Type",
+            "URL": "URL"
+        }
+    },
+    "HTTPERROR": {
+        "401": "Access denied, Lack of permissions",
+        "400": "Please check the request and try again",
+        "404": "Expected service not avilable, Please try again later",
+        "500": "Server error, Please try again later",
+        "502": "Bad Gateway, Please try again later",
+        "503": "Service temporarily unavailable, Please try again later",
+        "504": "Gateway timeout error, Please try again later",
+        "409": "Please try again later"
+    },
+    "PAGENOTFOUND": {
+        "OOPS": "Oops!",
+        "NOTFOUND": "404 Not Found",
+        "CONTENT": "The page cannot be found or unauthorized, it might be no longer relevant or had its name changed",
+        "MEAN": "Meanwhile, you may return to",
+        "HOME": "Home"
+    },
+    "DOMVALIDATIONS": {
+        "INVALIDURL": "Enter a valid URL",
+        "INVALIDIPADDRESS": "Enter a valid IP Address",
+        "INVALIDPORTADDRESS": "Enter a valid PORT Address",
+        "INVALIDDPID": "Enter a valid DPID",
+        "INVALIDJSON": "Enter a valid JSON Format",
+        "INVALIDYAML": "Enter a valid JSON Format"
+    },
+    "GRAFANA": {
+        "METRICSERROR": "Not a valid metrics"
+    }
+}
\ No newline at end of file