bfg-common 1.2.108 → 1.2.110

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 (89) hide show
  1. package/assets/localization/local_be.json +5 -1
  2. package/assets/localization/local_en.json +5 -1
  3. package/assets/localization/local_hy.json +5 -1
  4. package/assets/localization/local_kk.json +5 -1
  5. package/assets/localization/local_ru.json +5 -1
  6. package/assets/localization/local_zh.json +5 -1
  7. package/components/atoms/modal/Modal.vue +6 -0
  8. package/components/atoms/modal/bySteps/BySteps.vue +1 -1
  9. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +2 -2
  10. package/components/atoms/step/VerticalStep.vue +1 -1
  11. package/components/atoms/switch/Switch.vue +107 -107
  12. package/components/atoms/tabs/VerticalTabs.vue +6 -0
  13. package/components/common/BadBrowser.vue +114 -114
  14. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  15. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  16. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  17. package/components/common/browse/blocks/Title.vue +66 -66
  18. package/components/common/diagramMain/DiagramMain.vue +3 -0
  19. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +183 -72
  20. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +1 -1
  21. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  22. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  23. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  24. package/components/common/feedback/Feedback.vue +261 -261
  25. package/components/common/feedback/VisitPortal.vue +53 -53
  26. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  27. package/components/common/monitor/advanced/tools/Tools.vue +428 -428
  28. package/components/common/recursionTree/RecursionTree.vue +201 -201
  29. package/components/common/vm/actions/clone/Clone.vue +545 -545
  30. package/components/common/vm/actions/clone/select/options/Options.vue +65 -65
  31. package/components/common/vm/actions/clone/utils.ts +43 -43
  32. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CoresPerSocket.vue +109 -109
  33. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +383 -383
  34. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +234 -234
  35. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/config/options.ts +28 -28
  36. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +316 -316
  37. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +35 -35
  38. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +446 -446
  39. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +235 -235
  40. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +177 -177
  41. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +197 -197
  42. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +181 -181
  43. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/CopyPaste.vue +51 -51
  44. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +253 -253
  45. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +55 -55
  46. package/components/common/vm/actions/common/select/storage/Storage.vue +194 -194
  47. package/components/common/vm/actions/common/select/storage/config/config.ts +154 -154
  48. package/components/common/wizards/datastore/add/config/stepItems.ts +3 -3
  49. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  50. package/components/common/wizards/vm/common/Tooltip.vue +74 -0
  51. package/components/common/wizards/vm/common/readyComplete/ReadyComplete.vue +15 -0
  52. package/components/common/wizards/vm/migrate/Migrate.vue +204 -0
  53. package/components/common/wizards/vm/migrate/config/constructDataReady.ts +82 -0
  54. package/components/common/wizards/vm/migrate/contentHeading/ContentHeading.vue +31 -0
  55. package/components/common/wizards/vm/migrate/models/enums.ts +6 -0
  56. package/components/common/wizards/vm/migrate/models/interfaces.ts +13 -0
  57. package/components/common/wizards/vm/migrate/models/types.ts +5 -0
  58. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +136 -0
  59. package/components/common/wizards/vm/migrate/select/storage/config/tabsPannel.ts +18 -0
  60. package/components/common/wizards/vm/migrate/select/storage/configure/batch/Batch.vue +61 -0
  61. package/components/common/wizards/vm/migrate/select/storage/configure/disk/Disk.vue +73 -0
  62. package/components/common/wizards/vm/migrate/select/storage/diskFormat/DiskFormat.vue +68 -0
  63. package/components/common/wizards/vm/migrate/select/storage/diskFormat/config/formatOptions.ts +22 -0
  64. package/components/common/wizards/vm/migrate/select/storage/models/interfaces.ts +14 -0
  65. package/components/common/wizards/vm/migrate/select/storage/models/types.ts +3 -0
  66. package/components/common/wizards/vm/migrate/select/storage/policy/Policy.vue +83 -0
  67. package/components/common/wizards/vm/migrate/select/storage/selectedPerDisk/SelectedPerDisk.vue +84 -0
  68. package/components/common/wizards/vm/migrate/select/storage/table/datastore/Datastore.vue +105 -0
  69. package/components/common/wizards/vm/migrate/select/storage/table/datastore/config/config.ts +154 -0
  70. package/components/common/wizards/vm/migrate/select/storage/table/datastore/models/types.ts +15 -0
  71. package/components/common/wizards/vm/migrate/select/storage/table/disk/Disk.vue +73 -0
  72. package/components/common/wizards/vm/migrate/select/storage/table/disk/config/config.ts +102 -0
  73. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/interfaces.ts +9 -0
  74. package/components/common/wizards/vm/migrate/select/storage/table/disk/models/types.ts +9 -0
  75. package/components/common/wizards/vm/migrate/select/type/Type.vue +38 -0
  76. package/components/common/wizards/vm/migrate/select/type/config/typeOptions.ts +41 -0
  77. package/components/common/wizards/vm/migrate/select/type/models/interfaces.ts +5 -0
  78. package/components/common/wizards/vm/migrate/utils.ts +125 -0
  79. package/composables/useLocal.ts +38 -38
  80. package/minify.js +146 -146
  81. package/models/store/interfaces.ts +37 -37
  82. package/models/store/storage/interfaces.ts +32 -32
  83. package/models/store/types.ts +32 -32
  84. package/modules/fixContentBuild/utils/methods.ts +114 -114
  85. package/package.json +1 -1
  86. package/public/spice-console/application/codec.js +257 -257
  87. package/public/spice-console/lib/rasterEngine.js +907 -907
  88. package/public/spice-console/network/spicechannel.js +369 -369
  89. package/utils/contentBuild.ts +34 -34
