bfg-common 1.4.799 → 1.4.801

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 (157) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +31 -14
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-4.svg +6 -1
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +30 -13
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-4.svg +6 -1
  8. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  9. package/assets/localization/local_be.json +33 -8
  10. package/assets/localization/local_en.json +33 -8
  11. package/assets/localization/local_hy.json +33 -8
  12. package/assets/localization/local_kk.json +34 -9
  13. package/assets/localization/local_ru.json +43 -18
  14. package/assets/localization/local_zh.json +33 -8
  15. package/assets/scss/clarity/local_ar.json +6 -3
  16. package/assets/scss/common/icons/icons-1.scss +4 -4
  17. package/components/atoms/autocomplete/Autocomplete.vue +68 -12
  18. package/components/atoms/select/TheSelect.vue +10 -1
  19. package/components/atoms/table/dataGrid/DataGrid.vue +12 -4
  20. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +4 -1
  21. package/components/atoms/table/dataGrid/lib/utils/export.ts +13 -13
  22. package/components/atoms/tabs/VerticalTabs.vue +11 -6
  23. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  24. package/components/common/browse/lib/models/interfaces.ts +5 -5
  25. package/components/common/chartOptionsModal/counters/timespan/form/Form.vue +544 -544
  26. package/components/common/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +116 -116
  27. package/components/common/context/Context.vue +16 -4
  28. package/components/common/context/recursion/Recursion.vue +2 -1
  29. package/components/common/context/recursion/RecursionNew.vue +57 -31
  30. package/components/common/context/recursion/RecursionOld.vue +33 -19
  31. package/components/common/diagramMain/Header.vue +211 -211
  32. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  33. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  34. package/components/common/diagramMain/lib/models/types.ts +21 -21
  35. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  36. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  37. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  38. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  39. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  40. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  41. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  42. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  43. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  44. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +7 -7
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  46. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  47. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  48. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  49. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  50. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  51. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  58. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  59. package/components/common/diagramMain/port/Ports.vue +47 -47
  60. package/components/common/feedback/Buttons.vue +2 -2
  61. package/components/common/feedback/Message.vue +1 -0
  62. package/components/common/feedback/VisitPortal.vue +5 -1
  63. package/components/common/graph/Graph.vue +5 -11
  64. package/components/common/graph/GraphNew.vue +71 -0
  65. package/components/common/graph/GraphOld.vue +31 -0
  66. package/components/common/layout/theHeader/feedback/new/New.vue +29 -14
  67. package/components/common/layout/theHeader/feedback/new/additionalDetails/AdditionalDetails.vue +34 -9
  68. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +17 -6
  69. package/components/common/layout/theHeader/feedback/new/description/Description.vue +1 -0
  70. package/components/common/layout/theHeader/feedback/new/email/Email.vue +1 -1
  71. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +22 -6
  72. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +17 -15
  73. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -1
  74. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +3 -2
  75. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -1
  76. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +1 -1
  77. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +7 -7
  78. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +95 -95
  79. package/components/common/monitor/overview/Overview.vue +14 -28
  80. package/components/common/monitor/overview/OverviewNew.vue +138 -0
  81. package/components/common/monitor/overview/OverviewOld.vue +137 -0
  82. package/components/common/monitor/overview/filters/Filters.vue +35 -103
  83. package/components/common/monitor/overview/filters/FiltersNew.vue +122 -0
  84. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -0
  85. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +1 -1
  86. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +463 -456
  87. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +389 -387
  88. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +8 -0
  89. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +94 -94
  90. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +66 -66
  91. package/components/common/pages/home/headline/Headline.vue +3 -2
  92. package/components/common/pages/home/headline/HeadlineNew.vue +1 -1
  93. package/components/common/pages/home/headline/HeadlineOld.vue +5 -0
  94. package/components/common/pages/home/widgets/vms/VmsNew.vue +1 -1
  95. package/components/common/pages/packages/Packages.vue +208 -0
  96. package/components/common/pages/packages/lib/config/actions.ts +59 -0
  97. package/components/common/pages/packages/lib/models/types.ts +8 -0
  98. package/components/common/pages/packages/tableView/TableView.vue +120 -0
  99. package/components/common/pages/packages/tableView/lib/config/configTable.ts +136 -0
  100. package/components/common/pages/packages/tableView/lib/config/tableKey.ts +14 -0
  101. package/components/common/pages/packages/tableView/lib/models/types.ts +12 -0
  102. package/components/common/pages/shortcuts/Shortcuts.vue +1 -1
  103. package/components/common/pages/tasks/Tasks.vue +23 -8
  104. package/components/common/pages/tasks/table/Table.vue +66 -16
  105. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +27 -10
  106. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +28 -12
  107. package/components/common/pages/tasks/table/lib/config/config.ts +11 -11
  108. package/components/common/portlets/customAttributes/Portlet.vue +4 -4
  109. package/components/common/portlets/tag/TagAddNew.vue +4 -4
  110. package/components/common/select/radio/RadioGroup.vue +3 -3
  111. package/components/common/selectLanguage/SelectLanguage.vue +29 -25
  112. package/components/common/selectLanguage/lib/config/config.ts +1 -0
  113. package/components/common/split/horizontal/HorizontalNew.vue +42 -24
  114. package/components/common/split/horizontal/HorizontalOld.vue +43 -13
  115. package/components/common/vm/actions/add/Add.vue +6 -1
  116. package/components/common/vm/actions/clone/Clone.vue +8 -3
  117. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +4 -0
  118. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +6 -4
  119. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +26 -10
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +12 -4
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +6 -3
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +4 -2
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +6 -4
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +9 -3
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +3 -2
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -2
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +87 -24
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +14 -8
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +9 -7
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -4
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +43 -12
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +50 -25
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +5 -7
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +64 -28
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +60 -19
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +11 -4
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +16 -1
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +59 -8
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +60 -7
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +1 -1
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +1 -1
  142. package/components/common/vm/actions/common/lib/config/capabilities.ts +1 -1
  143. package/components/common/vm/actions/editSettings/EditSettings.vue +4 -0
  144. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +2 -0
  145. package/components/common/vm/actions/editSettings/new/New.vue +2 -0
  146. package/components/common/wizards/datastore/add/Add.vue +4 -4
  147. package/components/common/wizards/datastore/add/lib/config/steps.ts +14 -14
  148. package/components/common/wizards/datastore/add/lib/validations.ts +9 -9
  149. package/components/common/wizards/datastore/add/nfs/Nfs.vue +6 -9
  150. package/components/common/wizards/vm/migrate/Migrate.vue +12 -12
  151. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +1 -1
  152. package/composables/useLocal.ts +3 -1
  153. package/composables/useLocalStorage.ts +1 -1
  154. package/lib/models/store/vm/interfaces.ts +11 -0
  155. package/lib/models/table/interfaces.ts +1 -0
  156. package/package.json +3 -3
  157. package/store/tasks/actions.ts +2 -1
