bfg-common 1.5.502 → 1.5.504

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 (123) 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 +0 -4
  7. package/assets/localization/local_en.json +0 -4
  8. package/assets/localization/local_hy.json +0 -4
  9. package/assets/localization/local_kk.json +0 -4
  10. package/assets/localization/local_ru.json +0 -4
  11. package/assets/localization/local_zh.json +0 -4
  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/DataGridPagination.vue +97 -97
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/backup/storage/actions/add/Add.vue +251 -251
  19. package/components/common/backup/storage/actions/add/lib/utils.ts +62 -62
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  22. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  23. package/components/common/diagramMain/port/Port.vue +580 -580
  24. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  25. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  26. package/components/common/pages/backups/Backups.vue +61 -54
  27. package/components/common/pages/backups/DetailView.vue +52 -52
  28. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  29. package/components/common/pages/backups/modals/Modals.vue +243 -243
  30. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  31. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  32. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  33. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -141
  34. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  35. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  36. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  37. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  38. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  39. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  40. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  41. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  42. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  43. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  44. package/components/common/pages/backups/tools/Tools.vue +75 -75
  45. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -37
  46. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  47. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  48. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  49. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  50. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  51. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  52. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  53. package/components/common/select/radio/RadioGroup.vue +137 -137
  54. package/components/common/spiceConsole/Drawer.vue +392 -392
  55. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  56. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  57. package/components/common/tools/Actions.vue +207 -207
  58. package/components/common/treeView/TreeView.vue +52 -52
  59. package/components/common/vm/actions/add/Add.vue +895 -889
  60. package/components/common/vm/actions/add/New.vue +695 -691
  61. package/components/common/vm/actions/add/Old.vue +414 -410
  62. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  63. package/components/common/vm/actions/clone/Clone.vue +863 -861
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  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/newHardDisk/location/Location.vue +154 -154
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  73. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  74. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  75. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  76. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  77. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  79. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  80. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  81. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  82. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  83. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  84. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  85. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  86. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  87. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  88. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  89. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  90. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  91. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  92. package/components/common/vm/actions/register/Register.vue +285 -283
  93. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  94. package/components/common/{vm/actions/common/select → wizards/common/steps}/name/Name.vue +179 -176
  95. package/components/common/{vm/actions/common/select → wizards/common/steps}/name/New.vue +221 -221
  96. package/components/common/{vm/actions/common/select → wizards/common/steps}/name/Old.vue +121 -121
  97. package/components/common/{vm/actions/common/select → wizards/common/steps}/name/lib/models/interfaces.ts +4 -4
  98. package/components/common/{vm/actions/add/folderTreeView/FolderTreeView.vue → wizards/common/steps/name/location/Location.vue} +85 -85
  99. package/components/common/{vm/actions/add/folderTreeView → wizards/common/steps/name/location}/New.vue +40 -40
  100. package/components/common/wizards/datastore/add/Add.vue +228 -228
  101. package/components/common/wizards/datastore/add/lib/utils.ts +93 -93
  102. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  103. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  104. package/composables/useAppVersion.ts +21 -21
  105. package/composables/useLocal.ts +6 -6
  106. package/composables/useLocalCommon.ts +39 -39
  107. package/package.json +2 -2
  108. package/plugins/date.ts +233 -233
  109. package/plugins/panelStates.ts +70 -70
  110. package/plugins/text.ts +59 -59
  111. package/public/spice-console/lib/images/bitmap.js +203 -203
  112. package/public/spice-console/network/spicechannel.js +440 -440
  113. package/public/spice-console/run.js +210 -210
  114. package/store/main/mutations.ts +7 -7
  115. package/store/main/state.ts +7 -7
  116. package/components/common/pages/backups/BackupsOld.vue +0 -80
  117. package/components/common/pages/backups/backupsNew/BackupsNew.vue +0 -355
  118. package/components/common/pages/backups/backupsNew/contextMenuView/ContextMenuView.vue +0 -101
  119. package/components/common/pages/backups/backupsNew/contextMenuView/lib/config/contextMenuItems.ts +0 -29
  120. package/components/common/pages/backups/backupsNew/lib/models/interfaces.ts +0 -12
  121. package/components/common/pages/backups/backupsNew/lib/utils/contextMenu.ts +0 -29
  122. package/components/common/pages/backups/backupsNew/lib/utils/details.ts +0 -30
  123. /package/components/common/{vm/actions/add/folderTreeView → wizards/common/steps/name/location}/Old.vue +0 -0
