bfg-common 1.2.45 → 1.2.47

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 (203) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/datepicker/Datepicker.vue +612 -612
  4. package/components/atoms/list/SelectList.vue +62 -62
  5. package/components/atoms/nav/NavBar.vue +116 -116
  6. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  7. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  8. package/components/atoms/perPage/PerPage.vue +52 -52
  9. package/components/atoms/popup/SimplePopup.vue +90 -90
  10. package/components/atoms/step/VerticalStep.vue +104 -104
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +206 -206
  13. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  14. package/components/atoms/tabs/Tabs.vue +189 -189
  15. package/components/atoms/tooltip/Signpost.vue +224 -224
  16. package/components/common/BadBrowser.vue +114 -114
  17. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  18. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  19. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  20. package/components/common/browse/Browse.vue +182 -182
  21. package/components/common/browse/blocks/Title.vue +66 -66
  22. package/components/common/diagramMain/Diagram.vue +186 -186
  23. package/components/common/diagramMain/DiagramMain.vue +986 -986
  24. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  25. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  26. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  27. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  28. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  29. package/components/common/diagramMain/network/Contents.vue +238 -238
  30. package/components/common/feedback/Buttons.vue +232 -232
  31. package/components/common/feedback/Message.vue +468 -468
  32. package/components/common/feedback/VisitPortal.vue +54 -54
  33. package/components/common/help/navbar/left/Left.vue +159 -159
  34. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  35. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  36. package/components/common/modals/Rename.vue +165 -165
  37. package/components/common/perPage/PerPage.vue +51 -51
  38. package/components/common/recursionTree/RecursionTree.vue +201 -201
  39. package/components/common/vm/actions/add/Add.vue +14 -14
  40. package/components/common/vm/actions/add/utils.ts +2 -2
  41. package/components/common/vm/actions/clone/Clone.vue +544 -545
  42. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  43. package/components/common/vm/actions/clone/utils.ts +43 -43
  44. package/components/common/vm/actions/{add → common}/config/capabilities.ts +338 -338
  45. package/components/common/vm/actions/{add → common}/customizeHardware/CustomizeHardware.vue +7 -7
  46. package/components/common/vm/actions/{add → common}/customizeHardware/models/interfaces.ts +2 -2
  47. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/VirtualHardware.vue +657 -657
  48. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/browseView/BrowseView.vue +1 -1
  49. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/bus/Bus.vue +1 -1
  50. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +8 -8
  51. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  52. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  53. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/shares/Shares.vue +1 -1
  54. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  55. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  56. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  57. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  58. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/Location.vue +1 -1
  59. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  60. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +1 -1
  61. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +1 -1
  62. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +1 -1
  63. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +1 -1
  64. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +1 -1
  65. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  66. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +1 -1
  67. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +1 -1
  68. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +8 -8
  69. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  70. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +1 -1
  71. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/other/Other.vue +1 -1
  72. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  73. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  74. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/model/Model.vue +1 -1
  75. package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +1 -1
  76. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/Vmoptions.vue +6 -6
  77. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/BootOptions.vue +7 -7
  78. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +1 -1
  79. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +1 -1
  80. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  81. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  82. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  83. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  84. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +1 -1
  85. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +1 -1
  86. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  87. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +1 -1
  88. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +2 -2
  89. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +1 -1
  90. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +1 -1
  91. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +1 -1
  92. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +1 -1
  93. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +1 -1
  94. package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/tools/Tools.vue +1 -1
  95. package/components/common/vm/actions/{add → common}/models/interfaces.ts +2 -2
  96. package/components/common/vm/actions/{add → common}/models/types.ts +3 -3
  97. package/components/common/vm/actions/{add → common}/select/computeResource/ComputeResource.vue +1 -1
  98. package/components/common/vm/actions/{add → common}/select/createType/CreateType.vue +1 -1
  99. package/components/common/vm/actions/{add → common}/select/models/types.ts +2 -0
  100. package/components/common/vm/actions/{add → common}/select/os/os.vue +1 -1
  101. package/components/common/vm/actions/{add → common}/select/storage/Storage.vue +1 -1
  102. package/components/common/vm/actions/{add → common}/select/storage/config/config.ts +154 -154
  103. package/components/common/vm/actions/editSettings/EditSettings.vue +4 -4
  104. package/components/common/vm/actions/editSettings/models/types.ts +2 -2
  105. package/components/common/vm/actions/editSettings/utils.ts +2 -5
  106. package/components/common/vm/actions/models/interfaces.ts +1 -1
  107. package/components/common/vm/actions/models/types.ts +1 -1
  108. package/components/common/vm/actions/utils.ts +5 -5
  109. package/components/common/wizards/datastore/add/nfs/Nfs.vue +94 -94
  110. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +377 -377
  111. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  112. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  113. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  114. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  115. package/composables/useLocal.ts +38 -38
  116. package/minify.js +146 -146
  117. package/models/store/interfaces.ts +37 -37
  118. package/models/store/storage/interfaces.ts +32 -32
  119. package/models/store/types.ts +32 -32
  120. package/models/store/vm/interfaces.ts +2 -2
  121. package/modules/fixContentBuild/utils/methods.ts +114 -114
  122. package/package.json +1 -1
  123. package/public/spice-console/application/codec.js +257 -257
  124. package/public/spice-console/lib/rasterEngine.js +907 -907
  125. package/public/spice-console/network/spicechannel.js +369 -369
  126. package/utils/contentBuild.ts +34 -34
  127. package/components/common/vm/actions/clone/readyToComplete/ReadyToComplete.vue +0 -15
  128. /package/components/common/vm/actions/{add → common}/customizeHardware/config/navItems.ts +0 -0
  129. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/browseView/models/interfaces.ts +0 -0
  130. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/bus/config/options.ts +0 -0
  131. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +0 -0
  132. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +0 -0
  133. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +0 -0
  134. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +0 -0
  135. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/config/binaryOptions.ts +0 -0
  136. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/config/dropdownItems.ts +0 -0
  137. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +0 -0
  138. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/CpuModel.vue +0 -0
  139. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Hv.vue +0 -0
  140. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Iommu.vue +0 -0
  141. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/MaxCpu.vue +0 -0
  142. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Pc.vue +0 -0
  143. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/Sa.vue +0 -0
  144. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +0 -0
  145. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/shares/config/options.ts +0 -0
  146. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +0 -0
  147. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +0 -0
  148. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/models/interfaces.ts +0 -0
  149. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/models/types.ts +0 -0
  150. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +0 -0
  151. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +0 -0
  152. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +0 -0
  153. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +0 -0
  154. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +0 -0
  155. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +0 -0
  156. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +0 -0
  157. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/Location.vue +0 -0
  158. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +0 -0
  159. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +0 -0
  160. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/config/options.ts +0 -0
  161. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -0
  162. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +0 -0
  163. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +0 -0
  164. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +0 -0
  165. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +0 -0
  166. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/newUsbController/config/options.ts +0 -0
  167. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/other/InputDevices.vue +0 -0
  168. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/reservation/config/options.ts +0 -0
  169. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/Graphics.vue +0 -0
  170. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +0 -0
  171. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/config/options.ts +0 -0
  172. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/model/config/options.ts +0 -0
  173. /package/components/common/vm/actions/{add → common}/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +0 -0
  174. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/Menu.vue +0 -0
  175. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/Secure.vue +0 -0
  176. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +0 -0
  177. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +0 -0
  178. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +0 -0
  179. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/models/interfaces.ts +0 -0
  180. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +0 -0
  181. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +0 -0
  182. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +0 -0
  183. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +0 -0
  184. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +0 -0
  185. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +0 -0
  186. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +0 -0
  187. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +0 -0
  188. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +0 -0
  189. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +0 -0
  190. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +0 -0
  191. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +0 -0
  192. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +0 -0
  193. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +0 -0
  194. /package/components/common/vm/actions/{add → common}/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +0 -0
  195. /package/components/common/vm/actions/{add → common}/models/enums.ts +0 -0
  196. /package/components/common/vm/actions/{add → common}/readyToComplete/ReadyToComplete.vue +0 -0
  197. /package/components/common/vm/actions/{add → common}/select/compatibility/Compatibility.vue +0 -0
  198. /package/components/common/vm/actions/{add → common}/select/computeResource/ComputeResource.spec.ts +0 -0
  199. /package/components/common/vm/actions/{add → common}/select/computeResource/TreeView.vue +0 -0
  200. /package/components/common/vm/actions/{add → common}/select/createType/config/items.ts +0 -0
  201. /package/components/common/vm/actions/{add → common}/select/models/interfaces.ts +0 -0
  202. /package/components/common/vm/actions/{add → common}/select/name/Name.vue +0 -0
  203. /package/components/common/vm/actions/{add → common}/select/storage/models/types.ts +0 -0
