bfg-common 1.5.26 → 1.5.28

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 (168) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/scss/common/normalize.scss +339 -339
  3. package/components/atoms/TheIcon3.vue +50 -50
  4. package/components/atoms/collapse/CollapseNav.vue +165 -165
  5. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  6. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  7. package/components/atoms/perPage/PerPage.vue +58 -58
  8. package/components/atoms/stack/StackBlock.vue +185 -185
  9. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  10. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  11. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  12. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  13. package/components/atoms/tooltip/Signpost.vue +227 -227
  14. package/components/atoms/tooltip/Signpost.vue~ +229 -229
  15. package/components/common/accordion/Recursion.vue +222 -222
  16. package/components/common/browse/BrowseNew.vue +237 -237
  17. package/components/common/browse/BrowseOld.vue +217 -217
  18. package/components/common/browse/blocks/contents/Files.vue +37 -37
  19. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  20. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/Context.vue +111 -111
  23. package/components/common/context/lib/models/interfaces.ts +31 -31
  24. package/components/common/context/recursion/Recursion.vue +87 -87
  25. package/components/common/context/recursion/RecursionNew.vue +238 -238
  26. package/components/common/context/recursion/RecursionOld.vue +228 -228
  27. package/components/common/details/DetailsItem.vue +109 -109
  28. package/components/common/diagramMain/DiagramMain.vue +897 -897
  29. package/components/common/diagramMain/Header.vue +214 -214
  30. package/components/common/graph/Graph.vue +104 -120
  31. package/components/common/graph/GraphNew.vue +179 -0
  32. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  33. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  35. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +336 -336
  36. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  37. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  38. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  39. package/components/common/monitor/overview/Overview.vue +0 -1
  40. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  41. package/components/common/pages/home/StatusContent.vue +49 -49
  42. package/components/common/pages/home/headline/Headline.vue +45 -45
  43. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  44. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  45. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  46. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  47. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  48. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  49. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  50. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  51. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  52. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  53. package/components/common/pages/packages/Packages.vue +208 -208
  54. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  55. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  56. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  57. package/components/common/portlets/tag/Portlet.vue +433 -433
  58. package/components/common/recursionTree/RecursionTree.vue +223 -223
  59. package/components/common/select/button/ButtonDropdown.vue +108 -108
  60. package/components/common/spiceConsole/Drawer.vue +370 -370
  61. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  62. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  63. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  64. package/components/common/split/vertical/Vertical.vue +160 -160
  65. package/components/common/tools/Actions.vue +188 -188
  66. package/components/common/vm/actions/add/Add.vue +622 -622
  67. package/components/common/vm/actions/clone/Clone.vue +639 -639
  68. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  69. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  70. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  71. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  72. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  73. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  141. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  142. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  143. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  144. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  145. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  146. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  147. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  148. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  149. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  150. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  151. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  152. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  153. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  154. package/composables/productNameLocal.ts +30 -30
  155. package/composables/useAppVersion.ts +21 -21
  156. package/package.json +3 -3
  157. package/package.json~ +3 -3
  158. package/plugins/date.ts +233 -233
  159. package/plugins/directives.ts +24 -24
  160. package/public/spice-console/lib/images/bitmap.js +203 -203
  161. package/public/spice-console/network/spicechannel.js +383 -383
  162. package/store/main/mutations.ts +7 -7
  163. package/store/main/state.ts +7 -7
  164. package/store/tasks/mappers/recentTasks.ts +64 -64
  165. package/components/common/graph/Graph.vue~ +0 -104
  166. package/components/common/graph/graphNew/GraphNew.vue +0 -194
  167. package/components/common/graph/graphNew/lib/models/enums.ts +0 -9
  168. package/components/common/monitor/overview/Overview.vue~ +0 -132
