UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 2.68 kB
import*as i18n from"../../core/i18n/i18n.js";import*as UI from"../../ui/legacy/legacy.js";import*as SourceFrame from"../../ui/legacy/components/source_frame/source_frame.js";import*as ApplicationComponents from"./components/components.js";import interestGroupStorageViewStyles from"./interestGroupStorageView.css.js";const UIStrings={clickToDisplayBody:"Click on any interest group event to display the group's current state",noDataAvailable:"No details available for the selected interest group. The browser may have left the group."},str_=i18n.i18n.registerUIStrings("panels/application/InterestGroupStorageView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);function eventEquals(e,t){return e.accessTime===t.accessTime&&e.type===t.type&&e.ownerOrigin===t.ownerOrigin&&e.name===t.name}export class InterestGroupStorageView extends UI.SplitWidget.SplitWidget{interestGroupGrid=new ApplicationComponents.InterestGroupAccessGrid.InterestGroupAccessGrid;events=[];detailsGetter;noDataView;noDisplayView;constructor(e){super(!1,!0),this.detailsGetter=e;const t=new UI.Widget.VBox;this.noDisplayView=new UI.Widget.VBox,this.noDataView=new UI.Widget.VBox,t.setMinimumSize(0,80),this.setMainWidget(t),this.noDisplayView.setMinimumSize(0,40),this.setSidebarWidget(this.noDisplayView),this.noDataView.setMinimumSize(0,40),t.contentElement.appendChild(this.interestGroupGrid),this.interestGroupGrid.addEventListener("cellfocused",this.onFocus.bind(this)),this.noDisplayView.contentElement.classList.add("placeholder");this.noDisplayView.contentElement.createChild("div").textContent=i18nString(UIStrings.clickToDisplayBody),this.noDataView.contentElement.classList.add("placeholder");this.noDataView.contentElement.createChild("div").textContent=i18nString(UIStrings.noDataAvailable)}wasShown(){super.wasShown();const e=this.sidebarWidget();e&&e.registerCSSFiles([interestGroupStorageViewStyles])}addEvent(e){this.events.find((t=>eventEquals(t,e)))||(this.events.push(e),this.interestGroupGrid.data=this.events)}clearEvents(){this.events=[],this.interestGroupGrid.data=this.events,this.setSidebarWidget(this.noDisplayView)}async onFocus(e){const t=e.data.row;if(!t)return;const i=t.cells.find((e=>"event-group-owner"===e.columnId))?.value,s=t.cells.find((e=>"event-group-name"===e.columnId))?.value;if(!i||!s)return;const n=await this.detailsGetter.getInterestGroupDetails(i,s);if(n){const e=await SourceFrame.JSONView.JSONView.createView(JSON.stringify(n));e?.setMinimumSize(0,40),e&&this.setSidebarWidget(e)}else this.setSidebarWidget(this.noDataView)}getEventsForTesting(){return this.events}getInterestGroupGridForTesting(){return this.interestGroupGrid}}