bfg-common 1.4.884 → 1.4.901

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 (200) hide show
  1. package/assets/localization/local_en.json +6 -6
  2. package/assets/scss/common/normalize.scss +361 -361
  3. package/components/atoms/TheIcon3.vue +50 -50
  4. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  5. package/components/atoms/collapse/CollapseNav.vue +165 -165
  6. package/components/atoms/collapse/CollapseNavItem.vue +3 -1
  7. package/components/atoms/collapse/lib/models/interfaces.ts +1 -0
  8. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  9. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  10. package/components/atoms/perPage/PerPage.vue +58 -53
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/atoms/tabs/Tabs.vue +1 -0
  17. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  18. package/components/common/accordion/Recursion.vue +222 -221
  19. package/components/common/accordion/lib/models/interfaces.ts +1 -0
  20. package/components/common/browse/BrowseNew.vue +237 -237
  21. package/components/common/browse/BrowseOld.vue +217 -217
  22. package/components/common/browse/blocks/contents/Files.vue +37 -37
  23. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  24. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/chartOptionsModal/counters/timespan/form/Form.vue +92 -102
  27. package/components/common/chartOptionsModal/counters/timespan/form/FormNew.vue +18 -39
  28. package/components/common/context/Context.vue +111 -111
  29. package/components/common/context/lib/models/interfaces.ts +31 -30
  30. package/components/common/context/recursion/Recursion.vue +87 -87
  31. package/components/common/context/recursion/RecursionNew.vue +238 -237
  32. package/components/common/context/recursion/RecursionOld.vue +228 -227
  33. package/components/common/details/DetailsItem.vue +109 -109
  34. package/components/common/diagramMain/DiagramMain.vue +897 -893
  35. package/components/common/diagramMain/Header.vue +214 -211
  36. package/components/common/diagramMain/lib/models/interfaces.ts +1 -0
  37. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +1 -0
  38. package/components/common/graph/Graph.vue +104 -104
  39. package/components/common/graph/GraphNew.vue +2 -4
  40. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  41. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  42. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  43. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +335 -335
  44. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +310 -310
  45. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  46. package/components/common/monitor/advanced/Advanced.vue +0 -2
  47. package/components/common/monitor/advanced/AdvancedNew.vue +16 -28
  48. package/components/common/monitor/advanced/graphView/GraphView.vue +1 -0
  49. package/components/common/monitor/advanced/graphView/GraphViewNew.vue +4 -5
  50. package/components/common/monitor/advanced/table/tableNew/TableNew.vue +1 -8
  51. package/components/common/monitor/advanced/table/tableNew/lib/config/options.ts +2 -2
  52. package/components/common/monitor/advanced/tools/Tools.vue +121 -123
  53. package/components/common/monitor/advanced/tools/ToolsNew.vue +0 -9
  54. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +0 -34
  55. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalNew.vue +5 -17
  56. package/components/common/monitor/advanced/tools/chartOptionsModal/NotificationNew.vue +0 -2
  57. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/ActionsNew.vue +12 -38
  58. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/lib/utils/optionsActions.ts +1 -1
  59. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +66 -76
  60. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/CountersNew.vue +2 -43
  61. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  62. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableNew/TableNew.vue +0 -2
  63. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +0 -10
  64. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/TimespanNew.vue +14 -43
  65. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/ObjectNew.vue +0 -6
  66. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +1 -1
  67. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/metricsNew/MetricsNew.vue +101 -0
  68. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/metricsNew/lib/utils/constructAccordion.ts +32 -0
  69. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  70. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  71. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  72. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  73. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  74. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  75. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  76. package/components/common/pages/home/StatusContent.vue +49 -49
  77. package/components/common/pages/home/headline/Headline.vue +45 -45
  78. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  79. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  80. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  81. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  82. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  83. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  84. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  85. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  86. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  87. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  88. package/components/common/pages/packages/Packages.vue +208 -208
  89. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  90. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  91. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  92. package/components/common/portlets/tag/Portlet.vue +433 -433
  93. package/components/common/recursionTree/RecursionTree.vue +223 -223
  94. package/components/common/select/button/ButtonDropdown.vue +108 -108
  95. package/components/common/spiceConsole/Drawer.vue +370 -370
  96. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  97. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  98. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  99. package/components/common/split/vertical/Vertical.vue +160 -160
  100. package/components/common/tools/Actions.vue +179 -175
  101. package/components/common/tools/lib/models/interfaces.ts +2 -1
  102. package/components/common/vm/actions/add/Add.vue +622 -622
  103. package/components/common/vm/actions/clone/Clone.vue +639 -639
  104. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  105. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  106. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  107. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  108. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  109. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  153. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  154. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  166. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  167. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  168. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  174. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  175. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  176. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  177. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  178. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  179. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  180. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  181. package/components/common/wizards/network/add/Add.vue +1 -0
  182. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -99
  183. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  184. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  185. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  186. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  187. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  188. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  189. package/composables/productNameLocal.ts +30 -30
  190. package/composables/useAppVersion.ts +21 -21
  191. package/package.json +2 -2
  192. package/plugins/date.ts +233 -233
  193. package/plugins/directives.ts +24 -24
  194. package/plugins/recursion.ts +311 -311
  195. package/public/spice-console/lib/images/bitmap.js +203 -203
  196. package/public/spice-console/network/spicechannel.js +383 -383
  197. package/store/main/mutations.ts +7 -7
  198. package/store/main/state.ts +7 -7
  199. package/store/tasks/mappers/recentTasks.ts +64 -64
  200. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/MetricsNew.vue +0 -143
