bfg-common 1.5.123 → 1.5.124

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 (124) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/perPage/PerPage.vue +58 -58
  4. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  5. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  6. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  7. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  8. package/components/common/context/lib/models/interfaces.ts +31 -31
  9. package/components/common/context/recursion/Recursion.vue +87 -87
  10. package/components/common/context/recursion/RecursionNew.vue +238 -238
  11. package/components/common/diagramMain/DiagramMain.vue +897 -897
  12. package/components/common/diagramMain/Header.vue +214 -214
  13. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  14. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  15. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  16. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  17. package/components/common/pages/home/headline/Headline.vue +45 -45
  18. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  19. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  20. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  21. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  22. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  23. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  24. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  25. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  26. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  27. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  28. package/components/common/pages/packages/Packages.vue +208 -208
  29. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  30. package/components/common/readyToComplete/New.vue +66 -66
  31. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  32. package/components/common/recursionTree/RecursionTree.vue +223 -223
  33. package/components/common/select/button/ButtonDropdown.vue +108 -108
  34. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  35. package/components/common/vm/actions/add/Add.vue +785 -785
  36. package/components/common/vm/actions/add/New.vue +556 -556
  37. package/components/common/vm/actions/add/Old.vue +371 -371
  38. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  39. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  40. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  41. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  42. package/components/common/vm/actions/clone/Clone.vue +801 -798
  43. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  44. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  45. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -149
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -74
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  76. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  77. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  90. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  91. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +100 -100
  92. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  93. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  94. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  95. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  96. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  97. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  98. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  99. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  100. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  101. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  102. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  103. package/components/common/vm/actions/common/select/storage/Storage.vue +131 -131
  104. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  105. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  106. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  107. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  108. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  109. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  110. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  111. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  112. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  113. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  114. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  115. package/composables/productNameLocal.ts +30 -30
  116. package/composables/useAppVersion.ts +21 -21
  117. package/package.json +1 -1
  118. package/plugins/date.ts +233 -233
  119. package/plugins/directives.ts +24 -24
  120. package/public/spice-console/lib/images/bitmap.js +203 -203
  121. package/public/spice-console/network/spicechannel.js +383 -383
  122. package/store/main/mutations.ts +7 -7
  123. package/store/main/state.ts +7 -7
  124. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,208 +1,208 @@
