diff --git a/core/blockly_options.ts b/core/blockly_options.ts index 775669f9217..e7d718e7761 100644 --- a/core/blockly_options.ts +++ b/core/blockly_options.ts @@ -15,11 +15,66 @@ import * as goog from '../closure/goog/goog.js'; goog.declareModuleId('Blockly.BlocklyOptions'); +import {Theme} from './theme.js'; +import {Workspace} from './workspace.js'; + /** * Blockly options. - * This interface is further described in - * `typings/parts/blockly-interfaces.d.ts`. * @alias Blockly.BlocklyOptions */ -export interface BlocklyOptions {} +export interface BlocklyOptions { + collapse?: boolean; + comments?: boolean; + cs?: boolean; + disable?: boolean; + grid?: GridOptions; + horizontalLayout?: boolean; + maxBlocks?: number; + maxInstances?: {[blockType: string]: number}; + media?: string; + move?: MoveOptions; + oneBasedIndex?: boolean; + readOnly?: boolean; + renderer?: string; + rendererOverrides?: {[rendererConstant: string]: any}; + rtl?: boolean; + scrollbars?: ScrollbarOptions|boolean; + sounds?: boolean; + theme?: Theme; + toolbox?: string|object|Element; + toolboxPosition?: string; + trashcan?: boolean; + maxTrashcanContents?: boolean; + plugins?: object; + zoom?: ZoomOptions; + parentWorkspace?: Workspace; +} + +export interface GridOptions { + colour?: string; + length?: number; + snap?: boolean; + spacing?: number; +} + +export interface MoveOptions { + drag?: boolean; + scrollbars?: boolean|ScrollbarOptions; + wheel?: boolean; +} + +export interface ScrollbarOptions { + horizontal?: boolean; + vertical?: boolean; +} + +export interface ZoomOptions { + controls?: boolean; + maxScale?: number; + minScale?: number; + pinch?: boolean; + scaleSpeed?: number; + startScale?: number; + wheel?: boolean; +}