Add Hardware status page and system table

Adds ability to see system information in table format with a row
expansion details view. Modified tables styles to add table borders.

Created global mixin for table data formatting:
- Show '--' for undefined or empty string values
- Map Redfish health status options to status-icon values

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: I5b45c37997647f5a265c1e84eb53f0b51699ee20
diff --git a/src/views/Health/HardwareStatus/HardwareStatus.vue b/src/views/Health/HardwareStatus/HardwareStatus.vue
new file mode 100644
index 0000000..9f34b53
--- /dev/null
+++ b/src/views/Health/HardwareStatus/HardwareStatus.vue
@@ -0,0 +1,34 @@
+<template>
+  <b-container fluid="xl">
+    <page-title />
+
+    <!-- System table -->
+    <table-system />
+  </b-container>
+</template>
+
+<script>
+import PageTitle from '@/components/Global/PageTitle';
+import TableSystem from './HardwareStatusTableStystem';
+import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
+
+export default {
+  components: { PageTitle, TableSystem },
+  mixins: [LoadingBarMixin],
+  created() {
+    this.startLoader();
+    const systemTablePromise = new Promise(resolve => {
+      this.$root.$on('hardwareStatus::system::complete', () => resolve());
+    });
+    // Combine all child component Promises to indicate
+    // when page data load complete
+    Promise.all([systemTablePromise]).finally(() => this.endLoader());
+  },
+  beforeRouteLeave(to, from, next) {
+    // Hide loader if user navigates away from page
+    // before requests complete
+    this.hideLoader();
+    next();
+  }
+};
+</script>