bfg-common 1.0.28 → 1.0.30

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 (59) hide show
  1. package/components/atoms/alert/Notification.vue +167 -167
  2. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  3. package/components/atoms/combobox/Combobox.vue +16 -0
  4. package/components/atoms/datepicker/Datepicker.vue +612 -612
  5. package/components/atoms/list/SelectList.vue +62 -62
  6. package/components/atoms/modal/bySteps/BySteps.vue +234 -234
  7. package/components/atoms/nav/NavBar.vue +116 -116
  8. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  9. package/components/atoms/notificationBar/NotificationBar.vue +175 -175
  10. package/components/atoms/perPage/PerPage.vue +52 -52
  11. package/components/atoms/popup/SimplePopup.vue +90 -90
  12. package/components/atoms/step/VerticalStep.vue +104 -104
  13. package/components/atoms/switch/Switch.vue +107 -107
  14. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +204 -204
  15. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +83 -83
  17. package/components/atoms/tabs/Tabs.vue +189 -189
  18. package/components/atoms/tooltip/Signpost.vue +224 -224
  19. package/components/common/accordion/Accordion.vue +176 -176
  20. package/components/common/accordion/Recursion.vue +195 -195
  21. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  22. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  23. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  24. package/components/common/browse/Browse.vue +182 -182
  25. package/components/common/browse/blocks/Title.vue +66 -66
  26. package/components/common/diagramMain/Header.vue +160 -160
  27. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  28. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  29. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  30. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  31. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  32. package/components/common/diagramMain/modals/viewSettings/Info.vue +94 -94
  33. package/components/common/diagramMain/network/Contents.vue +238 -238
  34. package/components/common/feedback/Buttons.vue +232 -232
  35. package/components/common/feedback/Message.vue +468 -468
  36. package/components/common/feedback/VisitPortal.vue +54 -54
  37. package/components/common/modals/Rename.vue +165 -165
  38. package/components/common/perPage/PerPage.vue +51 -51
  39. package/components/common/recursionTree/RecursionTree.vue +201 -201
  40. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +2 -2
  41. package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/config/options.ts +2 -2
  42. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/config/memoryOptions.ts +2 -2
  43. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +2 -2
  44. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  45. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  46. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  47. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  48. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  49. package/models/store/storage/interfaces.ts +32 -32
  50. package/package.json +1 -1
  51. package/public/spice-console/application/codec.js +257 -257
  52. package/public/spice-console/lib/rasterEngine.js +907 -907
  53. package/public/spice-console/network/spicechannel.js +369 -310
  54. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  55. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  56. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  57. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  58. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  59. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