@@ -1,116 +1,116 @@
1
- import type {
2
- UI_I_ArbitraryObject,
3
- UI_I_Localization,
4
- } from '~/lib/models/interfaces'
5
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
6
-
7
- export const timespanFunc = (
8
- localization: UI_I_Localization
9
- ): UI_I_OptionItem[] => [
10
- {
11
- text: localization.inventoryMonitor.realTime,
12
- value: 'real_time',
13
- },
14
- {
15
- text: localization.inventoryMonitor.lastDay,
16
- value: 'last_day',
17
- },
18
- {
19
- text: localization.inventoryMonitor.lastWeek,
20
- value: 'last_week',
21
- },
22
- {
23
- text: localization.inventoryMonitor.lastMonth,
24
- value: 'last_month',
25
- },
26
- // {
27
- // text: localization.inventoryMonitor.lastYear,
28
- // value: 'last_year',
29
- // },
30
- {
31
- text: localization.inventoryMonitor.customInterval,
32
- value: 'custom_interval',
33
- },
34
- ]
35
-
36
- export const customTimeFunc = (
37
- localization: UI_I_Localization,
38
- value: number,
39
- lang: string
40
- ): UI_I_OptionItem[] => {
41
- const isLangRu = lang === 'ru_RU'
42
-
43
- const hourText = isLangRu
44
- ? getCorrectRuForm(value, 'hour')
45
- : localization.common.hours2
46
- const dayText = isLangRu
47
- ? getCorrectRuForm(value, 'day')
48
- : localization.common.days2
49
- const weekText = isLangRu
50
- ? getCorrectRuForm(value, 'week')
51
- : localization.common.weeks2
52
- const monthText = isLangRu
53
- ? getCorrectRuForm(value, 'month')
54
- : localization.common.months2
55
-
56
- return [
57
- {
58
- text: hourText,
59
- value: 'hours',
60
- },
61
- {
62
- text: dayText,
63
- value: 'days',
64
- },
65
- {
66
- text: weekText,
67
- value: 'weeks',
68
- },
69
- {
70
- text: monthText,
71
- value: 'months',
72
- },
73
- ]
74
- }
75
-
76
- export const chartTypeFunc = (
77
- localization: UI_I_Localization
78
- ): UI_I_OptionItem[] => [
79
- {
80
- text: localization.inventoryMonitor.lineGraph,
81
- value: 'line_graph',
82
- },
83
- {
84
- text: localization.inventoryMonitor.stackedGraph,
85
- value: 'stacked_graph',
86
- },
87
- ]
88
-
89
- const getCorrectRuForm = (value: number, type: string): string => {
90
- // TODO поправить используя correctRuUnit из плагина date
91
- const forms: UI_I_ArbitraryObject<string[]> = {
92
- hour: ['Час', 'Часа', 'Часов'],
93
- day: ['День', 'Дня', 'Дней'],
94
- week: ['Неделя', 'Недели', 'Недель'],
95
- month: ['Месяц', 'Месяца', 'Месяцев'],
96
- }
97
-
98
- let text: string
99
-
100
- if (!value) {
101
- return getCorrectRuForm[type]
102
- }
103
-
104
- if (value % 10 === 1 && value % 100 !== 11) {
105
- text = forms[type][0]
106
- } else if (
107
- [2, 3, 4].includes(value % 10) &&
108
- ![12, 13, 14].includes(value % 100)
109
- ) {
110
- text = forms[type][1]
111
- } else {
112
- text = forms[type][2]
113
- }
114
- getCorrectRuForm[type] = text
115
- return text
116
- }
1
+ import type {
2
+ UI_I_ArbitraryObject,
3
+ UI_I_Localization,
4
+ } from '~/lib/models/interfaces'
5
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
6
+
7
+ export const timespanFunc = (
8
+ localization: UI_I_Localization
9
+ ): UI_I_OptionItem[] => [
10
+ {
11
+ text: localization.inventoryMonitor.realTime,
12
+ value: 'real_time',
13
+ },
14
+ {
15
+ text: localization.inventoryMonitor.lastDay,
16
+ value: 'last_day',
17
+ },
18
+ {
19
+ text: localization.inventoryMonitor.lastWeek,
20
+ value: 'last_week',
21
+ },
22
+ {
23
+ text: localization.inventoryMonitor.lastMonth,
24
+ value: 'last_month',
25
+ },
26
+ // {
27
+ // text: localization.inventoryMonitor.lastYear,
28
+ // value: 'last_year',
29
+ // },
30
+ {
31
+ text: localization.inventoryMonitor.customInterval,
32
+ value: 'custom_interval',
33
+ },
34
+ ]
35
+
36
+ export const customTimeFunc = (
37
+ localization: UI_I_Localization,
38
+ value: number,
39
+ lang: string
40
+ ): UI_I_OptionItem[] => {
41
+ const isLangRu = lang === 'ru_RU'
42
+
43
+ const hourText = isLangRu
44
+ ? getCorrectRuForm(value, 'hour')
45
+ : localization.common.hours2
46
+ const dayText = isLangRu
47
+ ? getCorrectRuForm(value, 'day')
48
+ : localization.common.days2
49
+ const weekText = isLangRu
50
+ ? getCorrectRuForm(value, 'week')
51
+ : localization.common.weeks2
52
+ const monthText = isLangRu
53
+ ? getCorrectRuForm(value, 'month')
54
+ : localization.common.months2
55
+
56
+ return [
57
+ {
58
+ text: hourText,
59
+ value: 'hours',
60
+ },
61
+ {
62
+ text: dayText,
63
+ value: 'days',
64
+ },
65
+ {
66
+ text: weekText,
67
+ value: 'weeks',
68
+ },
69
+ {
70
+ text: monthText,
71
+ value: 'months',
72
+ },
73
+ ]
74
+ }
75
+
76
+ export const chartTypeFunc = (
77
+ localization: UI_I_Localization
78
+ ): UI_I_OptionItem[] => [
79
+ {
80
+ text: localization.inventoryMonitor.lineGraph,
81
+ value: 'line_graph',
82
+ },
83
+ {
84
+ text: localization.inventoryMonitor.stackedGraph,
85
+ value: 'stacked_graph',
86
+ },
87
+ ]
88
+
89
+ const getCorrectRuForm = (value: number, type: string): string => {
90
+ // TODO поправить используя correctRuUnit из плагина date
91
+ const forms: UI_I_ArbitraryObject<string[]> = {
92
+ hour: ['Час', 'Часа', 'Часов'],
93
+ day: ['День', 'Дня', 'Дней'],
94
+ week: ['Неделя', 'Недели', 'Недель'],
95
+ month: ['Месяц', 'Месяца', 'Месяцев'],
96
+ }
97
+
98
+ let text: string
99
+
100
+ if (!value) {
101
+ return getCorrectRuForm[type]
102
+ }
103
+
104
+ if (value % 10 === 1 && value % 100 !== 11) {
105
+ text = forms[type][0]
106
+ } else if (
107
+ [2, 3, 4].includes(value % 10) &&
108
+ ![12, 13, 14].includes(value % 100)
109
+ ) {
110
+ text = forms[type][1]
111
+ } else {
112
+ text = forms[type][2]
113
+ }
114
+ getCorrectRuForm[type] = text
115
+ return text
116
+ }
@@ -29,6 +29,10 @@ const emits = defineEmits<{
29
29
  (event: 'select-item', value: UI_I_ContextMenuItem): void
30
30
  (event: 'hide'): void
31
31
  }>()
