/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { BaseElement, element } from '../../base-ui/BaseElement.js';
import { LitMainMenuGroup } from '../../base-ui/menu/LitMainMenuGroup.js';
import { LitMainMenu, MenuItem } from '../../base-ui/menu/LitMainMenu.js';
import { LitMainMenuItem } from '../../base-ui/menu/LitMainMenuItem';
import { SpStatisticsHttpUtil } from '../../statistics/util/SpStatisticsHttpUtil.js';
@element('sp-help')
export class SpHelp extends BaseElement {
private appContent: HTMLElement | undefined | null;
get dark() {
return this.hasAttribute('dark');
}
set dark(dark: boolean) {
if (dark) {
this.setAttribute('dark', '' + dark);
} else {
this.removeAttribute('dark');
}
this.appContent!.innerHTML =
'';
}
initElements(): void {
let that = this;
let parentElement = this.parentNode as HTMLElement;
parentElement.style.overflow = 'hidden';
this.appContent = this.shadowRoot?.querySelector('#app-content') as HTMLElement;
let mainMenu = this.shadowRoot?.querySelector('#main-menu') as LitMainMenu;
let header = mainMenu.shadowRoot?.querySelector('.header') as HTMLDivElement;
let color = mainMenu.shadowRoot?.querySelector('.color') as HTMLDivElement;
let version = mainMenu.shadowRoot?.querySelector('.version') as HTMLDivElement;
header.style.display = 'none';
version.style.display = 'none';
color.style.display = 'none';
mainMenu.menus = [
{
collapsed: false,
title: 'QuickStart',
describe: '',
children: [
{
title: '设备端抓取trace说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'record',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'web端抓取trace说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'online_record',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'web端加载trace说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'load',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Native Memory抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'native',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Ability Monitor抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'ability',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'HiPerf的抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'perf',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Sql分析和Metrics说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'sql',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'FileSystem抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'file_system',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: '页内存抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'virtual_memory',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Bio抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'bio',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: '进程smaps抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'smaps',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'HiSystemEvent抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'hisys',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'sdk抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'sdk_record',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Frame timeline抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'frame_record',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Scheduling analysis抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'scheduling_record',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: 'Js Memory抓取和展示说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'js_memory',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: '调用栈可视化和不同库函数调用占比说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'import_so',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: '应用操作技巧',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'operation_skills',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
],
},
{
collapsed: false,
title: 'TraceStreamer',
describe: '',
children: [
{
title: 'TraceStreamer数据库说明',
icon: '',
clickHandler: function (item: MenuItem) {
SpStatisticsHttpUtil.addOrdinaryVisitAction({
event: 'trace_streamer_explain',
action: 'help_doc',
});
that.appContent!.innerHTML =
'';
},
},
{
title: '编译Trace_streamer',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
{
title: 'TraceStreamer 解析数据状态表',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
{
title: 'TraceStreamer支持解析事件列表',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
{
title: 'trace_streamer工具说明',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
{
title: 'binder事件上下文如何关联',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
{
title: 'wakeup唤醒说明',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
],
},
{
collapsed: false,
title: 'SmartPerf',
describe: '',
children: [
{
title: 'SmartPerf 编译指导',
icon: '',
clickHandler: function (item: MenuItem) {
that.appContent!.innerHTML =
'';
},
},
],
},
];
mainMenu.style.width = '330px';
let body = mainMenu.shadowRoot?.querySelector('.menu-body') as HTMLDivElement;
let groups = body.querySelectorAll('lit-main-menu-group');
groups.forEach((value) => {
let items = value.querySelectorAll('lit-main-menu-item');
items.forEach((item) => {
item.style.width = '330px';
});
if (value.title == 'TraceStreamer') {
let items = value.querySelectorAll('lit-main-menu-item');
items.forEach((i) => {
if (i.title != 'TraceStreamer数据库说明') {
i.style.display = 'none';
}
});
}
if (value.title == 'SmartPerf') {
value.style.display = 'none';
}
});
}
initHtml(): string {
return `
`;
}
}