1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciexport const SpArkTsHtml = `<style> 17fb726d48Sopenharmony_ci:host{ 18fb726d48Sopenharmony_ci display: inline-block; 19fb726d48Sopenharmony_ci width: 100%; 20fb726d48Sopenharmony_ci height: 100%; 21fb726d48Sopenharmony_ci background: var(--dark-background3,#FFFFFF); 22fb726d48Sopenharmony_ci border-radius: 0px 16px 16px 0px; 23fb726d48Sopenharmony_ci} 24fb726d48Sopenharmony_ci.root { 25fb726d48Sopenharmony_ci padding-top: 30px; 26fb726d48Sopenharmony_ci padding-left: 54px; 27fb726d48Sopenharmony_ci margin-right: 30px; 28fb726d48Sopenharmony_ci font-size:16px; 29fb726d48Sopenharmony_ci margin-bottom: 30px; 30fb726d48Sopenharmony_ci} 31fb726d48Sopenharmony_ci.config-div { 32fb726d48Sopenharmony_ci width: 80%; 33fb726d48Sopenharmony_ci display: flex; 34fb726d48Sopenharmony_ci flex-direction: column; 35fb726d48Sopenharmony_ci margin-top: 5vh; 36fb726d48Sopenharmony_ci margin-bottom: 5vh; 37fb726d48Sopenharmony_ci gap: 25px; 38fb726d48Sopenharmony_ci} 39fb726d48Sopenharmony_ci.title { 40fb726d48Sopenharmony_ci opacity: 0.9; 41fb726d48Sopenharmony_ci font-family: Helvetica-Bold; 42fb726d48Sopenharmony_ci font-size: 18px; 43fb726d48Sopenharmony_ci text-align: center; 44fb726d48Sopenharmony_ci line-height: 40px; 45fb726d48Sopenharmony_ci font-weight: 700; 46fb726d48Sopenharmony_ci margin-right: 10px; 47fb726d48Sopenharmony_ci} 48fb726d48Sopenharmony_ci.config-title{ 49fb726d48Sopenharmony_ci margin-left: 20px; 50fb726d48Sopenharmony_ci font-weight: 700; 51fb726d48Sopenharmony_ci line-height: 48px; 52fb726d48Sopenharmony_ci} 53fb726d48Sopenharmony_ci.memory { 54fb726d48Sopenharmony_ci margin-left: 40px; 55fb726d48Sopenharmony_ci} 56fb726d48Sopenharmony_ci.des { 57fb726d48Sopenharmony_ci color: #242424; 58fb726d48Sopenharmony_ci font-family: Helvetica; 59fb726d48Sopenharmony_ci font-size: 14px; 60fb726d48Sopenharmony_ci text-align: left; 61fb726d48Sopenharmony_ci line-height: 16px; 62fb726d48Sopenharmony_ci font-weight: 400; 63fb726d48Sopenharmony_ci} 64fb726d48Sopenharmony_ci.select { 65fb726d48Sopenharmony_ci border-radius: 15px; 66fb726d48Sopenharmony_ci} 67fb726d48Sopenharmony_ciinput { 68fb726d48Sopenharmony_ci width: 35%; 69fb726d48Sopenharmony_ci height: 25px; 70fb726d48Sopenharmony_ci border:0; 71fb726d48Sopenharmony_ci outline:none; 72fb726d48Sopenharmony_ci border-radius: 16px; 73fb726d48Sopenharmony_ci text-indent:2% 74fb726d48Sopenharmony_ci} 75fb726d48Sopenharmony_ciinput::-webkit-input-placeholder{ 76fb726d48Sopenharmony_ci color:var(--bark-prompt,#999999); 77fb726d48Sopenharmony_ci} 78fb726d48Sopenharmony_ci.inputstyle{ 79fb726d48Sopenharmony_ci background: var(--dark-background5,#FFFFFF); 80fb726d48Sopenharmony_ci border: 1px solid var(--dark-background5,#999999); 81fb726d48Sopenharmony_ci font-family: Helvetica; 82fb726d48Sopenharmony_ci font-size: 14px; 83fb726d48Sopenharmony_ci color: var(--dark-color1,#212121); 84fb726d48Sopenharmony_ci text-align: left; 85fb726d48Sopenharmony_ci line-height: 16px; 86fb726d48Sopenharmony_ci font-weight: 400; 87fb726d48Sopenharmony_ci} 88fb726d48Sopenharmony_ci.inputstyle::-webkit-input-placeholder { 89fb726d48Sopenharmony_ci background: var(--dark-background5,#FFFFFF); 90fb726d48Sopenharmony_ci} 91fb726d48Sopenharmony_ci.radio { 92fb726d48Sopenharmony_ci font-family: Helvetica-Bold; 93fb726d48Sopenharmony_ci font-size: 16px; 94fb726d48Sopenharmony_ci color: #000000; 95fb726d48Sopenharmony_ci line-height: 28px; 96fb726d48Sopenharmony_ci font-weight: 700; 97fb726d48Sopenharmony_ci} 98fb726d48Sopenharmony_ci.unit { 99fb726d48Sopenharmony_ci font-family: Helvetica; 100fb726d48Sopenharmony_ci font-size: 14px; 101fb726d48Sopenharmony_ci color: #000000; 102fb726d48Sopenharmony_ci line-height: 28px; 103fb726d48Sopenharmony_ci font-weight: 400; 104fb726d48Sopenharmony_ci} 105fb726d48Sopenharmony_cilit-switch { 106fb726d48Sopenharmony_ci display:inline; 107fb726d48Sopenharmony_ci float: right; 108fb726d48Sopenharmony_ci height: 38px; 109fb726d48Sopenharmony_ci margin-top: 10px; 110fb726d48Sopenharmony_ci} 111fb726d48Sopenharmony_ci:host([startSamp]) .inputBoxes { 112fb726d48Sopenharmony_ci background: var(--dark-background5,#FFFFFF); 113fb726d48Sopenharmony_ci} 114fb726d48Sopenharmony_ci:host(:not([startSamp])) .inputBoxes { 115fb726d48Sopenharmony_ci color: #b7b7b7; 116fb726d48Sopenharmony_ci background: var(--dark-background1,#f5f5f5); 117fb726d48Sopenharmony_ci} 118fb726d48Sopenharmony_ci</style> 119fb726d48Sopenharmony_ci<div class="root"> 120fb726d48Sopenharmony_ci <div class="title" id="traceMode" style="text-align:left;"> 121fb726d48Sopenharmony_ci <span style='color: red'>Long trace mode! If current data Trace is too large, it may not open!</span> 122fb726d48Sopenharmony_ci </div> 123fb726d48Sopenharmony_ci <div class="config-div"> 124fb726d48Sopenharmony_ci <div> 125fb726d48Sopenharmony_ci <span class="title">Start Ark Ts Record</span> 126fb726d48Sopenharmony_ci <lit-switch></lit-switch> 127fb726d48Sopenharmony_ci </div> 128fb726d48Sopenharmony_ci </div> 129fb726d48Sopenharmony_ci <div class="config-div"> 130fb726d48Sopenharmony_ci <div> 131fb726d48Sopenharmony_ci <span class="title">Process</span> 132fb726d48Sopenharmony_ci <span class="des">Record process</span> 133fb726d48Sopenharmony_ci </div> 134fb726d48Sopenharmony_ci <lit-select-v style="width: 100%;" rounded="" default-value="" class="select inputBoxes" 135fb726d48Sopenharmony_ci placement="bottom" ></lit-select-v> 136fb726d48Sopenharmony_ci </div> 137fb726d48Sopenharmony_ci <div class="config-div"> 138fb726d48Sopenharmony_ci <div> 139fb726d48Sopenharmony_ci <span class="title">Select profiling type</span> 140fb726d48Sopenharmony_ci </div> 141fb726d48Sopenharmony_ci <div> 142fb726d48Sopenharmony_ci <span class="config-title">Start cpu profiler</span> 143fb726d48Sopenharmony_ci <lit-switch class="switch" id='cpu-switch'></lit-switch> 144fb726d48Sopenharmony_ci </div> 145fb726d48Sopenharmony_ci <div style="margin-left: 40px;"> 146fb726d48Sopenharmony_ci <span class="des">Interval(Available on recent OpenHarmony 4.0)</span> 147fb726d48Sopenharmony_ci <div style="margin-top: 12px;"> 148fb726d48Sopenharmony_ci <input class="inputstyle inputBoxes" id='cpuInterval' type="text" id="interval" 149fb726d48Sopenharmony_ci placeholder="" onkeyup="this.value=this.value.replace(/\\D/g,'').replace(/^0{1,}/g,'')" value="1000"> 150fb726d48Sopenharmony_ci <span class="unit">μs</span> 151fb726d48Sopenharmony_ci </div> 152fb726d48Sopenharmony_ci </div> 153fb726d48Sopenharmony_ci <div> 154fb726d48Sopenharmony_ci <span class="config-title">Start memory profiler</span> 155fb726d48Sopenharmony_ci <lit-switch class="switch" id='memory-switch'></lit-switch> 156fb726d48Sopenharmony_ci </div> 157fb726d48Sopenharmony_ci <div class='memory'> 158fb726d48Sopenharmony_ci <lit-radio dis="round" class="radio" name="litRadio" checked type="0">Heap snapshot</lit-radio> 159fb726d48Sopenharmony_ci <div style="margin-left: 10px;"> 160fb726d48Sopenharmony_ci <span class="des">Heap snapshot profiles show memory distribution among your page’s 161fb726d48Sopenharmony_ci JavaScript objects and related DOM nodes.</span> 162fb726d48Sopenharmony_ci <div style="display: flex;margin-bottom: 12px;margin-top: 12px;"> 163fb726d48Sopenharmony_ci <check-des-box checked="true" value ="lnclude numerical values in capture" id="snapshot"> 164fb726d48Sopenharmony_ci </check-des-box> 165fb726d48Sopenharmony_ci </div> 166fb726d48Sopenharmony_ci <span class="des">Interval(Available on recent OpenHarmony 4.0)</span> 167fb726d48Sopenharmony_ci <div style="margin-top: 12px;"> 168fb726d48Sopenharmony_ci <input class="inputstyle inputBoxes" type="text" id="interval" placeholder="" 169fb726d48Sopenharmony_ci onkeyup="this.value=this.value.replace(/\\D/g,'').replace(/^0{1,}/g,'')" value="10"> 170fb726d48Sopenharmony_ci <span class="unit">S</span> 171fb726d48Sopenharmony_ci </div> 172fb726d48Sopenharmony_ci </div> 173fb726d48Sopenharmony_ci <lit-radio dis="round" name="litRadio" class="radio" type="1"> 174fb726d48Sopenharmony_ci Allocation insteumentation on timeline</lit-radio> 175fb726d48Sopenharmony_ci <div style="margin-left: 10px;"> 176fb726d48Sopenharmony_ci <span class="des">Allocation timelines show insturmented Javascript memory allocations 177fb726d48Sopenharmony_ci over time. Once profile is recorded you can select a time interval to see objects that 178fb726d48Sopenharmony_ci werre allocated within it and still alive by the end of recording. Use this profile 179fb726d48Sopenharmony_ci type to isolate memory leaks.</span> 180fb726d48Sopenharmony_ci <div style="display: flex;margin-top: 12px;"> 181fb726d48Sopenharmony_ci <check-des-box value ="record stack traces of allocations(extra performance overhead)" id="timeline"> 182fb726d48Sopenharmony_ci </check-des-box> 183fb726d48Sopenharmony_ci </div> 184fb726d48Sopenharmony_ci </div> 185fb726d48Sopenharmony_ci </div> 186fb726d48Sopenharmony_ci </、div> 187fb726d48Sopenharmony_ci</div> 188fb726d48Sopenharmony_ci`; 189