@@ -1,201 +1,201 @@
1
- <template>
2
- <div class="recursion-tree">
3
- <div v-for="node in nodes" :key="`${node.type}_${node.id}`">
4
- <div
5
- :id="`tree-node-${node.type}-${node.id}`"
6
- class="clr-tree-node"
7
- @click="selectNode(node)"
8
- >
9
- <button
10
- v-if="node.hasNodes"
11
- :id="`tree-node-${node.type}-${node.id}-toggle-button`"
12
- class="clr-treenode-caret"
13
- @click.stop="getNodes({ node })"
14
- >
15
- <i
16
- v-if="loading[`${node.id}_${node.type}`]"
17
- class="fa clr-tree-node-caret-icon spinner spinner-sm"
18
- />
19
- <atoms-the-icon
20
- v-else
21
- :class="['clr-tree-node-caret-icon', { down: node.nodesShow }]"
22
- name="angle"
23
- />
24
- </button>
25
- <div
26
- :class="[
27
- 'tree-node-text-drag',
28
- { 'no-child': !node.hasNodes, 'dark-mode': hasDarkMode },
29
- ]"
30
- @contextmenu="showContextMenuAndSelectNode($event, node)"
31
- >
32
- <div
33
- :class="[
34
- 'clr-treenode-link tree-node-text',
35
- { active: node.isActive },
36
- ]"
37
- >
38
- <span :class="node.iconClassName" />
39
- {{ node.name }}
40
- </div>
41
- </div>
42
- </div>
43
-
44
- <common-recursion-tree
45
- v-if="node.nodesShow && node.nodes.length"
46
- :nodes="node.nodes"
47
- :style="{ 'padding-left': node.nodesShow ? '20px' : '' }"
48
- @get-nodes="getNodes($event)"
49
- @select-node="selectNode($event)"
50
- @contextmenu.prevent
51
- @show-context-menu="showContextMenu"
52
- />
53
- </div>
54
- </div>
55
- </template>
56
-
57
- <script setup lang="ts">
58
- import { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
59
-
60
- const { $store } = useNuxtApp()
61
-
62
- interface UI_I_Loading {
63
- [key: string]: boolean
64
- }
65
-
66
- const props = defineProps<{
67
- nodes: UI_I_TreeNode[]
68
- }>()
69
- const emits = defineEmits<{
70
- (event: 'get-nodes', value: any): void
71
- (event: 'select-node', value: UI_I_TreeNode): void
72
- (event: 'show-context-menu', value: any): void
73
- }>()
74
-
75
- const loading = ref<UI_I_Loading>({})
76
- watch(props.nodes, (nodes) => {
77
- nodes.forEach((node) => {
78
- loading.value[`${node.id}_${node.type}`] = false
79
- })
80
- })
81
-
82
- const hasDarkMode = computed<boolean>(
83
- () => $store.getters['main/getInterfaceThemeMode'] === 'DARK'
84
- )
85
-
86
- const getNodes = (data: any): void => {
87
- const node: UI_I_TreeNode = data.node
88
- const cb: Function | undefined = data.cb
89
-
90
- loading.value[`${node.id}_${node.type}`] = true
91
- const collBack = () => {
92
- loading.value[`${node.id}_${node.type}`] = false
93
- }
94
- emits('get-nodes', {
95
- node,
96
- cb: cb || collBack,
97
- })
98
- }
99
- const selectNode = (node: UI_I_TreeNode): void => {
100
- emits('select-node', node)
101
- }
102
- const showContextMenu = (event: any, node: UI_I_TreeNode): void => {
103
- // Если данные приходят от потомка, то нужно так обработать, из-за рекурсии
104
- if (event.node && event.event) {
105
- emits('show-context-menu', { ...event })
106
- return
107
- }
108
- emits('show-context-menu', { event, node })
109
- }
110
- const showContextMenuAndSelectNode = (
111
- event: any,
112
- node: UI_I_TreeNode
113
- ): void => {
114
- selectNode(node)
115
-
116
- showContextMenu(event, node)
117
- }
118
- </script>
119
-
120
- <style scoped lang="scss">
121
- .recursion-tree {
122
- .clr-tree-node {
123
- width: 100%;
124
- overflow: hidden;
125
- display: flex;
126
- flex: 1 1 0;
127
- align-items: center;
128
- margin-bottom: 1px;
129
-
130
- .clr-treenode-caret {
131
- outline: none;
132
-
133
- .clr-tree-node-caret-icon {
134
- position: static;
135
- transform: rotate(90deg);
136
- width: 11px;
137
- height: 11px;
138
- fill: var(--tree-node-caret-icon);
139
-
140
- &.down {
141
- transform: rotate(180deg);
142
- }
143
- }
144
- }
145
- .tree-node-text-drag {
146
- width: 100%;
147
- overflow: hidden;
148
- display: flex;
149
- cursor: grab;
150
-
151
- &.no-child {
152
- margin-left: 30px;
153
- }
154
- .tree-node-text {
155
- width: 100%;
156
- box-sizing: border-box;
157
- text-overflow: ellipsis;
158
- overflow: hidden;
159
- white-space: nowrap;
160
- padding: 0;
161
- border-radius: 0;
162
- border-bottom: 1px solid transparent;
163
-
164
- &.active {
165
- background: var(--vertical-nav-active-bg-color);
166
- color: var(--vertical-nav-active-item-color);
167
- border-bottom: 1px solid transparent;
168
- }
169
- &:hover {
170
- border-color: var(--vertical-nav-hover-border-color);
171
- &:not(.active) {
172
- background: var(--vertical-nav-hover-bg-color);
173
- }
174
- }
175
- span {
176
- display: inline-block;
177
- vertical-align: text-bottom;
178
- margin: 1px 4px 0;
179
- }
180
- }
181
- }
182
- }
183
- }
184
- </style>
185
-
186
- <style>
187
- :root {
188
- --vertical-nav-active-item-color: #fff;
189
- --vertical-nav-active-bg-color: #29414e;
190
- --vertical-nav-hover-bg-color: #e8e8e8;
191
- --vertical-nav-hover-border-color: #666;
192
- --tree-node-caret-icon: #666;
193
- }
194
- :root.dark-theme {
195
- --vertical-nav-active-item-color: #000;
196
- --vertical-nav-active-bg-color: #d8e3e9;
197
- --vertical-nav-hover-bg-color: #324f61;
198
- --vertical-nav-hover-border-color: #fff;
199
- --tree-node-caret-icon: #acbac3;
200
- }
201
- </style>
1
+ <template>
2
+ <div class="recursion-tree">
3
+ <div v-for="node in nodes" :key="`${node.type}_${node.id}`">
4
+ <div
5
+ :id="`tree-node-${node.type}-${node.id}`"
6
+ class="clr-tree-node"
7
+ @click="selectNode(node)"
8
+ >
9
+ <button
10
+ v-if="node.hasNodes"
11
+ :id="`tree-node-${node.type}-${node.id}-toggle-button`"
12
+ class="clr-treenode-caret"
13
+ @click.stop="getNodes({ node })"
14
+ >
15
+ <i
16
+ v-if="loading[`${node.id}_${node.type}`]"
17
+ class="fa clr-tree-node-caret-icon spinner spinner-sm"
18
+ />
19
+ <atoms-the-icon
20
+ v-else
21
+ :class="['clr-tree-node-caret-icon', { down: node.nodesShow }]"
22
+ name="angle"
23
+ />
24
+ </button>
25
+ <div
26
+ :class="[
27
+ 'tree-node-text-drag',
28
+ { 'no-child': !node.hasNodes, 'dark-mode': hasDarkMode },
29
+ ]"
30
+ @contextmenu="showContextMenuAndSelectNode($event, node)"
31
+ >
32
+ <div
33
+ :class="[
34
+ 'clr-treenode-link tree-node-text',
35
+ { active: node.isActive },
36
+ ]"
37
+ >
38
+ <span :class="node.iconClassName" />
39
+ {{ node.name }}
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ <common-recursion-tree
45
+ v-if="node.nodesShow && node.nodes.length"
46
+ :nodes="node.nodes"
47
+ :style="{ 'padding-left': node.nodesShow ? '20px' : '' }"
48
+ @get-nodes="getNodes($event)"
49
+ @select-node="selectNode($event)"
50
+ @contextmenu.prevent
51
+ @show-context-menu="showContextMenu"
52
+ />
53
+ </div>
54
+ </div>
55
+ </template>
56
+
57
+ <script setup lang="ts">
58
+ import { UI_I_TreeNode } from '~/components/common/recursionTree/models/interfaces'
59
+
60
+ const { $store } = useNuxtApp()
61
+
62
+ interface UI_I_Loading {
63
+ [key: string]: boolean
64
+ }
65
+
66
+ const props = defineProps<{
67
+ nodes: UI_I_TreeNode[]
68
+ }>()
69
+ const emits = defineEmits<{
70
+ (event: 'get-nodes', value: any): void
71
+ (event: 'select-node', value: UI_I_TreeNode): void
72
+ (event: 'show-context-menu', value: any): void
73
+ }>()
74
+
75
+ const loading = ref<UI_I_Loading>({})
76
+ watch(props.nodes, (nodes) => {
77
+ nodes.forEach((node) => {
78
+ loading.value[`${node.id}_${node.type}`] = false
79
+ })
80
+ })
81
+
82
+ const hasDarkMode = computed<boolean>(
83
+ () => $store.getters['main/getInterfaceThemeMode'] === 'DARK'
84
+ )
85
+
86
+ const getNodes = (data: any): void => {
87
+ const node: UI_I_TreeNode = data.node
88
+ const cb: Function | undefined = data.cb
89
+
90
+ loading.value[`${node.id}_${node.type}`] = true
91
+ const collBack = () => {
92
+ loading.value[`${node.id}_${node.type}`] = false
93
+ }
94
+ emits('get-nodes', {
95
+ node,
96
+ cb: cb || collBack,
97
+ })
98
+ }
99
+ const selectNode = (node: UI_I_TreeNode): void => {
100
+ emits('select-node', node)
101
+ }
102
+ const showContextMenu = (event: any, node: UI_I_TreeNode): void => {
103
+ // Если данные приходят от потомка, то нужно так обработать, из-за рекурсии
104
+ if (event.node && event.event) {
105
+ emits('show-context-menu', { ...event })
106
+ return
107
+ }
108
+ emits('show-context-menu', { event, node })
109
+ }
110
+ const showContextMenuAndSelectNode = (
111
+ event: any,
112
+ node: UI_I_TreeNode
113
+ ): void => {
114
+ selectNode(node)
115
+
116
+ showContextMenu(event, node)
117
+ }
118
+ </script>
119
+
120
+ <style scoped lang="scss">
121
+ .recursion-tree {
122
+ .clr-tree-node {
123
+ width: 100%;
124
+ overflow: hidden;
125
+ display: flex;
126
+ flex: 1 1 0;
127
+ align-items: center;
128
+ margin-bottom: 1px;
129
+
130
+ .clr-treenode-caret {
131
+ outline: none;
132
+
133
+ .clr-tree-node-caret-icon {
134
+ position: static;
135
+ transform: rotate(90deg);
136
+ width: 11px;
137
+ height: 11px;
138
+ fill: var(--tree-node-caret-icon);
139
+
140
+ &.down {
141
+ transform: rotate(180deg);
142
+ }
143
+ }
144
+ }
145
+ .tree-node-text-drag {
146
+ width: 100%;
147
+ overflow: hidden;
148
+ display: flex;
149
+ cursor: grab;
150
+
151
+ &.no-child {
152
+ margin-left: 30px;
153
+ }
154
+ .tree-node-text {
155
+ width: 100%;
156
+ box-sizing: border-box;
157
+ text-overflow: ellipsis;
158
+ overflow: hidden;
159
+ white-space: nowrap;
160
+ padding: 0;
161
+ border-radius: 0;
162
+ border-bottom: 1px solid transparent;
163
+
164
+ &.active {
165
+ background: var(--vertical-nav-active-bg-color);
166
+ color: var(--vertical-nav-active-item-color);
167
+ border-bottom: 1px solid transparent;
168
+ }
169
+ &:hover {
170
+ border-color: var(--vertical-nav-hover-border-color);
171
+ &:not(.active) {
172
+ background: var(--vertical-nav-hover-bg-color);
173
+ }
174
+ }
175
+ span {
176
+ display: inline-block;
177
+ vertical-align: text-bottom;
178
+ margin: 1px 4px 0;
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ </style>
185
+
186
+ <style>
187
+ :root {
188
+ --vertical-nav-active-item-color: #fff;
189
+ --vertical-nav-active-bg-color: #29414e;
190
+ --vertical-nav-hover-bg-color: #e8e8e8;
191
+ --vertical-nav-hover-border-color: #666;
192
+ --tree-node-caret-icon: #666;
193
+ }
194
+ :root.dark-theme {
195
+ --vertical-nav-active-item-color: #000;
196
+ --vertical-nav-active-bg-color: #d8e3e9;
197
+ --vertical-nav-hover-bg-color: #324f61;
198
+ --vertical-nav-hover-border-color: #fff;
199
+ --tree-node-caret-icon: #acbac3;
200
+ }
201
+ </style>