UNPKG

@react-native/debugger-frontend

Version:
2 lines (1 loc) 24.5 kB
import*as e from"../../../../core/common/common.js";import*as t from"../../../../core/host/host.js";import*as i from"../../../../core/i18n/i18n.js";import*as s from"../../../../core/platform/platform.js";import*as r from"../../../../third_party/diff/diff.js";import*as o from"../../../components/icon_button/icon_button.js";import*as n from"../../legacy.js";import*as l from"../../../../models/text_utils/text_utils.js";import*as a from"../../../components/text_prompt/text_prompt.js";import*as d from"../../../visual_logging/visual_logging.js";var c={cssText:`.filtered-list-widget{display:flex;flex-direction:column;flex:auto;border:1px solid transparent}.hbox{flex:0 0 var(--sys-size-14);padding:0 var(--sys-size-8);gap:var(--sys-size-3);align-items:center}.filtered-list-widget-hint{color:var(--sys-color-on-surface-subtle);font-size:var(--sys-typescale-body4-size);line-height:18px}devtools-text-prompt{flex-grow:1;font-size:var(--sys-typescale-body3-size);gap:var(--sys-size-3);font-family:".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande",sans-serif;line-height:var(--sys-typescale-body3-line-height)}.filtered-list-widget-progress{flex:none;background:var(--sys-color-divider);height:var(--sys-size-1)}.filtered-list-widget-progress-bar{background-color:var(--sys-color-primary-bright);height:var(--sys-size-2);width:100%;transform:scaleX(0);transform-origin:top left;opacity:100%;transition:none}.filtered-widget-progress-fade{opacity:0%;transition:opacity 500ms}.filtered-list-widget .vbox > div.container{flex:auto;overflow:hidden auto}.filtered-list-widget-item-wrapper{color:var(--sys-color-on-surface);display:flex;font-family:".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande",sans-serif;padding:0 var(--sys-size-7);gap:var(--sys-size-7);height:var(--sys-size-14)}.filtered-list-widget-item-wrapper devtools-icon{align-self:center;flex:none;width:18px;height:18px;&.snippet{color:var(--sys-color-orange-bright)}}.filtered-list-widget-item-wrapper.selected{background-color:var(--sys-color-state-hover-on-subtle)}.filtered-list-widget-item{white-space:break-spaces;overflow:hidden;text-overflow:ellipsis;align-self:center;font-size:var(--sys-typescale-body4-size);flex:auto}.filtered-list-widget-item.is-ignore-listed *{color:var(--sys-color-state-disabled)}.filtered-list-widget-item span.highlight{font-weight:var(--ref-typeface-weight-bold)}.filtered-list-widget-item .filtered-list-widget-title{white-space:nowrap;flex:initial;overflow:hidden;text-overflow:ellipsis}.filtered-list-widget-item .filtered-list-widget-subtitle{flex:none;overflow:hidden;text-overflow:ellipsis;color:var(--sys-color-on-surface-subtle);display:flex;white-space:pre}.filtered-list-widget-item .filtered-list-widget-subtitle .first-part{flex-shrink:1000;overflow:hidden;text-overflow:ellipsis}.filtered-list-widget-item-wrapper .tag{font-size:var(--sys-typescale-body5-size);line-height:var(--sys-typescale-headline5-line-height);align-self:center;flex-shrink:0}.filtered-list-widget-item-wrapper .deprecated-tag{font-size:11px;color:var(--sys-color-token-subtle)}.filtered-list-widget-item.one-row{line-height:var(--sys-typescale-body3-line-height);align-content:center;display:flex}.filtered-list-widget-item.one-row .filtered-list-widget-title{display:inline}.filtered-list-widget-item.two-rows{display:grid;align-content:center;gap:var(--sys-size-2)}.filtered-list-widget-item-wrapper:not(.search-mode) .filtered-list-widget-item.two-rows .filtered-list-widget-title{font-weight:var(--ref-typeface-weight-bold)}.not-found-text{height:34px;line-height:34px;padding-left:8px;font-style:italic;color:var(--sys-color-state-disabled);background:var(--sys-color-state-disabled-container)}.quickpick-description{flex:none;overflow:hidden;text-overflow:ellipsis;color:var(--sys-color-state-disabled);padding-left:15px}@media (forced-colors: active){.filtered-list-widget{forced-color-adjust:none;border-color:ButtonText}.filtered-list-widget-item-wrapper .filtered-list-widget-title,\n .filtered-list-widget-item-wrapper .filtered-list-widget-subtitle,\n .quickpick-description{color:ButtonText}.filtered-list-widget-item-wrapper.selected{background-color:Highlight}.filtered-list-widget-item-wrapper.selected .filtered-list-widget-item .filtered-list-widget-title,\n .filtered-list-widget-item-wrapper.selected .filtered-list-widget-item .filtered-list-widget-subtitle{color:HighlightText}devtools-text-prompt{border-color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./filteredListWidget.css")} */\n`};const h={quickOpenPrompt:"Quick open prompt",quickOpen:"Quick open",noResultsFound:"No results found",sItemSOfS:"{PH1}, item {PH2} of {PH3}"},m=i.i18n.registerUIStrings("ui/legacy/components/quick_open/FilteredListWidget.ts",h),g=i.i18n.getLocalizedString.bind(void 0,m);class p extends(e.ObjectWrapper.eventMixin(n.Widget.VBox)){promptHistory;scoringTimer;filterTimer;loadTimeout;refreshListWithCurrentResult;dialog;query="";inputBoxElement;hintElement;bottomElementsContainer;progressElement;progressBarElement;items;list;itemElementsContainer;notFoundElement;prefix="";provider;queryChangedCallback;constructor(e,t,i){super(!0),this.registerRequiredCSS(c),this.promptHistory=t||[],this.scoringTimer=0,this.filterTimer=0,this.loadTimeout=0,this.contentElement.classList.add("filtered-list-widget");const s=this.onKeyDown.bind(this);this.contentElement.addEventListener("keydown",s),n.ARIAUtils.markAsCombobox(this.contentElement);const r=this.contentElement.createChild("div","hbox");this.inputBoxElement=new a.TextPrompt.TextPrompt,this.inputBoxElement.data={ariaLabel:g(h.quickOpenPrompt),prefix:"",suggestion:""},this.inputBoxElement.addEventListener(a.TextPrompt.PromptInputEvent.eventName,this.onInput.bind(this),!1),this.inputBoxElement.setAttribute("jslog",`${d.textField().track({change:!0,keydown:"ArrowUp|ArrowDown|PageUp|PageDown|Enter|Tab|>|@|:|?|!"})}`),r.appendChild(this.inputBoxElement),this.hintElement=r.createChild("span","filtered-list-widget-hint"),this.bottomElementsContainer=this.contentElement.createChild("div","vbox"),this.progressElement=this.bottomElementsContainer.createChild("div","filtered-list-widget-progress"),this.progressBarElement=this.progressElement.createChild("div","filtered-list-widget-progress-bar"),this.items=new n.ListModel.ListModel,this.list=new n.ListControl.ListControl(this.items,this,n.ListControl.ListMode.EqualHeightItems),this.itemElementsContainer=this.list.element,this.itemElementsContainer.classList.add("container"),this.bottomElementsContainer.appendChild(this.itemElementsContainer),this.itemElementsContainer.addEventListener("click",this.onClick.bind(this),!1),this.itemElementsContainer.addEventListener("mousemove",this.onMouseMove.bind(this),!1),n.ARIAUtils.markAsListBox(this.itemElementsContainer),n.ARIAUtils.setControls(this.inputBoxElement,this.itemElementsContainer),n.ARIAUtils.setAutocomplete(this.inputBoxElement,"list"),this.notFoundElement=this.bottomElementsContainer.createChild("div","not-found-text"),this.notFoundElement.classList.add("hidden"),this.setDefaultFocusedElement(this.inputBoxElement),this.provider=e,this.queryChangedCallback=i}static highlightRanges(e,t,i){if(!t)return!1;function s(e,t){const i=r.Diff.DiffWrapper.charDiff(t,e);let s=0;const o=[];for(let e=0;e<i.length;++e){const t=i[e];if(t[0]===r.Diff.Operation.Equal)o.push(new l.TextRange.SourceRange(s,t[1].length));else if(t[0]!==r.Diff.Operation.Insert)return null;s+=t[1].length}return o}if(null===e.textContent)return!1;const o=e.textContent;let a=s(o,t);return a&&!i||(a=s(o.toUpperCase(),t.toUpperCase())),!!a&&(n.UIUtils.highlightRangesWithStyleClass(e,a,"highlight"),!0)}setCommandPrefix(e){this.inputBoxElement.setPrefix(e)}setCommandSuggestion(e){this.inputBoxElement.setSuggestion(e)}setHintElement(e){this.hintElement.textContent=e}showAsDialog(e){e||(e=g(h.quickOpen)),this.dialog=new n.Dialog.Dialog("quick-open"),n.ARIAUtils.setLabel(this.dialog.contentElement,e),this.dialog.setMaxContentSize(new n.Geometry.Size(576,320)),this.dialog.setSizeBehavior("SetExactWidthMaxHeight"),this.dialog.setContentPosition(null,22),this.dialog.contentElement.style.setProperty("border-radius","var(--sys-shape-corner-medium)"),this.dialog.contentElement.style.setProperty("box-shadow","var(--sys-elevation-level3)"),this.show(this.dialog.contentElement),n.ARIAUtils.setExpanded(this.contentElement,!0),this.dialog.once("hidden").then((()=>{this.dispatchEventToListeners("hidden")})),this.dialog.show()}setPrefix(e){this.prefix=e}setProvider(e){e!==this.provider&&(this.provider&&this.provider.detach(),this.clearTimers(),this.provider=e,this.isShowing()&&this.attachProvider())}setQuerySelectedRange(e,t){this.inputBoxElement.setSelectedRange(e,t)}attachProvider(){this.items.replaceAll([]),this.list.invalidateItemHeight(),this.provider&&(this.provider.setRefreshCallback(this.itemsLoaded.bind(this,this.provider)),this.provider.attach()),this.itemsLoaded(this.provider)}cleanValue(){return this.query.substring(this.prefix.length).trim()}wasShown(){super.wasShown(),this.attachProvider()}willHide(){this.provider&&this.provider.detach(),this.clearTimers(),n.ARIAUtils.setExpanded(this.contentElement,!1)}clearTimers(){clearTimeout(this.filterTimer),clearTimeout(this.scoringTimer),clearTimeout(this.loadTimeout),this.filterTimer=0,this.scoringTimer=0,this.loadTimeout=0,this.refreshListWithCurrentResult=void 0}onEnter(e){if(!this.provider)return;e.preventDefault();const t=this.list.selectedIndex();if(t<0)return;const i=this.list.elementAtIndex(t);i&&d.logClick(i,e);const s=this.provider.itemCount()?this.list.selectedItem():null;this.selectItem(s),this.dialog&&this.dialog.hide()}itemsLoaded(e){this.loadTimeout||e!==this.provider||(this.loadTimeout=window.setTimeout(this.updateAfterItemsLoaded.bind(this),0))}updateAfterItemsLoaded(){this.loadTimeout=0,this.filterItems()}createElementForItem(e){const t=document.createElement("div");t.className="filtered-list-widget-item-wrapper";const i=t.createChild("div"),s=this.provider?.renderAsTwoRows();i.className="filtered-list-widget-item "+(s?"two-rows":"one-row");const r=i.createChild("div","filtered-list-widget-title"),o=i.createChild("div","filtered-list-widget-subtitle");return o.textContent="​",this.provider&&(this.provider.renderItem(e,this.cleanValue(),r,o),t.setAttribute("jslog",`${d.item(this.provider.jslogContextAt(e)).track({click:!0})}`)),n.ARIAUtils.markAsOption(i),t}heightForItem(e){return 0}isItemSelectable(e){return!0}selectedItemChanged(e,t,i,s){i&&i.classList.remove("selected"),s&&s.classList.add("selected"),n.ARIAUtils.setActiveDescendant(this.inputBoxElement,s)}onClick(e){const t=this.list.itemForNode(e.target);null!==t&&(e.consume(!0),this.selectItem(t),this.dialog&&this.dialog.hide())}onMouseMove(e){const t=this.list.itemForNode(e.target);if(null===t)return;this.list.selectItem(t);const i=this.list.elementAtIndex(this.list.selectedIndex())?.textContent;i&&n.ARIAUtils.alert(g(h.sItemSOfS,{PH1:i,PH2:this.list.selectedIndex()+1,PH3:this.items.length}))}setQuery(e){this.query=e,this.inputBoxElement.focus(),this.inputBoxElement.setText(e),this.queryChanged(),this.scheduleFilter()}tabKeyPressed(){const e=this.query;let t;for(let i=this.promptHistory.length-1;i>=0;i--)if(this.promptHistory[i]!==e&&this.promptHistory[i].startsWith(e)){t=this.promptHistory[i];break}if(t){const i=this.inputBoxElement.getComponentSelection();return i&&""!==i.toString().trim()?(this.setQuery(t),!0):(this.inputBoxElement.focus(),this.inputBoxElement.setText(t),this.setQuerySelectedRange(e.length,t.length),!0)}return this.list.selectNextItem(!0,!1)}itemsFilteredForTest(){}filterItems(){if(this.filterTimer=0,this.scoringTimer&&(clearTimeout(this.scoringTimer),this.scoringTimer=0,this.refreshListWithCurrentResult&&this.refreshListWithCurrentResult()),!this.provider)return this.bottomElementsContainer.classList.toggle("hidden",!0),void this.itemsFilteredForTest();this.bottomElementsContainer.classList.toggle("hidden",!1),this.progressBarElement.style.transform="scaleX(0)",this.progressBarElement.classList.remove("filtered-widget-progress-fade","hidden");const e=this.provider.rewriteQuery(this.cleanValue()),t=e?s.StringUtilities.filterRegex(e):null,i=[],r=[],o=[],n=100;let l=0;const a=[],d=window.performance.now(),c=s.NumberUtilities.clamp(10,500,this.provider.itemCount()/10|0);function h(e,t){return t-e}(function m(g){if(!this.provider)return;this.scoringTimer=0;let p,u=0;for(p=g;p<this.provider.itemCount()&&u<c;++p){if(t&&!t.test(this.provider.itemKeyAt(p)))continue;const d=this.provider.itemScoreAt(p,e);if(e&&u++,d>l||r.length<n){const e=s.ArrayUtilities.upperBound(r,d,h);if(r.splice(e,0,d),o.splice(e,0,p),r.length>n){const e=o[o.length-1];e&&a.push(e),r.length=n,o.length=n}const t=r[r.length-1];t&&(l=t)}else i.push(p)}if(this.refreshListWithCurrentResult=this.refreshList.bind(this,o,a,i),p<this.provider.itemCount())return this.scoringTimer=window.setTimeout(m.bind(this,p),0),void(window.performance.now()-d>50&&(this.progressBarElement.style.transform="scaleX("+p/this.provider.itemCount()+")"));window.performance.now()-d>100?(this.progressBarElement.style.transform="scaleX(1)",this.progressBarElement.classList.add("filtered-widget-progress-fade")):this.progressBarElement.classList.add("hidden");this.refreshListWithCurrentResult()}).call(this,0)}refreshList(e,t,i){this.refreshListWithCurrentResult=void 0,i=[...e,...t,...i],this.updateNotFoundMessage(Boolean(i.length));const s=this.list.element.offsetHeight;this.items.replaceAll(i),i.length&&this.list.selectItem(i[0]),this.list.element.offsetHeight!==s&&this.list.viewportResized(),this.itemsFilteredForTest()}updateNotFoundMessage(e){this.list.element.classList.toggle("hidden",!e),this.notFoundElement.classList.toggle("hidden",e),!e&&this.provider&&(this.notFoundElement.textContent=this.provider.notFoundText(this.cleanValue()),n.ARIAUtils.alert(this.notFoundElement.textContent))}onInput(e){this.query=e.data,this.queryChanged(),this.scheduleFilter()}async queryChanged(){this.hintElement.classList.toggle("hidden",Boolean(this.query)),this.queryChangedCallback&&await this.queryChangedCallback(this.query),this.provider&&this.provider.queryChanged(this.cleanValue())}updateSelectedItemARIA(e,t){return!1}onKeyDown(e){let t=!1;switch(e.key){case s.KeyboardUtilities.ENTER_KEY:return void(e.isComposing||this.onEnter(e));case s.KeyboardUtilities.TAB_KEY:if(e.shiftKey){t=this.list.selectPreviousItem(!0,!1);break}t=this.tabKeyPressed();break;case"ArrowUp":t=this.list.selectPreviousItem(!0,!1);break;case"ArrowDown":t=this.list.selectNextItem(!0,!1);break;case"PageUp":t=this.list.selectItemPreviousPage(!1);break;case"PageDown":t=this.list.selectItemNextPage(!1)}if(t){e.consume(!0);const t=this.list.elementAtIndex(this.list.selectedIndex())?.textContent;t&&n.ARIAUtils.alert(g(h.sItemSOfS,{PH1:t,PH2:this.list.selectedIndex()+1,PH3:this.items.length}))}}scheduleFilter(){this.filterTimer||(this.filterTimer=window.setTimeout(this.filterItems.bind(this),0))}selectItem(e){this.promptHistory.push(this.query),this.promptHistory.length>100&&this.promptHistory.shift(),this.provider&&this.provider.selectItem(e,this.cleanValue())}}class u{refreshCallback;jslogContext;constructor(e){this.jslogContext=e}setRefreshCallback(e){this.refreshCallback=e}attach(){}itemCount(){return 0}itemKeyAt(e){return""}itemScoreAt(e,t){return 1}renderItem(e,t,i,s){}jslogContextAt(e){return this.jslogContext}renderAsTwoRows(){return!1}selectItem(e,t){}refresh(){this.refreshCallback&&this.refreshCallback()}rewriteQuery(e){return e}queryChanged(e){}notFoundText(e){return g(h.noResultsFound)}detach(){}}const f=[];function v(e){f.push(e)}function w(){return f}var x=Object.freeze({__proto__:null,FilteredListWidget:p,Provider:u,getRegisteredProviders:w,registerProvider:v});const y={typeToSeeAvailableCommands:"Type ? to see available commands"},C=i.i18n.registerUIStrings("ui/legacy/components/quick_open/QuickOpen.ts",y),b=i.i18n.getLocalizedString.bind(void 0,C),E=[];class A{prefix=null;prefixes=[];providers=new Map;filteredListWidget=null;constructor(){w().forEach(this.addProvider.bind(this)),this.prefixes.sort(((e,t)=>t.length-e.length))}static show(e){const t=new this,i=new p(null,E,t.queryChanged.bind(t));t.filteredListWidget=i,i.setHintElement(b(y.typeToSeeAvailableCommands)),i.showAsDialog(),i.setQuery(e)}addProvider(e){const t=e.prefix;null!==t&&(this.prefixes.push(t),this.providers.set(t,{provider:e.provider,titlePrefix:e.titlePrefix,titleSuggestion:e.titleSuggestion}))}async queryChanged(e){const t=this.prefixes.find((t=>e.startsWith(t)));if("string"!=typeof t)return;if(!this.filteredListWidget)return;this.filteredListWidget.setPrefix(t);const i=this.providers.get(t)?.titlePrefix;this.filteredListWidget.setCommandPrefix(i?i():"");const s=e===t&&this.providers.get(t)?.titleSuggestion;if(this.filteredListWidget.setCommandSuggestion(s?s():""),this.prefix===t)return;this.prefix=t,this.filteredListWidget.setProvider(null);const r=this.providers.get(t)?.provider;if(!r)return;const o=await r();this.prefix===t&&this.filteredListWidget&&(this.filteredListWidget.setProvider(o),this.providerLoadedForTest(o))}providerLoadedForTest(e){}}var I=Object.freeze({__proto__:null,QuickOpenImpl:A,ShowActionDelegate:class{handleAction(e,t){return"quick-open.show"===t&&(A.show(""),!0)}},history:E});const R={oneOrMoreSettingsHaveChanged:"One or more settings have changed which requires a reload to take effect",noCommandsFound:"No commands found",run:"Run",command:"Command",runCommand:"Run command",deprecated:"— deprecated"},S=i.i18n.registerUIStrings("ui/legacy/components/quick_open/CommandMenu.ts",R),T=i.i18n.getLocalizedString.bind(void 0,S);let L;class P{commandsInternal;constructor(){this.commandsInternal=[],this.loadCommands()}static instance(e={forceNew:null}){const{forceNew:t}=e;return L&&!t||(L=new P),L}static createCommand(e){const{category:i,keys:s,title:r,shortcut:o,jslogContext:n,executeHandler:l,availableHandler:a,userActionCode:d,deprecationWarning:c,isPanelOrDrawer:h}=e;let m=l;if(d){const e=d;m=()=>{t.userMetrics.actionTaken(e),l()}}return new F(i,r,s,o,n,m,a,c,h)}static createSettingCommand(i,r,o){const l=i.category();if(!l)throw new Error(`Creating '${r}' setting command failed. Setting has no category.`);const a=i.tags()||"",d=Boolean(i.reloadRequired());return P.createCommand({category:e.Settings.getLocalizedSettingsCategory(l),keys:a,title:r,shortcut:"",jslogContext:s.StringUtilities.toKebabCase(`${i.name}-${o}`),executeHandler:()=>{!i.deprecation?.disabled||i.deprecation?.experiment&&!i.deprecation.experiment.isEnabled()?(i.set(o),"emulate-page-focus"===i.name&&t.userMetrics.actionTaken(t.UserMetrics.Action.ToggleEmulateFocusedPageFromCommandMenu),d&&n.InspectorView.InspectorView.instance().displayReloadRequiredWarning(T(R.oneOrMoreSettingsHaveChanged))):e.Revealer.reveal(i)},availableHandler:function(){return i.get()!==o},deprecationWarning:i.deprecation?.warning})}static createActionCommand(e){const{action:t,userActionCode:i}=e,s=t.category();if(!s)throw new Error(`Creating '${t.title()}' action command failed. Action has no category.`);let r;"DRAWER"===s&&(r="DRAWER");const o=n.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction(t.id())||"";return P.createCommand({category:n.ActionRegistration.getLocalizedActionCategory(s),keys:t.tags()||"",title:t.title(),shortcut:o,jslogContext:t.id(),executeHandler:t.execute.bind(t),userActionCode:i,availableHandler:void 0,isPanelOrDrawer:r})}static createRevealViewCommand(e){const{title:i,tags:s,category:r,userActionCode:o,id:l}=e;if(!r)throw new Error(`Creating '${i}' reveal view command failed. Reveal view has no category.`);let a;"PANEL"===r?a="PANEL":"DRAWER"===r&&(a="DRAWER");return P.createCommand({category:n.ViewManager.getLocalizedViewLocationCategory(r),keys:s,title:i,shortcut:"",jslogContext:l,executeHandler:()=>("issues-pane"===l&&t.userMetrics.issuesPanelOpenedFrom(5),n.ViewManager.ViewManager.instance().showView(l,!0)),userActionCode:o,availableHandler:void 0,isPanelOrDrawer:a})}loadCommands(){const t=new Map;for(const{category:e,name:i}of n.ViewManager.getRegisteredLocationResolvers())e&&i&&t.set(i,e);const i=n.ViewManager.getRegisteredViewExtensions();for(const e of i){const i=e.location(),s=i&&t.get(i);if(!s)continue;const r={title:e.commandPrompt(),tags:e.tags()||"",category:s,id:e.viewId()};this.commandsInternal.push(P.createRevealViewCommand(r))}const s=e.Settings.Settings.instance().getRegisteredSettings();for(const t of s){const i=t.options;if(i&&t.category)for(const s of i){const i=e.Settings.Settings.instance().moduleSetting(t.settingName);this.commandsInternal.push(P.createSettingCommand(i,s.title(),s.value))}}}commands(){return this.commandsInternal}}class k extends u{commands;constructor(e=[]){super("command"),this.commands=e}attach(){const e=P.instance().commands(),t=n.ActionRegistry.ActionRegistry.instance().availableActions();for(const e of t){e.category()&&this.commands.push(P.createActionCommand({action:e}))}for(const t of e)t.available()&&(this.commands.find((({title:e,category:i})=>e===t.title&&i===t.category))||this.commands.push(t));this.commands=this.commands.sort((function(e,t){const i=s.StringUtilities.compare(e.category,t.category);return i||s.StringUtilities.compare(e.title,t.title)}))}detach(){this.commands=[]}itemCount(){return this.commands.length}itemKeyAt(e){return this.commands[e].key}itemScoreAt(e,t){const i=this.commands[e];let s=r.Diff.DiffWrapper.characterScore(t.toLowerCase(),i.title.toLowerCase());return"PANEL"===i.isPanelOrDrawer?s+=2:"DRAWER"===i.isPanelOrDrawer&&(s+=1),s}renderItem(e,t,i,s){const r=this.commands[e];i.removeChildren();const l=o.Icon.create(H[r.category]);i.parentElement?.parentElement?.insertBefore(l,i.parentElement),n.UIUtils.createTextChild(i,r.title),p.highlightRanges(i,t,!0),s.textContent=r.shortcut;const a=r.deprecationWarning;if(a){const e=i.parentElement?.createChild("span","deprecated-tag");e&&(e.textContent=T(R.deprecated),e.title=a)}const d=i.parentElement?.parentElement?.createChild("span","tag");d&&(d.textContent=r.category)}jslogContextAt(e){return this.commands[e].jslogContext}selectItem(e,i){null!==e&&(this.commands[e].execute(),t.userMetrics.actionTaken(t.UserMetrics.Action.SelectCommandFromCommandMenu))}notFoundText(){return T(R.noCommandsFound)}}const H={Appearance:"palette",Console:"terminal",Debugger:"bug",Drawer:"keyboard-full",Elements:"code",Global:"global",Grid:"grid-on",Help:"help",Mobile:"devices",Navigation:"refresh",Network:"arrow-up-down",Panel:"frame",Performance:"performance",Persistence:"override",Recorder:"record-start",Rendering:"tonality",Resources:"bin",Screenshot:"photo-camera",Settings:"gear",Sources:"label"};class F{category;title;key;shortcut;jslogContext;deprecationWarning;isPanelOrDrawer;#e;#t;constructor(e,t,i,s,r,o,n,l,a){this.category=e,this.title=t,this.key=e+"\0"+t+"\0"+i,this.shortcut=s,this.jslogContext=r,this.#e=o,this.#t=n,this.deprecationWarning=l,this.isPanelOrDrawer=a}available(){return!this.#t||this.#t()}execute(){return this.#e()}}v({prefix:">",iconName:"chevron-right",provider:()=>Promise.resolve(new k),helpTitle:()=>T(R.runCommand),titlePrefix:()=>T(R.run),titleSuggestion:()=>T(R.command)});var B=Object.freeze({__proto__:null,Command:F,CommandMenu:P,CommandMenuProvider:k,ShowActionDelegate:class{handleAction(e,i){return t.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),A.show(">"),!0}}});class W extends u{providers;constructor(e){super(e),this.providers=[],w().forEach(this.addProvider.bind(this))}async addProvider(e){this.providers.push({prefix:e.prefix||"",iconName:e.iconName,title:e.helpTitle(),jslogContext:(await e.provider()).jslogContext})}itemCount(){return this.providers.length}itemKeyAt(e){return this.providers[e].prefix}itemScoreAt(e,t){return-this.providers[e].prefix.length}renderItem(e,t,i,s){const r=this.providers[e],l=new o.Icon.Icon;l.data={iconName:r.iconName,color:"var(--icon-default)",width:"18px"},i.parentElement?.parentElement?.insertBefore(l,i.parentElement),n.UIUtils.createTextChild(i,r.title)}jslogContextAt(e){return this.providers[e].jslogContext}selectItem(e,t){null!==e&&A.show(this.providers[e].prefix)}renderAsTwoRows(){return!1}}v({prefix:"?",iconName:"help",provider:()=>Promise.resolve(new W("help")),helpTitle:()=>"Help",titlePrefix:()=>"Help",titleSuggestion:void 0});var D=Object.freeze({__proto__:null,HelpQuickOpen:W});export{B as CommandMenu,x as FilteredListWidget,D as HelpQuickOpen,I as QuickOpen};