bfg-common 1.5.443 → 1.5.445

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 (139) 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 +3 -2
  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/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1694 -1694
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/browse/blocks/Container.vue +235 -235
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  22. package/components/common/browse/lib/models/interfaces.ts +5 -5
  23. package/components/common/context/lib/models/interfaces.ts +33 -33
  24. package/components/common/countdownTimer/CountdownTimer.vue +15 -26
  25. package/components/common/countdownTimer/CountdownTimerNew.vue +53 -0
  26. package/components/common/countdownTimer/CountdownTimerOld.vue +33 -0
  27. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  28. package/components/common/diagramMain/lib/models/types.ts +21 -21
  29. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  30. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  31. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  32. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  33. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  34. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  35. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  36. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  38. package/components/common/diagramMain/port/Port.vue +580 -580
  39. package/components/common/diagramMain/port/Ports.vue +47 -47
  40. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  41. package/components/common/layout/theHeader/modals/{Reconnect.vue → reconnect/Reconnect.vue} +43 -56
  42. package/components/common/layout/theHeader/modals/reconnect/ReconnectNew.vue +74 -0
  43. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +67 -0
  44. package/components/common/pages/backups/Backups.vue +102 -102
  45. package/components/common/pages/backups/DetailView.vue +52 -52
  46. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  47. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  48. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  49. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  50. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  51. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  52. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  53. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  54. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  55. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  56. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  57. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  58. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  59. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  60. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  61. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  62. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  63. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  64. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  65. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  66. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  67. package/components/common/pages/backups/tools/Tools.vue +75 -75
  68. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  69. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  70. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  71. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  72. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  73. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  74. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  75. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  76. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  77. package/components/common/select/radio/RadioGroup.vue +137 -137
  78. package/components/common/spiceConsole/Drawer.vue +381 -381
  79. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  80. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  81. package/components/common/tools/Actions.vue +207 -207
  82. package/components/common/treeView/TreeView.vue +52 -52
  83. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  84. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +2 -1
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +2 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  114. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  115. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  116. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  117. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  118. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  119. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  120. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  121. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  122. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  126. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  127. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  128. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  129. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  130. package/composables/productNameLocal.ts +30 -30
  131. package/composables/useAppVersion.ts +21 -21
  132. package/package.json +1 -1
  133. package/plugins/date.ts +233 -233
  134. package/plugins/panelStates.ts +70 -70
  135. package/plugins/text.ts +59 -59
  136. package/public/spice-console/lib/images/bitmap.js +203 -203
  137. package/public/spice-console/network/spicechannel.js +390 -390
  138. package/store/main/mutations.ts +7 -7
  139. 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 +1 @@
1
- export type UI_T_BlocksWidth = [number, number, number]
1
+ export type UI_T_BlocksWidth = [number, number, number]
@@ -1,5 +1,5 @@
1
- export interface UI_I_FileInfo {
2
- type: string
3
- title: string
4
- value: string | number
5
- }
1
+ export interface UI_I_FileInfo {
2
+ type: string
3
+ title: string
4
+ value: string | number
5
+ }
@@ -1,33 +1,33 @@
1
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
-
3
- export interface UI_I_ContextMenuByEvent {
4
- event: any
5
- node: UI_I_TreeNode
6
- }
7
- export interface UI_I_ContextMenu<T = string> {
8
- x: number
9
- y: number
10
- id: string | number
11
- type: T
12
- titleText: string
13
- titleIconClassName: string
14
- items: UI_I_ContextMenuItem[]
15
- }
16
- export interface UI_I_ContextMenuItem<T = string> {
17
- key: number
18
- name: string
19
- actionType: T | ''
20
- iconClassName: string
21
- items: UI_I_ContextMenuItem<T>[]
22
- shortcut?: string
23
- hasBorderTop?: boolean
24
- isHeader?: boolean
25
- disabled?: boolean
26
- development?: boolean
27
- permission?: string
28
- isShowItems?: boolean
29
- testId?: string
30
- style?: {
31
- color: string
32
- }
33
- }
1
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
+
3
+ export interface UI_I_ContextMenuByEvent {
4
+ event: any
5
+ node: UI_I_TreeNode
6
+ }
7
+ export interface UI_I_ContextMenu<T = string> {
8
+ x: number
9
+ y: number
10
+ id: string | number
11
+ type: T
12
+ titleText: string
13
+ titleIconClassName: string
14
+ items: UI_I_ContextMenuItem[]
15
+ }
16
+ export interface UI_I_ContextMenuItem<T = string> {
17
+ key: number
18
+ name: string
19
+ actionType: T | ''
20
+ iconClassName: string
21
+ items: UI_I_ContextMenuItem<T>[]
22
+ shortcut?: string
23
+ hasBorderTop?: boolean
24
+ isHeader?: boolean
25
+ disabled?: boolean
26
+ development?: boolean
27
+ permission?: string
28
+ isShowItems?: boolean
29
+ testId?: string
30
+ style?: {
31
+ color: string
32
+ }
33
+ }
@@ -1,26 +1,28 @@
1
1
  <template>
2
- <div class="countdown-timer">
3
- <h3 class="countdown-timer__inner">
4
- <span class="countdown-timer__minutes">{{ minutes }}</span>
5
- <span class="countdown-timer__separator">:</span>
6
- <span class="countdown-timer__seconds"
7
- >{{ seconds }} {{ localization.common.seconds }}</span
8
- >
9
- </h3>
10
- </div>
2
+ <common-countdown-timer-new
3
+ v-if="isNewView"
4
+ :minutes="minutes"
5
+ :seconds="seconds"
6
+ />
7
+ <common-countdown-timer-old v-else :minutes="minutes" :seconds="seconds" />
11
8
  </template>
12
9
 
13
10
  <script lang="ts" setup>
14
- import type { UI_I_Localization } from '~/lib/models/interfaces'
15
-
16
11
  const props = defineProps<{
17
12
  timer: number
18
13
  totalTime: number
19
14
  }>()
20
15
 
21
- const localization = computed<UI_I_Localization>(() => useLocal())
16
+ const { $store }: any = useNuxtApp()
17
+
18
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
19
 
23
20
  const secondsInMinute = 60
21
+
22
+ const formatTime = (time: number): string => {
23
+ return (time < 10 ? '0' : '') + time
24
+ }
25
+
24
26
  const minutes = computed<string>(() => {
25
27
  if (!props.timer) return '00'
26
28
  const minutes = Math.floor(props.totalTime / secondsInMinute)
@@ -32,19 +34,6 @@ const seconds = computed<string>(() => {
32
34
  const seconds = props.totalTime - +minutes.value * secondsInMinute
33
35
  return formatTime(seconds)
34
36
  })
35
-
36
- const formatTime = (time: number): string => {
37
- return (time < 10 ? '0' : '') + time
38
- }
39
37
  </script>
40
38
 
41
- <style lang="scss" scoped>
42
- .countdown-timer {
43
- &__inner {
44
- padding-top: 12px;
45
- & > span {
46
- font-size: 40px;
47
- }
48
- }
49
- }
50
- </style>
39
+ <style lang="scss" scoped></style>