32
+
33
+ const { $store }: any = useNuxtApp()
34
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
35
+
32
36
  const selectItem = (item: UI_I_ContextMenuItem): void => {
33
37
  emits('select-item', item)
34
38
  }
@@ -38,11 +42,12 @@ const elementId = ref<string>(`context-${useUniqueId()}`)
38
42
  const currentContextMenuY = ref<string>('')
39
43
  const currentContextMenuX = ref<string>('')
40
44
  const setCurrentPositionsPopup = (): void => {
41
- const contextMenuY = props.contextMenu.y
45
+ let contextMenuY = props.contextMenu.y
42
46
  const contextMenuX = props.contextMenu.x
43
47
 
44
- const contextWrap: HTMLElement | null =
45
- document.querySelector(`#${elementId.value} .context-wrap`)
48
+ const contextWrap: HTMLElement | null = document.querySelector(
49
+ `#${elementId.value} .context-wrap`
50
+ )
46
51
  const contextW = contextWrap?.offsetWidth || 0
47
52
  const contextH = contextWrap?.offsetHeight || 0
48
53
 
@@ -52,11 +57,13 @@ const setCurrentPositionsPopup = (): void => {
52
57
  if (contextMenuY + contextH >= windowH) {
53
58
  currentContextMenuY.value = 'auto'
54
59
  } else {
60
+ if (isNewView.value) contextMenuY += 8
55
61
  currentContextMenuY.value = `${contextMenuY}px`
56
62
  }
57
63
 
58
64
  if (contextMenuX + contextW >= windowW) {
59
- const divisionW = windowW - contextW
65
+ let divisionW = windowW - contextW
66
+ if (isNewView.value) divisionW -= 16
60
67
  currentContextMenuX.value = `${divisionW}px`
61
68
  } else {
62
69
  currentContextMenuX.value = `${contextMenuX}px`
@@ -66,6 +73,9 @@ const setCurrentPositionsPopup = (): void => {
66
73
  const windowMousedown = (): void => {
67
74
  emits('hide')
68
75
  }
76
+ const windowResize = (): void => {
77
+ emits('hide')
78
+ }
69
79
  watch(
70
80
  () => props.contextMenu.y,
71
81
  (newValue: number) => {
@@ -73,8 +83,10 @@ watch(
73
83
 
74
84
  if (newValue < 0) {
75
85
  window.removeEventListener('mousedown', windowMousedown)
86
+ window.removeEventListener('resize', windowResize)
76
87
  } else {
77
88
  window.addEventListener('mousedown', windowMousedown)
89
+ window.addEventListener('resize', windowResize)
78
90
  }
79
91
 
80
92
  setTimeout(() => {
@@ -46,7 +46,8 @@ const selectItem = (item: UI_I_ContextMenuItem): void => {
46
46
  }
47
47
 
48
48
  const setElementPosition = (event: I_HTMLLiElement): void => {
49
- const top = event.target.getBoundingClientRect().top
49
+ const top =
50
+ event.target.getBoundingClientRect().top - (isNewView.value ? 8 : 0)
50
51
  const childMenu = event.target.children[1].children[0]
51
52
  childMenu.style.top = `${top}px`
52
53
 
@@ -22,7 +22,7 @@
22
22
  @mousedown="emits('select-item', item)"
23
23
  >
24
24
  <span :class="['context-icon', item.iconClassName]" />
25
- <span class="menu-item-text">{{ item.name }}</span>
25
+ <span class="menu-item-text text-ellipsis">{{ item.name }}</span>
26
26
  <ui-icon v-if="item.items.length" name="arrow" class="arrow-icon" />
27
27
  <span v-if="item.shortcut" class="shortcut">{{ item.shortcut }}</span>
28
28
  </span>
@@ -59,11 +59,43 @@ const emits = defineEmits<{
59
59
  }>()
60
60
  </script>
61
61
 
62
+ <style>
63
+ :root.is-new-view {
64
+ --context-menu-bg-color: #ffffff;
65
+ --context-menu-item-bg-hover-color: rgba(233, 235, 237, 0.4);
66
+ --context-menu-text-color: #4d5d69;
67
+ --context-menu-text-disabled-color: #bdc3c7;
68
+ --context-menu-text-hover-color: #182531;
69
+ --context-menu-border-color: #e9ebed;
70
+
71
+ /*rtl*/
72
+ --context-menu-wrap-transform: none;
73
+ --context-menu-wrap-transform-left: translateX(-100%);
74
+ --context-menu-wrap-left: -12px;
75
+ --context-menu-wrap-right: unset;
76
+ }
77
+ :root.is-new-view.dark-theme {
78
+ --context-menu-bg-color: #334453;
79
+ --context-menu-item-bg-hover-color: rgba(233, 235, 237, 0.06);
80
+ --context-menu-text-color: #e9eaec;
81
+ --context-menu-text-disabled-color: #bdc3c7b8;
82
+ --context-menu-text-hover-color: #ffffff;
83
+ --context-menu-border-color: rgba(233, 235, 237, 0.12);
84
+ }
85
+
86
+ :root.is-new-view[dir='rtl'] {
87
+ --context-menu-wrap-transform: translateX(100%);
88
+ --context-menu-wrap-transform-left: translateX(0);
89
+ --context-menu-wrap-left: unset;
90
+ --context-menu-wrap-right: calc(100% + 12px);
91
+ }
92
+ </style>
62
93
  <style scoped lang="scss">
63
94
  .context-wrap {
64
- width: auto;
65
- max-width: 400px;
66
- min-width: 212px;
95
+ //width: auto;
96
+ //max-width: 400px;
97
+ //min-width: 212px;
98
+ width: 212px;
67
99
  background: var(--context-menu-bg-color);
68
100
  border-radius: 8px;
69
101
  user-select: none;
@@ -71,6 +103,8 @@ const emits = defineEmits<{
71
103
  max-height: 100vh;
72
104
  box-shadow: var(--box-shadow);
73
105
  padding: 8px;
106
+ //overflow-x: hidden;
107
+ //overflow-y: auto;
74
108
 
75
109
  .context-loader {
76
110
  position: absolute;
@@ -108,21 +142,30 @@ const emits = defineEmits<{
108
142
  left: -12px;
109
143
  }
110
144
  :deep(.context-children) {
111
- left: -12px;
145
+ left: var(--context-menu-wrap-left);
146
+ right: var(--context-menu-wrap-right);
112
147
 
113
148
  .context-wrap {
114
- transform: translateX(-100%);
149
+ transform: var(--context-menu-wrap-transform-left);
115
150
  left: auto;
116
151
  }
117
152
  }
118
153
  }
119
154
 
120
- &.has-divider::before {
121
- content: '';
122
- display: block;
123
- height: 0.03rem;
124
- background-color: var(--context-menu-border-color);
125
- margin: 0 8px 8px;
155
+ &.has-divider {
156
+ margin-top: 16px;
157
+
158
+ &::before {
159
+ content: '';
160
+ position: absolute;
161
+ top: -8px;
162
+ left: 0;
163
+ right: 0;
164
+ display: block;
165
+ height: 0.03rem;
166
+ background-color: var(--context-menu-border-color);
167
+ margin: 0 8px 8px;
168
+ }
126
169
  }
127
170
 
128
171
  .context-link {
@@ -134,7 +177,7 @@ const emits = defineEmits<{
134
177
  align-items: center;
135
178
  user-select: none;
136
179
  border-radius: 4px;
137
- padding: 6px 8px;
180
+ padding: 6px 18px 8px 6px;
138
181
 
139
182
  .menu-item-text {
140
183
  flex: 1 1 0;
@@ -186,26 +229,9 @@ const emits = defineEmits<{
186
229
 
187
230
  .context-wrap {
188
231
  position: fixed;
232
+ transform: var(--context-menu-wrap-transform);
189
233
  }
190
234
  }
191
235
  }
192
236
  }
193
237
  </style>
194
- <style>
195
- :root.is-new-view {
196
- --context-menu-bg-color: #ffffff;
197
- --context-menu-item-bg-hover-color: rgba(233, 235, 237, 0.4);
198
- --context-menu-text-color: #4d5d69;
199
- --context-menu-text-disabled-color: #bdc3c7;
200
- --context-menu-text-hover-color: #182531;
201
- --context-menu-border-color: #e9ebed;
202
- }
203
- :root.is-new-view.dark-theme {
204
- --context-menu-bg-color: #334453;
205
- --context-menu-item-bg-hover-color: rgba(233, 235, 237, 0.06);
206
- --context-menu-text-color: #e9eaec;
207
- --context-menu-text-disabled-color: #bdc3c7b8;
208
- --context-menu-text-hover-color: #ffffff;
209
- --context-menu-border-color: rgba(233, 235, 237, 0.12);
210
- }
211
- </style>
@@ -64,6 +64,35 @@ const emits = defineEmits<{
64
64
  }>()
65
65
  </script>
66
66
 
67
+ <style>
68
+ :root {
69
+ --context-menu-hover-bg-color: #e8e8e8;
70
+ --context-menu-border-color: #949494;
71
+ --context-menu-inset-border-color: #d4d5d6;
72
+ --context-menu-item-header-color: #eceff2;
73
+ --context-menu-hover-border-color: #666;
74
+
75
+ /*rtl*/
76
+ --context-menu-wrap-transform: none;
77
+ --context-menu-wrap-transform-left: translateX(-100%);
78
+ --context-menu-wrap-left: 0;
79
+ --context-menu-wrap-right: unset;
80
+ }
81
+ :root.dark-theme {
82
+ --context-menu-hover-bg-color: #324f61;
83
+ --context-menu-border-color: #495865;
84
+ --context-menu-inset-border-color: #485764;
85
+ --context-menu-item-header-color: #29414e;
86
+ --context-menu-hover-border-color: #fff;
87
+ }
88
+
89
+ :root[dir='rtl'] {
90
+ --context-menu-wrap-transform: translateX(100%);
91
+ --context-menu-wrap-transform-left: translateX(0);
92
+ --context-menu-wrap-left: unset;
93
+ --context-menu-wrap-right: 100%;
94
+ }
95
+ </style>
67
96
  <style scoped lang="scss">
68
97
  .loader-wrapper {
69
98
  width: 100%;
@@ -120,11 +149,11 @@ const emits = defineEmits<{
120
149
  }
121
150
  &.left {
122
151
  :deep(.context-children) {
123
- left: 0;
124
- background: red;
152
+ left: var(--context-menu-wrap-left);
153
+ right: var(--context-menu-wrap-right);
125
154
 
126
155
  .context-wrap {
127
- transform: translateX(-100%);
156
+ transform: var(--context-menu-wrap-transform-left);
128
157
  left: auto;
129
158
  }
130
159
  }
@@ -181,6 +210,7 @@ const emits = defineEmits<{
181
210
 
182
211
  .context-wrap {
183
212
  position: fixed;
213
+ transform: var(--context-menu-wrap-transform);
184
214
  }
185
215
  }
186
216
  }
@@ -195,19 +225,3 @@ const emits = defineEmits<{
195
225
  }
196
226
  }
197
227
  </style>
198
- <style>
199
- :root {
200
- --context-menu-hover-bg-color: #e8e8e8;
201
- --context-menu-border-color: #949494;
202
- --context-menu-inset-border-color: #d4d5d6;
203
- --context-menu-item-header-color: #eceff2;
204
- --context-menu-hover-border-color: #666;
205
- }
206
- :root.dark-theme {
207
- --context-menu-hover-bg-color: #324f61;
208
- --context-menu-border-color: #495865;
209
- --context-menu-inset-border-color: #485764;
210
- --context-menu-item-header-color: #29414e;
211
- --context-menu-hover-border-color: #fff;
212
- }
213
- </style>