bfg-common 1.4.723 → 1.4.725

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 (35) hide show
  1. package/assets/localization/local_be.json +5 -2
  2. package/assets/localization/local_en.json +5 -2
  3. package/assets/localization/local_hy.json +5 -2
  4. package/assets/localization/local_kk.json +5 -2
  5. package/assets/localization/local_ru.json +5 -2
  6. package/assets/localization/local_zh.json +5 -2
  7. package/assets/scss/clarity/local_ar.json +2916 -0
  8. package/assets/scss/common/normalize.scss +6 -0
  9. package/components/common/browse/blocks/contents/Files.vue +1 -1
  10. package/components/common/layout/theHeader/lib/models/enums.ts +1 -0
  11. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +5 -2
  12. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +36 -20
  13. package/components/common/monitor/advanced/Advanced.vue +244 -244
  14. package/components/common/monitor/advanced/tools/Tools.vue +447 -447
  15. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +511 -511
  16. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +108 -108
  17. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +95 -95
  18. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +544 -544
  19. package/components/common/monitor/overview/filters/Filters.vue +235 -235
  20. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +250 -250
  21. package/components/common/monitor/overview/filters/customIntervalModal/lib/config/dateChecker.ts +62 -62
  22. package/components/common/pages/hardwareHealth/HardwareHealth.vue +213 -213
  23. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +456 -456
  24. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +387 -387
  25. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +494 -494
  26. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +96 -96
  27. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +68 -68
  28. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/form/Form.vue +544 -544
  29. package/components/common/recursionTree/RecursionTree.vue +29 -18
  30. package/components/common/selectLanguage/lib/config/config.ts +5 -0
  31. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +17 -2
  32. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +11 -3
  33. package/composables/useLocal.ts +5 -0
  34. package/layouts/auth.vue +1 -0
  35. package/package.json +1 -1
@@ -26,6 +26,12 @@ html:not(.is-new-view) {
26
26
  }
27
27
  }
28
28
 
29
+ [dir="rtl"] {
30
+ .tree-node-text {
31
+ text-align: right;
32
+ }
33
+ }
34
+
29
35
  * button:focus {
30
36
  outline: none;
31
37
  }
@@ -4,7 +4,7 @@
4
4
  :selected-folder-files="props.selectedFolderFiles"
5
5
  :selected-file="props.selectedFile"
6
6
  :browse-loading="props.browseLoading"
7
- @select-file="emits('select-file', $events)"
7
+ @select-file="onSelectFile"
8
8
  />
9
9
  <common-browse-blocks-contents-files-old
10
10
  v-else
@@ -1,4 +1,5 @@
1
1
  export enum UI_E_Languages {
2
+ 'ar_SA' = 'ar',
2
3
  'en_US' = 'en',
3
4
  'ru_RU' = 'ru',
4
5
  'hy_AM' = 'hy',
@@ -5,7 +5,7 @@
5
5
  :description="description"
6
6
  :radio-options="radioOptions"
7
7
  :language-mode="languageMode"
8
- :locales="locales"
8
+ :locales="localsLocal"
9
9
  @update-language="onSelectLang"
10
10
  @update-is-browser="onUpdateIsBrowser"
11
11
  />
@@ -15,7 +15,7 @@
15
15
  :description="description"
16
16
  :radio-options="radioOptions"
17
17
  :language-mode="languageMode"
18
- :locales="locales"
18
+ :locales="localsLocal"
19
19
  @update-language="onSelectLang"
20
20
  @update-is-browser="onUpdateIsBrowser"
21
21
  />
@@ -107,4 +107,7 @@ watch(
107
107
  },
108
108
  { immediate: true }
109
109
  )
110
+
111
+ // TODO remove
112
+ const localsLocal = ref<any>(locales.filter((_, i) => i > 0))
110
113
  </script>
@@ -62,7 +62,9 @@
62
62
  :disabled="props.disabledPin"
63
63
  @change="emits('change-menu-pin')"
64
64
  />
65
- <label for="pin-menu-control">{{ localization.common.pinMenu }}</label>
65
+ <label for="pin-menu-control">{{
66
+ localization.common.pinMenu
67
+ }}</label>
66
68
  </div>
67
69
  </div>
68
70
  </div>
