bfg-common 1.5.398 → 1.5.400

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