UNPKG

pxt-core

Version:

Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors

85 lines (84 loc) 5.5 kB
/// <reference path="../../localtypings/pxteditor.d.ts" /> import { IframeDriver } from "./iframeDriver"; declare const MessageReceivedEvent = "message"; declare const MessageSentEvent = "sent"; export interface IframeWorkspaceStatus { projects: pxt.workspace.Project[]; editor?: pxt.editor.EditorSyncState; controllerId?: string; } export interface IFrameWorkspaceHost { saveProject(project: pxt.workspace.Project): Promise<void>; getWorkspaceProjects(): Promise<IframeWorkspaceStatus>; resetWorkspace(): Promise<void>; onWorkspaceLoaded?(): Promise<void>; } /** * Manages communication with the editor iframe. */ export declare class EditorDriver extends IframeDriver { iframe: HTMLIFrameElement; host?: IFrameWorkspaceHost; constructor(iframe: HTMLIFrameElement, host?: IFrameWorkspaceHost); switchEditorLanguage(lang: "typescript" | "blocks" | "python"): Promise<void>; setLanguageRestriction(restriction: pxt.editor.LanguageRestriction): Promise<void>; startSimulator(): Promise<void>; stopSimulator(unload?: boolean): Promise<void>; restartSimulator(): Promise<void>; hideSimulator(): Promise<void>; showSimulator(): Promise<void>; setSimulatorFullscreen(on: boolean): Promise<void>; closeFlyout(): Promise<void>; unloadProject(): Promise<void>; saveProject(): Promise<void>; compile(): Promise<void>; undo(): Promise<void>; redo(): Promise<void>; setHighContrast(on: boolean): Promise<void>; showThemePicker(): Promise<void>; toggleHighContrast(): Promise<void>; toggleGreenScreen(): Promise<void>; toggleAccessibleBlocks(): Promise<void>; toggleSloMo(intervalSpeed?: number): Promise<void>; setSloMoEnabled(enabled: boolean, intervalSpeed?: number): Promise<void>; printProject(): Promise<void>; getInfo(): Promise<pxt.editor.InfoMessage>; newProject(options: pxt.editor.ProjectCreationOptions): Promise<void>; importProject(project: pxt.workspace.Project, filters?: pxt.editor.ProjectFilters, searchBar?: boolean): Promise<void>; importExternalProject(project: pxt.workspace.Project): Promise<string>; openHeader(headerId: string): Promise<void>; shareHeader(headerId: string, projectName: string): Promise<pxt.editor.ShareData>; startActivity(activityType: "tutorial" | "example" | "recipe", path: string, title?: string, previousProjectHeaderId?: string, carryoverPreviousCode?: boolean): Promise<void>; importTutorial(markdown: string): Promise<void>; pair(): Promise<void>; decompileToBlocks(ts: string, snippetMode?: boolean, layout?: pxt.editor.BlockLayout): Promise<pxt.editor.EditorMessageRenderBlocksResponse>; decompileToPython(ts: string): Promise<string>; renderXml(xml: string): Promise<any>; renderByBlockId(blockId: string): Promise<any>; getToolboxCategories(advanced?: boolean): Promise<pxt.editor.ToolboxCategoryDefinition[]>; getBlockAsText(blockId: string): Promise<pxt.editor.BlockAsText | undefined>; runValidatorPlan(validatorPlan: pxt.blocks.ValidatorPlan, planLib: pxt.blocks.ValidatorPlan[]): Promise<pxt.blocks.EvaluationResult>; saveLocalProjectsToCloud(headerIds: string[]): Promise<pxt.editor.EditorMessageSaveLocalProjectsToCloudResponse>; convertCloudProjectsToLocal(userId: string): Promise<void>; requestProjectCloudStatus(headerIds: string[]): Promise<void>; precacheTutorial(data: pxt.github.GHTutorialResponse): Promise<void>; setColorTheme(colorThemeId: string, savePreference: boolean): Promise<void>; addEventListener(event: typeof MessageSentEvent, handler: (ev: pxt.editor.EditorMessage) => void): void; addEventListener(event: typeof MessageReceivedEvent, handler: (ev: pxt.editor.EditorMessage) => void): void; addEventListener(event: "event", handler: (ev: pxt.editor.EditorMessageEventRequest) => void): void; addEventListener(event: "simevent", handler: (ev: pxt.editor.EditorSimulatorEvent) => void): void; addEventListener(event: "tutorialevent", handler: (ev: pxt.editor.EditorMessageTutorialEventRequest) => void): void; addEventListener(event: "workspacesave", handler: (ev: pxt.editor.EditorWorkspaceSaveRequest) => void): void; addEventListener(event: "workspaceevent", handler: (ev: pxt.editor.EditorWorkspaceEvent) => void): void; addEventListener(event: "workspacereset", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void; addEventListener(event: "workspacesync", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void; addEventListener(event: "workspaceloaded", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void; addEventListener(event: "workspacediagnostics", handler: (ev: pxt.editor.EditorWorkspaceDiagnostics) => void): void; addEventListener(event: "editorcontentloaded", handler: (ev: pxt.editor.EditorContentLoadedRequest) => void): void; addEventListener(event: "projectcloudstatus", handler: (ev: pxt.editor.EditorMessageProjectCloudStatus) => void): void; addEventListener(event: "serviceworkerregistered", handler: (ev: pxt.editor.EditorMessageServiceWorkerRegisteredRequest) => void): void; sendMessage(message: pxt.editor.EditorMessageRequest): Promise<pxt.editor.EditorMessageResponse>; protected handleMessage(event: MessageEvent): void; protected handleWorkspaceSync(event: pxt.editor.EditorWorkspaceSyncRequest | pxt.editor.EditorWorkspaceSaveRequest): Promise<void>; } export {};