@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 6.74 kB
JavaScript
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";import*as DataGrid from"../../ui/legacy/components/data_grid/data_grid.js";import*as SourceFrame from"../../ui/legacy/components/source_frame/source_frame.js";import*as UI from"../../ui/legacy/legacy.js";import*as LegacyWrapper from"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as ApplicationComponents from"./components/components.js";import{SharedStorageForOrigin}from"./SharedStorageModel.js";import{StorageItemsView}from"./StorageItemsView.js";const UIStrings={sharedStorage:"Shared storage",key:"Key",value:"Value",sharedStorageItems:"Shared Storage Items",sharedStorageItemsCleared:"Shared Storage items cleared",sharedStorageFilteredItemsCleared:"Shared Storage filtered items cleared",selectAValueToPreview:"Select a value to preview",sharedStorageItemDeleted:"The storage item was deleted.",sharedStorageItemEdited:"The storage item was edited.",sharedStorageItemEditCanceled:"The storage item edit was canceled.",sharedStorageNumberEntries:"Number of entries shown in table: {PH1}"},str_=i18n.i18n.registerUIStrings("panels/application/SharedStorageItemsView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export var SharedStorageItemsDispatcher;!function(e){let t;!function(e){e.FilteredItemsCleared="FilteredItemsCleared",e.ItemDeleted="ItemDeleted",e.ItemEdited="ItemEdited",e.ItemsCleared="ItemsCleared",e.ItemsRefreshed="ItemsRefreshed"}(t=e.Events||(e.Events={}))}(SharedStorageItemsDispatcher||(SharedStorageItemsDispatcher={}));export class SharedStorageItemsView extends StorageItemsView{#e;outerSplitWidget;innerSplitWidget;#t;dataGrid;#a;#i;sharedStorageItemsDispatcher;constructor(e){super(i18nString(UIStrings.sharedStorage),"sharedStoragePanel"),this.#e=e,this.element.classList.add("storage-view","table");const t=[{id:"key",title:i18nString(UIStrings.key),sortable:!1,editable:!0,longText:!0,weight:50},{id:"value",title:i18nString(UIStrings.value),sortable:!1,editable:!0,longText:!0,weight:50}];this.dataGrid=new DataGrid.DataGrid.DataGridImpl({displayName:i18nString(UIStrings.sharedStorageItems),columns:t,editCallback:this.#r.bind(this),deleteCallback:this.#s.bind(this),refreshCallback:this.refreshItems.bind(this)}),this.dataGrid.addEventListener(DataGrid.DataGrid.Events.SelectedNode,(e=>{this.#d(e.data)})),this.dataGrid.addEventListener(DataGrid.DataGrid.Events.DeselectedNode,(()=>{this.#d(null)})),this.dataGrid.setStriped(!0),this.dataGrid.setName("SharedStorageItemsView");const a=this.dataGrid.asWidget();a.setMinimumSize(0,100),this.#t=LegacyWrapper.LegacyWrapper.legacyWrapper(UI.Widget.VBox,new ApplicationComponents.SharedStorageMetadataView.SharedStorageMetadataView(e,e.securityOrigin)),this.#t.setMinimumSize(0,275);const i=this.#t.element.createChild("div","metadata-view-resizer");this.innerSplitWidget=new UI.SplitWidget.SplitWidget(!1,!1,"sharedStorageInnerSplitViewState"),this.innerSplitWidget.setSidebarWidget(this.#t),this.innerSplitWidget.setMainWidget(a),this.innerSplitWidget.installResizer(i),this.#a=new UI.Widget.VBox,this.#a.setMinimumSize(0,25);const r=this.#a.element.createChild("div","preview-panel-resizer");this.outerSplitWidget=new UI.SplitWidget.SplitWidget(!1,!0,"sharedStorageOuterSplitViewState"),this.outerSplitWidget.show(this.element),this.outerSplitWidget.setMainWidget(this.innerSplitWidget),this.outerSplitWidget.setSidebarWidget(this.#a),this.outerSplitWidget.installResizer(r),this.#a.contentElement.classList.add("placeholder");this.#a.contentElement.createChild("div").textContent=i18nString(UIStrings.selectAValueToPreview),this.#i=[],Common.EventTarget.removeEventListeners(this.#i),this.#e=e,this.#i=[this.#e.addEventListener(SharedStorageForOrigin.Events.SharedStorageChanged,this.#n,this)],this.sharedStorageItemsDispatcher=new Common.ObjectWrapper.ObjectWrapper}static async createView(e){const t=new SharedStorageItemsView(e);return await t.updateEntriesOnly(),t}async updateEntriesOnly(){if(!this.isShowing())return;const e=await this.#e.getEntries();e&&this.#o(e)}async#n(){await this.refreshItems()}async refreshItems(){this.isShowing()&&(await this.#t.getComponent().render(),await this.updateEntriesOnly(),this.sharedStorageItemsDispatcher.dispatchEventToListeners(SharedStorageItemsDispatcher.Events.ItemsRefreshed))}async deleteSelectedItem(){this.dataGrid.selectedNode&&await this.#s(this.dataGrid.selectedNode)}async deleteAllItems(){if(!this.hasFilter())return await this.#e.clear(),await this.refreshItems(),this.sharedStorageItemsDispatcher.dispatchEventToListeners(SharedStorageItemsDispatcher.Events.ItemsCleared),void UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageItemsCleared));await Promise.all(this.dataGrid.rootNode().children.filter((e=>e.data.key)).map((e=>this.#e.deleteEntry(e.data.key)))),await this.refreshItems(),this.sharedStorageItemsDispatcher.dispatchEventToListeners(SharedStorageItemsDispatcher.Events.FilteredItemsCleared),UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageFilteredItemsCleared))}async#r(e,t,a,i){if("key"===t&&""===i)return await this.refreshItems(),void UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageItemEditCanceled));"key"===t?(await this.#e.deleteEntry(a),await this.#e.setEntry(i,e.data.value||"",!1)):await this.#e.setEntry(e.data.key||" ",i,!1),await this.refreshItems(),this.sharedStorageItemsDispatcher.dispatchEventToListeners(SharedStorageItemsDispatcher.Events.ItemEdited,{columnIdentifier:t,oldText:a,newText:i}),UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageItemEdited))}#o(e){const t=this.dataGrid.rootNode(),[a]=t.children.filter((e=>e.selected)).map((e=>e.data.key));t.removeChildren();let i=null;const r=this.filter(e,(e=>`${e.key} ${e.value}`));for(const e of r){const r=new DataGrid.DataGrid.DataGridNode({key:e.key,value:e.value},!1);r.selectable=!0,t.appendChild(r),i&&e.key!==a||(i=r)}i&&(i.selected=!0),this.dataGrid.addCreationNode(!1),this.setCanDeleteSelected(Boolean(i)),UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageNumberEntries,{PH1:r.length}))}async#s(e){if(!e||e.isCreationNode||!this.#e)return;const t=e.data.key;await this.#e.deleteEntry(t),await this.refreshItems(),this.sharedStorageItemsDispatcher.dispatchEventToListeners(SharedStorageItemsDispatcher.Events.ItemDeleted,{key:t}),UI.ARIAUtils.alert(i18nString(UIStrings.sharedStorageItemDeleted))}async#d(e){const t=e?.data?.key,a=e?.data?.value,i=t&&{key:t,value:a||""};if(i){const t=SourceFrame.JSONView.JSONView.createViewSync(i);e.selected&&this.outerSplitWidget.setSidebarWidget(t)}else this.outerSplitWidget.setSidebarWidget(this.#a)}getEntriesForTesting(){return this.dataGrid.rootNode().children.filter((e=>e.data.key)).map((e=>e.data))}}