bfg-common 1.5.603 → 1.5.605

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 (158) 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/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  16. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  17. package/components/common/diagramMain/port/Port.vue +580 -580
  18. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  19. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  20. package/components/common/pages/backups/DetailView.vue +52 -52
  21. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  22. package/components/common/pages/backups/modals/Modals.vue +243 -243
  23. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  24. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  25. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  26. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  27. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  28. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  29. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  30. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  31. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  32. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  33. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  34. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  35. package/components/common/select/radio/RadioGroup.vue +137 -137
  36. package/components/common/spiceConsole/Drawer.vue +420 -420
  37. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  38. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  39. package/components/common/tools/Actions.vue +207 -207
  40. package/components/common/treeView/TreeView.vue +52 -52
  41. package/components/common/vm/actions/add/Add.vue +819 -819
  42. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +205 -205
  43. package/components/common/vm/actions/common/customizeHardware/New.vue +325 -325
  44. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +679 -679
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +101 -101
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +227 -227
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +29 -29
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +323 -323
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +81 -81
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlug.vue +40 -40
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpu.vue +91 -91
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/Model.vue +92 -92
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +133 -133
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +27 -27
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +280 -280
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/New.vue +158 -158
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Old.vue +155 -155
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlug.vue +29 -29
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +483 -483
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +59 -59
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/File.vue +24 -24
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +96 -96
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +142 -142
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/StorageModal.vue +55 -55
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +26 -26
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +61 -61
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +57 -57
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +59 -59
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +257 -257
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +56 -56
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/Location.vue +65 -65
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +111 -111
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +199 -199
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +27 -27
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +29 -29
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +23 -23
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +40 -40
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +34 -34
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +47 -47
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +15 -15
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevices.vue +15 -15
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +194 -194
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +129 -129
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +35 -35
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +50 -50
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemory.vue +104 -104
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +70 -70
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +42 -42
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/Menu.vue +25 -25
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +155 -155
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +82 -82
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +74 -74
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPaste.vue +25 -25
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransfer.vue +25 -25
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharing.vue +17 -17
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +99 -99
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +42 -42
  104. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +105 -105
  105. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  106. package/components/common/vm/actions/common/select/createType/CreateType.vue +36 -36
  107. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  108. package/components/common/vm/actions/common/select/options/Options.vue +53 -53
  109. package/components/common/vm/actions/common/select/os/Os.vue +152 -152
  110. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  111. package/components/common/vm/actions/common/select/storage/Storage.vue +170 -170
  112. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  113. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  114. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  115. package/components/common/vm/actions/common/select/template/Template.vue +75 -75
  116. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  117. package/components/common/vm/actions/common/select/template/treeView/TreeView.vue +85 -85
  118. package/components/common/vm/actions/editSettings/EditSettings.vue +160 -169
  119. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  120. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  121. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  122. package/components/common/wizards/common/compatibility/New.vue +99 -99
  123. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  124. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  125. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  126. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  127. package/components/common/wizards/common/steps/name/New.vue +221 -221
  128. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  129. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  130. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  131. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  132. package/components/common/wizards/datastore/add/Add.vue +228 -228
  133. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  134. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  135. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  136. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  137. package/composables/useAppVersion.ts +21 -21
  138. package/composables/useLocal.ts +6 -6
  139. package/composables/useLocalCommon.ts +39 -39
  140. package/lib/models/types.ts +60 -58
  141. package/package.json +1 -1
  142. package/plugins/console.ts +21 -21
  143. package/plugins/date.ts +233 -233
  144. package/plugins/mouse.ts +21 -21
  145. package/plugins/panelStates.ts +70 -70
  146. package/plugins/text.ts +59 -59
  147. package/plugins/time.ts +58 -58
  148. package/public/spice-console/application/clientgui.js +854 -854
  149. package/public/spice-console/application/packetfactory.js +211 -211
  150. package/public/spice-console/application/virtualmouse.js +147 -147
  151. package/public/spice-console/lib/images/bitmap.js +203 -203
  152. package/public/spice-console/network/spicechannel.js +440 -440
  153. package/public/spice-console/process/cursorprocess.js +121 -121
  154. package/public/spice-console/process/inputprocess.js +227 -227
  155. package/public/spice-console/process/mainprocess.js +210 -210
  156. package/public/spice-console/run.js +210 -210
  157. package/store/main/mutations.ts +7 -7
  158. package/store/main/state.ts +7 -7
