bfg-common 1.4.579 → 1.4.580

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -437
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -347
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -259
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -437
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -347
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -259
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  13. package/assets/scss/common/icons/icons-6.scss +156 -156
  14. package/assets/scss/common/theme.scss +321 -321
  15. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  16. package/components/common/browse/lib/models/interfaces.ts +5 -5
  17. package/components/common/diagramMain/Diagram.vue +377 -364
  18. package/components/common/diagramMain/DiagramMain.vue +894 -872
  19. package/components/common/diagramMain/Header.vue +211 -211
  20. package/components/common/diagramMain/adapter/AdapterItem.vue +2 -0
  21. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  22. package/components/common/diagramMain/adapter/Contents.vue +207 -189
  23. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  24. package/components/common/diagramMain/lib/config/positions.ts +194 -194
  25. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  26. package/components/common/diagramMain/lib/models/types.ts +21 -21
  27. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  28. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  29. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  30. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  31. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  32. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  33. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  34. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  35. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  36. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  37. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  38. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  39. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  40. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  41. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  42. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  43. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +537 -537
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  52. package/components/common/diagramMain/modals/viewSettings/info/InfoNew.vue +156 -155
  53. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalNew.vue +68 -63
  54. package/components/common/diagramMain/network/Contents.vue +491 -488
  55. package/components/common/diagramMain/network/noNetwork/NoNetworkNew.vue +1 -1
  56. package/components/common/diagramMain/port/Port.vue +2 -0
  57. package/components/common/diagramMain/port/Ports.vue +47 -47
  58. package/components/common/layout/theHeader/TheHeaderNew.vue +4 -10
  59. package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +4 -4
  60. package/components/common/layout/theHeader/userMenu/userMenuNew/lib/config/dropMenu.ts +1 -1
  61. package/components/common/pages/home/headline/HeadlineNew.vue +48 -71
  62. package/components/common/pages/home/resource/ResourceNew.vue +58 -63
  63. package/components/common/pages/home/widgets/WidgetsNew.vue +74 -79
  64. package/components/common/split/horizontal/HorizontalNew.vue +331 -354
  65. package/components/common/wizards/network/add/lib/config/steps.ts +464 -464
  66. package/package.json +2 -2
@@ -81,7 +81,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
81
81
 
82
82
  .no-associated-port-groups {
83
83
  font-size: 14px;
84
- font-weight: 400;
84
+ font-weight: 300;
85
85
  line-height: 16.94px;
86
86
  text-align: center;
87
87
  }