@@ -1,189 +1,189 @@
1
- <template>
2
- <nav :id="id" class="btn-group">
3
- <ul class="nav">
4
- <li
5
- v-for="(item, key) in props.items"
6
- :key="item.path"
7
- class="nav-item"
8
- :class="detectButtonRemainderCount === key && 'last-button'"
9
- >
10
- <atoms-collapse-nav-item
11
- :test-id="`${props.testId}-item`"
12
- :is-link="props.isLink"
13
- :item="item"
14
- :value="props.modelValue"
15
- :btn-class="classes"
16
- @change="change"
17
- />
18
- </li>
19
- <atoms-collapse-nav
20
- :test-id="`${props.testId}-item`"
21
- v-show="collapsedItems.length"
22
- :items="collapsedItems"
23
- :is-link="props.isLink"
24
- />
25
- </ul>
26
- </nav>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import { UI_I_CollapseNavItem } from '~/components/atoms/collapse/models/interfaces'
31
- import { UI_T_ButtonSize } from '~/components/atoms/tabs/models/types'
32
-
33
- const props = withDefaults(
34
- defineProps<{
35
- items: UI_I_CollapseNavItem[]
36
- modelValue?: number | string
37
- isLink?: boolean
38
- size?: UI_T_ButtonSize
39
- testId?: string
40
- }>(),
41
- {
42
- size: 'large',
43
- modelValue: '',
44
- isLink: false,
45
- testId: 'ui-tabs',
46
- }
47
- )
48
-
49
- const emits = defineEmits<{
50
- (event: 'update:model-value', value: number): void
51
- (event: 'change', value: number): void
52
- }>()
53
-
54
- const change = (value: number): void => {
55
- emits('update:model-value', value)
56
- emits('change', value)
57
- }
58
-
59
- const detectButtonRemainderCount = computed<number>(() => {
60
- return props.items.length - collapsedItems.value.length - 1
61
- })
62
-
63
- const visibleCount = ref(props.items.length)
64
- const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
65
- return props.items
66
- .filter((_, index) => {
67
- return index >= visibleCount.value
68
- })
69
- .map((item) => {
70
- return {
71
- text: item.text,
72
- path: item.path,
73
- disabled: item.disabled,
74
- }
75
- })
76
- })
77
-
78
- const classes = computed<string>(() => `btn btn--${props.size}`)
79
-
80
- const outputSize = (): void => {
81
- const el = document.getElementById(id.value)
82
- if (!el) return
83
-
84
- const elWidth = el.clientWidth
85
- const elItems = el.children[0].children
86
- const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
87
- const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
88
- const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
89
-
90
- let childrenWidth = 0
91
- let count = 0
92
- for (let i = 0; i < elItems.length; i++) {
93
- childrenWidth += elItems[i].clientWidth + childrenMarginY
94
- const isWrap = elWidth < childrenWidth
95
-
96
- if (isWrap) break
97
- count++
98
- }
99
-
100
- visibleCount.value = count
101
- }
102
-
103
- const id = ref(`tabs-${useUniqueId()}`)
104
- const setResizeObserve = (): void => {
105
- const el = document.getElementById(id.value)
106
-
107
- if (!el) {
108
- setTimeout(setResizeObserve, 0)
109
- return
110
- }
111
-
112
- new ResizeObserver(outputSize).observe(el)
113
- }
114
- onMounted(() => {
115
- setResizeObserve()
116
- })
117
- </script>
118
-
119
- <style lang="scss" scoped>
120
- %active-mode {
121
- background-color: var(--btn-primary-border-color);
122
- border-color: var(--btn-primary-border-color);
123
- color: var(--btn-primary-color);
124
- }
125
- .btn-group {
126
- position: relative;
127
- }
128
- .nav {
129
- margin-top: 10px;
130
- box-shadow: none;
131
- position: relative;
132
- //height: 36px;
133
- overflow: hidden;
134
- display: flex;
135
- flex-wrap: wrap;
136
-
137
- &-item {
138
- margin-right: 0;
139
-
140
- :deep(.btn) {
141
- border-color: var(--btn-primary-border-color);
142
- color: var(--btn-primary-border-color);
143
- text-transform: capitalize;
144
- border-radius: 0;
145
- &.active {
146
- @extend %active-mode;
147
- &:active {
148
- box-shadow: none;
149
- }
150
- &:hover {
151
- background-color: var(--btn-outline-hover-color);
152
- }
153
- }
154
- &.disabled {
155
- box-shadow: none;
156
- & > span {
157
- pointer-events: none;
158
- }
159
- }
160
- &:hover:not(.disabled, .active) {
161
- background-color: var(--btn-outline-hover-bg-color);
162
- color: var(--btn-outline-hover-color);
163
- }
164
- }
165
- :deep(a:not(.router-link-active)) {
166
- .btn {
167
- &:hover:not(.disabled, .active) {
168
- background-color: var(--btn-outline-hover-bg-color);
169
- color: var(--btn-outline-hover-color);
170
- }
171
- }
172
- }
173
-
174
- :deep(.router-link-active) {
175
- .btn {
176
- @extend %active-mode;
177
- }
178
- }
179
- &:first-child :deep(button) {
180
- border-top-left-radius: 0.15rem;
181
- border-bottom-left-radius: 0.15rem;
182
- }
183
- &.last-button :deep(button) {
184
- border-top-right-radius: 0.15rem;
185
- border-bottom-right-radius: 0.15rem;
186
- }
187
- }
188
- }
189
- </style>
1
+ <template>
2
+ <nav :id="id" class="btn-group">
3
+ <ul class="nav">
4
+ <li
5
+ v-for="(item, key) in props.items"
6
+ :key="item.path"
7
+ class="nav-item"
8
+ :class="detectButtonRemainderCount === key && 'last-button'"
9
+ >
10
+ <atoms-collapse-nav-item
11
+ :test-id="`${props.testId}-item`"
12
+ :is-link="props.isLink"
13
+ :item="item"
14
+ :value="props.modelValue"
15
+ :btn-class="classes"
16
+ @change="change"
17
+ />
18
+ </li>
19
+ <atoms-collapse-nav
20
+ :test-id="`${props.testId}-item`"
21
+ v-show="collapsedItems.length"
22
+ :items="collapsedItems"
23
+ :is-link="props.isLink"
24
+ />
25
+ </ul>
26
+ </nav>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import { UI_I_CollapseNavItem } from '~/components/atoms/collapse/models/interfaces'
31
+ import { UI_T_ButtonSize } from '~/components/atoms/tabs/models/types'
32
+
33
+ const props = withDefaults(
34
+ defineProps<{
35
+ items: UI_I_CollapseNavItem[]
36
+ modelValue?: number | string
37
+ isLink?: boolean
38
+ size?: UI_T_ButtonSize
39
+ testId?: string
40
+ }>(),
41
+ {
42
+ size: 'large',
43
+ modelValue: '',
44
+ isLink: false,
45
+ testId: 'ui-tabs',
46
+ }
47
+ )
48
+
49
+ const emits = defineEmits<{
50
+ (event: 'update:model-value', value: number): void
51
+ (event: 'change', value: number): void
52
+ }>()
53
+
54
+ const change = (value: number): void => {
55
+ emits('update:model-value', value)
56
+ emits('change', value)
57
+ }
58
+
59
+ const detectButtonRemainderCount = computed<number>(() => {
60
+ return props.items.length - collapsedItems.value.length - 1
61
+ })
62
+
63
+ const visibleCount = ref(props.items.length)
64
+ const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
65
+ return props.items
66
+ .filter((_, index) => {
67
+ return index >= visibleCount.value
68
+ })
69
+ .map((item) => {
70
+ return {
71
+ text: item.text,
72
+ path: item.path,
73
+ disabled: item.disabled,
74
+ }
75
+ })
76
+ })
77
+
78
+ const classes = computed<string>(() => `btn btn--${props.size}`)
79
+
80
+ const outputSize = (): void => {
81
+ const el = document.getElementById(id.value)
82
+ if (!el) return
83
+
84
+ const elWidth = el.clientWidth
85
+ const elItems = el.children[0].children
86
+ const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
87
+ const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
88
+ const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
89
+
90
+ let childrenWidth = 0
91
+ let count = 0
92
+ for (let i = 0; i < elItems.length; i++) {
93
+ childrenWidth += elItems[i].clientWidth + childrenMarginY
94
+ const isWrap = elWidth < childrenWidth
95
+
96
+ if (isWrap) break
97
+ count++
98
+ }
99
+
100
+ visibleCount.value = count
101
+ }
102
+
103
+ const id = ref(`tabs-${useUniqueId()}`)
104
+ const setResizeObserve = (): void => {
105
+ const el = document.getElementById(id.value)
106
+
107
+ if (!el) {
108
+ setTimeout(setResizeObserve, 0)
109
+ return
110
+ }
111
+
112
+ new ResizeObserver(outputSize).observe(el)
113
+ }
114
+ onMounted(() => {
115
+ setResizeObserve()
116
+ })
117
+ </script>
118
+
119
+ <style lang="scss" scoped>
120
+ %active-mode {
121
+ background-color: var(--btn-primary-border-color);
122
+ border-color: var(--btn-primary-border-color);
123
+ color: var(--btn-primary-color);
124
+ }
125
+ .btn-group {
126
+ position: relative;
127
+ }
128
+ .nav {
129
+ margin-top: 10px;
130
+ box-shadow: none;
131
+ position: relative;
132
+ //height: 36px;
133
+ overflow: hidden;
134
+ display: flex;
135
+ flex-wrap: wrap;
136
+
137
+ &-item {
138
+ margin-right: 0;
139
+
140
+ :deep(.btn) {
141
+ border-color: var(--btn-primary-border-color);
142
+ color: var(--btn-primary-border-color);
143
+ text-transform: capitalize;
144
+ border-radius: 0;
145
+ &.active {
146
+ @extend %active-mode;
147
+ &:active {
148
+ box-shadow: none;
149
+ }
150
+ &:hover {
151
+ background-color: var(--btn-outline-hover-color);
152
+ }
153
+ }
154
+ &.disabled {
155
+ box-shadow: none;
156
+ & > span {
157
+ pointer-events: none;
158
+ }
159
+ }
160
+ &:hover:not(.disabled, .active) {
161
+ background-color: var(--btn-outline-hover-bg-color);
162
+ color: var(--btn-outline-hover-color);
163
+ }
164
+ }
165
+ :deep(a:not(.router-link-active)) {
166
+ .btn {
167
+ &:hover:not(.disabled, .active) {
168
+ background-color: var(--btn-outline-hover-bg-color);
169
+ color: var(--btn-outline-hover-color);
170
+ }
171
+ }
172
+ }
173
+
174
+ :deep(.router-link-active) {
175
+ .btn {
176
+ @extend %active-mode;
177
+ }
178
+ }
179
+ &:first-child :deep(button) {
180
+ border-top-left-radius: 0.15rem;
181
+ border-bottom-left-radius: 0.15rem;
182
+ }
183
+ &.last-button :deep(button) {
184
+ border-top-right-radius: 0.15rem;
185
+ border-bottom-right-radius: 0.15rem;
186
+ }
187
+ }
188
+ }
189
+ </style>