@@ -1,121 +1,121 @@
1
- <template>
2
- <div class="select-name">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- :items="props.errors"
6
- status="alert-danger"
7
- test-id="name-alert"
8
- @remove="emits('remove-validation-errors')"
9
- />
10
-
11
- <form @submit.prevent>
12
- <label for="name-input">{{ localization.common.name }}:</label>
13
- <input
14
- id="name-input"
15
- v-model.trim="name"
16
- :data-id="props.testIds.name"
17
- type="text"
18
- maxlength="54"
19
- />
20
- <div id="name-help-icon" class="content-signpost relative">
21
- <atoms-the-icon
22
- :data-id="props.testIds.helpIcon"
23
- class="icon-show-help"
24
- fill="#0072a3"
25
- width="24px"
26
- height="24px"
27
- name="info-circle"
28
- @click="isShowHelp = !isShowHelp"
29
- />
30
- <atoms-tooltip-signpost
31
- v-if="isShowHelp"
32
- test-id="help-signpost"
33
- elem-id="name-help-icon"
34
- @hide="isShowHelp = false"
35
- >
36
- <p>
37
- {{ localization.common.nameValidationDescription }}
38
- </p>
39
- </atoms-tooltip-signpost>
40
- </div>
41
- </form>
42
-
43
- <template v-if="props.hasLocation">
44
- <p class="mt-1">
45
- {{ props.locationDescription }}
46
- </p>
47
- <div class="tree-view-wrap">
48
- <common-vm-actions-add-folder-tree-view
49
- v-model:location="location"
50
- :nodes="props.locationNodes"
51
- />
52
- </div>
53
- </template>
54
- </div>
55
- </template>
56
-
57
- <script setup lang="ts">
58
- import type { UI_I_Localization } from '~/lib/models/interfaces'
59
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
60
- import type { UI_I_NameTestIds } from '~/components/common/vm/actions/common/select/name/lib/models/interfaces'
61
-
62
- const name = defineModel<string>('name', { required: true })
63
- const location = defineModel<UI_I_TreeNode | null>('location') // для сферы
64
-
65
- const props = defineProps<{
66
- hasLocation: boolean
67
- errors: string[]
68
- locationNodes: UI_I_TreeNode[]
69
- locationDescription: string
70
- testIds: UI_I_NameTestIds
71
- }>()
72
- const emits = defineEmits<{
73
- (event: 'remove-validation-errors'): void
74
- }>()
75
-
76
- const localization = computed<UI_I_Localization>(() => useLocal())
77
-
78
- const isShowHelp = ref<boolean>(false)
79
- </script>
80
-
81
- <style scoped lang="scss">
82
- .select-name {
83
- form {
84
- display: flex;
85
- align-items: center;
86
- padding-top: 20px;
87
-
88
- label {
89
- width: 216px;
90
- }
91
- input {
92
- width: 345px;
93
- }
94
- }
95
-
96
- .tree-view-wrap {
97
- position: relative;
98
- border: 1px solid #000;
99
- padding: 5px;
100
- max-height: 300px;
101
- min-height: 200px;
102
- overflow: auto;
103
- margin-bottom: 10px;
104
- }
105
- }
106
- .content-signpost {
107
- user-select: none;
108
-
109
- .icon-show-help {
110
- cursor: pointer;
111
- }
112
-
113
- .help-title {
114
- font-size: 22px;
115
- margin-bottom: 24px;
116
- }
117
- .signpost {
118
- max-width: 360px;
119
- }
120
- }
121
- </style>
1
+ <template>
2
+ <div class="select-name">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ :items="props.errors"
6
+ status="alert-danger"
7
+ test-id="name-alert"
8
+ @remove="emits('remove-validation-errors')"
9
+ />
10
+
11
+ <form @submit.prevent>
12
+ <label for="name-input">{{ localization.common.name }}:</label>
13
+ <input
14
+ id="name-input"
15
+ v-model.trim="name"
16
+ :data-id="props.testIds.name"
17
+ type="text"
18
+ maxlength="54"
19
+ />
20
+ <div id="name-help-icon" class="content-signpost relative">
21
+ <atoms-the-icon
22
+ :data-id="props.testIds.helpIcon"
23
+ class="icon-show-help"
24
+ fill="#0072a3"
25
+ width="24px"
26
+ height="24px"
27
+ name="info-circle"
28
+ @click="isShowHelp = !isShowHelp"
29
+ />
30
+ <atoms-tooltip-signpost
31
+ v-if="isShowHelp"
32
+ test-id="help-signpost"
33
+ elem-id="name-help-icon"
34
+ @hide="isShowHelp = false"
35
+ >
36
+ <p>
37
+ {{ localization.common.nameValidationDescription }}
38
+ </p>
39
+ </atoms-tooltip-signpost>
40
+ </div>
41
+ </form>
42
+
43
+ <template v-if="props.hasLocation">
44
+ <p class="mt-1">
45
+ {{ props.locationDescription }}
46
+ </p>
47
+ <div class="tree-view-wrap">
48
+ <common-wizards-common-steps-name-location
49
+ v-model:location="location"
50
+ :nodes="props.locationNodes"
51
+ />
52
+ </div>
53
+ </template>
54
+ </div>
55
+ </template>
56
+
57
+ <script setup lang="ts">
58
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
59
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
60
+ import type { UI_I_NameTestIds } from '~/components/common/wizards/common/steps/name/lib/models/interfaces'
61
+
62
+ const name = defineModel<string>('name', { required: true })
63
+ const location = defineModel<UI_I_TreeNode | null>('location')
64
+
65
+ const props = defineProps<{
66
+ hasLocation: boolean
67
+ errors: string[]
68
+ locationNodes: UI_I_TreeNode[]
69
+ locationDescription: string
70
+ testIds: UI_I_NameTestIds
71
+ }>()
72
+ const emits = defineEmits<{
73
+ (event: 'remove-validation-errors'): void
74
+ }>()
75
+
76
+ const localization = computed<UI_I_Localization>(() => useLocal())
77
+
78
+ const isShowHelp = ref<boolean>(false)
79
+ </script>
80
+
81
+ <style scoped lang="scss">
82
+ .select-name {
83
+ form {
84
+ display: flex;
85
+ align-items: center;
86
+ padding-top: 20px;
87
+
88
+ label {
89
+ width: 216px;
90
+ }
91
+ input {
92
+ width: 345px;
93
+ }
94
+ }
95
+
96
+ .tree-view-wrap {
97
+ position: relative;
98
+ border: 1px solid #000;
99
+ padding: 5px;
100
+ max-height: 300px;
101
+ min-height: 200px;
102
+ overflow: auto;
103
+ margin-bottom: 10px;
104
+ }
105
+ }
106
+ .content-signpost {
107
+ user-select: none;
108
+
109
+ .icon-show-help {
110
+ cursor: pointer;
111
+ }
112
+
113
+ .help-title {
114
+ font-size: 22px;
115
+ margin-bottom: 24px;
116
+ }
117
+ .signpost {
118
+ max-width: 360px;
119
+ }
120
+ }
121
+ </style>
@@ -1,4 +1,4 @@
1
- export interface UI_I_NameTestIds {
2
- name: string
3
- helpIcon: string
4
- }
1
+ export interface UI_I_NameTestIds {
2
+ name: string
3
+ helpIcon: string
4
+ }
@@ -1,85 +1,85 @@
1
- <template>
2
- <common-vm-actions-add-folder-tree-view-new
3
- v-if="isNewView"
4
- :nodes="nodesLocal"
5
- :loading="loading"
6
- @show-nodes="showNodes"
7
- @select-node="selectNode"
8
- />
9
- <common-vm-actions-add-folder-tree-view-old
10
- v-else
11
- :nodes="nodesLocal"
12
- :loading="loading"
13
- @show-nodes="showNodes"
14
- @select-node="selectNode"
15
- />
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
-
21
- const location = defineModel<UI_I_TreeNode | null>('location')
22
-
23
- const props = defineProps<{
24
- nodes: UI_I_TreeNode[]
25
- }>()
26
-
27
- const { $store, $recursion }: any = useNuxtApp()
28
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
-
30
- const loading = ref<boolean>(false) // TODO
31
- const nodesLocal = ref<UI_I_TreeNode[]>(useDeepCopy(props.nodes))
32
- watch(
33
- () => props.nodes,
34
- (newValue) => {
35
- // loading.value = false
36
-
37
- nodesLocal.value = useDeepCopy(newValue)
38
- if (newValue.length && location.value) {
39
- selectNode(location.value)
40
- // Разворачиваем все родительские элементы до вибронного элемента
41
- $recursion.findAndExpandPathToNode(
42
- nodesLocal.value,
43
- [location.value.type, location.value.id],
44
- ['type', 'id'],
45
- 'nodes',
46
- 'nodesShow'
47
- )
48
- }
49
- },
50
- { deep: true }
51
- )
52
-
53
- const showNodes = ({
54
- node,
55
- cb,
56
- }: {
57
- node: UI_I_TreeNode
58
- cb: () => void
59
- }): void => {
60
- $recursion.findAndShow(
61
- nodesLocal.value,
62
- [node.type, node.id],
63
- ['type', 'id'],
64
- 'nodes'
65
- )
66
- cb()
67
- }
68
- const selectNode = (node: UI_I_TreeNode): void => {
69
- location.value = node
70
-
71
- $recursion.findAndActivate(
72
- nodesLocal.value,
73
- [node.type, node.id],
74
- ['type', 'id'],
75
- 'nodes'
76
- )
77
- }
78
-
79
- // TODO
80
- // onUnmounted(() => {
81
- // $store.dispatch('inventory/A_CLEAR_FOLDER_TREE', null)
82
- // })
83
- </script>
84
-
85
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-wizards-common-steps-name-location-new
3
+ v-if="isNewView"
4
+ :nodes="nodesLocal"
5
+ :loading="loading"
6
+ @show-nodes="showNodes"
7
+ @select-node="selectNode"
8
+ />
9
+ <common-wizards-common-steps-name-location-old
10
+ v-else
11
+ :nodes="nodesLocal"
12
+ :loading="loading"
13
+ @show-nodes="showNodes"
14
+ @select-node="selectNode"
15
+ />
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
+
21
+ const location = defineModel<UI_I_TreeNode | null>('location')
22
+
23
+ const props = defineProps<{
24
+ nodes: UI_I_TreeNode[]
25
+ }>()
26
+
27
+ const { $store, $recursion }: any = useNuxtApp()
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
30
+ const loading = ref<boolean>(false) // TODO
31
+ const nodesLocal = ref<UI_I_TreeNode[]>(useDeepCopy(props.nodes))
32
+ watch(
33
+ () => props.nodes,
34
+ (newValue) => {
35
+ // loading.value = false
36
+
37
+ nodesLocal.value = useDeepCopy(newValue)
38
+ if (newValue.length && location.value) {
39
+ selectNode(location.value)
40
+ // Разворачиваем все родительские элементы до вибронного элемента
41
+ $recursion.findAndExpandPathToNode(
42
+ nodesLocal.value,
43
+ [location.value.type, location.value.id],
44
+ ['type', 'id'],
45
+ 'nodes',
46
+ 'nodesShow'
47
+ )
48
+ }
49
+ },
50
+ { deep: true }
51
+ )
52
+
53
+ const showNodes = ({
54
+ node,
55
+ cb,
56
+ }: {
57
+ node: UI_I_TreeNode
58
+ cb: () => void
59
+ }): void => {
60
+ $recursion.findAndShow(
61
+ nodesLocal.value,
62
+ [node.type, node.id],
63
+ ['type', 'id'],
64
+ 'nodes'
65
+ )
66
+ cb()
67
+ }
68
+ const selectNode = (node: UI_I_TreeNode): void => {
69
+ location.value = node
70
+
71
+ $recursion.findAndActivate(
72
+ nodesLocal.value,
73
+ [node.type, node.id],
74
+ ['type', 'id'],
75
+ 'nodes'
76
+ )
77
+ }
78
+
79
+ // TODO
80
+ // onUnmounted(() => {
81
+ // $store.dispatch('inventory/A_CLEAR_FOLDER_TREE', null)
82
+ // })
83
+ </script>
84
+
85
+ <style scoped lang="scss"></style>
@@ -1,40 +1,40 @@
1
- <template>
2
- <div class="tree-view">
3
- <ui-tree
4
- :nodes="props.nodes"
5
- :expand-all="false"
6
- :is-loading="props.loading"
7
- @toggle-node="onShowNodes"
8
- @select-node="emits('select-node', $event)"
9
- >
10
- <template #content="{ node }">
11
- <div class="flex-align-center">
12
- <span :class="['node-icon', node.iconClassName]"></span>
13
- <span class="node-name">{{ node.name }}</span>
14
- </div>
15
- </template>
16
- </ui-tree>
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
-
23
- const props = defineProps<{
24
- loading: boolean
25
- nodes: UI_I_TreeNode[]
26
- }>()
27
- const emits = defineEmits<{
28
- (event: 'select-node', value: UI_I_TreeNode): void
29
- (event: 'show-nodes', value: {
30
- node: UI_I_TreeNode
31
- cb: () => void
32
- }): void
33
- }>()
34
-
35
- const onShowNodes = (node: UI_I_TreeNode) => {
36
- emits('show-nodes', { node, cb: (): void => {} })
37
- }
38
- </script>
39
-
40
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <ui-tree
4
+ :nodes="props.nodes"
5
+ :expand-all="false"
6
+ :is-loading="props.loading"
7
+ @toggle-node="onShowNodes"
8
+ @select-node="emits('select-node', $event)"
9
+ >
10
+ <template #content="{ node }">
11
+ <div class="flex-align-center">
12
+ <span :class="['node-icon', node.iconClassName]"></span>
13
+ <span class="node-name">{{ node.name }}</span>
14
+ </div>
15
+ </template>
16
+ </ui-tree>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
+
23
+ const props = defineProps<{
24
+ loading: boolean
25
+ nodes: UI_I_TreeNode[]
26
+ }>()
27
+ const emits = defineEmits<{
28
+ (event: 'select-node', value: UI_I_TreeNode): void
29
+ (event: 'show-nodes', value: {
30
+ node: UI_I_TreeNode
31
+ cb: () => void
32
+ }): void
33
+ }>()
34
+
35
+ const onShowNodes = (node: UI_I_TreeNode) => {
36
+ emits('show-nodes', { node, cb: (): void => {} })
37
+ }
38
+ </script>
39
+
40
+ <style scoped lang="scss"></style>