bfg-common 1.5.375 → 1.5.377

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 (170) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +15 -1
  7. package/assets/localization/local_en.json +15 -1
  8. package/assets/localization/local_hy.json +15 -1
  9. package/assets/localization/local_kk.json +15 -1
  10. package/assets/localization/local_ru.json +15 -1
  11. package/assets/localization/local_zh.json +15 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/collapse/CollapseNavItem.vue +226 -226
  15. package/components/atoms/nav/NavBar.vue +147 -147
  16. package/components/atoms/perPage/PerPage.vue +58 -58
  17. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  18. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  19. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  20. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  21. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  22. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  24. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  25. package/components/common/browse/BrowseNew.vue +8 -2
  26. package/components/common/browse/blocks/Container.vue +234 -231
  27. package/components/common/browse/blocks/TitleNew.vue +2 -2
  28. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  29. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  30. package/components/common/browse/lib/models/interfaces.ts +5 -5
  31. package/components/common/context/lib/models/interfaces.ts +33 -33
  32. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  33. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  34. package/components/common/diagramMain/lib/models/types.ts +21 -21
  35. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  36. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  37. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  38. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  39. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  40. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  41. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  42. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  43. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  44. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  45. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  46. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  54. package/components/common/diagramMain/network/Network.vue +141 -141
  55. package/components/common/diagramMain/port/Ports.vue +47 -47
  56. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  58. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  59. package/components/common/pages/home/headline/Headline.vue +45 -45
  60. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  61. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  62. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  63. package/components/common/pages/home/widgets/WidgetsNew.vue +88 -88
  64. package/components/common/pages/home/widgets/WidgetsOld.vue +36 -36
  65. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  66. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  67. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  68. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  69. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  70. package/components/common/pages/packages/Packages.vue +208 -208
  71. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  72. package/components/common/readyToComplete/New.vue +129 -129
  73. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  74. package/components/common/recursionTree/RecursionTree.vue +223 -223
  75. package/components/common/select/button/ButtonDropdown.vue +112 -112
  76. package/components/common/spiceConsole/Drawer.vue +377 -377
  77. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  78. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  79. package/components/common/tools/Actions.vue +207 -207
  80. package/components/common/vm/actions/add/Add.vue +831 -827
  81. package/components/common/vm/actions/add/Old.vue +388 -388
  82. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  83. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  84. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  85. package/components/common/vm/actions/clone/Clone.vue +823 -823
  86. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  87. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  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/lib/config/options.ts +28 -28
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +155 -155
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +6 -0
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +155 -155
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +130 -130
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +113 -113
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +95 -95
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +155 -155
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  134. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  135. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  136. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  137. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  138. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  139. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  140. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  141. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  142. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  143. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  144. package/components/common/vm/actions/common/select/storage/Storage.vue +155 -155
  145. package/components/common/vm/actions/common/select/storage/new/New.vue +300 -300
  146. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  147. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  148. package/components/common/vm/actions/editSettings/EditSettings.vue +242 -242
  149. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  150. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  151. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +104 -104
  152. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +467 -467
  153. package/components/common/wizards/vm/migrate/Migrate.vue +349 -349
  154. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  155. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  156. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  157. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  158. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  159. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  160. package/composables/productNameLocal.ts +30 -30
  161. package/composables/useAppVersion.ts +21 -21
  162. package/package.json +1 -1
  163. package/plugins/date.ts +233 -233
  164. package/plugins/panelStates.ts +70 -70
  165. package/plugins/text.ts +59 -59
  166. package/public/spice-console/lib/images/bitmap.js +203 -203
  167. package/public/spice-console/network/spicechannel.js +387 -387
  168. package/store/main/mutations.ts +7 -7
  169. package/store/main/state.ts +7 -7
  170. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -16,6 +16,7 @@
16
16
  <div class="container-columns-block">
17
17
  <common-browse-blocks-container
18
18
  type="horizontal"
19
+ class="columns-block"
19
20
  :blocks-width="props.blocksWidth"
20
21
  @change-widths="onChangeWidths"
21
22
  >