@@ -1,34 +1,34 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model="model"
5
- :options="props.options"
6
- :pci-device-index="props.pciDeviceIndex"
7
- />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
12
-
13
- const model = defineModel<UI_I_OptionItem>({ required: true })
14
-
15
- const props = defineProps<{
16
- options: UI_I_OptionItem[]
17
- pciDeviceIndex: number
18
- }>()
19
-
20
- const { $store }: any = useNuxtApp()
21
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
- const currentComponent = computed(() =>
23
- isNewView.value
24
- ? defineAsyncComponent(() => import('./New.vue'))
25
- : defineAsyncComponent(() => import('./Old.vue'))
26
- )
27
- </script>
28
-
29
- <style scoped lang="scss">
30
- input,
31
- label {
32
- margin-right: 4px;
33
- }
34
- </style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model="model"
5
+ :options="props.options"
6
+ :pci-device-index="props.pciDeviceIndex"
7
+ />
8
+ </template>
9
+
10
+ <script setup lang="ts">
11
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
12
+
13
+ const model = defineModel<UI_I_OptionItem>({ required: true })
14
+
15
+ const props = defineProps<{
16
+ options: UI_I_OptionItem[]
17
+ pciDeviceIndex: number
18
+ }>()
19
+
20
+ const { $store }: any = useNuxtApp()
21
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
+ const currentComponent = computed(() =>
23
+ isNewView.value
24
+ ? defineAsyncComponent(() => import('./New.vue'))
25
+ : defineAsyncComponent(() => import('./Old.vue'))
26
+ )
27
+ </script>
28
+
29
+ <style scoped lang="scss">
30
+ input,
31
+ label {
32
+ margin-right: 4px;
33
+ }
34
+ </style>
@@ -1,47 +1,47 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-if="isNewView"
5
- v-model="model"
6
- :is-edit="props.isEdit"
7
- :selected-usb-controller-text="selectedUsbControllerText"
8
- :usb-controller-options="usbControllerOptions"
9
- />
10
- </template>
11
-
12
- <script setup lang="ts">
13
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
14
- import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
15
- import { usbControllerOptionsConfig } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/lib/config/options'
16
-
17
- const model = defineModel<UI_I_CreateVmData['usb_controllers'][0]['type']>({
18
- required: true,
19
- })
20
-
21
- const props = withDefaults(
22
- defineProps<{
23
- isEdit: boolean
24
- state?: string | number
25
- }>(),
26
- {
27
- state: undefined,
28
- }
29
- )
30
-
31
- const { $store }: any = useNuxtApp()
32
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
- const currentComponent = computed(() =>
34
- isNewView.value
35
- ? defineAsyncComponent(() => import('./New.vue'))
36
- : defineAsyncComponent(() => import('./Old.vue'))
37
- )
38
-
39
- const usbControllerOptions = ref<UI_I_OptionItem[]>(usbControllerOptionsConfig)
40
- const selectedUsbControllerText = computed<string>(
41
- () =>
42
- usbControllerOptions.value.find((option) => option.value === model.value)
43
- ?.text || ''
44
- )
45
- </script>
46
-
47
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-if="isNewView"
5
+ v-model="model"
6
+ :is-edit="props.isEdit"
7
+ :selected-usb-controller-text="selectedUsbControllerText"
8
+ :usb-controller-options="usbControllerOptions"
9
+ />
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
14
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
15
+ import { usbControllerOptionsConfig } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/lib/config/options'
16
+
17
+ const model = defineModel<UI_I_CreateVmData['usb_controllers'][0]['type']>({
18
+ required: true,
19
+ })
20
+
21
+ const props = withDefaults(
22
+ defineProps<{
23
+ isEdit: boolean
24
+ state?: string | number
25
+ }>(),
26
+ {
27
+ state: undefined,
28
+ }
29
+ )
30
+
31
+ const { $store }: any = useNuxtApp()
32
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
+ const currentComponent = computed(() =>
34
+ isNewView.value
35
+ ? defineAsyncComponent(() => import('./New.vue'))
36
+ : defineAsyncComponent(() => import('./Old.vue'))
37
+ )
38
+
39
+ const usbControllerOptions = ref<UI_I_OptionItem[]>(usbControllerOptionsConfig)
40
+ const selectedUsbControllerText = computed<string>(
41
+ () =>
42
+ usbControllerOptions.value.find((option) => option.value === model.value)
43
+ ?.text || ''
44
+ )
45
+ </script>
46
+
47
+ <style scoped lang="scss"></style>
@@ -1,15 +1,15 @@
1
- <template>
2
- <component :is="currentComponent" />
3
- </template>
4
-
5
- <script setup lang="ts">
6
- const { $store }: any = useNuxtApp()
7
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
8
- const currentComponent = computed(() =>
9
- isNewView.value
10
- ? defineAsyncComponent(() => import('./New.vue'))
11
- : defineAsyncComponent(() => import('./Old.vue'))
12
- )
13
- </script>
14
-
15
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component :is="currentComponent" />
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ const { $store }: any = useNuxtApp()
7
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
8
+ const currentComponent = computed(() =>
9
+ isNewView.value
10
+ ? defineAsyncComponent(() => import('./New.vue'))
11
+ : defineAsyncComponent(() => import('./Old.vue'))
12
+ )
13
+ </script>
14
+
15
+ <style scoped lang="scss"></style>
@@ -1,15 +1,15 @@
1
- <template>
2
- <component :is="currentComponent" />
3
- </template>
4
-
5
- <script setup lang="ts">
6
- const { $store }: any = useNuxtApp()
7
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
8
- const currentComponent = computed(() =>
9
- isNewView.value
10
- ? defineAsyncComponent(() => import('./New.vue'))
11
- : defineAsyncComponent(() => import('./Old.vue'))
12
- )
13
- </script>
14
-
15
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component :is="currentComponent" />
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ const { $store }: any = useNuxtApp()
7
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
8
+ const currentComponent = computed(() =>
9
+ isNewView.value
10
+ ? defineAsyncComponent(() => import('./New.vue'))
11
+ : defineAsyncComponent(() => import('./Old.vue'))
12
+ )
13
+ </script>
14
+
15
+ <style scoped lang="scss"></style>
@@ -1,194 +1,194 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:reservation="reservationLocal"
5
- v-model:reservation-type="reservationTypeLocal"
6
- :component-type="props.componentType"
7
- :error-description="reservationLocalAndApiErrorsTexts"
8
- :reservation-options="reservationOptions"
9
- :reservation-type-options="reservationTypeOptions"
10
- :disabled="props.disabled"
11
- :reserve-guest-memory="props.reserveGuestMemory"
12
- @remove-validation-error="onRemoveValidationError"
13
- @select-reservation="onSelectReservation"
14
- />
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
19
- import type { UI_I_Localization } from '~/lib/models/interfaces'
20
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
21
- import {
22
- reservationOptionsFunc,
23
- reservationTypeOptionsFunc,
24
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/lib/config/options'
25
-
26
- const props = withDefaults(
27
- defineProps<{
28
- reservation: string
29
- reservationType: string
30
- type: 'mb' | 'mhz'
31
- componentType: string
32
- errorValidationFields: UI_I_ErrorValidationField[]
33
- disabled?: boolean
34
- reserveGuestMemory?: boolean
35
- multiply?: number
36
- }>(),
37
- {
38
- disabled: undefined,
39
- reserveGuestMemory: undefined,
40
- multiply: 1,
41
- }
42
- )
43
- const emits = defineEmits<{
44
- (event: 'update:reservation', value: string): void
45
- (event: 'update:reservation-type', value: string): void
46
- (event: 'invalid', value: boolean): void
47
- (event: 'remove-error-by-title', value: string): void
48
- }>()
49
-
50
- const { $store, $binary }: any = useNuxtApp()
51
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
52
- const currentComponent = computed(() =>
53
- isNewView.value
54
- ? defineAsyncComponent(() => import('./New.vue'))
55
- : defineAsyncComponent(() => import('./Old.vue'))
56
- )
57
-
58
- const localization = computed<UI_I_Localization>(() => useLocal())
59
-
60
- const binaryKeys: [string, string] =
61
- props.type === 'mb' ? ['mb', 'gb'] : ['mhz', 'ghz']
62
-
63
- const minReservation = props.type === 'mb' ? 2 : 0
64
- const maxReservation = props.type === 'mb' ? 16384 : 4794
65
- const reservationOptions = computed<UI_I_OptionItem[]>(() => {
66
- const max = $binary.universalFromTo(
67
- maxReservation,
68
- binaryKeys[0],
69
- binaryKeys[1],
70
- 5
71
- )
72
- return reservationOptionsFunc(
73
- localization.value,
74
- minReservation,
75
- max,
76
- binaryKeys
77
- )
78
- })
79
- const onSelectReservation = ({
80
- value,
81
- type,
82
- }: {
83
- value: number
84
- type: string
85
- }): void => {
86
- reservationLocal.value = '' + value
87
- if (reservationTypeLocal.value !== type) {
88
- reservationTypeLocal.value = type
89
- }
90
- // if (reservationTypeLocal.value === type) {
91
- // reservationLocal.value = '' + value
92
- // return
93
- // }
94
- //
95
- // reservationLocal.value =
96
- // '' + $binary.universalFromTo(value, type, reservationTypeLocal.value, 12)
97
- }
98
-
99
- const reservationTypeOptions = ref<UI_I_OptionItem[]>(
100
- reservationTypeOptionsFunc(localization.value, binaryKeys)
101
- )
102
-
103
- const reservationLocal = computed<string>({
104
- get() {
105
- return props.reservation
106
- },
107
- set(newValue) {
108
- emits('update:reservation', '' + newValue)
109
- },
110
- })
111
- const reservationTypeLocal = computed<string>({
112
- get() {
113
- return props.reservationType
114
- },
115
- set(newValue) {
116
- emits('update:reservation-type', newValue)
117
- },
118
- })
119
-
120
- const reservationErrorLocalText = computed<string>(() => {
121
- const value =
122
- reservationTypeLocal.value === binaryKeys[0]
123
- ? +reservationLocal.value
124
- : $binary.universalFromTo(
125
- reservationLocal.value,
126
- binaryKeys[1],
127
- binaryKeys[0],
128
- 12
129
- )
130
- if (value < minReservation || value > maxReservation) {
131
- return localization.value.common.reservationMustBe
132
- .replace(
133
- '{0}',
134
- `${minReservation} ${localization.value.common[binaryKeys[0]]}`
135
- )
136
- .replace(
137
- '{1}',
138
- `${maxReservation} ${localization.value.common[binaryKeys[0]]}`
139
- )
140
- }
141
-
142
- const validValue = /^\d+(\.\d+)?$/.test(reservationLocal.value + '')
143
- if (!validValue) {
144
- return localization.value.common.inputContainsInvalidCharacters
145
- }
146
-
147
- if (value % props.multiply !== 0) {
148
- return localization.value.common.valueShouldMultiple.replace(
149
- '{0}',
150
- `${props.multiply} ${binaryKeys[0].toUpperCase()}`
151
- )
152
- }
153
-
154
- return ''
155
- })
156
-
157
- const typeError = computed<string>(
158
- () => `${props.componentType}.reservation_mb`
159
- )
160
-
161
- const apiError = computed<string>(() => {
162
- return (
163
- props.errorValidationFields?.find(
164
- (message) => message.field === typeError.value
165
- )?.error_message || ''
166
- )
167
- })
168
- const reservationLocalAndApiErrorsTexts = computed<string>(() => {
169
- const localError = reservationErrorLocalText.value
170
-
171
- let result = ''
172
- if (localError && !apiError.value) result = localError
173
- if (!localError && apiError.value) result = apiError.value
174
- if (localError && apiError.value) result = localError + ', ' + apiError.value
175
-
176
- return result
177
- })
178
- const reservationInvalid = computed<boolean>(
179
- () => !!reservationErrorLocalText.value
180
- )
181
- watch(
182
- reservationInvalid,
183
- (newValue) => {
184
- emits('invalid', newValue)
185
- },
186
- { immediate: true }
187
- )
188
-
189
- const onRemoveValidationError = (): void => {
190
- emits('remove-error-by-title', typeError.value)
191
- }
192
- </script>
193
-
194
- <style scoped></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:reservation="reservationLocal"
5
+ v-model:reservation-type="reservationTypeLocal"
6
+ :component-type="props.componentType"
7
+ :error-description="reservationLocalAndApiErrorsTexts"
8
+ :reservation-options="reservationOptions"
9
+ :reservation-type-options="reservationTypeOptions"
10
+ :disabled="props.disabled"
11
+ :reserve-guest-memory="props.reserveGuestMemory"
12
+ @remove-validation-error="onRemoveValidationError"
13
+ @select-reservation="onSelectReservation"
14
+ />
15
+ </template>
16
+
17
+ <script setup lang="ts">
18
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
19
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
20
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
21
+ import {
22
+ reservationOptionsFunc,
23
+ reservationTypeOptionsFunc,
24
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/lib/config/options'
25
+
26
+ const props = withDefaults(
27
+ defineProps<{
28
+ reservation: string
29
+ reservationType: string
30
+ type: 'mb' | 'mhz'
31
+ componentType: string
32
+ errorValidationFields: UI_I_ErrorValidationField[]
33
+ disabled?: boolean
34
+ reserveGuestMemory?: boolean
35
+ multiply?: number
36
+ }>(),
37
+ {
38
+ disabled: undefined,
39
+ reserveGuestMemory: undefined,
40
+ multiply: 1,
41
+ }
42
+ )
43
+ const emits = defineEmits<{
44
+ (event: 'update:reservation', value: string): void
45
+ (event: 'update:reservation-type', value: string): void
46
+ (event: 'invalid', value: boolean): void
47
+ (event: 'remove-error-by-title', value: string): void
48
+ }>()
49
+
50
+ const { $store, $binary }: any = useNuxtApp()
51
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
52
+ const currentComponent = computed(() =>
53
+ isNewView.value
54
+ ? defineAsyncComponent(() => import('./New.vue'))
55
+ : defineAsyncComponent(() => import('./Old.vue'))
56
+ )
57
+
58
+ const localization = computed<UI_I_Localization>(() => useLocal())
59
+
60
+ const binaryKeys: [string, string] =
61
+ props.type === 'mb' ? ['mb', 'gb'] : ['mhz', 'ghz']
62
+
63
+ const minReservation = props.type === 'mb' ? 2 : 0
64
+ const maxReservation = props.type === 'mb' ? 16384 : 4794
65
+ const reservationOptions = computed<UI_I_OptionItem[]>(() => {
66
+ const max = $binary.universalFromTo(
67
+ maxReservation,
68
+ binaryKeys[0],
69
+ binaryKeys[1],
70
+ 5
71
+ )
72
+ return reservationOptionsFunc(
73
+ localization.value,
74
+ minReservation,
75
+ max,
76
+ binaryKeys
77
+ )
78
+ })
79
+ const onSelectReservation = ({
80
+ value,
81
+ type,
82
+ }: {
83
+ value: number
84
+ type: string
85
+ }): void => {
86
+ reservationLocal.value = '' + value
87
+ if (reservationTypeLocal.value !== type) {
88
+ reservationTypeLocal.value = type
89
+ }
90
+ // if (reservationTypeLocal.value === type) {
91
+ // reservationLocal.value = '' + value
92
+ // return
93
+ // }
94
+ //
95
+ // reservationLocal.value =
96
+ // '' + $binary.universalFromTo(value, type, reservationTypeLocal.value, 12)
97
+ }
98
+
99
+ const reservationTypeOptions = ref<UI_I_OptionItem[]>(
100
+ reservationTypeOptionsFunc(localization.value, binaryKeys)
101
+ )
102
+
103
+ const reservationLocal = computed<string>({
104
+ get() {
105
+ return props.reservation
106
+ },
107
+ set(newValue) {
108
+ emits('update:reservation', '' + newValue)
109
+ },
110
+ })
111
+ const reservationTypeLocal = computed<string>({
112
+ get() {
113
+ return props.reservationType
114
+ },
115
+ set(newValue) {
116
+ emits('update:reservation-type', newValue)
117
+ },
118
+ })
119
+
120
+ const reservationErrorLocalText = computed<string>(() => {
121
+ const value =
122
+ reservationTypeLocal.value === binaryKeys[0]
123
+ ? +reservationLocal.value
124
+ : $binary.universalFromTo(
125
+ reservationLocal.value,
126
+ binaryKeys[1],
127
+ binaryKeys[0],
128
+ 12
129
+ )
130
+ if (value < minReservation || value > maxReservation) {
131
+ return localization.value.common.reservationMustBe
132
+ .replace(
133
+ '{0}',
134
+ `${minReservation} ${localization.value.common[binaryKeys[0]]}`
135
+ )
136
+ .replace(
137
+ '{1}',
138
+ `${maxReservation} ${localization.value.common[binaryKeys[0]]}`
139
+ )
140
+ }
141
+
142
+ const validValue = /^\d+(\.\d+)?$/.test(reservationLocal.value + '')
143
+ if (!validValue) {
144
+ return localization.value.common.inputContainsInvalidCharacters
145
+ }
146
+
147
+ if (value % props.multiply !== 0) {
148
+ return localization.value.common.valueShouldMultiple.replace(
149
+ '{0}',
150
+ `${props.multiply} ${binaryKeys[0].toUpperCase()}`
151
+ )
152
+ }
153
+
154
+ return ''
155
+ })
156
+
157
+ const typeError = computed<string>(
158
+ () => `${props.componentType}.reservation_mb`
159
+ )
160
+
161
+ const apiError = computed<string>(() => {
162
+ return (
163
+ props.errorValidationFields?.find(
164
+ (message) => message.field === typeError.value
165
+ )?.error_message || ''
166
+ )
167
+ })
168
+ const reservationLocalAndApiErrorsTexts = computed<string>(() => {
169
+ const localError = reservationErrorLocalText.value
170
+
171
+ let result = ''
172
+ if (localError && !apiError.value) result = localError
173
+ if (!localError && apiError.value) result = apiError.value
174
+ if (localError && apiError.value) result = localError + ', ' + apiError.value
175
+
176
+ return result
177
+ })
178
+ const reservationInvalid = computed<boolean>(
179
+ () => !!reservationErrorLocalText.value
180
+ )
181
+ watch(
182
+ reservationInvalid,
183
+ (newValue) => {
184
+ emits('invalid', newValue)
185
+ },
186
+ { immediate: true }
187
+ )
188
+
189
+ const onRemoveValidationError = (): void => {
190
+ emits('remove-error-by-title', typeError.value)
191
+ }
192
+ </script>
193
+
194
+ <style scoped></style>