@@ -95,6 +97,34 @@ const menuPined = defineModel<boolean>('menuPined', {
95
97
  const localization = computed<UI_I_Localization>(() => useLocal())
96
98
  </script>
97
99
 
100
+ <style>
101
+ :root:not(.is-new-view) {
102
+ --vertical-nav-bg-color-old: rgba(232, 232, 232, 0.85);
103
+ --vertical-nav-item-color-old: #565656;
104
+ --vertical-nav-active-item-color-old: #fff;
105
+ --vertical-nav-divider-border-color-old: #ccc;
106
+ --vertical-border-color-old: tranparent;
107
+
108
+ /*rtl*/
109
+ --main-menu-trigger-icon-rotate: rotate(-90deg);
110
+ --main-menu-trigger-icon-rotate-closed: rotate(90deg);
111
+ --main-menu-trigger-icon-margin: 0 0.416666rem 0 auto;
112
+ }
113
+ :root:not(.is-new-view).dark-theme {
114
+ --vertical-nav-bg-color-old: #17242b;
115
+ --vertical-nav-item-color-old: #e9ecef;
116
+ --vertical-nav-active-item-color-old: #000;
117
+ --vertical-nav-divider-border-color-old: #495865;
118
+ --vertical-border-color-old: #495865;
119
+ }
120
+
121
+ :root:not(.is-new-view)[dir='rtl'] {
122
+ --main-menu-trigger-icon-rotate: rotate(90deg);
123
+ --main-menu-trigger-icon-rotate-closed: rotate(-90deg);
124
+ --main-menu-trigger-icon-margin: 0 auto 0 0.416666rem;
125
+ }
126
+ </style>
127
+
98
128
  <style scoped lang="scss">
99
129
  .main-navigation-panel {
100
130
  display: flex;
@@ -117,7 +147,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
117
147
  width: 48px;
118
148
  .nav-trigger {
119
149
  svg {
120
- transform: rotate(90deg);
150
+ transform: var(--main-menu-trigger-icon-rotate-closed);
121
151
  }
122
152
  }
123
153
  .nav-content {
@@ -140,13 +170,16 @@ const localization = computed<UI_I_Localization>(() => useLocal())
140
170
  .nav-trigger {
141
171
  margin-top: 0;
142
172
  outline: none;
173
+
143
174
  .nav-trigger-icon {
144
175
  height: 16px;
176
+ margin: var(--main-menu-trigger-icon-margin);
177
+
145
178
  svg {
146
179
  fill: var(--arrows-icon);
147
180
  width: 16px;
148
181
  height: 16px;
149
- transform: rotate(-90deg);
182
+ transform: var(--main-menu-trigger-icon-rotate);
150
183
  }
151
184
  }
152
185
  }
@@ -265,20 +298,3 @@ const localization = computed<UI_I_Localization>(() => useLocal())
265
298
  }
266
299
  }
267
300
  </style>
268
-
269
- <style>
270
- :root:not(.is-new-view) {
271
- --vertical-nav-bg-color-old: rgba(232, 232, 232, 0.85);
272
- --vertical-nav-item-color-old: #565656;
273
- --vertical-nav-active-item-color-old: #fff;
274
- --vertical-nav-divider-border-color-old: #ccc;
275
- --vertical-border-color-old: tranparent;
276
- }
277
- :root:not(.is-new-view).dark-theme {
278
- --vertical-nav-bg-color-old: #17242b;
279
- --vertical-nav-item-color-old: #e9ecef;
280
- --vertical-nav-active-item-color-old: #000;
281
- --vertical-nav-divider-border-color-old: #495865;
282
- --vertical-border-color-old: #495865;
283
- }
284
- </style>
@@ -1,244 +1,244 @@
1
- <template>
2
- <div id="advanced-page" class="fill-parent">
3
- <div class="routed-view-panel-layout">
4
- <div class="settingsViewHeader">
5
- <h3 class="settingsBlockTitle m-0">
6
- {{ localization.inventoryMonitor.advancedPerformance }}
7
- </h3>
8
- </div>
9
- <div v-if="props.isEmpty" class="empty-data">
10
- {{ localization.inventoryMonitor.emptyAdvancedGraphText }}
11
- </div>
12
- <div v-else class="fill-parent flex-column">
13
- <div class="vertical-flex-container fill-parent">
14
- <common-monitor-advanced-tools
15
- v-model:selected-timespan-type="localSelectedTimespanType"
16
- :type="props.type"
17
- :start-date="props.data?.pointStart || 0"
18
- :end-date="props.data?.pointEnd || 0"
19
- :chart-title="props.data?.groupName || ''"
20
- :language="props.language"
21
- :selected-counters-keys="props.selectedCountersKeys"
22
- :selected-metric="props.selectedMetric"
23
- :selected-metric-local="props.selectedMetricLocal"
24
- :disabled-period="props.disabledPeriod"
25
- :disabled-view="props.disabledView"
26
- :selected-chart-type="props.selectedChartType"
27
- :units-count="props.unitsCount"
28
- :period-type="props.periodType"
29
- :selected-custom-time="props.selectedCustomTime"
30
- :selected-chart-option-name="props.selectedChartOptionName"
31
- :custom-date-from="props.customDateFrom"
32
- :custom-date-to="props.customDateTo"
33
- :custom-time-from="props.customTimeFrom"
34
- :custom-time-to="props.customTimeTo"
35
- :total-cores="totalCores"
36
- :host-id="props.hostId"
37
- :selected-objects="props.selectedObjects"
38
- :project="props.project"
39
- :objects-loading="props.objectsLoading"
40
- :objects-data="props.objectsData"
41
- :valid-date-end="props.validDateEnd"
42
- :format-date="props.formatDate"
43
- @update-tools="emits('update-tools', $event)"
44
- @exporting="onExporting"
45
- @open-advanced-page="onGetEmptyPage"
46
- @select-row="emits('select-row', $event)"
47
- @select-metric-local="emits('select-metric-local', $event)"
48
- @update-chart-type="emits('update-chart-type', $event)"
49
- @update-timespan-type="emits('update-timespan-type', $event)"
50
- @update-unit-count="emits('update-unit-count', $event)"
51
- @update-period-type="emits('update-period-type', $event)"
52
- @update-custom-time="emits('update-custom-time', $event)"
53
- @delete-option="emits('delete-option')"
54
- @submit-options="emits('submit-options', $event)"
55
- />
56
-
57
- <div v-show="!props.data" class="empty-container">
58
- {{
59
- localization.inventoryMonitor
60
- .noPerformanceCurrentlySelectedMetrics
61
- }}
62
- </div>
63
-
64
- <div v-show="props.data">
65
- <div class="main-graphs-loader relative">
66
- <common-monitor-advanced-graph-view
67
- :loading="props.advancedLoading"
68
- :data="props.data"
69
- :update="update"
70
- :export="exportGraph"
71
- :selected-row="selectedRow"
72
- :dark-mode="props.darkMode"
73
- :formatted-datetime="props.formattedDatetime"
74
- :get-date-format="props.getDateFormat"
75
- :language="props.language"
76
- :selected-chart-type="props.selectedChartType"
77
- />
78
- <div class="datatable">
79
- <common-monitor-advanced-table
80
- :data="props.tableData"
81
- @select="onCheckSelectedRow"
82
- />
83
- </div>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
- </template>
91
-
92
- <script setup lang="ts">
93
- import type { UI_I_Localization } from '~/lib/models/interfaces'
94
- import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
95
- import type { I_SeriesLine } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
96
- import type { UI_I_MonitorGraphPayload } from '~/components/common/monitor/lib/models/interfaces'
97
- import type { UI_I_PerformanceItem } from '~/components/common/monitor/advanced/table/lib/models/interfaces'
98
- import type {
99
- UI_T_ChartHost,
100
- UI_T_ChartVm,
101
- } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
102
- import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
103
- import type { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
104
- import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
105
- import type { UI_T_Project } from '~/lib/models/types'
106
- import { getCountCores } from '~/components/common/monitor/advanced/tools/lib/utils/countCores'
107
-
108
- const props = defineProps<{
109
- type: UI_T_AdvancedType
110
- advancedLoading: boolean
111
- data: I_SeriesLine | null
112
- cpuCoresDataData: I_SeriesLine | null
113
- tableData: UI_I_PerformanceItem[] | []
114
- language: string
115
- darkMode: boolean
116
- formattedDatetime: any
117
- getDateFormat: any
118
- selectedCountersKeys: number[]
119
- selectedMetric: UI_T_ChartHost | UI_T_ChartVm
120
- selectedMetricLocal: UI_T_ChartHost | UI_T_ChartVm
121
- selectedChartType: string
122
- selectedTimespanType: string
123
- unitsCount: number
124
- periodType: string
125
- selectedCustomTime: string
126
- selectedChartOptionName: string
127
- customDateFrom: string
128
- customDateTo: string
129
- customTimeFrom: string
130
- customTimeTo: string
131
- hostId: string
132
- selectedObjects: string
133
- project: UI_T_Project
134
- objectsLoading: boolean
135
- objectsData: UI_I_ObjectItem[]
136
- validDateEnd: number
137
- formatDate: string
138
- disabledPeriod?: boolean
139
- disabledView?: boolean
140
- isEmpty?: boolean
141
- }>()
142
-
143
- const emits = defineEmits<{
144
- (event: 'update-tools', value: UI_I_MonitorGraphPayload): void
145
- (event: 'open-advanced-page'): void
146
- (event: 'update-selected-row', value: number[]): void
147
- (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
148
- (event: 'select-metric-local', value: string): void
149
- (event: 'update-chart-type', value: string): void
150
- (event: 'update-timespan-type', value: string): void
151
- (event: 'update-unit-count', value: number): void
152
- (event: 'update-period-type', value: string): void
153
- (event: 'update-custom-time', value: string): void
154
- (event: 'delete-option'): void
155
- (event: 'submit-options', value: UI_I_OptionsForm): void
156
- (event: 'update:selected-timespan-type', value: string): void
157
- }>()
158
-
159
- const localization = computed<UI_I_Localization>(() => useLocal())
160
-
161
- const localSelectedTimespanType = computed<string>({
162
- get() {
163
- return props.selectedTimespanType
164
- },
165
- set(newValue) {
166
- emits('update:selected-timespan-type', newValue)
167
- },
168
- })
169
-
170
- const totalCores = ref<number>(0)
171
- let isFirstUpdate = true
172
- watch(
173
- () => props.cpuCoresDataData,
174
- (newValue) => {
175
- if (!newValue || !isFirstUpdate) return
176
-
177
- totalCores.value = getCountCores(newValue)
178
- isFirstUpdate = false
179
- },
180
- { immediate: true }
181
- )
182
-
183
- const exportGraph = ref<string>('')
184
- const onExporting = (key: string): void => {
185
- exportGraph.value = key
186
- }
187
-
188
- const onGetEmptyPage = (): void => emits('open-advanced-page')
189
-
190
- const update = ref<number>(0)
191
-
192
- const selectedRow = ref<number[]>([])
193
- const onCheckSelectedRow = (data: number[]): void => {
194
- selectedRow.value = data
195
- }
196
- </script>
197
-
198
- <style scoped lang="scss">
199
- #advanced-page {
200
- overflow-x: hidden;
201
- }
202
- .fill-parent {
203
- flex-direction: column;
204
-
205
- .empty-data {
206
- height: 100%;
207
- display: flex;
208
- align-items: center;
209
- justify-content: center;
210
- }
211
- .empty-container {
212
- min-height: 300px;
213
- height: 100%;
214
- background-color: var(--block-view-bg-color5);
215
- display: flex;
216
- flex-grow: 1;
217
- flex-shrink: 1;
218
- justify-content: center;
219
- align-items: center;
220
- width: 100%;
221
- }
222
-
223
- .routed-view-panel-layout {
224
- width: 100%;
225
- height: 100%;
226
- box-sizing: border-box;
227
- display: flex;
228
- flex-direction: column;
229
-
230
- .settingsViewHeader {
231
- display: flex;
232
- align-items: center;
233
- box-sizing: border-box;
234
-
235
- .settingsBlockTitle {
236
- font-size: 22px;
237
- font-weight: 400;
238
- color: var(--light-white-100);
239
- padding: 4px 0 4px 2px;
240
- }
241
- }
242
- }
243
- }
244
- </style>
1
+ <template>
2
+ <div id="advanced-page" class="fill-parent">
3
+ <div class="routed-view-panel-layout">
4
+ <div class="settingsViewHeader">
5
+ <h3 class="settingsBlockTitle m-0">
6
+ {{ localization.inventoryMonitor.advancedPerformance }}
7
+ </h3>
8
+ </div>
9
+ <div v-if="props.isEmpty" class="empty-data">
10
+ {{ localization.inventoryMonitor.emptyAdvancedGraphText }}
11
+ </div>
12
+ <div v-else class="fill-parent flex-column">
13
+ <div class="vertical-flex-container fill-parent">
14
+ <common-monitor-advanced-tools
15
+ v-model:selected-timespan-type="localSelectedTimespanType"
16
+ :type="props.type"
17
+ :start-date="props.data?.pointStart || 0"
18
+ :end-date="props.data?.pointEnd || 0"
19
+ :chart-title="props.data?.groupName || ''"
20
+ :language="props.language"
21
+ :selected-counters-keys="props.selectedCountersKeys"
22
+ :selected-metric="props.selectedMetric"
23
+ :selected-metric-local="props.selectedMetricLocal"
24
+ :disabled-period="props.disabledPeriod"
25
+ :disabled-view="props.disabledView"
26
+ :selected-chart-type="props.selectedChartType"
27
+ :units-count="props.unitsCount"
28
+ :period-type="props.periodType"
29
+ :selected-custom-time="props.selectedCustomTime"
30
+ :selected-chart-option-name="props.selectedChartOptionName"
31
+ :custom-date-from="props.customDateFrom"
32
+ :custom-date-to="props.customDateTo"
33
+ :custom-time-from="props.customTimeFrom"
34
+ :custom-time-to="props.customTimeTo"
35
+ :total-cores="totalCores"
36
+ :host-id="props.hostId"
37
+ :selected-objects="props.selectedObjects"
38
+ :project="props.project"
39
+ :objects-loading="props.objectsLoading"
40
+ :objects-data="props.objectsData"
41
+ :valid-date-end="props.validDateEnd"
42
+ :format-date="props.formatDate"
43
+ @update-tools="emits('update-tools', $event)"
44
+ @exporting="onExporting"
45
+ @open-advanced-page="onGetEmptyPage"
46
+ @select-row="emits('select-row', $event)"
47
+ @select-metric-local="emits('select-metric-local', $event)"
48
+ @update-chart-type="emits('update-chart-type', $event)"
49
+ @update-timespan-type="emits('update-timespan-type', $event)"
50
+ @update-unit-count="emits('update-unit-count', $event)"
51
+ @update-period-type="emits('update-period-type', $event)"
52
+ @update-custom-time="emits('update-custom-time', $event)"
53
+ @delete-option="emits('delete-option')"
54
+ @submit-options="emits('submit-options', $event)"
55
+ />
56
+
57
+ <div v-show="!props.data" class="empty-container">
58
+ {{
59
+ localization.inventoryMonitor
60
+ .noPerformanceCurrentlySelectedMetrics
61
+ }}
62
+ </div>
63
+
64
+ <div v-show="props.data">
65
+ <div class="main-graphs-loader relative">
66
+ <common-monitor-advanced-graph-view
67
+ :loading="props.advancedLoading"
68
+ :data="props.data"
69
+ :update="update"
70
+ :export="exportGraph"
71
+ :selected-row="selectedRow"
72
+ :dark-mode="props.darkMode"
73
+ :formatted-datetime="props.formattedDatetime"
74
+ :get-date-format="props.getDateFormat"
75
+ :language="props.language"
76
+ :selected-chart-type="props.selectedChartType"
77
+ />
78
+ <div class="datatable">
79
+ <common-monitor-advanced-table
80
+ :data="props.tableData"
81
+ @select="onCheckSelectedRow"
82
+ />
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ </template>
91
+
92
+ <script setup lang="ts">
93
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
94
+ import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
95
+ import type { I_SeriesLine } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
96
+ import type { UI_I_MonitorGraphPayload } from '~/components/common/monitor/lib/models/interfaces'
97
+ import type { UI_I_PerformanceItem } from '~/components/common/monitor/advanced/table/lib/models/interfaces'
98
+ import type {
99
+ UI_T_ChartHost,
100
+ UI_T_ChartVm,
101
+ } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
102
+ import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
103
+ import type { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
104
+ import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
105
+ import type { UI_T_Project } from '~/lib/models/types'
106
+ import { getCountCores } from '~/components/common/monitor/advanced/tools/lib/utils/countCores'
107
+
108
+ const props = defineProps<{
109
+ type: UI_T_AdvancedType
110
+ advancedLoading: boolean
111
+ data: I_SeriesLine | null
112
+ cpuCoresDataData: I_SeriesLine | null
113
+ tableData: UI_I_PerformanceItem[] | []
114
+ language: string
115
+ darkMode: boolean
116
+ formattedDatetime: any
117
+ getDateFormat: any
118
+ selectedCountersKeys: number[]
119
+ selectedMetric: UI_T_ChartHost | UI_T_ChartVm
120
+ selectedMetricLocal: UI_T_ChartHost | UI_T_ChartVm
121
+ selectedChartType: string
122
+ selectedTimespanType: string
123
+ unitsCount: number
124
+ periodType: string
125
+ selectedCustomTime: string
126
+ selectedChartOptionName: string
127
+ customDateFrom: string
128
+ customDateTo: string
129
+ customTimeFrom: string
130
+ customTimeTo: string
131
+ hostId: string
132
+ selectedObjects: string
133
+ project: UI_T_Project
134
+ objectsLoading: boolean
135
+ objectsData: UI_I_ObjectItem[]
136
+ validDateEnd: number
137
+ formatDate: string
138
+ disabledPeriod?: boolean
139
+ disabledView?: boolean
140
+ isEmpty?: boolean
141
+ }>()
142
+
143
+ const emits = defineEmits<{
144
+ (event: 'update-tools', value: UI_I_MonitorGraphPayload): void
145
+ (event: 'open-advanced-page'): void
146
+ (event: 'update-selected-row', value: number[]): void
147
+ (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
148
+ (event: 'select-metric-local', value: string): void
149
+ (event: 'update-chart-type', value: string): void
150
+ (event: 'update-timespan-type', value: string): void
151
+ (event: 'update-unit-count', value: number): void
152
+ (event: 'update-period-type', value: string): void
153
+ (event: 'update-custom-time', value: string): void
154
+ (event: 'delete-option'): void
155
+ (event: 'submit-options', value: UI_I_OptionsForm): void
156
+ (event: 'update:selected-timespan-type', value: string): void
157
+ }>()
158
+
159
+ const localization = computed<UI_I_Localization>(() => useLocal())
160
+
161
+ const localSelectedTimespanType = computed<string>({
162
+ get() {
163
+ return props.selectedTimespanType
164
+ },
165
+ set(newValue) {
166
+ emits('update:selected-timespan-type', newValue)
167
+ },
168
+ })
169
+
170
+ const totalCores = ref<number>(0)
171
+ let isFirstUpdate = true
172
+ watch(
173
+ () => props.cpuCoresDataData,
174
+ (newValue) => {
175
+ if (!newValue || !isFirstUpdate) return
176
+
177
+ totalCores.value = getCountCores(newValue)
178
+ isFirstUpdate = false
179
+ },
180
+ { immediate: true }
181
+ )
182
+
183
+ const exportGraph = ref<string>('')
184
+ const onExporting = (key: string): void => {
185
+ exportGraph.value = key
186
+ }
187
+
188
+ const onGetEmptyPage = (): void => emits('open-advanced-page')
189
+
190
+ const update = ref<number>(0)
191
+
192
+ const selectedRow = ref<number[]>([])
193
+ const onCheckSelectedRow = (data: number[]): void => {
194
+ selectedRow.value = data
195
+ }
196
+ </script>
197
+
198
+ <style scoped lang="scss">
199
+ #advanced-page {
200
+ overflow-x: hidden;
201
+ }
202
+ .fill-parent {
203
+ flex-direction: column;
204
+
205
+ .empty-data {
206
+ height: 100%;
207
+ display: flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ }
211
+ .empty-container {
212
+ min-height: 300px;
213
+ height: 100%;
214
+ background-color: var(--block-view-bg-color5);
215
+ display: flex;
216
+ flex-grow: 1;
217
+ flex-shrink: 1;
218
+ justify-content: center;
219
+ align-items: center;
220
+ width: 100%;
221
+ }
222
+
223
+ .routed-view-panel-layout {
224
+ width: 100%;
225
+ height: 100%;
226
+ box-sizing: border-box;
227
+ display: flex;
228
+ flex-direction: column;
229
+
230
+ .settingsViewHeader {
231
+ display: flex;
232
+ align-items: center;
233
+ box-sizing: border-box;
234
+
235
+ .settingsBlockTitle {
236
+ font-size: 22px;
237
+ font-weight: 400;
238
+ color: var(--light-white-100);
239
+ padding: 4px 0 4px 2px;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ </style>