bfg-common 1.5.723 → 1.5.724

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 (119) 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/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/console/Console.vue +70 -70
  18. package/components/common/layout/theHeader/{TheHeaderNew.vue → New.vue} +2 -5
  19. package/components/common/layout/theHeader/TheHeader.vue +10 -33
  20. package/components/common/layout/theHeader/ThemeSwitch.vue +8 -18
  21. package/components/common/layout/theHeader/helpMenu/HelpMenu.vue +6 -8
  22. package/components/common/layout/theHeader/helpMenu/{About.vue → about/About.vue} +69 -79
  23. package/components/common/layout/theHeader/helpMenu/{aboutNew/AboutNew.vue → about/New.vue} +4 -4
  24. package/components/common/layout/theHeader/helpMenu/about/Old.vue +78 -0
  25. package/components/common/layout/theHeader/helpMenu/{helpMenuNew/HelpMenuNew.vue → new/New.vue} +1 -1
  26. package/components/common/layout/theHeader/helpMenu/{helpMenuNew → new}/lib/config/dropMenu.ts +1 -1
  27. package/components/common/layout/theHeader/helpMenu/{helpMenuOld/HelpMenuOld.vue → old/Old.vue} +2 -2
  28. package/components/common/layout/theHeader/helpMenu/{helpMenuOld → old}/lib/config/dropMenu.ts +1 -1
  29. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +8 -10
  30. package/components/common/layout/theHeader/userMenu/UserMenu.vue +8 -7
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/{PreferencesOld.vue → Old.vue} +0 -2
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +9 -21
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  34. package/components/common/layout/theHeader/userMenu/{userMenuNew/UserMenuNew.vue → new/New.vue} +1 -1
  35. package/components/common/layout/theHeader/userMenu/{userMenuOld/UserMenuOld.vue → old/Old.vue} +2 -2
  36. package/components/common/layout/theHeader/userMenu/{userMenuOld → old}/lib/config/dropMenu.ts +1 -1
  37. package/components/common/pages/backups/DetailView.vue +52 -52
  38. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  39. package/components/common/pages/backups/modals/Modals.vue +243 -243
  40. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  41. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  42. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  43. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  44. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +84 -84
  45. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +113 -113
  46. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  47. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  48. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  49. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  50. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  51. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  52. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  53. package/components/common/pages/tasks/Tasks.vue +125 -125
  54. package/components/common/pages/tasks/table/Table.vue +373 -373
  55. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  56. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  57. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  58. package/components/common/select/radio/RadioGroup.vue +137 -137
  59. package/components/common/spiceConsole/Drawer.vue +420 -420
  60. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  61. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  62. package/components/common/tools/Actions.vue +207 -207
  63. package/components/common/treeView/TreeView.vue +52 -52
  64. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  65. package/components/common/vm/actions/clone/new/New.vue +438 -438
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  68. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  69. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  70. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  71. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  72. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  73. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  74. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  75. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  76. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  77. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  78. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  79. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  80. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  81. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  82. package/components/common/wizards/common/steps/name/New.vue +221 -221
  83. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  84. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  85. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  86. package/components/common/wizards/datastore/add/Add.vue +228 -228
  87. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  88. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  89. package/composables/useAppVersion.ts +21 -21
  90. package/composables/useBrowse.ts +24 -24
  91. package/composables/useLocal.ts +6 -6
  92. package/composables/useLocalCommon.ts +39 -39
  93. package/lib/models/types.ts +59 -59
  94. package/package.json +1 -1
  95. package/plugins/console.ts +21 -21
  96. package/plugins/mouse.ts +21 -21
  97. package/plugins/panelStates.ts +70 -70
  98. package/plugins/text.ts +59 -59
  99. package/public/spice-console/application/clientgui.js +854 -854
  100. package/public/spice-console/application/packetfactory.js +211 -211
  101. package/public/spice-console/application/virtualmouse.js +147 -147
  102. package/public/spice-console/lib/images/bitmap.js +203 -203
  103. package/public/spice-console/network/spicechannel.js +440 -440
  104. package/public/spice-console/process/cursorprocess.js +128 -128
  105. package/public/spice-console/process/inputprocess.js +227 -227
  106. package/public/spice-console/process/mainprocess.js +212 -212
  107. package/public/spice-console/run.js +210 -210
  108. package/store/main/mutations.ts +7 -7
  109. package/store/main/state.ts +7 -7
  110. package/store/tasks/mappers/recentTasks.ts +123 -123
  111. package/store/tasks/mutations.ts +82 -82
  112. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +0 -79
  113. /package/components/common/layout/theHeader/{TheHeaderOld.vue → Old.vue} +0 -0
  114. /package/components/common/layout/theHeader/helpMenu/{helpMenuOld → old}/lib/models/types.ts +0 -0
  115. /package/components/common/layout/theHeader/modals/reconnect/{ReconnectNew.vue → New.vue} +0 -0
  116. /package/components/common/layout/theHeader/modals/reconnect/{ReconnectOld.vue → Old.vue} +0 -0
  117. /package/components/common/layout/theHeader/userMenu/modals/preferences/{PreferencesNew.vue → New.vue} +0 -0
  118. /package/components/common/layout/theHeader/userMenu/{userMenuNew → new}/lib/config/dropMenu.ts +0 -0
  119. /package/components/common/layout/theHeader/userMenu/{userMenuOld → old}/lib/models/types.ts +0 -0
