bfg-common 1.3.232 → 1.3.233

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 (76) hide show
  1. package/assets/scss/common/normalize.scss +0 -4
  2. package/components/atoms/alert/Alert.vue +96 -95
  3. package/components/atoms/alert/Notification.vue +171 -170
  4. package/components/atoms/autocomplete/Autocomplete.vue +3 -0
  5. package/components/atoms/collapse/CollapseNav.vue +1 -1
  6. package/components/atoms/collapse/CollapseNavItem.vue +17 -13
  7. package/components/atoms/combobox/Combobox.vue +5 -0
  8. package/components/atoms/datepicker/Datepicker.vue +19 -1
  9. package/components/atoms/datepicker/lib/models/interfaces.ts +1 -0
  10. package/components/atoms/dropdown/Portlet.vue +10 -7
  11. package/components/atoms/dropdown/dropdown/Dropdown.vue +10 -2
  12. package/components/atoms/dropdown/dropdown/lib/models/interfaces.ts +1 -0
  13. package/components/atoms/dropdown/tree/Tree.vue +2 -0
  14. package/components/atoms/dropdown/tree/lib/models/interfaces.ts +1 -0
  15. package/components/atoms/lib/models/interfaces.ts +2 -0
  16. package/components/atoms/list/SelectList.vue +1 -0
  17. package/components/atoms/modal/Modal.vue +3 -0
  18. package/components/atoms/modal/bySteps/BySteps.vue +56 -51
  19. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +10 -1
  20. package/components/atoms/nav/VerticalNavBar.vue +1 -0
  21. package/components/atoms/nav/lib/models/interfaces.ts +1 -0
  22. package/components/atoms/notificationBar/NotificationBar.vue +9 -1
  23. package/components/atoms/perPage/PerPage.vue +1 -0
  24. package/components/atoms/popover/Popover.vue +5 -1
  25. package/components/atoms/popup/SimplePopup.vue +1 -0
  26. package/components/atoms/select/TheSelect.vue +2 -0
  27. package/components/atoms/select/lib/models/interfaces.ts +1 -0
  28. package/components/atoms/stack/StackBlock.vue +3 -0
  29. package/components/atoms/step/VerticalStep.vue +1 -0
  30. package/components/atoms/switch/Switch.vue +111 -111
  31. package/components/atoms/table/compact/Compact.vue +526 -526
  32. package/components/atoms/table/dataGrid/DataGrid.vue +13 -1
  33. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +10 -2
  34. package/components/atoms/table/dataGrid/DataGridPage.vue +5 -0
  35. package/components/atoms/table/dataGrid/lib/models/interfaces.ts +2 -0
  36. package/components/atoms/table/simpleInfo/SimpleInfo.vue +7 -2
  37. package/components/atoms/table/simpleInfo/lib/models/interfaces.ts +1 -0
  38. package/components/atoms/table/simpleTable/SimpleTable.vue +5 -1
  39. package/components/atoms/table/simpleTable/lib/models/interfaces.ts +2 -0
  40. package/components/atoms/tabs/VerticalTabs.vue +1 -0
  41. package/components/atoms/tabs/lib/models/interfaces.ts +3 -2
  42. package/components/atoms/tooltip/Signpost.vue +226 -225
  43. package/components/atoms/wizard/Wizard.vue +5 -0
  44. package/components/atoms/wizard/step/Step.vue +1 -0
  45. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +4 -1
  46. package/components/common/mainNavigationPanel/lib/models/interfaces.ts +1 -0
  47. package/components/common/pages/Tasks.vue +120 -120
  48. package/components/common/recursionTree/RecursionTree.vue +203 -203
  49. package/components/common/tools/Actions.vue +2 -1
  50. package/components/common/tools/lib/models/interfaces.ts +1 -0
  51. package/components/common/vm/actions/add/Add.vue +575 -575
  52. package/components/common/vm/actions/clone/Clone.vue +518 -518
  53. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +269 -269
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +693 -693
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +59 -59
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +294 -294
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +165 -165
  59. package/components/common/vm/actions/common/select/storage/lib/config/config.ts +166 -166
  60. package/components/common/vm/actions/editSettings/EditSettings.vue +313 -313
  61. package/components/common/weekSelect/WeekSelect.vue +112 -112
  62. package/components/common/weekSelect/lib/config/options.ts +10 -10
  63. package/composables/useAppVersion.ts +21 -21
  64. package/composables/useEnvLanguage.ts +20 -20
  65. package/lib/utils/sendTask.ts +72 -72
  66. package/minify.js +146 -146
  67. package/package.json +1 -1
  68. package/public/spice-console/application/codec.js +257 -257
  69. package/public/spice-console/lib/rasterEngine.js +907 -907
  70. package/public/spice-console/network/spicechannel.js +369 -369
  71. package/store/main/lib/interfaces.ts +9 -9
  72. package/store/tasks/actions.ts +133 -133
  73. package/store/tasks/getters.ts +25 -25
  74. package/store/tasks/lib/models/interfaces.ts +18 -18
  75. package/store/tasks/mutations.ts +58 -58
  76. package/store/tasks/state.ts +16 -16
