UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.02 kB
import*as Components from"../../ui/legacy/components/utils/utils.js";import*as UI from"../../ui/legacy/legacy.js";export class ImagePreviewPopover{getLinkElement;getDOMNode;popover;constructor(e,t,o){this.getLinkElement=t,this.getDOMNode=o,this.popover=new UI.PopoverHelper.PopoverHelper(e,this.handleRequest.bind(this)),this.popover.setHasPadding(!0),this.popover.setTimeout(0,100)}handleRequest(e){const t=this.getLinkElement(e);if(!t)return null;const o=elementToURLMap.get(t);return o?{box:t.boxInWindow(),hide:void 0,show:async e=>{const n=this.getDOMNode(t);if(!n)return!1;const i=await Components.ImagePreview.ImagePreview.loadDimensionsForNode(n),s=await Components.ImagePreview.ImagePreview.build(n.domModel().target(),o,!0,{imageAltText:void 0,precomputedFeatures:i});return s&&e.contentElement.appendChild(s),Boolean(s)}}:null}hide(){this.popover.hidePopover()}static setImageUrl(e,t){return elementToURLMap.set(e,t),e}static getImageURL(e){return elementToURLMap.get(e)}}const elementToURLMap=new WeakMap;