UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 3.95 kB
import*as i18n from"../../core/i18n/i18n.js";import*as LegacyWrapper from"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as SDK from"../../core/sdk/sdk.js";import*as UI from"../../ui/legacy/legacy.js";import{ExpandableApplicationPanelTreeElement}from"./ApplicationPanelTreeElement.js";import{StorageMetadataView}from"./components/components.js";import{IndexedDBTreeElement}from"./ApplicationPanelSidebar.js";import{ServiceWorkerCacheTreeElement}from"./ServiceWorkerCacheTreeElement.js";const UIStrings={storageBuckets:"Storage buckets"},str_=i18n.i18n.registerUIStrings("panels/application/StorageBucketsTreeElement.ts",UIStrings);export const i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class StorageBucketsTreeParentElement extends ExpandableApplicationPanelTreeElement{bucketTreeElements=new Set;constructor(e){super(e,i18nString(UIStrings.storageBuckets),"StorageBuckets");const t=UI.Icon.Icon.create("database","resource-tree-item");this.setLeadingIcons([t]),this.setLink("https://github.com/WICG/storage-buckets/blob/gh-pages/explainer.md")}initialize(){SDK.TargetManager.TargetManager.instance().addModelListener(SDK.StorageBucketsModel.StorageBucketsModel,"BucketAdded",this.bucketAdded,this),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.StorageBucketsModel.StorageBucketsModel,"BucketRemoved",this.bucketRemoved,this),SDK.TargetManager.TargetManager.instance().addModelListener(SDK.StorageBucketsModel.StorageBucketsModel,"BucketChanged",this.bucketChanged,this);for(const e of SDK.TargetManager.TargetManager.instance().models(SDK.StorageBucketsModel.StorageBucketsModel)){const t=e.getBuckets();for(const r of t)this.addBucketTreeElement(e,r)}}removeBucketsForModel(e){for(const t of this.bucketTreeElements)t.model===e&&this.removeBucketTreeElement(t)}bucketAdded({data:{model:e,bucketInfo:t}}){this.addBucketTreeElement(e,t)}bucketRemoved({data:{model:e,bucketInfo:t}}){const r=this.getBucketTreeElement(e,t);r&&this.removeBucketTreeElement(r)}bucketChanged({data:{model:e,bucketInfo:t}}){const r=this.getBucketTreeElement(e,t);r&&(r.bucketInfo=t)}addBucketTreeElement(e,t){if(void 0===t.bucket.name)return;const r=new StorageBucketsTreeElement(this.resourcesPanel,e,t);this.bucketTreeElements.add(r),this.appendChild(r),r.initialize()}removeBucketTreeElement(e){this.removeChild(e),this.bucketTreeElements.delete(e),this.setExpandable(this.bucketTreeElements.size>0)}get itemURL(){return"storage-buckets-group://"}getBucketTreeElement(e,{bucket:{storageKey:t,name:r}}){for(const o of this.bucketTreeElements)if(o.model===e&&o.bucketInfo.bucket.storageKey===t&&o.bucketInfo.bucket.name===r)return o;return null}}export class StorageBucketsTreeElement extends ExpandableApplicationPanelTreeElement{storageBucketInfo;bucketModel;view;constructor(e,t,r){const{bucket:o}=r,{origin:n}=SDK.StorageKeyManager.parseStorageKey(r.bucket.storageKey);super(e,`${o.name} - ${n}`,`StorageBucket_${o.name}_${o.storageKey}`),this.bucketModel=t,this.storageBucketInfo=r;const s=UI.Icon.Icon.create("database","resource-tree-item");this.setLeadingIcons([s])}initialize(){const{bucket:e}=this.bucketInfo,t=new IndexedDBTreeElement(this.resourcesPanel,e);this.appendChild(t);const r=new ServiceWorkerCacheTreeElement(this.resourcesPanel,e);this.appendChild(r),r.initialize()}get itemURL(){const{bucket:e}=this.bucketInfo;return`storage-buckets-group://${e.name}/${e.storageKey}`}get model(){return this.bucketModel}get bucketInfo(){return this.storageBucketInfo}set bucketInfo(e){this.storageBucketInfo=e,this.view&&this.view.getComponent().setStorageBucket(this.storageBucketInfo)}onselect(e){return super.onselect(e),this.view||(this.view=LegacyWrapper.LegacyWrapper.legacyWrapper(UI.Widget.Widget,new StorageMetadataView.StorageMetadataView),this.view.getComponent().enableStorageBucketControls(this.model),this.view.getComponent().setStorageBucket(this.storageBucketInfo)),this.showView(this.view),!1}}