bfg-common 1.4.731 → 1.4.732

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 (153) hide show
  1. package/assets/localization/local_be.json +1 -0
  2. package/assets/localization/local_en.json +1 -0
  3. package/assets/localization/local_hy.json +1 -0
  4. package/assets/localization/local_kk.json +1 -0
  5. package/assets/localization/local_ru.json +1 -0
  6. package/assets/localization/local_zh.json +1 -0
  7. package/assets/scss/common/normalize.scss +361 -361
  8. package/components/atoms/TheIcon3.vue +50 -50
  9. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  10. package/components/atoms/select/TheSelect.vue +1 -10
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1696 -1696
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +91 -91
  15. package/components/common/browse/BrowseNew.vue +237 -237
  16. package/components/common/browse/BrowseOld.vue +217 -217
  17. package/components/common/browse/blocks/contents/Files.vue +37 -37
  18. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  19. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/{monitor/advanced/tools/chartOptionsModal → chartOptionsModal}/counters/timespan/form/Form.vue +544 -539
  22. package/components/common/{pages/hardwareHealth/historyTestimony/tools/chartOptionsModal → chartOptionsModal}/counters/timespan/form/lib/config/dateForm.ts +116 -115
  23. package/components/common/context/lib/models/interfaces.ts +30 -30
  24. package/components/common/context/recursion/Recursion.vue +86 -86
  25. package/components/common/context/recursion/RecursionOld.vue +213 -213
  26. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  27. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  28. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +150 -150
  29. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +300 -300
  30. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  31. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  32. package/components/common/monitor/advanced/Advanced.vue +5 -0
  33. package/components/common/monitor/advanced/tools/Tools.vue +9 -2
  34. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +9 -2
  35. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +2 -0
  36. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +95 -93
  37. package/components/common/monitor/overview/filters/Filters.vue +3 -0
  38. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +15 -5
  39. package/components/common/monitor/overview/filters/customIntervalModal/lib/config/dateChecker.ts +24 -14
  40. package/components/common/pages/hardwareHealth/HardwareHealth.vue +12 -5
  41. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +456 -451
  42. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +387 -380
  43. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +13 -6
  44. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +94 -94
  45. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +66 -66
  46. package/components/common/pages/home/StatusContent.vue +49 -49
  47. package/components/common/pages/home/headline/Headline.vue +44 -44
  48. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  49. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  50. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  51. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  52. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  53. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  54. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  55. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  56. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  57. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  58. package/components/common/pages/home/widgets/vms/VmsNew.vue +101 -101
  59. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  60. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  61. package/components/common/recursionTree/RecursionTree.vue +223 -223
  62. package/components/common/select/button/ButtonDropdown.vue +108 -108
  63. package/components/common/spiceConsole/Drawer.vue +370 -370
  64. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  65. package/components/common/split/vertical/Vertical.vue +160 -160
  66. package/components/common/vm/actions/add/Add.vue +0 -2
  67. package/components/common/vm/actions/clone/Clone.vue +0 -2
  68. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  69. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +0 -3
  70. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +0 -2
  71. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +0 -2
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +1 -9
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +2 -5
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +1 -3
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +4 -6
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +142 -184
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +5 -31
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +5 -31
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +2 -9
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +4 -11
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +1 -1
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +1 -1
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  136. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  137. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  138. package/components/common/vm/actions/editSettings/EditSettings.vue +0 -3
  139. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +0 -2
  140. package/components/common/vm/actions/editSettings/new/New.vue +0 -2
  141. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  142. package/composables/productNameLocal.ts +30 -30
  143. package/composables/useAppVersion.ts +21 -21
  144. package/package.json +1 -1
  145. package/plugins/date.ts +233 -233
  146. package/plugins/recursion.ts +311 -311
  147. package/public/spice-console/lib/images/bitmap.js +203 -203
  148. package/public/spice-console/network/spicechannel.js +383 -383
  149. package/store/main/mutations.ts +7 -7
  150. package/store/main/state.ts +7 -7
  151. package/store/tasks/mappers/recentTasks.ts +64 -64
  152. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +0 -114
  153. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/form/Form.vue +0 -539