@@ -249,11 +250,16 @@ const selectedFileTypeLocal = computed<any>({
249
250
 
250
251
  .container-columns-block {
251
252
  overflow-y: hidden;
253
+ overflow-x: auto;
252
254
  height: 100%;
253
255
 
256
+ .columns-block {
257
+ width: 816px;
258
+ }
259
+
254
260
  .opacity-block {
255
- height: 16px;
256
- top: -16px;
261
+ height: 12px;
262
+ top: -12px;
257
263
  position: relative;
258
264
  background: linear-gradient(rgba(250, 250, 250, 0), var(--modal-bg));
259
265
  }
@@ -1,231 +1,234 @@
1
- <template>
2
- <div
3
- ref="containerBlock"
4
- :class="[
5
- `title-block__${props.type}-container`,
6
- {
7
- 'title-block__new-view': isNewView,
8
- },
9
- ]"
10
- >
11
- <slot name="firstBlock"></slot>
12
- <div
13
- ref="moveSeperator"
14
- :class="[
15
- 'move-separator',
16
- {
17
- 'move-separator-new-view': isNewView,
18
- 'move-separator-new-view_selected':
19
- sectionSelected && sectionSelectedName === 'first',
20
- },
21
- ]"
22
- :data-id="`${props.testId}-first`"
23
- :style="seperatorStyles"
24
- @mousedown="onMouseDown($event, 'first')"
25
- >
26
- <div :style="moveSeperatorBeforeStyles"></div>
27
- </div>
28
- <slot name="secondBlock"></slot>
29
- <div
30
- ref="secondMoveSeperator"
31
- :class="[
32
- 'move-separator',
33
- {
34
- 'move-separator-new-view': isNewView,
35
- 'move-separator-new-view_selected':
36
- sectionSelected && sectionSelectedName === 'second',
37
- },
38
- ]"
39
- :data-id="`${props.testId}-second`"
40
- :style="secondSeperatorStyles"
41
- @mousedown="onMouseDown($event, 'second')"
42
- >
43
- <div :style="secondMoveSeperatorBeforeStyles"></div>
44
- </div>
45
- <slot name="thirdBlock"></slot>
46
- </div>
47
- </template>
48
-
49
- <script setup lang="ts">
50
- import { useElementSize } from '@vueuse/core'
51
- import type { UI_T_BlocksWidth } from '~/components/common/browse/blocks/lib/models/types'
52
-
53
- const props = withDefaults(
54
- defineProps<{
55
- type: 'horizontal' | 'vertical'
56
- blocksWidth: UI_T_BlocksWidth
57
- testId?: string
58
- }>(),
59
- {
60
- testId: '',
61
- }
62
- )
63
-
64
- const { $store }: any = useNuxtApp()
65
-
66
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
67
-
68
- const sectionSelected = ref<boolean>(false)
69
- const sectionSelectedName = ref<string>('')
70
-
71
- const positionOnDown = ref<number>(0)
72
-
73
- const containerBlock = ref<HTMLElement | null>(null)
74
- const { height: heightContainerBlock } = useElementSize(containerBlock)
75
-
76
- const moveSeperator = ref<HTMLElement | null>(null)
77
- const { height: heightMoveSeperator } = useElementSize(moveSeperator)
78
- const moveSeperatorBeforeStyles = ref<any>({})
79
- watch(
80
- heightMoveSeperator,
81
- (newValue) => {
82
- if (!newValue) return
83
-
84
- moveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
85
- },
86
- { immediate: true, deep: true }
87
- )
88
-
89
- const secondMoveSeperator = ref<HTMLElement | null>(null)
90
- const { height: heightSecondMoveSeperator } =
91
- useElementSize(secondMoveSeperator)
92
- const secondMoveSeperatorBeforeStyles = ref<any>({})
93
- watch(
94
- heightSecondMoveSeperator,
95
- (newValue) => {
96
- if (!newValue) return
97
-
98
- secondMoveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
99
- },
100
- { immediate: true, deep: true }
101
- )
102
-
103
- const translation1 = computed<number>(() => (isNewView.value ? 31 : 28))
104
- const translation2 = computed<number>(() => (isNewView.value ? 47 : 28))
105
-
106
- const seperatorStyles = computed(() => ({
107
- left: `${props.blocksWidth[0] + translation1.value}px`,
108
- height: `${heightContainerBlock.value}px`,
109
- }))
110
- const secondSeperatorStyles = computed(() => ({
111
- right: `${props.blocksWidth[2] + translation2.value}px`,
112
- height: `${heightContainerBlock.value}px`,
113
- }))
114
-
115
- const emits = defineEmits<{
116
- (event: 'change-widths', width: number, index: number): void
117
- }>()
118
- const onMouseDown = (event: MouseEvent, section: string): void => {
119
- sectionSelected.value = true
120
- sectionSelectedName.value = section
121
- positionOnDown.value = (
122
- event.target as HTMLDivElement
123
- ).getBoundingClientRect().x
124
- }
125
-
126
- const onMouseMove = (event: MouseEvent): void => {
127
- if (!sectionSelected.value) return
128
- event.stopPropagation()
129
- event.preventDefault()
130
- event.cancelBubble = true
131
-
132
- getSeparatorPosition(event, 0, 1, 'first')
133
- getSeparatorPosition(event, 1, 2, 'second')
134
- }
135
- const onMouseUp = (): void => {
136
- sectionSelected.value = false
137
- }
138
-
139
- const minWidth = computed<number>(() => (isNewView.value ? 120 : 30))
140
-
141
- const getSeparatorPosition = (
142
- event: MouseEvent,
143
- firstBlock: number,
144
- secondBlock: number,
145
- separator: string
146
- ): void => {
147
- if (sectionSelected.value && sectionSelectedName.value === separator) {
148
- const blockWidth0 =
149
- props.blocksWidth[firstBlock] - (positionOnDown.value - event.x)
150
- const blockWidth1 =
151
- props.blocksWidth[secondBlock] + (positionOnDown.value - event.x)
152
- if (blockWidth0 < minWidth.value || blockWidth1 < minWidth.value) return
153
- blockWidth0 >= minWidth.value &&
154
- emits('change-widths', blockWidth0, firstBlock)
155
- blockWidth1 >= minWidth.value &&
156
- emits('change-widths', blockWidth1, secondBlock)
157
- positionOnDown.value = event.x
158
- }
159
- }
160
-
161
- onMounted(() => {
162
- document.addEventListener('mousemove', onMouseMove)
163
- document.addEventListener('mouseup', onMouseUp)
164
- })
165
- onUnmounted(() => {
166
- document.removeEventListener('mousemove', onMouseMove)
167
- document.removeEventListener('mouseup', onMouseUp)
168
- })
169
- </script>
170
-
171
- <style scoped lang="scss">
172
- .title-block__horizontal-container {
173
- display: flex;
174
- flex-direction: row;
175
- gap: 5px;
176
- }
177
-
178
- .title-block__horizontal-container.title-block__new-view {
179
- gap: 0;
180
- height: inherit;
181
- }
182
- .move-separator {
183
- position: absolute;
184
- width: 3px;
185
- height: inherit;
186
- background-color: var(--modal-bg-color);
187
- cursor: col-resize;
188
- z-index: var(--z-fixed);
189
-
190
- &-new-view {
191
- width: 3px;
192
- background: linear-gradient(
193
- to right,
194
- transparent 0,
195
- transparent 1px,
196
- var(--select-file-sprt-color) 1px,
197
- var(--select-file-sprt-color) 2px,
198
- transparent 2px,
199
- transparent 100%
200
- );
201
-
202
- div {
203
- position: relative;
204
-
205
- &::before {
206
- content: '';
207
- width: 2px;
208
- height: 16px;
209
- background-color: var(--select-file-sprt-handler-color);
210
- position: absolute;
211
- left: 0.5px;
212
- border-radius: 2px;
213
- }
214
- }
215
-
216
- &:hover {
217
- div::before {
218
- background-color: var(--select-file-sprt-handler-hover-color);
219
- }
220
- }
221
-
222
- &_selected {
223
- div::before {
224
- background-color: var(
225
- --select-file-sprt-handler-selected-color
226
- ) !important;
227
- }
228
- }
229
- }
230
- }
231
- </style>
1
+ <template>
2
+ <div
3
+ ref="containerBlock"
4
+ :class="[
5
+ `title-block__${props.type}-container`,
6
+ {
7
+ 'title-block__new-view': isNewView,
8
+ },
9
+ ]"
10
+ >
11
+ <slot name="firstBlock"></slot>
12
+ <div
13
+ ref="moveSeperator"
14
+ :class="[
15
+ 'move-separator',
16
+ {
17
+ 'move-separator-new-view': isNewView,
18
+ 'move-separator-new-view_selected':
19
+ sectionSelected && sectionSelectedName === 'first',
20
+ },
21
+ ]"
22
+ :data-id="`${props.testId}-first`"
23
+ :style="seperatorStyles"
24
+ @mousedown="onMouseDown($event, 'first')"
25
+ >
26
+ <div :style="moveSeperatorBeforeStyles"></div>
27
+ </div>
28
+ <slot name="secondBlock"></slot>
29
+ <div
30
+ ref="secondMoveSeperator"
31
+ :class="[
32
+ 'move-separator',
33
+ {
34
+ 'move-separator-new-view': isNewView,
35
+ 'move-separator-new-view_selected':
36
+ sectionSelected && sectionSelectedName === 'second',
37
+ },
38
+ ]"
39
+ :data-id="`${props.testId}-second`"
40
+ :style="secondSeperatorStyles"
41
+ @mousedown="onMouseDown($event, 'second')"
42
+ >
43
+ <div :style="secondMoveSeperatorBeforeStyles"></div>
44
+ </div>
45
+ <slot name="thirdBlock"></slot>
46
+ </div>
47
+ </template>
48
+
49
+ <script setup lang="ts">
50
+ import { useElementSize } from '@vueuse/core'
51
+ import type { UI_T_BlocksWidth } from '~/components/common/browse/blocks/lib/models/types'
52
+
53
+ const props = withDefaults(
54
+ defineProps<{
55
+ type: 'horizontal' | 'vertical'
56
+ blocksWidth: UI_T_BlocksWidth
57
+ testId?: string
58
+ }>(),
59
+ {
60
+ testId: '',
61
+ }
62
+ )
63
+
64
+ const { $store }: any = useNuxtApp()
65
+
66
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
67
+
68
+ const sectionSelected = ref<boolean>(false)
69
+ const sectionSelectedName = ref<string>('')
70
+
71
+ const positionOnDown = ref<number>(0)
72
+
73
+ const containerBlock = ref<HTMLElement | null>(null)
74
+ const { height: heightContainerBlock } = useElementSize(containerBlock)
75
+
76
+ const moveSeperator = ref<HTMLElement | null>(null)
77
+ const { height: heightMoveSeperator } = useElementSize(moveSeperator)
78
+ const moveSeperatorBeforeStyles = ref<any>({})
79
+ watch(
80
+ heightMoveSeperator,
81
+ (newValue) => {
82
+ if (!newValue) return
83
+
84
+ moveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
85
+ },
86
+ { immediate: true, deep: true }
87
+ )
88
+
89
+ const secondMoveSeperator = ref<HTMLElement | null>(null)
90
+ const { height: heightSecondMoveSeperator } =
91
+ useElementSize(secondMoveSeperator)
92
+ const secondMoveSeperatorBeforeStyles = ref<any>({})
93
+ watch(
94
+ heightSecondMoveSeperator,
95
+ (newValue) => {
96
+ if (!newValue) return
97
+
98
+ secondMoveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
99
+ },
100
+ { immediate: true, deep: true }
101
+ )
102
+
103
+ // const translation1 = computed<number>(() => (isNewView.value ? 31 : 28))
104
+ // const translation2 = computed<number>(() => (isNewView.value ? 47 : 28))
105
+ const translation = computed<number>(() => (isNewView.value ? 31 : 28))
106
+
107
+ const seperatorStyles = computed(() => ({
108
+ // left: `${props.blocksWidth[0] + translation1.value}px`,
109
+ left: `${props.blocksWidth[0] + translation.value}px`,
110
+ height: `${heightContainerBlock.value}px`,
111
+ }))
112
+ const secondSeperatorStyles = computed(() => ({
113
+ // right: `${props.blocksWidth[2] + translation2.value}px`,
114
+ left: `${props.blocksWidth[0] + props.blocksWidth[1] + translation.value}px`,
115
+ height: `${heightContainerBlock.value}px`,
116
+ }))
117
+
118
+ const emits = defineEmits<{
119
+ (event: 'change-widths', width: number, index: number): void
120
+ }>()
121
+ const onMouseDown = (event: MouseEvent, section: string): void => {
122
+ sectionSelected.value = true
123
+ sectionSelectedName.value = section
124
+ positionOnDown.value = (
125
+ event.target as HTMLDivElement
126
+ ).getBoundingClientRect().x
127
+ }
128
+
129
+ const onMouseMove = (event: MouseEvent): void => {
130
+ if (!sectionSelected.value) return
131
+ event.stopPropagation()
132
+ event.preventDefault()
133
+ event.cancelBubble = true
134
+
135
+ getSeparatorPosition(event, 0, 1, 'first')
136
+ getSeparatorPosition(event, 1, 2, 'second')
137
+ }
138
+ const onMouseUp = (): void => {
139
+ sectionSelected.value = false
140
+ }
141
+
142
+ const minWidth = computed<number>(() => (isNewView.value ? 120 : 30))
143
+
144
+ const getSeparatorPosition = (
145
+ event: MouseEvent,
146
+ firstBlock: number,
147
+ secondBlock: number,
148
+ separator: string
149
+ ): void => {
150
+ if (sectionSelected.value && sectionSelectedName.value === separator) {
151
+ const blockWidth0 =
152
+ props.blocksWidth[firstBlock] - (positionOnDown.value - event.x)
153
+ const blockWidth1 =
154
+ props.blocksWidth[secondBlock] + (positionOnDown.value - event.x)
155
+ if (blockWidth0 < minWidth.value || blockWidth1 < minWidth.value) return
156
+ blockWidth0 >= minWidth.value &&
157
+ emits('change-widths', blockWidth0, firstBlock)
158
+ blockWidth1 >= minWidth.value &&
159
+ emits('change-widths', blockWidth1, secondBlock)
160
+ positionOnDown.value = event.x
161
+ }
162
+ }
163
+
164
+ onMounted(() => {
165
+ document.addEventListener('mousemove', onMouseMove)
166
+ document.addEventListener('mouseup', onMouseUp)
167
+ })
168
+ onUnmounted(() => {
169
+ document.removeEventListener('mousemove', onMouseMove)
170
+ document.removeEventListener('mouseup', onMouseUp)
171
+ })
172
+ </script>
173
+
174
+ <style scoped lang="scss">
175
+ .title-block__horizontal-container {
176
+ display: flex;
177
+ flex-direction: row;
178
+ gap: 5px;
179
+ }
180
+
181
+ .title-block__horizontal-container.title-block__new-view {
182
+ gap: 0;
183
+ height: inherit;
184
+ }
185
+ .move-separator {
186
+ position: absolute;
187
+ width: 3px;
188
+ height: inherit;
189
+ background-color: var(--modal-bg-color);
190
+ cursor: col-resize;
191
+ z-index: var(--z-fixed);
192
+
193
+ &-new-view {
194
+ width: 3px;
195
+ background: linear-gradient(
196
+ to right,
197
+ transparent 0,
198
+ transparent 1px,
199
+ var(--select-file-sprt-color) 1px,
200
+ var(--select-file-sprt-color) 2px,
201
+ transparent 2px,
202
+ transparent 100%
203
+ );
204
+
205
+ div {
206
+ position: relative;
207
+
208
+ &::before {
209
+ content: '';
210
+ width: 2px;
211
+ height: 16px;
212
+ background-color: var(--select-file-sprt-handler-color);
213
+ position: absolute;
214
+ left: 0.5px;
215
+ border-radius: 2px;
216
+ }
217
+ }
218
+
219
+ &:hover {
220
+ div::before {
221
+ background-color: var(--select-file-sprt-handler-hover-color);
222
+ }
223
+ }
224
+
225
+ &_selected {
226
+ div::before {
227
+ background-color: var(
228
+ --select-file-sprt-handler-selected-color
229
+ ) !important;
230
+ }
231
+ }
232
+ }
233
+ }
234
+ </style>
@@ -76,7 +76,7 @@ const blockTitleWidth = computed<any>(() => ({
76
76
  padding-right: 12px;
77
77
 
78
78
  .title-block__body {
79
- padding: 0 4px;
79
+ padding: 0 4px 12px;
80
80
  }
81
81
  }
82
82
 
@@ -85,7 +85,7 @@ const blockTitleWidth = computed<any>(() => ({
85
85
  padding-left: 12px;
86
86
 
87
87
  .title-block__body {
88
- padding: 0 4px;
88
+ padding: 0 4px 12px;
89
89
  }
90
90
  }
91
91
 
@@ -1,18 +1,18 @@
1
- <template>
2
- <div class="skeleton-wrap">
3
- <ui-skeleton-item height="18px" />
4
- <ui-skeleton-item height="18px" />
5
- <ui-skeleton-item height="18px" />
6
- <ui-skeleton-item height="18px" />
7
- <ui-skeleton-item height="18px" />
8
- </div>
9
- </template>
10
-
11
- <script setup lang="ts"></script>
12
-
13
- <style scoped lang="scss">
14
- .skeleton-wrap {
15
- display: grid;
16
- grid-gap: 12px;
17
- }
18
- </style>
1
+ <template>
2
+ <div class="skeleton-wrap">
3
+ <ui-skeleton-item height="18px" />
4
+ <ui-skeleton-item height="18px" />
5
+ <ui-skeleton-item height="18px" />
6
+ <ui-skeleton-item height="18px" />
7
+ <ui-skeleton-item height="18px" />
8
+ </div>
9
+ </template>
10
+
11
+ <script setup lang="ts"></script>
12
+
13
+ <style scoped lang="scss">
14
+ .skeleton-wrap {
15
+ display: grid;
16
+ grid-gap: 12px;
17
+ }
18
+ </style>
@@ -1 +1 @@
1
- export type UI_T_BlocksWidth = [number, number, number]
1
+ export type UI_T_BlocksWidth = [number, number, number]
@@ -1,5 +1,5 @@
1
- export interface UI_I_FileInfo {
2
- type: string
3
- title: string
4
- value: string | number
5
- }
1
+ export interface UI_I_FileInfo {
2
+ type: string
3
+ title: string
4
+ value: string | number
5
+ }
@@ -1,33 +1,33 @@
1
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
-
3
- export interface UI_I_ContextMenuByEvent {
4
- event: any
5
- node: UI_I_TreeNode
6
- }
7
- export interface UI_I_ContextMenu<T = string> {
8
- x: number
9
- y: number
10
- id: string | number
11
- type: T
12
- titleText: string
13
- titleIconClassName: string
14
- items: UI_I_ContextMenuItem[]
15
- }
16
- export interface UI_I_ContextMenuItem<T = string> {
17
- key: number
18
- name: string
19
- actionType: T | ''
20
- iconClassName: string
21
- items: UI_I_ContextMenuItem<T>[]
22
- shortcut?: string
23
- hasBorderTop?: boolean
24
- isHeader?: boolean
25
- disabled?: boolean
26
- development?: boolean
27
- permission?: string
28
- isShowItems?: boolean
29
- testId?: string
30
- style?: {
31
- color: string
32
- }
33
- }
1
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
+
3
+ export interface UI_I_ContextMenuByEvent {
4
+ event: any
5
+ node: UI_I_TreeNode
6
+ }
7
+ export interface UI_I_ContextMenu<T = string> {
8
+ x: number
9
+ y: number
10
+ id: string | number
11
+ type: T
12
+ titleText: string
13
+ titleIconClassName: string
14
+ items: UI_I_ContextMenuItem[]
15
+ }
16
+ export interface UI_I_ContextMenuItem<T = string> {
17
+ key: number
18
+ name: string
19
+ actionType: T | ''
20
+ iconClassName: string
21
+ items: UI_I_ContextMenuItem<T>[]
22
+ shortcut?: string
23
+ hasBorderTop?: boolean
24
+ isHeader?: boolean
25
+ disabled?: boolean
26
+ development?: boolean
27
+ permission?: string
28
+ isShowItems?: boolean
29
+ testId?: string
30
+ style?: {
31
+ color: string
32
+ }
33
+ }