@@ -123,10 +123,6 @@ b {
123
123
  white-space: pre-line;
124
124
  }
125
125
 
126
- .word-break-all {
127
- word-break: break-all;
128
- }
129
-
130
126
  .color-red {
131
127
  color: red;
132
128
  }
@@ -1,95 +1,96 @@
1
- <template>
2
- <div :class="['alert', status]">
3
- <div class="alert-items">
4
- <slot v-if="$slots.headline" name="headline" :icon="iconName" />
5
-
6
- <slot name="body">
7
- <div v-for="(item, key) in items" :key="key" class="alert-item">
8
- <div v-if="!$slots.headline" class="alert-icon-wrapper">
9
- <atoms-the-icon
10
- :class="['alert-icon', iconName]"
11
- :name="iconName"
12
- />
13
- </div>
14
-
15
- <slot :item="item" :index="key">
16
- <span class="alert-text">{{ item }}</span>
17
- </slot>
18
- </div>
19
- </slot>
20
- </div>
21
- <button
22
- v-if="!hideCloseIcon"
23
- :id="`${props.testId}-close-button`"
24
- class="close"
25
- @click="removeAlert"
26
- >
27
- <atoms-the-icon class="alert-icon" name="close" />
28
- </button>
29
- </div>
30
- </template>
31
-
32
- <script setup lang="ts">
33
- import { UI_E_IconsByStatus } from '~/components/atoms/alert/lib/models/enums'
34
- import type {
35
- UI_T_AlertStatus,
36
- UI_T_AlertIcon,
37
- } from '~/components/atoms/alert/lib/models/types'
38
-
39
- const props = withDefaults(
40
- defineProps<{
41
- status: UI_T_AlertStatus
42
- items: string[] | any
43
- testId?: string
44
- hideCloseIcon?: boolean
45
- }>(),
46
- { testId: 'ui-alert' }
47
- )
48
- const emits = defineEmits<{
49
- (event: 'remove'): void
50
- }>()
51
-
52
- const removeAlert = (): void => {
53
- emits('remove')
54
- }
55
- const iconName = computed<UI_T_AlertIcon>(
56
- () => UI_E_IconsByStatus[props.status as UI_T_AlertStatus]
57
- )
58
- </script>
59
-
60
- <style scoped lang="scss">
61
- .alert {
62
- &-info {
63
- fill: #004d8a;
64
- }
65
- &-warning {
66
- background-color: var(--alert-warning-bg-color);
67
- border: 1px solid var(--alert-warning-border-color);
68
- fill: var(--alert-warning-icon-color);
69
- }
70
-
71
- &-icon {
72
- width: 20px;
73
- height: 20px;
74
- }
75
- &-text {
76
- color: var(--global-font-color5);
77
- }
78
-
79
- button.close:focus {
80
- box-shadow: none;
81
- }
82
- }
83
- </style>
84
- <style>
85
- :root {
86
- --alert-warning-icon-color: #d28f00;
87
- --alert-warning-bg-color: #fef3b5;
88
- --alert-warning-border-color: #d28f00;
89
- }
90
- :root.dark-theme {
91
- --alert-warning-icon-color: currentColor;
92
- --alert-warning-bg-color: #816709;
93
- --alert-warning-border-color: transparent;
94
- }
95
- </style>
1
+ <template>
2
+ <div :class="['alert', status]">
3
+ <div class="alert-items">
4
+ <slot v-if="$slots.headline" name="headline" :icon="iconName" />
5
+
6
+ <slot name="body">
7
+ <div v-for="(item, key) in items" :key="key" class="alert-item">
8
+ <div v-if="!$slots.headline" class="alert-icon-wrapper">
9
+ <atoms-the-icon
10
+ :class="['alert-icon', iconName]"
11
+ :name="iconName"
12
+ />
13
+ </div>
14
+
15
+ <slot :item="item" :index="key">
16
+ <span class="alert-text">{{ item }}</span>
17
+ </slot>
18
+ </div>
19
+ </slot>
20
+ </div>
21
+ <button
22
+ v-if="!hideCloseIcon"
23
+ :id="`${props.testId}-close-button`"
24
+ :data-id="`${props.testId}-close-button`"
25
+ class="close"
26
+ @click="removeAlert"
27
+ >
28
+ <atoms-the-icon class="alert-icon" name="close" />
29
+ </button>
30
+ </div>
31
+ </template>
32
+
33
+ <script setup lang="ts">
34
+ import { UI_E_IconsByStatus } from '~/components/atoms/alert/lib/models/enums'
35
+ import type {
36
+ UI_T_AlertStatus,
37
+ UI_T_AlertIcon,
38
+ } from '~/components/atoms/alert/lib/models/types'
39
+
40
+ const props = withDefaults(
41
+ defineProps<{
42
+ status: UI_T_AlertStatus
43
+ items: string[] | any
44
+ testId?: string
45
+ hideCloseIcon?: boolean
46
+ }>(),
47
+ { testId: 'ui-alert' }
48
+ )
49
+ const emits = defineEmits<{
50
+ (event: 'remove'): void
51
+ }>()
52
+
53
+ const removeAlert = (): void => {
54
+ emits('remove')
55
+ }
56
+ const iconName = computed<UI_T_AlertIcon>(
57
+ () => UI_E_IconsByStatus[props.status as UI_T_AlertStatus]
58
+ )
59
+ </script>
60
+
61
+ <style scoped lang="scss">
62
+ .alert {
63
+ &-info {
64
+ fill: #004d8a;
65
+ }
66
+ &-warning {
67
+ background-color: var(--alert-warning-bg-color);
68
+ border: 1px solid var(--alert-warning-border-color);
69
+ fill: var(--alert-warning-icon-color);
70
+ }
71
+
72
+ &-icon {
73
+ width: 20px;
74
+ height: 20px;
75
+ }
76
+ &-text {
77
+ color: var(--global-font-color5);
78
+ }
79
+
80
+ button.close:focus {
81
+ box-shadow: none;
82
+ }
83
+ }
84
+ </style>
85
+ <style>
86
+ :root {
87
+ --alert-warning-icon-color: #d28f00;
88
+ --alert-warning-bg-color: #fef3b5;
89
+ --alert-warning-border-color: #d28f00;
90
+ }
91
+ :root.dark-theme {
92
+ --alert-warning-icon-color: currentColor;
93
+ --alert-warning-bg-color: #816709;
94
+ --alert-warning-border-color: transparent;
95
+ }
96
+ </style>
@@ -1,170 +1,171 @@
1
- <template>
2
- <div class="notification">
3
- <div
4
- class="notification-container-wrap animation"
5
- :class="{ active: isActive }"
6
- >
7
- <div class="notification-container">
8
- <div v-show="props.show" class="toast">
9
- <atoms-the-icon
10
- class="toast-icon"
11
- :class="iconName !== 'info' && 'with'"
12
- :name="iconName"
13
- />
14
- <div class="toast-content">
15
- <div class="flex-align-center flex-space-between">
16
- <h4>{{ props.title }}</h4>
17
- <button
18
- :id="`${props.testId}-close-button`"
19
- :title="localization.closeNotification"
20
- @click="hide"
21
- >
22
- <atoms-the-icon name="close" />
23
- </button>
24
- </div>
25
- <div class="description">
26
- <slot>
27
- <p class="pre-line">{{ props.description }}</p>
28
- </slot>
29
- </div>
30
- </div>
31
- </div>
32
- </div>
33
- </div>
34
- </div>
35
- </template>
36
-
37
- <script setup lang="ts">
38
- import type { UI_I_Localization } from '~/lib/models/interfaces'
39
- import type {
40
- UI_T_NotificationStatus,
41
- UI_T_NotificationIcon,
42
- } from '~/components/atoms/alert/lib/models/types'
43
- import { UI_E_IconsByStatusNotification } from '~/components/atoms/alert/lib/models/enums'
44
-
45
- const props = withDefaults(
46
- defineProps<{
47
- status: UI_T_NotificationStatus
48
- id: number
49
- show: boolean
50
- title: string
51
- description: string
52
- testId?: string
53
- }>(),
54
- { testId: 'ui-notification' }
55
- )
56
- const emits = defineEmits<{
57
- (event: 'hide', value: number): void
58
- }>()
59
-
60
- const localization = computed<UI_I_Localization>(() => useLocal())
61
- const hide = (): void => {
62
- isActive.value = false
63
-
64
- setTimeout(() => {
65
- emits('hide', props.id)
66
- }, 200)
67
- }
68
- const isActive = ref<boolean>(false)
69
-
70
- const iconName = computed<UI_T_NotificationIcon>(
71
- () => UI_E_IconsByStatusNotification[props.status as UI_T_NotificationStatus]
72
- )
73
-
74
- setTimeout(() => {
75
- isActive.value = true
76
- }, 1000)
77
- </script>
78
-
79
- <style scoped lang="scss">
80
- @import '~/assets/scss/common/mixins.scss';
81
-
82
- .notification {
83
- .notification-container-wrap {
84
- display: block;
85
- margin-top: 10px;
86
- width: 414px;
87
- position: relative;
88
- right: -600px;
89
- opacity: 0;
90
-
91
- &.active {
92
- right: 0;
93
- opacity: 1;
94
- }
95
-
96
- .notification-container {
97
- @include flex($dir: column, $just: flex-end);
98
- margin-right: 0;
99
-
100
- .toast {
101
- @include flex($dir: row);
102
- background-color: #25333d;
103
- border-radius: 3px;
104
- box-shadow: 0 2px 10px rgb(0 0 0 / 40%);
105
- margin: 0;
106
- padding: 12px;
107
- transform: scale(1);
108
- transform-origin: 100% 0;
109
- width: 100%;
110
-
111
- .toast-icon {
112
- width: 36px;
113
- height: 36px;
114
- &.with {
115
- width: 26px;
116
- height: 26px;
117
- }
118
- }
119
-
120
- .toast-content {
121
- padding-left: 12px;
122
- width: 100%;
123
-
124
- h4 {
125
- color: #e9ecef;
126
- font-size: 14px;
127
- font-weight: 500;
128
- line-height: 24px;
129
- margin-top: 0;
130
- max-width: 240px;
131
- overflow: hidden;
132
- text-overflow: ellipsis;
133
- white-space: nowrap;
134
- }
135
-
136
- button {
137
- background: transparent;
138
- border: none;
139
- border-radius: 100%;
140
- cursor: pointer;
141
- display: inline-block;
142
- height: 30px;
143
- position: absolute;
144
- right: 8px;
145
- top: 8px;
146
- width: 30px;
147
-
148
- svg {
149
- width: 16px;
150
- height: 16px;
151
- fill: #adbbc4;
152
- margin-left: 1px;
153
- margin-top: -8px;
154
- }
155
- }
156
-
157
- .description {
158
- max-height: 60vh;
159
- overflow: auto;
160
-
161
- p {
162
- color: var(--global-font-color6);
163
- }
164
- }
165
- }
166
- }
167
- }
168
- }
169
- }
170
- </style>
1
+ <template>
2
+ <div class="notification">
3
+ <div
4
+ class="notification-container-wrap animation"
5
+ :class="{ active: isActive }"
6
+ >
7
+ <div class="notification-container">
8
+ <div v-show="props.show" class="toast">
9
+ <atoms-the-icon
10
+ class="toast-icon"
11
+ :class="iconName !== 'info' && 'with'"
12
+ :name="iconName"
13
+ />
14
+ <div class="toast-content">
15
+ <div class="flex-align-center flex-space-between">
16
+ <h4>{{ props.title }}</h4>
17
+ <button
18
+ :id="`${props.testId}-close-button`"
19
+ :data-id="`${props.testId}-close-button`"
20
+ :title="localization.closeNotification"
21
+ @click="hide"
22
+ >
23
+ <atoms-the-icon name="close" />
24
+ </button>
25
+ </div>
26
+ <div class="description">
27
+ <slot>
28
+ <p class="pre-line">{{ props.description }}</p>
29
+ </slot>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
40
+ import type {
41
+ UI_T_NotificationStatus,
42
+ UI_T_NotificationIcon,
43
+ } from '~/components/atoms/alert/lib/models/types'
44
+ import { UI_E_IconsByStatusNotification } from '~/components/atoms/alert/lib/models/enums'
45
+
46
+ const props = withDefaults(
47
+ defineProps<{
48
+ status: UI_T_NotificationStatus
49
+ id: number
50
+ show: boolean
51
+ title: string
52
+ description: string
53
+ testId?: string
54
+ }>(),
55
+ { testId: 'ui-notification' }
56
+ )
57
+ const emits = defineEmits<{
58
+ (event: 'hide', value: number): void
59
+ }>()
60
+
61
+ const localization = computed<UI_I_Localization>(() => useLocal())
62
+ const hide = (): void => {
63
+ isActive.value = false
64
+
65
+ setTimeout(() => {
66
+ emits('hide', props.id)
67
+ }, 200)
68
+ }
69
+ const isActive = ref<boolean>(false)
70
+
71
+ const iconName = computed<UI_T_NotificationIcon>(
72
+ () => UI_E_IconsByStatusNotification[props.status as UI_T_NotificationStatus]
73
+ )
74
+
75
+ setTimeout(() => {
76
+ isActive.value = true
77
+ }, 1000)
78
+ </script>
79
+
80
+ <style scoped lang="scss">
81
+ @import '~/assets/scss/common/mixins.scss';
82
+
83
+ .notification {
84
+ .notification-container-wrap {
85
+ display: block;
86
+ margin-top: 10px;
87
+ width: 414px;
88
+ position: relative;
89
+ right: -600px;
90
+ opacity: 0;
91
+
92
+ &.active {
93
+ right: 0;
94
+ opacity: 1;
95
+ }
96
+
97
+ .notification-container {
98
+ @include flex($dir: column, $just: flex-end);
99
+ margin-right: 0;
100
+
101
+ .toast {
102
+ @include flex($dir: row);
103
+ background-color: #25333d;
104
+ border-radius: 3px;
105
+ box-shadow: 0 2px 10px rgb(0 0 0 / 40%);
106
+ margin: 0;
107
+ padding: 12px;
108
+ transform: scale(1);
109
+ transform-origin: 100% 0;
110
+ width: 100%;
111
+
112
+ .toast-icon {
113
+ width: 36px;
114
+ height: 36px;
115
+ &.with {
116
+ width: 26px;
117
+ height: 26px;
118
+ }
119
+ }
120
+
121
+ .toast-content {
122
+ padding-left: 12px;
123
+ width: 100%;
124
+
125
+ h4 {
126
+ color: #e9ecef;
127
+ font-size: 14px;
128
+ font-weight: 500;
129
+ line-height: 24px;
130
+ margin-top: 0;
131
+ max-width: 240px;
132
+ overflow: hidden;
133
+ text-overflow: ellipsis;
134
+ white-space: nowrap;
135
+ }
136
+
137
+ button {
138
+ background: transparent;
139
+ border: none;
140
+ border-radius: 100%;
141
+ cursor: pointer;
142
+ display: inline-block;
143
+ height: 30px;
144
+ position: absolute;
145
+ right: 8px;
146
+ top: 8px;
147
+ width: 30px;
148
+
149
+ svg {
150
+ width: 16px;
151
+ height: 16px;
152
+ fill: #adbbc4;
153
+ margin-left: 1px;
154
+ margin-top: -8px;
155
+ }
156
+ }
157
+
158
+ .description {
159
+ max-height: 60vh;
160
+ overflow: auto;
161
+
162
+ p {
163
+ color: var(--global-font-color6);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ }
171
+ </style>
@@ -19,6 +19,7 @@
19
19
  <input
20
20
  :id="`${props.testId}-search-input`"
21
21
  v-model.trim="search"
22
+ :data-id="`${props.testId}-search-input`"
22
23
  type="text"
23
24
  class="search-input"
24
25
  :placeholder="props.placeholder"
@@ -34,6 +35,7 @@
34
35
  v-for="(item, key) in items"
35
36
  :key="`${item}_${key}`"
36
37
  :class="['item', { active: key === selectedTabIndex }]"
38
+ :data-id="item.testId"
37
39
  @mouseenter="selectedTabIndex = key"
38
40
  @click="onSelect(key)"
39
41
  >
@@ -87,6 +89,7 @@ const items = computed<any[]>(() => {
87
89
  firstText: texts[0],
88
90
  secondText: term,
89
91
  thirdText: texts[1],
92
+ testId: `${term}-filtered-item`
90
93
  }
91
94
  })
92
95
  })
@@ -6,6 +6,7 @@
6
6
  'btn btn-link nav-link dropdown-toggle',
7
7
  { active: collapsedBtnActive },
8
8
  ]"
9
+ :data-id="`${props.testId}-toggle-button`"
9
10
  @mouseenter="hover = true"
10
11
  @mouseleave="hover = false"
11
12
  @mousedown="showMenu"
@@ -36,7 +37,6 @@
36
37
  ></div>
37
38
  <atoms-collapse-nav-item
38
39
  v-else
39
- :test-id="item.testId || collapsedBtnId"
40
40
  :is-link="props.isLink"
41
41
  :item="item"
42
42
  :value="value"
@@ -1,8 +1,13 @@
1
1
  <template>
2
2
  <div>
3
- <NuxtLink v-if="props.isLink" :to="props.item.path">
3
+ <NuxtLink
4
+ v-if="props.isLink"
5
+ :to="props.item.path"
6
+ :data-id="`${item.testId}-link`"
7
+ >
4
8
  <button
5
- :id="`${props.testId}-button`"
9
+ :id="`${item.testId}-button`"
10
+ :data-id="`${item.testId}-button`"
6
11
  :disabled="props.item.disabled"
7
12
  :class="[
8
13
  props.btnClass,
@@ -24,6 +29,7 @@
24
29
  </span>
25
30
  <input
26
31
  :id="`select-file-button-${props.item.type}`"
32
+ :data-id="`${item.testId}-button`"
27
33
  type="file"
28
34
  :disabled="props.item.disabled"
29
35
  :multiple="false"
@@ -33,7 +39,8 @@
33
39
  </label>
34
40
  <button
35
41
  v-else
36
- :id="`${props.testId}-button`"
42
+ :id="`${item.testId}-button`"
43
+ :data-id="`${item.testId}-button`"
37
44
  :disabled="props.item.disabled"
38
45
  :class="[
39
46
  props.btnClass,
@@ -56,16 +63,13 @@
56
63
  <script setup lang="ts">
57
64
  import { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
58
65
 
59
- const props = withDefaults(
60
- defineProps<{
61
- item: UI_I_CollapseNavItem
62
- testId?: string
63
- value?: number | string
64
- isLink?: boolean
65
- btnClass?: string
66
- }>(),
67
- { testId: 'ui-collapse-nav-item' }
68
- )
66
+ const props = defineProps<{
67
+ item: UI_I_CollapseNavItem
68
+ value?: number | string
69
+ isLink?: boolean
70
+ btnClass?: string
71
+ }>()
72
+
69
73
  const emits = defineEmits<{
70
74
  (event: 'change', value: number | string): void
71
75
  (event: 'select-file', value1: Event, value2: string): void