summaryrefslogtreecommitdiff
path: root/src/components/Global/SilaComponents
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Global/SilaComponents')
-rw-r--r--src/components/Global/SilaComponents/DateSwitch.vue123
-rw-r--r--src/components/Global/SilaComponents/InventoryControlSystem.vue240
-rw-r--r--src/components/Global/SilaComponents/NtpPopover.vue136
-rw-r--r--src/components/Global/SilaComponents/Tables/AccessoryTable.vue101
-rw-r--r--src/components/Global/SilaComponents/Tables/AccessoryTableDrivers.vue116
-rw-r--r--src/components/Global/SilaComponents/Tables/AccessoryTablePower.vue105
-rw-r--r--src/components/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue104
-rw-r--r--src/components/Global/SilaComponents/colors.js8
8 files changed, 933 insertions, 0 deletions
diff --git a/src/components/Global/SilaComponents/DateSwitch.vue b/src/components/Global/SilaComponents/DateSwitch.vue
new file mode 100644
index 00000000..0769c734
--- /dev/null
+++ b/src/components/Global/SilaComponents/DateSwitch.vue
@@ -0,0 +1,123 @@
+<template>
+ <div class="fans-date-switch">
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'hour' }"
+ @click="switchTimeScale('hour')"
+ >{{ $t('global.date.lastHour') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'day' }"
+ @click="switchTimeScale('day')"
+ >{{ $t('global.date.lastDay') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'week' }"
+ @click="switchTimeScale('week')"
+ >{{ $t('global.date.lastWeek') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'mounth' }"
+ @click="switchTimeScale('mounth')"
+ >{{ $t('global.date.lastMounth') }}</span
+ >
+ <span
+ class="medium-12px scale-item"
+ :class="{ 'switch-active': timeScale === 'year' }"
+ @click="switchTimeScale('year')"
+ >{{ $t('global.date.lastYear') }}</span
+ >
+ <div class="slider" />
+ <div class="date-picker">
+ <img src="@/assets/images/calendar-icon.svg" />
+ <span class="medium-12px scale-item">{{
+ $t('global.date.selectDate')
+ }}</span>
+ </div>
+ <img class="date-clear" src="@/assets/images/clear-icon.svg" />
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ timeScale: {
+ type: String,
+ default: 'hour',
+ },
+ switchTimeScale: {
+ type: Function,
+ required: true,
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.fans-date-switch {
+ position: relative;
+
+ height: 48px;
+ padding: 0 16px 0 32px;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ gap: 24px;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.switch-active {
+ color: $red-brand-primary;
+ transition: ease-in 0.15s;
+}
+
+.slider {
+ position: absolute;
+ height: 0px;
+ border-bottom: 4px solid $red-brand-primary;
+ transition: ease-in 0.2s;
+ bottom: 0px;
+}
+
+.scale-item {
+ cursor: pointer;
+}
+
+.scale-item:nth-child(1).switch-active ~ .slider {
+ width: 92px;
+ left: 31px;
+}
+
+.scale-item:nth-child(2).switch-active ~ .slider {
+ left: 135px;
+ width: 105px;
+}
+
+.scale-item:nth-child(3).switch-active ~ .slider {
+ left: 255px;
+ width: 112px;
+}
+
+.scale-item:nth-child(4).switch-active ~ .slider {
+ left: 383px;
+ width: 107px;
+}
+
+.scale-item:nth-child(5).switch-active ~ .slider {
+ left: 508px;
+ width: 90px;
+}
+
+.date-picker {
+ display: flex;
+ align-items: center;
+ gap: 9px;
+}
+
+.date-clear {
+ margin-left: auto;
+ cursor: pointer;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/InventoryControlSystem.vue b/src/components/Global/SilaComponents/InventoryControlSystem.vue
new file mode 100644
index 00000000..9760f24f
--- /dev/null
+++ b/src/components/Global/SilaComponents/InventoryControlSystem.vue
@@ -0,0 +1,240 @@
+<template>
+ <page-section class="system-control-section">
+ <div class="system-control__table">
+ <div class="system-control__table__row">
+ <div class="system-control__table__cell">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.ReloadServer') }}
+ </span>
+ </div>
+ <popover
+ id="popover-reactive-1"
+ description="SystemDescription.ReloadOSAndServer"
+ popup="SystemDescription.ReloadOSAndServer_popup"
+ />
+ <popover
+ id="popover-reactive-2"
+ description="SystemDescription.ReloadServer"
+ popup="SystemDescription.ReloadServer_popup"
+ />
+ <div>
+ <span
+ class="regular-12px underline pointer"
+ @click="redirectConsole"
+ >
+ {{ $t('SystemDescription.ConnectToDesktop') }}
+ </span>
+ </div>
+ </div>
+
+ <div class="system-control__table__cell system-control__table__cell__2">
+ <div class="reload-progress__container">
+ <span class="regular-12px">
+ {{ $t('SystemDescription.status') }}
+ </span>
+ <span class="semi-bold-12px progress_bar_percent"
+ >{{ progress1.value }}%</span
+ >
+ <b-progress
+ class="reload-progress"
+ :value="progress1.value"
+ ></b-progress>
+ </div>
+ <div class="reload-progress__container">
+ <span class="regular-12px">
+ {{ $t('SystemDescription.status') }}
+ </span>
+ <span
+ v-if="progress2.value === null"
+ class="semi-bold-12px progress_bar_percent"
+ >{{ $t('SystemDescription.NotRunning') }}</span
+ >
+ <span v-else class="semi-bold-12px progress_bar_percent"
+ >{{ progress2.value }}%</span
+ >
+ <b-progress
+ class="reload-progress"
+ :value="progress2.value"
+ ></b-progress>
+ </div>
+ </div>
+
+ <div class="system-control__table__cell">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.OnOffServer') }}
+ </span>
+ </div>
+ <div>
+ <popover
+ id="popover-reactive-3"
+ description="SystemDescription.OffOsAndServer"
+ popup="SystemDescription.OffOsAndServer_popup"
+ button="global.action.off"
+ />
+ <popover
+ id="popover-reactive-4"
+ description="SystemDescription.OffServer"
+ popup="SystemDescription.OffServer_popup"
+ button="global.action.off"
+ />
+ </div>
+ </div>
+ </div>
+ <div class="system-control__table__row">
+ <div class="system-control__table__cell system-control__table__cell__4">
+ <div>
+ <span class="semi-bold-12px">
+ {{ $t('SystemDescription.title.setupDatetime') }}
+ </span>
+ </div>
+ <b-form @submit.prevent="onResetSubmit">
+ <b-form-radio-group
+ v-model="timeOption"
+ class="system-control__radio regular-12px"
+ >
+ <b-form-radio value="NTP">
+ {{ $t('SystemDescription.GetNtpFromServer') }}
+ </b-form-radio>
+ <b-form-radio value="serverDate">
+ {{ $t('SystemDescription.UseServerDatettime') }}
+ </b-form-radio>
+ </b-form-radio-group>
+ </b-form>
+ <ntp-popover
+ id="popover-reactive-5"
+ description="SystemDescription.NtpSettings"
+ />
+ </div>
+ </div>
+ </div>
+ </page-section>
+</template>
+
+<script>
+import PageSection from '@/components/Global/PageSection';
+import Popover from '@/components/Global/Popover';
+import NtpPopover from '@/components/Global/SilaComponents/NtpPopover';
+
+export default {
+ components: {
+ PageSection,
+ NtpPopover,
+ Popover,
+ },
+ data() {
+ return {
+ timeOption: 'resetBios',
+ picked: '',
+ options: [
+ { text: 'Toggle this custom radio', value: 'first' },
+ { text: 'Or toggle this other custom radio', value: 'second' },
+ ],
+ progress1: {
+ value: 90,
+ },
+ progress2: {
+ value: null,
+ },
+ };
+ },
+ methods: {
+ redirectConsole() {
+ this.$router.push('/console/kvm');
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+a {
+ list-style-type: none;
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.system-control-section {
+ position: relative;
+ margin: 16px 2rem 2rem !important;
+ width: 90%;
+}
+
+.system-control__table__row {
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: space-between;
+ width: 85%;
+}
+
+.system-control__table__cell {
+ display: flex;
+ flex-flow: column nowrap;
+ align-items: flex-start;
+ row-gap: 6px;
+}
+
+.system-control__table__cell__2 {
+ margin-top: 37px;
+ row-gap: 14px;
+}
+
+.reload-progress__container {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+ justify-content: space-between;
+ width: 100%;
+ column-gap: 4px;
+}
+
+.semi-bold-12px {
+ display: inline-block;
+}
+
+label {
+ padding-top: 5px;
+}
+.system-control__table__cell__4 {
+ margin-top: 26px;
+}
+
+.custom-radio ::before {
+ border: 1px solid $red-brand-primary;
+ background-color: #fff;
+ border-radius: 100%;
+}
+
+.system-control-section::v-deep
+ .custom-control-input:checked
+ ~ .custom-control-label::before {
+ border: 2px solid $red-brand-primary;
+ background-color: $red-brand-primary;
+ box-shadow: 0px 0px 0px 2.5px $white inset;
+ border-radius: 100%;
+}
+
+.system-control-section::v-deep
+ .custom-control-input:hover
+ ~ .custom-control-label::before {
+ background-color: $red-brand-primary-hover !important;
+ box-shadow: 0px 0px 0px 2.5px $white inset;
+ border-color: $red-brand-primary-hover;
+}
+
+.system-control-section::v-deep
+ .custom-control-input:checked
+ ~ .custom-control-label::after {
+ background-image: none !important;
+ border-radius: 100%;
+}
+
+.system-control-section::v-deep
+ .custom-control-input:active
+ ~ .custom-control-label::before {
+ background-color: $red-brand-primary-active !important;
+ box-shadow: 0px 0px 0px 2.5px $white inset;
+ border-color: $red-brand-primary-active;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/NtpPopover.vue b/src/components/Global/SilaComponents/NtpPopover.vue
new file mode 100644
index 00000000..918b1220
--- /dev/null
+++ b/src/components/Global/SilaComponents/NtpPopover.vue
@@ -0,0 +1,136 @@
+<template>
+ <div id="my-container">
+ <span :id="id" class="regular-12px underline" variant="primary">
+ {{ $t(description) }}
+ </span>
+ <!-- Our popover title and content render container -->
+ <b-popover
+ :target="id"
+ placement="auto"
+ container="my-container"
+ :show.sync="popoverShow"
+ @show="onShow"
+ >
+ <template #title>
+ <div class="popup-title">
+ <span class="bold-16px__caps">{{ $t(description) }}</span>
+ <b-button class="popup-title__button_close" @click="onClose">
+ <img src="@/assets/images/popups/x-icon.svg" />
+ </b-button>
+ </div>
+ </template>
+
+ <div class="popup-body">
+ <div class="popup-body__input-container">
+ <span class="regular-12px tretiatry"
+ >Введите адрес сервера (IP, FQDM)</span
+ >
+ <b-form-input
+ id="popover-input-1"
+ v-model="input1"
+ class="medium-12px"
+ ></b-form-input>
+ </div>
+ <b-button class="popover-button" variant="primary" @click="onClose">
+ {{ $t('global.action.save') }}
+ </b-button>
+ </div>
+ </b-popover>
+ </div>
+</template>
+
+<script>
+export default {
+ props: {
+ description: {
+ type: String,
+ default: '',
+ },
+ id: {
+ type: String,
+ default: '',
+ },
+ button: {
+ type: String,
+ default: 'Reload',
+ },
+ },
+ data() {
+ return {
+ input1: '',
+ popoverShow: false,
+ };
+ },
+ methods: {
+ onShow() {
+ this.$root.$emit('bv::hide::popover');
+ },
+ onClose() {
+ this.popoverShow = false;
+ },
+ },
+};
+</script>
+<style lang="scss" scoped>
+.form-group {
+ margin: 0;
+}
+
+.popup-title {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: baseline;
+}
+
+.popup-title__button_close {
+ margin: 0 28px 0 auto;
+ background: none;
+ border: none;
+ &:active {
+ background-color: $faint-secondary-primary-5-hover !important;
+ box-shadow: none !important;
+ border-radius: 8px;
+ }
+ &:focus-visible {
+ border: none !important;
+ border-radius: 8px;
+ }
+ &:focus {
+ box-shadow: none;
+ border-radius: 8px;
+ }
+}
+
+.popup-body {
+ display: flex;
+ flex-direction: column;
+ align-content: center;
+ justify-content: center;
+}
+
+.form-control {
+ width: 341px;
+ height: 52px;
+ margin: -25px auto;
+ padding-top: 30px;
+}
+
+.popover-button {
+ width: 341px;
+ height: 40px;
+ margin: 0 auto 10px;
+}
+
+.popup-body__input-container {
+ height: 52px;
+ margin: 24px auto 16px auto;
+}
+
+.tretiatry {
+ margin-left: 12px;
+}
+
+.underline {
+ cursor: pointer;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/Tables/AccessoryTable.vue b/src/components/Global/SilaComponents/Tables/AccessoryTable.vue
new file mode 100644
index 00000000..2b25d880
--- /dev/null
+++ b/src/components/Global/SilaComponents/Tables/AccessoryTable.vue
@@ -0,0 +1,101 @@
+<template>
+ <section class="bootstrap-table__section">
+ <b-table
+ responsive="md"
+ class="bootstrap-fans-table bootstrap-fans-table__stripes"
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../colors';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss">
+.bootstrap-fans-table__th {
+ background-color: transparent !important;
+ color: $text-primary !important;
+ border-top: none !important;
+ padding: 10px 5px !important;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.bootstrap-fans-table__td {
+ padding: 5px !important;
+ border-top: none !important;
+}
+</style>
+
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/Tables/AccessoryTableDrivers.vue b/src/components/Global/SilaComponents/Tables/AccessoryTableDrivers.vue
new file mode 100644
index 00000000..120a03a3
--- /dev/null
+++ b/src/components/Global/SilaComponents/Tables/AccessoryTableDrivers.vue
@@ -0,0 +1,116 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="bootstrap-fans-table bootstrap-fans-table__stripes"
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../colors';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss">
+.bootstrap-fans-table__th {
+ background-color: transparent !important;
+ color: $text-primary !important;
+ border-top: none !important;
+ padding: 10px 5px !important;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.bootstrap-fans-table__td {
+ padding: 5px !important;
+ border-top: none !important;
+}
+
+.SMART-table-col-first {
+ width: 34%;
+}
+
+.SMART-table-col-second {
+ width: 32%;
+}
+
+.SMART-table-col-last {
+ width: 39%;
+}
+</style>
+
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/Tables/AccessoryTablePower.vue b/src/components/Global/SilaComponents/Tables/AccessoryTablePower.vue
new file mode 100644
index 00000000..6f696b82
--- /dev/null
+++ b/src/components/Global/SilaComponents/Tables/AccessoryTablePower.vue
@@ -0,0 +1,105 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="bootstrap-fans-table bootstrap-fans-table__stripes"
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ <img src="@/assets/images/power-error-icon.svg" />
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../../../../views/Processors/DynamicInfo/helpers';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss">
+.bootstrap-fans-table__th {
+ background-color: transparent !important;
+ color: $text-primary !important;
+ border-top: none !important;
+ padding: 10px 5px !important;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.bootstrap-fans-table__td {
+ padding: 5px !important;
+ border-top: none !important;
+}
+</style>
+
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue b/src/components/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue
new file mode 100644
index 00000000..4974750a
--- /dev/null
+++ b/src/components/Global/SilaComponents/Tables/AccessoryTableWithLabel.vue
@@ -0,0 +1,104 @@
+<template>
+ <section class="bootstrap-table__section">
+ <span class="bold-12px__caps">
+ {{ $t('fansPage.valueIndicators') }}
+ </span>
+ <b-table
+ responsive="md"
+ class="bootstrap-fans-table bootstrap-fans-table__stripes"
+ :items="records.items"
+ :fields="records.fields"
+ >
+ <template #cell(name)="{ value, index }">
+ <div
+ class="fans-colors"
+ :style="`background-color: ${colors[index]}`"
+ ></div>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </template>
+ <template #cell(minDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #cell(maxDate)="{ value }">
+ <span class="regular-12px">
+ {{ value.time }}
+ </span>
+ <span class="regular-12px tretiatry">
+ {{ value.date }}
+ </span>
+ </template>
+ <template #head(currentPower)="{ label }">
+ <span class="semi-bold-12px">
+ {{ label }}
+ </span>
+ <span class="semi-bold-12px errors">
+ {{ '(15)' }}
+ </span>
+ </template>
+ <template #cell(currentPower)="{ value }">
+ <row>
+ <span class="light-12px">
+ {{ value }}
+ </span>
+ </row>
+ </template>
+ </b-table>
+ </section>
+</template>
+
+<script>
+import { colors } from '../../../../views/MemoryModules/DynamicInfo/helpers';
+
+export default {
+ props: {
+ records: {
+ type: Object,
+ default: null,
+ },
+ },
+ data() {
+ return {
+ colors,
+ };
+ },
+};
+</script>
+<style lang="scss">
+.bootstrap-fans-table__th {
+ background-color: transparent !important;
+ color: $text-primary !important;
+ border-top: none !important;
+ padding: 10px 5px !important;
+ border-bottom: 1px solid $faint-secondary-primary-10;
+}
+
+.bootstrap-fans-table__td {
+ padding: 5px !important;
+ border-top: none !important;
+}
+</style>
+
+<style lang="scss" scoped>
+.fans-colors {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+}
+.row {
+ align-items: center;
+ flex-wrap: nowrap;
+ justify-content: flex-end;
+}
+
+.errors {
+ color: $indicators-errors;
+}
+</style>
diff --git a/src/components/Global/SilaComponents/colors.js b/src/components/Global/SilaComponents/colors.js
new file mode 100644
index 00000000..de832de2
--- /dev/null
+++ b/src/components/Global/SilaComponents/colors.js
@@ -0,0 +1,8 @@
+export const colors = [
+ '#CB32F1',
+ '#F18638',
+ '#139BB9',
+ '#E1AB17',
+ '#175AE1',
+ '#13B937',
+];