@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 3.37 kB
JavaScript
import eventSourceMessagesViewStyles from"./eventSourceMessagesView.css.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 DataGrid from"../../ui/legacy/components/data_grid/data_grid.js";import*as UI from"../../ui/legacy/legacy.js";const UIStrings={id:"Id",type:"Type",data:"Data",time:"Time",eventSource:"Event Source",copyMessage:"Copy message"},str_=i18n.i18n.registerUIStrings("panels/network/EventSourceMessagesView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class EventSourceMessagesView extends UI.Widget.VBox{request;dataGrid;constructor(e){super(),this.element.classList.add("event-source-messages-view"),this.request=e;const t=[{id:"id",title:i18nString(UIStrings.id),sortable:!0,weight:8},{id:"type",title:i18nString(UIStrings.type),sortable:!0,weight:8},{id:"data",title:i18nString(UIStrings.data),sortable:!1,weight:88},{id:"time",title:i18nString(UIStrings.time),sortable:!0,weight:8}];this.dataGrid=new DataGrid.SortableDataGrid.SortableDataGrid({displayName:i18nString(UIStrings.eventSource),columns:t,editCallback:void 0,deleteCallback:void 0,refreshCallback:void 0}),this.dataGrid.setStriped(!0),this.dataGrid.setStickToBottom(!0),this.dataGrid.setRowContextMenuCallback(this.onRowContextMenu.bind(this)),this.dataGrid.markColumnAsSortedBy("time",DataGrid.DataGrid.Order.Ascending),this.sortItems(),this.dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged,this.sortItems,this),this.dataGrid.setName("EventSourceMessagesView"),this.dataGrid.asWidget().show(this.element)}wasShown(){this.dataGrid.rootNode().removeChildren(),this.registerCSSFiles([eventSourceMessagesViewStyles]);const e=this.request.eventSourceMessages();for(let t=0;t<e.length;++t)this.dataGrid.insertChild(new EventSourceMessageNode(e[t]));this.request.addEventListener(SDK.NetworkRequest.Events.EventSourceMessageAdded,this.messageAdded,this)}willHide(){this.request.removeEventListener(SDK.NetworkRequest.Events.EventSourceMessageAdded,this.messageAdded,this)}messageAdded(e){const t=e.data;this.dataGrid.insertChild(new EventSourceMessageNode(t))}sortItems(){const e=this.dataGrid.sortColumnId();if(!e)return;const t=Comparators[e];t&&this.dataGrid.sortNodes(t,!this.dataGrid.isSortOrderAscending())}onRowContextMenu(e,t){e.clipboardSection().appendItem(i18nString(UIStrings.copyMessage),Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(Host.InspectorFrontendHost.InspectorFrontendHostInstance,t.data.data))}}export class EventSourceMessageNode extends DataGrid.SortableDataGrid.SortableDataGridNode{message;constructor(e){const t=new Date(1e3*e.time),s=("0"+t.getHours()).substr(-2)+":"+("0"+t.getMinutes()).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)+"."+("00"+t.getMilliseconds()).substr(-3),i=document.createElement("div");UI.UIUtils.createTextChild(i,s),UI.Tooltip.Tooltip.install(i,t.toLocaleString()),super({id:e.eventId,type:e.eventName,data:e.data,time:i}),this.message=e}}export function EventSourceMessageNodeComparator(e,t,s){const i=e(t.message),r=e(s.message);return i<r?-1:i>r?1:0}export const Comparators={id:EventSourceMessageNodeComparator.bind(null,(e=>e.eventId)),type:EventSourceMessageNodeComparator.bind(null,(e=>e.eventName)),time:EventSourceMessageNodeComparator.bind(null,(e=>e.time))};