bfg-common 1.4.801 → 1.4.803

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 (171) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  8. package/components/atoms/stack/StackBlock.vue +185 -185
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  10. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/browse/BrowseNew.vue +237 -237
  14. package/components/common/browse/BrowseOld.vue +217 -217
  15. package/components/common/browse/blocks/contents/Files.vue +37 -37
  16. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  17. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  20. package/components/common/browse/lib/models/interfaces.ts +5 -5
  21. package/components/common/context/Context.vue +111 -111
  22. package/components/common/context/lib/models/interfaces.ts +30 -30
  23. package/components/common/context/recursion/Recursion.vue +87 -87
  24. package/components/common/context/recursion/RecursionNew.vue +237 -237
  25. package/components/common/context/recursion/RecursionOld.vue +227 -227
  26. package/components/common/details/DetailsItem.vue +109 -109
  27. package/components/common/diagramMain/Header.vue +211 -211
  28. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  29. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  30. package/components/common/diagramMain/lib/models/types.ts +21 -21
  31. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  32. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  33. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  34. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  35. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  36. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  37. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  38. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  39. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  40. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  41. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  42. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  43. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  44. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  45. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  46. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  54. package/components/common/diagramMain/port/Ports.vue +47 -47
  55. package/components/common/graph/Graph.vue +104 -104
  56. package/components/common/graph/GraphNew.vue +144 -71
  57. package/components/common/graph/GraphOld.vue +31 -31
  58. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  59. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  60. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  61. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  62. package/components/common/monitor/overview/Overview.vue +221 -214
  63. package/components/common/monitor/overview/OverviewNew.vue +136 -138
  64. package/components/common/monitor/overview/filters/Filters.vue +166 -167
  65. package/components/common/monitor/overview/filters/FiltersNew.vue +168 -122
  66. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  67. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +250 -250
  68. package/components/common/pages/home/StatusContent.vue +49 -49
  69. package/components/common/pages/home/headline/Headline.vue +45 -45
  70. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  71. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  72. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  73. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  74. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  75. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  76. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  77. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  78. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  79. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  80. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  81. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  82. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  83. package/components/common/pages/packages/Packages.vue +208 -208
  84. package/components/common/recursionTree/RecursionTree.vue +223 -223
  85. package/components/common/select/button/ButtonDropdown.vue +108 -108
  86. package/components/common/spiceConsole/Drawer.vue +370 -370
  87. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  88. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  89. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  90. package/components/common/split/vertical/Vertical.vue +160 -160
  91. package/components/common/vm/actions/add/Add.vue +621 -621
  92. package/components/common/vm/actions/clone/Clone.vue +639 -639
  93. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  94. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +271 -271
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +271 -271
  96. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +174 -174
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +357 -357
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  157. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  158. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  159. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  160. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  161. package/components/common/wizards/vm/migrate/Migrate.vue +288 -288
  162. package/composables/productNameLocal.ts +30 -30
  163. package/composables/useAppVersion.ts +21 -21
  164. package/package.json +1 -1
  165. package/plugins/date.ts +233 -233
  166. package/plugins/recursion.ts +311 -311
  167. package/public/spice-console/lib/images/bitmap.js +203 -203
  168. package/public/spice-console/network/spicechannel.js +383 -383
  169. package/store/main/mutations.ts +7 -7
  170. package/store/main/state.ts +7 -7
  171. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,214 +1,221 @@
