@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 6.92 kB
JavaScript
import*as Common from"../../core/common/common.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 CookieTable from"../../ui/legacy/components/cookie_table/cookie_table.js";import*as UI from"../../ui/legacy/legacy.js";import cookieItemsViewStyles from"./cookieItemsView.css.js";import{StorageItemsView}from"./StorageItemsView.js";const UIStrings={showUrlDecoded:"Show URL-decoded",cookies:"Cookies",selectACookieToPreviewItsValue:"Select a cookie to preview its value",onlyShowCookiesWithAnIssue:"Only show cookies with an issue",onlyShowCookiesWhichHaveAn:"Only show cookies that have an associated issue",clearFilteredCookies:"Clear filtered cookies",clearAllCookies:"Clear all cookies",numberOfCookiesShownInTableS:"Number of cookies shown in table: {PH1}"},str_=i18n.i18n.registerUIStrings("panels/application/CookieItemsView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);class CookiePreviewWidget extends UI.Widget.VBox{cookie;showDecodedSetting;toggle;value;constructor(){super(),this.setMinimumSize(230,45),this.cookie=null,this.showDecodedSetting=Common.Settings.Settings.instance().createSetting("cookieViewShowDecoded",!1);const e=document.createElement("div");e.classList.add("cookie-preview-widget-header");const t=document.createElement("span");t.classList.add("cookie-preview-widget-header-label"),t.textContent="Cookie Value",e.appendChild(t),this.contentElement.appendChild(e);const i=UI.UIUtils.CheckboxLabel.create(i18nString(UIStrings.showUrlDecoded),this.showDecodedSetting.get());i.classList.add("cookie-preview-widget-toggle"),i.checkboxElement.addEventListener("click",(()=>this.showDecoded(!this.showDecodedSetting.get()))),e.appendChild(i),this.toggle=i;const s=document.createElement("div");s.classList.add("cookie-preview-widget-cookie-value"),s.textContent="",s.addEventListener("dblclick",this.handleDblClickOnCookieValue.bind(this)),this.value=s,this.contentElement.classList.add("cookie-preview-widget"),this.contentElement.appendChild(s)}showDecoded(e){this.cookie&&(this.showDecodedSetting.set(e),this.toggle.checkboxElement.checked=e,this.updatePreview())}updatePreview(){this.cookie?this.value.textContent=this.showDecodedSetting.get()?decodeURIComponent(this.cookie.value()):this.cookie.value():this.value.textContent=""}setCookie(e){this.cookie=e,this.updatePreview()}handleDblClickOnCookieValue(e){e.preventDefault();const t=document.createRange();t.selectNode(this.value);const i=window.getSelection();i&&(i.removeAllRanges(),i.addRange(t))}}export class CookieItemsView extends StorageItemsView{model;cookieDomain;totalSize;cookiesTable;splitWidget;previewPanel;previewWidget;emptyWidget;onlyIssuesFilterUI;refreshThrottler;eventDescriptors;allCookies;shownCookies;selectedCookie;constructor(e,t){super(i18nString(UIStrings.cookies),"cookiesPanel"),this.element.classList.add("storage-view"),this.model=e,this.cookieDomain=t,this.totalSize=0,this.cookiesTable=new CookieTable.CookiesTable.CookiesTable(!1,this.saveCookie.bind(this),this.refreshItems.bind(this),this.handleCookieSelected.bind(this),this.deleteCookie.bind(this)),this.cookiesTable.setMinimumSize(0,50),this.splitWidget=new UI.SplitWidget.SplitWidget(!1,!0,"cookieItemsSplitViewState"),this.splitWidget.show(this.element),this.previewPanel=new UI.Widget.VBox;const i=this.previewPanel.element.createChild("div","preview-panel-resizer");this.splitWidget.setMainWidget(this.cookiesTable),this.splitWidget.setSidebarWidget(this.previewPanel),this.splitWidget.installResizer(i),this.previewWidget=new CookiePreviewWidget,this.emptyWidget=new UI.EmptyWidget.EmptyWidget(i18nString(UIStrings.selectACookieToPreviewItsValue)),this.emptyWidget.show(this.previewPanel.contentElement),this.onlyIssuesFilterUI=new UI.Toolbar.ToolbarCheckbox(i18nString(UIStrings.onlyShowCookiesWithAnIssue),i18nString(UIStrings.onlyShowCookiesWhichHaveAn),(()=>{this.updateWithCookies(this.allCookies)})),this.appendToolbarItem(this.onlyIssuesFilterUI),this.refreshThrottler=new Common.Throttler.Throttler(300),this.eventDescriptors=[],this.allCookies=[],this.shownCookies=[],this.selectedCookie=null,this.setCookiesDomain(e,t)}setCookiesDomain(e,t){this.model=e,this.cookieDomain=t,this.refreshItems(),Common.EventTarget.removeEventListeners(this.eventDescriptors);const i=e.target().model(SDK.NetworkManager.NetworkManager);i&&(this.eventDescriptors=[i.addEventListener(SDK.NetworkManager.Events.ResponseReceived,this.onResponseReceived,this),i.addEventListener(SDK.NetworkManager.Events.LoadingFinished,this.onLoadingFinished,this)])}showPreview(e){e!==this.selectedCookie&&(this.selectedCookie=e,e?(this.emptyWidget.detach(),this.previewWidget.setCookie(e),this.previewWidget.show(this.previewPanel.contentElement)):(this.previewWidget.detach(),this.emptyWidget.show(this.previewPanel.contentElement)))}handleCookieSelected(){const e=this.cookiesTable.selectedCookie();this.setCanDeleteSelected(Boolean(e)),this.showPreview(e)}async saveCookie(e,t){return t&&e.key()!==t.key()&&await this.model.deleteCookie(t),this.model.saveCookie(e)}deleteCookie(e,t){this.model.deleteCookie(e).then(t)}updateWithCookies(e){this.allCookies=e,this.totalSize=e.reduce(((e,t)=>e+t.size()),0);const t=Common.ParsedURL.ParsedURL.fromString(this.cookieDomain),i=t?t.host:"";this.cookiesTable.setCookieDomain(i),this.shownCookies=this.filter(e,(e=>`${e.name()} ${e.value()} ${e.domain()}`)),this.hasFilter()?(this.setDeleteAllTitle(i18nString(UIStrings.clearFilteredCookies)),this.setDeleteAllGlyph("filter-clear")):(this.setDeleteAllTitle(i18nString(UIStrings.clearAllCookies)),this.setDeleteAllGlyph("clear-list")),this.cookiesTable.setCookies(this.shownCookies,this.model.getCookieToBlockedReasonsMap()),UI.ARIAUtils.alert(i18nString(UIStrings.numberOfCookiesShownInTableS,{PH1:this.shownCookies.length})),this.setCanFilter(!0),this.setCanDeleteAll(this.shownCookies.length>0),this.setCanDeleteSelected(Boolean(this.cookiesTable.selectedCookie())),this.cookiesTable.selectedCookie()||this.showPreview(null)}filter(e,t){return super.filter(e,t).filter((e=>!this.onlyIssuesFilterUI.checked()||e instanceof SDK.Cookie.Cookie&&IssuesManager.RelatedIssue.hasIssues(e)))}deleteAllItems(){this.showPreview(null),this.model.deleteCookies(this.shownCookies).then((()=>this.refreshItems()))}deleteSelectedItem(){const e=this.cookiesTable.selectedCookie();e&&(this.showPreview(null),this.model.deleteCookie(e).then((()=>this.refreshItems())))}refreshItems(){this.model.getCookiesForDomain(this.cookieDomain).then(this.updateWithCookies.bind(this))}refreshItemsThrottled(){this.refreshThrottler.schedule((()=>Promise.resolve(this.refreshItems())))}onResponseReceived(){this.refreshItemsThrottled()}onLoadingFinished(){this.refreshItemsThrottled()}wasShown(){super.wasShown(),this.registerCSSFiles([cookieItemsViewStyles])}}