UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 3.22 kB
import*as i18n from"../../core/i18n/i18n.js";import*as UI from"../../ui/legacy/legacy.js";import networkManageCustomHeadersViewStyles from"./networkManageCustomHeadersView.css.js";const UIStrings={manageHeaderColumns:"Manage Header Columns",noCustomHeaders:"No custom headers",addCustomHeader:"Add custom header…",headerName:"Header Name"},str_=i18n.i18n.registerUIStrings("panels/network/NetworkManageCustomHeadersView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class NetworkManageCustomHeadersView extends UI.Widget.VBox{list;columnConfigs;addHeaderColumnCallback;changeHeaderColumnCallback;removeHeaderColumnCallback;editor;constructor(e,t,s,a){super(!0),this.contentElement.classList.add("custom-headers-wrapper"),this.contentElement.createChild("div","header").textContent=i18nString(UIStrings.manageHeaderColumns),this.list=new UI.ListWidget.ListWidget(this),this.list.element.classList.add("custom-headers-list");const i=document.createElement("div");i.classList.add("custom-headers-list-list-empty"),i.textContent=i18nString(UIStrings.noCustomHeaders),this.list.setEmptyPlaceholder(i),this.list.show(this.contentElement),this.contentElement.appendChild(UI.UIUtils.createTextButton(i18nString(UIStrings.addCustomHeader),this.addButtonClicked.bind(this),"add-button")),this.columnConfigs=new Map,e.forEach((e=>this.columnConfigs.set(e.title.toLowerCase(),e))),this.addHeaderColumnCallback=t,this.changeHeaderColumnCallback=s,this.removeHeaderColumnCallback=a,this.contentElement.tabIndex=0}wasShown(){this.headersUpdated(),this.list.registerCSSFiles([networkManageCustomHeadersViewStyles]),this.registerCSSFiles([networkManageCustomHeadersViewStyles])}headersUpdated(){this.list.clear(),this.columnConfigs.forEach((e=>this.list.appendItem({header:e.title},e.editable)))}addButtonClicked(){this.list.addNewItem(this.columnConfigs.size,{header:""})}renderItem(e,t){const s=document.createElement("div");s.classList.add("custom-headers-list-item");const a=s.createChild("div","custom-header-name");return a.textContent=e.header,UI.Tooltip.Tooltip.install(a,e.header),s}removeItemRequested(e,t){this.removeHeaderColumnCallback(e.header),this.columnConfigs.delete(e.header.toLowerCase()),this.headersUpdated()}commitEdit(e,t,s){const a=t.control("header").value.trim();let i;i=s?this.addHeaderColumnCallback(a):this.changeHeaderColumnCallback(e.header,a),i&&!s&&this.columnConfigs.delete(e.header.toLowerCase()),i&&this.columnConfigs.set(a.toLowerCase(),{title:a,editable:!0}),this.headersUpdated()}beginEdit(e){const t=this.createEditor();return t.control("header").value=e.header,t}createEditor(){if(this.editor)return this.editor;const e=new UI.ListWidget.Editor;this.editor=e;const t=e.contentElement();t.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").textContent=i18nString(UIStrings.headerName);return t.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").appendChild(e.createInput("header","text","x-custom-header",function(t,s,a){let i=!0;const r=e.control("header").value.trim().toLowerCase();this.columnConfigs.has(r)&&t.header!==r&&(i=!1);return{valid:i,errorMessage:void 0}}.bind(this))),e}}