bfg-common 1.5.708 → 1.5.709

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 (197) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-1.svg +2 -3
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +3 -4
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  8. package/assets/localization/local_be.json +46 -3
  9. package/assets/localization/local_en.json +46 -3
  10. package/assets/localization/local_hy.json +46 -3
  11. package/assets/localization/local_kk.json +46 -3
  12. package/assets/localization/local_ru.json +48 -5
  13. package/assets/localization/local_zh.json +46 -3
  14. package/assets/scss/common/icons/icons-1.scss +1 -1
  15. package/assets/scss/common/icons/icons-2.scss +18 -0
  16. package/assets/scss/common/theme.scss +2 -0
  17. package/assets/scss/components/auth.scss +32 -5
  18. package/components/atoms/TheIcon3.vue +50 -50
  19. package/components/atoms/collapse/CollapseNav.vue +170 -170
  20. package/components/atoms/dropdown/tree/Tree.vue +2 -0
  21. package/components/atoms/perPage/PerPage.vue +58 -58
  22. package/components/atoms/switch/Switch.vue +7 -1
  23. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  24. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  25. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  26. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  27. package/components/atoms/wizard/Wizard.vue +1 -1
  28. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  29. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  30. package/components/common/certificate/Certificate.vue +27 -0
  31. package/components/common/certificate/CertificateInfo.vue +139 -0
  32. package/components/common/certificate/Tools.vue +59 -0
  33. package/components/common/certificate/lib/config/tabsPannel.ts +22 -0
  34. package/components/common/certificate/lib/models/interfaces.ts +9 -0
  35. package/components/common/certificate/lib/models/types.ts +1 -0
  36. package/components/common/certificate/modals/renew/New.vue +64 -0
  37. package/components/common/certificate/modals/renew/Old.vue +122 -0
  38. package/components/common/certificate/modals/renew/Renew.vue +67 -0
  39. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  40. package/components/common/diagramMain/port/Port.vue +580 -580
  41. package/components/common/help/navbar/left/lib/utils/constructAccordion.ts +2 -1
  42. package/components/common/help/navbar/right/Right.vue +86 -23
  43. package/components/common/layout/theHeader/TheHeader.vue +186 -191
  44. package/components/common/layout/theHeader/TheHeaderNew.vue +3 -7
  45. package/components/common/layout/theHeader/TheHeaderOld.vue +3 -7
  46. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  47. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  48. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +2 -0
  49. package/components/common/layout/theHeader/userMenu/UserMenu.vue +109 -113
  50. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +12 -21
  51. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +36 -43
  52. package/components/common/layout/theHeader/userMenu/modals/changePassword/Old.vue +0 -2
  53. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/utils.ts +1 -1
  54. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +81 -86
  55. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +113 -102
  56. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +2 -4
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +114 -115
  58. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{ChangeLanguageNew.vue → New.vue} +65 -89
  59. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{ChangeLanguageOld.vue → Old.vue} +66 -91
  60. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +8 -7
  61. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{DefaultConsoleNew.vue → New.vue} +3 -3
  62. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{DefaultConsoleOld.vue → Old.vue} +2 -2
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +7 -8
  64. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{InventoryNew.vue → New.vue} +3 -2
  65. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{InventoryOld.vue → Old.vue} +2 -2
  66. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  67. package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +277 -12
  68. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +30 -56
  69. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +65 -6
  70. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{TimeFormatNew.vue → New.vue} +3 -3
  71. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{TimeFormatOld.vue → Old.vue} +2 -2
  72. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +8 -8
  73. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{ViewNew.vue → New.vue} +12 -3
  74. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{ViewOld.vue → Old.vue} +2 -2
  75. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +33 -45
  76. package/components/common/monitor/advanced/graphView/GraphView.vue +8 -0
  77. package/components/common/monitor/advanced/tools/Tools.vue +5 -1
  78. package/components/common/pages/auth/TheFooter.vue +104 -0
  79. package/components/common/pages/backups/DetailView.vue +52 -52
  80. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  81. package/components/common/pages/backups/modals/Modals.vue +243 -243
  82. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  83. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  84. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  85. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  86. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  87. package/components/common/pages/files/lib/models/enums.ts +10 -0
  88. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +7 -2
  89. package/components/common/pages/hardwareHealth/tableView/TableView.vue +8 -0
  90. package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +13 -1
  91. package/components/common/pages/hardwareHealth/toolsPanel/lib/config/actionsPanel.ts +4 -4
  92. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  93. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  94. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  95. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  96. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  97. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  98. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +1 -1
  99. package/components/common/qr/Qr.vue +69 -0
  100. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  101. package/components/common/select/radio/RadioGroup.vue +137 -137
  102. package/components/common/selectLanguage/SelectLanguage.vue +200 -200
  103. package/components/common/spiceConsole/Drawer.vue +420 -420
  104. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  105. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  106. package/components/common/split/horizontal/New.vue +0 -2
  107. package/components/common/split/vertical/New.vue +2 -1
  108. package/components/common/tools/Actions.vue +207 -207
  109. package/components/common/treeView/TreeView.vue +52 -52
  110. package/components/common/vm/actions/add/New.vue +1 -1
  111. package/components/common/vm/actions/add/Old.vue +1 -1
  112. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  113. package/components/common/vm/actions/clone/new/New.vue +438 -438
  114. package/components/common/vm/actions/clone/old/Old.vue +1 -0
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/New.vue +10 -34
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/Old.vue +15 -37
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +49 -50
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +1 -1
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces.ts +3 -1
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +13 -7
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/New.vue +7 -4
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +52 -45
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/Old.vue +5 -8
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +1 -3
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/New.vue +2 -2
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/Old.vue +2 -2
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/New.vue +1 -2
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/Old.vue +1 -2
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/New.vue +1 -1
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +1 -1
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/Old.vue +1 -1
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  136. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  137. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  139. package/components/common/vm/actions/common/select/options/Old.vue +1 -2
  140. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  141. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  142. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  143. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  144. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  145. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  146. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  147. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  148. package/components/common/wizards/common/compatibility/New.vue +1 -1
  149. package/components/common/wizards/common/compatibility/Old.vue +1 -1
  150. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  151. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  152. package/components/common/wizards/common/steps/name/New.vue +221 -221
  153. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  154. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  155. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  156. package/components/common/wizards/datastore/add/Add.vue +228 -228
  157. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +1 -0
  158. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +1 -0
  159. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  160. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +5 -0
  161. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +5 -0
  162. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -0
  163. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +114 -0
  164. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +114 -0
  165. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +2 -3
  166. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +8 -1
  167. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  168. package/components/common/wizards/vm/migrate/lib/models/enums.ts +2 -2
  169. package/components/common/wizards/vm/migrate/steps/selectStorage/SelectStorage.vue +4 -4
  170. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +6 -2
  171. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +18 -12
  172. package/composables/useAppVersion.ts +21 -21
  173. package/composables/useEnvLanguage.ts +7 -8
  174. package/composables/useLocal.ts +6 -6
  175. package/composables/useLocalCommon.ts +39 -39
  176. package/lib/models/interfaces.ts +1 -0
  177. package/package.json +3 -4
  178. package/plugins/console.ts +21 -21
  179. package/plugins/date.ts +14 -37
  180. package/plugins/mouse.ts +21 -21
  181. package/plugins/panelStates.ts +70 -70
  182. package/plugins/text.ts +59 -59
  183. package/public/spice-console/application/clientgui.js +854 -854
  184. package/public/spice-console/application/packetfactory.js +211 -211
  185. package/public/spice-console/application/virtualmouse.js +147 -147
  186. package/public/spice-console/lib/images/bitmap.js +203 -203
  187. package/public/spice-console/network/spicechannel.js +440 -440
  188. package/public/spice-console/process/cursorprocess.js +128 -128
  189. package/public/spice-console/process/inputprocess.js +227 -227
  190. package/public/spice-console/process/mainprocess.js +212 -212
  191. package/public/spice-console/run.js +210 -210
  192. package/store/main/getters.ts +2 -2
  193. package/store/main/mutations.ts +7 -7
  194. package/store/main/state.ts +7 -7
  195. package/store/tasks/mappers/recentTasks.ts +123 -123
  196. package/store/tasks/mutations.ts +82 -82
  197. package/components/common/qrcode/Qrcode.vue +0 -56
