@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 2.56 kB
JavaScript
import*as IssuesManager from"../../models/issues_manager/issues_manager.js";import cspViolationsViewStyles from"./cspViolationsView.css.js";import*as i18n from"../../core/i18n/i18n.js";import*as UI from"../../ui/legacy/legacy.js";import{ComboBoxOfCheckBoxes}from"./ComboBoxOfCheckBoxes.js";import{CSPViolationsListView}from"./CSPViolationsListView.js";const UIStrings={filter:"Filter"},str_=i18n.i18n.registerUIStrings("panels/issues/CSPViolationsView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);let cspViolationsViewInstance;export class CSPViolationsView extends UI.Widget.VBox{#e=new CSPViolationsListView;#s=IssuesManager.IssuesManager.IssuesManager.instance();constructor(){super(!0),this.contentElement.classList.add("csp-violations-pane");const e=new UI.Toolbar.Toolbar("csp-violations-toolbar",this.contentElement),s=new UI.Toolbar.ToolbarInput(i18nString(UIStrings.filter),"",1,.2,"");s.addEventListener(UI.Toolbar.ToolbarInput.Event.TextChanged,(()=>{this.#e.updateTextFilter(s.value())})),e.appendToolbarItem(s);const t=new ComboBoxOfCheckBoxes("Categories");t.setText("Categories"),t.addOption("Trusted Type Policy",IssuesManager.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode,!0),t.addOption("Trusted Type Sink",IssuesManager.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode,!0),t.addOption("CSP Inline",IssuesManager.ContentSecurityPolicyIssue.inlineViolationCode,!0),t.addOption("CSP Eval",IssuesManager.ContentSecurityPolicyIssue.evalViolationCode,!0),t.addOption("CSP URL",IssuesManager.ContentSecurityPolicyIssue.urlViolationCode,!0),t.addHeader("Reset",(()=>{t.getOptions().forEach(((e,s)=>t.setOptionEnabled(s,e.default)))})),t.setOnOptionClicked((()=>{const e=new Set(t.getOptions().filter((e=>e.enabled)).map((e=>e.value)));this.#e.updateCategoryFilter(e)})),e.appendToolbarItem(t),this.#e.show(this.contentElement),this.#s.addEventListener("IssueAdded",this.#t,this),this.#s.addEventListener("FullUpdateRequired",this.#i,this),this.#n()}static instance(e={forceNew:null}){const{forceNew:s}=e;return cspViolationsViewInstance&&!s||(cspViolationsViewInstance=new CSPViolationsView),cspViolationsViewInstance}#t(e){const{issue:s}=e.data;s instanceof IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#e.addIssue(s)}#i(){this.#e.clearIssues(),this.#n()}#n(){for(const e of this.#s.issues())e instanceof IssuesManager.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#e.addIssue(e)}wasShown(){super.wasShown(),this.registerCSSFiles([cspViolationsViewStyles])}}