UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 5.02 kB
import*as Common from"../../core/common/common.js";import*as Host from"../../core/host/host.js";import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import*as Logs from"../../models/logs/logs.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import*as Components from"../../ui/legacy/components/utils/utils.js";import*as UI from"../../ui/legacy/legacy.js";import*as RequestLinkIcon from"../../ui/components/request_link_icon/request_link_icon.js";const UIStrings={unknown:"unknown",clickToRevealTheFramesDomNodeIn:"Click to reveal the frame's DOM node in the Elements panel",unavailable:"unavailable"},str_=i18n.i18n.registerUIStrings("panels/issues/AffectedResourcesView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export const extractShortPath=e=>(/[^/]+$/.exec(e)||/[^/]+\/$/.exec(e)||[""])[0];export class AffectedResourcesView extends UI.TreeOutline.TreeElement{#e;issue;affectedResourcesCountElement;affectedResources;#t;#n;#s;requestResolver;constructor(e,t){super(),this.#e=e,this.issue=t,this.toggleOnClick=!0,this.affectedResourcesCountElement=this.createAffectedResourcesCounter(),this.affectedResources=this.createAffectedResources(),this.#t=0,this.requestResolver=new Logs.RequestResolver.RequestResolver,this.#n=[],this.#s=new Set}setIssue(e){this.issue=e}createAffectedResourcesCounter(){const e=document.createElement("div");return e.classList.add("affected-resource-label"),this.listItemElement.appendChild(e),e}createAffectedResources(){const e=new UI.TreeOutline.TreeElement,t=document.createElement("table");return t.classList.add("affected-resource-list"),e.listItemElement.appendChild(t),this.appendChild(e),t}updateAffectedResourceCount(e){this.#t=e,this.affectedResourcesCountElement.textContent=this.getResourceNameWithCount(e),this.hidden=0===this.#t,this.#e.updateAffectedResourceVisibility()}isEmpty(){return 0===this.#t}clear(){this.affectedResources.textContent="",this.requestResolver.clear()}expandIfOneResource(){1===this.#t&&this.expand()}#r(e){const t=SDK.FrameManager.FrameManager.instance().getFrame(e);if(!(t&&t.url||(this.#s.add(e),this.#n.length))){const e=SDK.FrameManager.FrameManager.instance().addEventListener(SDK.FrameManager.Events.FrameAddedToTarget,this.#a,this),t=SDK.FrameManager.FrameManager.instance().addEventListener(SDK.FrameManager.Events.FrameNavigated,this.#a,this);this.#n=[e,t]}return t}#a(e){const t=e.data.frame;if(!t.url)return;const n=this.#s.delete(t.id);0===this.#s.size&&this.#n.length&&(Common.EventTarget.removeEventListeners(this.#n),this.#n=[]),n&&this.update()}createFrameCell(e,t){const n=this.#r(e),s=n&&(n.unreachableUrl()||n.url)||i18nString(UIStrings.unknown),r=document.createElement("td");if(r.classList.add("affected-resource-cell"),n){const n=new IconButton.Icon.Icon;n.data={iconName:"code-circle",color:"var(--icon-link)",width:"16px",height:"16px"},n.classList.add("link","elements-panel"),n.onclick=async()=>{Host.userMetrics.issuesPanelResourceOpened(t,"Element");const n=SDK.FrameManager.FrameManager.instance().getFrame(e);if(n){const e=await n.getOwnerDOMNodeOrDocument();e&&Common.Revealer.reveal(e)}},n.title=i18nString(UIStrings.clickToRevealTheFramesDomNodeIn),r.appendChild(n)}return r.appendChild(document.createTextNode(s)),r.onmouseenter=()=>{const t=SDK.FrameManager.FrameManager.instance().getFrame(e);t&&t.highlight()},r.onmouseleave=()=>SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight(),r}createRequestCell(e,t={}){const n=document.createElement("td");n.classList.add("affected-resource-cell");const s=new RequestLinkIcon.RequestLinkIcon.RequestLinkIcon;return s.data={...t,affectedRequest:e,requestResolver:this.requestResolver,displayURL:!0},n.appendChild(s),n}async createElementCell({backendNodeId:e,nodeName:t,target:n},s){if(!n){const e=document.createElement("td");return e.textContent=t||i18nString(UIStrings.unavailable),e}function r(){Host.userMetrics.issuesPanelResourceOpened(s,"Element")}const a=new SDK.DOMModel.DeferredDOMNode(n,e),o=await Common.Linkifier.Linkifier.linkify(a);o.textContent=t,o.addEventListener("click",(()=>r())),o.addEventListener("keydown",(e=>{"Enter"===e.key&&r()}));const i=document.createElement("td");return i.classList.add("affected-resource-element","devtools-link"),i.appendChild(o),i}appendSourceLocation(e,t,n){const s=document.createElement("td");if(s.classList.add("affected-source-location"),t){const e=40,r=new Components.Linkifier.Linkifier(e).linkifyScriptLocation(n||null,t.scriptId||null,t.url,t.lineNumber,{columnNumber:t.columnNumber,inlineFrameIndex:0});s.appendChild(r)}e.appendChild(s)}appendColumnTitle(e,t,n=null){const s=document.createElement("td");s.classList.add("affected-resource-header"),n&&s.classList.add(n),s.textContent=t,e.appendChild(s)}createIssueDetailCell(e,t=null){const n=document.createElement("td");return n.textContent=e,t&&n.classList.add(t),n}appendIssueDetailCell(e,t,n=null){const s=this.createIssueDetailCell(t,n);return e.appendChild(s),s}}