@@ -1,137 +1,137 @@
1
- <template>
2
- <div class="select-option">
3
- <div
4
- v-for="radio in options"
5
- :key="radio.id"
6
- v-permission="radio.permission"
7
- :class="['select-option__inner radio', radio.disabled && 'disabled']"
8
- >
9
- <div :class="['select-option__container', radio.value]">
10
- <div class="select-option__wrapper">
11
- <input
12
- :id="radio.id"
13
- v-model="selectedType"
14
- :data-id="radio.testId"
15
- :value="radio.value"
16
- :disabled="radio.disabled"
17
- type="radio"
18
- />
19
- <label :for="radio.id">{{ radio.label }}</label>
20
-
21
- <div
22
- v-if="'isTooltip' in radio"
23
- :id="`select-tooltip-icon-${radio.value}`"
24
- class="signpost-container relative"
25
- >
26
- <atoms-the-icon
27
- :data-id="`${radio.testId}-tooltip-toggle-icon`"
28
- fill="#0072a3"
29
- width="24px"
30
- height="24px"
31
- name="info-circle"
32
- @click="radio.isTooltip = !radio.isTooltip"
33
- />
34
- <atoms-tooltip-signpost
35
- v-if="radio.isTooltip"
36
- :elem-id="`select-tooltip-icon-${radio.value}`"
37
- :test-id="radio.testId"
38
- @hide="radio.isTooltip = false"
39
- >
40
- <div class="tooltip-content-container">
41
- <p>{{ radio.tooltipContent }}</p>
42
- </div>
43
- </atoms-tooltip-signpost>
44
- </div>
45
- </div>
46
-
47
- <slot
48
- v-if="$slots.beforeDescription"
49
- name="beforeDescription"
50
- :data="radio"
51
- ></slot>
52
- </div>
53
-
54
- <div v-if="radio.description" class="select-option__description">
55
- {{ radio.description }}
56
- </div>
57
-
58
- <slot
59
- v-if="$slots.afterDescription"
60
- name="afterDescription"
61
- :data="radio"
62
- ></slot>
63
- </div>
64
- </div>
65
- </template>
66
-
67
- <script lang="ts" setup>
68
- import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
69
-
70
- const props = defineProps<{
71
- modelValue: string | number
72
- options: UI_I_RadioOption[]
73
- }>()
74
- const emits = defineEmits<{
75
- (event: 'update:model-value', value: string | number): void
76
- }>()
77
-
78
- const options = ref<UI_I_RadioOption[]>([])
79
- watch(
80
- () => props.options,
81
- (newValue) => {
82
- options.value = newValue.map((option) => {
83
- return {
84
- ...option,
85
- id: option.id || `radio-btn-${useUniqueId()}`,
86
- }
87
- })
88
- },
89
- { immediate: true, deep: true }
90
- )
91
-
92
- const selectedType = computed<string | number>({
93
- get() {
94
- return props.modelValue
95
- },
96
- set(newValue) {
97
- emits('update:model-value', newValue)
98
- },
99
- })
100
- </script>
101
-
102
- <style lang="scss" scoped>
103
- @import 'assets/scss/common/mixins.scss';
104
- .select-option {
105
- &__container {
106
- @include flex($dir: column);
107
- }
108
- &__wrapper {
109
- @include flex($align: center);
110
- gap: 10px;
111
- .signpost-container {
112
- display: flex;
113
- cursor: pointer;
114
- .tooltip-content-container {
115
- max-width: 350px;
116
- }
117
- }
118
- }
119
- &__description {
120
- margin-left: 22px;
121
- word-break: break-word;
122
- }
123
- }
124
- .radio {
125
- margin-bottom: 5px;
126
- //&:nth-child(2) {
127
- //margin-top: 10px; // ?
128
- //}
129
- &.disabled {
130
- opacity: 0.7;
131
- }
132
- }
133
- input[type='radio']:focus:checked + label::before,
134
- input[type='radio']:focus + label::before {
135
- box-shadow: inset 0 0 0 0.25rem #0094d2;
136
- }
137
- </style>
1
+ <template>
2
+ <div class="select-option">
3
+ <div
4
+ v-for="radio in options"
5
+ :key="radio.id"
6
+ v-permission="radio.permission"
7
+ :class="['select-option__inner radio', radio.disabled && 'disabled']"
8
+ >
9
+ <div :class="['select-option__container', radio.value]">
10
+ <div class="select-option__wrapper">
11
+ <input
12
+ :id="radio.id"
13
+ v-model="selectedType"
14
+ :data-id="radio.testId"
15
+ :value="radio.value"
16
+ :disabled="radio.disabled"
17
+ type="radio"
18
+ />
19
+ <label :for="radio.id">{{ radio.label }}</label>
20
+
21
+ <div
22
+ v-if="'isTooltip' in radio"
23
+ :id="`select-tooltip-icon-${radio.value}`"
24
+ class="signpost-container relative"
25
+ >
26
+ <atoms-the-icon
27
+ :data-id="`${radio.testId}-tooltip-toggle-icon`"
28
+ fill="#0072a3"
29
+ width="24px"
30
+ height="24px"
31
+ name="info-circle"
32
+ @click="radio.isTooltip = !radio.isTooltip"
33
+ />
34
+ <atoms-tooltip-signpost
35
+ v-if="radio.isTooltip"
36
+ :elem-id="`select-tooltip-icon-${radio.value}`"
37
+ :test-id="radio.testId"
38
+ @hide="radio.isTooltip = false"
39
+ >
40
+ <div class="tooltip-content-container">
41
+ <p>{{ radio.tooltipContent }}</p>
42
+ </div>
43
+ </atoms-tooltip-signpost>
44
+ </div>
45
+ </div>
46
+
47
+ <slot
48
+ v-if="$slots.beforeDescription"
49
+ name="beforeDescription"
50
+ :data="radio"
51
+ ></slot>
52
+ </div>
53
+
54
+ <div v-if="radio.description" class="select-option__description">
55
+ {{ radio.description }}
56
+ </div>
57
+
58
+ <slot
59
+ v-if="$slots.afterDescription"
60
+ name="afterDescription"
61
+ :data="radio"
62
+ ></slot>
63
+ </div>
64
+ </div>
65
+ </template>
66
+
67
+ <script lang="ts" setup>
68
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
69
+
70
+ const props = defineProps<{
71
+ modelValue: string | number
72
+ options: UI_I_RadioOption[]
73
+ }>()
74
+ const emits = defineEmits<{
75
+ (event: 'update:model-value', value: string | number): void
76
+ }>()
77
+
78
+ const options = ref<UI_I_RadioOption[]>([])
79
+ watch(
80
+ () => props.options,
81
+ (newValue) => {
82
+ options.value = newValue.map((option) => {
83
+ return {
84
+ ...option,
85
+ id: option.id || `radio-btn-${useUniqueId()}`,
86
+ }
87
+ })
88
+ },
89
+ { immediate: true, deep: true }
90
+ )
91
+
92
+ const selectedType = computed<string | number>({
93
+ get() {
94
+ return props.modelValue
95
+ },
96
+ set(newValue) {
97
+ emits('update:model-value', newValue)
98
+ },
99
+ })
100
+ </script>
101
+
102
+ <style lang="scss" scoped>
103
+ @import 'assets/scss/common/mixins.scss';
104
+ .select-option {
105
+ &__container {
106
+ @include flex($dir: column);
107
+ }
108
+ &__wrapper {
109
+ @include flex($align: center);
110
+ gap: 10px;
111
+ .signpost-container {
112
+ display: flex;
113
+ cursor: pointer;
114
+ .tooltip-content-container {
115
+ max-width: 350px;
116
+ }
117
+ }
118
+ }
119
+ &__description {
120
+ margin-left: 22px;
121
+ word-break: break-word;
122
+ }
123
+ }
124
+ .radio {
125
+ margin-bottom: 5px;
126
+ //&:nth-child(2) {
127
+ //margin-top: 10px; // ?
128
+ //}
129
+ &.disabled {
130
+ opacity: 0.7;
131
+ }
132
+ }
133
+ input[type='radio']:focus:checked + label::before,
134
+ input[type='radio']:focus + label::before {
135
+ box-shadow: inset 0 0 0 0.25rem #0094d2;
136
+ }
137
+ </style>
@@ -1,200 +1,200 @@
1
- <template>
2
- <div :class="['language-dropdown', props.size]">
3
- <ui-select
4
- v-model="selectedLang"
5
- :items="itemsLocal"
6
- :disabled="props.disabled"
7
- :size="props.size"
8
- width="max-content"
9
- max-height="inherit"
10
- test-id="select-language"
11
- arrow-stroke-width="2.4"
12
- >
13
- <template #toggleContent>
14
- <span class="language-dropdown__icon content-icon"
15
- ><ui-icon
16
- :name="selectedLang?.iconName"
17
- :height="props.size === 'sm' ? '16' : '13'"
18
- :width="props.size === 'sm' ? '24' : '19'"
19
- ></ui-icon
20
- ></span>
21
- <span class="ui-selected-text text-ellipsis">{{
22
- selectedLang?.text
23
- }}</span>
24
- </template>
25
- <template #row="{ item }">
26
- <span class="language-dropdown__icon dropdown-icon">
27
- <ui-icon
28
- :name="item.iconName"
29
- :height="props.size === 'sm' ? '16' : '13'"
30
- :width="props.size === 'sm' ? '24' : '19'"
31
- ></ui-icon>
32
- </span>
33
- <span class="ui-item-text">{{ item.text }}</span>
34
- </template>
35
- </ui-select>
36
- </div>
37
- </template>
38
-
39
- <script lang="ts" setup>
40
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
- // import { findInLocals } from '~/components/common/selectLanguage/lib/utils/utils'
42
-
43
- const props = withDefaults(
44
- defineProps<{
45
- normalizeLang: UI_I_Dropdown[]
46
- modelValue: UI_I_Dropdown
47
- disabled?: boolean
48
- width?: string
49
- size?: 'sm' | 'xs'
50
- }>(),
51
- {
52
- disabled: false,
53
- width: '114px',
54
- size: 'xs',
55
- }
56
- )
57
-
58
- const emits = defineEmits<{
59
- (event: 'update:model-value', newValue: UI_I_Dropdown): void
60
- }>()
61
-
62
- const selectedLang = computed<UI_I_Dropdown>({
63
- get() {
64
- return props.modelValue
65
- },
66
- set(newValue: UI_I_Dropdown) {
67
- emits('update:model-value', newValue)
68
- },
69
- })
70
-
71
- const itemsLocal = computed(() => {
72
- return props.normalizeLang.filter((lang) => !lang.disabled)
73
- })
74
- </script>
75
-
76
- <style lang="scss" scoped>
77
- .language-dropdown {
78
- &.xs {
79
- .language-dropdown__icon {
80
- margin-right: 8px;
81
- &.content-icon {
82
- margin-right: 6px;
83
- }
84
- }
85
-
86
- :deep(.ui-select-container.xs) {
87
- .ui-select-toggle-button {
88
- padding: 6px 8px 6px 10px;
89
-
90
- .ui-selected-text {
91
- font-size: 13px;
92
- line-height: 16px;
93
- font-weight: 500;
94
- }
95
-
96
- height: 28px;
97
- border-radius: 6px;
98
- }
99
-
100
- &.disabled .ui-select-toggle-button .ui-selected-text {
101
- color: var(--select-disabled-text);
102
- }
103
-
104
- .ui-select-fieldset {
105
- border-radius: 6px;
106
- }
107
-
108
- .ui-dropdown.xs .ui-dropdown-menu-item {
109
- height: 28px;
110
- padding: 0 6px !important;
111
- }
112
-
113
- .ui-arrow-icon {
114
- width: 14px;
115
- height: 14px;
116
-
117
- svg {
118
- width: 14px;
119
- height: 14px;
120
- }
121
- }
122
- }
123
-
124
- font-size: 13px;
125
- line-height: 16px;
126
- font-weight: 500;
127
- }
128
-
129
- &.sm {
130
- .language-dropdown__icon {
131
- margin-right: 8px;
132
- &.content-icon {
133
- margin-right: 8px;
134
- }
135
- }
136
-
137
- :deep(.ui-select-container.sm) {
138
- .ui-select-toggle-button {
139
- padding: 8px 8px 8px 10px;
140
- .ui-selected-text {
141
- font-size: 14px;
142
- line-height: 16px;
143
- font-weight: 500;
144
- }
145
- height: 32px;
146
- }
147
-
148
- .ui-arrow-icon {
149
- width: 16px;
150
- height: 16px;
151
-
152
- svg {
153
- width: 16px;
154
- height: 16px;
155
- }
156
- }
157
-
158
- .ui-dropdown-menu.md .ui-dropdown-menu-item .ui-item-text {
159
- font-size: 14px;
160
- }
161
- }
162
-
163
- font-size: 14px;
164
- line-height: 16px;
165
- font-weight: 500;
166
- }
167
-
168
- :deep(.ui-dropdown-menu-item) {
169
- display: flex;
170
- align-items: center;
171
- border-radius: 4px;
172
-
173
- &:not(:last-child) {
174
- margin-bottom: 8px;
175
- }
176
- &:not(.disabled):not(.selected):hover {
177
- background-color: var(--dropdown-item-hover-bg-color);
178
-
179
- .ui-item-text {
180
- color: var(--dropdown-item-hover-color);
181
- }
182
- }
183
-
184
- & .ui-item-text {
185
- color: var(--dropdown-item-color);
186
- font-weight: 500;
187
- }
188
-
189
- &.selected {
190
- .ui-item-text {
191
- color: var(--dropdown-item-selected-color);
192
- }
193
- }
194
- }
195
-
196
- &__icon {
197
- display: flex;
198
- }
199
- }
200
- </style>
1
+ <template>
2
+ <div :class="['language-dropdown', props.size]">
3
+ <ui-select
4
+ v-model="selectedLang"
5
+ :items="itemsLocal"
6
+ :disabled="props.disabled"
7
+ :size="props.size"
8
+ width="max-content"
9
+ max-height="inherit"
10
+ test-id="select-language"
11
+ arrow-stroke-width="2.4"
12
+ >
13
+ <template #toggleContent>
14
+ <span class="language-dropdown__icon content-icon">
15
+ <ui-icon
16
+ :name="selectedLang?.iconName"
17
+ :height="props.size === 'sm' ? '16' : '13'"
18
+ :width="props.size === 'sm' ? '24' : '19'"
19
+ />
20
+ </span>
21
+ <span class="ui-selected-text text-ellipsis">{{
22
+ selectedLang?.text
23
+ }}</span>
24
+ </template>
25
+ <template #row="{ item }">
26
+ <span class="language-dropdown__icon dropdown-icon">
27
+ <ui-icon
28
+ :name="item.iconName"
29
+ :height="props.size === 'sm' ? '16' : '13'"
30
+ :width="props.size === 'sm' ? '24' : '19'"
31
+ />
32
+ </span>
33
+ <span class="ui-item-text">{{ item.text }}</span>
34
+ </template>
35
+ </ui-select>
36
+ </div>
37
+ </template>
38
+
39
+ <script lang="ts" setup>
40
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
41
+ // import { findInLocals } from '~/components/common/selectLanguage/lib/utils/utils'
42
+
43
+ const props = withDefaults(
44
+ defineProps<{
45
+ normalizeLang: UI_I_Dropdown[]
46
+ modelValue: UI_I_Dropdown
47
+ disabled?: boolean
48
+ width?: string
49
+ size?: 'sm' | 'xs'
50
+ }>(),
51
+ {
52
+ disabled: false,
53
+ width: '114px',
54
+ size: 'xs',
55
+ }
56
+ )
57
+
58
+ const emits = defineEmits<{
59
+ (event: 'update:model-value', newValue: UI_I_Dropdown): void
60
+ }>()
61
+
62
+ const selectedLang = computed<UI_I_Dropdown>({
63
+ get() {
64
+ return props.modelValue
65
+ },
66
+ set(newValue: UI_I_Dropdown) {
67
+ emits('update:model-value', newValue)
68
+ },
69
+ })
70
+
71
+ const itemsLocal = computed(() => {
72
+ return props.normalizeLang.filter((lang) => !lang.disabled)
73
+ })
74
+ </script>
75
+
76
+ <style lang="scss" scoped>
77
+ .language-dropdown {
78
+ &.xs {
79
+ .language-dropdown__icon {
80
+ margin-right: 8px;
81
+ &.content-icon {
82
+ margin-right: 6px;
83
+ }
84
+ }
85
+
86
+ :deep(.ui-select-container.xs) {
87
+ .ui-select-toggle-button {
88
+ padding: 6px 8px 6px 10px;
89
+
90
+ .ui-selected-text {
91
+ font-size: 13px;
92
+ line-height: 16px;
93
+ font-weight: 500;
94
+ }
95
+
96
+ height: 28px;
97
+ border-radius: 6px;
98
+ }
99
+
100
+ &.disabled .ui-select-toggle-button .ui-selected-text {
101
+ color: var(--select-disabled-text);
102
+ }
103
+
104
+ .ui-select-fieldset {
105
+ border-radius: 6px;
106
+ }
107
+
108
+ .ui-dropdown.xs .ui-dropdown-menu-item {
109
+ height: 28px;
110
+ padding: 0 6px !important;
111
+ }
112
+
113
+ .ui-arrow-icon {
114
+ width: 14px;
115
+ height: 14px;
116
+
117
+ svg {
118
+ width: 14px;
119
+ height: 14px;
120
+ }
121
+ }
122
+ }
123
+
124
+ font-size: 13px;
125
+ line-height: 16px;
126
+ font-weight: 500;
127
+ }
128
+
129
+ &.sm {
130
+ .language-dropdown__icon {
131
+ margin-right: 8px;
132
+ &.content-icon {
133
+ margin-right: 8px;
134
+ }
135
+ }
136
+
137
+ :deep(.ui-select-container.sm) {
138
+ .ui-select-toggle-button {
139
+ padding: 8px 8px 8px 10px;
140
+ .ui-selected-text {
141
+ font-size: 14px;
142
+ line-height: 16px;
143
+ font-weight: 500;
144
+ }
145
+ height: 32px;
146
+ }
147
+
148
+ .ui-arrow-icon {
149
+ width: 16px;
150
+ height: 16px;
151
+
152
+ svg {
153
+ width: 16px;
154
+ height: 16px;
155
+ }
156
+ }
157
+
158
+ .ui-dropdown-menu.md .ui-dropdown-menu-item .ui-item-text {
159
+ font-size: 14px;
160
+ }
161
+ }
162
+
163
+ font-size: 14px;
164
+ line-height: 16px;
165
+ font-weight: 500;
166
+ }
167
+
168
+ :deep(.ui-dropdown-menu-item) {
169
+ display: flex;
170
+ align-items: center;
171
+ border-radius: 4px;
172
+
173
+ &:not(:last-child) {
174
+ margin-bottom: 8px;
175
+ }
176
+ &:not(.disabled):not(.selected):hover {
177
+ background-color: var(--dropdown-item-hover-bg-color);
178
+
179
+ .ui-item-text {
180
+ color: var(--dropdown-item-hover-color);
181
+ }
182
+ }
183
+
184
+ & .ui-item-text {
185
+ color: var(--dropdown-item-color);
186
+ font-weight: 500;
187
+ }
188
+
189
+ &.selected {
190
+ .ui-item-text {
191
+ color: var(--dropdown-item-selected-color);
192
+ }
193
+ }
194
+ }
195
+
196
+ &__icon {
197
+ display: flex;
198
+ }
199
+ }
200
+ </style>