bfg-common 1.5.377 → 1.5.379

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 (143) 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 +33 -1
  7. package/assets/localization/local_en.json +33 -1
  8. package/assets/localization/local_hy.json +33 -1
  9. package/assets/localization/local_kk.json +33 -1
  10. package/assets/localization/local_ru.json +33 -1
  11. package/assets/localization/local_zh.json +33 -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/blocks/Container.vue +234 -234
  26. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  27. package/components/common/context/lib/models/interfaces.ts +33 -33
  28. package/components/common/diagramMain/DiagramMain.vue +900 -897
  29. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  30. package/components/common/diagramMain/network/Network.vue +141 -141
  31. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  33. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  34. package/components/common/pages/home/headline/Headline.vue +45 -45
  35. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  36. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  37. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  38. package/components/common/pages/home/widgets/WidgetsNew.vue +88 -88
  39. package/components/common/pages/home/widgets/WidgetsOld.vue +36 -36
  40. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  41. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  42. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  43. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  44. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  45. package/components/common/pages/packages/Packages.vue +208 -208
  46. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  47. package/components/common/readyToComplete/New.vue +129 -129
  48. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  49. package/components/common/recursionTree/RecursionTree.vue +223 -223
  50. package/components/common/select/button/ButtonDropdown.vue +112 -112
  51. package/components/common/spiceConsole/Drawer.vue +377 -377
  52. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  53. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  54. package/components/common/tools/Actions.vue +207 -207
  55. package/components/common/vm/actions/add/Old.vue +388 -388
  56. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  57. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  58. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  59. package/components/common/vm/actions/clone/Clone.vue +823 -823
  60. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  61. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +155 -155
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +155 -155
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +130 -130
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +113 -113
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +95 -95
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +155 -155
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  107. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  108. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  109. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  110. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  111. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  112. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  113. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  114. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  115. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  116. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  117. package/components/common/vm/actions/common/select/storage/Storage.vue +155 -155
  118. package/components/common/vm/actions/common/select/storage/new/New.vue +300 -300
  119. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  120. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  121. package/components/common/vm/actions/editSettings/EditSettings.vue +242 -242
  122. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  123. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  124. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +104 -104
  125. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +467 -467
  126. package/components/common/wizards/vm/migrate/Migrate.vue +349 -349
  127. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  128. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  129. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  130. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  131. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  132. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  133. package/composables/productNameLocal.ts +30 -30
  134. package/composables/useAppVersion.ts +21 -21
  135. package/package.json +1 -1
  136. package/plugins/date.ts +233 -233
  137. package/plugins/panelStates.ts +70 -70
  138. package/plugins/text.ts +59 -59
  139. package/public/spice-console/lib/images/bitmap.js +203 -203
  140. package/public/spice-console/network/spicechannel.js +387 -387
  141. package/store/main/mutations.ts +7 -7
  142. package/store/main/state.ts +7 -7
  143. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,234 +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
- 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>
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>
@@ -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,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
+ }