@@ -1,50 +1,50 @@
1
- <template>
2
- <div class="select-template">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- :items="props.errors"
6
- status="alert-danger"
7
- test-id="template-alert"
8
- @remove="emits('remove')"
9
- />
10
-
11
- <p class="template-description">
12
- {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
- </p>
14
- <div class="tree-view-wrap">
15
- <common-vm-actions-common-select-template-tree-view
16
- :templates-tree="props.templatesTree"
17
- @select-node="emits('select', $event)"
18
- />
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import type { UI_I_Localization } from '~/lib/models/interfaces'
25
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
-
27
- const props = defineProps<{
28
- templatesTree: UI_I_TreeNode[]
29
- errors: string[]
30
- }>()
31
-
32
- const emits = defineEmits<{
33
- (event: 'remove'): void
34
- (event: 'select', value: UI_I_TreeNode): void
35
- }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
- </script>
39
-
40
- <style scoped lang="scss">
41
- .tree-view-wrap {
42
- position: relative;
43
- border: 1px solid #000;
44
- padding: 5px;
45
- max-height: 300px;
46
- min-height: 200px;
47
- overflow: auto;
48
- margin-bottom: 10px;
49
- }
50
- </style>
1
+ <template>
2
+ <div class="select-template">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ :items="props.errors"
6
+ status="alert-danger"
7
+ test-id="template-alert"
8
+ @remove="emits('remove')"
9
+ />
10
+
11
+ <p class="template-description">
12
+ {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
+ </p>
14
+ <div class="tree-view-wrap">
15
+ <common-vm-actions-common-select-template-tree-view
16
+ :templates-tree="props.templatesTree"
17
+ @select-node="emits('select', $event)"
18
+ />
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
+
27
+ const props = defineProps<{
28
+ templatesTree: UI_I_TreeNode[]
29
+ errors: string[]
30
+ }>()
31
+
32
+ const emits = defineEmits<{
33
+ (event: 'remove'): void
34
+ (event: 'select', value: UI_I_TreeNode): void
35
+ }>()
36
+
37
+ const localization = computed<UI_I_Localization>(() => useLocal())
38
+ </script>
39
+
40
+ <style scoped lang="scss">
41
+ .tree-view-wrap {
42
+ position: relative;
43
+ border: 1px solid #000;
44
+ padding: 5px;
45
+ max-height: 300px;
46
+ min-height: 200px;
47
+ overflow: auto;
48
+ margin-bottom: 10px;
49
+ }
50
+ </style>
@@ -1,88 +1,88 @@
1
- <template>
2
- <div class="skeleton-wrap">
3
- <div class="tabs">
4
- <ui-skeleton-item width="64px" height="16px" />
5
- <ui-skeleton-item width="64px" height="16px" />
6
- </div>
7
- <div class="actions">
8
- <ui-skeleton-item width="80px" height="16px" />
9
- <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
- </div>
11
- <div class="stack-block-wrap">
12
- <div class="stack-block">
13
- <div class="stack-label flex-1">
14
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
- <ui-skeleton-item height="16px" />
16
- </div>
17
- <div class="stack-value flex-1">
18
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
- </div>
20
- </div>
21
-
22
- <div v-for="item in 2" :key="item" class="stack-block">
23
- <div class="stack-label flex-1">
24
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
- <ui-skeleton-item height="16px" />
26
- </div>
27
- <div class="stack-value flex-1">
28
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
- <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
- </div>
31
- </div>
32
-
33
- <div v-for="item in 5" :key="item" class="stack-block">
34
- <div class="stack-label flex-1">
35
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
- <ui-skeleton-item height="16px" />
37
- </div>
38
- <div class="stack-value flex-1">
39
- <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script setup lang="ts"></script>
47
-
48
- <style scoped lang="scss">
49
- .skeleton-wrap {
50
- padding: 0 32px;
51
-
52
- .tabs {
53
- display: flex;
54
- align-items: center;
55
- gap: 32px;
56
- padding: 8px 0 12px;
57
- border-bottom: 1px solid var(--divider-color);
58
- }
59
-
60
- .actions {
61
- display: flex;
62
- align-items: center;
63
- justify-content: space-between;
64
- margin: 12px 0;
65
- }
66
-
67
- .stack-block-wrap {
68
- display: grid;
69
- grid-gap: 12px;
70
-
71
- .stack-block {
72
- display: flex;
73
- align-items: center;
74
- gap: 12px;
75
- padding: 8px 12px;
76
- background: var(--stack-block-bg-color);
77
- border-radius: 6px;
78
-
79
- .stack-label,
80
- .stack-value {
81
- display: flex;
82
- align-items: center;
83
- gap: 8px;
84
- }
85
- }
86
- }
87
- }
88
- </style>
1
+ <template>
2
+ <div class="skeleton-wrap">
3
+ <div class="tabs">
4
+ <ui-skeleton-item width="64px" height="16px" />
5
+ <ui-skeleton-item width="64px" height="16px" />
6
+ </div>
7
+ <div class="actions">
8
+ <ui-skeleton-item width="80px" height="16px" />
9
+ <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
+ </div>
11
+ <div class="stack-block-wrap">
12
+ <div class="stack-block">
13
+ <div class="stack-label flex-1">
14
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
+ <ui-skeleton-item height="16px" />
16
+ </div>
17
+ <div class="stack-value flex-1">
18
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
+ </div>
20
+ </div>
21
+
22
+ <div v-for="item in 2" :key="item" class="stack-block">
23
+ <div class="stack-label flex-1">
24
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
+ <ui-skeleton-item height="16px" />
26
+ </div>
27
+ <div class="stack-value flex-1">
28
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
+ <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
+ </div>
31
+ </div>
32
+
33
+ <div v-for="item in 5" :key="item" class="stack-block">
34
+ <div class="stack-label flex-1">
35
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
+ <ui-skeleton-item height="16px" />
37
+ </div>
38
+ <div class="stack-value flex-1">
39
+ <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts"></script>
47
+
48
+ <style scoped lang="scss">
49
+ .skeleton-wrap {
50
+ padding: 0 32px;
51
+
52
+ .tabs {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 32px;
56
+ padding: 8px 0 12px;
57
+ border-bottom: 1px solid var(--divider-color);
58
+ }
59
+
60
+ .actions {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ margin: 12px 0;
65
+ }
66
+
67
+ .stack-block-wrap {
68
+ display: grid;
69
+ grid-gap: 12px;
70
+
71
+ .stack-block {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 12px;
75
+ padding: 8px 12px;
76
+ background: var(--stack-block-bg-color);
77
+ border-radius: 6px;
78
+
79
+ .stack-label,
80
+ .stack-value {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 8px;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ </style>
@@ -1,35 +1,35 @@
1
- <template>
2
- <common-wizards-common-compatibility-new
3
- v-if="isNewView"
4
- :status="props.status"
5
- :text="props.text"
6
- :loading="props.loading"
7
- />
8
- <common-wizards-common-compatibility-old
9
- v-else
10
- :status="props.status"
11
- :text="props.text"
12
- />
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import type {
17
- UI_T_CompatibilityStatus
18
- } from "~/components/common/wizards/common/compatibility/lib/models/types";
19
-
20
- const props = withDefaults(
21
- defineProps<{
22
- text: string
23
- status: UI_T_CompatibilityStatus
24
- loading?: boolean
25
- }>(),
26
- {
27
- loading: false,
28
- }
29
- )
30
-
31
- const { $store }: any = useNuxtApp()
32
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
- </script>
34
-
35
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-wizards-common-compatibility-new
3
+ v-if="isNewView"
4
+ :status="props.status"
5
+ :text="props.text"
6
+ :loading="props.loading"
7
+ />
8
+ <common-wizards-common-compatibility-old
9
+ v-else
10
+ :status="props.status"
11
+ :text="props.text"
12
+ />
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ import type {
17
+ UI_T_CompatibilityStatus
18
+ } from "~/components/common/wizards/common/compatibility/lib/models/types";
19
+
20
+ const props = withDefaults(
21
+ defineProps<{
22
+ text: string
23
+ status: UI_T_CompatibilityStatus
24
+ loading?: boolean
25
+ }>(),
26
+ {
27
+ loading: false,
28
+ }
29
+ )
30
+
31
+ const { $store }: any = useNuxtApp()
32
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
+ </script>
34
+
35
+ <style lang="scss" scoped></style>
@@ -1,93 +1,93 @@
1
- <template>
2
- <div class="compute-resource">
3
- <div class="compute-resource__container-tree">
4
- <ui-tree
5
- :nodes="props.nodes"
6
- :expand-all="false"
7
- :is-loading="props.isLoading"
8
- class="compute-resource__tree"
9
- @toggle-node="onShowNodes"
10
- @select-node="onSelectNode"
11
- >
12
- <template #content="{ node }">
13
- <div class="flex-align-center">
14
- <span :class="['node-icon', node.iconClassName]"></span>
15
- <span class="node-name text-ellipsis">{{ node.name }}</span>
16
- </div>
17
- </template>
18
- </ui-tree>
19
- </div>
20
-
21
- <common-wizards-common-compatibility
22
- :loading="props.isLoading"
23
- :status="props.compatibility[0]"
24
- :text="props.compatibility[1]"
25
- />
26
- </div>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
31
- import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
32
-
33
- const props = withDefaults(
34
- defineProps<{
35
- nodes: UI_I_TreeNode[]
36
- compatibility: [UI_T_CompatibilityStatus, string]
37
- isLoading?: boolean
38
- }>(),
39
- {
40
- isLoading: false,
41
- }
42
- )
43
- const emits = defineEmits<{
44
- (event: 'select-node', value: UI_I_TreeNode): void
45
- (event: 'show-nodes', value: UI_I_TreeNode): void
46
- }>()
47
-
48
- const onShowNodes = (node: UI_I_TreeNode): void => emits('show-nodes', node)
49
- const onSelectNode = (node: UI_I_TreeNode): void => emits('select-node', node)
50
- </script>
51
-
52
- <style scoped lang="scss">
53
- @import 'assets/scss/common/mixins.scss';
54
- .compute-resource {
55
- &__container-tree {
56
- height: 240px;
57
- background: var(--input-bg);
58
- border: 1px solid var(--line-color);
59
- border-radius: 8px;
60
- overflow: hidden;
61
-
62
- :deep(.compute-resource__tree) {
63
- .node-icon {
64
- margin-right: 8px;
65
- }
66
- .node-name {
67
- font-size: 12px;
68
- }
69
- .tree-content {
70
- padding: 8px 8px 0;
71
-
72
- &::-webkit-scrollbar-thumb {
73
- background: var(--move-to-tree-scrollbar-thumb-bg);
74
- border-radius: 8px;
75
- border: solid 3px var(--scrollbar-thumb-transparent-border);
76
- }
77
- &::-webkit-scrollbar-track {
78
- background: transparent;
79
- }
80
- &::-webkit-scrollbar-corner {
81
- background: transparent;
82
- }
83
-
84
- .node-wrapper {
85
- border-top-right-radius: 4px;
86
- border-bottom-right-radius: 4px;
87
- min-height: 26px;
88
- }
89
- }
90
- }
91
- }
92
- }
93
- </style>
1
+ <template>
2
+ <div class="compute-resource">
3
+ <div class="compute-resource__container-tree">
4
+ <ui-tree
5
+ :nodes="props.nodes"
6
+ :expand-all="false"
7
+ :is-loading="props.isLoading"
8
+ class="compute-resource__tree"
9
+ @toggle-node="onShowNodes"
10
+ @select-node="onSelectNode"
11
+ >
12
+ <template #content="{ node }">
13
+ <div class="flex-align-center">
14
+ <span :class="['node-icon', node.iconClassName]"></span>
15
+ <span class="node-name text-ellipsis">{{ node.name }}</span>
16
+ </div>
17
+ </template>
18
+ </ui-tree>
19
+ </div>
20
+
21
+ <common-wizards-common-compatibility
22
+ :loading="props.isLoading"
23
+ :status="props.compatibility[0]"
24
+ :text="props.compatibility[1]"
25
+ />
26
+ </div>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
31
+ import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
32
+
33
+ const props = withDefaults(
34
+ defineProps<{
35
+ nodes: UI_I_TreeNode[]
36
+ compatibility: [UI_T_CompatibilityStatus, string]
37
+ isLoading?: boolean
38
+ }>(),
39
+ {
40
+ isLoading: false,
41
+ }
42
+ )
43
+ const emits = defineEmits<{
44
+ (event: 'select-node', value: UI_I_TreeNode): void
45
+ (event: 'show-nodes', value: UI_I_TreeNode): void
46
+ }>()
47
+
48
+ const onShowNodes = (node: UI_I_TreeNode): void => emits('show-nodes', node)
49
+ const onSelectNode = (node: UI_I_TreeNode): void => emits('select-node', node)
50
+ </script>
51
+
52
+ <style scoped lang="scss">
53
+ @import 'assets/scss/common/mixins.scss';
54
+ .compute-resource {
55
+ &__container-tree {
56
+ height: 240px;
57
+ background: var(--input-bg);
58
+ border: 1px solid var(--line-color);
59
+ border-radius: 8px;
60
+ overflow: hidden;
61
+
62
+ :deep(.compute-resource__tree) {
63
+ .node-icon {
64
+ margin-right: 8px;
65
+ }
66
+ .node-name {
67
+ font-size: 12px;
68
+ }
69
+ .tree-content {
70
+ padding: 8px 8px 0;
71
+
72
+ &::-webkit-scrollbar-thumb {
73
+ background: var(--move-to-tree-scrollbar-thumb-bg);
74
+ border-radius: 8px;
75
+ border: solid 3px var(--scrollbar-thumb-transparent-border);
76
+ }
77
+ &::-webkit-scrollbar-track {
78
+ background: transparent;
79
+ }
80
+ &::-webkit-scrollbar-corner {
81
+ background: transparent;
82
+ }
83
+
84
+ .node-wrapper {
85
+ border-top-right-radius: 4px;
86
+ border-bottom-right-radius: 4px;
87
+ min-height: 26px;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ </style>