UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 2.79 kB
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";import*as Platform from"../../core/platform/platform.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import*as Components from"../../ui/legacy/components/utils/utils.js";import*as UI from"../../ui/legacy/legacy.js";import*as Workspace from"../workspace/workspace.js";import{FileSystemWorkspaceBinding}from"./FileSystemWorkspaceBinding.js";import{HEADERS_FILENAME,NetworkPersistenceManager}from"./NetworkPersistenceManager.js";import{Events,PersistenceImpl}from"./PersistenceImpl.js";const UIStrings={linkedToSourceMapS:"Linked to source map: {PH1}",linkedToS:"Linked to {PH1}"},str_=i18n.i18n.registerUIStrings("models/persistence/PersistenceUtils.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class PersistenceUtils{static tooltipForUISourceCode(e){const t=PersistenceImpl.instance().binding(e);return t?e===t.network?FileSystemWorkspaceBinding.tooltipForUISourceCode(t.fileSystem):t.network.contentType().isFromSourceMap()?i18nString(UIStrings.linkedToSourceMapS,{PH1:Platform.StringUtilities.trimMiddle(t.network.url(),150)}):i18nString(UIStrings.linkedToS,{PH1:Platform.StringUtilities.trimMiddle(t.network.url(),150)}):""}static iconForUISourceCode(e){const t=PersistenceImpl.instance().binding(e);if(t){if(!t.fileSystem.url().startsWith("file://"))return null;const e=new IconButton.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},UI.Tooltip.Tooltip.install(e,PersistenceUtils.tooltipForUISourceCode(t.network)),NetworkPersistenceManager.instance().project()===t.fileSystem.project()?e.classList.add("dot","purple"):e.classList.add("dot","green"),e}if(e.project().type()!==Workspace.Workspace.projectTypes.FileSystem||!e.url().startsWith("file://"))return null;if(e.url().endsWith(HEADERS_FILENAME)&&NetworkPersistenceManager.instance().hasMatchingNetworkUISourceCodeForHeaderOverridesFile(e)){const e=new IconButton.Icon.Icon;return e.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},e.classList.add("dot","purple"),e}const o=new IconButton.Icon.Icon;return o.data={iconName:"document",color:"var(--icon-default)",width:"16px",height:"16px"},UI.Tooltip.Tooltip.install(o,PersistenceUtils.tooltipForUISourceCode(e)),o}}export class LinkDecorator extends Common.ObjectWrapper.ObjectWrapper{constructor(e){super(),e.addEventListener(Events.BindingCreated,this.bindingChanged,this),e.addEventListener(Events.BindingRemoved,this.bindingChanged,this)}bindingChanged(e){const t=e.data;this.dispatchEventToListeners(Components.Linkifier.LinkDecorator.Events.LinkIconChanged,t.network)}linkIcon(e){return PersistenceUtils.iconForUISourceCode(e)}}