@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 1.21 kB
JavaScript
import*as IconButton from"../../../components/icon_button/icon_button.js";import*as UI from"../../legacy.js";import{getRegisteredProviders,Provider,registerProvider}from"./FilteredListWidget.js";import{QuickOpenImpl}from"./QuickOpen.js";export class HelpQuickOpen extends Provider{providers;constructor(){super(),this.providers=[],getRegisteredProviders().forEach(this.addProvider.bind(this))}addProvider(e){e.titleSuggestion&&this.providers.push({prefix:e.prefix||"",iconName:e.iconName,iconWidth:e.iconWidth,title:e.titlePrefix()+" "+e.titleSuggestion()})}itemCount(){return this.providers.length}itemKeyAt(e){return this.providers[e].prefix}itemScoreAt(e,i){return-this.providers[e].prefix.length}renderItem(e,i,r,t){const o=this.providers[e],n=new IconButton.Icon.Icon;n.data={iconName:o.iconName,color:"var(--icon-default)",width:o.iconWidth},r.parentElement?.parentElement?.insertBefore(n,r.parentElement),UI.UIUtils.createTextChild(r,o.title)}selectItem(e,i){null!==e&&QuickOpenImpl.show(this.providers[e].prefix)}renderAsTwoRows(){return!1}}registerProvider({prefix:"?",iconName:"help",iconWidth:"20px",provider:()=>Promise.resolve(new HelpQuickOpen),titlePrefix:()=>"Help",titleSuggestion:void 0});