bfg-common 1.5.448 → 1.5.450

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 (124) 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 +1 -0
  7. package/assets/localization/local_en.json +1 -0
  8. package/assets/localization/local_hy.json +1 -0
  9. package/assets/localization/local_kk.json +1 -0
  10. package/assets/localization/local_ru.json +1 -0
  11. package/assets/localization/local_zh.json +1 -0
  12. package/assets/scss/clarity/local_ar.json +1 -0
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/DataGrid.vue +1694 -1694
  17. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  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/common/browse/blocks/Container.vue +235 -235
  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/modals/lib/config/portModal.ts +251 -251
  25. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  26. package/components/common/diagramMain/port/Port.vue +580 -580
  27. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  28. package/components/common/pages/backups/Backups.vue +102 -102
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  32. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  33. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  34. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  35. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  36. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  37. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  38. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  39. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -135
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  43. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  44. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  45. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  46. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -160
  47. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  48. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  49. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  50. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  51. package/components/common/pages/backups/tools/Tools.vue +75 -75
  52. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  53. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  54. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  55. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  56. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  57. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  58. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  59. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  60. package/components/common/select/radio/RadioGroup.vue +137 -137
  61. package/components/common/spiceConsole/Drawer.vue +381 -381
  62. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  63. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  64. package/components/common/tools/Actions.vue +207 -207
  65. package/components/common/treeView/TreeView.vue +52 -52
  66. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  67. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +7 -1
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  97. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  98. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  99. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  100. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  101. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  102. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  103. package/components/common/vm/actions/common/select/name/Name.vue +190 -182
  104. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  105. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  106. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  107. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  108. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  109. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  110. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  111. package/components/common/vmt/actions/add/Old.vue +1 -0
  112. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  113. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  114. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  115. package/composables/productNameLocal.ts +30 -30
  116. package/composables/useAppVersion.ts +21 -21
  117. package/package.json +1 -1
  118. package/plugins/date.ts +233 -233
  119. package/plugins/panelStates.ts +70 -70
  120. package/plugins/text.ts +59 -59
  121. package/public/spice-console/lib/images/bitmap.js +203 -203
  122. package/public/spice-console/network/spicechannel.js +390 -390
  123. package/store/main/mutations.ts +7 -7
  124. package/store/main/state.ts +7 -7
