bfg-common 1.5.111 → 1.5.113

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 (302) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/perPage/PerPage.vue +58 -58
  4. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  5. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  6. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  7. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  8. package/components/common/context/lib/models/interfaces.ts +31 -31
  9. package/components/common/context/recursion/Recursion.vue +87 -87
  10. package/components/common/context/recursion/RecursionNew.vue +238 -238
  11. package/components/common/diagramMain/DiagramMain.vue +897 -897
  12. package/components/common/diagramMain/Header.vue +214 -214
  13. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  14. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  15. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  16. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  17. package/components/common/pages/home/headline/Headline.vue +45 -45
  18. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  19. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  20. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  21. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  22. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  23. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  24. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  25. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  26. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  27. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  28. package/components/common/pages/packages/Packages.vue +208 -208
  29. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  30. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  31. package/components/common/portlets/tag/CreateCategory.vue +10 -10
  32. package/components/common/portlets/tag/Portlet.vue +433 -433
  33. package/components/common/portlets/tag/TagAddNew.vue +8 -8
  34. package/components/common/portlets/tag/lib/config/config.ts +1 -0
  35. package/components/common/readyToComplete/New.vue +66 -66
  36. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  37. package/components/common/recursionTree/RecursionTree.vue +223 -223
  38. package/components/common/resource/progressBlock/ProgressBlock.vue +7 -7
  39. package/components/common/resource/simple/Simple.vue +2 -2
  40. package/components/common/resource/simple/lib/models/enums.ts +1 -1
  41. package/components/common/select/button/ButtonDropdown.vue +108 -108
  42. package/components/common/select/input/Input.vue +5 -6
  43. package/components/common/select/radio/RadioGroup.vue +3 -4
  44. package/components/common/selectLanguage/SelectLanguage.vue +27 -27
  45. package/components/common/spiceConsole/Drawer.vue +370 -370
  46. package/components/common/spiceConsole/SpiceConsole.vue +3 -3
  47. package/components/common/spiceConsole/keyboard/Keyboard.vue +8 -8
  48. package/components/common/spiceConsole/keyboard/lib/config/keyboardRows.ts +2 -2
  49. package/components/common/spiceConsole/keyboard/lib/models/interfaces.ts +1 -1
  50. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  51. package/components/common/split/horizontal/HorizontalNew.vue +9 -9
  52. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  53. package/components/common/split/vertical/Vertical.vue +162 -160
  54. package/components/common/split/vertical/VerticalNew.vue +10 -7
  55. package/components/common/split/vertical/VerticalOld.vue +11 -8
  56. package/components/common/summary/notification/NotificationOld.vue +3 -2
  57. package/components/common/titleBar/titleBarNew/notification/Notification.vue +4 -4
  58. package/components/common/tools/Actions.vue +201 -202
  59. package/components/common/vm/actions/add/Add.vue +785 -785
  60. package/components/common/vm/actions/add/New.vue +556 -556
  61. package/components/common/vm/actions/add/Old.vue +371 -371
  62. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  63. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  64. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  65. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  66. package/components/common/vm/actions/clone/Clone.vue +798 -798
  67. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  68. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  69. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  70. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +276 -275
  71. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +272 -272
  72. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +178 -177
  73. package/components/common/vm/actions/common/customizeHardware/lib/config/navItems.ts +5 -5
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +468 -468
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +122 -118
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusOld.vue +1 -2
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +198 -198
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -194
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +23 -17
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketNew.vue +1 -1
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketOld.vue +1 -1
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlugNew.vue +1 -1
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlugOld.vue +7 -6
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +13 -13
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelOld.vue +3 -3
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +1 -1
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesOld.vue +1 -1
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +122 -122
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +7 -3
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +1 -1
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +14 -16
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugOld.vue +4 -5
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +266 -266
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheNew.vue +20 -19
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheOld.vue +1 -0
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIopsNew.vue +32 -33
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -149
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -74
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +75 -74
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalOld.vue +1 -1
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeNew.vue +19 -20
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +1 -1
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +45 -45
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterTypeNew.vue +19 -20
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +2 -2
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +68 -70
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +81 -83
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +4 -1
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +83 -85
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +80 -82
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +2 -2
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +57 -57
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +1 -1
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +1 -1
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +105 -105
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/ModelNew.vue +18 -18
  153. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/ModelOld.vue +1 -1
  154. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysNew.vue +20 -20
  155. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysOld.vue +2 -2
  156. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  157. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryOld.vue +6 -2
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +0 -1
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +43 -43
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  166. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  167. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  168. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +144 -144
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +12 -6
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +1 -1
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteOld.vue +3 -3
  174. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  175. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferOld.vue +4 -4
  176. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  177. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +1 -1
  178. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +1 -1
  179. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  180. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +40 -40
  181. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +2 -2
  182. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +100 -103
  183. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  184. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  185. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +1 -1
  186. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +1 -1
  187. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  188. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  189. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  190. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +1 -1
  191. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +28 -29
  192. package/components/common/vm/actions/common/lib/models/types.ts +1 -1
  193. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  194. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +100 -100
  195. package/components/common/vm/actions/common/select/compatibility/New.vue +165 -165
  196. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  197. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  198. package/components/common/vm/actions/common/select/computeResource/New.vue +141 -141
  199. package/components/common/vm/actions/common/select/computeResource/Old.vue +99 -99
  200. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  201. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +51 -48
  202. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  203. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  204. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  205. package/components/common/vm/actions/common/select/createType/Old.vue +70 -70
  206. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  207. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  208. package/components/common/vm/actions/common/select/name/New.vue +246 -246
  209. package/components/common/vm/actions/common/select/name/Old.vue +119 -119
  210. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  211. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  212. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  213. package/components/common/vm/actions/common/select/storage/Old.vue +129 -129
  214. package/components/common/vm/actions/common/select/storage/Storage.vue +131 -131
  215. package/components/common/vm/actions/common/select/storage/new/New.vue +193 -193
  216. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  217. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  218. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  219. package/components/common/vm/actions/common/select/template/Template.vue +64 -64
  220. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  221. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +1 -1
  222. package/components/common/vm/actions/editSettings/lib/config/modal.ts +6 -4
  223. package/components/common/vm/actions/editSettings/lib/models/types.ts +4 -4
  224. package/components/common/vm/actions/editSettings/lib/utils.ts +25 -29
  225. package/components/common/vm/actions/editSettings/new/New.vue +186 -186
  226. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  227. package/components/common/vm/actions/lib/models/types.ts +1 -1
  228. package/components/common/vm/actions/lib/utils.ts +2 -10
  229. package/components/common/wizards/datastore/add/Add.vue +6 -7
  230. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  231. package/components/common/wizards/datastore/add/lib/validations.ts +1 -1
  232. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +1 -1
  233. package/components/common/wizards/datastore/add/nfs/_kerberosAuthentication/KerberosAuthentication.vue +6 -6
  234. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  235. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +5 -5
  236. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +1 -1
  237. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +5 -14
  238. package/components/common/wizards/datastore/add/nfs/configuration/_serversList/DeletePopover.vue +1 -1
  239. package/components/common/wizards/datastore/add/nfs/configuration/_serversList/ServersList.vue +9 -9
  240. package/components/common/wizards/datastore/add/nfs/configuration/_serversList/lib/config/serversListConfig.ts +10 -7
  241. package/components/common/wizards/datastore/add/nfs/configuration/_serversList/lib/config/tableKeys.ts +1 -1
  242. package/components/common/wizards/datastore/add/nfs/version/Version.vue +1 -4
  243. package/components/common/wizards/datastore/add/nfs/version/lib/config/versionOptions.ts +1 -0
  244. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +89 -92
  245. package/components/common/wizards/datastore/add/readyComplete/lib/config/propertiesDetails.ts +1 -0
  246. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +1 -6
  247. package/components/common/wizards/datastore/add/sharedStorm/_version/Version.vue +3 -6
  248. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +4 -4
  249. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/config/selectOptions.ts +6 -3
  250. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces.ts +1 -1
  251. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/types.ts +1 -1
  252. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/table/Table.vue +8 -8
  253. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +5 -5
  254. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +1 -1
  255. package/components/common/wizards/datastore/add/types/Types.vue +0 -4
  256. package/components/common/wizards/datastore/add/types/lib/config/typeOptions.ts +3 -3
  257. package/components/common/wizards/network/add/Add.vue +25 -25
  258. package/components/common/wizards/network/add/lib/models/types.ts +2 -2
  259. package/components/common/wizards/network/add/mappers/mappers.ts +1 -1
  260. package/components/common/wizards/network/add/modals/SelectNetwork.vue +3 -1
  261. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +3 -1
  262. package/components/common/wizards/network/add/modals/SelectSwitch.vue +3 -1
  263. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +4 -4
  264. package/components/common/wizards/network/add/steps/IpFourSettings.vue +13 -9
  265. package/components/common/wizards/network/add/steps/PhysicalAdapter.vue +1 -1
  266. package/components/common/wizards/network/add/steps/PortProperties.vue +13 -9
  267. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  268. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +15 -15
  269. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  270. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  271. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  272. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +1 -1
  273. package/components/common/wizards/vm/migrate/select/computeResource/lib/config/tabsPannel.ts +1 -0
  274. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +2 -2
  275. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  276. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  277. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  278. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  279. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +2 -2
  280. package/components/common/wizards/vm/migrate/select/storage/configure/batch/Batch.vue +2 -2
  281. package/components/common/wizards/vm/migrate/select/storage/configure/batch/table/Table.vue +2 -2
  282. package/components/common/wizards/vm/migrate/select/storage/configure/disk/Disk.vue +1 -1
  283. package/components/common/wizards/vm/migrate/select/storage/configure/disk/table/Table.vue +3 -3
  284. package/components/common/wizards/vm/migrate/select/storage/lib/config/tabsPannel.ts +1 -0
  285. package/components/common/wizards/vm/migrate/select/targetServer/lib/config/tabsPannel.ts +1 -0
  286. package/components/common/wizards/vm/migrate/select/targetServer/lib/models/types.ts +1 -1
  287. package/components/common/wizards/vm/migrate/select/targetServer/saved/Saved.vue +1 -1
  288. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +3 -3
  289. package/composables/productNameLocal.ts +30 -30
  290. package/composables/useAppVersion.ts +21 -21
  291. package/lib/models/store/host/interfaces.ts +1 -1
  292. package/lib/models/store/network/interfaces.ts +1 -1
  293. package/lib/models/store/storage/interfaces.ts +1 -1
  294. package/lib/models/store/vm/interfaces.ts +1 -1
  295. package/package.json +1 -1
  296. package/plugins/date.ts +233 -233
  297. package/plugins/directives.ts +24 -24
  298. package/public/spice-console/lib/images/bitmap.js +203 -203
  299. package/public/spice-console/network/spicechannel.js +383 -383
  300. package/store/main/mutations.ts +7 -7
  301. package/store/main/state.ts +7 -7
  302. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,433 +1,433 @@
