@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 5.48 kB
JavaScript
import*as Common from"../../core/common/common.js";import*as SDK from"../../core/sdk/sdk.js";import*as SourceFrame from"../../ui/legacy/components/source_frame/source_frame.js";import*as UI from"../../ui/legacy/legacy.js";import resourcesPanelStyles from"./resourcesPanel.css.js";import{ApplicationPanelSidebar,StorageCategoryView}from"./ApplicationPanelSidebar.js";import{CookieItemsView}from"./CookieItemsView.js";import{DatabaseQueryView}from"./DatabaseQueryView.js";import{DatabaseTableView}from"./DatabaseTableView.js";import{DOMStorageItemsView}from"./DOMStorageItemsView.js";import{StorageItemsView}from"./StorageItemsView.js";import*as PreloadingHelper from"./preloading/helper/helper.js";let resourcesPanelInstance,resourceRevealerInstance,frameDetailsRevealerInstance,ruleSetViewRevealerInstance,attemptViewWithFilterRevealerInstance;export class ResourcesPanel extends UI.Panel.PanelWithSidebar{resourcesLastSelectedItemSetting;visibleView;pendingViewPromise;categoryView;storageViews;storageViewToolbar;domStorageView;cookieView;emptyWidget;sidebar;constructor(){super("resources"),this.resourcesLastSelectedItemSetting=Common.Settings.Settings.instance().createSetting("resourcesLastSelectedElementPath",[]),this.visibleView=null,this.pendingViewPromise=null,this.categoryView=null;const e=new UI.Widget.VBox;this.storageViews=e.element.createChild("div","vbox flex-auto"),this.storageViewToolbar=new UI.Toolbar.Toolbar("resources-toolbar",e.element),this.splitWidget().setMainWidget(e),this.domStorageView=null,this.cookieView=null,this.emptyWidget=null,this.sidebar=new ApplicationPanelSidebar(this),this.sidebar.show(this.panelSidebarElement())}static instance(e={forceNew:null}){const{forceNew:t}=e;return resourcesPanelInstance&&!t||(resourcesPanelInstance=new ResourcesPanel),resourcesPanelInstance}static shouldCloseOnReset(e){return[SourceFrame.ResourceSourceFrame.ResourceSourceFrame,SourceFrame.ImageView.ImageView,SourceFrame.FontView.FontView,StorageItemsView,DatabaseQueryView,DatabaseTableView].some((t=>e instanceof t))}static async showAndGetSidebar(){return await UI.ViewManager.ViewManager.instance().showView("resources"),ResourcesPanel.instance().sidebar}focus(){this.sidebar.focus()}lastSelectedItemPath(){return this.resourcesLastSelectedItemSetting.get()}setLastSelectedItemPath(e){this.resourcesLastSelectedItemSetting.set(e)}resetView(){this.visibleView&&ResourcesPanel.shouldCloseOnReset(this.visibleView)&&this.showView(null)}showView(e){this.pendingViewPromise=null,this.visibleView!==e&&(this.visibleView&&this.visibleView.detach(),e&&e.show(this.storageViews),this.visibleView=e,this.storageViewToolbar.removeToolbarItems(),this.storageViewToolbar.element.classList.toggle("hidden",!0),e instanceof UI.View.SimpleView&&e.toolbarItems().then((e=>{e.map((e=>this.storageViewToolbar.appendToolbarItem(e))),this.storageViewToolbar.element.classList.toggle("hidden",!e.length)})))}async scheduleShowView(e){this.pendingViewPromise=e;const t=await e;return this.pendingViewPromise!==e?null:(this.showView(t),t)}showCategoryView(e,t){this.categoryView||(this.categoryView=new StorageCategoryView),this.categoryView.setText(e),this.categoryView.setLink(t),this.showView(this.categoryView)}showDOMStorage(e){e&&(this.domStorageView?this.domStorageView.setStorage(e):this.domStorageView=new DOMStorageItemsView(e),this.showView(this.domStorageView))}showCookies(e,t){const s=e.model(SDK.CookieModel.CookieModel);s&&(this.cookieView?this.cookieView.setCookiesDomain(s,t):this.cookieView=new CookieItemsView(s,t),this.showView(this.cookieView))}clearCookies(e,t){const s=e.model(SDK.CookieModel.CookieModel);s&&s.clear(t).then((()=>{this.cookieView&&this.cookieView.refreshItems()}))}wasShown(){super.wasShown(),this.registerCSSFiles([resourcesPanelStyles])}}export class ResourceRevealer{static instance(e={forceNew:null}){const{forceNew:t}=e;return resourceRevealerInstance&&!t||(resourceRevealerInstance=new ResourceRevealer),resourceRevealerInstance}async reveal(e){if(!(e instanceof SDK.Resource.Resource))throw new Error("Internal error: not a resource");const t=await ResourcesPanel.showAndGetSidebar();await t.showResource(e)}}export class FrameDetailsRevealer{static instance(e={forceNew:null}){const{forceNew:t}=e;return frameDetailsRevealerInstance&&!t||(frameDetailsRevealerInstance=new FrameDetailsRevealer),frameDetailsRevealerInstance}async reveal(e){if(!(e instanceof SDK.ResourceTreeModel.ResourceTreeFrame))throw new Error("Internal error: not a frame");(await ResourcesPanel.showAndGetSidebar()).showFrame(e)}}export class RuleSetViewRevealer{static instance(e={forceNew:null}){const{forceNew:t}=e;return ruleSetViewRevealerInstance&&!t||(ruleSetViewRevealerInstance=new RuleSetViewRevealer),ruleSetViewRevealerInstance}async reveal(e){if(!(e instanceof PreloadingHelper.PreloadingForward.RuleSetView))throw new Error("Internal error: not an RuleSetView");(await ResourcesPanel.showAndGetSidebar()).showPreloadingRuleSetView(e)}}export class AttemptViewWithFilterRevealer{static instance(e={forceNew:null}){const{forceNew:t}=e;return attemptViewWithFilterRevealerInstance&&!t||(attemptViewWithFilterRevealerInstance=new AttemptViewWithFilterRevealer),attemptViewWithFilterRevealerInstance}async reveal(e){if(!(e instanceof PreloadingHelper.PreloadingForward.AttemptViewWithFilter))throw new Error("Internal error: not an AttemptViewWithFilter");(await ResourcesPanel.showAndGetSidebar()).showPreloadingAttemptViewWithFilter(e)}}