bfg-common 1.4.719 → 1.4.720

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 (134) hide show
  1. package/assets/localization/local_be.json +2 -2
  2. package/assets/localization/local_en.json +2 -2
  3. package/assets/localization/local_hy.json +2 -2
  4. package/assets/localization/local_kk.json +2 -2
  5. package/assets/localization/local_ru.json +2 -2
  6. package/assets/localization/local_zh.json +2 -2
  7. package/assets/scss/clarity/local_ar.json +2914 -0
  8. package/assets/scss/common/normalize.scss +361 -355
  9. package/components/atoms/TheIcon3.vue +50 -50
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1696 -1696
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +91 -91
  15. package/components/common/browse/BrowseNew.vue +237 -237
  16. package/components/common/browse/BrowseOld.vue +217 -217
  17. package/components/common/browse/blocks/contents/Files.vue +37 -37
  18. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  19. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/context/lib/models/interfaces.ts +30 -30
  22. package/components/common/context/recursion/Recursion.vue +86 -86
  23. package/components/common/context/recursion/RecursionOld.vue +213 -213
  24. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  25. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  26. package/components/common/layout/theHeader/lib/models/enums.ts +1 -0
  27. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +5 -2
  28. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +150 -150
  29. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +300 -284
  30. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  31. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  32. package/components/common/monitor/overview/filters/Filters.vue +232 -235
  33. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +240 -242
  34. package/components/common/monitor/overview/filters/customIntervalModal/lib/config/dateChecker.ts +52 -62
  35. package/components/common/pages/home/StatusContent.vue +49 -49
  36. package/components/common/pages/home/headline/Headline.vue +44 -44
  37. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  38. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  39. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  40. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  41. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  42. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  43. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  44. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  45. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  46. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  47. package/components/common/pages/home/widgets/vms/VmsNew.vue +101 -101
  48. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  49. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  50. package/components/common/recursionTree/RecursionTree.vue +223 -212
  51. package/components/common/select/button/ButtonDropdown.vue +108 -108
  52. package/components/common/selectLanguage/lib/config/config.ts +5 -0
  53. package/components/common/spiceConsole/Drawer.vue +370 -370
  54. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  55. package/components/common/split/vertical/Vertical.vue +160 -160
  56. package/components/common/vm/actions/add/Add.vue +616 -616
  57. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  58. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  59. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +269 -269
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -55
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -42
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  117. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  118. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  119. package/components/common/vm/actions/editSettings/EditSettings.vue +232 -232
  120. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +183 -183
  121. package/components/common/vm/actions/editSettings/new/New.vue +177 -177
  122. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  123. package/composables/productNameLocal.ts +30 -30
  124. package/composables/useAppVersion.ts +21 -21
  125. package/composables/useLocal.ts +5 -0
  126. package/layouts/auth.vue +1 -0
  127. package/package.json +1 -1
  128. package/plugins/date.ts +233 -233
  129. package/plugins/recursion.ts +311 -311
  130. package/public/spice-console/lib/images/bitmap.js +203 -203
  131. package/public/spice-console/network/spicechannel.js +383 -383
  132. package/store/main/mutations.ts +7 -7
  133. package/store/main/state.ts +7 -7
  134. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,86 +1,86 @@