1
- <template>
2
- <div>
3
- <ui-portlet
4
- class="tags"
5
- test-id="tags-portlet"
6
- :title="portletTitle"
7
- :dragged="props.dragged"
8
- :dragged-any="props.draggedAny"
9
- :is-open="props.isOpen"
10
- :portlet-id="props.portletId"
11
- :is-loading="props.isLoading"
12
- @toggle="onTogglePortlet"
13
- >
14
- <template #portletBody="{ isLoadingBody }">
15
- <ui-data-table
16
- test-id="tags-portlet-table"
17
- :data="data"
18
- :options="options"
19
- server-off
20
- :default-layout="false"
21
- size="sm"
22
- :loading="isLoadingBody"
23
- :skeleton="skeletonData"
24
- >
25
- <!-- :loading="loading"-->
26
- <template #icon="{ item }">
27
- <div class="actions-dropdown-button-container">
28
- <span
29
- :id="`actions-tags-${item.data.row}`"
30
- :class="[
31
- 'icon-container',
32
- {
33
- selected: isShow[`action-tags-${item.data.row}`],
34
- },
35
- ]"
36
- @click="onShowActions(item.data.row)"
37
- >
38
- <ui-icon :name="item.data.icon" width="16" height="16" />
39
- </span>
40
- <ui-popup-window
41
- v-model="isShow[`action-tags-${item.data.row}`]"
42
- :elem-id="`actions-tags-${item.data.row}`"
43
- width="fit-content"
44
- left
45
- bottom
46
- >
47
- <div class="edit-actions-container">
48
- <div
49
- class="action"
50
- data-id="view-tag-details-action"
51
- @click="onShowDetails(item.data.row)"
52
- >
53
- <ui-icon name="view-details" width="16" height="16" />
54
- <span>{{ localization.common.viewDetails }}</span>
55
- </div>
56
- <div
57
- v-development="true"
58
- class="action-remove"
59
- data-id="show-remove-tag-dialog-action"
60
- @click="onShowRemoveDialog(item.data.row)"
61
- >
62
- <ui-icon name="delete" width="16" height="16" />
63
- <span>{{ localization.common.remove }}</span>
64
- </div>
65
- </div>
66
- </ui-popup-window>
67
- </div>
68
- </template>
69
- </ui-data-table>
70
- </template>
71
- <template #portletFooter="{ isLoadingFooter }">
72
- <div class="footer">
73
- <ui-button
74
- v-if="!isLoadingFooter"
75
- v-development="true"
76
- test-id="show-assign-new-tag-modal"
77
- variant="text"
78
- is-without-height
79
- is-without-sizes
80
- @click="onShowAssignModal"
81
- >
82
- {{ localization.common.assignNew }}...
83
- </ui-button>
84
- <ui-portlet-skeleton-footer v-else />
85
- </div>
86
- </template>
87
- </ui-portlet>
88
-
89
- <ui-popup
90
- v-if="isShowRemoveDialog"
91
- test-id="remove-tag-dialog"
92
- icon-name="info-status"
93
- :texts="removeTagDialogTexts"
94
- :message="removeTagMessage"
95
- :title="localization.common.removeTag"
96
- @hide="onHideRemoveDialog"
97
- @submit="onRemoveTag"
98
- />
99
-
100
- <common-portlets-tag-add-new
101
- v-if="isShowModal"
102
- :is-show-modal="isShowModal"
103
- :assign-data="assignData"
104
- :selected-item-name="props.selectedItemName"
105
- @add-new-tag="onAddNewTag"
106
- @create-category="onCreateCategory"
107
- @cancel="onHideAssignModal"
108
- @assign="onAssignSelectedTags"
109
- />
110
- </div>
111
- </template>
112
-
113
- <script setup lang="ts">
114
- import type {
115
- UI_I_ArbitraryObject,
116
- UI_I_Localization,
117
- } from '~/lib/models/interfaces'
118
- import type {
119
- UI_I_DataTable,
120
- UI_I_DataTableOptions,
121
- UI_I_DataTableHeader,
122
- UI_I_DataTableBody,
123
- } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
124
- import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
125
- import type { UI_I_CreateCategoryData } from '~/components/common/portlets/tag/lib/models/interfaces'
126
- import {
127
- tagTableHeaderOptions,
128
- tagTableHeaderDataFunc,
129
- tagsAssignBodyItemsTemporary,
130
- skeletonData,
131
- } from '~/components/common/portlets/tag/lib/config/config'
132
-
133
- const props = defineProps<{
134
- portletId: string
135
- dragged?: boolean
136
- isOpen?: boolean
137
- draggedAny?: boolean
138
- selectedItemName: string
139
- bodyItems: UI_I_DataTableBody[]
140
- isLoading: boolean
141
- }>()
142
-
143
- const localization = computed<UI_I_Localization>(() => useLocal())
144
-
145
- const isShow = ref<UI_I_ArbitraryObject<boolean>>({})
146
- const isShowModal = ref<boolean>(false)
147
- const onShowAssignModal = (): void => {
148
- isShowModal.value = true
149
- }
150
-
151
- const onHideAssignModal = (): void => {
152
- isShowModal.value = false
153
- }
154
- const onShowActions = (id: number): void => {
155
- isShow.value[`action-tags-${id}`] = !isShow.value[`action-tags-${id}`]
156
- }
157
- const onShowDetails = (_id: number): void => {
158
- navigateTo('/tags-attributes/tags')
159
- }
160
-
161
- const isShowRemoveDialog = ref<boolean>(false)
162
-
163
- const onHideRemoveDialog = (): void => {
164
- isShowRemoveDialog.value = false
165
- }
166
- const tagIdForRemove = ref<number>(0)
167
- const tagNameForRemove = computed<string>(
168
- () =>
169
- (tagsBodyItems.value.find(
170
- (row: UI_I_DataTableBody) => row.row === tagIdForRemove.value
171
- )?.data[0]?.text || '') as string
172
- )
173
-
174
- const removeTagMessage = computed<string>(() =>
175
- localization.value.common.removeTagDialog
176
- .replace?.('{tagName}', tagNameForRemove.value)
177
- .replace('{selectedItemName}', props.selectedItemName)
178
- )
179
- const onShowRemoveDialog = (id: number): void => {
180
- tagIdForRemove.value = id
181
- isShowRemoveDialog.value = true
182
- }
183
-
184
- const removeTagDialogTexts = computed<UI_I_ModalTexts>(() => ({
185
- button1: localization.value.common.cancel,
186
- button2: localization.value.common.remove,
187
- }))
188
-
189
- const onRemoveTag = (): void => {
190
- onHideRemoveDialog()
191
-
192
- const removeItem = tagsBodyItems.value.find(
193
- (row) => row.row === tagIdForRemove.value
194
- )
195
- if (!removeItem) return
196
-
197
- emits('remove-tag', removeItem)
198
- tagsBodyItems.value = tagsBodyItems.value.filter(
199
- (row) => row.row !== tagIdForRemove.value
200
- )
201
- }
202
-
203
- const options: UI_I_DataTableOptions = {
204
- ...tagTableHeaderOptions,
205
- isSelectable: false,
206
- }
207
-
208
- const tagsHeadItems = computed<UI_I_DataTableHeader[]>(() =>
209
- tagTableHeaderDataFunc(localization.value)
210
- )
211
- // const tagsBodyItems = computed<UI_I_TableBodyItem[][]>(() => {
212
- // return $store.getters['inventory/getTags'] || []
213
- // })
214
-
215
- // const { $store } = useNuxtApp()
216
-
217
- const tagsBodyItems = ref<UI_I_DataTableBody[]>([])
218
-
219
- watch(
220
- () => props.bodyItems,
221
- (newValue: UI_I_DataTableBody[]) => {
222
- tagsBodyItems.value = newValue
223
- },
224
- { deep: true, immediate: true }
225
- )
226
-
227
- const tagsAssignBodyItems = ref<UI_I_DataTableBody[]>(
228
- useDeepCopy(tagsAssignBodyItemsTemporary)
229
- )
230
-
231
- const data = computed<UI_I_DataTable>(() => ({
232
- id: 'tags',
233
- selectedRows: [],
234
- isAllSelected: false,
235
- title: '',
236
- subTitle: '',
237
- header: tagsHeadItems.value,
238
- body: tagsBodyItems.value,
239
- }))
240
-
241
- const assignData = computed<UI_I_DataTable>(() => ({
242
- id: 'tags-assign',
243
- selectedRows: [],
244
- isAllSelected: false,
245
- title: '',
246
- subTitle: '',
247
- header: tagsHeadItems.value,
248
- body: tagsAssignBodyItems.value,
249
- }))
250
-
251
- // const showTagModal = (): void => {
252
- // isShowTagModal.value = true
253
- // }
254
-
255
- // const routeParams = useRoute().params
256
- // const routeId: string = routeParams?.id.toString()
257
- // const routeType: string = routeParams?.type.toString()
258
- // const getTags = async (): Promise<void> => {
259
- // const payload: I_GetTagsPayload = {
260
- // id: routeId,
261
- // type: `${routeType}s`,
262
- // }
263
- //
264
- // return await $store.dispatch('inventory/A_GET_TAGS', payload)
265
- // }
266
- // getTags()
267
-
268
- const onAddNewTag = (newTag: UI_I_DataTableBody): void => {
269
- tagsAssignBodyItems.value.push(newTag)
270
- emits('create-new-tag', newTag)
271
- }
272
-
273
- const onAssignSelectedTags = async (
274
- data: UI_I_DataTableBody[]
275
- ): Promise<void> => {
276
- if (data.length > 0) {
277
- const sortedIds = tagsBodyItems.value
278
- .map((row: UI_I_DataTableBody) => Number(row.row))
279
- .sort()
280
- let lastId = sortedIds[sortedIds.length - 1]
281
- lastId = lastId === undefined ? -1 : lastId
282
-
283
- const selectedNewTags = data.map((row, index) => {
284
- return {
285
- ...row,
286
- row: lastId + index + 1,
287
- isSelected: false,
288
- data: [
289
- row.data[0],
290
- row.data[1],
291
- row.data[2],
292
- {
293
- ...row.data[3],
294
- key: 'icon',
295
- data: {
296
- icon: 'vertical-dotes',
297
- row: lastId + index + 1,
298
- },
299
- },
300
- ],
301
- }
302
- })
303
-
304
- const addedTagsName = selectedNewTags.map((row) => row.data[0].text)
305
-
306
- tagsAssignBodyItems.value = tagsAssignBodyItems.value.filter(
307
- (row: UI_I_DataTableBody) => !addedTagsName.includes(row.data[0].text)
308
- )
309
-
310
- tagsBodyItems.value = [...tagsBodyItems.value, ...selectedNewTags]
311
- emits('assign-new-tags', selectedNewTags)
312
- }
313
- onHideAssignModal()
314
- // const tags = data.map((row) => {
315
- // return {
316
- // name: row[0].text,
317
- // description: row[1].text,
318
- // category: 'none',
319
- // }
320
- // })
321
- // const payload: I_UpdateTagsPayload = {
322
- // tags,
323
- // id: routeId,
324
- // type: `${routeType}s`,
325
- // }
326
- // hideTagModal()
327
- // await $store.dispatch('inventory/A_UPDATE_TAGS', payload)
328
- //
329
- // globalRefresh()
330
- }
331
-
332
- const portletTitle = computed<string>(
333
- () =>
334
- localization.value.common.assignedTags +
335
- (tagsBodyItems.value.length ? ` (${tagsBodyItems.value.length})` : '')
336
- )
337
- // const globalRefresh = (): void => {
338
- // $store.dispatch('main/A_GLOBAL_REFRESH', null)
339
- // }
340
-
341
- const onCreateCategory = (data: UI_I_CreateCategoryData): void => {
342
- emits('create-category', data)
343
- }
344
-
345
- const emits = defineEmits<{
346
- (event: 'toggle-portlet', id: string): void
347
- (event: 'create-category', value: UI_I_CreateCategoryData): void
348
- (event: 'create-new-tag', value: UI_I_DataTableBody): void
349
- (event: 'assign-new-tags', value: UI_I_DataTableBody[]): void
350
- (event: 'remove-tag', value: UI_I_DataTableBody): void
351
- }>()
352
-
353
- const onTogglePortlet = (id: string): void => {
354
- emits('toggle-portlet', id)
355
- }
356
- </script>
357
-
358
- <style scoped lang="scss">
359
- .icon-container {
360
- width: 16px;
361
- height: 16px;
362
- display: block;
363
- cursor: pointer;
364
- color: var(--table-actions-icon);
365
-
366
- &:hover,
367
- &.selected {
368
- color: var(--table-actions-icon-hover);
369
- }
370
- }
371
-
372
- .action-remove {
373
- display: flex;
374
- align-items: center;
375
- column-gap: 8px;
376
-
377
- height: 32px;
378
- border-radius: 4px;
379
- padding: 8px;
380
- color: var(--table-actions-remove);
381
- cursor: pointer;
382
-
383
- font-size: 13px;
384
- font-weight: 500;
385
- line-height: 15.73px;
386
-
387
- &:hover {
388
- background: var(--table-actions-bg-hover);
389
- }
390
- }
391
-
392
- .action {
393
- display: flex;
394
- align-items: center;
395
- column-gap: 8px;
396
-
397
- height: 32px;
398
- border-radius: 4px;
399
- padding: 8px;
400
- color: var(--table-actions-view);
401
- margin-bottom: 8px;
402
- cursor: pointer;
403
-
404
- font-size: 13px;
405
- font-weight: 500;
406
- line-height: 15.73px;
407
-
408
- &:hover {
409
- background: var(--table-actions-bg-hover);
410
- }
411
- }
412
-
413
- .footer {
414
- padding: 0 16px 8px;
415
-
416
- :deep(button.ui-btn) {
417
- line-height: 16px;
418
- margin-bottom: 11px;
419
- margin-left: 6px;
420
- width: fit-content;
421
- }
422
- }
423
-
424
- .actions-dropdown-button-container {
425
- display: flex;
426
- justify-content: flex-end;
427
- width: 100%;
428
- }
429
-
430
- .edit-actions-container {
431
- padding: 8px;
432
- }
433
- </style>
1
+ <template>
2
+ <div>
3
+ <ui-portlet
4
+ :title="portletTitle"
5
+ :dragged="props.dragged"
6
+ :dragged-any="props.draggedAny"
7
+ :is-open="props.isOpen"
8
+ :portlet-id="props.portletId"
9
+ :is-loading="props.isLoading"
10
+ class="tags"
11
+ test-id="tags-portlet"
12
+ @toggle="onTogglePortlet"
13
+ >
14
+ <template #portletBody="{ isLoadingBody }">
15
+ <ui-data-table
16
+ :data="data"
17
+ :options="options"
18
+ :default-layout="false"
19
+ :loading="isLoadingBody"
20
+ :skeleton="skeletonData"
21
+ test-id="tags-portlet-table"
22
+ size="sm"
23
+ server-off
24
+ >
25
+ <!-- :loading="loading"-->
26
+ <template #icon="{ item }">
27
+ <div class="actions-dropdown-button-container">
28
+ <span
29
+ :id="`actions-tags-${item.data.row}`"
30
+ :class="[
31
+ 'icon-container',
32
+ {
33
+ selected: isShow[`action-tags-${item.data.row}`],
34
+ },
35
+ ]"
36
+ @click="onShowActions(item.data.row)"
37
+ >
38
+ <ui-icon :name="item.data.icon" width="16" height="16" />
39
+ </span>
40
+ <ui-popup-window
41
+ v-model="isShow[`action-tags-${item.data.row}`]"
42
+ :elem-id="`actions-tags-${item.data.row}`"
43
+ width="fit-content"
44
+ left
45
+ bottom
46
+ >
47
+ <div class="edit-actions-container">
48
+ <div
49
+ class="action"
50
+ data-id="view-tag-details-action"
51
+ @click="onShowDetails(item.data.row)"
52
+ >
53
+ <ui-icon name="view-details" width="16" height="16" />
54
+ <span>{{ localization.common.viewDetails }}</span>
55
+ </div>
56
+ <div
57
+ v-development="true"
58
+ class="action-remove"
59
+ data-id="show-remove-tag-dialog-action"
60
+ @click="onShowRemoveDialog(item.data.row)"
61
+ >
62
+ <ui-icon name="delete" width="16" height="16" />
63
+ <span>{{ localization.common.remove }}</span>
64
+ </div>
65
+ </div>
66
+ </ui-popup-window>
67
+ </div>
68
+ </template>
69
+ </ui-data-table>
70
+ </template>
71
+ <template #portletFooter="{ isLoadingFooter }">
72
+ <div class="footer">
73
+ <ui-button
74
+ v-if="!isLoadingFooter"
75
+ v-development="true"
76
+ test-id="show-assign-new-tag-modal"
77
+ variant="text"
78
+ is-without-height
79
+ is-without-sizes
80
+ @click="onShowAssignModal"
81
+ >
82
+ {{ localization.common.assignNew }}...
83
+ </ui-button>
84
+ <ui-portlet-skeleton-footer v-else />
85
+ </div>
86
+ </template>
87
+ </ui-portlet>
88
+
89
+ <ui-popup
90
+ v-if="isShowRemoveDialog"
91
+ :texts="removeTagDialogTexts"
92
+ :message="removeTagMessage"
93
+ :title="localization.common.removeTag"
94
+ test-id="remove-tag-dialog"
95
+ icon-name="info-status"
96
+ @hide="onHideRemoveDialog"
97
+ @submit="onRemoveTag"
98
+ />
99
+
100
+ <common-portlets-tag-add-new
101
+ v-if="isShowModal"
102
+ :is-show-modal="isShowModal"
103
+ :assign-data="assignData"
104
+ :selected-item-name="props.selectedItemName"
105
+ @add-new-tag="onAddNewTag"
106
+ @create-category="onCreateCategory"
107
+ @cancel="onHideAssignModal"
108
+ @assign="onAssignSelectedTags"
109
+ />
110
+ </div>
111
+ </template>
112
+
113
+ <script setup lang="ts">
114
+ import type {
115
+ UI_I_DataTable,
116
+ UI_I_DataTableOptions,
117
+ UI_I_DataTableHeader,
118
+ UI_I_DataTableBody,
119
+ } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
120
+ import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
121
+ import type {
122
+ UI_I_ArbitraryObject,
123
+ UI_I_Localization,
124
+ } from '~/lib/models/interfaces'
125
+ import type { UI_I_CreateCategoryData } from '~/components/common/portlets/tag/lib/models/interfaces'
126
+ import {
127
+ tagTableHeaderOptions,
128
+ tagTableHeaderDataFunc,
129
+ tagsAssignBodyItemsTemporary,
130
+ skeletonData,
131
+ } from '~/components/common/portlets/tag/lib/config/config'
132
+
133
+ const props = defineProps<{
134
+ portletId: string
135
+ dragged?: boolean
136
+ isOpen?: boolean
137
+ draggedAny?: boolean
138
+ selectedItemName: string
139
+ bodyItems: UI_I_DataTableBody[]
140
+ isLoading: boolean
141
+ }>()
142
+
143
+ const emits = defineEmits<{
144
+ (event: 'toggle-portlet', id: string): void
145
+ (event: 'create-category', value: UI_I_CreateCategoryData): void
146
+ (event: 'create-new-tag', value: UI_I_DataTableBody): void
147
+ (event: 'assign-new-tags', value: UI_I_DataTableBody[]): void
148
+ (event: 'remove-tag', value: UI_I_DataTableBody): void
149
+ }>()
150
+
151
+ const localization = computed<UI_I_Localization>(() => useLocal())
152
+
153
+ const isShow = ref<UI_I_ArbitraryObject<boolean>>({})
154
+ const isShowModal = ref<boolean>(false)
155
+ const onShowAssignModal = (): void => {
156
+ isShowModal.value = true
157
+ }
158
+
159
+ const onHideAssignModal = (): void => {
160
+ isShowModal.value = false
161
+ }
162
+ const onShowActions = (id: number): void => {
163
+ isShow.value[`action-tags-${id}`] = !isShow.value[`action-tags-${id}`]
164
+ }
165
+ const onShowDetails = (_id: number): void => {
166
+ navigateTo('/tags-attributes/tags')
167
+ }
168
+
169
+ const isShowRemoveDialog = ref<boolean>(false)
170
+
171
+ const onHideRemoveDialog = (): void => {
172
+ isShowRemoveDialog.value = false
173
+ }
174
+ const tagIdForRemove = ref<number>(0)
175
+ const tagNameForRemove = computed<string>(
176
+ () =>
177
+ (tagsBodyItems.value.find(
178
+ (row: UI_I_DataTableBody) => row.row === tagIdForRemove.value
179
+ )?.data[0]?.text || '') as string
180
+ )
181
+
182
+ const removeTagMessage = computed<string>(() =>
183
+ localization.value.common.removeTagDialog
184
+ .replace?.('{tagName}', tagNameForRemove.value)
185
+ .replace('{selectedItemName}', props.selectedItemName)
186
+ )
187
+ const onShowRemoveDialog = (id: number): void => {
188
+ tagIdForRemove.value = id
189
+ isShowRemoveDialog.value = true
190
+ }
191
+
192
+ const removeTagDialogTexts = computed<UI_I_ModalTexts>(() => ({
193
+ button1: localization.value.common.cancel,
194
+ button2: localization.value.common.remove,
195
+ }))
196
+
197
+ const onRemoveTag = (): void => {
198
+ onHideRemoveDialog()
199
+
200
+ const removeItem = tagsBodyItems.value.find(
201
+ (row) => row.row === tagIdForRemove.value
202
+ )
203
+ if (!removeItem) return
204
+
205
+ emits('remove-tag', removeItem)
206
+ tagsBodyItems.value = tagsBodyItems.value.filter(
207
+ (row) => row.row !== tagIdForRemove.value
208
+ )
209
+ }
210
+
211
+ const options: UI_I_DataTableOptions = {
212
+ ...tagTableHeaderOptions,
213
+ isSelectable: false,
214
+ }
215
+
216
+ const tagsHeadItems = computed<UI_I_DataTableHeader[]>(() =>
217
+ tagTableHeaderDataFunc(localization.value)
218
+ )
219
+ // const tagsBodyItems = computed<UI_I_TableBodyItem[][]>(() => {
220
+ // return $store.getters['inventory/getTags'] || []
221
+ // })
222
+
223
+ // const { $store } = useNuxtApp()
224
+
225
+ const tagsBodyItems = ref<UI_I_DataTableBody[]>([])
226
+
227
+ watch(
228
+ () => props.bodyItems,
229
+ (newValue: UI_I_DataTableBody[]) => {
230
+ tagsBodyItems.value = newValue
231
+ },
232
+ { deep: true, immediate: true }
233
+ )
234
+
235
+ const tagsAssignBodyItems = ref<UI_I_DataTableBody[]>(
236
+ useDeepCopy(tagsAssignBodyItemsTemporary)
237
+ )
238
+
239
+ const data = computed<UI_I_DataTable>(() => ({
240
+ id: 'tags',
241
+ selectedRows: [],
242
+ isAllSelected: false,
243
+ title: '',
244
+ subTitle: '',
245
+ header: tagsHeadItems.value,
246
+ body: tagsBodyItems.value,
247
+ }))
248
+
249
+ const assignData = computed<UI_I_DataTable>(() => ({
250
+ id: 'tags-assign',
251
+ selectedRows: [],
252
+ isAllSelected: false,
253
+ title: '',
254
+ subTitle: '',
255
+ header: tagsHeadItems.value,
256
+ body: tagsAssignBodyItems.value,
257
+ }))
258
+
259
+ // const showTagModal = (): void => {
260
+ // isShowTagModal.value = true
261
+ // }
262
+
263
+ // const routeParams = useRoute().params
264
+ // const routeId: string = routeParams?.id.toString()
265
+ // const routeType: string = routeParams?.type.toString()
266
+ // const getTags = async (): Promise<void> => {
267
+ // const payload: I_GetTagsPayload = {
268
+ // id: routeId,
269
+ // type: `${routeType}s`,
270
+ // }
271
+ //
272
+ // return await $store.dispatch('inventory/A_GET_TAGS', payload)
273
+ // }
274
+ // getTags()
275
+
276
+ const onAddNewTag = (newTag: UI_I_DataTableBody): void => {
277
+ tagsAssignBodyItems.value.push(newTag)
278
+ emits('create-new-tag', newTag)
279
+ }
280
+
281
+ const onAssignSelectedTags = async (
282
+ data: UI_I_DataTableBody[]
283
+ ): Promise<void> => {
284
+ if (data.length > 0) {
285
+ const sortedIds = tagsBodyItems.value
286
+ .map((row: UI_I_DataTableBody) => Number(row.row))
287
+ .sort()
288
+ let lastId = sortedIds[sortedIds.length - 1]
289
+ lastId = lastId === undefined ? -1 : lastId
290
+
291
+ const selectedNewTags = data.map((row, index) => {
292
+ return {
293
+ ...row,
294
+ row: lastId + index + 1,
295
+ isSelected: false,
296
+ data: [
297
+ row.data[0],
298
+ row.data[1],
299
+ row.data[2],
300
+ {
301
+ ...row.data[3],
302
+ key: 'icon',
303
+ data: {
304
+ icon: 'vertical-dotes',
305
+ row: lastId + index + 1,
306
+ },
307
+ },
308
+ ],
309
+ }
310
+ })
311
+
312
+ const addedTagsName = selectedNewTags.map((row) => row.data[0].text)
313
+
314
+ tagsAssignBodyItems.value = tagsAssignBodyItems.value.filter(
315
+ (row: UI_I_DataTableBody) => !addedTagsName.includes(row.data[0].text)
316
+ )
317
+
318
+ tagsBodyItems.value = [...tagsBodyItems.value, ...selectedNewTags]
319
+ emits('assign-new-tags', selectedNewTags)
320
+ }
321
+ onHideAssignModal()
322
+ // const tags = data.map((row) => {
323
+ // return {
324
+ // name: row[0].text,
325
+ // description: row[1].text,
326
+ // category: 'none',
327
+ // }
328
+ // })
329
+ // const payload: I_UpdateTagsPayload = {
330
+ // tags,
331
+ // id: routeId,
332
+ // type: `${routeType}s`,
333
+ // }
334
+ // hideTagModal()
335
+ // await $store.dispatch('inventory/A_UPDATE_TAGS', payload)
336
+ //
337
+ // globalRefresh()
338
+ }
339
+
340
+ const portletTitle = computed<string>(
341
+ () =>
342
+ localization.value.common.assignedTags +
343
+ (tagsBodyItems.value.length ? ` (${tagsBodyItems.value.length})` : '')
344
+ )
345
+ // const globalRefresh = (): void => {
346
+ // $store.dispatch('main/A_GLOBAL_REFRESH', null)
347
+ // }
348
+
349
+ const onCreateCategory = (data: UI_I_CreateCategoryData): void => {
350
+ emits('create-category', data)
351
+ }
352
+
353
+ const onTogglePortlet = (id: string): void => {
354
+ emits('toggle-portlet', id)
355
+ }
356
+ </script>
357
+
358
+ <style scoped lang="scss">
359
+ .icon-container {
360
+ width: 16px;
361
+ height: 16px;
362
+ display: block;
363
+ cursor: pointer;
364
+ color: var(--table-actions-icon);
365
+
366
+ &:hover,
367
+ &.selected {
368
+ color: var(--table-actions-icon-hover);
369
+ }
370
+ }
371
+
372
+ .action-remove {
373
+ display: flex;
374
+ align-items: center;
375
+ column-gap: 8px;
376
+
377
+ height: 32px;
378
+ border-radius: 4px;
379
+ padding: 8px;
380
+ color: var(--table-actions-remove);
381
+ cursor: pointer;
382
+
383
+ font-size: 13px;
384
+ font-weight: 500;
385
+ line-height: 15.73px;
386
+
387
+ &:hover {
388
+ background: var(--table-actions-bg-hover);
389
+ }
390
+ }
391
+
392
+ .action {
393
+ display: flex;
394
+ align-items: center;
395
+ column-gap: 8px;
396
+
397
+ height: 32px;
398
+ border-radius: 4px;
399
+ padding: 8px;
400
+ color: var(--table-actions-view);
401
+ margin-bottom: 8px;
402
+ cursor: pointer;
403
+
404
+ font-size: 13px;
405
+ font-weight: 500;
406
+ line-height: 15.73px;
407
+
408
+ &:hover {
409
+ background: var(--table-actions-bg-hover);
410
+ }
411
+ }
412
+
413
+ .footer {
414
+ padding: 0 16px 8px;
415
+
416
+ :deep(button.ui-btn) {
417
+ line-height: 16px;
418
+ margin-bottom: 11px;
419
+ margin-left: 6px;
420
+ width: fit-content;
421
+ }
422
+ }
423
+
424
+ .actions-dropdown-button-container {
425
+ display: flex;
426
+ justify-content: flex-end;
427
+ width: 100%;
428
+ }
429
+
430
+ .edit-actions-container {
431
+ padding: 8px;
432
+ }
433
+ </style>