@@ -1,236 +1,236 @@
1
- <template>
2
- <div class="autocomplete" @click.stop>
3
- <div class="content-search">
4
- <div v-show="props.loading" class="loader">
5
- <atoms-loader-pre-loader
6
- id="loader"
7
- class="content-area__loading"
8
- :show="true"
9
- />
10
- </div>
11
- <div class="search-icon">
12
- <atoms-the-icon
13
- fill="#666"
14
- stroke-width="10"
15
- class="alert-icon search-icon"
16
- name="search"
17
- />
18
- </div>
19
- <input
20
- :id="`${props.testId}-search-input`"
21
- v-model.trim="search"
22
- type="text"
23
- class="search-input"
24
- :placeholder="props.placeholder"
25
- @input="onSearch"
26
- />
27
- </div>
28
- <div
29
- v-show="isShow"
30
- :class="['content-filtered', { active: items.length }]"
31
- >
32
- <ul class="dropdown-menu filtered-items">
33
- <li
34
- v-for="(item, key) in items"
35
- :key="`${item}_${key}`"
36
- :class="['item', { active: key === selectedTabIndex }]"
37
- @mouseenter="selectedTabIndex = key"
38
- @click="onSelect(key)"
39
- >
40
- {{ item.firstText }}<b>{{ item.secondText }}</b
41
- >{{ item.thirdText }}
42
- </li>
43
- </ul>
44
- </div>
45
- </div>
46
- </template>
47
-
48
- <script setup lang="ts">
49
- const props = withDefaults(
50
- defineProps<{
51
- testId?: string
52
- placeholder: string
53
- items: string[]
54
- loading: boolean
55
- ms?: number
56
- }>(),
57
- {
58
- testId: 'ui-autocomplete',
59
- ms: 500,
60
- }
61
- )
62
-
63
- const emits = defineEmits<{
64
- (event: 'search', value: string): void
65
- (event: 'select', value: string): void
66
- }>()
67
-
68
- const search = ref<string>('')
69
-
70
- let timer: NodeJS.Timeout
71
- const onSearch = (): void => {
72
- clearTimeout(timer)
73
- timer = setTimeout(
74
- (value) => {
75
- emits('search', value)
76
- },
77
- props.ms,
78
- search.value
79
- )
80
- }
81
-
82
- const items = computed<any[]>(() => {
83
- return [...props.items].map((text) => {
84
- const term = search.value.toLowerCase()
85
- const texts = text.toLowerCase().split(term)
86
- return {
87
- firstText: texts[0],
88
- secondText: term,
89
- thirdText: texts[1],
90
- }
91
- })
92
- })
93
-
94
- const selectedTabIndex = ref<number>(0)
95
- const onSelect = (key: number): void => {
96
- search.value = props.items[key]
97
- emits('select', search.value)
98
- isHide.value = true
99
- }
100
-
101
- const isHide = ref<boolean>(false)
102
- const isShow = computed<boolean>(
103
- () => Boolean(items.value.length) && !isHide.value
104
- )
105
-
106
- const onKeyDown = (event: KeyboardEvent): void => {
107
- switch (event.code) {
108
- case 'ArrowUp':
109
- prevTabItem()
110
- break
111
- case 'ArrowDown':
112
- nextTabItem()
113
- break
114
- case 'Enter':
115
- onSelect(selectedTabIndex.value)
116
- break
117
- case 'Tab':
118
- isHide.value = true
119
- break
120
- }
121
- }
122
-
123
- const nextTabItem = (): void => {
124
- if (selectedTabIndex.value === items.value.length - 1)
125
- selectedTabIndex.value = 0
126
- else selectedTabIndex.value++
127
- }
128
-
129
- const prevTabItem = (): void => {
130
- if (selectedTabIndex.value === 0)
131
- selectedTabIndex.value = items.value.length - 1
132
- else selectedTabIndex.value--
133
- }
134
-
135
- watch(
136
- () => props.items,
137
- (value) => {
138
- if (value.length) {
139
- isHide.value = false
140
- }
141
- }
142
- )
143
- window.addEventListener('keydown', onKeyDown, true)
144
- watch(isHide, (value) => {
145
- if (!value) {
146
- window.addEventListener('keydown', onKeyDown, true)
147
- } else {
148
- window.removeEventListener('keydown', onKeyDown, true)
149
- }
150
- })
151
- </script>
152
-
153
- <style scoped lang="scss">
154
- .autocomplete {
155
- max-width: 180px;
156
- position: relative;
157
-
158
- .content-search {
159
- .loader {
160
- position: absolute;
161
- top: 3px;
162
- left: -6px;
163
- z-index: 1;
164
- height: 16px;
165
- width: 16px;
166
-
167
- #loader {
168
- height: 100%;
169
- width: 100%;
170
-
171
- :deep(.spinner-inverse) {
172
- min-width: auto;
173
- min-height: auto;
174
- width: 100%;
175
- height: 100%;
176
- }
177
- }
178
- }
179
- .search-icon {
180
- position: absolute;
181
- width: 17px;
182
- top: 2px;
183
- bottom: 0;
184
- }
185
- .search-input {
186
- background-color: white;
187
- padding: 0 6px 0 20px;
188
- }
189
- }
190
-
191
- .content-filtered {
192
- position: absolute;
193
- display: block;
194
- overflow-y: visible;
195
- height: auto;
196
- visibility: visible;
197
- will-change: transform;
198
- top: 0;
199
- left: 0;
200
- transform: translate3d(0px, 25px, 0px);
201
- width: 250px;
202
- z-index: 1000;
203
-
204
- &.active .filtered-items {
205
- max-height: 164px;
206
- visibility: visible;
207
- position: absolute;
208
- top: 100%;
209
- left: 0;
210
- min-width: 96px;
211
- max-width: 288px;
212
- border: 0.8px solid #ccc;
213
- padding: 9.6px 0;
214
- z-index: 1060;
215
- overflow: auto;
216
- width: 100%;
217
- margin: 1px 0 0;
218
-
219
- .item {
220
- line-height: 20px;
221
- padding: 5px 0 0 5px;
222
- color: #333;
223
- cursor: pointer;
224
- outline: unset;
225
-
226
- &.active,
227
- &:focus,
228
- &:hover {
229
- background-color: #2b5480;
230
- color: #fff;
231
- }
232
- }
233
- }
234
- }
235
- }
236
- </style>
1
+ <template>
2
+ <div class="autocomplete" @click.stop>
3
+ <div class="content-search">
4
+ <div v-show="props.loading" class="loader">
5
+ <atoms-loader-pre-loader
6
+ id="loader"
7
+ class="content-area__loading"
8
+ :show="true"
9
+ />
10
+ </div>
11
+ <div class="search-icon">
12
+ <atoms-the-icon
13
+ fill="#666"
14
+ stroke-width="10"
15
+ class="alert-icon search-icon"
16
+ name="search"
17
+ />
18
+ </div>
19
+ <input
20
+ :id="`${props.testId}-search-input`"
21
+ v-model.trim="search"
22
+ type="text"
23
+ class="search-input"
24
+ :placeholder="props.placeholder"
25
+ @input="onSearch"
26
+ />
27
+ </div>
28
+ <div
29
+ v-show="isShow"
30
+ :class="['content-filtered', { active: items.length }]"
31
+ >
32
+ <ul class="dropdown-menu filtered-items">
33
+ <li
34
+ v-for="(item, key) in items"
35
+ :key="`${item}_${key}`"
36
+ :class="['item', { active: key === selectedTabIndex }]"
37
+ @mouseenter="selectedTabIndex = key"
38
+ @click="onSelect(key)"
39
+ >
40
+ {{ item.firstText }}<b>{{ item.secondText }}</b
41
+ >{{ item.thirdText }}
42
+ </li>
43
+ </ul>
44
+ </div>
45
+ </div>
46
+ </template>
47
+
48
+ <script setup lang="ts">
49
+ const props = withDefaults(
50
+ defineProps<{
51
+ testId?: string
52
+ placeholder: string
53
+ items: string[]
54
+ loading: boolean
55
+ ms?: number
56
+ }>(),
57
+ {
58
+ testId: 'ui-autocomplete',
59
+ ms: 500,
60
+ }
61
+ )
62
+
63
+ const emits = defineEmits<{
64
+ (event: 'search', value: string): void
65
+ (event: 'select', value: string): void
66
+ }>()
67
+
68
+ const search = ref<string>('')
69
+
70
+ let timer: NodeJS.Timeout
71
+ const onSearch = (): void => {
72
+ clearTimeout(timer)
73
+ timer = setTimeout(
74
+ (value) => {
75
+ emits('search', value)
76
+ },
77
+ props.ms,
78
+ search.value
79
+ )
80
+ }
81
+
82
+ const items = computed<any[]>(() => {
83
+ return [...props.items].map((text) => {
84
+ const term = search.value.toLowerCase()
85
+ const texts = text.toLowerCase().split(term)
86
+ return {
87
+ firstText: texts[0],
88
+ secondText: term,
89
+ thirdText: texts[1],
90
+ }
91
+ })
92
+ })
93
+
94
+ const selectedTabIndex = ref<number>(0)
95
+ const onSelect = (key: number): void => {
96
+ search.value = props.items[key]
97
+ emits('select', search.value)
98
+ isHide.value = true
99
+ }
100
+
101
+ const isHide = ref<boolean>(false)
102
+ const isShow = computed<boolean>(
103
+ () => Boolean(items.value.length) && !isHide.value
104
+ )
105
+
106
+ const onKeyDown = (event: KeyboardEvent): void => {
107
+ switch (event.code) {
108
+ case 'ArrowUp':
109
+ prevTabItem()
110
+ break
111
+ case 'ArrowDown':
112
+ nextTabItem()
113
+ break
114
+ case 'Enter':
115
+ onSelect(selectedTabIndex.value)
116
+ break
117
+ case 'Tab':
118
+ isHide.value = true
119
+ break
120
+ }
121
+ }
122
+
123
+ const nextTabItem = (): void => {
124
+ if (selectedTabIndex.value === items.value.length - 1)
125
+ selectedTabIndex.value = 0
126
+ else selectedTabIndex.value++
127
+ }
128
+
129
+ const prevTabItem = (): void => {
130
+ if (selectedTabIndex.value === 0)
131
+ selectedTabIndex.value = items.value.length - 1
132
+ else selectedTabIndex.value--
133
+ }
134
+
135
+ watch(
136
+ () => props.items,
137
+ (value) => {
138
+ if (value.length) {
139
+ isHide.value = false
140
+ }
141
+ }
142
+ )
143
+ window.addEventListener('keydown', onKeyDown, true)
144
+ watch(isHide, (value) => {
145
+ if (!value) {
146
+ window.addEventListener('keydown', onKeyDown, true)
147
+ } else {
148
+ window.removeEventListener('keydown', onKeyDown, true)
149
+ }
150
+ })
151
+ </script>
152
+
153
+ <style scoped lang="scss">
154
+ .autocomplete {
155
+ max-width: 180px;
156
+ position: relative;
157
+
158
+ .content-search {
159
+ .loader {
160
+ position: absolute;
161
+ top: 3px;
162
+ left: -6px;
163
+ z-index: 1;
164
+ height: 16px;
165
+ width: 16px;
166
+
167
+ #loader {
168
+ height: 100%;
169
+ width: 100%;
170
+
171
+ :deep(.spinner-inverse) {
172
+ min-width: auto;
173
+ min-height: auto;
174
+ width: 100%;
175
+ height: 100%;
176
+ }
177
+ }
178
+ }
179
+ .search-icon {
180
+ position: absolute;
181
+ width: 17px;
182
+ top: 2px;
183
+ bottom: 0;
184
+ }
185
+ .search-input {
186
+ background-color: white;
187
+ padding: 0 6px 0 20px;
188
+ }
189
+ }
190
+
191
+ .content-filtered {
192
+ position: absolute;
193
+ display: block;
194
+ overflow-y: visible;
195
+ height: auto;
196
+ visibility: visible;
197
+ will-change: transform;
198
+ top: 0;
199
+ left: 0;
200
+ transform: translate3d(0px, 25px, 0px);
201
+ width: 250px;
202
+ z-index: 1000;
203
+
204
+ &.active .filtered-items {
205
+ max-height: 164px;
206
+ visibility: visible;
207
+ position: absolute;
208
+ top: 100%;
209
+ left: 0;
210
+ min-width: 96px;
211
+ max-width: 288px;
212
+ border: 0.8px solid #ccc;
213
+ padding: 9.6px 0;
214
+ z-index: 1060;
215
+ overflow: auto;
216
+ width: 100%;
217
+ margin: 1px 0 0;
218
+
219
+ .item {
220
+ line-height: 20px;
221
+ padding: 5px 0 0 5px;
222
+ color: #333;
223
+ cursor: pointer;
224
+ outline: unset;
225
+
226
+ &.active,
227
+ &:focus,
228
+ &:hover {
229
+ background-color: #2b5480;
230
+ color: #fff;
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ </style>
@@ -125,7 +125,23 @@ const onFocusInput = (event: Event) => {
125
125
 
126
126
  .dropdown-menu {
127
127
  position: fixed;
128
+ background-color: var(--dropdown-bg-color);
129
+ border-color: var(--block-border-color);
128
130
  z-index: 1000000000;
129
131
  visibility: unset;
132
+
133
+ .dropdown-item {
134
+ border-bottom: 1px solid transparent;
135
+ border-radius: 0;
136
+ color: var(--global-font-color3);
137
+ &:hover {
138
+ background-color: var(--row-hover-bg-color);
139
+ border-color: var(--row-hover-border-color);
140
+ color: var(--global-font-color3);
141
+ }
142
+ }
143
+ .dropdown-divider {
144
+ border-color: var(--block-border-color);
145
+ }
130
146
  }
131
147
  </style>