@@ -1,235 +1,235 @@
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.prevent="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.prevent="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 emits = defineEmits<{
65
- (event: 'change-widths', width: number, index: number): void
66
- }>()
67
-
68
- const { $store }: any = useNuxtApp()
69
-
70
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
71
-
72
- const sectionSelected = ref<boolean>(false)
73
- const sectionSelectedName = ref<string>('')
74
-
75
- const positionOnDown = ref<number>(0)
76
-
77
- const containerBlock = ref<HTMLElement | null>(null)
78
- const { height: heightContainerBlock } = useElementSize(containerBlock)
79
-
80
- const moveSeperator = ref<HTMLElement | null>(null)
81
- const { height: heightMoveSeperator } = useElementSize(moveSeperator)
82
- const moveSeperatorBeforeStyles = ref<any>({})
83
- watch(
84
- heightMoveSeperator,
85
- (newValue) => {
86
- if (!newValue) return
87
-
88
- moveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
89
- },
90
- { immediate: true, deep: true }
91
- )
92
-
93
- const secondMoveSeperator = ref<HTMLElement | null>(null)
94
- const { height: heightSecondMoveSeperator } =
95
- useElementSize(secondMoveSeperator)
96
- const secondMoveSeperatorBeforeStyles = ref<any>({})
97
- watch(
98
- heightSecondMoveSeperator,
99
- (newValue) => {
100
- if (!newValue) return
101
-
102
- secondMoveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
103
- },
104
- { immediate: true, deep: true }
105
- )
106
-
107
- // const translation1 = computed<number>(() => (isNewView.value ? 31 : 28))
108
- // const translation2 = computed<number>(() => (isNewView.value ? 47 : 28))
109
- // const translation = computed<number>(() => (isNewView.value ? 31 : 28))
110
-
111
- const seperatorStyles = computed(() => ({
112
- // left: `${props.blocksWidth[0] + translation1.value}px`,
113
- left: `${props.blocksWidth[0]}px`,
114
- height: `${heightContainerBlock.value}px`,
115
- }))
116
- const secondSeperatorStyles = computed(() => ({
117
- // right: `${props.blocksWidth[2] + translation2.value}px`,
118
- left: `${props.blocksWidth[0] + props.blocksWidth[1]}px`,
119
- height: `${heightContainerBlock.value}px`,
120
- }))
121
-
122
- const onMouseDown = (event: MouseEvent, section: string): void => {
123
- sectionSelected.value = true
124
- sectionSelectedName.value = section
125
- positionOnDown.value = (
126
- event.target as HTMLDivElement
127
- ).getBoundingClientRect().x
128
- }
129
-
130
- const onMouseMove = (event: MouseEvent): void => {
131
- if (!sectionSelected.value) return
132
- event.stopPropagation()
133
- event.preventDefault()
134
- event.cancelBubble = true
135
-
136
- getSeparatorPosition(event, 0, 1, 'first')
137
- getSeparatorPosition(event, 1, 2, 'second')
138
- }
139
- const onMouseUp = (): void => {
140
- sectionSelected.value = false
141
- }
142
-
143
- const minWidth = computed<number>(() => (isNewView.value ? 120 : 30))
144
-
145
- const getSeparatorPosition = (
146
- event: MouseEvent,
147
- firstBlock: number,
148
- secondBlock: number,
149
- separator: string
150
- ): void => {
151
- if (sectionSelected.value && sectionSelectedName.value === separator) {
152
- const blockWidth0 =
153
- props.blocksWidth[firstBlock] - (positionOnDown.value - event.x)
154
- const blockWidth1 =
155
- props.blocksWidth[secondBlock] + (positionOnDown.value - event.x)
156
- if (blockWidth0 < minWidth.value || blockWidth1 < minWidth.value) return
157
- blockWidth0 >= minWidth.value &&
158
- emits('change-widths', blockWidth0, firstBlock)
159
- blockWidth1 >= minWidth.value &&
160
- emits('change-widths', blockWidth1, secondBlock)
161
- positionOnDown.value = event.x
162
- }
163
- }
164
-
165
- onMounted(() => {
166
- document.addEventListener('mousemove', onMouseMove)
167
- document.addEventListener('mouseup', onMouseUp)
168
- })
169
- onUnmounted(() => {
170
- document.removeEventListener('mousemove', onMouseMove)
171
- document.removeEventListener('mouseup', onMouseUp)
172
- })
173
- </script>
174
-
175
- <style scoped lang="scss">
176
- .title-block__horizontal-container {
177
- display: flex;
178
- flex-direction: row;
179
- gap: 5px;
180
- }
181
-
182
- .title-block__horizontal-container.title-block__new-view {
183
- gap: 0;
184
- height: inherit;
185
- }
186
- .move-separator {
187
- position: absolute;
188
- width: 3px;
189
- height: inherit;
190
- background-color: var(--modal-bg-color);
191
- cursor: col-resize;
192
- z-index: var(--z-fixed);
193
-
194
- &-new-view {
195
- width: 3px;
196
- background: linear-gradient(
197
- to right,
198
- transparent 0,
199
- transparent 1px,
200
- var(--select-file-sprt-color) 1px,
201
- var(--select-file-sprt-color) 2px,
202
- transparent 2px,
203
- transparent 100%
204
- );
205
-
206
- div {
207
- position: relative;
208
-
209
- &::before {
210
- content: '';
211
- width: 2px;
212
- height: 16px;
213
- background-color: var(--select-file-sprt-handler-color);
214
- position: absolute;
215
- left: 0.5px;
216
- border-radius: 2px;
217
- }
218
- }
219
-
220
- &:hover {
221
- div::before {
222
- background-color: var(--select-file-sprt-handler-hover-color);
223
- }
224
- }
225
-
226
- &_selected {
227
- div::before {
228
- background-color: var(
229
- --select-file-sprt-handler-selected-color
230
- ) !important;
231
- }
232
- }
233
- }
234
- }
235
- </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.prevent="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.prevent="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 emits = defineEmits<{
65
+ (event: 'change-widths', width: number, index: number): void
66
+ }>()
67
+
68
+ const { $store }: any = useNuxtApp()
69
+
70
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
71
+
72
+ const sectionSelected = ref<boolean>(false)
73
+ const sectionSelectedName = ref<string>('')
74
+
75
+ const positionOnDown = ref<number>(0)
76
+
77
+ const containerBlock = ref<HTMLElement | null>(null)
78
+ const { height: heightContainerBlock } = useElementSize(containerBlock)
79
+
80
+ const moveSeperator = ref<HTMLElement | null>(null)
81
+ const { height: heightMoveSeperator } = useElementSize(moveSeperator)
82
+ const moveSeperatorBeforeStyles = ref<any>({})
83
+ watch(
84
+ heightMoveSeperator,
85
+ (newValue) => {
86
+ if (!newValue) return
87
+
88
+ moveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
89
+ },
90
+ { immediate: true, deep: true }
91
+ )
92
+
93
+ const secondMoveSeperator = ref<HTMLElement | null>(null)
94
+ const { height: heightSecondMoveSeperator } =
95
+ useElementSize(secondMoveSeperator)
96
+ const secondMoveSeperatorBeforeStyles = ref<any>({})
97
+ watch(
98
+ heightSecondMoveSeperator,
99
+ (newValue) => {
100
+ if (!newValue) return
101
+
102
+ secondMoveSeperatorBeforeStyles.value.top = newValue / 2 + 'px'
103
+ },
104
+ { immediate: true, deep: true }
105
+ )
106
+
107
+ // const translation1 = computed<number>(() => (isNewView.value ? 31 : 28))
108
+ // const translation2 = computed<number>(() => (isNewView.value ? 47 : 28))
109
+ // const translation = computed<number>(() => (isNewView.value ? 31 : 28))
110
+
111
+ const seperatorStyles = computed(() => ({
112
+ // left: `${props.blocksWidth[0] + translation1.value}px`,
113
+ left: `${props.blocksWidth[0]}px`,
114
+ height: `${heightContainerBlock.value}px`,
115
+ }))
116
+ const secondSeperatorStyles = computed(() => ({
117
+ // right: `${props.blocksWidth[2] + translation2.value}px`,
118
+ left: `${props.blocksWidth[0] + props.blocksWidth[1]}px`,
119
+ height: `${heightContainerBlock.value}px`,
120
+ }))
121
+
122
+ const onMouseDown = (event: MouseEvent, section: string): void => {
123
+ sectionSelected.value = true
124
+ sectionSelectedName.value = section
125
+ positionOnDown.value = (
126
+ event.target as HTMLDivElement
127
+ ).getBoundingClientRect().x
128
+ }
129
+
130
+ const onMouseMove = (event: MouseEvent): void => {
131
+ if (!sectionSelected.value) return
132
+ event.stopPropagation()
133
+ event.preventDefault()
134
+ event.cancelBubble = true
135
+
136
+ getSeparatorPosition(event, 0, 1, 'first')
137
+ getSeparatorPosition(event, 1, 2, 'second')
138
+ }
139
+ const onMouseUp = (): void => {
140
+ sectionSelected.value = false
141
+ }
142
+
143
+ const minWidth = computed<number>(() => (isNewView.value ? 120 : 30))
144
+
145
+ const getSeparatorPosition = (
146
+ event: MouseEvent,
147
+ firstBlock: number,
148
+ secondBlock: number,
149
+ separator: string
150
+ ): void => {
151
+ if (sectionSelected.value && sectionSelectedName.value === separator) {
152
+ const blockWidth0 =
153
+ props.blocksWidth[firstBlock] - (positionOnDown.value - event.x)
154
+ const blockWidth1 =
155
+ props.blocksWidth[secondBlock] + (positionOnDown.value - event.x)
156
+ if (blockWidth0 < minWidth.value || blockWidth1 < minWidth.value) return
157
+ blockWidth0 >= minWidth.value &&
158
+ emits('change-widths', blockWidth0, firstBlock)
159
+ blockWidth1 >= minWidth.value &&
160
+ emits('change-widths', blockWidth1, secondBlock)
161
+ positionOnDown.value = event.x
162
+ }
163
+ }
164
+
165
+ onMounted(() => {
166
+ document.addEventListener('mousemove', onMouseMove)
167
+ document.addEventListener('mouseup', onMouseUp)
168
+ })
169
+ onUnmounted(() => {
170
+ document.removeEventListener('mousemove', onMouseMove)
171
+ document.removeEventListener('mouseup', onMouseUp)
172
+ })
173
+ </script>
174
+
175
+ <style scoped lang="scss">
176
+ .title-block__horizontal-container {
177
+ display: flex;
178
+ flex-direction: row;
179
+ gap: 5px;
180
+ }
181
+
182
+ .title-block__horizontal-container.title-block__new-view {
183
+ gap: 0;
184
+ height: inherit;
185
+ }
186
+ .move-separator {
187
+ position: absolute;
188
+ width: 3px;
189
+ height: inherit;
190
+ background-color: var(--modal-bg-color);
191
+ cursor: col-resize;
192
+ z-index: var(--z-fixed);
193
+
194
+ &-new-view {
195
+ width: 3px;
196
+ background: linear-gradient(
197
+ to right,
198
+ transparent 0,
199
+ transparent 1px,
200
+ var(--select-file-sprt-color) 1px,
201
+ var(--select-file-sprt-color) 2px,
202
+ transparent 2px,
203
+ transparent 100%
204
+ );
205
+
206
+ div {
207
+ position: relative;
208
+
209
+ &::before {
210
+ content: '';
211
+ width: 2px;
212
+ height: 16px;
213
+ background-color: var(--select-file-sprt-handler-color);
214
+ position: absolute;
215
+ left: 0.5px;
216
+ border-radius: 2px;
217
+ }
218
+ }
219
+
220
+ &:hover {
221
+ div::before {
222
+ background-color: var(--select-file-sprt-handler-hover-color);
223
+ }
224
+ }
225
+
226
+ &_selected {
227
+ div::before {
228
+ background-color: var(
229
+ --select-file-sprt-handler-selected-color
230
+ ) !important;
231
+ }
232
+ }
233
+ }
234
+ }
235
+ </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
+ }