@infinite-canvas-tutorial/webcomponents
Version:
WebComponents UI implementation
53 lines (52 loc) • 1.9 kB
TypeScript
import { LitElement } from 'lit';
import { AppState } from '@infinite-canvas-tutorial/ecs';
import { ExtendedAPI } from '../API';
export declare function executeCopy(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent): void;
export declare function executeCut(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent): void;
export declare function executePaste(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent, position?: {
x: number;
y: number;
}): Promise<void>;
/**
* @see https://opensource.adobe.com/spectrum-web-components/components/imperative-api/#using-a-virtual-trigger
*/
export declare class ContextMenu extends LitElement {
static styles: import("lit").CSSResult;
appState: AppState;
api: ExtendedAPI;
private isClipboardEmpty;
private binded;
private lastContextMenuPosition;
private lastPointerMovePosition;
private handleExecuteAction;
private handleExport;
private contextMenuTemplate;
private handleContextMenu;
private handleCopy;
private handleCut;
private handlePaste;
private handleKeyDown;
private handlePointerMove;
/**
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/File_drag_and_drop#prevent_the_browsers_default_drag_behavior
*/
private handleDragOver;
/**
* @see https://github.com/excalidraw/excalidraw/blob/master/packages/excalidraw/components/App.tsx#L10242
*/
private handleDrop;
private executeBringToFront;
private executeBringForward;
private executeSendBackward;
private executeSendToBack;
private executeToggleVisibility;
private executeToggleLock;
private executeCrop;
disconnectedCallback(): void;
render(): import("lit").TemplateResult<1>;
}
declare global {
interface HTMLElementTagNameMap {
'ic-spectrum-context-menu': ContextMenu;
}
}