1
- <template>
2
- <common-monitor-overview-new
3
- v-if="isNewView"
4
- :charts="props.charts"
5
- :all-data="allData"
6
- :update-helper="updateHelper"
7
- />
8
- <common-monitor-overview-old
9
- v-else
10
- :charts="props.charts"
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: Array<UI_I_GraphDataSettingItem | null>
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 charts = ref<any>([])
47
-
48
- const getCurrentChart = (chart: any): void => {
49
- charts.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(chart, localization.value, isDarkMode)
71
- } else if (instanceOfSeriesLine(chart.data)) {
72
- graphData = graphDataFunc(
73
- chart.data,
74
- isDarkMode,
75
- localization.value,
76
- () => {},
77
- false,
78
- true,
79
- true,
80
- props.graphType,
81
- '',
82
- 700,
83
- getCurrentChart,
84
- $formattedDatetime,
85
- format,
86
- props.formatDate,
87
- props.formatTime
88
- )
89
- }
90
-
91
- return graphData
92
- }
93
-
94
- const updateHelper = ref<number>(0)
95
-
96
- const updateGraph = (charts: Array<UI_I_GraphDataSettingItem | null>): void => {
97
- allData.value = []
98
- charts.forEach((chart) => {
99
- if (chart && chart.data) {
100
- const constructedData = getCurrentData(chart, chart.chartType)
101
- if (constructedData)
102
- allData.value.push({
103
- title: chart.title,
104
- loader: chart.loader,
105
- data: constructedData,
106
- chartType: 'column',
107
- })
108
- }
109
- })
110
- updateHelper.value++
111
- }
112
-
113
- watch(
114
- () => props.charts,
115
- (newValue) => {
116
- updateGraph(newValue)
117
- },
118
- { deep: true, immediate: true }
119
- )
120
- </script>
121
-
122
- <style>
123
- :root {
124
- --loader-bg-color: #ffffff;
125
- }
126
- :root.dark-theme {
127
- --loader-bg-color: #22343c;
128
- }
129
- </style>
130
-
131
- <style scoped lang="scss">
132
- .charts-view {
133
- position: relative;
134
- display: flex;
135
- flex-direction: row;
136
- flex-wrap: wrap;
137
- justify-content: space-between;
138
- overflow: auto;
139
- height: 100%;
140
-
141
- .graphic-loader-block {
142
- background-color: var(--loader-bg-color);
143
- height: 100%;
144
- display: flex;
145
- flex-direction: column;
146
- align-items: center;
147
- justify-content: center;
148
- }
149
-
150
- .graph-empty-block {
151
- display: flex;
152
- flex-direction: column;
153
- height: 100%;
154
- background-color: var(--loader-bg-color);
155
-
156
- .title {
157
- text-align: center;
158
- font-size: 18px;
159
- margin-top: 10px;
160
- color: var(--global-font-color);
161
- }
162
-
163
- .body-block {
164
- height: 100%;
165
- display: flex;
166
- justify-content: center;
167
- text-align: center;
168
- align-items: center;
169
- color: var(--global-font-color);
170
- }
171
- }
172
-
173
- .chart-container {
174
- box-sizing: border-box;
175
- flex-grow: 1;
176
- padding: 5px;
177
- min-height: 300px;
178
- height: 100%;
179
- min-width: 300px;
180
- width: 100%;
181
- position: relative;
182
-
183
- &:first-child:last-child {
184
- height: 100%;
185
- width: 100%;
186
- }
187
-
188
- &:first-child:nth-last-child(2),
189
- &:nth-child(2):last-child {
190
- width: 50%;
191
- height: 100%;
192
- }
193
- }
194
-
195
- .content-global-loading {
196
- width: 100%;
197
- height: 100%;
198
- display: flex;
199
- align-items: center;
200
- justify-content: center;
201
- color: var(--global-font-color);
202
- }
203
- }
204
- @media (min-width: 1280px) {
205
- .charts-view .chart-container {
206
- width: 50%;
207
- }
208
- }
209
- @media (min-height: 800px) {
210
- .charts-view .chart-container {
211
- height: 50%;
212
- }
213
- }
214
- </style>
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(chart, localization.value, isDarkMode)
71
+ } else if (instanceOfSeriesLine(chart.data)) {
72
+ graphData = graphDataFunc(
73
+ chart.data,
74
+ isDarkMode,
75
+ localization.value,
76
+ () => {},
77
+ false,
78
+ true,
79
+ true,
80
+ props.graphType,
81
+ '',
82
+ 700,
83
+ getCurrentChart,
84
+ $formattedDatetime,
85
+ format,
86
+ props.formatDate,
87
+ props.formatTime
88
+ )
89
+ }
90
+
91
+ return graphData
92
+ }
93
+
94
+ const updateHelper = ref<number>(0)
95
+
96
+ const updateGraph = (charts: Array<UI_I_GraphDataSettingItem | null>): void => {
97
+ allData.value = []
98
+ charts.forEach((chart) => {
99
+ if (chart && chart.data) {
100
+ const constructedData = getCurrentData(chart, chart.chartType)
101
+ if (constructedData)
102
+ allData.value.push({
103
+ title: chart.title,
104
+ loader: chart.loader,
105
+ data: constructedData,
106
+ chartType: 'column',
107
+ })
108
+ } else {
109
+ allData.value.push({
110
+ title: '',
111
+ loader: chart.loader,
112
+ data: null,
113
+ chartType: 'column',
114
+ })
115
+ }
116
+ })
117
+ updateHelper.value++
118
+ }
119
+
120
+ watch(
121
+ () => props.charts,
122
+ (newValue) => {
123
+ updateGraph(newValue)
124
+ },
125
+ { deep: true, immediate: true }
126
+ )
127
+ </script>
128
+
129
+ <style>
130
+ :root {
131
+ --loader-bg-color: #ffffff;
132
+ }
133
+ :root.dark-theme {
134
+ --loader-bg-color: #22343c;
135
+ }
136
+ </style>
137
+
138
+ <style scoped lang="scss">
139
+ .charts-view {
140
+ position: relative;
141
+ display: flex;
142
+ flex-direction: row;
143
+ flex-wrap: wrap;
144
+ justify-content: space-between;
145
+ overflow: auto;
146
+ height: 100%;
147
+
148
+ .graphic-loader-block {
149
+ background-color: var(--loader-bg-color);
150
+ height: 100%;
151
+ display: flex;
152
+ flex-direction: column;
153
+ align-items: center;
154
+ justify-content: center;
155
+ }
156
+
157
+ .graph-empty-block {
158
+ display: flex;
159
+ flex-direction: column;
160
+ height: 100%;
161
+ background-color: var(--loader-bg-color);
162
+
163
+ .title {
164
+ text-align: center;
165
+ font-size: 18px;
166
+ margin-top: 10px;
167
+ color: var(--global-font-color);
168
+ }
169
+
170
+ .body-block {
171
+ height: 100%;
172
+ display: flex;
173
+ justify-content: center;
174
+ text-align: center;
175
+ align-items: center;
176
+ color: var(--global-font-color);
177
+ }
178
+ }
179
+
180
+ .chart-container {
181
+ box-sizing: border-box;
182
+ flex-grow: 1;
183
+ padding: 5px;
184
+ min-height: 300px;
185
+ height: 100%;
186
+ min-width: 300px;
187
+ width: 100%;
188
+ position: relative;
189
+
190
+ &:first-child:last-child {
191
+ height: 100%;
192
+ width: 100%;
193
+ }
194
+
195
+ &:first-child:nth-last-child(2),
196
+ &:nth-child(2):last-child {
197
+ width: 50%;
198
+ height: 100%;
199
+ }
200
+ }
201
+
202
+ .content-global-loading {
203
+ width: 100%;
204
+ height: 100%;
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ color: var(--global-font-color);
209
+ }
210
+ }
211
+ @media (min-width: 1280px) {
212
+ .charts-view .chart-container {
213
+ width: 50%;
214
+ }
215
+ }
216
+ @media (min-height: 800px) {
217
+ .charts-view .chart-container {
218
+ height: 50%;
219
+ }
220
+ }
221
+ </style>