@@ -532,6 +532,8 @@ const onSelectPort = (networkId: string, portId: string): void => {
532
532
 
533
533
  :root.is-new-view {
534
534
  .port-text.text-ellipsis {
535
+ user-select: none;
536
+ -webkit-user-select: none;
535
537
  line-height: 25px;
536
538
  padding-left: 18px;
537
539
  color: var(--diagram-content-text);
@@ -1,47 +1,47 @@
1
- <template>
2
- <g>
3
- <template v-if="props.network.toggle">
4
- <template v-for="port in props.network.ports" :key="port.id">
5
- <common-diagram-main-port
6
- :network="props.network"
7
- :port="port"
8
- :is-dark-mode="props.isDarkMode"
9
- :selected-port="props.selectedPort"
10
- :selected-adapter="props.selectedAdapter"
11
- @select-port="onSelectPort"
12
- @show-modal="onShowModal"
13
- />
14
- </template>
15
- </template>
16
- </g>
17
- </template>
18
-
19
- <script setup lang="ts">
20
- import type {
21
- UI_I_ModalsInitialData,
22
- UI_I_NetworkFullWithPositions,
23
- UI_I_SelectedAdapter,
24
- UI_I_SelectedPort,
25
- } from '~/components/common/diagramMain/lib/models/interfaces'
26
-
27
- const props = defineProps<{
28
- network: UI_I_NetworkFullWithPositions
29
- selectedPort: UI_I_SelectedPort
30
- selectedAdapter: UI_I_SelectedAdapter
31
- isDarkMode: boolean
32
- }>()
33
-
34
- const emits = defineEmits<{
35
- (event: 'select-port', networkId: string, portId: string): void
36
- (
37
- event: 'show-modal',
38
- value: string,
39
- properties?: UI_I_ModalsInitialData
40
- ): void
41
- }>()
42
-
43
- const onSelectPort = (networkId: string, portId: string) =>
44
- emits('select-port', networkId, portId)
45
- const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
46
- emits('show-modal', value, properties)
47
- </script>
1
+ <template>
2
+ <g>
3
+ <template v-if="props.network.toggle">
4
+ <template v-for="port in props.network.ports" :key="port.id">
5
+ <common-diagram-main-port
6
+ :network="props.network"
7
+ :port="port"
8
+ :is-dark-mode="props.isDarkMode"
9
+ :selected-port="props.selectedPort"
10
+ :selected-adapter="props.selectedAdapter"
11
+ @select-port="onSelectPort"
12
+ @show-modal="onShowModal"
13
+ />
14
+ </template>
15
+ </template>
16
+ </g>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import type {
21
+ UI_I_ModalsInitialData,
22
+ UI_I_NetworkFullWithPositions,
23
+ UI_I_SelectedAdapter,
24
+ UI_I_SelectedPort,
25
+ } from '~/components/common/diagramMain/lib/models/interfaces'
26
+
27
+ const props = defineProps<{
28
+ network: UI_I_NetworkFullWithPositions
29
+ selectedPort: UI_I_SelectedPort
30
+ selectedAdapter: UI_I_SelectedAdapter
31
+ isDarkMode: boolean
32
+ }>()
33
+
34
+ const emits = defineEmits<{
35
+ (event: 'select-port', networkId: string, portId: string): void
36
+ (
37
+ event: 'show-modal',
38
+ value: string,
39
+ properties?: UI_I_ModalsInitialData
40
+ ): void
41
+ }>()
42
+
43
+ const onSelectPort = (networkId: string, portId: string) =>
44
+ emits('select-port', networkId, portId)
45
+ const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
46
+ emits('show-modal', value, properties)
47
+ </script>
@@ -89,7 +89,7 @@
89
89
  </span>
90
90
  </template>
91
91
  </ui-tooltip>
92
- <div class="divider right-divider-global-refresh" />
92
+ <div class="divider" />
93
93
  <div class="container-content">
94
94
  <common-layout-the-header-theme-switch
95
95
  :is-dark-theme="props.isDarkTheme"
@@ -178,13 +178,11 @@ const emits = defineEmits<{
178
178
 
179
179
  const localization = computed<UI_I_Localization>(() => useLocal())
180
180
 
181
- const { $store }: any = useNuxtApp()
181
+ const {$store}: any = useNuxtApp()
182
182
 
183
183
  const isMenuPined = computed(() => $store.getters['main/getIsMenuPined'])
184
184
 
185
- const mainMenuTriggerStatus = computed<boolean>(
186
- () => !props.isShowMainMenu || isMenuPined.value
187
- )
185
+ const mainMenuTriggerStatus = computed<boolean>(() => !props.isShowMainMenu || isMenuPined.value)
188
186
  </script>
189
187
 
190
188
  <style>
@@ -242,7 +240,6 @@ const mainMenuTriggerStatus = computed<boolean>(
242
240
  }
243
241
  :deep(#tooltip-inventory-menu-trigger-div) {
244
242
  z-index: 9999;
245
- transform: translate(13px, 0px);
246
243
  }
247
244
 
248
245
  .header-shortcuts-link {
@@ -275,10 +272,6 @@ const mainMenuTriggerStatus = computed<boolean>(
275
272
  width: 1px;
276
273
  height: 32px;
277
274
  background-color: #394a58;
278
-
279
- &.right-divider-global-refresh {
280
- margin-left: 16px;
281
- }
282
275
  }
283
276
 
284
277
  .global-refresh-button {
@@ -288,6 +281,7 @@ const mainMenuTriggerStatus = computed<boolean>(
288
281
  background: transparent;
289
282
  cursor: pointer;
290
283
  display: flex;
284
+ margin-right: 16px;
291
285
 
292
286
  .reset-icon {
293
287
  width: 24px;
@@ -51,13 +51,13 @@
51
51
  :class="['w-full flex items-center dropdown-item', item.iconName]"
52
52
  >
53
53
  <span v-if="item.iconName === 'lock'" class="flex ui-item-text">
54
- <ui-icon-icon3 :name="item.iconName" width="16" height="16" />
54
+ <ui-icon-icon3 :name="item.iconName" width="18" height="18" />
55
55
  </span>
56
- <span v-if="item.iconName === 'settings'" class="flex ui-item-text">
57
- <ui-icon :name="item.iconName" width="16" height="16" />
56
+ <span v-if="item.iconName === 'info'" class="flex ui-item-text">
57
+ <ui-icon :name="item.iconName" width="18" height="18" />
58
58
  </span>
59
59
  <span v-if="item.iconName === 'logout'" class="flex ui-item-text">
60
- <ui-icon :name="item.iconName" width="16" height="16" />
60
+ <ui-icon :name="item.iconName" width="18" height="18" />
61
61
  </span>
62
62
  <p class="ui-item-text truncate text-sm font-medium mt-0 mb-0 ml-2">
63
63
  {{ item.text }}
@@ -16,7 +16,7 @@ export const userMenuFunc = (
16
16
  value: 'preferences',
17
17
  testId: 'user-menu-preferences',
18
18
  divider: true,
19
- iconName: 'settings',
19
+ iconName: 'info',
20
20
  },
21
21
  {
22
22
  text: localization.common.logout,
@@ -1,71 +1,48 @@
1
- <template>
2
- <div class="container-flex">
3
- <h1>{{ localization.mainNavigation.home }}</h1>
4
-
5
- <ui-select
6
- v-if="isProjectSphere"
7
- v-model="selectedZoneModel"
8
- :items="selectItems"
9
- :disabled="!selectItems.length"
10
- width="165px"
11
- select-width="100%"
12
- size="sm"
13
- test-id="home-zone-select"
14
- >
15
- <template v-if="!selectItems.length" #toggleContent>
16
- <div class="default-toggle-content">
17
- <span class="default-icon vsphere-icon-vcenter"></span>
18
- <span class="text">{{ localization.common.default }}</span>
19
- </div>
20
- </template>
21
- </ui-select>
22
- </div>
23
- </template>
24
-
25
- <script lang="ts" setup>
26
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
27
- import type { UI_I_Localization } from '~/lib/models/interfaces'
28
- import type { UI_T_Project } from '~/lib/models/types'
29
-
30
- const props = defineProps<{
31
- project: UI_T_Project
32
- }>()
33
- const selectedZoneModel = defineModel<number>({ required: true })
34
-
35
- const localization = computed<UI_I_Localization>(() => useLocal())
36
-
37
- const isProjectSphere = computed<boolean>(() => props.project === 'sphere')
38
-
39
- const selectItems = computed<UI_I_Dropdown[]>(() => {
40
- return []
41
- })
42
- </script>
43
-
44
- <style lang="scss" scoped>
45
- @import '/assets/scss/common/mixins';
46
- .container-flex {
47
- @include flex($align: center, $just: space-between);
48
- & > h1 {
49
- color: var(--home-title-color);
50
- font-size: 22px;
51
- font-weight: 400;
52
- line-height: 26.63px;
53
- margin-bottom: 19px;
54
- }
55
-
56
- .default-toggle-content {
57
- display: flex;
58
- align-items: center;
59
- grid-gap: 8px;
60
-
61
- .default-icon {
62
- width: 20px;
63
- height: 20px;
64
- }
65
- .text {
66
- font-size: 13px;
67
- font-weight: 400;
68
- }
69
- }
70
- }
71
- </style>
1
+ <template>
2
+ <div class="container-flex">
3
+ <h1>{{ localization.mainNavigation.home }}</h1>
4
+
5
+ <ui-select
6
+ v-if="isProjectSphere"
7
+ v-model="selectedZoneModel"
8
+ :items="selectItems"
9
+ width="165px"
10
+ select-width="100%"
11
+ size="sm"
12
+ test-id="home-zone-select"
13
+ />
14
+ </div>
15
+ </template>
16
+
17
+ <script lang="ts" setup>
18
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
19
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
20
+ import type { UI_T_Project } from '~/lib/models/types'
21
+
22
+ const props = defineProps<{
23
+ project: UI_T_Project
24
+ }>()
25
+ const selectedZoneModel = defineModel<number>({ required: true })
26
+
27
+ const localization = computed<UI_I_Localization>(() => useLocal())
28
+
29
+ const isProjectSphere = computed<boolean>(() => props.project === 'sphere')
30
+
31
+ const selectItems = computed<UI_I_Dropdown[]>(() => {
32
+ return []
33
+ })
34
+ </script>
35
+
36
+ <style lang="scss" scoped>
37
+ @import '/assets/scss/common/mixins';
38
+ .container-flex {
39
+ @include flex($align: center, $just: space-between);
40
+ & > h1 {
41
+ color: var(--home-title-color);
42
+ font-size: 22px;
43
+ font-weight: 400;
44
+ line-height: 26.63px;
45
+ margin-bottom: 19px;
46
+ }
47
+ }
48
+ </style>
@@ -1,63 +1,58 @@
1
- <template>
2
- <div class="total-usages">
3
- <h1>{{ localization.home.totalUsages }}</h1>
4
- <div class="total-usages__container">
5
- <ui-widget v-for="(item, key) in resourceMeter" :key="key">
6
- <template v-if="props.loading">
7
- <ui-widget-items-skeleton-line-bar />
8
- </template>
9
- <ui-widget-items-progress-bar-linear
10
- v-else
11
- id="host-summary-memory"
12
- container-id="host"
13
- :icon="item.icon"
14
- :title="item.title"
15
- :data="item.data"
16
- :used-title="item.usedTitle"
17
- :capacity-title="item.capacityTitle"
18
- :status="item.status"
19
- />
20
- </ui-widget>
21
- </div>
22
- </div>
23
- </template>
24
-
25
- <script lang="ts" setup>
26
- import type { UI_I_Localization } from '~/lib/models/interfaces'
27
- import type { UI_I_Resources } from '~/components/common/resource/lib/models/interfaces'
28
- import type { UI_I_ResourceBlock } from '~/components/common/pages/home/resource/lib/models/interfaces'
29
- import { constructResourceMeter } from '~/components/common/pages/home/resource/lib/utils/resourceMeter'
30
-
31
- const props = defineProps<{
32
- items: UI_I_Resources[]
33
- loading: boolean
34
- }>()
35
-
36
- const localization = computed<UI_I_Localization>(() => useLocal())
37
-
38
- const resourceMeter = computed<UI_I_ResourceBlock[]>(() =>
39
- constructResourceMeter(props.items, localization.value)
40
- )
41
- </script>
42
-
43
- <style lang="scss" scoped>
44
- .total-usages {
45
- & > h1 {
46
- font-size: 14px;
47
- font-weight: 400;
48
- line-height: 16.94px;
49
- color: #9da6ad;
50
- margin-bottom: 12px;
51
- }
52
- &__container {
53
- display: grid;
54
- grid-template-columns: repeat(3, 1fr);
55
- grid-column-gap: 12px;
56
-
57
- @media (max-width: 1440px) {
58
- grid-template-columns: 1fr;
59
- grid-row-gap: 12px;
60
- }
61
- }
62
- }
63
- </style>
1
+ <template>
2
+ <div class="total-usages">
3
+ <h1>{{ localization.home.totalUsages }}</h1>
4
+ <div class="total-usages__container">
5
+ <ui-widget v-for="(item, key) in resourceMeter" :key="key">
6
+ <template v-if="props.loading">
7
+ <ui-widget-items-skeleton-line-bar />
8
+ </template>
9
+ <ui-widget-items-progress-bar-linear
10
+ v-else
11
+ id="host-summary-memory"
12
+ container-id="host"
13
+ :icon="item.icon"
14
+ :title="item.title"
15
+ :data="item.data"
16
+ :used-title="item.usedTitle"
17
+ :capacity-title="item.capacityTitle"
18
+ :status="item.status"
19
+ />
20
+ </ui-widget>
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script lang="ts" setup>
26
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
27
+ import type { UI_I_Resources } from '~/components/common/resource/lib/models/interfaces'
28
+ import type { UI_I_ResourceBlock } from '~/components/common/pages/home/resource/lib/models/interfaces'
29
+ import { constructResourceMeter } from '~/components/common/pages/home/resource/lib/utils/resourceMeter'
30
+
31
+ const props = defineProps<{
32
+ items: UI_I_Resources[]
33
+ loading: boolean
34
+ }>()
35
+
36
+ const localization = computed<UI_I_Localization>(() => useLocal())
37
+
38
+ const resourceMeter = computed<UI_I_ResourceBlock[]>(() =>
39
+ constructResourceMeter(props.items, localization.value)
40
+ )
41
+ </script>
42
+
43
+ <style lang="scss" scoped>
44
+ .total-usages {
45
+ & > h1 {
46
+ font-size: 14px;
47
+ font-weight: 400;
48
+ line-height: 16.94px;
49
+ color: #9da6ad;
50
+ margin-bottom: 12px;
51
+ }
52
+ &__container {
53
+ display: grid;
54
+ grid-template-columns: repeat(3, 1fr);
55
+ grid-column-gap: 12px;
56
+ }
57
+ }
58
+ </style>
@@ -1,79 +1,74 @@
1
- <template>
2
- <div class="home-total-quantities">
3
- <h1>
4
- {{ localization.home.totalQuantities }}
5
- </h1>
6
-
7
- <div class="grid-container">
8
- <common-pages-home-widgets-vms :vms="vms" :loading="props.loading" />
9
-
10
- <common-pages-home-widgets-hosts
11
- :hosts="hosts"
12
- :loading="props.loading"
13
- />
14
- </div>
15
- </div>
16
-
17
- <div class="home-total-warnings">
18
- <h1>
19
- {{ localization.home.totalAlertsWarnings }}
20
- </h1>
21
-
22
- <div class="grid-container">
23
- <common-pages-home-widgets-warnings
24
- :alerts="alerts || []"
25
- :loading="props.loading"
26
- />
27
-
28
- <common-pages-home-widgets-services
29
- :services="services || []"
30
- :loading="props.loading"
31
- />
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script lang="ts" setup>
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
- import type {
39
- UI_I_Alert,
40
- UI_I_Hosts,
41
- UI_I_Vms,
42
- UI_I_Service,
43
- } from '~/components/common/pages/home/lib/models/interfaces'
44
-
45
- const props = defineProps<{
46
- vms: UI_I_Vms
47
- hosts: UI_I_Hosts
48
- alerts: UI_I_Alert[]
49
- services: UI_I_Service[]
50
- loading: boolean
51
- }>()
52
-
53
- const localization = computed<UI_I_Localization>(() => useLocal())
54
- </script>
55
-
56
- <style lang="scss" scoped>
57
- .home-total-warnings,
58
- .home-total-quantities {
59
- margin-top: 24px;
60
- & > h1 {
61
- font-size: 14px;
62
- font-weight: 400;
63
- line-height: 16.94px;
64
- color: #9da6ad;
65
- margin-bottom: 12px;
66
- }
67
- }
68
-
69
- .grid-container {
70
- display: grid;
71
- grid-template-columns: repeat(2, 1fr);
72
- grid-column-gap: 12px;
73
-
74
- @media (max-width: 1024px) {
75
- grid-template-columns: 1fr;
76
- grid-row-gap: 12px;
77
- }
78
- }
79
- </style>
1
+ <template>
2
+ <div class="home-total-quantities">
3
+ <h1>
4
+ {{ localization.home.totalQuantities }}
5
+ </h1>
6
+
7
+ <div class="grid-container">
8
+ <common-pages-home-widgets-vms :vms="vms" :loading="props.loading" />
9
+
10
+ <common-pages-home-widgets-hosts
11
+ :hosts="hosts"
12
+ :loading="props.loading"
13
+ />
14
+ </div>
15
+ </div>
16
+
17
+ <div class="home-total-warnings">
18
+ <h1>
19
+ {{ localization.home.totalAlertsWarnings }}
20
+ </h1>
21
+
22
+ <div class="grid-container">
23
+ <common-pages-home-widgets-warnings
24
+ :alerts="alerts || []"
25
+ :loading="props.loading"
26
+ />
27
+
28
+ <common-pages-home-widgets-services
29
+ :services="services || []"
30
+ :loading="props.loading"
31
+ />
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script lang="ts" setup>
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type {
39
+ UI_I_Alert,
40
+ UI_I_Hosts,
41
+ UI_I_Vms,
42
+ UI_I_Service,
43
+ } from '~/components/common/pages/home/lib/models/interfaces'
44
+
45
+ const props = defineProps<{
46
+ vms: UI_I_Vms
47
+ hosts: UI_I_Hosts
48
+ alerts: UI_I_Alert[]
49
+ services: UI_I_Service[]
50
+ loading: boolean
51
+ }>()
52
+
53
+ const localization = computed<UI_I_Localization>(() => useLocal())
54
+ </script>
55
+
56
+ <style lang="scss" scoped>
57
+ .home-total-warnings,
58
+ .home-total-quantities {
59
+ margin-top: 24px;
60
+ & > h1 {
61
+ font-size: 14px;
62
+ font-weight: 400;
63
+ line-height: 16.94px;
64
+ color: #9da6ad;
65
+ margin-bottom: 12px;
66
+ }
67
+ }
68
+
69
+ .grid-container {
70
+ display: grid;
71
+ grid-template-columns: repeat(2, 1fr);
72
+ grid-column-gap: 12px;
73
+ }
74
+ </style>