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
@@ -1,112 +1,112 @@
1
- <template>
2
- <div class="flex-align-center">
3
- <common-select-input
4
- v-model="selectedOption"
5
- :data="options"
6
- class="mr-1"
7
- />
8
-
9
- <div class="btn-group">
10
- <button
11
- v-for="item in tabs"
12
- :key="item"
13
- :class="['btn btn-sm btn-secondary', { 'btn-primary': item.isActive }]"
14
- :disabled="!isCustom"
15
- @click="onSelectDay(item.value)"
16
- >
17
- {{ item.text }}
18
- </button>
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script lang="ts" setup>
24
- import type { UI_I_Localization } from '~/lib/models/interfaces'
25
- import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
26
- import type { UI_I_TabItem } from '~/components/common/weekSelect/lib/models/interfaces'
27
- import { optionsFunc } from '~/components/common/weekSelect/lib/config/options'
28
-
29
- const localization = computed<UI_I_Localization>(() => useLocal())
30
-
31
- const model = defineModel<number[]>()
32
-
33
- const selectedOption = ref<number>(0)
34
- if (model.value.length === 2 && model.value.includes(6) && model.value.includes(0)) {
35
- selectedOption.value = 1
36
- } else if (model.value.length < 7) {
37
- selectedOption.value = 2
38
- }
39
-
40
- const options = ref<UI_I_SelectInputItem[]>(optionsFunc(localization.value))
41
-
42
- const isCustom = computed<boolean>(() => selectedOption.value === 2)
43
- const onSelectDay = (value: number): void => {
44
- const index = model.value?.indexOf(value)
45
- if (index === -1) {
46
- model.value.push(value)
47
- model.value.sort((a: number, b: number) => a - b)
48
- }
49
- else if (model.value.length > 1) {
50
- model.value = model.value?.filter((_: number, key: number) => key !== index)
51
- }
52
- }
53
-
54
- const tabs = computed<UI_I_TabItem[]>(() => {
55
- return [
56
- { text: localization.value.weekM, value: 1, isActive: checkIsActiveDay(1) },
57
- { text: localization.value.weekT, value: 2, isActive: checkIsActiveDay(2) },
58
- { text: localization.value.weekW, value: 3, isActive: checkIsActiveDay(3) },
59
- {
60
- text: localization.value.weekTh,
61
- value: 4,
62
- isActive: checkIsActiveDay(4),
63
- },
64
- { text: localization.value.weekF, value: 5, isActive: checkIsActiveDay(5) },
65
- { text: localization.value.weekS, value: 6, isActive: checkIsActiveDay(6) },
66
- {
67
- text: localization.value.weekSu,
68
- value: 0,
69
- isActive: checkIsActiveDay(0),
70
- },
71
- ]
72
- })
73
- const checkIsActiveDay = (value: number): boolean => {
74
- let result = false
75
- switch (selectedOption.value) {
76
- case 0:
77
- result = true
78
- break
79
- case 1:
80
- if (value === 6 || value === 0) result = true
81
- break
82
- default:
83
- result = !!model.value?.includes(value)
84
- break
85
- }
86
-
87
- return result
88
- }
89
- watch(
90
- tabs,
91
- (newValue: UI_I_TabItem[]) => {
92
- if (selectedOption.value === 2) return
93
-
94
- model.value = newValue.filter((tab) => tab.isActive).map((tab) => tab.value)
95
- },
96
- { immediate: true }
97
- )
98
- </script>
99
-
100
- <style lang="scss" scoped>
101
- :deep(.select::after) {
102
- top: 2px;
103
- right: -16px;
104
- }
105
- .btn-group {
106
- button {
107
- width: 24px;
108
- min-width: 24px;
109
- padding: 0;
110
- }
111
- }
112
- </style>
1
+ <template>
2
+ <div class="flex-align-center">
3
+ <common-select-input
4
+ v-model="selectedOption"
5
+ :data="options"
6
+ class="mr-1"
7
+ />
8
+
9
+ <div class="btn-group">
10
+ <button
11
+ v-for="item in tabs"
12
+ :key="item"
13
+ :class="['btn btn-sm btn-secondary', { 'btn-primary': item.isActive }]"
14
+ :disabled="!isCustom"
15
+ @click="onSelectDay(item.value)"
16
+ >
17
+ {{ item.text }}
18
+ </button>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
26
+ import type { UI_I_TabItem } from '~/components/common/weekSelect/lib/models/interfaces'
27
+ import { optionsFunc } from '~/components/common/weekSelect/lib/config/options'
28
+
29
+ const localization = computed<UI_I_Localization>(() => useLocal())
30
+
31
+ const model = defineModel<number[]>()
32
+
33
+ const selectedOption = ref<number>(0)
34
+ if (model.value.length === 2 && model.value.includes(6) && model.value.includes(0)) {
35
+ selectedOption.value = 1
36
+ } else if (model.value.length < 7) {
37
+ selectedOption.value = 2
38
+ }
39
+
40
+ const options = ref<UI_I_SelectInputItem[]>(optionsFunc(localization.value))
41
+
42
+ const isCustom = computed<boolean>(() => selectedOption.value === 2)
43
+ const onSelectDay = (value: number): void => {
44
+ const index = model.value?.indexOf(value)
45
+ if (index === -1) {
46
+ model.value.push(value)
47
+ model.value.sort((a: number, b: number) => a - b)
48
+ }
49
+ else if (model.value.length > 1) {
50
+ model.value = model.value?.filter((_: number, key: number) => key !== index)
51
+ }
52
+ }
53
+
54
+ const tabs = computed<UI_I_TabItem[]>(() => {
55
+ return [
56
+ { text: localization.value.weekM, value: 1, isActive: checkIsActiveDay(1) },
57
+ { text: localization.value.weekT, value: 2, isActive: checkIsActiveDay(2) },
58
+ { text: localization.value.weekW, value: 3, isActive: checkIsActiveDay(3) },
59
+ {
60
+ text: localization.value.weekTh,
61
+ value: 4,
62
+ isActive: checkIsActiveDay(4),
63
+ },
64
+ { text: localization.value.weekF, value: 5, isActive: checkIsActiveDay(5) },
65
+ { text: localization.value.weekS, value: 6, isActive: checkIsActiveDay(6) },
66
+ {
67
+ text: localization.value.weekSu,
68
+ value: 0,
69
+ isActive: checkIsActiveDay(0),
70
+ },
71
+ ]
72
+ })
73
+ const checkIsActiveDay = (value: number): boolean => {
74
+ let result = false
75
+ switch (selectedOption.value) {
76
+ case 0:
77
+ result = true
78
+ break
79
+ case 1:
80
+ if (value === 6 || value === 0) result = true
81
+ break
82
+ default:
83
+ result = !!model.value?.includes(value)
84
+ break
85
+ }
86
+
87
+ return result
88
+ }
89
+ watch(
90
+ tabs,
91
+ (newValue: UI_I_TabItem[]) => {
92
+ if (selectedOption.value === 2) return
93
+
94
+ model.value = newValue.filter((tab) => tab.isActive).map((tab) => tab.value)
95
+ },
96
+ { immediate: true }
97
+ )
98
+ </script>
99
+
100
+ <style lang="scss" scoped>
101
+ :deep(.select::after) {
102
+ top: 2px;
103
+ right: -16px;
104
+ }
105
+ .btn-group {
106
+ button {
107
+ width: 24px;
108
+ min-width: 24px;
109
+ padding: 0;
110
+ }
111
+ }
112
+ </style>
@@ -1,10 +1,10 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
3
-
4
- export const optionsFunc = (
5
- localization: UI_I_Localization
6
- ): UI_I_SelectInputItem[] => [
7
- { label: localization.daily, value: 0 },
8
- { label: localization.weekly, value: 1 },
9
- { label: localization.custom, value: 2 },
10
- ]
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
3
+
4
+ export const optionsFunc = (
5
+ localization: UI_I_Localization
6
+ ): UI_I_SelectInputItem[] => [
7
+ { label: localization.daily, value: 0 },
8
+ { label: localization.weekly, value: 1 },
9
+ { label: localization.custom, value: 2 },
10
+ ]
@@ -1,21 +1,21 @@
1
- import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
-
3
- export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
- const config = useRuntimeConfig()
5
- const version = config.public.APP_VERSION
6
-
7
- const regexHasDot = /\./
8
- const regexHasDotAndB = /\..*b/
9
- const regexHasDotAndD = /\..*d/
10
-
11
- const isBeta = regexHasDotAndB.test(version)
12
- const isDev =
13
- regexHasDotAndD.test(version) ||
14
- (!regexHasDot.test(version) && version.length < 8)
15
-
16
- return {
17
- version,
18
- isBeta,
19
- isDev,
20
- }
21
- }
1
+ import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
+
3
+ export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
+ const config = useRuntimeConfig()
5
+ const version = config.public.APP_VERSION
6
+
7
+ const regexHasDot = /\./
8
+ const regexHasDotAndB = /\..*b/
9
+ const regexHasDotAndD = /\..*d/
10
+
11
+ const isBeta = regexHasDotAndB.test(version)
12
+ const isDev =
13
+ regexHasDotAndD.test(version) ||
14
+ (!regexHasDot.test(version) && version.length < 8)
15
+
16
+ return {
17
+ version,
18
+ isBeta,
19
+ isDev,
20
+ }
21
+ }
@@ -1,20 +1,20 @@
1
- export function useEnvLanguage(): string {
2
- const { $store }: any = useNuxtApp()
3
-
4
- let localizationCode = 'en_US'
5
- const langFromLocalStorage =
6
- useLocalStorage('lang') || $store.getters['main/getInterfaceLang'] // Из $store для Сферы, но думаю нужно сделать одинаково из localStorage
7
- if (langFromLocalStorage) {
8
- if (
9
- langFromLocalStorage === 'en_US' ||
10
- langFromLocalStorage === 'ru_RU' ||
11
- langFromLocalStorage === 'hy_AM'
12
- ) {
13
- localizationCode = langFromLocalStorage
14
- }
15
- }
16
-
17
- localizationCode = localizationCode.slice(0, 2).toUpperCase()
18
-
19
- return localizationCode
20
- }
1
+ export function useEnvLanguage(): string {
2
+ const { $store }: any = useNuxtApp()
3
+
4
+ let localizationCode = 'en_US'
5
+ const langFromLocalStorage =
6
+ useLocalStorage('lang') || $store.getters['main/getInterfaceLang'] // Из $store для Сферы, но думаю нужно сделать одинаково из localStorage
7
+ if (langFromLocalStorage) {
8
+ if (
9
+ langFromLocalStorage === 'en_US' ||
10
+ langFromLocalStorage === 'ru_RU' ||
11
+ langFromLocalStorage === 'hy_AM'
12
+ ) {
13
+ localizationCode = langFromLocalStorage
14
+ }
15
+ }
16
+
17
+ localizationCode = localizationCode.slice(0, 2).toUpperCase()
18
+
19
+ return localizationCode
20
+ }
@@ -1,72 +1,72 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type {
3
- API_UI_I_Error,
4
- UI_I_RequestBody,
5
- } from '~/lib/models/store/interfaces'
6
- import type {
7
- UI_I_NotifyBodyMessage,
8
- UI_I_SendTaskParams,
9
- } from '~/lib/models/interfaces'
10
- import { base64 } from './base64'
11
-
12
- const localization = computed<UI_I_Localization>(() => useLocal())
13
-
14
- const showNotification = (message: UI_I_NotifyBodyMessage): void => {
15
- const { title, desc, status } = message
16
- const { $store } = useNuxtApp()
17
-
18
- // @ts-ignore
19
- $store.dispatch('main/A_SHOW_NOTIFICATION', {
20
- status,
21
- messages: [
22
- {
23
- title,
24
- descriptions: [desc],
25
- },
26
- ],
27
- headline: '',
28
- timeout: status === 'success' ? 3000 : '',
29
- })
30
- }
31
- const msgError: UI_I_NotifyBodyMessage = {
32
- status: 'error',
33
- title: localization.value.error,
34
- desc: '',
35
- }
36
- const handleErrors = (error: Ref<API_UI_I_Error>): void => {
37
- if (error.value.data?.error_message) {
38
- msgError.desc = error.value.data?.error_message
39
- showNotification(msgError)
40
- }
41
- }
42
-
43
- export const handleRequest = async (
44
- url: string,
45
- body: UI_I_RequestBody
46
- ): Promise<void> => {
47
- // @ts-ignore
48
- const { error } = await useMyFetch<never, API_UI_I_Error>(url, {
49
- body,
50
- method: 'POST',
51
- key: Date.now().toString(),
52
- })
53
-
54
- if (error.value && error.value.data.error_code !== 0) {
55
- handleErrors(error)
56
- }
57
- }
58
-
59
- export async function sendTask({
60
- method,
61
- target,
62
- args,
63
- }: UI_I_SendTaskParams): Promise<void> {
64
- const argsToBase64 = args ? base64.encode(args) : ''
65
- await handleRequest('/ui/tasks', {
66
- method,
67
- params: {
68
- target,
69
- args: argsToBase64,
70
- },
71
- })
72
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type {
3
+ API_UI_I_Error,
4
+ UI_I_RequestBody,
5
+ } from '~/lib/models/store/interfaces'
6
+ import type {
7
+ UI_I_NotifyBodyMessage,
8
+ UI_I_SendTaskParams,
9
+ } from '~/lib/models/interfaces'
10
+ import { base64 } from './base64'
11
+
12
+ const localization = computed<UI_I_Localization>(() => useLocal())
13
+
14
+ const showNotification = (message: UI_I_NotifyBodyMessage): void => {
15
+ const { title, desc, status } = message
16
+ const { $store } = useNuxtApp()
17
+
18
+ // @ts-ignore
19
+ $store.dispatch('main/A_SHOW_NOTIFICATION', {
20
+ status,
21
+ messages: [
22
+ {
23
+ title,
24
+ descriptions: [desc],
25
+ },
26
+ ],
27
+ headline: '',
28
+ timeout: status === 'success' ? 3000 : '',
29
+ })
30
+ }
31
+ const msgError: UI_I_NotifyBodyMessage = {
32
+ status: 'error',
33
+ title: localization.value.error,
34
+ desc: '',
35
+ }
36
+ const handleErrors = (error: Ref<API_UI_I_Error>): void => {
37
+ if (error.value.data?.error_message) {
38
+ msgError.desc = error.value.data?.error_message
39
+ showNotification(msgError)
40
+ }
41
+ }
42
+
43
+ export const handleRequest = async (
44
+ url: string,
45
+ body: UI_I_RequestBody
46
+ ): Promise<void> => {
47
+ // @ts-ignore
48
+ const { error } = await useMyFetch<never, API_UI_I_Error>(url, {
49
+ body,
50
+ method: 'POST',
51
+ key: Date.now().toString(),
52
+ })
53
+
54
+ if (error.value && error.value.data.error_code !== 0) {
55
+ handleErrors(error)
56
+ }
57
+ }
58
+
59
+ export async function sendTask({
60
+ method,
61
+ target,
62
+ args,
63
+ }: UI_I_SendTaskParams): Promise<void> {
64
+ const argsToBase64 = args ? base64.encode(args) : ''
65
+ await handleRequest('/ui/tasks', {
66
+ method,
67
+ params: {
68
+ target,
69
+ args: argsToBase64,
70
+ },
71
+ })
72
+ }