bfg-common 1.4.814 → 1.4.816

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 (174) 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 -144
  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 -221
  63. package/components/common/monitor/overview/OverviewNew.vue +142 -136
  64. package/components/common/monitor/overview/OverviewOld.vue +139 -137
  65. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  66. package/components/common/monitor/overview/filters/FiltersNew.vue +169 -168
  67. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  68. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -173
  69. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalNew.vue +181 -155
  70. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -155
  71. package/components/common/pages/home/StatusContent.vue +49 -49
  72. package/components/common/pages/home/headline/Headline.vue +45 -45
  73. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  74. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  75. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  76. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  77. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  78. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  79. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  80. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  81. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  82. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  83. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  84. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  85. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  86. package/components/common/pages/packages/Packages.vue +208 -208
  87. package/components/common/recursionTree/RecursionTree.vue +223 -223
  88. package/components/common/select/button/ButtonDropdown.vue +108 -108
  89. package/components/common/spiceConsole/Drawer.vue +370 -370
  90. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  91. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  92. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  93. package/components/common/split/vertical/Vertical.vue +160 -160
  94. package/components/common/vm/actions/add/Add.vue +621 -621
  95. package/components/common/vm/actions/clone/Clone.vue +639 -639
  96. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  97. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +271 -271
  98. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +271 -271
  99. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +174 -174
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +357 -357
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  160. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  161. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  162. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  163. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  164. package/components/common/wizards/vm/migrate/Migrate.vue +288 -288
  165. package/composables/productNameLocal.ts +30 -30
  166. package/composables/useAppVersion.ts +21 -21
  167. package/package.json +1 -1
  168. package/plugins/date.ts +233 -233
  169. package/plugins/recursion.ts +311 -311
  170. package/public/spice-console/lib/images/bitmap.js +203 -203
  171. package/public/spice-console/network/spicechannel.js +383 -383
  172. package/store/main/mutations.ts +7 -7
  173. package/store/main/state.ts +7 -7
  174. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,104 +1,104 @@
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
+ <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,144 +1,144 @@
1
- <template>
2
- <div class="graph-content">
3
- <template v-if="props.chartOptions">
4
- <client-only>
5
- <highchart
6
- :options="props.chartOptions"
7
- :modules="['exporting', 'export-data']"
8
- class="graph-block"
9
- />
10
- </client-only>
11
- </template>
12
- </div>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- const props = defineProps<{
17
- chartOptions: any
18
- }>()
19
- </script>
20
-
21
- <style>
22
- :root {
23
- --chart-background-color: #ffffff;
24
- --chart-menu-line-color: #4d5d69;
25
- --chart-menu-line-hover-color: #213444;
26
- --chart-menu-line-active-color: #008fd6;
27
- --chart-menu-background-color: #ffffff;
28
- --chart-menu-box-shadow: 0px 4px 20px 0px #0000001f;
29
- --chart-menu-border-color: #e9ebed;
30
- --chart-menu-item-color: #4d5d69;
31
- --chart-menu-item-hover-color: #182531;
32
- --chart-menu-item-hover-background-color: #e9ebed;
33
-
34
- --chart-menu-download-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
35
- --chart-menu-download-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
36
- --chart-menu-print-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%234D5D69' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
37
- --chart-menu-print-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23182531' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
38
- --chart-menu-full-screen-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
39
- --chart-menu-full-screen-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
40
- }
41
- :root.dark-theme {
42
- --chart-background-color: #334453;
43
- --chart-menu-line-color: #e9eaec;
44
- --chart-menu-line-hover-color: #ffffff;
45
- --chart-menu-line-active-color: #2ba2de;
46
- --chart-menu-background-color: #334453;
47
- --chart-menu-box-shadow: 0px 4px 20px 0px #0000001f,
48
- 0px -1px 12px 0px #00000014;
49
- --chart-menu-border-color: #e9ebed1f;
50
- --chart-menu-item-color: #e9eaec;
51
- --chart-menu-item-hover-color: #ffffff;
52
- --chart-menu-item-hover-background-color: #e9ebed0f;
53
-
54
- --chart-menu-download-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
55
- --chart-menu-download-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
56
- --chart-menu-print-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23E9EAEC' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
57
- --chart-menu-print-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23FFFFFF' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
58
- --chart-menu-full-screen-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
59
- --chart-menu-full-screen-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
60
- }
61
- </style>
62
- <style scoped lang="scss">
63
- .graph-content {
64
- width: 100%;
65
- //height: inherit;
66
- height: 100%;
67
-
68
- .graph-block {
69
- height: 100%;
70
- border-radius: 8px;
71
- box-shadow: 0px 1px 4px 0px #00000014;
72
- }
73
- }
74
-
75
- :deep(.highcharts-background) {
76
- fill: var(--chart-background-color);
77
- }
78
- :deep(.highcharts-button-box) {
79
- fill: transparent;
80
-
81
- &:hover + .highcharts-button-symbol {
82
- stroke: var(--chart-menu-line-hover-color);
83
- }
84
- }
85
- // TODO найти решение по лучше
86
- :deep(.highcharts-button-box[fill='#e6e9ff'] + .highcharts-button-symbol) {
87
- stroke: var(--chart-menu-line-active-color);
88
- }
89
- :deep(.highcharts-button-symbol) {
90
- stroke: var(--chart-menu-line-color);
91
- stroke-width: 2px;
92
- }
93
- :deep(.highcharts-menu) {
94
- display: flex;
95
- flex-direction: column;
96
- gap: 8px;
97
- background-color: var(--chart-menu-background-color) !important;
98
- box-shadow: var(--chart-menu-box-shadow) !important;
99
- padding: 8px !important;
100
- border-radius: 8px !important;
101
-
102
- .highcharts-menu-item {
103
- display: flex;
104
- align-items: center;
105
- gap: 8px;
106
- font-size: 13px !important;
107
- font-weight: 500 !important;
108
- color: var(--chart-menu-item-color) !important;
109
- padding: 8px !important;
110
-
111
- &:hover {
112
- color: var(--chart-menu-item-hover-color) !important;
113
- background-color: var(--chart-menu-item-hover-background-color) !important;
114
-
115
- &::before {
116
- content: var(--chart-menu-download-icon-hover);
117
- }
118
- &:first-child::before {
119
- content: var(--chart-menu-full-screen-icon-hover);
120
- }
121
- &:nth-child(2)::before {
122
- content: var(--chart-menu-print-icon-hover);
123
- }
124
- }
125
- &::before {
126
- content: var(--chart-menu-download-icon);
127
- display: inline-block;
128
- width: 16px;
129
- height: 16px;
130
- }
131
- &:first-child::before {
132
- content: var(--chart-menu-full-screen-icon);
133
- }
134
- &:nth-child(2)::before {
135
- content: var(--chart-menu-print-icon);
136
- }
137
- }
138
- hr {
139
- border-color: var(--chart-menu-border-color);
140
- border-style: solid;
141
- margin: 0 8px;
142
- }
143
- }
144
- </style>
1
+ <template>
2
+ <div class="graph-content">
3
+ <template v-if="props.chartOptions">
4
+ <client-only>
5
+ <highchart
6
+ :options="props.chartOptions"
7
+ :modules="['exporting', 'export-data']"
8
+ class="graph-block"
9
+ />
10
+ </client-only>
11
+ </template>
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ const props = defineProps<{
17
+ chartOptions: any
18
+ }>()
19
+ </script>
20
+
21
+ <style>
22
+ :root {
23
+ --chart-background-color: #ffffff;
24
+ --chart-menu-line-color: #4d5d69;
25
+ --chart-menu-line-hover-color: #213444;
26
+ --chart-menu-line-active-color: #008fd6;
27
+ --chart-menu-background-color: #ffffff;
28
+ --chart-menu-box-shadow: 0px 4px 20px 0px #0000001f;
29
+ --chart-menu-border-color: #e9ebed;
30
+ --chart-menu-item-color: #4d5d69;
31
+ --chart-menu-item-hover-color: #182531;
32
+ --chart-menu-item-hover-background-color: #e9ebed;
33
+
34
+ --chart-menu-download-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
35
+ --chart-menu-download-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
36
+ --chart-menu-print-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%234D5D69' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
37
+ --chart-menu-print-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23182531' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
38
+ --chart-menu-full-screen-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%234D5D69' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
39
+ --chart-menu-full-screen-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23182531' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
40
+ }
41
+ :root.dark-theme {
42
+ --chart-background-color: #334453;
43
+ --chart-menu-line-color: #e9eaec;
44
+ --chart-menu-line-hover-color: #ffffff;
45
+ --chart-menu-line-active-color: #2ba2de;
46
+ --chart-menu-background-color: #334453;
47
+ --chart-menu-box-shadow: 0px 4px 20px 0px #0000001f,
48
+ 0px -1px 12px 0px #00000014;
49
+ --chart-menu-border-color: #e9ebed1f;
50
+ --chart-menu-item-color: #e9eaec;
51
+ --chart-menu-item-hover-color: #ffffff;
52
+ --chart-menu-item-hover-background-color: #e9ebed0f;
53
+
54
+ --chart-menu-download-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
55
+ --chart-menu-download-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 10V12.6667C14 13.0203 13.8595 13.3594 13.6095 13.6095C13.3594 13.8595 13.0203 14 12.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V10' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.66602 6.66675L7.99935 10.0001L11.3327 6.66675' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 9.33333V2' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
56
+ --chart-menu-print-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23E9EAEC' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
57
+ --chart-menu-print-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4828)'%3E%3Cpath d='M4 5.33342V2.33341C4 1.96522 4.29848 1.66675 4.66667 1.66675H11.3333C11.7015 1.66675 12 1.96522 12 2.33341V5.33342' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.00065 11.6668H2.66732C1.93094 11.6668 1.33398 11.0699 1.33398 10.3335V6.66683C1.33398 5.93045 1.93094 5.3335 2.66732 5.3335H13.334C14.0704 5.3335 14.6673 5.93045 14.6673 6.66683V10.3335C14.6673 11.0699 14.0704 11.6668 13.334 11.6668H12.0007' stroke='%23FFFFFF' stroke-width='1.4'/%3E%3Cpath d='M11.3333 9H4.66667C4.29848 9 4 9.29848 4 9.66667V13.6667C4 14.0349 4.29848 14.3333 4.66667 14.3333H11.3333C11.7015 14.3333 12 14.0349 12 13.6667V9.66667C12 9.29848 11.7015 9 11.3333 9Z' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4828'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
58
+ --chart-menu-full-screen-icon: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23E9EAEC' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
59
+ --chart-menu-full-screen-icon-hover: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_8044_4891)'%3E%3Cpath d='M5.03769 1.33325H2.81547C2.42255 1.33325 2.04573 1.48934 1.7679 1.76717C1.49007 2.045 1.33398 2.42182 1.33398 2.81473V5.03696M14.6673 5.03696V2.81473C14.6673 2.42182 14.5112 2.045 14.2334 1.76717C13.9556 1.48934 13.5788 1.33325 13.1858 1.33325H10.9636M10.9636 14.6666H13.1858C13.5788 14.6666 13.9556 14.5105 14.2334 14.2327C14.5112 13.9548 14.6673 13.578 14.6673 13.1851V10.9629M1.33398 10.9629V13.1851C1.33398 13.578 1.49007 13.9548 1.7679 14.2327C2.04573 14.5105 2.42255 14.6666 2.81547 14.6666H5.03769' stroke='%23FFFFFF' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_8044_4891'%3E%3Crect width='16' height='16' fill='red'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
60
+ }
61
+ </style>
62
+ <style scoped lang="scss">
63
+ .graph-content {
64
+ width: 100%;
65
+ //height: inherit;
66
+ height: 100%;
67
+
68
+ .graph-block {
69
+ height: 100%;
70
+ border-radius: 8px;
71
+ box-shadow: 0px 1px 4px 0px #00000014;
72
+ }
73
+ }
74
+
75
+ :deep(.highcharts-background) {
76
+ fill: var(--chart-background-color);
77
+ }
78
+ :deep(.highcharts-button-box) {
79
+ fill: transparent;
80
+
81
+ &:hover + .highcharts-button-symbol {
82
+ stroke: var(--chart-menu-line-hover-color);
83
+ }
84
+ }
85
+ // TODO найти решение по лучше
86
+ :deep(.highcharts-button-box[fill='#e6e9ff'] + .highcharts-button-symbol) {
87
+ stroke: var(--chart-menu-line-active-color);
88
+ }
89
+ :deep(.highcharts-button-symbol) {
90
+ stroke: var(--chart-menu-line-color);
91
+ stroke-width: 2px;
92
+ }
93
+ :deep(.highcharts-menu) {
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 8px;
97
+ background-color: var(--chart-menu-background-color) !important;
98
+ box-shadow: var(--chart-menu-box-shadow) !important;
99
+ padding: 8px !important;
100
+ border-radius: 8px !important;
101
+
102
+ .highcharts-menu-item {
103
+ display: flex;
104
+ align-items: center;
105
+ gap: 8px;
106
+ font-size: 13px !important;
107
+ font-weight: 500 !important;
108
+ color: var(--chart-menu-item-color) !important;
109
+ padding: 8px !important;
110
+
111
+ &:hover {
112
+ color: var(--chart-menu-item-hover-color) !important;
113
+ background-color: var(--chart-menu-item-hover-background-color) !important;
114
+
115
+ &::before {
116
+ content: var(--chart-menu-download-icon-hover);
117
+ }
118
+ &:first-child::before {
119
+ content: var(--chart-menu-full-screen-icon-hover);
120
+ }
121
+ &:nth-child(2)::before {
122
+ content: var(--chart-menu-print-icon-hover);
123
+ }
124
+ }
125
+ &::before {
126
+ content: var(--chart-menu-download-icon);
127
+ display: inline-block;
128
+ width: 16px;
129
+ height: 16px;
130
+ }
131
+ &:first-child::before {
132
+ content: var(--chart-menu-full-screen-icon);
133
+ }
134
+ &:nth-child(2)::before {
135
+ content: var(--chart-menu-print-icon);
136
+ }
137
+ }
138
+ hr {
139
+ border-color: var(--chart-menu-border-color);
140
+ border-style: solid;
141
+ margin: 0 8px;
142
+ }
143
+ }
144
+ </style>
@@ -1,31 +1,31 @@
1
- <template>
2
- <div class="graph-content">
3
- <template v-if="props.chartOptions">
4
- <client-only>
5
- <highchart
6
- :options="props.chartOptions"
7
- :modules="['exporting', 'export-data']"
8
- class="graph-block"
9
- />
10
- </client-only>
11
- </template>
12
- </div>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- const props = defineProps<{
17
- chartOptions: any
18
- }>()
19
- </script>
20
-
21
- <style scoped lang="scss">
22
- .graph-content {
23
- width: 100%;
24
- //height: inherit;
25
- height: 100%;
26
-
27
- .graph-block {
28
- height: 100%;
29
- }
30
- }
31
- </style>
1
+ <template>
2
+ <div class="graph-content">
3
+ <template v-if="props.chartOptions">
4
+ <client-only>
5
+ <highchart
6
+ :options="props.chartOptions"
7
+ :modules="['exporting', 'export-data']"
8
+ class="graph-block"
9
+ />
10
+ </client-only>
11
+ </template>
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ const props = defineProps<{
17
+ chartOptions: any
18
+ }>()
19
+ </script>
20
+
21
+ <style scoped lang="scss">
22
+ .graph-content {
23
+ width: 100%;
24
+ //height: inherit;
25
+ height: 100%;
26
+
27
+ .graph-block {
28
+ height: 100%;
29
+ }
30
+ }
31
+ </style>