UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 4.48 kB
import*as Common from"../../core/common/common.js";import*as Host from"../../core/host/host.js";import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import*as IssuesManager from"../../models/issues_manager/issues_manager.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import*as IssueCounter from"../../ui/components/issue_counter/issue_counter.js";import*as UI from"../../ui/legacy/legacy.js";const UIStrings={sErrors:"{n, plural, =1 {# error} other {# errors}}",sWarnings:"{n, plural, =1 {# warning} other {# warnings}}",openConsoleToViewS:"Open Console to view {PH1}",openIssuesToView:"{n, plural, =1 {Open Issues to view # issue:} other {Open Issues to view # issues:}}"},str_=i18n.i18n.registerUIStrings("panels/console_counters/WarningErrorCounter.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);let warningErrorCounterInstance;export class WarningErrorCounter{toolbarItem;consoleCounter;issueCounter;throttler;updatingForTest;constructor(){WarningErrorCounter.instanceForTest=this;const e=document.createElement("div");this.toolbarItem=new UI.Toolbar.ToolbarItemWithCompactLayout(e),this.toolbarItem.setVisible(!1),this.toolbarItem.addEventListener("CompactLayoutUpdated",this.onSetCompactLayout,this),this.consoleCounter=new IconButton.IconButton.IconButton,e.appendChild(this.consoleCounter),this.consoleCounter.data={clickHandler:Common.Console.Console.instance().show.bind(Common.Console.Console.instance()),groups:[{iconName:"cross-circle-filled",iconColor:"var(--icon-error)",iconHeight:"14px",iconWidth:"14px"},{iconName:"warning-filled",iconColor:"var(--icon-warning)",iconHeight:"14px",iconWidth:"14px"}]};const s=IssuesManager.IssuesManager.IssuesManager.instance();this.issueCounter=new IssueCounter.IssueCounter.IssueCounter,this.issueCounter.classList.add("main-toolbar"),e.appendChild(this.issueCounter),this.issueCounter.data={clickHandler:()=>{Host.userMetrics.issuesPanelOpenedFrom(Host.UserMetrics.IssueOpener.StatusBarIssuesCounter),UI.ViewManager.ViewManager.instance().showView("issues-pane")},issuesManager:s,displayMode:"OnlyMostImportant"},this.throttler=new Common.Throttler.Throttler(100),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.ConsoleModel.ConsoleModel,SDK.ConsoleModel.Events.ConsoleCleared,this.update,this),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.ConsoleModel.ConsoleModel,SDK.ConsoleModel.Events.MessageAdded,this.update,this),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.ConsoleModel.ConsoleModel,SDK.ConsoleModel.Events.MessageUpdated,this.update,this),s.addEventListener("IssuesCountUpdated",this.update,this),this.update()}onSetCompactLayout(e){this.setCompactLayout(e.data)}setCompactLayout(e){this.consoleCounter.data={...this.consoleCounter.data,compact:e},this.issueCounter.data={...this.issueCounter.data,compact:e}}static instance(e={forceNew:null}){const{forceNew:s}=e;return warningErrorCounterInstance&&!s||(warningErrorCounterInstance=new WarningErrorCounter),warningErrorCounterInstance}updatedForTest(){}update(){this.updatingForTest=!0,this.throttler.schedule(this.updateThrottled.bind(this))}get titlesForTesting(){const e=this.consoleCounter.shadowRoot?.querySelector("button");return e?e.getAttribute("aria-label"):null}async updateThrottled(){const e=SDK.ConsoleModel.ConsoleModel.allErrors(),s=SDK.ConsoleModel.ConsoleModel.allWarnings(),t=IssuesManager.IssuesManager.IssuesManager.instance(),o=t.numberOfIssues(),n=e=>0===e?void 0:`${e}`,r=i18nString(UIStrings.sErrors,{n:e}),i=i18nString(UIStrings.sWarnings,{n:s}),a=[n(e),n(s)];let u="";e&&s?u=`${r}, ${i}`:e?u=r:s&&(u=i);const l=i18nString(UIStrings.openConsoleToViewS,{PH1:u}),c=this.consoleCounter.data;this.consoleCounter.data={...c,groups:c.groups.map(((e,s)=>({...e,text:a[s]}))),accessibleName:l},UI.Tooltip.Tooltip.install(this.consoleCounter,l),this.consoleCounter.classList.toggle("hidden",!(e||s));const d=IssueCounter.IssueCounter.getIssueCountsEnumeration(t),C=`${i18nString(UIStrings.openIssuesToView,{n:o})} ${d}`;UI.Tooltip.Tooltip.install(this.issueCounter,C),this.issueCounter.data={...this.issueCounter.data,accessibleName:C},this.issueCounter.classList.toggle("hidden",!o),this.toolbarItem.setVisible(Boolean(e||s||o)),UI.InspectorView.InspectorView.instance().toolbarItemResized(),this.updatingForTest=!1,this.updatedForTest()}item(){return this.toolbarItem}static instanceForTest=null}