bfg-common 1.5.431 → 1.5.433

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 (194) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  10. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  11. package/components/atoms/wizard/Wizard.vue +2 -2
  12. package/components/atoms/wizard/lib/models/enums.ts +8 -0
  13. package/components/atoms/wizard/lib/models/interfaces.ts +59 -0
  14. package/components/atoms/wizard/lib/utils/utils.ts +954 -0
  15. package/components/atoms/wizard/step/Step.vue +1 -1
  16. package/components/common/backup/storage/actions/add/Add.vue +5 -5
  17. package/components/common/backup/storage/actions/add/Old.vue +1 -1
  18. package/components/common/backup/storage/actions/add/lib/config/steps.ts +2 -2
  19. package/components/common/backup/storage/actions/add/lib/validations.ts +4 -4
  20. package/components/common/backup/storage/actions/add/steps/name/Name.vue +1 -1
  21. package/components/common/backup/storage/actions/add/steps/name/New.vue +1 -1
  22. package/components/common/backup/storage/actions/add/steps/name/Old.vue +1 -1
  23. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -1
  24. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  25. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  26. package/components/common/browse/BrowseNew.vue +1 -0
  27. package/components/common/browse/blocks/Container.vue +235 -235
  28. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  29. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  30. package/components/common/browse/lib/models/interfaces.ts +5 -5
  31. package/components/common/context/lib/models/interfaces.ts +33 -33
  32. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  33. package/components/common/diagramMain/lib/models/types.ts +21 -21
  34. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  35. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  36. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  37. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  38. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  39. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  40. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +5 -5
  42. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +2 -2
  43. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +2 -2
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +5 -5
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +2 -2
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  48. package/components/common/diagramMain/port/Port.vue +580 -580
  49. package/components/common/diagramMain/port/Ports.vue +47 -47
  50. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  51. package/components/common/pages/backups/Backups.vue +102 -102
  52. package/components/common/pages/backups/DetailView.vue +52 -52
  53. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  54. package/components/common/pages/backups/modals/Modals.vue +1 -1
  55. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +2 -5
  56. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  57. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  58. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  59. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  60. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  61. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  62. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  63. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  64. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  65. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  66. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  67. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  68. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  69. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  70. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  71. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  72. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  73. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  74. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  75. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  76. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  77. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  78. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  79. package/components/common/pages/backups/tools/Tools.vue +75 -75
  80. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  81. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  82. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  83. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  84. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  85. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  86. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  87. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  88. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  89. package/components/common/select/radio/RadioGroup.vue +137 -137
  90. package/components/common/spiceConsole/Drawer.vue +381 -381
  91. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  92. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  93. package/components/common/tools/Actions.vue +207 -207
  94. package/components/common/treeView/TreeView.vue +52 -52
  95. package/components/common/vm/actions/add/Add.vue +5 -5
  96. package/components/common/vm/actions/add/New.vue +2 -2
  97. package/components/common/vm/actions/add/Old.vue +2 -2
  98. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  99. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  100. package/components/common/vm/actions/add/lib/config/steps.ts +2 -2
  101. package/components/common/vm/actions/clone/Clone.vue +5 -5
  102. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  103. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +5 -5
  104. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +2 -2
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/new/New.vue +1 -1
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -92
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  133. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  134. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  135. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  136. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  137. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  138. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  139. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  140. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  141. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  142. package/components/common/vm/actions/common/select/storage/new/New.vue +14 -14
  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/vmt/actions/add/Add.vue +5 -5
  148. package/components/common/vmt/actions/add/New.vue +3 -2
  149. package/components/common/vmt/actions/add/Old.vue +2 -2
  150. package/components/common/vmt/actions/add/lib/config/steps.ts +2 -2
  151. package/components/common/wizards/datastore/add/Add.vue +2 -2
  152. package/components/common/wizards/datastore/add/Old.vue +2 -2
  153. package/components/common/wizards/datastore/add/lib/config/steps.ts +2 -2
  154. package/components/common/wizards/datastore/add/lib/utils.ts +1 -1
  155. package/components/common/wizards/datastore/add/lib/validations.ts +3 -3
  156. package/components/common/wizards/datastore/add/steps/_local/Local.vue +1 -1
  157. package/components/common/wizards/datastore/add/steps/_local/createName/CreateName.vue +1 -1
  158. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -2
  159. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  160. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  161. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDevice.vue +1 -1
  162. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  163. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +1 -1
  164. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  165. package/components/common/wizards/network/add/Add.vue +7 -7
  166. package/components/common/wizards/network/add/lib/config/steps.ts +5 -5
  167. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +2 -2
  168. package/components/common/wizards/network/add/steps/IpFourSettings.vue +2 -2
  169. package/components/common/wizards/network/add/steps/PortProperties.vue +2 -2
  170. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +2 -2
  171. package/components/common/wizards/network/add/validations/connectionSettings.ts +5 -5
  172. package/components/common/wizards/network/add/validations/createStandardSwitch.ts +4 -4
  173. package/components/common/wizards/network/add/validations/ipFourSettings.ts +5 -5
  174. package/components/common/wizards/network/add/validations/networkValidation.ts +4 -4
  175. package/components/common/wizards/network/add/validations/physicalAdapter.ts +4 -4
  176. package/components/common/wizards/network/add/validations/portProperties.ts +2 -2
  177. package/components/common/wizards/network/add/validations/targetDevice.ts +5 -5
  178. package/components/common/wizards/vm/migrate/Migrate.vue +2 -2
  179. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  180. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  181. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  182. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +1 -1
  183. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +1 -1
  184. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  185. package/composables/productNameLocal.ts +30 -30
  186. package/composables/useAppVersion.ts +21 -21
  187. package/package.json +42 -42
  188. package/plugins/date.ts +233 -233
  189. package/plugins/panelStates.ts +70 -70
  190. package/plugins/text.ts +59 -59
  191. package/public/spice-console/lib/images/bitmap.js +203 -203
  192. package/public/spice-console/network/spicechannel.js +390 -390
  193. package/store/main/mutations.ts +7 -7
  194. package/store/main/state.ts +7 -7
@@ -1,17 +1,17 @@
1
- <template>
2
- <common-ready-to-complete-new v-if="isNewView" :data="props.data" />
3
- <common-ready-to-complete-old v-else :data="props.data" />
4
- </template>
5
-
6
- <script lang="ts" setup>
7
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
8
-
9
- const props = defineProps<{
10
- data: UI_I_TableInfoItem[]
11
- }>()
12
-
13
- const { $store }: any = useNuxtApp()
14
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
15
- </script>
16
-
17
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-ready-to-complete-new v-if="isNewView" :data="props.data" />
3
+ <common-ready-to-complete-old v-else :data="props.data" />
4
+ </template>
5
+
6
+ <script lang="ts" setup>
7
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
8
+
9
+ const props = defineProps<{
10
+ data: UI_I_TableInfoItem[]
11
+ }>()
12
+
13
+ const { $store }: any = useNuxtApp()
14
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
15
+ </script>
16
+
17
+ <style lang="scss" scoped></style>
@@ -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>