@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 3.35 kB
JavaScript
import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import*as UI from"../../ui/legacy/legacy.js";import threadsSidebarPaneStyles from"./threadsSidebarPane.css.js";const UIStrings={paused:"paused"},str_=i18n.i18n.registerUIStrings("panels/sources/ThreadsSidebarPane.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);let threadsSidebarPaneInstance;export class ThreadsSidebarPane extends UI.Widget.VBox{items;list;selectedModel;constructor(){super(!0),this.items=new UI.ListModel.ListModel,this.list=new UI.ListControl.ListControl(this.items,this,UI.ListControl.ListMode.NonViewport);const e=UI.Context.Context.instance().flavor(SDK.Target.Target);this.selectedModel=null!==e?e.model(SDK.DebuggerModel.DebuggerModel):null,this.contentElement.appendChild(this.list.element),UI.Context.Context.instance().addFlavorChangeListener(SDK.Target.Target,this.targetFlavorChanged,this),SDK.TargetManager.TargetManager.instance().observeModels(SDK.DebuggerModel.DebuggerModel,this)}static instance(){return threadsSidebarPaneInstance||(threadsSidebarPaneInstance=new ThreadsSidebarPane),threadsSidebarPaneInstance}static shouldBeShown(){return SDK.TargetManager.TargetManager.instance().models(SDK.DebuggerModel.DebuggerModel).length>=2}createElementForItem(e){const t=document.createElement("div");t.classList.add("thread-item");const s=t.createChild("div","thread-item-title"),n=t.createChild("div","thread-item-paused-state"),a=new IconButton.Icon.Icon;a.data={iconName:"large-arrow-right-filled",color:"var(--icon-arrow-main-thread)",width:"14px",height:"14px"},a.classList.add("selected-thread-icon"),t.appendChild(a),t.tabIndex=-1,self.onInvokeElement(t,(t=>{UI.Context.Context.instance().setFlavor(SDK.Target.Target,e.target()),t.consume(!0)}));const r=UI.Context.Context.instance().flavor(SDK.Target.Target)===e.target();function i(){const t=e.runtimeModel().defaultExecutionContext();s.textContent=t&&t.label()?t.label():e.target().name()}function o(){n.textContent=e.isPaused()?i18nString(UIStrings.paused):""}return t.classList.toggle("selected",r),UI.ARIAUtils.setSelected(t,r),e.addEventListener(SDK.DebuggerModel.Events.DebuggerPaused,o),e.addEventListener(SDK.DebuggerModel.Events.DebuggerResumed,o),e.runtimeModel().addEventListener(SDK.RuntimeModel.Events.ExecutionContextChanged,i),SDK.TargetManager.TargetManager.instance().addEventListener(SDK.TargetManager.Events.NameChanged,(function(t){t.data===e.target()&&i()})),o(),i(),t}heightForItem(e){return console.assert(!1),0}isItemSelectable(e){return!0}selectedItemChanged(e,t,s,n){s&&(s.tabIndex=-1);const a=n;a&&(this.setDefaultFocusedElement(a),a.tabIndex=0,this.hasFocus()&&a.focus())}updateSelectedItemARIA(e,t){return!1}modelAdded(e){this.items.insert(this.items.length,e);UI.Context.Context.instance().flavor(SDK.Target.Target)===e.target()&&this.list.selectItem(e)}modelRemoved(e){this.items.remove(this.items.indexOf(e))}targetFlavorChanged({data:e}){const t=this.hasFocus(),s=e.model(SDK.DebuggerModel.DebuggerModel);this.list.selectItem(s),s&&this.list.refreshItem(s),null!==this.selectedModel&&this.list.refreshItem(this.selectedModel),this.selectedModel=s,t&&this.focus()}wasShown(){super.wasShown(),this.registerCSSFiles([threadsSidebarPaneStyles])}}