@@ -1,105 +1,105 @@
1
- <template>
2
- <nav class="sidenav vertical-groups-sidenav">
3
- <ul class="sidenav-content">
4
- <li
5
- v-for="(item, key) in props.items"
6
- :id="`${props.testId}-item-${key}`"
7
- :data-id="item.testId"
8
- :key="item.value"
9
- :class="[
10
- 'vertical-nav-link group-nav-link',
11
- { active: item.value === props.modelValue },
12
- { disabled: item.disabled },
13
- ]"
14
- :title="item.title || item.text"
15
- @click="selectItem(item)"
16
- >
17
- {{ item.text }}
18
- </li>
19
- </ul>
20
- </nav>
21
- </template>
22
- <script setup lang="ts">
23
- import type { UI_I_VerticalTabs } from '~/components/atoms/tabs/lib/models/interfaces'
24
-
25
- const props = withDefaults(
26
- defineProps<{
27
- modelValue: string | number
28
- items: UI_I_VerticalTabs[]
29
- hasErrorMessages?: number | boolean
30
- testId?: string
31
- }>(),
32
- { testId: 'ui-vertical-tabs' }
33
- )
34
-
35
- const emits = defineEmits<{
36
- (event: 'update:model-value', value: string): void
37
- (event: 'set-alert'): void
38
- }>()
39
-
40
- const selectItem = ({
41
- value,
42
- disabled,
43
- }: {
44
- value: string
45
- disabled: boolean
46
- }): void => {
47
- if (disabled) return
48
- if (
49
- props.hasErrorMessages === undefined ||
50
- props.hasErrorMessages === 0 ||
51
- props.hasErrorMessages === false
52
- ) {
53
- emits('update:model-value', value)
54
- return
55
- }
56
- emits('set-alert')
57
- }
58
- </script>
59
-
60
- <style>
61
- :root {
62
- --vertical-tabs-nav-link: --grey-100;
63
- --vertical-tabs-bg-color: #fafafa;
64
- }
65
- :root.dark-theme {
66
- --vertical-tabs-nav-link: #ffffff;
67
- --vertical-tabs-bg-color: transparent;
68
- }
69
- </style>
70
- <style lang="scss" scoped>
71
- .vertical-groups-sidenav {
72
- min-height: 94%;
73
- background-color: var(--vertical-tabs-bg-color);
74
-
75
- .vertical-nav-link {
76
- display: inline-block;
77
- width: 100%;
78
- margin-top: 5px;
79
- padding-left: 12px;
80
- color: var(--vertical-tabs-nav-link);
81
- border-bottom: 1px solid transparent;
82
- text-decoration: none;
83
- font-size: 14px;
84
- cursor: pointer;
85
- border-radius: 2.5px 0 0 2.5px;
86
-
87
- &.active {
88
- color: var(--vertical-nav-active-item-color);
89
- background: var(--vertical-nav-active-bg-color);
90
- border-bottom: 1px solid transparent;
91
- }
92
-
93
- &.disabled {
94
- cursor: not-allowed;
95
- opacity: 0.6;
96
- }
97
-
98
- &:hover:not(.active) {
99
- background: var(--vertical-nav-hover-bg-color);
100
- color: var(--blue-950);
101
- border-bottom: 1px solid #666;
102
- }
103
- }
104
- }
105
- </style>
1
+ <template>
2
+ <nav class="sidenav vertical-groups-sidenav">
3
+ <ul class="sidenav-content">
4
+ <li
5
+ v-for="(item, key) in props.items"
6
+ :id="`${props.testId}-item-${key}`"
7
+ :data-id="item.testId"
8
+ :key="item.value"
9
+ :class="[
10
+ 'vertical-nav-link group-nav-link',
11
+ { active: item.value === props.modelValue },
12
+ { disabled: item.disabled },
13
+ ]"
14
+ :title="item.title || item.text"
15
+ @click="selectItem(item)"
16
+ >
17
+ {{ item.text }}
18
+ </li>
19
+ </ul>
20
+ </nav>
21
+ </template>
22
+ <script setup lang="ts">
23
+ import type { UI_I_VerticalTabs } from '~/components/atoms/tabs/lib/models/interfaces'
24
+
25
+ const props = withDefaults(
26
+ defineProps<{
27
+ modelValue: string | number
28
+ items: UI_I_VerticalTabs[]
29
+ hasErrorMessages?: number | boolean
30
+ testId?: string
31
+ }>(),
32
+ { testId: 'ui-vertical-tabs' }
33
+ )
34
+
35
+ const emits = defineEmits<{
36
+ (event: 'update:model-value', value: string): void
37
+ (event: 'set-alert'): void
38
+ }>()
39
+
40
+ const selectItem = ({
41
+ value,
42
+ disabled,
43
+ }: {
44
+ value: string
45
+ disabled: boolean
46
+ }): void => {
47
+ if (disabled) return
48
+ if (
49
+ props.hasErrorMessages === undefined ||
50
+ props.hasErrorMessages === 0 ||
51
+ props.hasErrorMessages === false
52
+ ) {
53
+ emits('update:model-value', value)
54
+ return
55
+ }
56
+ emits('set-alert')
57
+ }
58
+ </script>
59
+
60
+ <style>
61
+ :root {
62
+ --vertical-tabs-nav-link: --grey-100;
63
+ --vertical-tabs-bg-color: #fafafa;
64
+ }
65
+ :root.dark-theme {
66
+ --vertical-tabs-nav-link: #ffffff;
67
+ --vertical-tabs-bg-color: transparent;
68
+ }
69
+ </style>
70
+ <style lang="scss" scoped>
71
+ .vertical-groups-sidenav {
72
+ min-height: 94%;
73
+ background-color: var(--vertical-tabs-bg-color);
74
+
75
+ .vertical-nav-link {
76
+ display: inline-block;
77
+ width: 100%;
78
+ margin-top: 5px;
79
+ padding-left: 12px;
80
+ color: var(--vertical-tabs-nav-link);
81
+ border-bottom: 1px solid transparent;
82
+ text-decoration: none;
83
+ font-size: 14px;
84
+ cursor: pointer;
85
+ border-radius: 2.5px 0 0 2.5px;
86
+
87
+ &.active {
88
+ color: var(--vertical-nav-active-item-color);
89
+ background: var(--vertical-nav-active-bg-color);
90
+ border-bottom: 1px solid transparent;
91
+ }
92
+
93
+ &.disabled {
94
+ cursor: not-allowed;
95
+ opacity: 0.6;
96
+ }
97
+
98
+ &:hover:not(.active) {
99
+ background: var(--vertical-nav-hover-bg-color);
100
+ color: var(--blue-950);
101
+ border-bottom: 1px solid #666;
102
+ }
103
+ }
104
+ }
105
+ </style>
@@ -1,221 +1,222 @@
1
- <template>
2
- <div class="accordion" :class="{ disabled: props.accordion.disabled }">
3
- <nuxt-link
4
- class="accordion-item"
5
- :to="accordionLocal.path"
6
- :data-id="accordionLocal.testId"
7
- active-class="active"
8
- @click.prevent="onSelect(accordionLocal)"
9
- >
10
- <div
11
- :class="['heading-wrap', { group: props.accordion.hasChild }]"
12
- :style="{ paddingLeft: `${props.level * 24 || 10}px` }"
13
- >
14
- <div class="flex-align-center heading">
15
- <div
16
- v-if="props.accordion.iconClassName"
17
- :class="['icon', props.accordion.iconClassName]"
18
- ></div>
19
- <div
20
- :class="['text text-ellipsis', headingClass]"
21
- :data-id="`${accordionLocal.testId}`"
22
- >
23
- {{ props.accordion.name }}
24
- </div>
25
- </div>
26
- <button
27
- v-if="props.accordion.hasChild"
28
- :id="`${props.testId}-trigger-button`"
29
- :data-id="`${accordionLocal.testId}-toggle-button`"
30
- class="btn-trigger max-width"
31
- @click="toggle"
32
- >
33
- <atoms-the-icon
34
- :class="[
35
- 'trigger-icon',
36
- {
37
- isOpen: accordionLocal.isOpen,
38
- },
39
- ]"
40
- name="angle"
41
- />
42
- </button>
43
- </div>
44
- </nuxt-link>
45
-
46
- <transition
47
- v-if="props.accordion.hasChild"
48
- name="accordion"
49
- @before-enter="end"
50
- @enter="start"
51
- @before-leave="start"
52
- @leave="end"
53
- >
54
- <div v-show="accordionLocal.isOpen" class="accordion__content">
55
- <common-accordion-recursion
56
- v-for="(item, key) in props.accordion.children"
57
- :key="item.id"
58
- :test-id="`${props.testId}-${key}`"
59
- :accordion="item"
60
- :level="props.level + 1"
61
- @change="onSelect"
62
- />
63
- </div>
64
- </transition>
65
- </div>
66
- </template>
67
-
68
- <script setup lang="ts">
69
- import type {
70
- UI_I_AccordionRecursion,
71
- UI_I_HeadingClass,
72
- } from '~/components/common/accordion/lib/models/interfaces'
73
-
74
- const props = withDefaults(
75
- defineProps<{
76
- accordion: UI_I_AccordionRecursion
77
- testId: string
78
- level?: number
79
- }>(),
80
- { level: 0 }
81
- )
82
- const emits = defineEmits<{
83
- (event: 'change', value: UI_I_AccordionRecursion): void
84
- }>()
85
-
86
- const accordionLocal = ref<UI_I_AccordionRecursion>(props.accordion)
87
-
88
- // TODO CHANGE
89
- watch(
90
- accordionLocal,
91
- () => {
92
- if (accordionLocal.value.isOpen !== false)
93
- accordionLocal.value.isOpen = true
94
- },
95
- { immediate: true }
96
- )
97
-
98
- const toggle = (): void => {
99
- if (!props.accordion.hasChild) return
100
-
101
- accordionLocal.value.isOpen = !accordionLocal.value.isOpen
102
- }
103
-
104
- const start = (element: any): void => {
105
- element.style.height = 'auto'
106
- }
107
- const end = (element: any): void => {
108
- element.style.height = 0
109
- }
110
-
111
- const headingClass = computed<UI_I_HeadingClass>(() => {
112
- return {
113
- 'text-normal': !props.accordion.hasChild,
114
- disabled: props.accordion.disabled && !props.accordion.hasChild,
115
- }
116
- })
117
-
118
- const onSelect = (item: UI_I_AccordionRecursion): void => {
119
- emits('change', item)
120
- }
121
- </script>
122
-
123
- <style lang="scss">
124
- @import '~/assets/scss/common/mixins';
125
-
126
- %hover-effect {
127
- margin-bottom: -1px;
128
- border-bottom: 1px solid var(--row-hover-border-color);
129
- background-color: var(--row-hover-bg-color);
130
- cursor: pointer;
131
- }
132
- %active-mode {
133
- background-color: var(--row-selected-bg-color);
134
- color: var(--row-selected-text-color);
135
- }
136
- .accordion {
137
- .accordion-item {
138
- display: block;
139
- text-decoration: none;
140
- color: var(--global-font-color);
141
-
142
- &.active {
143
- background-color: #29414e;
144
- color: #fff;
145
- border-bottom: 1px solid transparent;
146
- cursor: default;
147
- %hover-effect {
148
- margin-bottom: unset;
149
- border-bottom: unset;
150
- background-color: unset;
151
- cursor: unset;
152
- }
153
- }
154
-
155
- .heading-wrap {
156
- width: 100%;
157
- @include flex($align: center, $just: space-between);
158
-
159
- &:not(.group) {
160
- display: block;
161
- padding-right: 14px;
162
- }
163
-
164
- &.group .heading {
165
- width: calc(100% - 30px);
166
- }
167
- .heading {
168
- margin-right: 10px;
169
- //overflow: hidden;
170
- .icon {
171
- margin: 1px 4px 0 0;
172
- }
173
-
174
- .text {
175
- font-weight: 600;
176
-
177
- &.text-normal {
178
- font-weight: 400;
179
-
180
- &.disabled {
181
- opacity: 0.3;
182
- cursor: not-allowed;
183
- }
184
- }
185
- }
186
- }
187
- &:hover:not(:has(> .disabled)) {
188
- @extend %hover-effect;
189
- }
190
- &:has(> .disabled) {
191
- cursor: not-allowed;
192
- }
193
- }
194
- }
195
- &__content {
196
- transition: 0.1s ease-in-out;
197
- overflow: hidden;
198
- }
199
- }
200
-
201
- .btn-trigger {
202
- flex: auto;
203
- margin-right: 10px;
204
-
205
- &.max-width {
206
- width: max-content;
207
- }
208
-
209
- //padding-right: 10px;
210
- .trigger-icon {
211
- width: 16px;
212
- height: 16px;
213
- transform: rotate(90deg);
214
- margin-left: auto;
215
- fill: var(--triger-icon-color);
216
- &.isOpen {
217
- transform: rotate(180deg);
218
- }
219
- }
220
- }
221
- </style>
1
+ <template>
2
+ <div class="accordion" :class="{ disabled: props.accordion.disabled }">
3
+ <nuxt-link
4
+ v-development="props.accordion.development"
5
+ class="accordion-item"
6
+ :to="accordionLocal.path"
7
+ :data-id="accordionLocal.testId"
8
+ active-class="active"
9
+ @click.prevent="onSelect(accordionLocal)"
10
+ >
11
+ <div
12
+ :class="['heading-wrap', { group: props.accordion.hasChild }]"
13
+ :style="{ paddingLeft: `${props.level * 24 || 10}px` }"
14
+ >
15
+ <div class="flex-align-center heading">
16
+ <div
17
+ v-if="props.accordion.iconClassName"
18
+ :class="['icon', props.accordion.iconClassName]"
19
+ ></div>
20
+ <div
21
+ :class="['text text-ellipsis', headingClass]"
22
+ :data-id="`${accordionLocal.testId}`"
23
+ >
24
+ {{ props.accordion.name }}
25
+ </div>
26
+ </div>
27
+ <button
28
+ v-if="props.accordion.hasChild"
29
+ :id="`${props.testId}-trigger-button`"
30
+ :data-id="`${accordionLocal.testId}-toggle-button`"
31
+ class="btn-trigger max-width"
32
+ @click="toggle"
33
+ >
34
+ <atoms-the-icon
35
+ :class="[
36
+ 'trigger-icon',
37
+ {
38
+ isOpen: accordionLocal.isOpen,
39
+ },
40
+ ]"
41
+ name="angle"
42
+ />
43
+ </button>
44
+ </div>
45
+ </nuxt-link>
46
+
47
+ <transition
48
+ v-if="props.accordion.hasChild"
49
+ name="accordion"
50
+ @before-enter="end"
51
+ @enter="start"
52
+ @before-leave="start"
53
+ @leave="end"
54
+ >
55
+ <div v-show="accordionLocal.isOpen" class="accordion__content">
56
+ <common-accordion-recursion
57
+ v-for="(item, key) in props.accordion.children"
58
+ :key="item.id"
59
+ :test-id="`${props.testId}-${key}`"
60
+ :accordion="item"
61
+ :level="props.level + 1"
62
+ @change="onSelect"
63
+ />
64
+ </div>
65
+ </transition>
66
+ </div>
67
+ </template>
68
+
69
+ <script setup lang="ts">
70
+ import type {
71
+ UI_I_AccordionRecursion,
72
+ UI_I_HeadingClass,
73
+ } from '~/components/common/accordion/lib/models/interfaces'
74
+
75
+ const props = withDefaults(
76
+ defineProps<{
77
+ accordion: UI_I_AccordionRecursion
78
+ testId: string
79
+ level?: number
80
+ }>(),
81
+ { level: 0 }
82
+ )
83
+ const emits = defineEmits<{
84
+ (event: 'change', value: UI_I_AccordionRecursion): void
85
+ }>()
86
+
87
+ const accordionLocal = ref<UI_I_AccordionRecursion>(props.accordion)
88
+
89
+ // TODO CHANGE
90
+ watch(
91
+ accordionLocal,
92
+ () => {
93
+ if (accordionLocal.value.isOpen !== false)
94
+ accordionLocal.value.isOpen = true
95
+ },
96
+ { immediate: true }
97
+ )
98
+
99
+ const toggle = (): void => {
100
+ if (!props.accordion.hasChild) return
101
+
102
+ accordionLocal.value.isOpen = !accordionLocal.value.isOpen
103
+ }
104
+
105
+ const start = (element: any): void => {
106
+ element.style.height = 'auto'
107
+ }
108
+ const end = (element: any): void => {
109
+ element.style.height = 0
110
+ }
111
+
112
+ const headingClass = computed<UI_I_HeadingClass>(() => {
113
+ return {
114
+ 'text-normal': !props.accordion.hasChild,
115
+ disabled: props.accordion.disabled && !props.accordion.hasChild,
116
+ }
117
+ })
118
+
119
+ const onSelect = (item: UI_I_AccordionRecursion): void => {
120
+ emits('change', item)
121
+ }
122
+ </script>
123
+
124
+ <style lang="scss">
125
+ @import '~/assets/scss/common/mixins';
126
+
127
+ %hover-effect {
128
+ margin-bottom: -1px;
129
+ border-bottom: 1px solid var(--row-hover-border-color);
130
+ background-color: var(--row-hover-bg-color);
131
+ cursor: pointer;
132
+ }
133
+ %active-mode {
134
+ background-color: var(--row-selected-bg-color);
135
+ color: var(--row-selected-text-color);
136
+ }
137
+ .accordion {
138
+ .accordion-item {
139
+ display: block;
140
+ text-decoration: none;
141
+ color: var(--global-font-color);
142
+
143
+ &.active {
144
+ background-color: #29414e;
145
+ color: #fff;
146
+ border-bottom: 1px solid transparent;
147
+ cursor: default;
148
+ %hover-effect {
149
+ margin-bottom: unset;
150
+ border-bottom: unset;
151
+ background-color: unset;
152
+ cursor: unset;
153
+ }
154
+ }
155
+
156
+ .heading-wrap {
157
+ width: 100%;
158
+ @include flex($align: center, $just: space-between);
159
+
160
+ &:not(.group) {
161
+ display: block;
162
+ padding-right: 14px;
163
+ }
164
+
165
+ &.group .heading {
166
+ width: calc(100% - 30px);
167
+ }
168
+ .heading {
169
+ margin-right: 10px;
170
+ //overflow: hidden;
171
+ .icon {
172
+ margin: 1px 4px 0 0;
173
+ }
174
+
175
+ .text {
176
+ font-weight: 600;
177
+
178
+ &.text-normal {
179
+ font-weight: 400;
180
+
181
+ &.disabled {
182
+ opacity: 0.3;
183
+ cursor: not-allowed;
184
+ }
185
+ }
186
+ }
187
+ }
188
+ &:hover:not(:has(> .disabled)) {
189
+ @extend %hover-effect;
190
+ }
191
+ &:has(> .disabled) {
192
+ cursor: not-allowed;
193
+ }
194
+ }
195
+ }
196
+ &__content {
197
+ transition: 0.1s ease-in-out;
198
+ overflow: hidden;
199
+ }
200
+ }
201
+
202
+ .btn-trigger {
203
+ flex: auto;
204
+ margin-right: 10px;
205
+
206
+ &.max-width {
207
+ width: max-content;
208
+ }
209
+
210
+ //padding-right: 10px;
211
+ .trigger-icon {
212
+ width: 16px;
213
+ height: 16px;
214
+ transform: rotate(90deg);
215
+ margin-left: auto;
216
+ fill: var(--triger-icon-color);
217
+ &.isOpen {
218
+ transform: rotate(180deg);
219
+ }
220
+ }
221
+ }
222
+ </style>
@@ -8,6 +8,7 @@ export interface UI_I_AccordionRecursion {
8
8
  children?: UI_I_AccordionRecursion[]
9
9
  isOpen?: boolean
10
10
  testId?: string
11
+ development?: boolean
11
12
  }
12
13
 
13
14
  export interface UI_I_HeadingClass {