Files
blockly/core/renderers/measurables/statement_input.ts
Beka Westberg f85304f0ae chore: use import type where possible (#6279)
* chore: automatically change imports to import types

* chore: revert changes that actually need to be imports

* chore: format

* chore: add more import type statements based on importsNotUsedAsValues

* chore: fix tsconfig

* chore: add link to compiler issue
2022-07-20 08:11:17 -07:00

56 lines
1.6 KiB
TypeScript

/**
* @license
* Copyright 2019 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @fileoverview Class representing statement inputs with connections on a
* rendered block.
*/
/**
* Class representing statement inputs with connections on a
* rendered block.
* @class
*/
import * as goog from '../../../closure/goog/goog.js';
goog.declareModuleId('Blockly.blockRendering.StatementInput');
/* eslint-disable-next-line no-unused-vars */
import type {Input} from '../../input.js';
import type {ConstantProvider} from '../common/constants.js';
import {InputConnection} from './input_connection.js';
import {Types} from './types.js';
/**
* An object containing information about the space a statement input takes up
* during rendering
* @struct
* @alias Blockly.blockRendering.StatementInput
*/
export class StatementInput extends InputConnection {
/**
* @param constants The rendering constants provider.
* @param input The statement input to measure and store information for.
* @internal
*/
constructor(constants: ConstantProvider, input: Input) {
super(constants, input);
this.type |= Types.STATEMENT_INPUT;
if (!this.connectedBlock) {
this.height = this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT;
} else {
// We allow the dark path to show on the parent block so that the child
// block looks embossed. This takes up an extra pixel in both x and y.
this.height =
this.connectedBlockHeight + this.constants_.STATEMENT_BOTTOM_SPACER;
}
this.width = this.constants_.STATEMENT_INPUT_NOTCH_OFFSET +
(this.shape.width as number);
}
}