bfg-common 1.5.380 → 1.5.382

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