bfg-common 1.4.201 → 1.4.202

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 (33) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -343
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -255
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +83 -83
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -407
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -343
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -255
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +83 -83
  13. package/components/atoms/TheIcon3.vue +50 -0
  14. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  15. package/components/atoms/stack/StackBlock.vue +185 -185
  16. package/components/common/browse/blocks/Title.vue +91 -91
  17. package/components/common/browse/blocks/info/Date.vue +21 -21
  18. package/components/common/context/lib/models/interfaces.ts +30 -30
  19. package/components/common/context/recursion/Recursion.vue +86 -86
  20. package/components/common/context/recursion/RecursionNew.vue +199 -199
  21. package/components/common/context/recursion/RecursionOld.vue +213 -213
  22. package/components/common/vm/actions/add/Add.vue +609 -609
  23. package/components/common/vm/actions/clone/Clone.vue +522 -522
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -20
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +403 -403
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +99 -99
  27. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +201 -201
  28. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -85
  29. package/composables/productNameLocal.ts +30 -30
  30. package/package.json +1 -1
  31. package/plugins/recursion.ts +311 -311
  32. package/public/spice-console/lib/images/bitmap.js +203 -203
  33. package/store/tasks/mappers/recentTasks.ts +45 -45
@@ -1,185 +1,185 @@
1
- <template>
2
- <div
3
- :class="[
4
- 'stack-block',
5
- open ? 'stack-block-expanded' : 'stack-block-expandable',
6
- { 'not-children': !props.hasChildren },
7
- ]"
8
- >
9
- <div
10
- :id="`${props.testId}-toggle`"
11
- :data-id="`${props.testId}-toggle`"
12
- class="stack-block-label"
13
- @click="onToggle"
14
- >
15
- <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
-
17
- <div class="stack-view-key">
18
- <slot name="stackBlockKey" />
19
- </div>
20
- <div class="stack-block-content">
21
- <slot name="stackBlockContent" />
22
- </div>
23
-
24
- <span
25
- v-if="props.removable && props.isRollBack"
26
- class="icon-roll-back"
27
- :data-id="`${props.testId}-roll-back`"
28
- @mousedown="onRollBack"
29
- @click.stop
30
- />
31
- <atoms-the-icon
32
- v-else-if="props.removable"
33
- :data-id="`${props.testId}-remove`"
34
- class="remove-icon"
35
- name="close-circle"
36
- @mousedown="onRemove"
37
- @click.stop
38
- />
39
- <span v-else class="empty-icon"></span>
40
- </div>
41
-
42
- <div v-show="open" class="stack-children">
43
- <div style="height: auto">
44
- <slot name="stackChildren" />
45
- </div>
46
- </div>
47
- </div>
48
- </template>
49
-
50
- <script setup lang="ts">
51
- const props = withDefaults(
52
- defineProps<{
53
- hasChildren: boolean
54
- removable?: boolean
55
- testId?: string
56
- openByDefault?: boolean
57
- isRollBack?: boolean
58
- }>(),
59
- { testId: 'ui-stack-block', openByDefault: false }
60
- )
61
- const emits = defineEmits<{
62
- (event: 'toggle', value: boolean): void
63
- (event: 'remove'): void
64
- (event: 'roll-back'): void
65
- }>()
66
-
67
- const open = ref<boolean>(props.openByDefault || false)
68
- const onToggle = (): void => {
69
- if (!props.hasChildren) return
70
- setTimeout(() => {
71
- open.value = !open.value
72
- emits('toggle', open.value)
73
- }, 0)
74
- }
75
-
76
- const onRemove = (): void => {
77
- emits('remove')
78
- }
79
- const onRollBack = (): void => {
80
- emits('roll-back')
81
- }
82
- </script>
83
-
84
- <style scoped lang="scss">
85
- .stack-block {
86
- cursor: pointer;
87
- background-color: var(--block-view-bg-color);
88
- border-color: var(--global-border-color);
89
-
90
- &.stack-block-expandable:hover {
91
- border-bottom: 1px solid #666;
92
-
93
- .stack-block-label {
94
- background-color: var(--block-view-bg-color);
95
- border-color: var(--global-border-color);
96
- }
97
- }
98
-
99
- .stack-block-label {
100
- padding: 6px 12px;
101
- flex: 1 1 auto;
102
- max-width: unset;
103
- display: flex;
104
- background-color: var(--block-view-bg-color);
105
- border-color: var(--global-border-color);
106
-
107
- &:hover {
108
- .remove-icon {
109
- opacity: 1;
110
- }
111
- }
112
-
113
- &::before {
114
- display: none;
115
- }
116
-
117
- .angle-icon {
118
- width: 14px;
119
- height: 14px;
120
- margin-right: 4px;
121
- transform: rotate(90deg);
122
- align-self: center;
123
- }
124
-
125
- .remove-icon {
126
- width: 18px;
127
- height: 18px;
128
- opacity: 0;
129
- cursor: pointer;
130
- }
131
-
132
- .stack-view-key {
133
- flex: 0 0 40%;
134
- max-width: 40%;
135
- }
136
-
137
- .stack-block-content {
138
- padding: 0;
139
- flex: 1 1 auto;
140
- width: 60%;
141
- background-color: transparent;
142
- word-break: break-all;
143
- }
144
-
145
- .empty-icon {
146
- width: 18px;
147
- height: 18px;
148
- }
149
- }
150
-
151
- &.stack-block-expanded {
152
- .stack-block-label {
153
- color: #ffffff;
154
- background-color: #29414e;
155
-
156
- .angle-icon {
157
- fill: #ffffff;
158
- transform: rotate(180deg);
159
- }
160
-
161
- .remove-icon {
162
- fill: #ffffff;
163
- }
164
- }
165
- }
166
-
167
- &.not-children {
168
- cursor: default;
169
- .stack-block-label {
170
- background-color: transparent;
171
- color: #333333;
172
-
173
- &:hover {
174
- cursor: default;
175
- background-color: transparent;
176
- border-bottom: none;
177
- }
178
-
179
- .angle-icon {
180
- opacity: 0;
181
- }
182
- }
183
- }
184
- }
185
- </style>
1
+ <template>
2
+ <div
3
+ :class="[
4
+ 'stack-block',
5
+ open ? 'stack-block-expanded' : 'stack-block-expandable',
6
+ { 'not-children': !props.hasChildren },
7
+ ]"
8
+ >
9
+ <div
10
+ :id="`${props.testId}-toggle`"
11
+ :data-id="`${props.testId}-toggle`"
12
+ class="stack-block-label"
13
+ @click="onToggle"
14
+ >
15
+ <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
+
17
+ <div class="stack-view-key">
18
+ <slot name="stackBlockKey" />
19
+ </div>
20
+ <div class="stack-block-content">
21
+ <slot name="stackBlockContent" />
22
+ </div>
23
+
24
+ <span
25
+ v-if="props.removable && props.isRollBack"
26
+ class="icon-roll-back"
27
+ :data-id="`${props.testId}-roll-back`"
28
+ @mousedown="onRollBack"
29
+ @click.stop
30
+ />
31
+ <atoms-the-icon
32
+ v-else-if="props.removable"
33
+ :data-id="`${props.testId}-remove`"
34
+ class="remove-icon"
35
+ name="close-circle"
36
+ @mousedown="onRemove"
37
+ @click.stop
38
+ />
39
+ <span v-else class="empty-icon"></span>
40
+ </div>
41
+
42
+ <div v-show="open" class="stack-children">
43
+ <div style="height: auto">
44
+ <slot name="stackChildren" />
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script setup lang="ts">
51
+ const props = withDefaults(
52
+ defineProps<{
53
+ hasChildren: boolean
54
+ removable?: boolean
55
+ testId?: string
56
+ openByDefault?: boolean
57
+ isRollBack?: boolean
58
+ }>(),
59
+ { testId: 'ui-stack-block', openByDefault: false }
60
+ )
61
+ const emits = defineEmits<{
62
+ (event: 'toggle', value: boolean): void
63
+ (event: 'remove'): void
64
+ (event: 'roll-back'): void
65
+ }>()
66
+
67
+ const open = ref<boolean>(props.openByDefault || false)
68
+ const onToggle = (): void => {
69
+ if (!props.hasChildren) return
70
+ setTimeout(() => {
71
+ open.value = !open.value
72
+ emits('toggle', open.value)
73
+ }, 0)
74
+ }
75
+
76
+ const onRemove = (): void => {
77
+ emits('remove')
78
+ }
79
+ const onRollBack = (): void => {
80
+ emits('roll-back')
81
+ }
82
+ </script>
83
+
84
+ <style scoped lang="scss">
85
+ .stack-block {
86
+ cursor: pointer;
87
+ background-color: var(--block-view-bg-color);
88
+ border-color: var(--global-border-color);
89
+
90
+ &.stack-block-expandable:hover {
91
+ border-bottom: 1px solid #666;
92
+
93
+ .stack-block-label {
94
+ background-color: var(--block-view-bg-color);
95
+ border-color: var(--global-border-color);
96
+ }
97
+ }
98
+
99
+ .stack-block-label {
100
+ padding: 6px 12px;
101
+ flex: 1 1 auto;
102
+ max-width: unset;
103
+ display: flex;
104
+ background-color: var(--block-view-bg-color);
105
+ border-color: var(--global-border-color);
106
+
107
+ &:hover {
108
+ .remove-icon {
109
+ opacity: 1;
110
+ }
111
+ }
112
+
113
+ &::before {
114
+ display: none;
115
+ }
116
+
117
+ .angle-icon {
118
+ width: 14px;
119
+ height: 14px;
120
+ margin-right: 4px;
121
+ transform: rotate(90deg);
122
+ align-self: center;
123
+ }
124
+
125
+ .remove-icon {
126
+ width: 18px;
127
+ height: 18px;
128
+ opacity: 0;
129
+ cursor: pointer;
130
+ }
131
+
132
+ .stack-view-key {
133
+ flex: 0 0 40%;
134
+ max-width: 40%;
135
+ }
136
+
137
+ .stack-block-content {
138
+ padding: 0;
139
+ flex: 1 1 auto;
140
+ width: 60%;
141
+ background-color: transparent;
142
+ word-break: break-all;
143
+ }
144
+
145
+ .empty-icon {
146
+ width: 18px;
147
+ height: 18px;
148
+ }
149
+ }
150
+
151
+ &.stack-block-expanded {
152
+ .stack-block-label {
153
+ color: #ffffff;
154
+ background-color: #29414e;
155
+
156
+ .angle-icon {
157
+ fill: #ffffff;
158
+ transform: rotate(180deg);
159
+ }
160
+
161
+ .remove-icon {
162
+ fill: #ffffff;
163
+ }
164
+ }
165
+ }
166
+
167
+ &.not-children {
168
+ cursor: default;
169
+ .stack-block-label {
170
+ background-color: transparent;
171
+ color: #333333;
172
+
173
+ &:hover {
174
+ cursor: default;
175
+ background-color: transparent;
176
+ border-bottom: none;
177
+ }
178
+
179
+ .angle-icon {
180
+ opacity: 0;
181
+ }
182
+ }
183
+ }
184
+ }
185
+ </style>
@@ -1,91 +1,91 @@
1
- <template>
2
- <div class="title-block" :style="blockWidth">
3
- <div class="title-block__container" :style="blockWidth">
4
- <div
5
- class="title-block__title pointer"
6
- :style="blockTitleWidth"
7
- @click="emits('sort')"
8
- >
9
- <b>{{ props.title }}</b>
10
- <atoms-the-icon
11
- v-show="props.sorting[0]"
12
- :class="['sort-arrow', { down: !props.sorting[1] }]"
13
- width="14px"
14
- height="14px"
15
- name="sort-arrow"
16
- />
17
- </div>
18
- <div class="title-block__body">
19
- <slot name="content"></slot>
20
- </div>
21
- </div>
22
- </div>
23
- </template>
24
-
25
- <script setup lang="ts">
26
- const props = withDefaults(
27
- defineProps<{
28
- title: string
29
- width: number
30
- sorting?: [boolean, boolean]
31
- }>(),
32
- {
33
- sorting: () => [false, false],
34
- }
35
- )
36
- const emits = defineEmits<{
37
- (event: 'sort'): void
38
- }>()
39
-
40
- const blockWidth = computed(() => ({ width: `${props.width}px` }))
41
- const blockTitleWidth = computed(() => ({ width: `${props.width - 2}px` }))
42
- </script>
43
-
44
- <style scoped lang="scss">
45
- .title-block {
46
- width: 100%;
47
- min-height: 400px;
48
- position: relative;
49
-
50
- &__container {
51
- position: absolute;
52
- top: 0;
53
- left: 0;
54
- display: flex;
55
- flex-direction: column;
56
- height: 400px;
57
- border-width: 1px;
58
- border-style: solid;
59
- border-image: initial;
60
- background: var(--block-view-bg-color5);
61
- border-color: var(--block-border-color2);
62
- }
63
- &__title {
64
- display: inline-block;
65
- flex: 0 0 auto;
66
- background-color: var(--block-view-bg-color6);
67
- border-bottom: 1px solid var(--block-border-color2);
68
- padding: 8px;
69
- white-space: nowrap;
70
- overflow: hidden !important;
71
- text-overflow: ellipsis;
72
-
73
- b {
74
- font-family: Metropolis, Avenir Next, Helvetica Neue, Arial, sans-serif;
75
- font-size: 13px;
76
- color: var(--global-font-color9);
77
- font-weight: bolder;
78
- letter-spacing: normal;
79
- }
80
- .sort-arrow {
81
- &.down {
82
- transform: rotate(180deg);
83
- }
84
- }
85
- }
86
- &__body {
87
- flex: 1 1 auto;
88
- overflow-y: auto;
89
- }
90
- }
91
- </style>
1
+ <template>
2
+ <div class="title-block" :style="blockWidth">
3
+ <div class="title-block__container" :style="blockWidth">
4
+ <div
5
+ class="title-block__title pointer"
6
+ :style="blockTitleWidth"
7
+ @click="emits('sort')"
8
+ >
9
+ <b>{{ props.title }}</b>
10
+ <atoms-the-icon
11
+ v-show="props.sorting[0]"
12
+ :class="['sort-arrow', { down: !props.sorting[1] }]"
13
+ width="14px"
14
+ height="14px"
15
+ name="sort-arrow"
16
+ />
17
+ </div>
18
+ <div class="title-block__body">
19
+ <slot name="content"></slot>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script setup lang="ts">
26
+ const props = withDefaults(
27
+ defineProps<{
28
+ title: string
29
+ width: number
30
+ sorting?: [boolean, boolean]
31
+ }>(),
32
+ {
33
+ sorting: () => [false, false],
34
+ }
35
+ )
36
+ const emits = defineEmits<{
37
+ (event: 'sort'): void
38
+ }>()
39
+
40
+ const blockWidth = computed(() => ({ width: `${props.width}px` }))
41
+ const blockTitleWidth = computed(() => ({ width: `${props.width - 2}px` }))
42
+ </script>
43
+
44
+ <style scoped lang="scss">
45
+ .title-block {
46
+ width: 100%;
47
+ min-height: 400px;
48
+ position: relative;
49
+
50
+ &__container {
51
+ position: absolute;
52
+ top: 0;
53
+ left: 0;
54
+ display: flex;
55
+ flex-direction: column;
56
+ height: 400px;
57
+ border-width: 1px;
58
+ border-style: solid;
59
+ border-image: initial;
60
+ background: var(--block-view-bg-color5);
61
+ border-color: var(--block-border-color2);
62
+ }
63
+ &__title {
64
+ display: inline-block;
65
+ flex: 0 0 auto;
66
+ background-color: var(--block-view-bg-color6);
67
+ border-bottom: 1px solid var(--block-border-color2);
68
+ padding: 8px;
69
+ white-space: nowrap;
70
+ overflow: hidden !important;
71
+ text-overflow: ellipsis;
72
+
73
+ b {
74
+ font-family: Metropolis, Avenir Next, Helvetica Neue, Arial, sans-serif;
75
+ font-size: 13px;
76
+ color: var(--global-font-color9);
77
+ font-weight: bolder;
78
+ letter-spacing: normal;
79
+ }
80
+ .sort-arrow {
81
+ &.down {
82
+ transform: rotate(180deg);
83
+ }
84
+ }
85
+ }
86
+ &__body {
87
+ flex: 1 1 auto;
88
+ overflow-y: auto;
89
+ }
90
+ }
91
+ </style>
@@ -1,21 +1,21 @@
1
- <template>
2
- <div>
3
- <span>{{ props.title }}:</span>
4
- <span>{{ formattedDateString }}</span>
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- import { format } from 'date-fns'
10
- const props = defineProps<{
11
- title: string
12
- value: number
13
- }>()
14
-
15
- const getDateString = (dateAlias: number): string =>
16
- format(new Date(dateAlias), 'MM/dd/yyyy HH:mm:ss a')
17
-
18
- const formattedDateString = computed<string>(() => getDateString(props.value))
19
- </script>
20
-
21
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div>
3
+ <span>{{ props.title }}:</span>
4
+ <span>{{ formattedDateString }}</span>
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ import { format } from 'date-fns'
10
+ const props = defineProps<{
11
+ title: string
12
+ value: number
13
+ }>()
14
+
15
+ const getDateString = (dateAlias: number): string =>
16
+ format(new Date(dateAlias), 'MM/dd/yyyy HH:mm:ss a')
17
+
18
+ const formattedDateString = computed<string>(() => getDateString(props.value))
19
+ </script>
20
+
21
+ <style scoped lang="scss"></style>
@@ -1,30 +1,30 @@
1
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
-
3
- export interface UI_I_ContextMenuByEvent {
4
- event: any
5
- node: UI_I_TreeNode
6
- }
7
- export interface UI_I_ContextMenu<T = string> {
8
- x: number
9
- y: number
10
- id: string | number
11
- type: T
12
- titleText: string
13
- titleIconClassName: string
14
- items: UI_I_ContextMenuItem[]
15
- }
16
- export interface UI_I_ContextMenuItem<T = string> {
17
- name: string
18
- actionType: T | ''
19
- iconClassName: string
20
- items: UI_I_ContextMenuItem<T>[]
21
- shortcut?: string
22
- hasBorderTop?: boolean
23
- isHeader?: boolean
24
- disabled?: boolean
25
- isShowItems?: boolean
26
- testId?: string
27
- style?: {
28
- color: string
29
- }
30
- }
1
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
2
+
3
+ export interface UI_I_ContextMenuByEvent {
4
+ event: any
5
+ node: UI_I_TreeNode
6
+ }
7
+ export interface UI_I_ContextMenu<T = string> {
8
+ x: number
9
+ y: number
10
+ id: string | number
11
+ type: T
12
+ titleText: string
13
+ titleIconClassName: string
14
+ items: UI_I_ContextMenuItem[]
15
+ }
16
+ export interface UI_I_ContextMenuItem<T = string> {
17
+ name: string
18
+ actionType: T | ''
19
+ iconClassName: string
20
+ items: UI_I_ContextMenuItem<T>[]
21
+ shortcut?: string
22
+ hasBorderTop?: boolean
23
+ isHeader?: boolean
24
+ disabled?: boolean
25
+ isShowItems?: boolean
26
+ testId?: string
27
+ style?: {
28
+ color: string
29
+ }
30
+ }