• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { TabPaneCurrentSelection } from '../sheet/TabPaneCurrentSelection';
17import { TabPaneFreq } from '../sheet/freq/TabPaneFreq';
18import { TabPaneCpuByThread } from '../sheet/cpu/TabPaneCpuByThread';
19import { SelectionParam } from '../../../bean/BoxSelection';
20import { TabPaneCpuByProcess } from '../sheet/cpu/TabPaneCpuByProcess';
21import { TabPaneCpuUsage } from '../sheet/cpu/TabPaneCpuUsage';
22import { TabPaneSPT } from '../sheet/cpu/TabPaneSPT';
23import { TabPanePTS } from '../sheet/cpu/TabPanePTS';
24import { TabPaneSlices } from '../sheet/process/TabPaneSlices';
25import { TabPaneCounter } from '../sheet/process/TabPaneCounter';
26import { TabPaneFps } from '../sheet/fps/TabPaneFps';
27import { TabPaneFlag } from '../timer-shaft/TabPaneFlag';
28import { TabPaneBoxChild } from '../sheet/cpu/TabPaneBoxChild';
29import { TabPaneNMStatstics } from '../sheet/native-memory/TabPaneNMStatstics';
30import { TabPaneNMemory } from '../sheet/native-memory/TabPaneNMemory';
31import { TabPaneNMSampleList } from '../sheet/native-memory/TabPaneNMSampleList';
32import { TabpanePerfProfile } from '../sheet/hiperf/TabPerfProfile';
33import { TabPanePerfSample } from '../sheet/hiperf/TabPerfSampleList';
34import { TabPaneLiveProcesses } from '../sheet/ability/TabPaneLiveProcesses';
35import { TabPaneHistoryProcesses } from '../sheet/ability/TabPaneHistoryProcesses';
36import { TabPaneCpuAbility } from '../sheet/ability/TabPaneCpuAbility';
37import { TabPaneMemoryAbility } from '../sheet/ability/TabPaneMemoryAbility';
38import { TabPaneDiskAbility } from '../sheet/ability/TabPaneDiskAbility';
39import { TabPaneNetworkAbility } from '../sheet/ability/TabPaneNetworkAbility';
40import { TabPaneFileStatistics } from '../sheet/file-system/TabPaneFilesystemStatistics';
41import { TabpaneFilesystemCalltree } from '../sheet/file-system/TabPaneFileSystemCalltree';
42import { TabPaneFileSystemEvents } from '../sheet/file-system/TabPaneFileSystemEvents';
43import { TabPaneFileSystemDescHistory } from '../sheet/file-system/TabPaneFileSystemDescHistory';
44import { TabPaneFileSystemDescTimeSlice } from '../sheet/file-system/TabPaneFileSystemDescTimeSlice';
45import { TabPaneSdkSlice } from '../sheet/sdk/TabPaneSdkSlice';
46import { TabPaneSdkCounter } from '../sheet/sdk/TabPaneSdkCounter';
47import { TabPaneCounterSample } from '../sheet/cpu/TabPaneCounterSample';
48import { TabPaneThreadStates } from '../sheet/process/TabPaneThreadStates';
49import { TabPaneThreadUsage } from '../sheet/process/TabPaneThreadUsage';
50import { TabPaneFrequencySample } from '../sheet/cpu/TabPaneFrequencySample';
51import { TabPaneEnergyAnomaly } from '../sheet/energy/TabPaneEnergyAnomaly';
52import { TabPaneSystemDetails } from '../sheet/energy/TabPaneSystemDetails';
53import { TabPanePowerDetails } from '../sheet/energy/TabPanePowerDetails';
54import { TabPanePowerBattery } from '../sheet/energy/TabPanePowerBattery';
55import { TabPaneCpuStateClick } from '../sheet/cpu/TabPaneCpuStateClick';
56import { TabPaneVirtualMemoryStatistics } from '../sheet/file-system/TabPaneVirtualMemoryStatistics';
57import { TabPaneIOTierStatistics } from '../sheet/file-system/TabPaneIOTierStatistics';
58import { TabPaneIOCallTree, TabPaneVMCallTree } from '../sheet/file-system/TabPaneIOCallTree';
59import { TabPaneIoCompletionTimes } from '../sheet/file-system/TabPaneIoCompletionTimes';
60import { TabPaneVirtualMemoryEvents } from '../sheet/file-system/TabPaneVMEvents';
61import { TabPaneSmapsStatistics } from '../sheet/smaps/TabPaneSmapsStatistics';
62import { TabPaneSmapsSample } from '../sheet/smaps/TabPaneSmapsSample';
63import { TabPaneFreqLimit } from '../sheet/freq/TabPaneFreqLimit';
64import { TabPaneCpuFreqLimits } from '../sheet/freq/TabPaneCpuFreqLimits';
65import { TabpaneNMCalltree } from '../sheet/native-memory/TabPaneNMCallTree';
66import { TabPaneClockCounter } from '../sheet/clock/TabPaneClockCounter';
67import { TabPaneXpowerCounter } from '../sheet/xpower/TabPaneXpowerCounter';
68import { TabPaneXpowerComponentTop } from '../sheet/xpower/TabPaneXpowerComponentTop';
69import { TabPaneXpowerComponentAudio } from '../sheet/xpower/TabPaneXpowerComponentAudio';
70import { TabPaneXpowerComponentDisplay } from '../sheet/xpower/TabPaneXpowerComponentDisplay';
71import { TabPaneXpowerComponentCamera } from '../sheet/xpower/TabPaneXpowerComponentCamera';
72import { TabPaneXpowerComponentCpu } from '../sheet/xpower/TabPaneXpowerComponentCpu';
73import { TabPaneXpowerStatistic } from '../sheet/xpower/TabPaneXpowerStatistic';
74import { TabPaneXpowerWifiBytes } from '../sheet/xpower/TabPaneXpowerWifiBytes';
75import { TabPaneXpowerWifiPackets } from '../sheet/xpower/TabPaneXpowerWifiPackets';
76import { TabPaneXpowerDisplay } from '../sheet/xpower/TabPaneXpowerAppDetailDisplay';
77import { TabPaneXpowerStatisticCurrentData } from '../sheet/xpower/TabPaneXpowerStatisticCurrentData';
78import { TabPaneXpowerThreadEnergy } from '../sheet/xpower/TabPaneXpowerThreadEnergy';
79import { TabPaneXpowerThreadLoad } from '../sheet/xpower/TabPaneXpowerThreadLoad';
80import { TabPaneXpowerThreadInfoSelection } from '../sheet/xpower/TabPaneXpowerThreadInfoSelection';
81import { TabPaneXpowerGpuFreq } from '../sheet/xpower/TabPaneXpowerGpuFreq';
82import { TabPaneXpowerGpuFreqSelection } from '../sheet/xpower/TabPaneXpowerGpuFreqSelection';
83import { TabPaneHang } from '../sheet/hang/TabPaneHang';
84import { TabPaneHangSummary } from '../sheet/hang/TabPaneHangSummary';
85import { TabPaneIrqCounter } from '../sheet/irq/TabPaneIrqCounter';
86import { TabPaneFrames } from '../sheet/jank/TabPaneFrames';
87import { TabPanePerfAnalysis } from '../sheet/hiperf/TabPanePerfAnalysis';
88import { TabPaneNMStatisticAnalysis } from '../sheet/native-memory/TabPaneNMStatisticAnalysis';
89import { TabPaneFilesystemStatisticsAnalysis } from '../sheet/file-system/TabPaneFilesystemStatisticsAnalysis';
90import { TabPaneIOTierStatisticsAnalysis } from '../sheet/file-system/TabPaneIOTierStatisticsAnalysis';
91import { TabPaneVirtualMemoryStatisticsAnalysis } from '../sheet/file-system/TabPaneVirtualMemoryStatisticsAnalysis';
92import { TabPaneCurrent } from '../sheet/TabPaneCurrent';
93import { TabPaneStartup } from '../sheet/process/TabPaneStartup';
94import { TabPaneStaticInit } from '../sheet/process/TabPaneStaticInit';
95import { TabPaneTaskFrames } from '../sheet/task/TabPaneTaskFrames';
96import { TabPaneFrameDynamic } from '../sheet/frame/TabPaneFrameDynamic';
97import { TabFrameSpacing } from '../sheet/frame/TabFrameSpacing';
98import { TabPaneSummary } from '../sheet/ark-ts/TabPaneSummary';
99import { TabPaneComparison } from '../sheet/ark-ts/TabPaneComparison';
100import { TabPaneJsCpuTopDown } from '../sheet/ark-ts/TabPaneJsCpuCallTree';
101import { TabPaneJsCpuBottomUp } from '../sheet/ark-ts/TabPaneJsCpuBottomUp';
102import { TabPaneJsCpuStatistics } from '../sheet/ark-ts/TabPaneJsCpuStatistics';
103import { TabPaneGpuClickSelect } from '../sheet/gpu/TabPaneGpuClickSelect';
104import { TabPaneGpuTotalBoxSelect } from '../sheet/gpu/TabPaneGpuTotalBoxSelect';
105import { TabPaneGpuWindowBoxSelect } from '../sheet/gpu/TabPaneGpuWindowBoxSelect';
106import { TabPaneGpuGL } from '../sheet/gpu/TabPaneGpuGL';
107import { TabPanePurgTotal } from '../sheet/ability/TabPanePurgTotal';
108import { TabPanePurgTotalSelection } from '../sheet/ability/TabPanePurgTotalSelection';
109import { TabPanePurgPin } from '../sheet/ability/TabPanePurgPin';
110import { TabPanePurgPinSelection } from '../sheet/ability/TabPanePurgPinSelection';
111import { TabPaneVmTrackerShmSelection } from '../sheet/vmtracker/TabPaneVmTrackerShmSelection';
112import { TabPaneVmTrackerShm } from '../sheet/vmtracker/TabPaneVmTrackerShm';
113import { TabPaneDmaAbility } from '../sheet/ability/TabPaneDmaAbility';
114import { TabPaneDmaSelectAbility } from '../sheet/ability/TabPaneDmaSelectAbility';
115import { TabPaneGpuMemoryAbility } from '../sheet/ability/TabPaneGpuMemoryAbility';
116import { TabPaneDmaVmTracker } from '../sheet/vmtracker/TabPaneDmaVmTracker';
117import { TabPaneGpuMemoryVmTracker } from '../sheet/vmtracker/TabPaneGpuMemoryVmTracker';
118import { TabPaneGpuMemorySelectAbility } from '../sheet/ability/TabPaneGpuMemorySelectAbility';
119import { TabPaneGpuMemorySelectVmTracker } from '../sheet/vmtracker/TabPaneGpuMemorySelectVmTracker';
120import { TabPaneDmaSelectVmTracker } from '../sheet/vmtracker/TabPaneDmaSelectVmTracker';
121import { TabpanePerfBottomUp } from '../sheet/hiperf/TabPerfBottomUp';
122import { TabPanePurgTotalComparisonAbility } from '../sheet/ability/TabPanePurgTotalComparisonAbility';
123import { TabPanePurgPinComparisonAbility } from '../sheet/ability/TabPanePurgPinComparisonAbility';
124import { TabPanePurgTotalComparisonVM } from '../sheet/vmtracker/TabPanePurgTotalComparisonVM';
125import { TabPanePurgPinComparisonVM } from '../sheet/vmtracker/TabPanePurgPinComparisonVM';
126import { TabPaneDmaAbilityComparison } from '../sheet/ability/TabPaneDmaAbilityComparison';
127import { TabPaneGpuMemoryComparison } from '../sheet/ability/TabPaneGpuMemoryComparison';
128import { TabPaneDmaVmTrackerComparison } from '../sheet/vmtracker/TabPaneDmaVmTrackerComparison';
129import { TabPaneGpuMemoryVmTrackerComparison } from '../sheet/vmtracker/TabPaneGpuMemoryVmTrackerComparison';
130import { TabPaneVmTrackerShmComparison } from '../sheet/vmtracker/TabPaneVmTrackerShmComparison';
131import { TabPaneSmapsComparison } from '../sheet/smaps/TabPaneSmapsComparison';
132import { TabPaneSmapsRecord } from '../sheet/smaps/TabPaneSmapsRecord';
133import { TabPaneGpuClickSelectComparison } from '../sheet/gpu/TabPaneGpuClickSelectComparison';
134import { TabPaneHiLogs } from '../sheet/hilog/TabPaneHiLogs';
135import { TabPaneHiLogSummary } from '../sheet/hilog/TabPaneHiLogSummary';
136import { TabPaneSchedPriority } from '../sheet/cpu/TabPaneSchedPriority';
137import { TabPaneGpuResourceVmTracker } from '../sheet/vmtracker/TabPaneGpuResourceVmTracker';
138import { TabPaneGpuGraph } from '../sheet/gpu/TabPaneGraph';
139import { TabPaneFreqUsage } from '../sheet/frequsage/TabPaneFreqUsage';
140import { TabPaneHisysEvents } from '../sheet/hisysevent/TabPaneHisysEvents';
141import { TabPaneHiSysEventSummary } from '../sheet/hisysevent/TabPaneHiSysEventSummary';
142import { TabPaneBinders } from '../sheet/binder/TabPaneBinders';
143import { TabPaneGpufreq } from '../sheet/gpufreq/TabPaneGpufreqUsage';
144import { TabPaneSampleInstruction } from '../sheet/bpftrace/TabPaneSampleInstruction';
145import { TabPaneDataCut } from '../sheet/TabPaneDataCut';
146import { TabPaneGpuCounterSelection } from '../sheet/gpu-counter/TabPaneGpuCounterSelection';
147import { TabPaneGpuCounter } from '../sheet/gpu-counter/TabPaneGpuCounter';
148import { TabPaneTimeParallel } from '../sheet/parallel/TabPaneTimeParallel';
149import { TabPaneMtParallel } from '../sheet/parallel/TabPaneMtParallel';
150import { TabPanePerfAsync } from '../sheet/hiperf/TabPerfAsyncList';
151import { TabPaneUserPlugin } from '../sheet/userPlugin/TabPaneUserPlugin';
152import { TabPaneDmaFence } from '../sheet/dma-fence/TabPaneDmaFenceSelect';
153import { TabPaneSliceChild } from '../sheet/process/TabPaneSliceChild';
154import { TabPerfFuncAsm } from '../sheet/hiperf/TabPerfFuncAsm';
155
156export let tabConfig: {
157  [key: string]: {
158    title: string
159    type: unknown
160    require?: (param: SelectionParam) => boolean
161  }
162} = {
163  'current-selection': {
164    title: 'Current Selection',
165    type: TabPaneCurrentSelection,
166  }, //cpu data click
167  'cpu-state-click': {
168    title: 'Cpu State',
169    type: TabPaneCpuStateClick,
170  },
171  'box-freq': {
172    title: 'Frequency',
173    type: TabPaneFreq,
174  }, //freq data click
175  'box-freq-limit': {
176    title: 'Frequency Limits',
177    type: TabPaneFreqLimit,
178  },
179  'box-cpu-freq-limit': {
180    title: 'Cpu Frequency Limits',
181    type: TabPaneCpuFreqLimits,
182    require: (param: SelectionParam) => param.cpuFreqLimit.length > 0,
183  },
184  'box-cpu-thread': {
185    title: 'CPU by thread',
186    type: TabPaneCpuByThread,
187    require: (param: SelectionParam) => param.cpus.length > 0,
188  }, //range select
189  'box-cpu-process': {
190    title: 'CPU by process',
191    type: TabPaneCpuByProcess,
192    require: (param: SelectionParam) => param.cpus.length > 0,
193  },
194  'box-cpu-usage': {
195    title: 'CPU Usage',
196    type: TabPaneCpuUsage,
197    require: (param: SelectionParam) => param.cpus.length > 0,
198  },
199  'box-spt': {
200    title: 'Thread Switches',
201    type: TabPaneSPT,
202    require: (param: SelectionParam) => param.cpus.length > 0,
203  },
204  'box-pts': {
205    title: 'Thread States',
206    type: TabPanePTS,
207    require: (param: SelectionParam) => param.cpus.length > 0,
208  },
209  'box-thread-states': {
210    title: 'Thread by State',
211    type: TabPaneThreadStates,
212    require: (param: SelectionParam) => param.threadIds.length > 0,
213  },
214  'box-process-startup': {
215    title: 'App Startups',
216    type: TabPaneStartup,
217    require: (param: SelectionParam) => param.processIds.length > 0 && param.startup,
218  },
219  'box-process-static-init': {
220    title: 'Static Initialization',
221    type: TabPaneStaticInit,
222    require: (param: SelectionParam) => param.processIds.length > 0 && param.staticInit,
223  },
224  'box-thread-usage': {
225    title: 'Thread Usage',
226    type: TabPaneThreadUsage,
227    require: (param: SelectionParam) => param.threadIds.length > 0,
228  },
229  'box-slices': {
230    title: 'Slices',
231    type: TabPaneSlices,
232    require: (param: SelectionParam) => param.funTids.length > 0 || param.funAsync.length > 0 || param.funCatAsync.length > 0,
233  },
234  'box-perf-analysis': {
235    title: 'Analysis',
236    type: TabPanePerfAnalysis,
237    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
238  },
239  'box-perf-bottom-up': {
240    title: 'Bottom Up',
241    type: TabpanePerfBottomUp,
242    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
243  },
244  'box-perf-profile': {
245    title: 'Perf Profile',
246    type: TabpanePerfProfile,
247    require: (param: SelectionParam) => param.perfSampleIds.length > 0 || param.threadIds.length > 0,
248  },
249  'box-perf-sample': {
250    title: 'Sample List',
251    type: TabPanePerfSample,
252    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
253  },
254  'box-perf-async': {
255    title: 'Async Call Profile',
256    type: TabPanePerfAsync,
257    require: (param: SelectionParam) => param.perfSampleIds.length > 0,
258  },
259  'box-counters': {
260    title: 'Counters',
261    type: TabPaneCounter,
262    require: (param: SelectionParam) => param.processTrackIds.length > 0 || param.virtualTrackIds.length > 0,
263  },
264  'box-clock-counters': {
265    title: 'Clock Counters',
266    type: TabPaneClockCounter,
267    require: (param: SelectionParam) => param.clockMapData.size > 0,
268  },
269  'box-xpower-counters': {
270    title: 'Xpower Counters',
271    type: TabPaneXpowerCounter,
272    require: (param: SelectionParam) => param.xpowerMapData.size > 0,
273  },
274  'box-xpower-component-top': {
275    title: 'Xpower Component Top',
276    type: TabPaneXpowerComponentTop,
277    require: (param: SelectionParam) => param.xpowerComponentTopMapData.size > 0,
278  },
279  'box-xpower-statistic': {
280    title: 'Xpower Statistic',
281    type: TabPaneXpowerStatistic,
282    require: (param: SelectionParam) => param.xpowerStatisticMapData.size > 0,
283  },
284  'box-xpower-display': {
285    title: 'Xpower Display Detail',
286    type: TabPaneXpowerDisplay,
287    require: (param: SelectionParam) => param.xpowerDisplayMapData.size > 0,
288  },
289  'box-xpower-wifiPackets': {
290    title: 'Xpower WifiPackets',
291    type: TabPaneXpowerWifiPackets,
292    require: (param: SelectionParam) => param.xpowerWifiPacketsMapData.size > 0,
293  },
294  'box-xpower-wifiBytes': {
295    title: 'Xpower WifiBytes',
296    type: TabPaneXpowerWifiBytes,
297    require: (param: SelectionParam) => param.xpowerWifiBytesMapData.size > 0,
298  },
299  'box-xpower-statistic-current-data': {
300    title: 'Xpower Statistic Current Data',
301    type: TabPaneXpowerStatisticCurrentData,
302  },
303  'box-xpower-thread-energy': {
304    title: 'Xpower Thread energy',
305    type: TabPaneXpowerThreadEnergy,
306    require: (param: SelectionParam) => param.xpowerThreadEnergyMapData.size > 0,
307  },
308  'box-xpower-thread-load': {
309    title: 'Xpower Thread Load',
310    type: TabPaneXpowerThreadLoad,
311    require: (param: SelectionParam) => param.xpowerThreadLoadMapData.size > 0,
312  },
313  'box-xpower-gpu-freq': {
314    title: 'Xpower Gpu Frequency',
315    type: TabPaneXpowerGpuFreq,
316    require: (param: SelectionParam) => param.xpowerGpuFreqMapData.size > 0,
317  },
318  'box-hang': {
319    title: 'Hangs',
320    type: TabPaneHang,
321    require: (param: SelectionParam) => param.hangMapData.size > 0,
322  },
323  'box-hang-summary': {
324    title: 'Hang Summary',
325    type: TabPaneHangSummary,
326    require: (param: SelectionParam) => param.hangMapData.size > 0,
327  },
328  'box-irq-counters': {
329    title: 'Irq Counters',
330    type: TabPaneIrqCounter,
331    require: (param: SelectionParam) => param.irqCallIds.length > 0 || param.softIrqCallIds.length > 0,
332  },
333  'box-fps': {
334    title: 'FPS',
335    type: TabPaneFps,
336    require: (param: SelectionParam) => param.hasFps,
337  },
338  'box-cpu-child': {
339    title: '',
340    type: TabPaneBoxChild,
341  },
342  'box-native-statstics': {
343    title: 'Statistics',
344    type: TabPaneNMStatstics,
345    require: (param: SelectionParam) => param.nativeMemory.length > 0,
346  },
347  'box-native-statistic-analysis': {
348    title: 'Analysis',
349    type: TabPaneNMStatisticAnalysis,
350    require: (param: SelectionParam) => param.nativeMemory.length > 0 || param.nativeMemoryStatistic.length > 0,
351  },
352  'box-native-calltree': {
353    title: 'Call Info',
354    type: TabpaneNMCalltree,
355    require: (param: SelectionParam) => param.nativeMemory.length > 0 || param.nativeMemoryStatistic.length > 0,
356  },
357  'box-native-memory': {
358    title: 'Native Memory',
359    type: TabPaneNMemory,
360    require: (param: SelectionParam) => param.nativeMemory.length > 0,
361  },
362  'box-native-sample': {
363    title: 'Snapshot List',
364    type: TabPaneNMSampleList,
365    require: (param: SelectionParam) => param.nativeMemory.length > 0,
366  },
367
368  'box-live-processes-child': {
369    title: 'Live Processes',
370    type: TabPaneLiveProcesses,
371    require: (param: SelectionParam) =>
372      param.cpuAbilityIds.length > 0 ||
373      (param.memoryAbilityIds.length > 0 && param.diskAbilityIds.length > 0) ||
374      param.networkAbilityIds.length > 0,
375  },
376  'box-history-processes-child': {
377    title: 'Processes History',
378    type: TabPaneHistoryProcesses,
379    require: (param: SelectionParam) =>
380      param.cpuAbilityIds.length > 0 ||
381      param.memoryAbilityIds.length > 0 ||
382      param.diskAbilityIds.length > 0 ||
383      param.networkAbilityIds.length > 0,
384  },
385  'box-system-cpu-child': {
386    title: 'System CPU Summary',
387    type: TabPaneCpuAbility,
388    require: (param: SelectionParam) => param.cpuAbilityIds.length > 0,
389  },
390  'box-system-memory-child': {
391    title: 'System Memory Summary',
392    type: TabPaneMemoryAbility,
393    require: (param: SelectionParam) => param.memoryAbilityIds.length > 0,
394  },
395  'box-system-diskIo-child': {
396    title: 'System Disk Summary',
397    type: TabPaneDiskAbility,
398    require: (param: SelectionParam) => param.diskAbilityIds.length > 0,
399  },
400  'box-system-network-child': {
401    title: 'System Network Summary',
402    type: TabPaneNetworkAbility,
403    require: (param: SelectionParam) => param.networkAbilityIds.length > 0,
404  },
405  'box-sdk-slice-child': {
406    title: 'Sdk Slice',
407    type: TabPaneSdkSlice,
408    require: (param: SelectionParam) => param.sdkSliceIds.length > 0,
409  },
410  'box-system-counter-child': {
411    title: 'SDK Counter',
412    type: TabPaneSdkCounter,
413    require: (param: SelectionParam) => param.sdkCounterIds.length > 0,
414  },
415  'box-counter-sample': {
416    title: 'Cpu State',
417    type: TabPaneCounterSample,
418    require: (param: SelectionParam) => param.cpuStateFilterIds.length > 0,
419  },
420
421  'box-frequency-sample': {
422    title: 'Cpu Frequency',
423    type: TabPaneFrequencySample,
424    require: (param: SelectionParam) => param.cpuFreqFilterIds.length > 0,
425  },
426  'box-anomaly-details': {
427    title: 'Anomaly details',
428    type: TabPaneEnergyAnomaly,
429    require: (param: SelectionParam) => param.anomalyEnergy.length > 0,
430  },
431  'box-system-details': {
432    title: 'System Details',
433    type: TabPaneSystemDetails,
434    require: (param: SelectionParam) => param.systemEnergy.length > 0,
435  },
436  'box-power-battery': {
437    title: 'Power Battery',
438    type: TabPanePowerBattery,
439    require: (param: SelectionParam) => param.powerEnergy.length > 0,
440  },
441  'box-power-details': {
442    title: 'Power Details',
443    type: TabPanePowerDetails,
444    require: (param: SelectionParam) => param.powerEnergy.length > 0,
445  },
446  'box-file-system-statistics': {
447    title: 'Filesystem statistics',
448    type: TabPaneFileStatistics,
449    require: (param: SelectionParam) => param.fileSystemType.length > 0,
450  },
451  'box-file-system-statistics-analysis': {
452    title: 'Analysis',
453    type: TabPaneFilesystemStatisticsAnalysis,
454    require: (param: SelectionParam) => param.fileSystemType.length > 0,
455  },
456  'box-file-system-calltree': {
457    title: 'Filesystem Calltree',
458    type: TabpaneFilesystemCalltree,
459    require: (param: SelectionParam) => param.fileSystemType.length > 0 || param.fsCount > 0,
460  },
461  'box-file-system-event': {
462    title: 'Filesystem Events',
463    type: TabPaneFileSystemEvents,
464    require: (param: SelectionParam) => param.fileSystemType.length > 0,
465  },
466  'box-file-system-desc-history': {
467    title: 'File Descriptor History',
468    type: TabPaneFileSystemDescHistory,
469    require: (param: SelectionParam) => param.fileSystemType.length > 0,
470  },
471  'box-file-system-desc-time-slice': {
472    title: 'File Descriptor Time Slice',
473    type: TabPaneFileSystemDescTimeSlice,
474    require: (param: SelectionParam) => param.fileSystemType.length > 0,
475  },
476  'box-virtual-memory-statistics': {
477    title: 'Page Fault Statistics',
478    type: TabPaneVirtualMemoryStatistics,
479    require: (param: SelectionParam) => param.fileSysVirtualMemory,
480  },
481  'box-virtual-memory-statistics-analysis': {
482    title: 'Analysis',
483    type: TabPaneVirtualMemoryStatisticsAnalysis,
484    require: (param: SelectionParam) => param.fileSysVirtualMemory,
485  },
486  'box-vm-calltree': {
487    title: 'Page Fault CallTree',
488    type: TabPaneVMCallTree,
489    require: (param: SelectionParam) => param.fileSysVirtualMemory || param.vmCount > 0,
490  },
491  'box-vm-events': {
492    title: 'Page Fault Events',
493    type: TabPaneVirtualMemoryEvents,
494    require: (param: SelectionParam) => param.fileSysVirtualMemory,
495  },
496  'box-io-tier-statistics': {
497    title: 'Disk I/O Tier Statistics',
498    type: TabPaneIOTierStatistics,
499    require: (param: SelectionParam) => param.diskIOLatency,
500  },
501  'box-io-tier-statistics-analysis': {
502    title: 'Analysis',
503    type: TabPaneIOTierStatisticsAnalysis,
504    require: (param: SelectionParam) => param.diskIOLatency,
505  },
506  'box-io-calltree': {
507    title: 'Disk I/O Latency Calltree',
508    type: TabPaneIOCallTree,
509    require: (param: SelectionParam) => param.diskIOLatency || param.diskIOipids.length > 0,
510  },
511  'box-io-events': {
512    title: 'Trace Completion Times',
513    type: TabPaneIoCompletionTimes,
514    require: (param: SelectionParam) => param.diskIOLatency,
515  },
516  'box-smaps-statistics': {
517    title: 'Smaps Statistic',
518    type: TabPaneSmapsStatistics,
519    require: (param: SelectionParam) => param.smapsType.length > 0,
520  },
521  'box-smaps-sample': {
522    title: 'Smaps sample',
523    type: TabPaneSmapsSample,
524    require: (param: SelectionParam) => param.smapsType.length > 0,
525  },
526  'box-smaps-comparison': {
527    title: 'Smaps Comparison',
528    type: TabPaneSmapsComparison,
529  },
530  'box-smaps-record': {
531    title: 'Native Heap',
532    type: TabPaneSmapsRecord,
533  },
534  'box-vmtracker-shm': {
535    title: 'SHM',
536    type: TabPaneVmTrackerShm,
537    require: (param: SelectionParam) => param.vmtrackershm.length > 0,
538  },
539  'box-vmtracker-shm-selection': {
540    title: 'SHM Selection',
541    type: TabPaneVmTrackerShmSelection,
542  },
543  'box-frames': {
544    title: 'Frames',
545    type: TabPaneFrames,
546    require: (param: SelectionParam) => param.jankFramesData.length > 0,
547  },
548  'box-heap-summary': {
549    title: 'Summary',
550    type: TabPaneSummary,
551    require: (param: SelectionParam) => param.jsMemory.length > 0,
552  },
553  'box-heap-comparison': {
554    title: 'Comparison',
555    type: TabPaneComparison,
556  }, // snapshot data click
557  'box-task-frames': {
558    title: 'Frames',
559    type: TabPaneTaskFrames,
560    require: (param: SelectionParam) => param.taskFramesData.length > 0,
561  },
562  'box-frame-dynamic': {
563    title: 'Frame Dynamic',
564    type: TabPaneFrameDynamic,
565    require: (param: SelectionParam) => param.frameDynamic.length > 0,
566  },
567  'box-frames-spacing': {
568    title: 'Frame spacing',
569    type: TabFrameSpacing,
570    require: (param: SelectionParam) => param.frameSpacing.length > 0,
571  },
572  'box-js-Profiler-statistics': {
573    title: 'Js Profiler Statistics',
574    type: TabPaneJsCpuStatistics,
575    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
576  },
577  'box-js-Profiler-bottom-up': {
578    title: 'Js Profiler BottomUp',
579    type: TabPaneJsCpuBottomUp,
580    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
581  },
582  'box-js-Profiler-top-down': {
583    title: 'Js Profiler CallTree',
584    type: TabPaneJsCpuTopDown,
585    require: (param: SelectionParam) => param.jsCpuProfilerData.length > 0,
586  },
587  'gpu-click-select': {
588    title: 'Gpu Dump Selection',
589    type: TabPaneGpuClickSelect,
590  },
591  'gpu-gl-box-select': {
592    title: 'GL',
593    type: TabPaneGpuGL,
594    require: (param: SelectionParam) => param.gpu.gl,
595  },
596  'gpu-graph-box-select': {
597    title: 'Graph',
598    type: TabPaneGpuGraph,
599    require: (param: SelectionParam) => param.gpu.graph,
600  },
601  'gpu-total-box-select': {
602    title: 'Gpu Total',
603    type: TabPaneGpuTotalBoxSelect,
604    require: (param: SelectionParam) => param.gpu.gpuTotal,
605  },
606  'gpu-window-box-select': {
607    title: 'Gpu Window',
608    type: TabPaneGpuWindowBoxSelect,
609    require: (param: SelectionParam) => param.gpu.gpuWindow,
610  },
611  'box-purgeable-total': {
612    title: 'Purg Total',
613    type: TabPanePurgTotal,
614    require: (param: SelectionParam) => param.purgeableTotalAbility.length > 0 || param.purgeableTotalVM.length > 0,
615  },
616  'box-purgeable-total-selection': {
617    title: 'Purg Total Selection',
618    type: TabPanePurgTotalSelection,
619  },
620  'box-purgeable-pin': {
621    title: 'Purg Pin',
622    type: TabPanePurgPin,
623    require: (param: SelectionParam) => param.purgeablePinAbility.length > 0 || param.purgeablePinVM.length > 0,
624  },
625  'box-purgeable-pin-selection': {
626    title: 'Purg Pin Selection',
627    type: TabPanePurgPinSelection,
628  },
629  'box-purgeable-total-comparison-ability': {
630    title: 'Purg Total Comparison',
631    type: TabPanePurgTotalComparisonAbility,
632  },
633  'box-purgeable-pin-comparison-ability': {
634    title: 'Purg Pin Comparison',
635    type: TabPanePurgPinComparisonAbility,
636  },
637  'box-purgeable-total-comparison-vm': {
638    title: 'Purg Total Comparison',
639    type: TabPanePurgTotalComparisonVM,
640  },
641  'box-purgeable-pin-comparison-vm': {
642    title: 'Purg Pin Comparison',
643    type: TabPanePurgPinComparisonVM,
644  },
645  'box-dma-ability': {
646    title: 'DMA',
647    type: TabPaneDmaAbility,
648    require: (param: SelectionParam) => param.dmaAbilityData.length > 0,
649  },
650  'box-dma-selection-ability': {
651    title: 'DMA Selection',
652    type: TabPaneDmaSelectAbility,
653  }, //DMA Ability click
654  'box-gpu-memory-ability': {
655    title: 'Gpu Memory',
656    type: TabPaneGpuMemoryAbility,
657    require: (param: SelectionParam) => param.gpuMemoryAbilityData.length > 0,
658  },
659  'box-smaps-dma': {
660    title: 'DMA',
661    type: TabPaneDmaVmTracker,
662    require: (param: SelectionParam) => param.dmaVmTrackerData.length > 0,
663  },
664  'box-smaps-gpu-memory': {
665    title: 'Gpu Memory',
666    type: TabPaneGpuMemoryVmTracker,
667    require: (param: SelectionParam) => param.gpuMemoryTrackerData.length > 0,
668  },
669  'box-smaps-gpu-resource': {
670    title: 'Gpu Resource',
671    type: TabPaneGpuResourceVmTracker,
672  },
673  'box-dma-selection-vmTracker': {
674    title: 'DMA Selection',
675    type: TabPaneDmaSelectVmTracker,
676  }, //DMA VmTracker click
677  'box-gpu-memory-selection-ability': {
678    title: 'Gpu Memory Selection',
679    type: TabPaneGpuMemorySelectAbility,
680  }, // Gpu Memory ability click
681  'box-gpu-memory-selection-vmTracker': {
682    title: 'Gpu Memory Selection',
683    type: TabPaneGpuMemorySelectVmTracker,
684  }, //Gpu Memory DMA VmTracker click
685  'box-dma-ability-comparison': {
686    title: 'DMA Comparison',
687    type: TabPaneDmaAbilityComparison,
688  }, // dma Comparison ability click
689  'box-gpu-memory-comparison': {
690    title: 'Gpu Memory Comparison',
691    type: TabPaneGpuMemoryComparison,
692  }, // Gpu Memory Comparison click
693  'box-vmTracker-comparison': {
694    title: 'DMA Comparison',
695    type: TabPaneDmaVmTrackerComparison,
696  }, // DMA Comparison click
697  'box-gpu-memory-vmTracker-comparison': {
698    title: 'Gpu Memory Comparison',
699    type: TabPaneGpuMemoryVmTrackerComparison,
700  }, // DMA Comparison click
701  'box-vmtracker-shm-comparison': {
702    title: 'SHM Comparison',
703    type: TabPaneVmTrackerShmComparison,
704  },
705  'gpu-click-select-comparison': {
706    title: 'Gpu Dump Comparison',
707    type: TabPaneGpuClickSelectComparison,
708  },
709  'box-hilogs': {
710    title: 'Hilogs',
711    type: TabPaneHiLogs,
712    require: (param: SelectionParam) => param.hiLogs.length > 0,
713  },
714  'box-hilogs-summary': {
715    title: 'Summary',
716    type: TabPaneHiLogSummary,
717    require: (param: SelectionParam) => param.hiLogs.length > 0,
718  },
719  'box-sched-priority': {
720    title: 'Sched Priority',
721    type: TabPaneSchedPriority,
722    require: (param: SelectionParam) => param.cpus.length > 0,
723  },
724  'box-flag': {
725    title: 'Flags Selection',
726    type: TabPaneFlag,
727  },
728  'tabpane-current': {
729    title: 'M Selection',
730    type: TabPaneCurrent,
731    require: (param: SelectionParam) => param.isCurrentPane,
732  }, //current selection
733  'tabpane-frequsage': {
734    title: 'Freq Usage',
735    type: TabPaneFreqUsage,
736    require: (param: SelectionParam) => param.threadIds.length > 0,
737  },
738  'tab-hisysevents': {
739    title: 'HiSysevents',
740    type: TabPaneHisysEvents,
741    require: (param: SelectionParam) => param.hiSysEvents.length > 0,
742  },
743  'tab-hisysevents-summary': {
744    title: 'Statistics',
745    type: TabPaneHiSysEventSummary,
746    require: (param: SelectionParam) => param.hiSysEvents.length > 0,
747  },
748  'tabpane-gpufreq': {
749    title: 'Gpufreq Usage',
750    type: TabPaneGpufreq,
751    require: (param: SelectionParam) => param.clockMapData.size === 1 && param.clockMapData.has('gpufreq Frequency') === true,
752  },
753  'tabpane-datacut': {
754    title: 'Data Cut',
755    type: TabPaneDataCut,
756    require: (param: SelectionParam) => param.threadIds.length > 0 ||
757      (param.clockMapData.size > 0 && param.clockMapData.has('gpufreq Frequency') === true),
758  },
759  'box-sample-instruction': {
760    title: 'Data Flow',
761    type: TabPaneSampleInstruction,
762  },
763  'box-gpu-counter-selection': {
764    title: 'Gpu Counter',
765    type: TabPaneGpuCounterSelection,
766    require: (param: SelectionParam) => param.gpuCounter.length > 0,
767  },
768  'box-gpu-counter': {
769    title: 'Gpu Counter',
770    type: TabPaneGpuCounter,
771  },
772  'tabpane-time-parallel': {
773    title: 'Time Parallel',
774    type: TabPaneTimeParallel,
775    require: (param: SelectionParam) => param.threadIds.length > 0,
776  },
777  'tabpane-mt-parallel': {
778    title: 'MT Parallel',
779    type: TabPaneMtParallel,
780    require: (param: SelectionParam) => param.threadIds.length > 0,
781  },
782  'tab-pane-userplugin': {
783    title: 'User Plugin',
784    type: TabPaneUserPlugin,
785  },
786  'tabpane-dmafrence': {
787    title: 'Dma Frence',
788    type: TabPaneDmaFence,
789    require: (param: SelectionParam) => param.dmaFenceNameData.length > 0,
790  },
791  'box-slice-child': {
792    title: '',
793    type: TabPaneSliceChild,
794  },
795  'tab-perf-func-asm': {
796    title: '',
797    type: TabPerfFuncAsm,
798  },
799  'box-xpower-thread-info-selection': {
800    title: 'Thread Info Selection',
801    type: TabPaneXpowerThreadInfoSelection,
802  }, //xpower thread info click
803  'box-xpower-gpu-freq-selection': {
804    title: 'Gpu Freq Selection',
805    type: TabPaneXpowerGpuFreqSelection,
806  }, //xpower gpu freq click
807};
808