platform/moblab: Moblab UI application developement update.
Second "in progress" checkin, shows more of the application layout
and a mock class for the RPC calls.
Implemented angular material widgets
BUG=chromium:682415
TEST=None
Change-Id: Ie62149029a95ba95132b8edcca71e99fdff9c38a
Reviewed-on: https://chromium-review.googlesource.com/438699
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Jinsong Mu <jinsong@google.com>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
diff --git a/partner_ui/.idea/compiler.xml b/partner_ui/.idea/compiler.xml
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ b/partner_ui/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <resourceExtensions />
+ <wildcardResourcePatterns>
+ <entry name="!?*.java" />
+ <entry name="!?*.form" />
+ <entry name="!?*.class" />
+ <entry name="!?*.groovy" />
+ <entry name="!?*.scala" />
+ <entry name="!?*.flex" />
+ <entry name="!?*.kt" />
+ <entry name="!?*.clj" />
+ <entry name="!?*.aj" />
+ </wildcardResourcePatterns>
+ <annotationProcessing>
+ <profile default="true" name="Default" enabled="false">
+ <processorPath useClasspath="true" />
+ </profile>
+ </annotationProcessing>
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/copyright/profiles_settings.xml b/partner_ui/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/partner_ui/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+ <settings default="" />
+</component>
\ No newline at end of file
diff --git a/partner_ui/.idea/jsLibraryMappings.xml b/partner_ui/.idea/jsLibraryMappings.xml
new file mode 100644
index 0000000..68d255c
--- /dev/null
+++ b/partner_ui/.idea/jsLibraryMappings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="JavaScriptLibraryMappings">
+ <file url="file://$PROJECT_DIR$" libraries="{moblab-partner-ui/node_modules}" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/misc.xml b/partner_ui/.idea/misc.xml
new file mode 100644
index 0000000..917b157
--- /dev/null
+++ b/partner_ui/.idea/misc.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ClientPropertiesManager">
+ <properties class="javax.swing.AbstractButton">
+ <property name="hideActionText" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JComponent">
+ <property name="html.disable" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JEditorPane">
+ <property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
+ <property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
+ <property name="charset" class="java.lang.String" />
+ </properties>
+ <properties class="javax.swing.JList">
+ <property name="List.isFileList" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JPasswordField">
+ <property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JSlider">
+ <property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
+ <property name="JSlider.isFilled" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JTable">
+ <property name="Table.isFileList" class="java.lang.Boolean" />
+ <property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
+ <property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JToolBar">
+ <property name="JToolBar.isRollover" class="java.lang.Boolean" />
+ </properties>
+ <properties class="javax.swing.JTree">
+ <property name="JTree.lineStyle" class="java.lang.String" />
+ </properties>
+ <properties class="javax.swing.text.JTextComponent">
+ <property name="caretAspectRatio" class="java.lang.Double" />
+ <property name="caretWidth" class="java.lang.Integer" />
+ </properties>
+ </component>
+ <component name="MavenImportPreferences">
+ <option name="generalSettings">
+ <MavenGeneralSettings>
+ <option name="mavenHome" value="Bundled (Maven 3)" />
+ </MavenGeneralSettings>
+ </option>
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_3" default="true">
+ <output url="file://$PROJECT_DIR$/out" />
+ </component>
+ <component name="masterDetails">
+ <states>
+ <state key="ProjectJDKs.UI">
+ <settings>
+ <last-edited>1.7</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ </states>
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/modules.xml b/partner_ui/.idea/modules.xml
new file mode 100644
index 0000000..cc9741b
--- /dev/null
+++ b/partner_ui/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/moblab-partner-ui.iml" filepath="$PROJECT_DIR$/moblab-partner-ui.iml" />
+ </modules>
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/typescript-compiler.xml b/partner_ui/.idea/typescript-compiler.xml
new file mode 100644
index 0000000..17ff836
--- /dev/null
+++ b/partner_ui/.idea/typescript-compiler.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="TypeScriptCompiler">
+ <option name="isCompilerEnabled" value="true" />
+ <option name="useConfig" value="true" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/vcs.xml b/partner_ui/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/partner_ui/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/.idea/workspace.xml b/partner_ui/.idea/workspace.xml
new file mode 100644
index 0000000..1a3c9d2
--- /dev/null
+++ b/partner_ui/.idea/workspace.xml
@@ -0,0 +1,1534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ChangeListManager">
+ <list default="true" id="92e40404-9d6c-4123-af13-f198d7d5d5ff" name="Default" comment="">
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/app.component.css" afterPath="$PROJECT_DIR$/src/app/app.component.css" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/app.component.html" afterPath="$PROJECT_DIR$/src/app/app.component.html" />
+ </list>
+ <ignored path="moblab-partner-ui.iws" />
+ <ignored path=".idea/workspace.xml" />
+ <ignored path="$PROJECT_DIR$/out/" />
+ <ignored path=".idea/dataSources.local.xml" />
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+ <option name="TRACKING_ENABLED" value="true" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="CreatePatchCommitExecutor">
+ <option name="PATCH_PATH" value="" />
+ </component>
+ <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+ <component name="FavoritesManager">
+ <favorites_list name="moblab-partner-ui" />
+ </component>
+ <component name="FileEditorManager">
+ <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+ <file leaf-file-name="run-suite.component.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/run-suite/run-suite.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="300">
+ <caret line="67" column="23" lean-forward="true" selection-start-line="67" selection-start-column="23" selection-end-line="67" selection-end-column="23" />
+ <folding>
+ <element signature="e#0#59#0" expanded="true" />
+ <marker date="1486513834189" expanded="true" signature="187:1800" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="188:1674" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="215:438" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="466:701" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="729:964" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="992:1226" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="1254:1488" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="1516:1673" ph="..." />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="advanced-settings.component.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="180">
+ <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="app.component.css" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.css">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="420">
+ <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="advanced-settings.module.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="345">
+ <caret line="23" column="29" lean-forward="false" selection-start-line="23" selection-start-column="29" selection-end-line="23" selection-end-column="29" />
+ <folding>
+ <element signature="e#0#39#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="configuration.component.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/configuration/configuration.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="moblab-rpc-service-mock.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/services/moblab-rpc-service-mock.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="480">
+ <caret line="32" column="77" lean-forward="true" selection-start-line="32" selection-start-column="77" selection-end-line="32" selection-end-column="77" />
+ <folding>
+ <element signature="e#0#41#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="configuration.module.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/configuration/configuration.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="345">
+ <caret line="23" column="26" lean-forward="false" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
+ <folding>
+ <element signature="e#0#39#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="app.module.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/app.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="465">
+ <caret line="31" column="0" lean-forward="true" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+ <folding>
+ <element signature="e#0#56#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="app.component.html" pinned="false" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="210">
+ <caret line="14" column="15" lean-forward="true" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="manage-dut.component.ts" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/src/app/manage-duts/manage-dut.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="180">
+ <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
+ </component>
+ <component name="FileTemplateManagerImpl">
+ <option name="RECENT_TEMPLATES">
+ <list>
+ <option value="TypeScript File" />
+ </list>
+ </option>
+ </component>
+ <component name="FindInProjectRecents">
+ <findStrings>
+ <find>jerry</find>
+ <find>mater</find>
+ <find>disabled</find>
+ <find>this.runSuiteButton.this.runSuiteButton.</find>
+ </findStrings>
+ </component>
+ <component name="Git.Settings">
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
+ </component>
+ <component name="GradleLocalSettings">
+ <option name="externalProjectsViewState">
+ <projects_view />
+ </option>
+ </component>
+ <component name="IdeDocumentHistory">
+ <option name="CHANGED_PATHS">
+ <list>
+ <option value="$PROJECT_DIR$/src/app/run-suite-selector.service.ts" />
+ <option value="$PROJECT_DIR$/src/app/run-suite-selector.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.manage-dut.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.run-suite-selector.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.run-suite.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/app.run-suite-selector.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/selector.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/selector.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/widget.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/services/run-suite-selector.service.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/moblab-selector.ts" />
+ <option value="$PROJECT_DIR$/src/app/services/services.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/services/moblab-rpc-service-mock.ts" />
+ <option value="$PROJECT_DIR$/src/app/services/moblab-rpc.service.ts" />
+ <option value="$PROJECT_DIR$/package.json" />
+ <option value="$PROJECT_DIR$/src/styles.css" />
+ <option value="$PROJECT_DIR$/src/app/run-suite/run-suite.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/widgets.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/widgets/moblab-selector.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/manage-duts/manage-dut.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/run-suite/run-suite.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/configuration/configuration.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/manage-duts/manage-dut.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/configuration/configuration.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.module.ts" />
+ <option value="$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.component.ts" />
+ <option value="$PROJECT_DIR$/src/app/app.component.css" />
+ <option value="$PROJECT_DIR$/src/app/app.component.html" />
+ </list>
+ </option>
+ </component>
+ <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+ <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
+ <package-json value="$PROJECT_DIR$/package.json" />
+ </component>
+ <component name="JsGulpfileManager">
+ <detection-done>true</detection-done>
+ <sorting>DEFINITION_ORDER</sorting>
+ </component>
+ <component name="NodeModulesDirectoryManager">
+ <handled-path value="$PROJECT_DIR$/node_modules" />
+ </component>
+ <component name="ProjectFrameBounds">
+ <option name="x" value="782" />
+ <option name="y" value="41" />
+ <option name="width" value="1719" />
+ <option name="height" value="1485" />
+ </component>
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+ <component name="ProjectView">
+ <navigator currentView="ProjectPane" proportions="" version="1">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ <manualOrder />
+ <foldersAlwaysOnTop value="true" />
+ </navigator>
+ <panes>
+ <pane id="PackagesPane" />
+ <pane id="ProjectPane">
+ <subPane>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="environments" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="assets" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="widgets" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="services" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="run-suite" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="manage-duts" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="configuration" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="partner_ui" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="src" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="app" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="advanced-settings" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ </subPane>
+ </pane>
+ <pane id="Scope" />
+ <pane id="Scratches" />
+ </panes>
+ </component>
+ <component name="PropertiesComponent">
+ <property name="nodejs_interpreter_path" value="$PROJECT_DIR$/../../../../../../../../../bin/node" />
+ <property name="aspect.path.notification.shown" value="true" />
+ <property name="WebServerToolWindowFactoryState" value="false" />
+ <property name="editor.config.accepted" value="true" />
+ <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
+ <property name="js-jscs-nodeInterpreter" value="$PROJECT_DIR$/../../../../../../../../../bin/node" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+ <property name="js.eslint.eslintPackage" value="" />
+ </component>
+ <component name="RecentsManager">
+ <key name="MoveFile.RECENT_KEYS">
+ <recent name="$PROJECT_DIR$/src/app/widgets" />
+ <recent name="$PROJECT_DIR$/src/app/services" />
+ <recent name="$PROJECT_DIR$/src/app/run-suite" />
+ <recent name="$PROJECT_DIR$/src/app/manage-duts" />
+ </key>
+ </component>
+ <component name="RunManager">
+ <configuration default="false" name="start" type="js.build_tools.npm" factoryName="npm" temporary="true" nameIsGenerated="true">
+ <package-json value="$PROJECT_DIR$/package.json" />
+ <command value="run" />
+ <scripts>
+ <script value="start" />
+ </scripts>
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="false" name="lint" type="js.build_tools.npm" factoryName="npm" temporary="true" nameIsGenerated="true">
+ <package-json value="$PROJECT_DIR$/package.json" />
+ <command value="run" />
+ <scripts>
+ <script value="lint" />
+ </scripts>
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="false" name="test" type="js.build_tools.npm" factoryName="npm" temporary="true" nameIsGenerated="true">
+ <package-json value="$PROJECT_DIR$/package.json" />
+ <command value="run" />
+ <scripts>
+ <script value="test" />
+ </scripts>
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
+ <module name="" />
+ <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+ <option name="PROGRAM_PARAMETERS" />
+ <predefined_log_file id="idea.log" enabled="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
+ <module name="" />
+ <option name="DEPLOY" value="true" />
+ <option name="ARTIFACT_NAME" value="" />
+ <option name="PM_INSTALL_OPTIONS" value="" />
+ <option name="ACTIVITY_EXTRA_FLAGS" value="" />
+ <option name="MODE" value="default_activity" />
+ <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+ <option name="PREFERRED_AVD" value="" />
+ <option name="CLEAR_LOGCAT" value="false" />
+ <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
+ <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+ <option name="FORCE_STOP_RUNNING_APP" value="true" />
+ <option name="DEBUGGER_TYPE" value="Java" />
+ <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+ <option name="PREFERRED_AVD" value="" />
+ <Java />
+ <Profilers>
+ <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+ <option name="GAPID_ENABLED" value="false" />
+ <option name="GAPID_DISABLE_PCS" value="false" />
+ <option name="SUPPORT_LIB_ENABLED" value="true" />
+ <option name="INSTRUMENTATION_ENABLED" value="true" />
+ </Profilers>
+ <option name="DEEP_LINK" value="" />
+ <option name="ACTIVITY_CLASS" value="" />
+ <method />
+ </configuration>
+ <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
+ <module name="" />
+ <option name="TESTING_TYPE" value="0" />
+ <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="PACKAGE_NAME" value="" />
+ <option name="EXTRA_OPTIONS" value="" />
+ <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+ <option name="PREFERRED_AVD" value="" />
+ <option name="CLEAR_LOGCAT" value="false" />
+ <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+ <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+ <option name="FORCE_STOP_RUNNING_APP" value="true" />
+ <option name="DEBUGGER_TYPE" value="Java" />
+ <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+ <option name="PREFERRED_AVD" value="" />
+ <Java />
+ <Profilers>
+ <option name="ENABLE_ADVANCED_PROFILING" value="true" />
+ <option name="GAPID_ENABLED" value="false" />
+ <option name="GAPID_DISABLE_PCS" value="false" />
+ <option name="SUPPORT_LIB_ENABLED" value="true" />
+ <option name="INSTRUMENTATION_ENABLED" value="true" />
+ </Profilers>
+ <method />
+ </configuration>
+ <configuration default="true" type="Applet" factoryName="Applet">
+ <option name="HTML_USED" value="false" />
+ <option name="WIDTH" value="400" />
+ <option name="HEIGHT" value="300" />
+ <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+ <module />
+ <method />
+ </configuration>
+ <configuration default="true" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="ArquillianJUnit" factoryName="">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="arquillianRunConfiguration">
+ <value>
+ <option name="containerStateName" value="" />
+ </value>
+ </option>
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <envs />
+ <patterns />
+ <method />
+ </configuration>
+ <configuration default="true" type="ArquillianTestNG" factoryName="">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="arquillianRunConfiguration">
+ <value>
+ <option name="containerStateName" value="" />
+ </value>
+ </option>
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SUITE_NAME" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="GROUP_NAME" />
+ <option name="TEST_OBJECT" value="CLASS" />
+ <option name="VM_PARAMETERS" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="OUTPUT_DIRECTORY" />
+ <option name="ANNOTATION_TYPE" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <option name="USE_DEFAULT_REPORTERS" value="false" />
+ <option name="PROPERTIES_FILE" />
+ <envs />
+ <properties />
+ <listeners />
+ <method />
+ </configuration>
+ <configuration default="true" type="BlazeCommandRunConfigurationType" factoryName="Blaze Command" handler-id="BlazeCommandGenericRunConfigurationHandlerProvider">
+ <method />
+ </configuration>
+ <configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
+ <method />
+ </configuration>
+ <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="myFilePath" />
+ <option name="GLUE" />
+ <option name="myNameFilter" />
+ <option name="myGeneratedName" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
+ <option name="BCName" value="" />
+ <option name="IOSSimulatorSdkPath" value="" />
+ <option name="adlOptions" value="" />
+ <option name="airProgramParameters" value="" />
+ <option name="appDescriptorForEmulator" value="Android" />
+ <option name="debugTransport" value="USB" />
+ <option name="debuggerSdkRaw" value="BC SDK" />
+ <option name="emulator" value="NexusOne" />
+ <option name="emulatorAdlOptions" value="" />
+ <option name="fastPackaging" value="true" />
+ <option name="fullScreenHeight" value="0" />
+ <option name="fullScreenWidth" value="0" />
+ <option name="launchUrl" value="false" />
+ <option name="launcherParameters">
+ <LauncherParameters>
+ <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+ <option name="launcherType" value="OSDefault" />
+ <option name="newPlayerInstance" value="false" />
+ <option name="playerPath" value="$PROJECT_DIR$/../../../../../../../../../bin/flashplayerdebugger" />
+ </LauncherParameters>
+ </option>
+ <option name="mobileRunTarget" value="Emulator" />
+ <option name="moduleName" value="" />
+ <option name="overriddenMainClass" value="" />
+ <option name="overriddenOutputFileName" value="" />
+ <option name="overrideMainClass" value="false" />
+ <option name="runTrusted" value="true" />
+ <option name="screenDpi" value="0" />
+ <option name="screenHeight" value="0" />
+ <option name="screenWidth" value="0" />
+ <option name="url" value="http://" />
+ <option name="usbDebugPort" value="7936" />
+ <method />
+ </configuration>
+ <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
+ <option name="BCName" value="" />
+ <option name="launcherParameters">
+ <LauncherParameters>
+ <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
+ <option name="launcherType" value="OSDefault" />
+ <option name="newPlayerInstance" value="false" />
+ <option name="playerPath" value="$PROJECT_DIR$/../../../../../../../../../bin/flashplayerdebugger" />
+ </LauncherParameters>
+ </option>
+ <option name="moduleName" value="" />
+ <option name="trusted" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
+ <ExternalSystemSettings>
+ <option name="executionName" />
+ <option name="externalProjectPath" />
+ <option name="externalSystemIdString" value="GRADLE" />
+ <option name="scriptParameters" />
+ <option name="taskDescriptions">
+ <list />
+ </option>
+ <option name="taskNames">
+ <list />
+ </option>
+ <option name="vmOptions" />
+ </ExternalSystemSettings>
+ <method />
+ </configuration>
+ <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
+ <setting name="vmparams" value="" />
+ <setting name="cmdLine" value="run-app" />
+ <setting name="passParentEnv" value="true" />
+ <setting name="launchBrowser" value="true" />
+ <setting name="launchBrowserUrl" value="" />
+ <setting name="depsClasspath" value="false" />
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <method />
+ </configuration>
+ <configuration default="true" type="JUnit" factoryName="JUnit">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" value="-ea" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <envs />
+ <patterns />
+ <method />
+ </configuration>
+ <configuration default="true" type="JarApplication" factoryName="JAR Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="SCRATCH_FILE_ID" value="0" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
+ <config-file value="" />
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+ <method />
+ </configuration>
+ <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="moblab-partner-ui" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="filePath" />
+ <option name="vmParameters" />
+ <option name="alternativeJrePath" />
+ <option name="programParameters" />
+ <option name="passParentEnvs" value="true" />
+ <option name="workingDirectory" />
+ <option name="isAlternativeJrePathEnabled" value="false" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="PythonConfigurationType" factoryName="Python">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="PARAMETERS" value="" />
+ <option name="SHOW_COMMAND_LINE" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="Remote" factoryName="Remote">
+ <option name="USE_SOCKET_TRANSPORT" value="true" />
+ <option name="SERVER_MODE" value="false" />
+ <option name="SHMEM_ADDRESS" value="javadebug" />
+ <option name="HOST" value="localhost" />
+ <option name="PORT" value="5005" />
+ <method />
+ </configuration>
+ <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="TestNG" factoryName="TestNG">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SUITE_NAME" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="GROUP_NAME" />
+ <option name="TEST_OBJECT" value="CLASS" />
+ <option name="VM_PARAMETERS" value="-ea" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+ <option name="OUTPUT_DIRECTORY" />
+ <option name="ANNOTATION_TYPE" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <option name="USE_DEFAULT_REPORTERS" value="false" />
+ <option name="PROPERTIES_FILE" />
+ <envs />
+ <properties />
+ <listeners />
+ <method />
+ </configuration>
+ <configuration default="true" type="Tox" factoryName="Tox">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <method />
+ </configuration>
+ <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+ <node-interpreter>project</node-interpreter>
+ <node-options />
+ <gulpfile />
+ <tasks />
+ <arguments />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+ <command value="run" />
+ <scripts />
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
+ <method />
+ </configuration>
+ <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
+ <method />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="Attests">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="USE_PATTERN" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="Doctests">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="USE_PATTERN" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="Nosetests">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="USE_PATTERN" value="false" />
+ <option name="PARAMS" value="" />
+ <option name="USE_PARAM" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="Unittests">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="USE_PATTERN" value="false" />
+ <option name="PUREUNITTEST" value="true" />
+ <option name="PARAMS" value="" />
+ <option name="USE_PARAM" value="false" />
+ <method />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="py.test">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <module name="moblab-partner-ui" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="USE_PATTERN" value="false" />
+ <option name="testToRun" value="" />
+ <option name="keywords" value="" />
+ <option name="params" value="" />
+ <option name="USE_PARAM" value="false" />
+ <option name="USE_KEYWORD" value="false" />
+ <method />
+ </configuration>
+ <list size="3">
+ <item index="0" class="java.lang.String" itemvalue="npm.start" />
+ <item index="1" class="java.lang.String" itemvalue="npm.lint" />
+ <item index="2" class="java.lang.String" itemvalue="npm.test" />
+ </list>
+ <recent_temporary>
+ <list size="3">
+ <item index="0" class="java.lang.String" itemvalue="npm.test" />
+ <item index="1" class="java.lang.String" itemvalue="npm.lint" />
+ <item index="2" class="java.lang.String" itemvalue="npm.start" />
+ </list>
+ </recent_temporary>
+ <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
+ <module name="" />
+ <option name="DEPLOY" value="true" />
+ <option name="ARTIFACT_NAME" value="" />
+ <option name="PM_INSTALL_OPTIONS" value="" />
+ <option name="ACTIVITY_EXTRA_FLAGS" value="" />
+ <option name="MODE" value="default_activity" />
+ <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
+ <option name="PREFERRED_AVD" value="" />
+ <option name="CLEAR_LOGCAT" value="false" />
+ <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
+ <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
+ <option name="FORCE_STOP_RUNNING_APP" value="true" />
+ <option name="DEBUGGER_TYPE" value="Java" />
+ <option name="USE_LAST_SELECTED_DEVICE" value="false" />
+ <option name="PREFERRED_AVD" value="" />
+ <Java />
+ <Profilers>
+ <option name="GAPID_DISABLE_PCS" value="false" />
+ </Profilers>
+ <option name="DEEP_LINK" value="" />
+ <option name="ACTIVITY_CLASS" value="" />
+ <method />
+ </configuration>
+ </component>
+ <component name="ShelveChangesManager" show_recycled="false">
+ <option name="remove_strategy" value="false" />
+ </component>
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="92e40404-9d6c-4123-af13-f198d7d5d5ff" name="Default" comment="" />
+ <created>1481737704629</created>
+ <option name="number" value="Default" />
+ <option name="presentableId" value="Default" />
+ <updated>1481737704629</updated>
+ <workItem from="1481737707393" duration="1076000" />
+ <workItem from="1481739642181" duration="22482000" />
+ <workItem from="1482175121063" duration="51844000" />
+ <workItem from="1482369736879" duration="11340000" />
+ <workItem from="1484341602594" duration="25000" />
+ <workItem from="1484341646178" duration="28000" />
+ <workItem from="1484341692085" duration="803000" />
+ <workItem from="1485885527631" duration="335000" />
+ <workItem from="1485886653280" duration="19955000" />
+ <workItem from="1486411593944" duration="26262000" />
+ </task>
+ <servers />
+ </component>
+ <component name="TimeTrackingManager">
+ <option name="totallyTimeSpent" value="134150000" />
+ </component>
+ <component name="ToolWindowManager">
+ <frame x="782" y="41" width="1719" height="1485" extended-state="0" />
+ <editor active="false" />
+ <layout>
+ <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Event Log" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22350396" sideWeight="0.5104167" order="8" side_tool="true" content_ui="tabs" />
+ <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+ <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26849157" sideWeight="0.19220056" order="4" side_tool="true" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24895222" sideWeight="0.48958334" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
+ <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3292683" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26849157" sideWeight="0.80779946" order="0" side_tool="false" content_ui="combo" />
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ </layout>
+ </component>
+ <component name="TypeScriptGeneratedFilesManager">
+ <option name="processedProjectFiles" value="true" />
+ </component>
+ <component name="Vcs.Log.UiProperties">
+ <option name="RECENTLY_FILTERED_USER_GROUPS">
+ <collection />
+ </option>
+ <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+ <collection />
+ </option>
+ </component>
+ <component name="VcsContentAnnotationSettings">
+ <option name="myLimit" value="2678400000" />
+ </component>
+ <component name="XDebuggerManager">
+ <breakpoint-manager>
+ <option name="time" value="1" />
+ </breakpoint-manager>
+ <watches-manager />
+ </component>
+ <component name="antWorkspaceConfiguration">
+ <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
+ <option name="FILTER_TARGETS" value="false" />
+ </component>
+ <component name="editorHistoryManager">
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.css">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.spec.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/moblab-partner-ui.iml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="135">
+ <caret line="9" column="9" lean-forward="false" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/karma.conf.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/e2e/tsconfig.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/widgets/moblab-selector.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/rxjs/add/observable/merge.d.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/rxjs/add/operator/map.d.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/@angular/http/src/enums.d.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/@angular/http/src/static_request.d.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/@angular/http/src/headers.d.ts" />
+ <entry file="file://$PROJECT_DIR$/node_modules/@angular/http/src/interfaces.d.ts" />
+ <entry file="file://$PROJECT_DIR$/src/environments/environment.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/favicon.ico">
+ <provider selected="true" editor-type-id="images">
+ <state />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/npm-debug.log">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/partner-ui-9999.ebuild">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/protractor.conf.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="465">
+ <caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/node_modules/tslint/lib/runner.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="79">
+ <caret line="76" column="41" lean-forward="true" selection-start-line="76" selection-start-column="41" selection-end-line="76" selection-end-column="41" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/node_modules/rxjs/Observable.d.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="390">
+ <caret line="31" column="19" lean-forward="false" selection-start-line="31" selection-start-column="19" selection-end-line="31" selection-end-column="19" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/node_modules/@angular/http/src/http.d.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1170">
+ <caret line="82" column="7" lean-forward="false" selection-start-line="82" selection-start-column="7" selection-end-line="82" selection-end-column="7" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/node_modules/rxjs/add/observable/from.d.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="45">
+ <caret line="3" column="12" lean-forward="false" selection-start-line="3" selection-start-column="12" selection-end-line="3" selection-end-column="12" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/index.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/test.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/tsconfig.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/typings.d.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/angular-cli.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="630">
+ <caret line="42" column="15" lean-forward="false" selection-start-line="42" selection-start-column="15" selection-end-line="42" selection-end-column="15" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/package.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="690">
+ <caret line="48" column="1" lean-forward="false" selection-start-line="48" selection-start-column="1" selection-end-line="48" selection-end-column="1" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/index.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/environments/environment.prod.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/polyfills.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="270">
+ <caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
+ <folding>
+ <element signature="e#134#162#0" expanded="false" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/main.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="180">
+ <caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding>
+ <element signature="e#0#24#0" expanded="false" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/widgets/widgets.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="165">
+ <caret line="15" column="8" lean-forward="false" selection-start-line="15" selection-start-column="8" selection-end-line="15" selection-end-column="8" />
+ <folding>
+ <marker date="1486430727805" expanded="true" signature="250:416" ph="{...}" />
+ <marker date="1486430727805" expanded="true" signature="344:414" ph="[...]" />
+ <marker date="1486430727805" expanded="true" signature="446:449" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/styles.css">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="30">
+ <caret line="2" column="72" lean-forward="true" selection-start-line="2" selection-start-column="72" selection-end-line="2" selection-end-column="72" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/widgets/moblab-selector.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="300">
+ <caret line="20" column="2" lean-forward="false" selection-start-line="20" selection-start-column="2" selection-end-line="20" selection-end-column="25" />
+ <folding>
+ <marker date="1486499708277" expanded="true" signature="162:512" ph="..." />
+ <marker date="1486499708277" expanded="true" signature="183:503" ph="..." />
+ <marker date="1486499708277" expanded="true" signature="264:481" ph="..." />
+ <marker date="1486499708277" expanded="true" signature="373:472" ph="..." />
+ <marker date="1486499708277" expanded="true" signature="373:481" ph="..." />
+ <marker date="1486499708277" expanded="true" signature="423:462" ph="..." />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="135">
+ <caret line="9" column="25" lean-forward="false" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.spec.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="315">
+ <caret line="22" column="56" lean-forward="false" selection-start-line="22" selection-start-column="56" selection-end-line="22" selection-end-column="56" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/services/moblab-rpc.service.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="555">
+ <caret line="40" column="51" lean-forward="false" selection-start-line="40" selection-start-column="51" selection-end-line="40" selection-end-column="51" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/services/services.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="330">
+ <caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/run-suite/run-suite.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="225">
+ <caret line="19" column="3" lean-forward="true" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/manage-duts/manage-dut.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="23" selection-end-column="32" />
+ <folding>
+ <element signature="e#0#39#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/services/moblab-rpc-service-mock.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="480">
+ <caret line="32" column="77" lean-forward="true" selection-start-line="32" selection-start-column="77" selection-end-line="32" selection-end-column="77" />
+ <folding>
+ <element signature="e#0#41#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/run-suite/run-suite.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="300">
+ <caret line="67" column="23" lean-forward="true" selection-start-line="67" selection-start-column="23" selection-end-line="67" selection-end-column="23" />
+ <folding>
+ <element signature="e#0#59#0" expanded="true" />
+ <marker date="1486513834189" expanded="true" signature="187:1800" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="188:1674" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="215:438" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="466:701" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="729:964" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="992:1226" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="1254:1488" ph="..." />
+ <marker date="1486513834189" expanded="true" signature="1516:1673" ph="..." />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="345">
+ <caret line="23" column="29" lean-forward="false" selection-start-line="23" selection-start-column="29" selection-end-line="23" selection-end-column="29" />
+ <folding>
+ <element signature="e#0#39#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/configuration/configuration.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="345">
+ <caret line="23" column="26" lean-forward="false" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
+ <folding>
+ <element signature="e#0#39#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.module.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="465">
+ <caret line="31" column="0" lean-forward="true" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+ <folding>
+ <element signature="e#0#56#0" expanded="true" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/configuration/configuration.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/manage-duts/manage-dut.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="180">
+ <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/advanced-settings/advanced-settings.component.ts">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="180">
+ <caret line="12" column="0" lean-forward="true" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.css">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="420">
+ <caret line="28" column="1" lean-forward="true" selection-start-line="28" selection-start-column="1" selection-end-line="28" selection-end-column="1" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/src/app/app.component.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="210">
+ <caret line="14" column="15" lean-forward="true" selection-start-line="14" selection-start-column="15" selection-end-line="14" selection-end-column="15" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </component>
+</project>
\ No newline at end of file
diff --git a/partner_ui/moblab-partner-ui.iml b/partner_ui/moblab-partner-ui.iml
index ee7ee7d..887f744 100644
--- a/partner_ui/moblab-partner-ui.iml
+++ b/partner_ui/moblab-partner-ui.iml
@@ -4,6 +4,7 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/dist" />
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
</component>
diff --git a/partner_ui/package.json b/partner_ui/package.json
index f08e339..335a21f 100644
--- a/partner_ui/package.json
+++ b/partner_ui/package.json
@@ -16,12 +16,15 @@
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
+ "@angular/flex-layout": "^2.0.0-beta.4",
"@angular/forms": "^2.3.1",
"@angular/http": "^2.3.1",
+ "@angular/material": "^2.0.0-beta.1",
"@angular/platform-browser": "^2.3.1",
"@angular/platform-browser-dynamic": "^2.3.1",
"@angular/router": "^3.3.1",
"core-js": "^2.4.1",
+ "hammerjs": "^2.0.8",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",
"zone.js": "^0.7.2"
diff --git a/partner_ui/src/app/advanced-settings/advanced-settings.component.ts b/partner_ui/src/app/advanced-settings/advanced-settings.component.ts
new file mode 100644
index 0000000..d48b47d
--- /dev/null
+++ b/partner_ui/src/app/advanced-settings/advanced-settings.component.ts
@@ -0,0 +1,12 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'advanced-settings',
+ template: `
+ <h1> Advanced Settings TBD </h1>
+ `,
+})
+
+export class AdvancedSettingsComponent {
+
+}
diff --git a/partner_ui/src/app/advanced-settings/advanced-settings.module.ts b/partner_ui/src/app/advanced-settings/advanced-settings.module.ts
new file mode 100644
index 0000000..0b48f59
--- /dev/null
+++ b/partner_ui/src/app/advanced-settings/advanced-settings.module.ts
@@ -0,0 +1,24 @@
+import {NgModule} from '@angular/core';
+import {CommonModule} from "@angular/common";
+import {WidgetsModule} from '../widgets/widgets.module';
+import {MaterialModule} from '@angular/material';
+import {AdvancedSettingsComponent} from './advanced-settings.component';
+
+@NgModule({
+ declarations: [
+ AdvancedSettingsComponent,
+ ],
+ exports: [
+ AdvancedSettingsComponent,
+ ],
+ providers: [
+ ],
+ imports: [
+ MaterialModule.forRoot(),
+ CommonModule,
+ WidgetsModule,
+ ]
+
+})
+
+export class AdvancedSettingsModule { }
\ No newline at end of file
diff --git a/partner_ui/src/app/app.component.css b/partner_ui/src/app/app.component.css
index e69de29..12b5add 100644
--- a/partner_ui/src/app/app.component.css
+++ b/partner_ui/src/app/app.component.css
@@ -0,0 +1,29 @@
+.moblab-selector-label {
+ width: 150px;
+}
+
+md-sidenav {
+ width: 200px;
+ min-height: 4000px;
+}
+
+.sidenav-button {
+ width: 180px;
+ text-align: left;
+}
+
+.sidenav-container {
+ min-height: 800px;
+}
+
+.sidenav-container md-sidenav {
+ max-width: 200px;
+
+}
+
+.sidenav-container .md-sidenav-content,
+.sidenav-container md-sidenav {
+ display: flex;
+
+ align: left;
+}
\ No newline at end of file
diff --git a/partner_ui/src/app/app.component.html b/partner_ui/src/app/app.component.html
index ebbdce3..5498252 100644
--- a/partner_ui/src/app/app.component.html
+++ b/partner_ui/src/app/app.component.html
@@ -1,3 +1,55 @@
-<h1>Moblab</h1>
-<run-suite>Loading....</run-suite>
+<div [class.dark-theme]="isDarkTheme">
+ <md-toolbar color="primary">
+ <span>
+ <md-icon class="icon-20">pets</md-icon>
+ Moblab
+ </span>
+ <md-menu #appMenu="mdMenu">
+ <button md-menu-item> Settings </button>
+ <button md-menu-item> Help </button>
+ </md-menu>
+
+ <button md-icon-button [mdMenuTriggerFor]="appMenu">
+ <md-icon>more_vert</md-icon>
+ </button>
+ </md-toolbar>
+ <md-sidenav-container class="sidenav-container">
+ <md-sidenav mode="side" opened="true">
+ <md-list>
+ <md-list-item></md-list-item>
+ <md-list-item>
+ <button md-button class="sidenav-button"(click)="toShow = 'configuration'">Configuration</button>
+ </md-list-item>
+ <md-list-item>
+ <button md-button class="sidenav-button" (click)="toShow = 'advancedsettings'">Advanced Settings</button>
+ </md-list-item>
+ <md-list-item>
+ <button md-button class="sidenav-button" (click)="toShow = 'managedut'">Manage DUT's</button>
+ </md-list-item>
+ <md-list-item>
+ <button md-button class="sidenav-button" (click)="toShow = 'runsuite'">Run Suite</button>
+ </md-list-item>
+ </md-list>
+
+ </md-sidenav>
+ <div [ngSwitch]="toShow">
+ <md-card *ngSwitchCase="'configuration'">
+ <configuration>Loading....</configuration>
+ </md-card>
+ <md-card *ngSwitchCase="'advancedsettings'">
+ <advanced-settings>Loading....</advanced-settings>
+ </md-card>
+ <md-card *ngSwitchCase="'managedut'">
+ <manage-dut>Loading....</manage-dut>
+ </md-card>
+ <md-card *ngSwitchCase="'runsuite'">
+ <run-suite>Loading....</run-suite>
+ </md-card>
+ <md-card *ngSwitchDefault>
+ <h1> Something went wrong</h1>
+ AAAAAAAA{{toShow}}AAAAAAAAAA
+ </md-card>
+ </div>
+ </md-sidenav-container>
+</div>
diff --git a/partner_ui/src/app/app.component.ts b/partner_ui/src/app/app.component.ts
index 62bfbe0..c8e40d2 100644
--- a/partner_ui/src/app/app.component.ts
+++ b/partner_ui/src/app/app.component.ts
@@ -1,4 +1,4 @@
-import {Component} from '@angular/core';
+import {Component, Input} from '@angular/core';
@Component({
selector: 'app-root',
@@ -7,5 +7,10 @@
})
export class AppComponent {
+ @Input() toShow: string;
+
+ ngOnInit() {
+ this.toShow = "runsuite";
+ }
}
diff --git a/partner_ui/src/app/app.module.ts b/partner_ui/src/app/app.module.ts
index 1399f06..572c20b 100644
--- a/partner_ui/src/app/app.module.ts
+++ b/partner_ui/src/app/app.module.ts
@@ -1,9 +1,14 @@
-import { BrowserModule } from '@angular/platform-browser';
-import { NgModule } from '@angular/core';
+import {BrowserModule} from '@angular/platform-browser';
+import {NgModule} from '@angular/core';
-import { AppComponent } from './app.component';
-import { RunSuiteModule } from './run-suite/run-suite.module';
-import { ServicesModule} from './services/services.module';
+import {AppComponent} from './app.component';
+import {RunSuiteModule} from './run-suite/run-suite.module';
+import {ServicesModule} from './services/services.module';
+
+import {MaterialModule} from '@angular/material';
+import {ManageDutModule} from './manage-duts/manage-dut.module';
+import {ConfigurationModule} from './configuration/configuration.module';
+import {AdvancedSettingsModule} from './advanced-settings/advanced-settings.module';
@NgModule({
@@ -11,12 +16,17 @@
AppComponent,
],
imports: [
+ MaterialModule.forRoot(),
BrowserModule,
RunSuiteModule,
+ ManageDutModule,
+ ConfigurationModule,
+ AdvancedSettingsModule,
ServicesModule.forRoot(),
],
bootstrap: [AppComponent]
})
-export class AppModule { }
+export class AppModule {
+}
diff --git a/partner_ui/src/app/configuration/configuration.component.ts b/partner_ui/src/app/configuration/configuration.component.ts
new file mode 100644
index 0000000..c2a1190
--- /dev/null
+++ b/partner_ui/src/app/configuration/configuration.component.ts
@@ -0,0 +1,12 @@
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'configuration',
+ template: `
+ <h1> Configuration TBD </h1>
+ `,
+})
+
+export class ConfigurationComponent {
+
+}
diff --git a/partner_ui/src/app/configuration/configuration.module.ts b/partner_ui/src/app/configuration/configuration.module.ts
new file mode 100644
index 0000000..46066db
--- /dev/null
+++ b/partner_ui/src/app/configuration/configuration.module.ts
@@ -0,0 +1,24 @@
+import {NgModule} from '@angular/core';
+import {CommonModule} from "@angular/common";
+import {WidgetsModule} from '../widgets/widgets.module';
+import {MaterialModule} from '@angular/material';
+import {ConfigurationComponent} from './configuration.component';
+
+@NgModule({
+ declarations: [
+ ConfigurationComponent,
+ ],
+ exports: [
+ ConfigurationComponent,
+ ],
+ providers: [
+ ],
+ imports: [
+ MaterialModule.forRoot(),
+ CommonModule,
+ WidgetsModule,
+ ]
+
+})
+
+export class ConfigurationModule { }
\ No newline at end of file
diff --git a/partner_ui/src/app/manage-duts/manage-dut.component.ts b/partner_ui/src/app/manage-duts/manage-dut.component.ts
index dc5b508..76cc450 100644
--- a/partner_ui/src/app/manage-duts/manage-dut.component.ts
+++ b/partner_ui/src/app/manage-duts/manage-dut.component.ts
@@ -3,7 +3,7 @@
@Component({
selector: 'manage-dut',
template: `
- <h1> TBD </h1>
+ <h1> Manage DUT TBD </h1>
`,
})
diff --git a/partner_ui/src/app/manage-duts/manage-dut.module.ts b/partner_ui/src/app/manage-duts/manage-dut.module.ts
new file mode 100644
index 0000000..f395bfe
--- /dev/null
+++ b/partner_ui/src/app/manage-duts/manage-dut.module.ts
@@ -0,0 +1,24 @@
+import {NgModule} from '@angular/core';
+import {CommonModule} from "@angular/common";
+import {WidgetsModule} from '../widgets/widgets.module';
+import {MaterialModule} from '@angular/material';
+import {ManageDutComponent} from './manage-dut.component';
+
+@NgModule({
+ declarations: [
+ ManageDutComponent,
+ ],
+ exports: [
+ ManageDutComponent,
+ ],
+ providers: [
+ ],
+ imports: [
+ MaterialModule.forRoot(),
+ CommonModule,
+ WidgetsModule,
+ ]
+
+})
+
+export class ManageDutModule { }
\ No newline at end of file
diff --git a/partner_ui/src/app/run-suite/run-suite.component.ts b/partner_ui/src/app/run-suite/run-suite.component.ts
index 39f1b26..612eb98 100644
--- a/partner_ui/src/app/run-suite/run-suite.component.ts
+++ b/partner_ui/src/app/run-suite/run-suite.component.ts
@@ -4,59 +4,53 @@
@Component({
selector: 'run-suite',
template: `
- <table>
- <tr>
+ <md-list>
<moblab-selector
#boardSelector
[title] = "'Select board:'"
- [options] = "['Pick from available boards', 'veyron_jerry']"
+ [placeholder] = "['Pick from available boards']"
(update) = "boardChanged($event.value, $event.index)">
</moblab-selector>
<moblab-selector
#buildSelector
[title] = "'Select build:'"
- [options] = "['Pick from available builds']"
+ [placeholder] = "['Pick from available builds']"
(update) = "buildChanged($event.value, $event.index)">
>
</moblab-selector>
<moblab-selector
#suiteSelector
[title] = "'Select suite:'"
- [options] = "['Pick from available suites']"
+ [placeholder] = "['Pick from available suites']"
(update) = "suiteChanged($event.value, $event.index)">
>
</moblab-selector>
<moblab-selector
#rwFirmwareSelector
[title] = "'RW Firmware (Optional):'"
- [options] = "['Select the RW Firmware (Faft only) (Optional)']"
+ [placeholder] = "['Select the RW Firmware (Faft only) (Optional)']"
+ [isShown] = "false"
>
</moblab-selector>
<moblab-selector
#roFirmwareSelector
[title] = "'RO Firmware (Optional):'"
- [options] = "['Select the RO Firmware (Faft only) (Optional)']"
+ [placeholder] = "['Select the RO Firmware (Faft only) (Optional)']"
+ [isShown] = "false"
>
</moblab-selector>
<moblab-selector
#poolSelector
[title] = "'Pool (Optional):'"
- [options] = "['Select a pool']"
+ [placeholder] = "['Select a pool']"
>
</moblab-selector>
- </tr>
- </table>
- <button disabled #runSuiteButton (click)="onRunSuite()">Run Suite</button>
+ <button md-raised-button color="primary" disabled #runSuiteButton (click)="onRunSuite()">Run Suite</button>
+ </md-list>
`,
})
export class RunSuiteComponent implements OnInit {
- pickBoard = ["Pick from available boards"];
- pickBuild = ["Pick from available builds"];
- pickSuite = ["Pick from available suites"];
- pickRwFirmware = ["Select the RW Firmware (Faft only) (Optional)"];
- pickRoFirmware = ["Select the RO Firmware (Faft only) (Optional)"];
- pickSuites = ["Select a pool"];
suites = ["bvt-cq", "bvt-inline", "cts", "gts", "hardware_storagequal", "hardware_memoryqual",
"faft_setup", "faft_ec", "faft_bios"];
@@ -76,8 +70,7 @@
response => { boards = response },
error => { console.log("Error happened" + error) },
() => {
- this.boardSelector.options = this.pickBoard.concat(boards);
- this.boardSelector.setDisabled(false);
+ this.boardSelector.options = boards;
});
var pools: string;
@@ -85,50 +78,56 @@
response => { pools = response },
error => { console.log("Error happened" + error) },
() => {
- this.poolSelector.options = this.pickSuites.concat(pools);
- if (pools.length > 0) {
- this.poolSelector.setDisabled(false);
- }
+ this.poolSelector.options = pools;
});
}
boardChanged(boardName, selectedIndex) {
- if(selectedIndex == 0) {
- this.buildSelector.options = [].concat(this.pickBuild);
- this.buildSelector.setDisabled(true);
- } else {
- var builds: string;
- this.moblabRpcService.getBuilds(boardName).subscribe(
- response => { builds = response },
- error => { console.log("Error happened" + error) },
- () => {
- this.buildSelector.options = [].concat(this.pickBuild).concat(builds);
- this.buildSelector.setDisabled(false);
- });
- }
+ var builds: string;
+
+ this.moblabRpcService.getBuilds(boardName).subscribe(
+ response => { builds = response },
+ error => { console.log("Error happened" + error) },
+ () => {
+ this.buildSelector.options = builds;
+ });
+
}
- buildChanged(value, index) {
- if(index == 0) {
- this.suiteSelector.options = this.pickSuite;
- this.suiteSelector.setDisabled(true);
- } else {
- this.suiteSelector.options = this.pickSuite.concat(this.suites);
- this.suiteSelector.setDisabled(false);
- }
+ buildChanged(value) {
+ this.suiteSelector.options = this.suites;
};
- suiteChanged(value, index) {
- if(index != 0) {
- this.runSuiteButton.nativeElement.disabled = false;
+ suiteChanged(value) {
+ let suiteSelected: string = this.suiteSelector.getSelectedValue();
+ var showFirmware: boolean = false;
+ var builds: string;
+ let boardName = this.boardSelector.getSelectedValue();
+ if (suiteSelected == "faft_setup") {
+ showFirmware = true;
+ this.moblabRpcService.getFirmwareBuilds(boardName).subscribe(
+ response => {
+ builds = response
+ },
+ error => {
+ console.log("Error happened" + error)
+ },
+ () => {
+ this.rwFirmwareSelector.options = builds;
+ this.roFirmwareSelector.options = builds;
+ });
}
+ this.rwFirmwareSelector.setVisible(showFirmware);
+ this.roFirmwareSelector.setVisible(showFirmware);
+ this.runSuiteButton.disabled = false;
};
onRunSuite() {
this.moblabRpcService.runSuite(this.boardSelector.getSelectedValue(),
this.buildSelector.getSelectedValue(), this.suiteSelector.getSelectedValue(),
- this.poolSelector.getSelectedValue(), null, null).subscribe(
+ this.poolSelector.getSelectedValue(), this.rwFirmwareSelector.getSelectedValue(),
+ this.roFirmwareSelector.getSelectedValue()).subscribe(
response => { console.log(response) },
error => { console.log("Error happened" + error) });
}
diff --git a/partner_ui/src/app/run-suite/run-suite.module.ts b/partner_ui/src/app/run-suite/run-suite.module.ts
index 97a5171..b89f80d 100644
--- a/partner_ui/src/app/run-suite/run-suite.module.ts
+++ b/partner_ui/src/app/run-suite/run-suite.module.ts
@@ -2,6 +2,7 @@
import {CommonModule} from "@angular/common";
import {RunSuiteComponent} from './run-suite.component';
import {WidgetsModule} from '../widgets/widgets.module';
+import {MaterialModule} from '@angular/material';
@NgModule({
declarations: [
@@ -13,6 +14,7 @@
providers: [
],
imports: [
+ MaterialModule.forRoot(),
CommonModule,
WidgetsModule,
]
diff --git a/partner_ui/src/app/services/moblab-rpc-service-mock.ts b/partner_ui/src/app/services/moblab-rpc-service-mock.ts
new file mode 100644
index 0000000..feab2e9
--- /dev/null
+++ b/partner_ui/src/app/services/moblab-rpc-service-mock.ts
@@ -0,0 +1,36 @@
+import {Injectable} from "@angular/core";
+import {Observable} from "rxjs";
+
+@Injectable()
+export class MoblabRpcServiceMock {
+
+ private createMockObservable(data) : Observable<string> {
+ return Observable.from([data]).flatMap(
+ value => Observable.timer(1),
+ value => value
+ );
+ }
+
+ getBoards(): Observable<string> {
+ return this.createMockObservable(["cyan", "veyron_minnie"]);
+ }
+
+ getBuilds(board: string): Observable<string> {
+ return this.createMockObservable(["build1", "build2"]);
+ }
+
+ getFirmwareBuilds(board: string): Observable<string> {
+ return this.createMockObservable(["firmware1", "firmware2"]);
+ }
+
+ getPools(): Observable<string> {
+ return this.createMockObservable(["pool1", "pool2"]);
+ }
+
+ runSuite(board: string, build: string, suite: string, pool: string, rw_firmware: string,
+ ro_firmware: string){
+ console.log("run_suite", {"board": board, "build": build, "suite": suite,
+ "pool": pool, "rw_firmware": rw_firmware, "ro_firmware": ro_firmware});
+ return this.createMockObservable(null);
+ }
+}
diff --git a/partner_ui/src/app/services/moblab-rpc.service.ts b/partner_ui/src/app/services/moblab-rpc.service.ts
index 20bda3f..e817e76 100644
--- a/partner_ui/src/app/services/moblab-rpc.service.ts
+++ b/partner_ui/src/app/services/moblab-rpc.service.ts
@@ -21,7 +21,7 @@
// TODO(haddowk) mock out the RPC service for UI developement rather than using a local server.
//return this.http.post("http://" + window.location.hostname + "/afe/server/rpc/", content,
- return this.http.post("http://" + "100.96.49.106" + "/afe/server/rpc/", content,
+ return this.http.post("http://" + "100.96.49.226" + "/afe/server/rpc/", content,
{headers: headers, method: RequestMethod.Post, withCredentials: true})
.map((res:Response) => res.json().result)
.catch((error: any) => {
@@ -37,6 +37,10 @@
return this.sendRpcCall("get_builds_for_board", {"board_name": board});
}
+ getFirmwareBuilds(board: string): Observable<string> {
+ return this.sendRpcCall("get_firmware_for_board", {"board_name": board});
+ }
+
getPools(): Observable<string> {
return this.sendRpcCall("get_connected_pools", {});
}
diff --git a/partner_ui/src/app/services/services.module.ts b/partner_ui/src/app/services/services.module.ts
index 74b18db..6ff527f 100644
--- a/partner_ui/src/app/services/services.module.ts
+++ b/partner_ui/src/app/services/services.module.ts
@@ -1,6 +1,7 @@
import {NgModule} from '@angular/core';
import {MoblabRpcService} from './moblab-rpc.service';
import {HttpModule} from "@angular/http";
+import {MoblabRpcServiceMock} from "./moblab-rpc-service-mock";
@NgModule({
imports: [
@@ -12,7 +13,9 @@
static forRoot(){
return {
ngModule: ServicesModule,
- providers: [MoblabRpcService]
+ providers: [
+ { provide: MoblabRpcService, useClass: MoblabRpcServiceMock }
+ ]
}
}
}
diff --git a/partner_ui/src/app/widgets/moblab-selector.component.ts b/partner_ui/src/app/widgets/moblab-selector.component.ts
index 088f1ac..ec8c532 100644
--- a/partner_ui/src/app/widgets/moblab-selector.component.ts
+++ b/partner_ui/src/app/widgets/moblab-selector.component.ts
@@ -3,15 +3,15 @@
@Component({
selector: 'moblab-selector',
template: `
- <div>
- {{title}}
- <select disabled
- #sel
- (change)="update.emit({value:sel.value, index:sel.selectedIndex})">
- <option *ngFor="let option of options"
- value="{{option}}">{{option}}
- </option>
- </select>
+ <div *ngIf="isShown">
+ <md-list-item>
+ <label class="moblab-selector-label"> {{title}} </label>
+ <md-select
+ placeholder="{{placeholder}}"
+ [(ngModel)]="selectedValue" (ngModelChange)="onChange($event)">>
+ <md-option *ngFor="let option of options" [value]="option">{{option}}</md-option>
+ </md-select>
+ </md-list-item>
</div>
`,
styleUrls: ['../app.component.css'],
@@ -19,21 +19,28 @@
export class MoblabSelector {
@Input() title: string;
+ @Input() placeholder: string;
@Input() options: string[];
+ @Input() isShown: boolean = true;
@Output() update = new EventEmitter();
+ @Output() value: string = null;
- @ViewChild('sel', ) selector;
+ onChange(event) : void {
+ console.log(event);
+ this.value = event;
+ this.update.emit({value:event});
+ }
- setDisabled(newState) : void {
- this.selector.nativeElement.disabled=newState;
+ setVisible(newState) : void {
+ this.isShown = newState;
}
getSelectedValue() : string {
- if (this.selector.nativeElement.selectedIndex == 0) {
+ if (!this.isShown) {
return null;
} else {
- return this.selector.nativeElement.options[this.selector.nativeElement.selectedIndex].text;
+ return this.value;
}
}
}
diff --git a/partner_ui/src/app/widgets/widgets.module.ts b/partner_ui/src/app/widgets/widgets.module.ts
index 9b75ac5..3b64ea8 100644
--- a/partner_ui/src/app/widgets/widgets.module.ts
+++ b/partner_ui/src/app/widgets/widgets.module.ts
@@ -1,6 +1,8 @@
import {NgModule} from '@angular/core';
import {MoblabSelector} from './moblab-selector.component'
import {CommonModule} from "@angular/common";
+import {MaterialModule} from '@angular/material';
+import {FormsModule} from '@angular/forms';
@NgModule({
declarations: [
@@ -10,6 +12,8 @@
MoblabSelector,
],
imports: [
+ MaterialModule.forRoot(),
+ FormsModule,
CommonModule,
]
})
diff --git a/partner_ui/src/styles.css b/partner_ui/src/styles.css
index 90d4ee0..50d694b 100644
--- a/partner_ui/src/styles.css
+++ b/partner_ui/src/styles.css
@@ -1 +1,3 @@
/* You can add global styles to this file, and also import other style files */
+@import '~https://fonts.googleapis.com/icon?family=Material+Icons';
+@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';
\ No newline at end of file