bfg-common 1.5.591 → 1.5.592

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 (261) 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/browse/blocks/lib/models/types.ts +1 -1
  16. package/components/common/browse/lib/models/interfaces.ts +5 -5
  17. package/components/common/diagramMain/network/Contents.vue +497 -497
  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 -886
  42. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +205 -241
  43. package/components/common/vm/actions/common/customizeHardware/{CustomizeHardwareNew.vue → New.vue} +325 -325
  44. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +679 -733
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +101 -110
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +227 -252
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +29 -30
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +322 -348
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +81 -86
  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 -94
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/Model.vue +92 -124
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +133 -140
  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 -25
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +214 -221
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +280 -300
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/{MemoryNew.vue → New.vue} +158 -158
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/{MemoryOld.vue → 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/{NewHardDiskNew.vue → New.vue} +0 -2
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +483 -521
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/{NewHardDiskOld.vue → Old.vue} +1 -6
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +59 -63
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/File.vue +24 -25
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +96 -103
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +142 -154
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/StorageModal.vue +55 -61
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +26 -26
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +61 -65
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +57 -61
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +59 -63
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +257 -277
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +56 -60
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/Location.vue +65 -71
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +111 -119
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +199 -210
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +27 -29
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +29 -31
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +23 -22
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +40 -41
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +34 -35
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +47 -47
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +15 -16
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevices.vue +15 -15
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +194 -197
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +129 -140
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +35 -37
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +50 -53
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemory.vue +104 -107
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +70 -76
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +42 -46
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -60
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/Menu.vue +25 -26
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +155 -156
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +82 -86
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +74 -74
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPaste.vue +25 -26
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransfer.vue +25 -26
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharing.vue +17 -20
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +99 -102
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +42 -42
  106. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +105 -107
  107. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  108. package/components/common/vm/actions/common/select/createType/CreateType.vue +36 -38
  109. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  110. package/components/common/vm/actions/common/select/options/Options.vue +53 -54
  111. package/components/common/vm/actions/common/select/os/Os.vue +152 -164
  112. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  113. package/components/common/vm/actions/common/select/storage/Storage.vue +170 -178
  114. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  115. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  116. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  117. package/components/common/vm/actions/common/select/template/Template.vue +75 -77
  118. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  119. package/components/common/vm/actions/common/select/template/treeView/TreeView.vue +85 -87
  120. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  121. package/components/common/vm/actions/register/Register.vue +352 -352
  122. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  123. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  124. package/components/common/wizards/common/compatibility/New.vue +99 -99
  125. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  126. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  127. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  128. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  129. package/components/common/wizards/common/steps/name/New.vue +221 -221
  130. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  131. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  132. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  133. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  134. package/components/common/wizards/datastore/add/Add.vue +228 -228
  135. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  136. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  137. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  138. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  139. package/composables/useAppVersion.ts +21 -21
  140. package/composables/useLocal.ts +6 -6
  141. package/composables/useLocalCommon.ts +39 -39
  142. package/package.json +1 -1
  143. package/plugins/console.ts +21 -21
  144. package/plugins/date.ts +233 -233
  145. package/plugins/mouse.ts +21 -21
  146. package/plugins/panelStates.ts +70 -70
  147. package/plugins/text.ts +59 -59
  148. package/plugins/time.ts +58 -58
  149. package/public/spice-console/application/clientgui.js +854 -854
  150. package/public/spice-console/application/packetfactory.js +211 -211
  151. package/public/spice-console/application/virtualmouse.js +147 -147
  152. package/public/spice-console/lib/images/bitmap.js +203 -203
  153. package/public/spice-console/network/spicechannel.js +440 -440
  154. package/public/spice-console/process/cursorprocess.js +121 -121
  155. package/public/spice-console/process/inputprocess.js +227 -227
  156. package/public/spice-console/process/mainprocess.js +210 -210
  157. package/public/spice-console/run.js +210 -210
  158. package/store/main/mutations.ts +7 -7
  159. package/store/main/state.ts +7 -7
  160. /package/components/common/vm/actions/common/customizeHardware/{CustomizeHardwareOld.vue → Old.vue} +0 -0
  161. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/{VirtualHardwareNew.vue → New.vue} +0 -0
  162. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/{VirtualHardwareOld.vue → Old.vue} +0 -0
  163. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/{BusNew.vue → New.vue} +0 -0
  164. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/{BusOld.vue → Old.vue} +0 -0
  165. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/{CdDvdDriveNew.vue → New.vue} +0 -0
  166. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/{CdDvdDriveOld.vue → Old.vue} +0 -0
  167. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/{MediaNew.vue → New.vue} +0 -0
  168. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/{MediaOld.vue → Old.vue} +0 -0
  169. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/{CpuNew.vue → New.vue} +0 -0
  170. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/{CpuOld.vue → Old.vue} +0 -0
  171. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/{CoresPerSocketNew.vue → New.vue} +0 -0
  172. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/{CoresPerSocketOld.vue → Old.vue} +0 -0
  173. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/{HotPlugNew.vue → New.vue} +0 -0
  174. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/{HotPlugOld.vue → Old.vue} +0 -0
  175. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/{MaxCpuNew.vue → New.vue} +0 -0
  176. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/{MaxCpuOld.vue → Old.vue} +0 -0
  177. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/{ModelNew.vue → New.vue} +0 -0
  178. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/{ModelOld.vue → Old.vue} +0 -0
  179. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/{SharesNew.vue → New.vue} +0 -0
  180. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/{SharesOld.vue → Old.vue} +0 -0
  181. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/{TooltipNew.vue → New.vue} +0 -0
  182. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/{TooltipOld.vue → Old.vue} +0 -0
  183. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/{LimitNew.vue → New.vue} +0 -0
  184. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/{LimitOld.vue → Old.vue} +0 -0
  185. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/{HotPlugNew.vue → New.vue} +0 -0
  186. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/{HotPlugOld.vue → Old.vue} +0 -0
  187. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/{CacheNew.vue → New.vue} +0 -0
  188. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/{CacheOld.vue → Old.vue} +0 -0
  189. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/{FileNew.vue → New.vue} +0 -0
  190. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/{FileOld.vue → Old.vue} +0 -0
  191. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/{LimitIopsNew.vue → New.vue} +0 -0
  192. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/{LimitIopsOld.vue → Old.vue} +0 -0
  193. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/{LocationNew.vue → New.vue} +0 -0
  194. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/{LocationOld.vue → Old.vue} +0 -0
  195. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/{MaximumSizeNew.vue → New.vue} +0 -0
  196. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/{MaximumSizeOld.vue → Old.vue} +0 -0
  197. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/{ModeNew.vue → New.vue} +0 -0
  198. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/{ModeOld.vue → Old.vue} +0 -0
  199. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/{ProvisioningNew.vue → New.vue} +0 -0
  200. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/{ProvisioningOld.vue → Old.vue} +0 -0
  201. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/{SharingNew.vue → New.vue} +0 -0
  202. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/{SharingOld.vue → Old.vue} +0 -0
  203. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/{NewNetworkNew.vue → New.vue} +0 -0
  204. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/{NewNetworkOld.vue → Old.vue} +0 -0
  205. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/{AdapterTypeNew.vue → New.vue} +0 -0
  206. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/{AdapterTypeOld.vue → Old.vue} +0 -0
  207. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/{LocationOld.vue → Old.vue} +0 -0
  208. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/{MacAddressNew.vue → New.vue} +0 -0
  209. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/{MacAddressOld.vue → Old.vue} +0 -0
  210. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/{NewPciDeviceNew.vue → New.vue} +0 -0
  211. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/{NewPciDeviceOld.vue → Old.vue} +0 -0
  212. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/{DirectPathIoNew.vue → New.vue} +0 -0
  213. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/{DirectPathIoOld.vue → Old.vue} +0 -0
  214. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/{DynamicDirectPathIoNew.vue → New.vue} +0 -0
  215. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/{DynamicDirectPathIoOld.vue → Old.vue} +0 -0
  216. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/{NoteNew.vue → New.vue} +0 -0
  217. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/{NoteOld.vue → Old.vue} +0 -0
  218. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/{NvidiaGridNew.vue → New.vue} +0 -0
  219. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/{NvidiaGridOld.vue → Old.vue} +0 -0
  220. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/{TypeSelectionNew.vue → New.vue} +0 -0
  221. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/{TypeSelectionOld.vue → Old.vue} +0 -0
  222. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/{NewUsbControllerNew.vue → New.vue} +0 -0
  223. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/{NewUsbControllerOld.vue → Old.vue} +0 -0
  224. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/{OtherNew.vue → New.vue} +0 -0
  225. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/{OtherOld.vue → Old.vue} +0 -0
  226. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/{InputDevicesNew.vue → New.vue} +0 -0
  227. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/{InputDevicesOld.vue → Old.vue} +0 -0
  228. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/{ReservationNew.vue → New.vue} +0 -0
  229. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/{ReservationOld.vue → Old.vue} +0 -0
  230. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/{VideoCardNew.vue → New.vue} +0 -0
  231. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/{VideoCardOld.vue → Old.vue} +0 -0
  232. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/{ModelNew.vue → New.vue} +0 -0
  233. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/{ModelOld.vue → Old.vue} +0 -0
  234. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/{NumberDisplaysNew.vue → New.vue} +0 -0
  235. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/{NumberDisplaysOld.vue → Old.vue} +0 -0
  236. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/{TotalVideoMemoryNew.vue → New.vue} +0 -0
  237. /package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/{TotalVideoMemoryOld.vue → Old.vue} +0 -0
  238. /package/components/common/vm/actions/common/customizeHardware/vmoptions/{VmoptionsNew.vue → New.vue} +0 -0
  239. /package/components/common/vm/actions/common/customizeHardware/vmoptions/{VmoptionsOld.vue → Old.vue} +0 -0
  240. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/{BootOptionsNew.vue → New.vue} +0 -0
  241. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/{BootOptionsOld.vue → Old.vue} +0 -0
  242. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/{DelayNew.vue → New.vue} +0 -0
  243. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/{DelayOld.vue → Old.vue} +0 -0
  244. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/{FirmwareNew.vue → New.vue} +0 -0
  245. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/{FirmwareOld.vue → Old.vue} +0 -0
  246. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/{MenuNew.vue → New.vue} +0 -0
  247. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/{MenuOld.vue → Old.vue} +0 -0
  248. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/{OrderNew.vue → New.vue} +0 -0
  249. /package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/{OrderOld.vue → Old.vue} +0 -0
  250. /package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/{GeneralOptionsNew.vue → New.vue} +0 -0
  251. /package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/{GeneralOptionsOld.vue → Old.vue} +0 -0
  252. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/{CopyPasteNew.vue → New.vue} +0 -0
  253. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/{CopyPasteOld.vue → Old.vue} +0 -0
  254. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/{FileTransferNew.vue → New.vue} +0 -0
  255. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/{FileTransferOld.vue → Old.vue} +0 -0
  256. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/{FolderSharingNew.vue → New.vue} +0 -0
  257. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/{FolderSharingOld.vue → Old.vue} +0 -0
  258. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/{UsbRedirectionNew.vue → New.vue} +0 -0
  259. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/{UsbRedirectionOld.vue → Old.vue} +0 -0
  260. /package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/{ToolsNew.vue → New.vue} +0 -0
  261. /package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/{ToolsOld.vue → Old.vue} +0 -0
@@ -1,300 +1,280 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-memory-new
3
- v-if="isNewView"
4
- v-model:selected-memory="selectedMemory"
5
- v-model:memory-type="memoryType"
6
- v-model:reservation="reservation"
7
- v-model:reservation-type="reservationType"
8
- v-model:reserve-guest-memory="reserveGuestMemory"
9
- v-model:reservation-invalid="reservationInvalid"
10
- v-model:limit="limit"
11
- v-model:limit-type="limitType"
12
- v-model:limit-invalid="limitInvalid"
13
- v-model:memory-hot-plug="model.memory.hotplug"
14
- :error-validation-fields="props.errorValidationFields"
15
- :memory-invalid="memoryInvalid"
16
- :error-text="memorySizeLocalAndApiErrorsTexts"
17
- :memory-options="memoryOptions"
18
- :is-memory-disabled="isMemoryDisabled"
19
- :memory-type-options="memoryTypeOptions"
20
- :is-disabled="isDisabled"
21
- :limit-options="limitOptions"
22
- :is-disabled-memory-hot-plug="isDisabledMemoryHotPlug"
23
- @select-memory="onSelectMemory"
24
- @remove-error="onRemoveValidationError"
25
- @remove-error-by-title="emits('remove-error-by-title', $event)"
26
- />
27
- <common-vm-actions-common-customize-hardware-virtual-hardware-memory-old
28
- v-else
29
- v-model:selected-memory="selectedMemory"
30
- v-model:memory-type="memoryType"
31
- v-model:reservation="reservation"
32
- v-model:reservation-type="reservationType"
33
- v-model:reserve-guest-memory="reserveGuestMemory"
34
- v-model:reservation-invalid="reservationInvalid"
35
- v-model:limit="limit"
36
- v-model:limit-type="limitType"
37
- v-model:limit-invalid="limitInvalid"
38
- v-model:memory-hot-plug="model.memory.hotplug"
39
- :error-validation-fields="props.errorValidationFields"
40
- :memory-invalid="memoryInvalid"
41
- :error-text="memorySizeLocalAndApiErrorsTexts"
42
- :memory-options="memoryOptions"
43
- :is-memory-disabled="isMemoryDisabled"
44
- :memory-type-options="memoryTypeOptions"
45
- :is-disabled="isDisabled"
46
- :limit-options="limitOptions"
47
- :is-disabled-memory-hot-plug="isDisabledMemoryHotPlug"
48
- @select-memory="onSelectMemory"
49
- @remove-error="onRemoveValidationError"
50
- @remove-error-by-title="emits('remove-error-by-title', $event)"
51
- />
52
- </template>
53
-
54
- <script setup lang="ts">
55
- import type { UI_I_Localization } from '~/lib/models/interfaces'
56
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
57
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
58
- import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
59
- import {
60
- memoryOptionsFunc,
61
- memoryTypeOptionsFunc,
62
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/lib/config/memoryOptions'
63
-
64
- const model = defineModel<UI_I_CreateVmData>({ required: true })
65
-
66
- const props = withDefaults(
67
- defineProps<{
68
- maxMemory: number
69
- isEdit: boolean
70
- errorValidationFields: UI_I_ErrorValidationField[]
71
- state?: string | number
72
- }>(),
73
- {
74
- state: undefined,
75
- }
76
- )
77
- const emits = defineEmits<{
78
- (event: 'invalid', value: boolean): void
79
- (event: 'remove-error-by-title', value: string): void
80
- }>()
81
-
82
- const { $store, $binary }: any = useNuxtApp()
83
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
84
-
85
- const localization = computed<UI_I_Localization>(() => useLocal())
86
-
87
- const minMemoryInMb = 128
88
- watch(
89
- () => props.maxMemory,
90
- (newValue) => {
91
- memoryOptions.value = memoryOptionsFunc(
92
- localization.value,
93
- minMemoryInMb,
94
- newValue
95
- )
96
- }
97
- )
98
-
99
- const isDisabled = computed<boolean>(() => {
100
- return props.state === 2
101
- })
102
-
103
- const isMemoryDisabled = computed<boolean>(
104
- () => isDisabled.value && !model.value.memory.hotplug
105
- )
106
-
107
- const selectedMemory = ref<number>(4)
108
- watch(selectedMemory, (newValue) => {
109
- const valueInt = parseInt('' + newValue)
110
- selectedMemory.value = isNaN(valueInt) ? 0 : valueInt
111
- })
112
- const memoryType = ref<string>('gb')
113
- const memoryTypeOptions = ref<UI_I_OptionItem[]>(
114
- memoryTypeOptionsFunc(localization.value)
115
- )
116
- const memoryInMb = computed<number>(() => {
117
- if (memoryType.value === 'mb') {
118
- return +selectedMemory.value
119
- }
120
-
121
- return $binary.universalFromTo(+selectedMemory.value, memoryType.value, 'mb')
122
- })
123
- watch(memoryInMb, (newValue) => {
124
- model.value.memory.size_mb = newValue
125
- })
126
- if (model.value.memory.size_mb !== 4096) {
127
- const sizeInGb = $binary.mbToGb(model.value.memory.size_mb)
128
- if (sizeInGb < 1) {
129
- selectedMemory.value = model.value.memory.size_mb
130
- memoryType.value = 'mb'
131
- } else {
132
- selectedMemory.value = sizeInGb
133
- }
134
- }
135
-
136
- const memoryOptions = ref<UI_I_OptionItem[]>(
137
- memoryOptionsFunc(localization.value, minMemoryInMb, props.maxMemory)
138
- )
139
- const onSelectMemory = ({
140
- value,
141
- type,
142
- }: {
143
- value: number
144
- type: string
145
- }): void => {
146
- selectedMemory.value = value
147
- if (memoryType.value !== type) {
148
- memoryType.value = type
149
- }
150
- // if (memoryType.value === 'mb') {
151
- // selectedMemory.value = mb
152
- // return
153
- // }
154
- //
155
- // selectedMemory.value = $binary.universalFromTo(mb, 'mb', memoryType.value, 12)
156
- }
157
-
158
- const memoryErrorLocalText = computed<string>(() => {
159
- const validValue = /^\d+(\.\d+)?$/.test(selectedMemory.value + '')
160
- if (!validValue) {
161
- return localization.value.common.inputContainsInvalidCharacters
162
- }
163
-
164
- const maxMemoryInGb = $binary.mbToGb(props.maxMemory)
165
- if (memoryInMb.value < minMemoryInMb || memoryInMb.value > props.maxMemory) {
166
- return localization.value.common.memoryMustBe
167
- .replace('{0}', `${minMemoryInMb} ${localization.value.common.mb}`)
168
- .replace('{1}', `${maxMemoryInGb} ${localization.value.common.gb}`)
169
- }
170
-
171
- if (memoryInMb.value % 2 !== 0) {
172
- return localization.value.common.valueShouldMultiple.replace(
173
- '{0}',
174
- `${2} ${localization.value.common.mb}`
175
- )
176
- }
177
- return ''
178
- })
179
-
180
- const apiErrorLocal = computed<string>(() => {
181
- return (
182
- props.errorValidationFields?.find(
183
- (message) => message.field === 'memory.size_mb'
184
- )?.error_message || ''
185
- )
186
- })
187
-
188
- const memorySizeLocalAndApiErrorsTexts = computed<string>(() => {
189
- const localError = memoryErrorLocalText.value
190
- const apiError = apiErrorLocal.value
191
-
192
- let result = ''
193
- if (localError && !apiError) result = localError
194
- if (apiError && !localError) result = apiError
195
- if (localError && apiError) result = localError + ', ' + apiError
196
- if (!localError && apiError) result = apiError
197
-
198
- return result
199
- })
200
-
201
- const reservationInvalid = ref<boolean>(false)
202
- const limitInvalid = ref<boolean>(false)
203
- const memoryInvalid = computed<boolean>(
204
- () =>
205
- !!memorySizeLocalAndApiErrorsTexts.value ||
206
- reservationInvalid.value ||
207
- limitInvalid.value
208
- )
209
- watch(
210
- memoryInvalid,
211
- (newValue) => {
212
- emits('invalid', newValue)
213
- },
214
- { immediate: true }
215
- )
216
-
217
- const reservation = ref<string>('2')
218
- watch(reservation, (newValue) => {
219
- const valueInt = parseInt('' + newValue)
220
- reservation.value = isNaN(valueInt) ? '0' : '' + valueInt
221
- })
222
- const reservationType = ref<string>('mb')
223
- const reserveGuestMemory = ref<boolean>(false)
224
- if (model.value.memory.reservation_mb !== 2) {
225
- const reservationInGb = $binary.mbToGb(model.value.memory.reservation_mb)
226
- if (reservationInGb < 1) {
227
- reservation.value = model.value.memory.reservation_mb.toString()
228
- reservationType.value = 'mb'
229
- } else {
230
- reservation.value = reservationInGb
231
- reservationType.value = 'gb'
232
- }
233
- }
234
- watch(
235
- [reservation, reservationType],
236
- () => {
237
- model.value.memory.reservation_mb =
238
- reservationType.value === 'gb'
239
- ? $binary.gbToMb(+reservation.value)
240
- : +reservation.value
241
- },
242
- { deep: true, immediate: true }
243
- )
244
-
245
- const limit = ref<string>('Unlimited')
246
- watch(limit, (newValue) => {
247
- const valueInt = parseInt('' + newValue)
248
- limit.value !== 'Unlimited' &&
249
- (limit.value = isNaN(valueInt) ? '0' : '' + valueInt)
250
- })
251
- const limitType = ref<string>('mb')
252
- const limitOptions = computed<UI_I_OptionItem[] | undefined>(() => {
253
- if (model.value.memory.hotplug)
254
- return memoryOptionsFunc(
255
- localization.value,
256
- memoryInMb.value,
257
- props.maxMemory
258
- )
259
- })
260
- if (model.value.memory.limit_mb !== null) {
261
- if (typeof model.value.memory.limit_mb === 'string')
262
- limit.value = model.value.memory.limit_mb
263
- else {
264
- const limitInGb = $binary.mbToGb(model.value.memory.limit_mb)
265
- if (limitInGb < 1) {
266
- limit.value = model.value.memory.limit_mb.toString()
267
- limitType.value = 'mb'
268
- } else {
269
- limit.value = limitInGb
270
- limitType.value = 'gb'
271
- }
272
- }
273
- }
274
- watch(
275
- [limit, limitType],
276
- () => {
277
- model.value.memory.limit_mb =
278
- limit.value === 'Unlimited'
279
- ? limit.value
280
- : limitType.value === 'gb'
281
- ? $binary.gbToMb(+limit.value)
282
- : +limit.value
283
- },
284
- { deep: true, immediate: true }
285
- )
286
-
287
- // const memoryHotPlug = ref<boolean>(false)
288
- const isDisabledMemoryHotPlug = computed<boolean>(
289
- () => memoryInMb.value >= props.maxMemory || isDisabled.value
290
- )
291
- watch(isDisabledMemoryHotPlug, (newValue) => {
292
- if (newValue) model.value.memory.hotplug = false
293
- })
294
-
295
- const onRemoveValidationError = (): void => {
296
- emits('remove-error-by-title', 'memory.size_mb')
297
- }
298
- </script>
299
-
300
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:selected-memory="selectedMemory"
5
+ v-model:memory-type="memoryType"
6
+ v-model:reservation="reservation"
7
+ v-model:reservation-type="reservationType"
8
+ v-model:reserve-guest-memory="reserveGuestMemory"
9
+ v-model:reservation-invalid="reservationInvalid"
10
+ v-model:limit="limit"
11
+ v-model:limit-type="limitType"
12
+ v-model:limit-invalid="limitInvalid"
13
+ v-model:memory-hot-plug="model.memory.hotplug"
14
+ :error-validation-fields="props.errorValidationFields"
15
+ :memory-invalid="memoryInvalid"
16
+ :error-text="memorySizeLocalAndApiErrorsTexts"
17
+ :memory-options="memoryOptions"
18
+ :is-memory-disabled="isMemoryDisabled"
19
+ :memory-type-options="memoryTypeOptions"
20
+ :is-disabled="isDisabled"
21
+ :limit-options="limitOptions"
22
+ :is-disabled-memory-hot-plug="isDisabledMemoryHotPlug"
23
+ @select-memory="onSelectMemory"
24
+ @remove-error="onRemoveValidationError"
25
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
26
+ />
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
31
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
32
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
33
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
34
+ import {
35
+ memoryOptionsFunc,
36
+ memoryTypeOptionsFunc,
37
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/lib/config/memoryOptions'
38
+
39
+ const model = defineModel<UI_I_CreateVmData>({ required: true })
40
+
41
+ const props = withDefaults(
42
+ defineProps<{
43
+ maxMemory: number
44
+ isEdit: boolean
45
+ errorValidationFields: UI_I_ErrorValidationField[]
46
+ state?: string | number
47
+ }>(),
48
+ {
49
+ state: undefined,
50
+ }
51
+ )
52
+ const emits = defineEmits<{
53
+ (event: 'invalid', value: boolean): void
54
+ (event: 'remove-error-by-title', value: string): void
55
+ }>()
56
+
57
+ const { $store, $binary }: any = useNuxtApp()
58
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
59
+ const currentComponent = computed(() =>
60
+ isNewView.value
61
+ ? defineAsyncComponent(() => import('./New.vue'))
62
+ : defineAsyncComponent(() => import('./Old.vue'))
63
+ )
64
+
65
+ const localization = computed<UI_I_Localization>(() => useLocal())
66
+
67
+ const minMemoryInMb = 128
68
+ watch(
69
+ () => props.maxMemory,
70
+ (newValue) => {
71
+ memoryOptions.value = memoryOptionsFunc(
72
+ localization.value,
73
+ minMemoryInMb,
74
+ newValue
75
+ )
76
+ }
77
+ )
78
+
79
+ const isDisabled = computed<boolean>(() => {
80
+ return props.state === 2
81
+ })
82
+
83
+ const isMemoryDisabled = computed<boolean>(
84
+ () => isDisabled.value && !model.value.memory.hotplug
85
+ )
86
+
87
+ const selectedMemory = ref<number>(4)
88
+ watch(selectedMemory, (newValue) => {
89
+ const valueInt = parseInt('' + newValue)
90
+ selectedMemory.value = isNaN(valueInt) ? 0 : valueInt
91
+ })
92
+ const memoryType = ref<string>('gb')
93
+ const memoryTypeOptions = ref<UI_I_OptionItem[]>(
94
+ memoryTypeOptionsFunc(localization.value)
95
+ )
96
+ const memoryInMb = computed<number>(() => {
97
+ if (memoryType.value === 'mb') {
98
+ return +selectedMemory.value
99
+ }
100
+
101
+ return $binary.universalFromTo(+selectedMemory.value, memoryType.value, 'mb')
102
+ })
103
+ watch(memoryInMb, (newValue) => {
104
+ model.value.memory.size_mb = newValue
105
+ })
106
+ if (model.value.memory.size_mb !== 4096) {
107
+ const sizeInGb = $binary.mbToGb(model.value.memory.size_mb)
108
+ if (sizeInGb < 1) {
109
+ selectedMemory.value = model.value.memory.size_mb
110
+ memoryType.value = 'mb'
111
+ } else {
112
+ selectedMemory.value = sizeInGb
113
+ }
114
+ }
115
+
116
+ const memoryOptions = ref<UI_I_OptionItem[]>(
117
+ memoryOptionsFunc(localization.value, minMemoryInMb, props.maxMemory)
118
+ )
119
+ const onSelectMemory = ({
120
+ value,
121
+ type,
122
+ }: {
123
+ value: number
124
+ type: string
125
+ }): void => {
126
+ selectedMemory.value = value
127
+ if (memoryType.value !== type) {
128
+ memoryType.value = type
129
+ }
130
+ // if (memoryType.value === 'mb') {
131
+ // selectedMemory.value = mb
132
+ // return
133
+ // }
134
+ //
135
+ // selectedMemory.value = $binary.universalFromTo(mb, 'mb', memoryType.value, 12)
136
+ }
137
+
138
+ const memoryErrorLocalText = computed<string>(() => {
139
+ const validValue = /^\d+(\.\d+)?$/.test(selectedMemory.value + '')
140
+ if (!validValue) {
141
+ return localization.value.common.inputContainsInvalidCharacters
142
+ }
143
+
144
+ const maxMemoryInGb = $binary.mbToGb(props.maxMemory)
145
+ if (memoryInMb.value < minMemoryInMb || memoryInMb.value > props.maxMemory) {
146
+ return localization.value.common.memoryMustBe
147
+ .replace('{0}', `${minMemoryInMb} ${localization.value.common.mb}`)
148
+ .replace('{1}', `${maxMemoryInGb} ${localization.value.common.gb}`)
149
+ }
150
+
151
+ if (memoryInMb.value % 2 !== 0) {
152
+ return localization.value.common.valueShouldMultiple.replace(
153
+ '{0}',
154
+ `${2} ${localization.value.common.mb}`
155
+ )
156
+ }
157
+ return ''
158
+ })
159
+
160
+ const apiErrorLocal = computed<string>(() => {
161
+ return (
162
+ props.errorValidationFields?.find(
163
+ (message) => message.field === 'memory.size_mb'
164
+ )?.error_message || ''
165
+ )
166
+ })
167
+
168
+ const memorySizeLocalAndApiErrorsTexts = computed<string>(() => {
169
+ const localError = memoryErrorLocalText.value
170
+ const apiError = apiErrorLocal.value
171
+
172
+ let result = ''
173
+ if (localError && !apiError) result = localError
174
+ if (apiError && !localError) result = apiError
175
+ if (localError && apiError) result = localError + ', ' + apiError
176
+ if (!localError && apiError) result = apiError
177
+
178
+ return result
179
+ })
180
+
181
+ const reservationInvalid = ref<boolean>(false)
182
+ const limitInvalid = ref<boolean>(false)
183
+ const memoryInvalid = computed<boolean>(
184
+ () =>
185
+ !!memorySizeLocalAndApiErrorsTexts.value ||
186
+ reservationInvalid.value ||
187
+ limitInvalid.value
188
+ )
189
+ watch(
190
+ memoryInvalid,
191
+ (newValue) => {
192
+ emits('invalid', newValue)
193
+ },
194
+ { immediate: true }
195
+ )
196
+
197
+ const reservation = ref<string>('2')
198
+ watch(reservation, (newValue) => {
199
+ const valueInt = parseInt('' + newValue)
200
+ reservation.value = isNaN(valueInt) ? '0' : '' + valueInt
201
+ })
202
+ const reservationType = ref<string>('mb')
203
+ const reserveGuestMemory = ref<boolean>(false)
204
+ if (model.value.memory.reservation_mb !== 2) {
205
+ const reservationInGb = $binary.mbToGb(model.value.memory.reservation_mb)
206
+ if (reservationInGb < 1) {
207
+ reservation.value = model.value.memory.reservation_mb.toString()
208
+ reservationType.value = 'mb'
209
+ } else {
210
+ reservation.value = reservationInGb
211
+ reservationType.value = 'gb'
212
+ }
213
+ }
214
+ watch(
215
+ [reservation, reservationType],
216
+ () => {
217
+ model.value.memory.reservation_mb =
218
+ reservationType.value === 'gb'
219
+ ? $binary.gbToMb(+reservation.value)
220
+ : +reservation.value
221
+ },
222
+ { deep: true, immediate: true }
223
+ )
224
+
225
+ const limit = ref<string>('Unlimited')
226
+ watch(limit, (newValue) => {
227
+ const valueInt = parseInt('' + newValue)
228
+ limit.value !== 'Unlimited' &&
229
+ (limit.value = isNaN(valueInt) ? '0' : '' + valueInt)
230
+ })
231
+ const limitType = ref<string>('mb')
232
+ const limitOptions = computed<UI_I_OptionItem[] | undefined>(() => {
233
+ if (model.value.memory.hotplug)
234
+ return memoryOptionsFunc(
235
+ localization.value,
236
+ memoryInMb.value,
237
+ props.maxMemory
238
+ )
239
+ })
240
+ if (model.value.memory.limit_mb !== null) {
241
+ if (typeof model.value.memory.limit_mb === 'string')
242
+ limit.value = model.value.memory.limit_mb
243
+ else {
244
+ const limitInGb = $binary.mbToGb(model.value.memory.limit_mb)
245
+ if (limitInGb < 1) {
246
+ limit.value = model.value.memory.limit_mb.toString()
247
+ limitType.value = 'mb'
248
+ } else {
249
+ limit.value = limitInGb
250
+ limitType.value = 'gb'
251
+ }
252
+ }
253
+ }
254
+ watch(
255
+ [limit, limitType],
256
+ () => {
257
+ model.value.memory.limit_mb =
258
+ limit.value === 'Unlimited'
259
+ ? limit.value
260
+ : limitType.value === 'gb'
261
+ ? $binary.gbToMb(+limit.value)
262
+ : +limit.value
263
+ },
264
+ { deep: true, immediate: true }
265
+ )
266
+
267
+ // const memoryHotPlug = ref<boolean>(false)
268
+ const isDisabledMemoryHotPlug = computed<boolean>(
269
+ () => memoryInMb.value >= props.maxMemory || isDisabled.value
270
+ )
271
+ watch(isDisabledMemoryHotPlug, (newValue) => {
272
+ if (newValue) model.value.memory.hotplug = false
273
+ })
274
+
275
+ const onRemoveValidationError = (): void => {
276
+ emits('remove-error-by-title', 'memory.size_mb')
277
+ }
278
+ </script>
279
+
280
+ <style scoped lang="scss"></style>