@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 2.89 kB
JavaScript
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";import*as Platform from"../../core/platform/platform.js";import*as UI from"../../ui/legacy/legacy.js";import audioContextSelectorStyles from"./audioContextSelector.css.js";const UIStrings={noRecordings:"(no recordings)",audioContextS:"Audio context: {PH1}"},str_=i18n.i18n.registerUIStrings("panels/web_audio/AudioContextSelector.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class AudioContextSelector extends Common.ObjectWrapper.ObjectWrapper{placeholderText;items;dropDown;toolbarItemInternal;selectedContextInternal;constructor(){super(),this.placeholderText=i18nString(UIStrings.noRecordings),this.items=new UI.ListModel.ListModel,this.dropDown=new UI.SoftDropDown.SoftDropDown(this.items,this),this.dropDown.setPlaceholderText(this.placeholderText),this.toolbarItemInternal=new UI.Toolbar.ToolbarItem(this.dropDown.element),this.toolbarItemInternal.setEnabled(!1),this.toolbarItemInternal.setTitle(i18nString(UIStrings.audioContextS,{PH1:this.placeholderText})),this.items.addEventListener(UI.ListModel.Events.ItemsReplaced,this.onListItemReplaced,this),this.toolbarItemInternal.element.classList.add("toolbar-has-dropdown"),this.selectedContextInternal=null}onListItemReplaced(){const t=Boolean(this.items.length);this.toolbarItemInternal.setEnabled(t),t||this.toolbarItemInternal.setTitle(i18nString(UIStrings.audioContextS,{PH1:this.placeholderText}))}contextCreated({data:t}){this.items.insert(this.items.length,t),1===this.items.length&&this.dropDown.selectItem(t)}contextDestroyed({data:t}){const e=this.items.findIndex((e=>e.contextId===t));e>-1&&this.items.remove(e)}contextChanged({data:t}){const e=this.items.findIndex((e=>e.contextId===t.contextId));e>-1&&(this.items.replace(e,t),this.selectedContextInternal&&this.selectedContextInternal.contextId===t.contextId&&this.dropDown.selectItem(t))}createElementForItem(t){const e=document.createElement("div"),o=UI.Utils.createShadowRootWithCoreStyles(e,{cssFile:[audioContextSelectorStyles],delegatesFocus:void 0}).createChild("div","title");return UI.UIUtils.createTextChild(o,Platform.StringUtilities.trimEndWithMaxLength(this.titleFor(t),100)),e}selectedContext(){return this.selectedContextInternal?this.selectedContextInternal:null}highlightedItemChanged(t,e,o,n){o&&o.classList.remove("highlighted"),n&&n.classList.add("highlighted")}isItemSelectable(t){return!0}itemSelected(t){t&&(this.selectedContextInternal&&this.selectedContextInternal.contextId===t.contextId||(this.selectedContextInternal=t,this.toolbarItemInternal.setTitle(i18nString(UIStrings.audioContextS,{PH1:this.titleFor(t)}))),this.dispatchEventToListeners("ContextSelected",t))}reset(){this.items.replaceAll([])}titleFor(t){return`${t.contextType} (${t.contextId.substr(-6)})`}toolbarItem(){return this.toolbarItemInternal}}