@@ -1,7 +1,7 @@
1
- import type { UI_I_MainState } from '~/store/main/lib/interfaces'
2
-
3
- export default {
4
- M_MENU_PINED(state: UI_I_MainState, payload: boolean): void {
5
- state.isMenuPined = payload
6
- },
7
- }
1
+ import type { UI_I_MainState } from '~/store/main/lib/interfaces'
2
+
3
+ export default {
4
+ M_MENU_PINED(state: UI_I_MainState, payload: boolean): void {
5
+ state.isMenuPined = payload
6
+ },
7
+ }
@@ -1,7 +1,7 @@
1
- import type {UI_I_MainState} from "~/store/main/lib/interfaces";
2
-
3
- const state: UI_I_MainState = {
4
- isMenuPined: false,
5
- }
6
-
7
- export default state
1
+ import type {UI_I_MainState} from "~/store/main/lib/interfaces";
2
+
3
+ const state: UI_I_MainState = {
4
+ isMenuPined: false,
5
+ }
6
+
7
+ export default state
@@ -1,64 +1,64 @@
1
- import {
2
- UI_E_RecentTaskStatus,
3
- UI_E_IconNameByRecentTaskStatus,
4
- } from '~/lib/models/store/tasks/enums'
5
- import type {
6
- API_UI_I_RecentTask,
7
- UI_I_RecentTask,
8
- } from '~/lib/models/store/tasks/interfaces'
9
- import { base64 } from '~/lib/utils/base64'
10
-
11
- export const recentTasks = (
12
- data: API_UI_I_RecentTask<string>
13
- ): UI_I_RecentTask<string> => {
14
- const items =
15
- data.items
16
- ?.sort((a, b) => {
17
- return b.start_time - a.start_time
18
- })
19
- .map((task) => {
20
- let args: any = {}
21
- try {
22
- args = base64.decode(task.args)
23
- } catch (error) {
24
- args = {}
25
- }
26
-
27
- let completion: string = task.completion + '' || '--'
28
- let execution: string | number = Math.abs(task.start_time - task.completion)
29
- let queuedFor: number = task.start_time - task.creation_time
30
- let startTime: string = task.start_time + '' || '--'
31
- // Обрабатываем данные когда задачка в ожидании
32
- if (task.status === 0) {
33
- completion = '--'
34
- execution = '--'
35
- queuedFor = 0
36
- startTime = (Date.now() / 1000) + ''
37
- }
38
-
39
- return {
40
- args,
41
- completion,
42
- execution,
43
- queuedFor,
44
- startTime,
45
- details: task.details,
46
- error: task.error,
47
- initiator: task.initiator,
48
- server: task.server,
49
- statusIcon: UI_E_IconNameByRecentTaskStatus[task.status],
50
- statusText: task.error || UI_E_RecentTaskStatus[task.status],
51
- status: task.status,
52
- target: task.target,
53
- targetType: task.target_type,
54
- taskName: task.task_name,
55
- id: task.id,
56
- zone: task.zone,
57
- extra: task.extra,
58
- }
59
- }) || []
60
- return {
61
- items,
62
- last: data.last,
63
- }
64
- }
1
+ import {
2
+ UI_E_RecentTaskStatus,
3
+ UI_E_IconNameByRecentTaskStatus,
4
+ } from '~/lib/models/store/tasks/enums'
5
+ import type {
6
+ API_UI_I_RecentTask,
7
+ UI_I_RecentTask,
8
+ } from '~/lib/models/store/tasks/interfaces'
9
+ import { base64 } from '~/lib/utils/base64'
10
+
11
+ export const recentTasks = (
12
+ data: API_UI_I_RecentTask<string>
13
+ ): UI_I_RecentTask<string> => {
14
+ const items =
15
+ data.items
16
+ ?.sort((a, b) => {
17
+ return b.start_time - a.start_time
18
+ })
19
+ .map((task) => {
20
+ let args: any = {}
21
+ try {
22
+ args = base64.decode(task.args)
23
+ } catch (error) {
24
+ args = {}
25
+ }
26
+
27
+ let completion: string = task.completion + '' || '--'
28
+ let execution: string | number = Math.abs(task.start_time - task.completion)
29
+ let queuedFor: number = task.start_time - task.creation_time
30
+ let startTime: string = task.start_time + '' || '--'
31
+ // Обрабатываем данные когда задачка в ожидании
32
+ if (task.status === 0) {
33
+ completion = '--'
34
+ execution = '--'
35
+ queuedFor = 0
36
+ startTime = (Date.now() / 1000) + ''
37
+ }
38
+
39
+ return {
40
+ args,
41
+ completion,
42
+ execution,
43
+ queuedFor,
44
+ startTime,
45
+ details: task.details,
46
+ error: task.error,
47
+ initiator: task.initiator,
48
+ server: task.server,
49
+ statusIcon: UI_E_IconNameByRecentTaskStatus[task.status],
50
+ statusText: task.error || UI_E_RecentTaskStatus[task.status],
51
+ status: task.status,
52
+ target: task.target,
53
+ targetType: task.target_type,
54
+ taskName: task.task_name,
55
+ id: task.id,
56
+ zone: task.zone,
57
+ extra: task.extra,
58
+ }
59
+ }) || []
60
+ return {
61
+ items,
62
+ last: data.last,
63
+ }
64
+ }
@@ -1,104 +0,0 @@
1
- <template>
2
- <common-graph-new v-if="isNewView" :chart-options="chartOptions" />
3
- <common-graph-old v-else :chart-options="chartOptions" />
4
- </template>
5
-
6
- <script setup lang="ts">
7
- import type {
8
- I_LineGraph,
9
- I_DiskGraph,
10
- } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
11
-
12
- const props = defineProps<{
13
- chart?: any
14
- data: I_LineGraph | I_DiskGraph
15
- update: number
16
- exportType?: string
17
- selectedRow?: number[]
18
- }>()
19
-
20
- const { $store }: any = useNuxtApp()
21
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
-
23
- let localChart: any = null
24
- const exportChart = (type: string): void => {
25
- if (type === 'png') {
26
- localChart.exportChart({
27
- type: 'image/png',
28
- })
29
- } else if (type === 'jpeg') {
30
- localChart.exportChart({
31
- type: 'image/jpeg',
32
- })
33
- } else if (type === 'svg') {
34
- localChart.exportChart({
35
- type: 'image/svg+xml',
36
- })
37
- } else if (type === 'csv') {
38
- localChart.downloadCSV()
39
- }
40
- }
41
-
42
- const chartOptions = ref<I_LineGraph | I_DiskGraph | null>(null)
43
- const initGraph = (): void => {
44
- if (!props.data) return
45
- setTimeout(() => {
46
- chartOptions.value = props.data
47
- }, 500)
48
- }
49
-
50
- watch(
51
- () => props.update,
52
- (newValue) => {
53
- newValue && initGraph()
54
- },
55
- { immediate: true }
56
- )
57
-
58
- watch(
59
- () => props.exportType,
60
- (newValue) => {
61
- if (!newValue) return
62
-
63
- exportChart(newValue)
64
- }
65
- )
66
-
67
- watch(
68
- () => props.chart,
69
- (newValue) => {
70
- if (newValue.series) localChart = newValue
71
- },
72
- { deep: true }
73
- )
74
-
75
- const updateSeriesStrokeWidth = (data: number[]): void => {
76
- if (!localChart) return
77
-
78
- const newChartOptions = chartOptions.value
79
- newChartOptions.series.forEach((_: any, key: number) => {
80
- newChartOptions.series[key].lineWidth = 1.5
81
-
82
- if (data.includes(key)) newChartOptions.series[key].lineWidth = 3
83
- })
84
-
85
- chartOptions.value = newChartOptions
86
- }
87
-
88
- watch(
89
- () => props.selectedRow,
90
- (newValue) => newValue && updateSeriesStrokeWidth(newValue)
91
- )
92
- </script>
93
-
94
- <style scoped lang="scss">
95
- .graph-content {
96
- width: 100%;
97
- //height: inherit;
98
- height: 100%;
99
-
100
- .graph-block {
101
- height: 100%;
102
- }
103
- }
104
- </style>
@@ -1,194 +0,0 @@
1
- <template>
2
- <div
3
- ref="chartContainer"
4
- :class="[
5
- 'graph-content',
6
- { 'header-in-block': props.isHeaderInBlock },
7
- { 'full-screen': isFullscreen },
8
- ]"
9
- >
10
- <template v-if="props.chartOptions">
11
- <client-only>
12
- <div class="metric-header">
13
- <span class="chart-title">{{ props.chartOptions.title.text }}</span>
14
- <div class="chart-export-dropdown-container">
15
- <ui-button
16
- :test-id="`button-metric-${uniqueId}`"
17
- is-without-sizes
18
- is-without-height
19
- variant="text"
20
- :class="['metric-export-button', { active: isShowDropdown }]"
21
- @click="isShowDropdown = !isShowDropdown"
22
- >
23
- <ui-icon name="burger" width="20" height="20" />
24
- </ui-button>
25
- <ui-dropdown
26
- :test-id="`metric-${uniqueId}-dropdown`"
27
- :show="isShowDropdown"
28
- :items="dropdownItems"
29
- :elem-id="`button-metric-${uniqueId}`"
30
- left
31
- width="max-content"
32
- @select="onSelect($event, key)"
33
- @hide="isShowDropdown = false"
34
- />
35
- </div>
36
- </div>
37
- <highchart
38
- :options="props.chartOptions"
39
- :modules="['exporting', 'export-data']"
40
- class="graph-block"
41
- />
42
- </client-only>
43
- </template>
44
- </div>
45
- </template>
46
-
47
- <script setup lang="ts">
48
- import { useFullscreen } from '@vueuse/core'
49
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
50
- import type { UI_I_Localization } from '~/lib/models/interfaces'
51
- import { E_ChartExportIconByKey } from '~/components/common/graph/graphNew/lib/models/enums'
52
-
53
- const props = withDefaults(
54
- defineProps<{
55
- chartOptions: any
56
- isHeaderInBlock?: boolean
57
- }>(),
58
- {
59
- isHeaderInBlock: true,
60
- }
61
- )
62
- const emits = defineEmits<{
63
- (event: 'select-item', value: string): void
64
- }>()
65
-
66
- const localization = computed<UI_I_Localization>(() => useLocal())
67
-
68
- const uniqueId = ref<number>(useUniqueId())
69
-
70
- const chartContainer = ref<any>(null)
71
- const { isFullscreen, toggle } = useFullscreen(chartContainer)
72
-
73
- const isShowDropdown = ref<boolean>(false)
74
- const dropdownItems = computed<UI_I_Dropdown[]>(() => {
75
- const result = []
76
-
77
- const exportItems = props.chartOptions?.exporting?.menuItemDefinitions
78
- for (const key in exportItems) {
79
- if (!exportItems[key].isHide)
80
- result.push({
81
- text: exportItems[key].text,
82
- value: key,
83
- iconName: E_ChartExportIconByKey[key],
84
- divider: key === 'printChart',
85
- })
86
- }
87
-
88
- if (isFullscreen.value) {
89
- result.map((item) => {
90
- if (item.value === 'viewFullscreen') {
91
- item.text = localization.value.common.exitFullscreen
92
- item.iconName = 'exit-full-screen'
93
- }
94
-
95
- return item
96
- })
97
- }
98
-
99
- return result
100
- })
101
-
102
- const onSelect = (value: string): void => {
103
- switch (value) {
104
- case 'viewFullscreen':
105
- toggle()
106
- break
107
- default:
108
- emits('select-item', value)
109
- }
110
- }
111
- </script>
112
-
113
- <style>
114
- :root {
115
- --chart-block-title-color: #4d5d69;
116
- --chart-block-header-bg-color: #ffffff;
117
- --chart-block-export-button-color: #4d5d69;
118
- --chart-block-export-button-hover-color: #213444;
119
- --chart-block-export-button-active-color: #008fd6;
120
- }
121
- :root.dark-theme {
122
- --chart-block-title-color: #e9eaec;
123
- --chart-block-header-bg-color: #334453;
124
- --chart-block-export-button-color: #e9eaec;
125
- --chart-block-export-button-hover-color: #ffffff;
126
- --chart-block-export-button-active-color: #2ba2de;
127
- }
128
- </style>
129
- <style scoped lang="scss">
130
- .graph-content {
131
- display: flex;
132
- flex-direction: column;
133
- width: 100%;
134
- height: 100%;
135
- box-shadow: 0 1px 4px 0 #00000014;
136
- border-radius: 8px;
137
-
138
- &.full-screen {
139
- .metric-header {
140
- border-radius: 0;
141
-
142
- .chart-title {
143
- font-size: 22px;
144
- }
145
- .metric-export-button {
146
- svg {
147
- width: 24px;
148
- height: 24px;
149
- }
150
- }
151
- }
152
- .graph-block {
153
- border-radius: 0;
154
- }
155
- }
156
- .metric-header {
157
- display: grid;
158
- align-items: center;
159
- grid-template-columns: max-content max-content;
160
- justify-content: space-between;
161
- padding: 16px;
162
- background-color: var(--chart-block-header-bg-color);
163
- border-radius: 8px 8px 0px 0px;
164
-
165
- .chart-title {
166
- color: var(--chart-block-title-color);
167
- font-family: Inter;
168
- font-size: 16px;
169
- font-weight: 500;
170
- }
171
- .chart-export-dropdown-container {
172
- position: relative;
173
-
174
- .metric-export-button {
175
- color: var(--chart-block-export-button-color);
176
-
177
- &:hover {
178
- color: var(--chart-block-export-button-hover-color);
179
- }
180
- &.active {
181
- color: var(--chart-block-export-button-active-color);
182
- }
183
- }
184
- }
185
- }
186
-
187
- .graph-block {
188
- height: 100%;
189
- overflow: hidden;
190
- border-radius: 0px 0px 8px 8px;
191
- background-color: var(--chart-block-header-bg-color);
192
- }
193
- }
194
- </style>
@@ -1,9 +0,0 @@
1
- export enum E_ChartExportIconByKey {
2
- 'openNewWindow' = 'new-tab',
3
- 'printChart' = 'print',
4
- 'viewFullscreen' = 'view-full-screen',
5
- 'downloadPNG' = 'download-2',
6
- 'downloadJPEG' = 'download-2',
7
- 'downloadSVG' = 'download-2',
8
- 'downloadCSV' = 'download-2',
9
- }
@@ -1,132 +0,0 @@
1
- <template>
2
- <common-monitor-overview-new
3
- v-if="isNewView"
4
- :charts="chartsLocal"
5
- :all-data="allData"
6
- :update-helper="updateHelper"
7
- />
8
- <common-monitor-overview-old
9
- v-else
10
- :charts="chartsLocal"
11
- :all-data="allData"
12
- :update-helper="updateHelper"
13
- />
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import { format } from 'date-fns'
18
- import type {
19
- I_SeriesColumn,
20
- I_SeriesLine,
21
- I_ColumnGraph,
22
- I_LineGraph,
23
- } from '~/node_modules/bfg-nuxt-3-graph/graph/lib/models/interfaces'
24
- import {
25
- columnGraphDataFunc,
26
- graphDataFunc,
27
- } from '~/node_modules/bfg-nuxt-3-graph/graph/lib/utils/renderGraph'
28
- import type { UI_I_Localization } from '~/lib/models/interfaces'
29
- import type { UI_I_GraphDataSettingItem } from '~/components/common/monitor/lib/models/interfaces'
30
-
31
- const props = defineProps<{
32
- charts: UI_I_GraphDataSettingItem[]
33
- themeMode?: string
34
- formatDate?: string
35
- formatTime?: string
36
- graphType: string
37
- }>()
38
-
39
- const { $formattedDatetime, $store }: any = useNuxtApp()
40
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
-
42
- const localization = computed<UI_I_Localization>(() => useLocal())
43
-
44
- const allData = ref<UI_I_GraphDataSettingItem[]>([])
45
-
46
- const chartsLocal = ref<any>([])
47
-
48
- const getCurrentChart = (chart: any): void => {
49
- chartsLocal.value = chart
50
- }
51
-
52
- const instanceOfSeriesLine = (
53
- object: I_SeriesLine | I_SeriesColumn
54
- ): object is I_SeriesLine => {
55
- return 'lines' in object
56
- }
57
-
58
- const getCurrentData = (
59
- chart: UI_I_GraphDataSettingItem,
60
- chartType: string
61
- ): I_LineGraph | I_ColumnGraph | null => {
62
- if (!chart || !chart.data) return null
63
-
64
- const themeMode = useLocalStorage('themeMode') || props.themeMode
65
- const isDarkMode = themeMode === 'dark-theme'
66
-
67
- let graphData = null
68
-
69
- if (chartType === 'column' && !instanceOfSeriesLine(chart.data)) {
70
- graphData = columnGraphDataFunc({
71
- chart,
72
- isDarkMode,
73
- localization: localization.value,
74
- })
75
- } else if (instanceOfSeriesLine(chart.data)) {
76
- graphData = graphDataFunc({
77
- graphData: chart.data,
78
- isDarkMode: isDarkMode,
79
- localization: localization.value,
80
- fullScreenCallBack: () => {},
81
- disabledTitle: false,
82
- disabledExportButton: true,
83
- disabledLegends: true,
84
- graphType: props.graphType,
85
- width: 700,
86
- chartCallBack: getCurrentChart,
87
- formattedDatetime: $formattedDatetime,
88
- format: format,
89
- formatDate: props.formatDate,
90
- timeFormat: props.formatTime,
91
- })
92
- }
93
-
94
- return graphData
95
- }
96
-
97
- const updateHelper = ref<number>(0)
98
-
99
- const updateGraph = (charts: Array<UI_I_GraphDataSettingItem | null>): void => {
100
- allData.value = []
101
- charts.forEach((chart) => {
102
- if (chart && chart.data) {
103
- const constructedData = getCurrentData(chart, chart.chartType)
104
- if (constructedData)
105
- allData.value.push({
106
- title: chart.title,
107
- loader: chart.loader,
108
- data: constructedData,
109
- chartType: 'column',
110
- })
111
- } else {
112
- allData.value.push({
113
- title: '',
114
- loader: chart.loader,
115
- data: null,
116
- chartType: 'column',
117
- })
118
- }
119
- })
120
- updateHelper.value++
121
- }
122
-
123
- watch(
124
- () => props.charts,
125
- (newValue) => {
126
- updateGraph(newValue)
127
- },
128
- { deep: true, immediate: true }
129
- )
130
- </script>
131
-
132
- <style scoped lang="scss"></style>