1
- <template>
2
- <div class="packages-page">
3
- <common-headline :headline="localization.common.softwarePackages" />
4
-
5
- <div class="grid-toolbar">
6
- <common-tools-actions
7
- test-id="packages-tools-panel"
8
- :actions="actions"
9
- @click="onClickAction"
10
- >
11
- <template #icon="{ data }">
12
- <span
13
- v-if="data.type === 'updates'"
14
- class="vx-icon-import icon"
15
- ></span>
16
- <span
17
- v-if="data.type === 'refresh'"
18
- class="vsphere-icon-reset icon"
19
- ></span>
20
- </template>
21
- </common-tools-actions>
22
- </div>
23
-
24
- <common-pages-packages-table-view
25
- v-model="selectedRow"
26
- :data-table="props.packagesData?.items || []"
27
- :total-items="props.packagesData?.total_items || 0"
28
- :total-pages="props.packagesData?.total_pages || 1"
29
- :pagination="pagination"
30
- :loading="props.loading"
31
- @pagination="onPagination"
32
- @sort="onSort"
33
- />
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_Pagination,
41
- } from '~/lib/models/table/interfaces'
42
- import type { UI_T_SelectedRow } from '~/components/atoms/table/dataGrid/lib/models/types'
43
- import type { UI_I_Button } from '~/components/common/tools/lib/models/interfaces'
44
- import type { UI_T_Action } from '~/components/common/pages/packages/lib/models/types'
45
- import { actionsFunc } from '~/components/common/pages/packages/lib/config/actions'
46
-
47
-
48
- const selectedRow = defineModel<UI_T_SelectedRow>('selectedRow')
49
- const pagination = defineModel<UI_I_Pagination>('pagination')
50
-
51
- const props = defineProps<{
52
- packagesData: any | null
53
- loading: boolean
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'sort', value: string): void
57
- (event: 'pagination', value: UI_I_Pagination): void
58
- (event: 'action', value: [UI_T_Action, FormData | null]): void
59
- (event: 'refresh'): void
60
- }>()
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const disabledActions = ref<string[]>([
65
- 'enable',
66
- 'disable',
67
- 'on',
68
- 'off',
69
- 'remove',
70
- ])
71
-
72
- const actions = computed<UI_I_Button[]>(() =>
73
- actionsFunc(localization.value, disabledActions.value)
74
- )
75
-
76
- const onPagination = (value: UI_I_Pagination): void => {
77
- emits('pagination', value)
78
- }
79
- const onSort = (value: string): void => {
80
- emits('sort', value)
81
- }
82
-
83
- const checkAllActions = (): void => {
84
- if (typeof selectedRow.value !== 'number') return
85
-
86
- const selectedPackage = props.packagesData?.items[selectedRow.value]
87
- if (!selectedPackage) return
88
-
89
- disabledActions.value = []
90
- if (window.location.hostname === 'dev-pn.aobfg.ru') return
91
-
92
- if (selectedPackage.not_runnable || selectedPackage.required) {
93
- disabledActions.value = ['enable', 'disable', 'on', 'off']
94
- }
95
-
96
- if (selectedPackage.required) {
97
- disabledActions.value = ['remove']
98
- }
99
- }
100
- watch(
101
- selectedRow,
102
- () => {
103
- checkAllActions()
104
- },
105
- { immediate: true }
106
- )
107
-
108
- const onAction = async (
109
- action: UI_T_Action,
110
- file: FormData | null = null
111
- ): Promise<void> => {
112
- emits('action', [action, file])
113
- }
114
- const onRefresh = (): void => {
115
- emits('refresh')
116
- }
117
- const onChangeFiles = (event: Event | undefined): void => {
118
- if (!event) return
119
-
120
- const target = event.target as HTMLInputElement
121
- if (!target.files) return
122
-
123
- const file = target.files[0]
124
-
125
- const formData = new FormData()
126
- formData.append('package', file)
127
- onAction('update', formData)
128
- }
129
-
130
- const onClickAction = (type: string, file?: Event): void => {
131
- switch (type) {
132
- case 'updates':
133
- onChangeFiles(file)
134
- break
135
- case 'refresh':
136
- onRefresh()
137
- break
138
- case 'enable':
139
- onAction('enable')
140
- break
141
- case 'disable':
142
- onAction('disable')
143
- break
144
- case 'on':
145
- onAction('on')
146
- break
147
- case 'off':
148
- onAction('off')
149
- break
150
- case 'remove':
151
- onAction('remove')
152
- break
153
- }
154
- }
155
- </script>
156
-
157
- <style>
158
- :root {
159
- --action-link-container-bg-color: #e9f6fd;
160
- --vui-action-label-color: #333;
161
- }
162
- :root.dark-theme {
163
- --action-link-container-bg-color: #29414e;
164
- --vui-action-label-color: #adbbc4;
165
- }
166
- </style>
167
-
168
- <style lang="scss" scoped>
169
- @import '~/assets/scss/common/mixins.scss';
170
-
171
- .packages-page {
172
- @include flex($dir: column);
173
- height: 100%;
174
-
175
- .grid-toolbar {
176
- .icon {
177
- display: block;
178
- width: 16px;
179
- height: 16px;
180
- min-width: 16px;
181
- min-height: 16px;
182
- background-size: 100% auto;
183
- margin-right: 5px;
184
- }
185
-
186
- :deep(.btn) {
187
- text-transform: none;
188
- font-size: 13px;
189
- font-weight: normal;
190
- color: var(--vui-action-label-color);
191
- min-width: unset;
192
- padding: 4px;
193
- line-height: normal;
194
- margin-right: 4px;
195
- display: flex;
196
- align-items: center;
197
- letter-spacing: normal;
198
-
199
- &:not(:disabled):hover {
200
- color: var(--vui-action-label-color);
201
- text-decoration: none;
202
- background-color: var(--action-link-container-bg-color);
203
- border: 1px solid #c7e9ff;
204
- }
205
- }
206
- }
207
- }
208
- </style>
1
+ <template>
2
+ <div class="packages-page">
3
+ <common-headline :headline="localization.common.softwarePackages" />
4
+
5
+ <div class="grid-toolbar">
6
+ <common-tools-actions
7
+ test-id="packages-tools-panel"
8
+ :actions="actions"
9
+ @click="onClickAction"
10
+ >
11
+ <template #icon="{ data }">
12
+ <span
13
+ v-if="data.type === 'updates'"
14
+ class="vx-icon-import icon"
15
+ ></span>
16
+ <span
17
+ v-if="data.type === 'refresh'"
18
+ class="vsphere-icon-reset icon"
19
+ ></span>
20
+ </template>
21
+ </common-tools-actions>
22
+ </div>
23
+
24
+ <common-pages-packages-table-view
25
+ v-model="selectedRow"
26
+ :data-table="props.packagesData?.items || []"
27
+ :total-items="props.packagesData?.total_items || 0"
28
+ :total-pages="props.packagesData?.total_pages || 1"
29
+ :pagination="pagination"
30
+ :loading="props.loading"
31
+ @pagination="onPagination"
32
+ @sort="onSort"
33
+ />
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_Pagination,
41
+ } from '~/lib/models/table/interfaces'
42
+ import type { UI_T_SelectedRow } from '~/components/atoms/table/dataGrid/lib/models/types'
43
+ import type { UI_I_Button } from '~/components/common/tools/lib/models/interfaces'
44
+ import type { UI_T_Action } from '~/components/common/pages/packages/lib/models/types'
45
+ import { actionsFunc } from '~/components/common/pages/packages/lib/config/actions'
46
+
47
+
48
+ const selectedRow = defineModel<UI_T_SelectedRow>('selectedRow')
49
+ const pagination = defineModel<UI_I_Pagination>('pagination')
50
+
51
+ const props = defineProps<{
52
+ packagesData: any | null
53
+ loading: boolean
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'sort', value: string): void
57
+ (event: 'pagination', value: UI_I_Pagination): void
58
+ (event: 'action', value: [UI_T_Action, FormData | null]): void
59
+ (event: 'refresh'): void
60
+ }>()
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ const disabledActions = ref<string[]>([
65
+ 'enable',
66
+ 'disable',
67
+ 'on',
68
+ 'off',
69
+ 'remove',
70
+ ])
71
+
72
+ const actions = computed<UI_I_Button[]>(() =>
73
+ actionsFunc(localization.value, disabledActions.value)
74
+ )
75
+
76
+ const onPagination = (value: UI_I_Pagination): void => {
77
+ emits('pagination', value)
78
+ }
79
+ const onSort = (value: string): void => {
80
+ emits('sort', value)
81
+ }
82
+
83
+ const checkAllActions = (): void => {
84
+ if (typeof selectedRow.value !== 'number') return
85
+
86
+ const selectedPackage = props.packagesData?.items[selectedRow.value]
87
+ if (!selectedPackage) return
88
+
89
+ disabledActions.value = []
90
+ if (window.location.hostname === 'dev-pn.aobfg.ru') return
91
+
92
+ if (selectedPackage.not_runnable || selectedPackage.required) {
93
+ disabledActions.value = ['enable', 'disable', 'on', 'off']
94
+ }
95
+
96
+ if (selectedPackage.required) {
97
+ disabledActions.value = ['remove']
98
+ }
99
+ }
100
+ watch(
101
+ selectedRow,
102
+ () => {
103
+ checkAllActions()
104
+ },
105
+ { immediate: true }
106
+ )
107
+
108
+ const onAction = async (
109
+ action: UI_T_Action,
110
+ file: FormData | null = null
111
+ ): Promise<void> => {
112
+ emits('action', [action, file])
113
+ }
114
+ const onRefresh = (): void => {
115
+ emits('refresh')
116
+ }
117
+ const onChangeFiles = (event: Event | undefined): void => {
118
+ if (!event) return
119
+
120
+ const target = event.target as HTMLInputElement
121
+ if (!target.files) return
122
+
123
+ const file = target.files[0]
124
+
125
+ const formData = new FormData()
126
+ formData.append('package', file)
127
+ onAction('update', formData)
128
+ }
129
+
130
+ const onClickAction = (type: string, file?: Event): void => {
131
+ switch (type) {
132
+ case 'updates':
133
+ onChangeFiles(file)
134
+ break
135
+ case 'refresh':
136
+ onRefresh()
137
+ break
138
+ case 'enable':
139
+ onAction('enable')
140
+ break
141
+ case 'disable':
142
+ onAction('disable')
143
+ break
144
+ case 'on':
145
+ onAction('on')
146
+ break
147
+ case 'off':
148
+ onAction('off')
149
+ break
150
+ case 'remove':
151
+ onAction('remove')
152
+ break
153
+ }
154
+ }
155
+ </script>
156
+
157
+ <style>
158
+ :root {
159
+ --action-link-container-bg-color: #e9f6fd;
160
+ --vui-action-label-color: #333;
161
+ }
162
+ :root.dark-theme {
163
+ --action-link-container-bg-color: #29414e;
164
+ --vui-action-label-color: #adbbc4;
165
+ }
166
+ </style>
167
+
168
+ <style lang="scss" scoped>
169
+ @import '~/assets/scss/common/mixins.scss';
170
+
171
+ .packages-page {
172
+ @include flex($dir: column);
173
+ height: 100%;
174
+
175
+ .grid-toolbar {
176
+ .icon {
177
+ display: block;
178
+ width: 16px;
179
+ height: 16px;
180
+ min-width: 16px;
181
+ min-height: 16px;
182
+ background-size: 100% auto;
183
+ margin-right: 5px;
184
+ }
185
+
186
+ :deep(.btn) {
187
+ text-transform: none;
188
+ font-size: 13px;
189
+ font-weight: normal;
190
+ color: var(--vui-action-label-color);
191
+ min-width: unset;
192
+ padding: 4px;
193
+ line-height: normal;
194
+ margin-right: 4px;
195
+ display: flex;
196
+ align-items: center;
197
+ letter-spacing: normal;
198
+
199
+ &:not(:disabled):hover {
200
+ color: var(--vui-action-label-color);
201
+ text-decoration: none;
202
+ background-color: var(--action-link-container-bg-color);
203
+ border: 1px solid #c7e9ff;
204
+ }
205
+ }
206
+ }
207
+ }
208
+ </style>
@@ -1,68 +1,68 @@
1
- <template>
2
- <div>
3
- <nuxt-link
4
- :class="['unit', { disabled: props.item.disabled }]"
5
- :to="!props.item.disabled && navigate"
6
- :title="
7
- props.item.disabled
8
- ? localization.common.inDevelopment
9
- : props.item.navigateTo
10
- "
11
- :data-id="props.testId"
12
- @click="emits('change-navigation')"
13
- @contextmenu="emits('change-navigation')"
14
- >
15
- <span class="icon-2">
16
- <ui-icon :name="props.item.iconName" width="34" height="34"></ui-icon>
17
- </span>
18
- <div class="unit-text" :title="props.item.text">
19
- {{ props.item.text }}
20
- </div>
21
- </nuxt-link>
22
- </div>
23
- </template>
24
- <script setup lang="ts">
25
- import type { UI_I_Localization } from '~/lib/models/interfaces'
26
- import type { UI_I_BlockItem } from '~/components/common/pages/shortcuts/lib/models/interfaces'
27
-
28
- const props = defineProps<{
29
- item: UI_I_BlockItem
30
- testId?: string
31
- }>()
32
- const emits = defineEmits<{
33
- (event: 'change-navigation'): void
34
- }>()
35
-
36
- const localization = computed<UI_I_Localization>(() => useLocal())
37
-
38
- const navigate = computed<string>(() => '/' + props.item.navigateTo)
39
- </script>
40
- <style lang="scss" scoped>
41
- .unit {
42
- display: flex;
43
- flex-direction: column;
44
- justify-content: center;
45
- align-items: center;
46
- width: 95px;
47
- margin: 21px 10px;
48
- text-decoration-line: none;
49
-
50
- &.disabled {
51
- opacity: 0.6;
52
- cursor: not-allowed;
53
- }
54
-
55
- .icon-2 {
56
- margin: 0 10px 15px 10px;
57
- color: var(--global-font-color3);
58
- }
59
- &-text {
60
- color: var(--global-font-color3);
61
- font-size: 13px;
62
- line-height: 13px;
63
- font-weight: 400;
64
- padding-bottom: 2px;
65
- text-align: center;
66
- }
67
- }
68
- </style>
1
+ <template>
2
+ <div>
3
+ <nuxt-link
4
+ :class="['unit', { disabled: props.item.disabled }]"
5
+ :to="!props.item.disabled && navigate"
6
+ :title="
7
+ props.item.disabled
8
+ ? localization.common.inDevelopment
9
+ : props.item.navigateTo
10
+ "
11
+ :data-id="props.testId"
12
+ @click="emits('change-navigation')"
13
+ @contextmenu="emits('change-navigation')"
14
+ >
15
+ <span class="icon-2">
16
+ <ui-icon :name="props.item.iconName" width="34" height="34"></ui-icon>
17
+ </span>
18
+ <div class="unit-text" :title="props.item.text">
19
+ {{ props.item.text }}
20
+ </div>
21
+ </nuxt-link>
22
+ </div>
23
+ </template>
24
+ <script setup lang="ts">
25
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
26
+ import type { UI_I_BlockItem } from '~/components/common/pages/shortcuts/lib/models/interfaces'
27
+
28
+ const props = defineProps<{
29
+ item: UI_I_BlockItem
30
+ testId?: string
31
+ }>()
32
+ const emits = defineEmits<{
33
+ (event: 'change-navigation'): void
34
+ }>()
35
+
36
+ const localization = computed<UI_I_Localization>(() => useLocal())
37
+
38
+ const navigate = computed<string>(() => '/' + props.item.navigateTo)
39
+ </script>
40
+ <style lang="scss" scoped>
41
+ .unit {
42
+ display: flex;
43
+ flex-direction: column;
44
+ justify-content: center;
45
+ align-items: center;
46
+ width: 95px;
47
+ margin: 21px 10px;
48
+ text-decoration-line: none;
49
+
50
+ &.disabled {
51
+ opacity: 0.6;
52
+ cursor: not-allowed;
53
+ }
54
+
55
+ .icon-2 {
56
+ margin: 0 10px 15px 10px;
57
+ color: var(--global-font-color3);
58
+ }
59
+ &-text {
60
+ color: var(--global-font-color3);
61
+ font-size: 13px;
62
+ line-height: 13px;
63
+ font-weight: 400;
64
+ padding-bottom: 2px;
65
+ text-align: center;
66
+ }
67
+ }
68
+ </style>