@@ -1,539 +0,0 @@
1
- <template>
2
- <div class="chart-option-timespan-split">
3
- <div class="vertical-flex-container">
4
- <div class="timespan-objects-section-direction">
5
- <label for="chart-timespan-type-select"
6
- >{{ localization.inventoryMonitor.timespan }}:</label
7
- >
8
- <div class="vertical-flex-container chart-option-timespan-settings">
9
- <div class="timespan-select chart-option-setting-row">
10
- <div class="view-select-label horizontal-flex-container">
11
- <div class="select">
12
- <select
13
- id="chart-timespan-type-select"
14
- v-model="localSelectedTimespan"
15
- data-id="chart-timespan-type-select"
16
- >
17
- <option
18
- v-for="(item, index) in timespanOptions"
19
- :key="index"
20
- :value="item.value"
21
- >
22
- {{ item.text }}
23
- </option>
24
- </select>
25
- </div>
26
- </div>
27
- </div>
28
- <div
29
- :class="[
30
- 'custom-timespan-settings-container',
31
- { active: localSelectedTimespan === 'custom_interval' },
32
- ]"
33
- >
34
- <table>
35
- <tbody>
36
- <tr>
37
- <td class="relative">
38
- <input
39
- id="custom-time-lastInput"
40
- v-model="localTimespanPeriodType"
41
- data-id="custom-time-lastInput"
42
- type="radio"
43
- value="last"
44
- class="custom-radio-button"
45
- name="lastFrom"
46
- />
47
- <label
48
- for="custom-time-lastInput"
49
- class="custom-radio-label"
50
- >
51
- {{ periodTypeText }}:
52
- </label>
53
- </td>
54
- <td>
55
- <div
56
- :class="[
57
- 'custom-timespan-type-last-container',
58
- { active: localTimespanPeriodType === 'last' },
59
- ]"
60
- >
61
- <input
62
- id="chart-option-setting-row"
63
- v-model="localLast"
64
- data-id="chart-option-setting-row"
65
- type="number"
66
- class="chart-option-setting-row custom-time-input"
67
- />
68
- <div
69
- class="chart-option-setting-row custom-time-input inline-block"
70
- >
71
- <div
72
- class="view-select-label horizontal-flex-container"
73
- >
74
- <div class="select">
75
- <select
76
- id="chart-timespan-type-select"
77
- v-model="localSelectedCustomTime"
78
- data-id="chart-timespan-type-select"
79
- >
80
- <option
81
- v-for="(item, index) in customTimeOptions"
82
- :key="index"
83
- :value="item.value"
84
- >
85
- {{ item.text }}
86
- </option>
87
- </select>
88
- </div>
89
- </div>
90
- </div>
91
- </div>
92
- </td>
93
- </tr>
94
- <tr>
95
- <td class="relative">
96
- <input
97
- id="custom-time-fromInput"
98
- v-model="localTimespanPeriodType"
99
- data-id="custom-time-from-input"
100
- type="radio"
101
- value="period"
102
- class="custom-radio-button"
103
- name="lastFrom"
104
- />
105
- <label
106
- for="custom-time-fromInput"
107
- class="custom-radio-label text-capitalize text-right"
108
- >{{ localization.common.from2 }}:
109
- </label>
110
- </td>
111
- <td>
112
- <div
113
- :class="[
114
- 'date-container-row disabled-container calendar-date-row',
115
- { active: localTimespanPeriodType === 'period' },
116
- ]"
117
- >
118
- <input
119
- id="current-date-from"
120
- v-model.lazy="localCurrentDateFrom"
121
- data-id="current-date-from-input"
122
- type="text"
123
- class="chart-option-setting-row custom-time-input first-from"
124
- />
125
- <div class="section-datepicker">
126
- <atoms-datepicker
127
- v-model="dateFrom"
128
- :lang="props.language"
129
- class="calendar-from calendar-popup btn-show-hide-calendar"
130
- @update="onUpdateDateFrom"
131
- />
132
- </div>
133
- <input
134
- id="current-time-from"
135
- v-model="currentTimeFrom"
136
- data-id="current-time-from-input"
137
- type="text"
138
- class="chart-option-setting-row custom-time-input"
139
- />
140
- </div>
141
- </td>
142
- </tr>
143
- <tr>
144
- <td class="custom-time-label-text text-right">
145
- {{ localization.common.to2 }}:
146
- </td>
147
- <td>
148
- <div
149
- :class="[
150
- 'date-container-row disabled-container calendar-date-row',
151
- { active: localTimespanPeriodType === 'period' },
152
- ]"
153
- >
154
- <input
155
- id="current-date-to"
156
- v-model.lazy="currentDateTo"
157
- data-id="current-date-to-input"
158
- type="text"
159
- class="chart-option-setting-row custom-time-input first-to"
160
- />
161
- <div class="section-datepicker">
162
- <atoms-datepicker
163
- v-model="dateTo"
164
- :lang="props.language"
165
- class="calendar-from calendar-popup btn-show-hide-calendar"
166
- @update="onUpdateDateTo"
167
- />
168
- </div>
169
- <input
170
- id="current-time-to"
171
- v-model="currentTimeTo"
172
- data-id="current-time-to-input"
173
- type="text"
174
- class="chart-option-setting-row custom-time-input"
175
- />
176
- </div>
177
- </td>
178
- </tr>
179
- <tr>
180
- <td></td>
181
- <td
182
- :class="[
183
- 'disabled-container',
184
- { active: localTimespanPeriodType === 'period' },
185
- ]"
186
- >
187
- <span> ({{ localization.inventoryMonitor.isoTimeFormat }}) </span>
188
- </td>
189
- </tr>
190
- </tbody>
191
- </table>
192
- </div>
193
- </div>
194
- </div>
195
- <div class="horizontal-flex-container chart-type-container">
196
- <div class="view-select-label horizontal-flex-container">
197
- <label for="chart-type-select" class="label-select"
198
- >{{ localization.inventoryMonitor.chartType }}:</label
199
- >
200
- <div class="select">
201
- <select
202
- id="chart-type-select"
203
- v-model="chartType"
204
- data-id="chart-type-select"
205
- >
206
- <option
207
- v-for="(item, index) in chartTypeOptions"
208
- :key="index"
209
- :value="item.value"
210
- >
211
- {{ item.text }}
212
- </option>
213
- </select>
214
- </div>
215
- </div>
216
- </div>
217
- </div>
218
- </div>
219
- </template>
220
-
221
- <script setup lang="ts">
222
- import { format } from 'date-fns'
223
- import type { UI_I_Localization } from '~/lib/models/interfaces'
224
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
225
- import {
226
- timespanFunc,
227
- customTimeFunc,
228
- chartTypeFunc,
229
- } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/form/lib/config/dateForm'
230
-
231
- const props = defineProps<{
232
- language: string
233
- selectedChartType: string
234
- selectedTimespanType: string
235
- unitsCount: number
236
- timespanPeriodType: string
237
- selectedCustomTime: string
238
- customDateFrom: string
239
- customDateTo: string
240
- customTimeFrom: string
241
- customTimeTo: string
242
- }>()
243
-
244
- const emits = defineEmits<{
245
- (event: 'update-chart-type', value: string): void
246
- (event: 'update-custom-time', value: string): void
247
- (event: 'update-timespan-type', value: string): void
248
- (event: 'update-unit-count', value: number): void
249
- (event: 'update-timespan-period-type', value: string): void
250
- (event: 'update-custom-date-from', value: string): void
251
- (event: 'update-custom-date-to', value: string): void
252
- (event: 'update-custom-time-from', value: string): void
253
- (event: 'update-custom-time-to', value: string): void
254
- }>()
255
-
256
- const { $formattedDate, $isDate, $getTimeFormat, $getUnixByDate } = useNuxtApp()
257
-
258
- const localization = computed<UI_I_Localization>(() => useLocal())
259
-
260
- const timespanOptions = computed<UI_I_OptionItem[]>(() =>
261
- timespanFunc(localization.value)
262
- )
263
- const localSelectedTimespan = ref<string>(
264
- props.selectedTimespanType || timespanOptions.value[0].value
265
- )
266
- watch(
267
- () => props.selectedTimespanType,
268
- (newValue) => {
269
- localSelectedTimespan.value = newValue || timespanOptions.value[0].value
270
- }
271
- )
272
- const localTimespanPeriodType = ref<string>('last')
273
- watch(
274
- () => props.timespanPeriodType,
275
- (newValue) => {
276
- localTimespanPeriodType.value = newValue || 'last'
277
- },
278
- { immediate: true }
279
- )
280
-
281
- watch(
282
- localSelectedTimespan,
283
- (newValue) => {
284
- emits('update-timespan-type', newValue)
285
- },
286
- { immediate: true }
287
- )
288
-
289
- watch(
290
- localTimespanPeriodType,
291
- (newValue) => {
292
- const currentValue = newValue || 'period'
293
- emits('update-timespan-period-type', currentValue)
294
- },
295
- { immediate: true }
296
- )
297
-
298
- const localLast = ref<number>(1)
299
- watch(
300
- localLast,
301
- (newValue) => {
302
- emits('update-unit-count', newValue)
303
- },
304
- { immediate: true }
305
- )
306
- watch(
307
- () => props.unitsCount,
308
- (newValue) => {
309
- localLast.value = newValue > 0 ? newValue : 1
310
- },
311
- { immediate: true }
312
- )
313
-
314
- const localSelectedCustomTime = ref<string>('hours')
315
- const customTimeOptions = computed<UI_I_OptionItem[]>(() => {
316
- const lang = useLocalStorage('lang')
317
-
318
- return customTimeFunc(localization.value, localLast.value, lang)
319
- })
320
- watch(
321
- () => props.selectedCustomTime,
322
- (newValue) => {
323
- localSelectedCustomTime.value = newValue || 'hours'
324
- },
325
- { immediate: true }
326
- )
327
- watch(
328
- localSelectedCustomTime,
329
- (newValue) => {
330
- emits('update-custom-time', newValue)
331
- },
332
- { immediate: true }
333
- )
334
-
335
- const chartType = ref<string>('line_graph')
336
- const chartTypeOptions = computed<UI_I_OptionItem[]>(() =>
337
- chartTypeFunc(localization.value)
338
- )
339
-
340
- const periodTypeText = computed<string>(() => {
341
- let text = ''
342
- const lang = useLocalStorage('lang')
343
-
344
- if (lang !== 'ru_RU') text = localization.value.common.last
345
- else text = getCorrectRuPeriodTypeText(localLast.value)
346
-
347
- return text
348
- })
349
-
350
- const getCorrectRuPeriodTypeText = (hours: number): string => {
351
- let prefix: string
352
-
353
- if (!hours) return getCorrectRuPeriodTypeText.prefix
354
-
355
- if (hours % 10 === 1 && hours % 100 !== 11) prefix = 'Последний'
356
- else prefix = 'Последние'
357
-
358
- getCorrectRuPeriodTypeText.prefix = prefix
359
- return prefix
360
- }
361
-
362
- const setCurrentChartType = (): void => {
363
- const selected = props.selectedChartType
364
- let result = 'line_graph'
365
-
366
- if (selected === 'spline') result = 'line_graph'
367
- else if (selected === 'area') result = 'stacked_graph'
368
-
369
- chartType.value = result
370
- }
371
-
372
- watch(
373
- () => props.selectedChartType,
374
- () => {
375
- setCurrentChartType()
376
- },
377
- { immediate: true }
378
- )
379
-
380
- watch(
381
- chartType,
382
- (newValue) => {
383
- let currentValue = 'spline'
384
-
385
- if (newValue === 'line_graph') currentValue = 'spline'
386
- else if (newValue === 'stacked_graph') currentValue = 'area'
387
-
388
- emits('update-chart-type', currentValue)
389
- },
390
- { immediate: true }
391
- )
392
-
393
- const yesterday = new Date().setDate(new Date().getDate() - 1)
394
- const dateFrom = ref<number>(yesterday)
395
- const dateTo = ref<number>(new Date().getTime())
396
-
397
- const localCurrentDateFrom = ref<string>('')
398
- const currentDateTo = ref<string>('')
399
- const currentTimeFrom = ref<string>('')
400
- const currentTimeTo = ref<string>('')
401
-
402
- const getCurrentTime = (): void => {
403
- localCurrentDateFrom.value =
404
- props.customDateFrom || $formattedDate(yesterday, '')
405
- currentDateTo.value = props.customDateTo || $formattedDate(new Date(), '')
406
-
407
- const currentTime = format(new Date(), $getTimeFormat(true))
408
- currentTimeFrom.value = props.customTimeFrom || currentTime
409
- currentTimeTo.value = props.customTimeTo || currentTime
410
- }
411
-
412
- const onUpdateDateFrom = (value: number): void => {
413
- if (!value) return
414
-
415
- localCurrentDateFrom.value = $formattedDate(new Date(value), '')
416
- }
417
- watch(localCurrentDateFrom, (newValue) => {
418
- emits('update-custom-date-from', newValue)
419
- if (!newValue) return
420
-
421
- if ($isDate(newValue)) dateFrom.value = $getUnixByDate(newValue)
422
- })
423
-
424
- const onUpdateDateTo = (value: number): void => {
425
- if (!value) return
426
-
427
- currentDateTo.value = $formattedDate(new Date(value), '')
428
- }
429
- watch(currentDateTo, (newValue) => {
430
- emits('update-custom-date-to', newValue)
431
- if (!newValue) return
432
-
433
- if ($isDate(newValue)) dateTo.value = $getUnixByDate(newValue)
434
- })
435
- watch(currentTimeFrom, (newValue) => {
436
- emits('update-custom-time-from', newValue)
437
- })
438
- watch(currentTimeTo, (newValue) => {
439
- emits('update-custom-time-to', newValue)
440
- })
441
-
442
- onMounted(() => {
443
- getCurrentTime()
444
- })
445
- </script>
446
-
447
- <style scoped lang="scss">
448
- .chart-option-timespan-split {
449
- overflow-x: auto;
450
- //flex-basis: 56%;
451
- padding: 5px;
452
-
453
- .timespan-objects-section-direction {
454
- display: flex;
455
- flex-direction: row;
456
- align-items: flex-start;
457
-
458
- .chart-option-timespan-settings {
459
- margin-left: 15px;
460
-
461
- .chart-option-setting-row {
462
- width: 150px;
463
- margin-bottom: 5px;
464
- }
465
-
466
- .custom-radio-button {
467
- position: absolute;
468
- opacity: 0;
469
-
470
- &:checked + .custom-radio-label:before {
471
- box-shadow: inset 0 0 0 6px #0079b8;
472
- border: none;
473
- }
474
- }
475
- .custom-radio-label {
476
- display: block;
477
- position: relative;
478
- min-height: 19.2px;
479
- padding-left: 23px;
480
- cursor: pointer;
481
- line-height: 19.2px;
482
- color: #454545;
483
-
484
- &:before {
485
- position: absolute;
486
- top: 3px;
487
- left: 0;
488
- content: '';
489
- display: inline-block;
490
- height: 16px;
491
- width: 16px;
492
- border: 0.8px solid #565656;
493
- border-radius: 50%;
494
- }
495
- }
496
-
497
- .calendar-date-row {
498
- display: flex;
499
- align-items: center;
500
-
501
- .custom-time-input.first-from,
502
- .custom-time-input.first-to {
503
- max-width: 114px;
504
- }
505
- .btn-show-hide-calendar {
506
- margin: 0 9px;
507
- cursor: pointer;
508
- }
509
- }
510
-
511
- .custom-time-input {
512
- margin-left: 8px;
513
- margin-right: 8px;
514
- max-width: 140px;
515
- }
516
- }
517
-
518
- .custom-timespan-settings-container:not(.active),
519
- .custom-timespan-type-last-container:not(.active),
520
- .disabled-container:not(.active) {
521
- opacity: 0.6;
522
- pointer-events: none;
523
- }
524
- }
525
-
526
- .chart-type-container {
527
- margin-top: 15px;
528
-
529
- .horizontal-flex-container {
530
- display: flex;
531
- flex-direction: row;
532
-
533
- .select {
534
- margin-left: 15px;
535
- }
536
- }
537
- }
538
- }
539
- </style>