1
- <template>
2
- <div class="home-total-quantities">
3
- <h1>
4
- {{ localization.home.totalQuantities }}
5
- </h1>
6
-
7
- <div :class="['grid-container', props.project === 'procurator' && 'mono']">
8
- <common-pages-home-widgets-vms :vms="vms" :loading="props.loading" />
9
-
10
- <common-pages-home-widgets-hosts
11
- v-if="props.project === 'sphere'"
12
- :hosts="hosts"
13
- :loading="props.loading"
14
- />
15
- </div>
16
- </div>
17
-
18
- <div class="home-total-warnings">
19
- <h1>
20
- {{ localization.home.totalAlertsWarnings }}
21
- </h1>
22
-
23
- <div class="grid-container">
24
- <common-pages-home-widgets-warnings
25
- :alerts="alerts || []"
26
- :loading="props.loading"
27
- />
28
-
29
- <common-pages-home-widgets-services
30
- :services="services || []"
31
- :loading="props.loading"
32
- />
33
- </div>
34
- </div>
35
- </template>
36
-
37
- <script lang="ts" setup>
38
- import type { UI_I_Localization } from '~/lib/models/interfaces'
39
- import type {
40
- UI_I_Alert,
41
- UI_I_Hosts,
42
- UI_I_Vms,
43
- UI_I_Service,
44
- } from '~/components/common/pages/home/lib/models/interfaces'
45
- import type { UI_T_Project } from '~/lib/models/types'
46
-
47
- const props = defineProps<{
48
- vms: UI_I_Vms
49
- hosts: UI_I_Hosts
50
- alerts: UI_I_Alert[]
51
- services: UI_I_Service[]
52
- loading: boolean
53
- project?: UI_T_Project
54
- }>()
55
-
56
- const localization = computed<UI_I_Localization>(() => useLocal())
57
- </script>
58
-
59
- <style lang="scss" scoped>
60
- .home-total-warnings,
61
- .home-total-quantities {
62
- margin-top: 24px;
63
- & > h1 {
64
- font-size: 14px;
65
- font-weight: 400;
66
- line-height: 16.94px;
67
- color: #9da6ad;
68
- margin-bottom: 12px;
69
- }
70
- }
71
-
72
- .grid-container {
73
- display: grid;
74
- grid-template-columns: repeat(2, 1fr);
75
- grid-column-gap: 12px;
76
-
77
- &.mono {
78
- grid-template-columns: 1fr;
79
- }
80
-
81
- @media (max-width: 1024px) {
82
- grid-template-columns: 1fr;
83
- grid-row-gap: 12px;
84
- }
85
- }
86
- </style>
1
+ <template>
2
+ <div class="home-total-quantities">
3
+ <h1>
4
+ {{ localization.home.totalQuantities }}
5
+ </h1>
6
+
7
+ <div :class="['grid-container', props.project === 'procurator' && 'mono']">
8
+ <common-pages-home-widgets-vms :vms="vms" :loading="props.loading" />
9
+
10
+ <common-pages-home-widgets-hosts
11
+ v-if="props.project === 'sphere'"
12
+ :hosts="hosts"
13
+ :loading="props.loading"
14
+ />
15
+ </div>
16
+ </div>
17
+
18
+ <div class="home-total-warnings">
19
+ <h1>
20
+ {{ localization.home.totalAlertsWarnings }}
21
+ </h1>
22
+
23
+ <div class="grid-container">
24
+ <common-pages-home-widgets-warnings
25
+ :alerts="alerts || []"
26
+ :loading="props.loading"
27
+ />
28
+
29
+ <common-pages-home-widgets-services
30
+ :services="services || []"
31
+ :loading="props.loading"
32
+ />
33
+ </div>
34
+ </div>
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+ import type {
40
+ UI_I_Alert,
41
+ UI_I_Hosts,
42
+ UI_I_Vms,
43
+ UI_I_Service,
44
+ } from '~/components/common/pages/home/lib/models/interfaces'
45
+ import type { UI_T_Project } from '~/lib/models/types'
46
+
47
+ const props = defineProps<{
48
+ vms: UI_I_Vms
49
+ hosts: UI_I_Hosts
50
+ alerts: UI_I_Alert[]
51
+ services: UI_I_Service[]
52
+ loading: boolean
53
+ project?: UI_T_Project
54
+ }>()
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+ </script>
58
+
59
+ <style lang="scss" scoped>
60
+ .home-total-warnings,
61
+ .home-total-quantities {
62
+ margin-top: 24px;
63
+ & > h1 {
64
+ font-size: 14px;
65
+ font-weight: 400;
66
+ line-height: 16.94px;
67
+ color: #9da6ad;
68
+ margin-bottom: 12px;
69
+ }
70
+ }
71
+
72
+ .grid-container {
73
+ display: grid;
74
+ grid-template-columns: repeat(2, 1fr);
75
+ grid-column-gap: 12px;
76
+
77
+ &.mono {
78
+ grid-template-columns: 1fr;
79
+ }
80
+
81
+ @media (max-width: 1024px) {
82
+ grid-template-columns: 1fr;
83
+ grid-row-gap: 12px;
84
+ }
85
+ }
86
+ </style>
@@ -1,34 +1,34 @@
1
- <template>
2
- <div class="clr-row">
3
- <common-pages-home-widgets-vms :vms="props.vms" :project="props.project" />
4
-
5
- <common-pages-home-widgets-hosts
6
- v-if="props.project === 'sphere'"
7
- :hosts="props.hosts"
8
- />
9
-
10
- <common-pages-home-widgets-warnings :alerts="props.alerts" />
11
-
12
- <common-pages-home-widgets-services :services="props.services" />
13
- </div>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import type {
18
- UI_I_Alert,
19
- UI_I_Hosts,
20
- UI_I_Vms,
21
- UI_I_Service,
22
- } from '~/components/common/pages/home/lib/models/interfaces'
23
- import type { UI_T_Project } from '~/lib/models/types'
24
-
25
- const props = defineProps<{
26
- vms: UI_I_Vms
27
- hosts: UI_I_Hosts
28
- alerts: UI_I_Alert[]
29
- services: UI_I_Service[]
30
- project?: UI_T_Project
31
- }>()
32
- </script>
33
-
34
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <div class="clr-row">
3
+ <common-pages-home-widgets-vms :vms="props.vms" :project="props.project" />
4
+
5
+ <common-pages-home-widgets-hosts
6
+ v-if="props.project === 'sphere'"
7
+ :hosts="props.hosts"
8
+ />
9
+
10
+ <common-pages-home-widgets-warnings :alerts="props.alerts" />
11
+
12
+ <common-pages-home-widgets-services :services="props.services" />
13
+ </div>
14
+ </template>
15
+
16
+ <script lang="ts" setup>
17
+ import type {
18
+ UI_I_Alert,
19
+ UI_I_Hosts,
20
+ UI_I_Vms,
21
+ UI_I_Service,
22
+ } from '~/components/common/pages/home/lib/models/interfaces'
23
+ import type { UI_T_Project } from '~/lib/models/types'
24
+
25
+ const props = defineProps<{
26
+ vms: UI_I_Vms
27
+ hosts: UI_I_Hosts
28
+ alerts: UI_I_Alert[]
29
+ services: UI_I_Service[]
30
+ project?: UI_T_Project
31
+ }>()
32
+ </script>
33
+
34
+ <style lang="scss" scoped></style>
@@ -1,27 +1,27 @@
1
- <template>
2
- <common-pages-home-widgets-hosts-new
3
- v-if="isNewView"
4
- :hosts="props.hosts"
5
- :loading="props.loading"
6
- />
7
-
8
- <common-pages-home-widgets-hosts-old
9
- v-else
10
- :hosts="props.hosts"
11
- />
12
- </template>
13
-
14
- <script lang="ts" setup>
15
- import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
16
-
17
- const props = defineProps<{
18
- hosts: UI_I_Hosts
19
- loading: boolean
20
- }>()
21
-
22
- const { $store }: any = useNuxtApp()
23
-
24
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
25
- </script>
26
-
27
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-pages-home-widgets-hosts-new
3
+ v-if="isNewView"
4
+ :hosts="props.hosts"
5
+ :loading="props.loading"
6
+ />
7
+
8
+ <common-pages-home-widgets-hosts-old
9
+ v-else
10
+ :hosts="props.hosts"
11
+ />
12
+ </template>
13
+
14
+ <script lang="ts" setup>
15
+ import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
16
+
17
+ const props = defineProps<{
18
+ hosts: UI_I_Hosts
19
+ loading: boolean
20
+ }>()
21
+
22
+ const { $store }: any = useNuxtApp()
23
+
24
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
25
+ </script>
26
+
27
+ <style lang="scss" scoped></style>
@@ -1,100 +1,100 @@
1
- <template>
2
- <ui-widget>
3
- <template v-if="props.loading">
4
- <common-pages-home-widgets-skeleton-total-quantities-item />
5
- </template>
6
- <div v-else class="card-content">
7
- <div class="card-content__title">
8
- <h1>{{ localization.common.hosts }}</h1>
9
- <span>({{ props.hosts.total }})</span>
10
- </div>
11
-
12
- <div class="card-content__container">
13
- <template v-for="({ text, value, icon }, key) in itemsLocal" :key="key">
14
- <div v-if="key > 0" class="divider"></div>
15
-
16
- <div class="card-content-item">
17
- <span :class="['icon', icon]"></span>
18
- <div class="label">{{ localization.common[text] }}</div>
19
- <div class="count">{{ value }}</div>
20
- </div>
21
- </template>
22
- </div>
23
- </div>
24
- </ui-widget>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import type { UI_I_Localization } from '~/lib/models/interfaces'
29
- import type {
30
- UI_I_Card,
31
- UI_I_Hosts,
32
- } from '~/components/common/pages/home/lib/models/interfaces'
33
- import { itemsFunc } from '~/components/common/pages/home/widgets/hosts/lib/config/items'
34
-
35
- const props = defineProps<{
36
- hosts: UI_I_Hosts
37
- loading: boolean
38
- }>()
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
-
42
- const itemsLocal = computed<UI_I_Card[]>(() => itemsFunc(props.hosts))
43
- </script>
44
-
45
- <style lang="scss" scoped>
46
- @import 'assets/scss/common/mixins.scss';
47
- .card-content {
48
- &__title {
49
- @include flex($align: center);
50
- color: var(--widget-text-first);
51
- margin-bottom: 16px;
52
- & > h1 {
53
- font-size: 16px;
54
- font-weight: 500;
55
- line-height: 19.36px;
56
- }
57
- & > span {
58
- font-size: 16px;
59
- font-weight: 500;
60
- margin-left: 5px;
61
- }
62
- }
63
- &__container {
64
- display: grid;
65
- grid-template-columns: 1fr auto 1fr auto 1fr;
66
- grid-column-gap: 12px;
67
- padding: 24px 0;
68
- box-sizing: border-box;
69
- }
70
- .divider {
71
- width: 1px;
72
- height: 100%;
73
- background-color: var(--horizontal-line);
74
- }
75
- .card-content-item {
76
- @include flex($align: center, $dir: column);
77
-
78
- .icon {
79
- width: 20px;
80
- height: 20px;
81
- margin-bottom: 8px;
82
- }
83
-
84
- .label {
85
- color: #9da6ad;
86
- font-size: 14px;
87
- font-weight: 500;
88
- line-height: 16.94px;
89
- margin-bottom: 12px;
90
- }
91
-
92
- .count {
93
- color: var(--widget-text-first);
94
- font-size: 16px;
95
- font-weight: 500;
96
- line-height: 19.36px;
97
- }
98
- }
99
- }
100
- </style>
1
+ <template>
2
+ <ui-widget>
3
+ <template v-if="props.loading">
4
+ <common-pages-home-widgets-skeleton-total-quantities-item />
5
+ </template>
6
+ <div v-else class="card-content">
7
+ <div class="card-content__title">
8
+ <h1>{{ localization.common.hosts }}</h1>
9
+ <span>({{ props.hosts.total }})</span>
10
+ </div>
11
+
12
+ <div class="card-content__container">
13
+ <template v-for="({ text, value, icon }, key) in itemsLocal" :key="key">
14
+ <div v-if="key > 0" class="divider"></div>
15
+
16
+ <div class="card-content-item">
17
+ <span :class="['icon', icon]"></span>
18
+ <div class="label">{{ localization.common[text] }}</div>
19
+ <div class="count">{{ value }}</div>
20
+ </div>
21
+ </template>
22
+ </div>
23
+ </div>
24
+ </ui-widget>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
29
+ import type {
30
+ UI_I_Card,
31
+ UI_I_Hosts,
32
+ } from '~/components/common/pages/home/lib/models/interfaces'
33
+ import { itemsFunc } from '~/components/common/pages/home/widgets/hosts/lib/config/items'
34
+
35
+ const props = defineProps<{
36
+ hosts: UI_I_Hosts
37
+ loading: boolean
38
+ }>()
39
+
40
+ const localization = computed<UI_I_Localization>(() => useLocal())
41
+
42
+ const itemsLocal = computed<UI_I_Card[]>(() => itemsFunc(props.hosts))
43
+ </script>
44
+
45
+ <style lang="scss" scoped>
46
+ @import 'assets/scss/common/mixins.scss';
47
+ .card-content {
48
+ &__title {
49
+ @include flex($align: center);
50
+ color: var(--widget-text-first);
51
+ margin-bottom: 16px;
52
+ & > h1 {
53
+ font-size: 16px;
54
+ font-weight: 500;
55
+ line-height: 19.36px;
56
+ }
57
+ & > span {
58
+ font-size: 16px;
59
+ font-weight: 500;
60
+ margin-left: 5px;
61
+ }
62
+ }
63
+ &__container {
64
+ display: grid;
65
+ grid-template-columns: 1fr auto 1fr auto 1fr;
66
+ grid-column-gap: 12px;
67
+ padding: 24px 0;
68
+ box-sizing: border-box;
69
+ }
70
+ .divider {
71
+ width: 1px;
72
+ height: 100%;
73
+ background-color: var(--horizontal-line);
74
+ }
75
+ .card-content-item {
76
+ @include flex($align: center, $dir: column);
77
+
78
+ .icon {
79
+ width: 20px;
80
+ height: 20px;
81
+ margin-bottom: 8px;
82
+ }
83
+
84
+ .label {
85
+ color: #9da6ad;
86
+ font-size: 14px;
87
+ font-weight: 500;
88
+ line-height: 16.94px;
89
+ margin-bottom: 12px;
90
+ }
91
+
92
+ .count {
93
+ color: var(--widget-text-first);
94
+ font-size: 16px;
95
+ font-weight: 500;
96
+ line-height: 19.36px;
97
+ }
98
+ }
99
+ }
100
+ </style>
@@ -1,23 +1,23 @@
1
- import type {
2
- UI_I_Card,
3
- UI_I_Hosts,
4
- } from '~/components/common/pages/home/lib/models/interfaces'
5
-
6
- export const itemsFunc = (hosts: UI_I_Hosts): UI_I_Card[] => [
7
- {
8
- value: hosts.connected,
9
- text: 'connected',
10
- icon: 'vsphere-icon-Host_Connect',
11
- },
12
- {
13
- value: hosts.disconnected,
14
- text: 'disconnected',
15
- icon: 'vsphere-icon-Host_Disconnect',
16
- },
17
-
18
- {
19
- value: hosts.maintenance,
20
- text: 'maintenance',
21
- icon: 'vsphere-icon-host-maintenance',
22
- },
23
- ]
1
+ import type {
2
+ UI_I_Card,
3
+ UI_I_Hosts,
4
+ } from '~/components/common/pages/home/lib/models/interfaces'
5
+
6
+ export const itemsFunc = (hosts: UI_I_Hosts): UI_I_Card[] => [
7
+ {
8
+ value: hosts.connected,
9
+ text: 'connected',
10
+ icon: 'vsphere-icon-Host_Connect',
11
+ },
12
+ {
13
+ value: hosts.disconnected,
14
+ text: 'disconnected',
15
+ icon: 'vsphere-icon-Host_Disconnect',
16
+ },
17
+
18
+ {
19
+ value: hosts.maintenance,
20
+ text: 'maintenance',
21
+ icon: 'vsphere-icon-host-maintenance',
22
+ },
23
+ ]