mirror of
https://github.com/google/blockly.git
synced 2025-12-16 06:10:12 +01:00
chore!: delete deprecations for v11. (#7732)
* chore: delete basic deprecations * chore: remove deprecated align enum * chore: remove generator deprecation * chore: format
This commit is contained in:
@@ -14,7 +14,7 @@ import * as Xml from '../core/xml.js';
|
||||
import * as fieldRegistry from '../core/field_registry.js';
|
||||
import * as xmlUtils from '../core/utils/xml.js';
|
||||
import type {Abstract as AbstractEvent} from '../core/events/events_abstract.js';
|
||||
import {Align} from '../core/inputs/input.js';
|
||||
import {Align} from '../core/inputs/align.js';
|
||||
import type {Block} from '../core/block.js';
|
||||
import type {BlockSvg} from '../core/block_svg.js';
|
||||
import type {BlockCreate} from '../core/events/events_block_create.js';
|
||||
|
||||
@@ -28,8 +28,6 @@ import * as registry from './registry.js';
|
||||
import {Coordinate} from './utils/coordinate.js';
|
||||
import * as dom from './utils/dom.js';
|
||||
import type {WorkspaceSvg} from './workspace_svg.js';
|
||||
import {hasBubble} from './interfaces/i_has_bubble.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
import * as layers from './layers.js';
|
||||
|
||||
/**
|
||||
@@ -51,12 +49,6 @@ export class BlockDragger implements IBlockDragger {
|
||||
protected wouldDeleteBlock_ = false;
|
||||
protected startXY_: Coordinate;
|
||||
|
||||
/**
|
||||
* @deprecated To be removed in v11. Updating icons is now handled by the
|
||||
* block's `moveDuringDrag` method.
|
||||
*/
|
||||
protected dragIconData_: IconPositionData[] = [];
|
||||
|
||||
/**
|
||||
* @param block The block to drag.
|
||||
* @param workspace The workspace to drag on.
|
||||
@@ -76,8 +68,6 @@ export class BlockDragger implements IBlockDragger {
|
||||
* beginning of the drag in workspace coordinates.
|
||||
*/
|
||||
this.startXY_ = this.draggingBlock_.getRelativeToSurfaceXY();
|
||||
|
||||
this.dragIconData_ = initIconData(block, this.startXY_);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,7 +76,6 @@ export class BlockDragger implements IBlockDragger {
|
||||
* @internal
|
||||
*/
|
||||
dispose() {
|
||||
this.dragIconData_.length = 0;
|
||||
if (this.draggedConnectionManager_) {
|
||||
this.draggedConnectionManager_.dispose();
|
||||
}
|
||||
@@ -398,16 +387,6 @@ export class BlockDragger implements IBlockDragger {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move all of the icons connected to this drag.
|
||||
*
|
||||
* @deprecated To be removed in v11. This is now handled by the block's
|
||||
* `moveDuringDrag` method.
|
||||
*/
|
||||
protected dragIcons_() {
|
||||
deprecation.warn('Blockly.BlockDragger.prototype.dragIcons_', 'v10', 'v11');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of the insertion markers that currently exist. Drags have 0, 1,
|
||||
* or 2 insertion markers.
|
||||
@@ -432,38 +411,4 @@ export interface IconPositionData {
|
||||
icon: Icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a list of all of the icons (comment, warning, and mutator) that are
|
||||
* on this block and its descendants. Moving an icon moves the bubble that
|
||||
* extends from it if that bubble is open.
|
||||
*
|
||||
* @param block The root block that is being dragged.
|
||||
* @param blockOrigin The top left of the given block in workspace coordinates.
|
||||
* @returns The list of all icons and their locations.
|
||||
*/
|
||||
function initIconData(
|
||||
block: BlockSvg,
|
||||
blockOrigin: Coordinate,
|
||||
): IconPositionData[] {
|
||||
// Build a list of icons that need to be moved and where they started.
|
||||
const dragIconData = [];
|
||||
|
||||
for (const icon of block.getIcons()) {
|
||||
// Only bother to track icons whose bubble is visible.
|
||||
if (hasBubble(icon) && !icon.bubbleIsVisible()) continue;
|
||||
|
||||
dragIconData.push({location: blockOrigin, icon: icon});
|
||||
icon.onLocationChange(blockOrigin);
|
||||
}
|
||||
|
||||
for (const child of block.getChildren(false)) {
|
||||
dragIconData.push(
|
||||
...initIconData(child, Coordinate.sum(blockOrigin, child.relativeCoords)),
|
||||
);
|
||||
}
|
||||
// AnyDuringMigration because: Type '{ location: Coordinate | null; icon:
|
||||
// Icon; }[]' is not assignable to type 'IconPositionData[]'.
|
||||
return dragIconData as AnyDuringMigration;
|
||||
}
|
||||
|
||||
registry.register(registry.Type.BLOCK_DRAGGER, registry.DEFAULT, BlockDragger);
|
||||
|
||||
@@ -17,7 +17,6 @@ import './events/events_selected.js';
|
||||
import {Block} from './block.js';
|
||||
import * as blockAnimations from './block_animations.js';
|
||||
import * as browserEvents from './browser_events.js';
|
||||
import {CommentIcon} from './icons/comment_icon.js';
|
||||
import * as common from './common.js';
|
||||
import {config} from './config.js';
|
||||
import type {Connection} from './connection.js';
|
||||
@@ -59,7 +58,6 @@ import {WarningIcon} from './icons/warning_icon.js';
|
||||
import type {Workspace} from './workspace.js';
|
||||
import type {WorkspaceSvg} from './workspace_svg.js';
|
||||
import * as renderManagement from './render_management.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
import {IconType} from './icons/icon_types.js';
|
||||
import {BlockCopyData, BlockPaster} from './clipboard/block_paster.js';
|
||||
|
||||
@@ -115,13 +113,6 @@ export class BlockSvg
|
||||
/** Block's mutator icon (if any). */
|
||||
mutator: MutatorIcon | null = null;
|
||||
|
||||
/**
|
||||
* Block's warning icon (if any).
|
||||
*
|
||||
* @deprecated Use `setWarningText` to modify warnings on this block.
|
||||
*/
|
||||
warning: WarningIcon | null = null;
|
||||
|
||||
private svgGroup_: SVGGElement;
|
||||
style: BlockStyle;
|
||||
/** @internal */
|
||||
@@ -911,18 +902,6 @@ export class BlockSvg
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the comment icon attached to this block, or null if the block has no
|
||||
* comment.
|
||||
*
|
||||
* @returns The comment icon attached to this block, or null.
|
||||
* @deprecated Use getIcon. To be remove in v11.
|
||||
*/
|
||||
getCommentIcon(): CommentIcon | null {
|
||||
deprecation.warn('getCommentIcon', 'v10', 'v11', 'getIcon');
|
||||
return (this.getIcon(CommentIcon.TYPE) ?? null) as CommentIcon | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set this block's warning text.
|
||||
*
|
||||
@@ -1010,7 +989,6 @@ export class BlockSvg
|
||||
override addIcon<T extends IIcon>(icon: T): T {
|
||||
super.addIcon(icon);
|
||||
|
||||
if (icon instanceof WarningIcon) this.warning = icon;
|
||||
if (icon instanceof MutatorIcon) this.mutator = icon;
|
||||
|
||||
if (this.rendered) {
|
||||
@@ -1041,7 +1019,6 @@ export class BlockSvg
|
||||
override removeIcon(type: IconType<IIcon>): boolean {
|
||||
const removed = super.removeIcon(type);
|
||||
|
||||
if (type.equals(WarningIcon.TYPE)) this.warning = null;
|
||||
if (type.equals(MutatorIcon.TYPE)) this.mutator = null;
|
||||
|
||||
if (this.rendered) {
|
||||
|
||||
@@ -22,7 +22,6 @@ import {BlockSvg} from './block_svg.js';
|
||||
import {BlocklyOptions} from './blockly_options.js';
|
||||
import {Blocks} from './blocks.js';
|
||||
import * as browserEvents from './browser_events.js';
|
||||
import {Bubble} from './bubbles/bubble.js';
|
||||
import * as bubbles from './bubbles.js';
|
||||
import {BubbleDragger} from './bubble_dragger.js';
|
||||
import * as bumpObjects from './bump_objects.js';
|
||||
@@ -123,9 +122,7 @@ import {Gesture} from './gesture.js';
|
||||
import {Grid} from './grid.js';
|
||||
import * as icons from './icons.js';
|
||||
import {inject} from './inject.js';
|
||||
import {Align} from './inputs/align.js';
|
||||
import {Input} from './inputs/input.js';
|
||||
import {inputTypes} from './inputs/input_types.js';
|
||||
import * as inputs from './inputs.js';
|
||||
import {InsertionMarkerManager} from './insertion_marker_manager.js';
|
||||
import {IASTNodeLocation} from './interfaces/i_ast_node_location.js';
|
||||
@@ -186,7 +183,6 @@ import * as renderManagement from './render_management.js';
|
||||
import * as blockRendering from './renderers/common/block_rendering.js';
|
||||
import * as constants from './constants.js';
|
||||
import * as geras from './renderers/geras/geras.js';
|
||||
import * as minimalist from './renderers/minimalist/minimalist.js';
|
||||
import * as thrasos from './renderers/thrasos/thrasos.js';
|
||||
import * as zelos from './renderers/zelos/zelos.js';
|
||||
import {Scrollbar} from './scrollbar.js';
|
||||
@@ -241,27 +237,6 @@ export const VERSION = 'uncompiled';
|
||||
* namespace to put new functions on.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Aliases for input alignments used in block defintions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Blockly.Input.Align.LEFT
|
||||
* @deprecated Use `Blockly.inputs.Align.LEFT`. To be removed in v11.
|
||||
*/
|
||||
export const ALIGN_LEFT = Align.LEFT;
|
||||
|
||||
/**
|
||||
* @see Blockly.Input.Align.CENTRE
|
||||
* @deprecated Use `Blockly.inputs.Align.CENTER`. To be removed in v11.
|
||||
*/
|
||||
export const ALIGN_CENTRE = Align.CENTRE;
|
||||
|
||||
/**
|
||||
* @see Blockly.Input.Align.RIGHT
|
||||
* @deprecated Use `Blockly.inputs.Align.RIGHT`. To be removed in v11.
|
||||
*/
|
||||
export const ALIGN_RIGHT = Align.RIGHT;
|
||||
/*
|
||||
* Aliases for constants used for connection and input types.
|
||||
*/
|
||||
@@ -286,12 +261,6 @@ export const NEXT_STATEMENT = ConnectionType.NEXT_STATEMENT;
|
||||
*/
|
||||
export const PREVIOUS_STATEMENT = ConnectionType.PREVIOUS_STATEMENT;
|
||||
|
||||
/**
|
||||
* @see inputTypes.DUMMY_INPUT
|
||||
* @deprecated Use `Blockly.inputs.inputTypes.DUMMY`. To be removed in v11.
|
||||
*/
|
||||
export const DUMMY_INPUT = inputTypes.DUMMY;
|
||||
|
||||
/** Aliases for toolbox positions. */
|
||||
|
||||
/**
|
||||
@@ -488,7 +457,6 @@ export {constants};
|
||||
export {dialog};
|
||||
export {fieldRegistry};
|
||||
export {geras};
|
||||
export {minimalist};
|
||||
export {registry};
|
||||
export {thrasos};
|
||||
export {uiPosition};
|
||||
@@ -502,8 +470,6 @@ export {BlockDragger};
|
||||
export {BlockSvg};
|
||||
export {Blocks};
|
||||
export {bubbles};
|
||||
/** @deprecated Use Blockly.bubbles.Bubble instead. To be removed in v11. */
|
||||
export {Bubble};
|
||||
export {BubbleDragger};
|
||||
export {CollapsibleToolboxCategory};
|
||||
export {ComponentManager};
|
||||
@@ -648,9 +614,5 @@ export {WorkspaceDragger};
|
||||
export {WorkspaceSvg};
|
||||
export {ZoomControls};
|
||||
export {config};
|
||||
/** @deprecated Use Blockly.ConnectionType instead. */
|
||||
export const connectionTypes = ConnectionType;
|
||||
export {inject};
|
||||
/** @deprecated Use Blockly.inputs.inputTypes instead. To be removed in v11. */
|
||||
export {inputTypes};
|
||||
export {serialization};
|
||||
|
||||
@@ -12,30 +12,12 @@ import * as globalRegistry from './registry.js';
|
||||
import {WorkspaceSvg} from './workspace_svg.js';
|
||||
import * as registry from './clipboard/registry.js';
|
||||
import {Coordinate} from './utils/coordinate.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
|
||||
/** Metadata about the object that is currently on the clipboard. */
|
||||
let stashedCopyData: ICopyData | null = null;
|
||||
|
||||
let stashedWorkspace: WorkspaceSvg | null = null;
|
||||
|
||||
/**
|
||||
* Copy a copyable element onto the local clipboard.
|
||||
*
|
||||
* @param toCopy The copyable element to be copied.
|
||||
* @deprecated v11. Use `myCopyable.toCopyData()` instead. To be removed v12.
|
||||
* @internal
|
||||
*/
|
||||
export function copy<T extends ICopyData>(toCopy: ICopyable<T>): T | null {
|
||||
deprecation.warn(
|
||||
'Blockly.clipboard.copy',
|
||||
'v11',
|
||||
'v12',
|
||||
'myCopyable.toCopyData()',
|
||||
);
|
||||
return TEST_ONLY.copyInternal(toCopy);
|
||||
}
|
||||
|
||||
/**
|
||||
* Private version of copy for stubbing in tests.
|
||||
*/
|
||||
@@ -107,29 +89,6 @@ function pasteFromData<T extends ICopyData>(
|
||||
?.paste(copyData, workspace, coordinate) ?? null) as ICopyable<T> | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate this copy-paste-able element.
|
||||
*
|
||||
* @param toDuplicate The element to be duplicated.
|
||||
* @returns The element that was duplicated, or null if the duplication failed.
|
||||
* @deprecated v11. Use
|
||||
* `Blockly.clipboard.paste(myCopyable.toCopyData(), myWorkspace)` instead.
|
||||
* To be removed v12.
|
||||
* @internal
|
||||
*/
|
||||
export function duplicate<
|
||||
U extends ICopyData,
|
||||
T extends ICopyable<U> & IHasWorkspace,
|
||||
>(toDuplicate: T): T | null {
|
||||
deprecation.warn(
|
||||
'Blockly.clipboard.duplicate',
|
||||
'v11',
|
||||
'v12',
|
||||
'Blockly.clipboard.paste(myCopyable.toCopyData(), myWorkspace)',
|
||||
);
|
||||
return TEST_ONLY.duplicateInternal(toDuplicate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Private version of duplicate for stubbing in tests.
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,6 @@ import type {Block} from './block.js';
|
||||
import * as common from './common.js';
|
||||
import {Names, NameType} from './names.js';
|
||||
import type {Workspace} from './workspace.js';
|
||||
import {warn} from './utils/deprecation.js';
|
||||
|
||||
/**
|
||||
* Deprecated, no-longer used type declaration for per-block-type generator
|
||||
@@ -255,16 +254,7 @@ export class CodeGenerator {
|
||||
|
||||
// Look up block generator function in dictionary - but fall back
|
||||
// to looking up on this if not found, for backwards compatibility.
|
||||
let func = this.forBlock[block.type];
|
||||
if (!func && (this as any)[block.type]) {
|
||||
warn(
|
||||
'block generator functions on CodeGenerator objects',
|
||||
'10.0',
|
||||
'11.0',
|
||||
'the .forBlock[blockType] dictionary',
|
||||
);
|
||||
func = (this as any)[block.type];
|
||||
}
|
||||
const func = this.forBlock[block.type];
|
||||
if (typeof func !== 'function') {
|
||||
throw Error(
|
||||
`${this.name_} generator does not know how to generate code ` +
|
||||
|
||||
@@ -14,7 +14,6 @@ import * as dom from '../utils/dom.js';
|
||||
import {Size} from '../utils/size.js';
|
||||
import {Svg} from '../utils/svg.js';
|
||||
import type {IconType} from './icon_types.js';
|
||||
import * as deprecation from '../utils/deprecation.js';
|
||||
import * as tooltip from '../tooltip.js';
|
||||
|
||||
/**
|
||||
@@ -145,14 +144,4 @@ export abstract class Icon implements IIcon {
|
||||
isClickableInFlyout(autoClosingFlyout: boolean): boolean {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the visibility of the icon's bubble if one exists.
|
||||
*
|
||||
* @deprecated Use `setBubbleVisible` instead. To be removed in v11.
|
||||
*/
|
||||
setVisible(visibility: boolean): void {
|
||||
deprecation.warn('setVisible', 'v10', 'v11', 'setBubbleVisible');
|
||||
if (hasBubble(this)) this.setBubbleVisible(visibility);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,9 @@
|
||||
// Former goog.module ID: Blockly.Mutator
|
||||
|
||||
import type {Abstract} from '../events/events_abstract.js';
|
||||
import type {Block} from '../block.js';
|
||||
import {BlockChange} from '../events/events_block_change.js';
|
||||
import type {BlocklyOptions} from '../blockly_options.js';
|
||||
import type {BlockSvg} from '../block_svg.js';
|
||||
import type {Connection} from '../connection.js';
|
||||
import {Coordinate} from '../utils/coordinate.js';
|
||||
import * as dom from '../utils/dom.js';
|
||||
import * as eventUtils from '../events/utils.js';
|
||||
@@ -22,7 +20,6 @@ import {Rect} from '../utils/rect.js';
|
||||
import {Size} from '../utils/size.js';
|
||||
import {Svg} from '../utils/svg.js';
|
||||
import type {WorkspaceSvg} from '../workspace_svg.js';
|
||||
import * as deprecation from '../utils/deprecation.js';
|
||||
import {IconType} from './icon_types.js';
|
||||
import * as renderManagement from '../render_management.js';
|
||||
|
||||
@@ -354,40 +351,4 @@ export class MutatorIcon extends Icon implements IHasBubble {
|
||||
getWorkspace(): WorkspaceSvg | undefined {
|
||||
return this.miniWorkspaceBubble?.getWorkspace();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reconnects the given connection to the mutated input on the given block.
|
||||
*
|
||||
* @deprecated Use connection.reconnect instead. To be removed in v11.
|
||||
*/
|
||||
static reconnect(
|
||||
connectionChild: Connection | null,
|
||||
block: Block,
|
||||
inputName: string,
|
||||
): boolean {
|
||||
deprecation.warn(
|
||||
'MutatorIcon.reconnect',
|
||||
'v10',
|
||||
'v11',
|
||||
'connection.reconnect',
|
||||
);
|
||||
if (!connectionChild) return false;
|
||||
return connectionChild.reconnect(block, inputName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the parent workspace of a workspace that is inside a mini workspace
|
||||
* bubble, taking into account whether the workspace is a flyout.
|
||||
*
|
||||
* @deprecated Use workspace.getRootWorkspace. To be removed in v11.
|
||||
*/
|
||||
static findParentWs(workspace: WorkspaceSvg): WorkspaceSvg | null {
|
||||
deprecation.warn(
|
||||
'MutatorIcon.findParentWs',
|
||||
'v10',
|
||||
'v11',
|
||||
'workspace.getRootWorkspace',
|
||||
);
|
||||
return workspace.getRootWorkspace();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import type {Field} from '../field.js';
|
||||
import * as fieldRegistry from '../field_registry.js';
|
||||
import type {RenderedConnection} from '../rendered_connection.js';
|
||||
import {inputTypes} from './input_types.js';
|
||||
import {Align} from './align.js';
|
||||
|
||||
/** Class for an input with optional fields. */
|
||||
export class Input {
|
||||
@@ -305,25 +306,3 @@ export class Input {
|
||||
return this.sourceBlock.makeConnection_(type);
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Input {
|
||||
// TODO(v11): When this is removed in v11, also re-enable errors on access
|
||||
// of deprecated things (in build_tasks.js).
|
||||
/**
|
||||
* Enum for alignment of inputs.
|
||||
*
|
||||
* @deprecated Use Blockly.inputs.Align. To be removed in v11.
|
||||
*/
|
||||
export enum Align {
|
||||
LEFT = -1,
|
||||
CENTRE = 0,
|
||||
RIGHT = 1,
|
||||
}
|
||||
}
|
||||
|
||||
/** @deprecated Use Blockly.inputs.Align. To be removed in v11. */
|
||||
/** @suppress {deprecated} */
|
||||
export type Align = Input.Align;
|
||||
/** @deprecated Use Blockly.inputs.Align. To be removed in v11. */
|
||||
/** @suppress {deprecated} */
|
||||
export const Align = Input.Align;
|
||||
|
||||
76
core/main.ts
76
core/main.ts
@@ -12,83 +12,7 @@
|
||||
|
||||
// Former goog.module ID: Blockly.main
|
||||
|
||||
import * as Blockly from './blockly.js';
|
||||
import * as Msg from './msg.js';
|
||||
import * as colour from './utils/colour.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
|
||||
/*
|
||||
* Aliased functions and properties that used to be on the Blockly namespace.
|
||||
* Everything in this section is deprecated. Both external and internal code
|
||||
* should avoid using these functions and use the designated replacements.
|
||||
* Everything in this section will be removed in a future version of Blockly.
|
||||
*/
|
||||
|
||||
// Add accessors for properties on Blockly that have now been deprecated.
|
||||
// This will not work in uncompressed mode; it depends on Blockly being
|
||||
// transpiled from a ES Module object to a plain object by Closure Compiler.
|
||||
Object.defineProperties(Blockly, {
|
||||
/**
|
||||
* The richness of block colours, regardless of the hue.
|
||||
* Must be in the range of 0 (inclusive) to 1 (exclusive).
|
||||
*
|
||||
* @name Blockly.HSV_SATURATION
|
||||
* @type {number}
|
||||
* @deprecated Use Blockly.utils.colour.getHsvSaturation() /
|
||||
* .setHsvSaturation() instead. (July 2023)
|
||||
* @suppress {checkTypes}
|
||||
*/
|
||||
HSV_SATURATION: {
|
||||
get: function () {
|
||||
deprecation.warn(
|
||||
'Blockly.HSV_SATURATION',
|
||||
'version 10',
|
||||
'version 11',
|
||||
'Blockly.utils.colour.getHsvSaturation()',
|
||||
);
|
||||
return colour.getHsvSaturation();
|
||||
},
|
||||
set: function (newValue) {
|
||||
deprecation.warn(
|
||||
'Blockly.HSV_SATURATION',
|
||||
'version 10',
|
||||
'version 11',
|
||||
'Blockly.utils.colour.setHsvSaturation()',
|
||||
);
|
||||
colour.setHsvSaturation(newValue);
|
||||
},
|
||||
},
|
||||
/**
|
||||
* The intensity of block colours, regardless of the hue.
|
||||
* Must be in the range of 0 (inclusive) to 1 (exclusive).
|
||||
*
|
||||
* @name Blockly.HSV_VALUE
|
||||
* @type {number}
|
||||
* @deprecated Use Blockly.utils.colour.getHsvValue() / .setHsvValue instead.
|
||||
* (July 2023)
|
||||
* @suppress {checkTypes}
|
||||
*/
|
||||
HSV_VALUE: {
|
||||
get: function () {
|
||||
deprecation.warn(
|
||||
'Blockly.HSV_VALUE',
|
||||
'version 10',
|
||||
'version 11',
|
||||
'Blockly.utils.colour.getHsvValue()',
|
||||
);
|
||||
return colour.getHsvValue();
|
||||
},
|
||||
set: function (newValue) {
|
||||
deprecation.warn(
|
||||
'Blockly.HSV_VALUE',
|
||||
'version 10',
|
||||
'version 11',
|
||||
'Blockly.utils.colour.setHsvValue()',
|
||||
);
|
||||
colour.setHsvValue(newValue);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// If Blockly is compiled with ADVANCED_COMPILATION and/or loaded as a
|
||||
// CJS or ES module there will not be a Blockly global variable
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
// Former goog.module ID: Blockly.Options
|
||||
|
||||
import type {BlocklyOptions} from './blockly_options.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
import * as registry from './registry.js';
|
||||
import {Theme} from './theme.js';
|
||||
import {Classic} from './theme/classic.js';
|
||||
@@ -38,6 +37,7 @@ export class Options {
|
||||
pathToMedia: string;
|
||||
hasCategories: boolean;
|
||||
moveOptions: MoveOptions;
|
||||
/** @deprecated January 2019 */
|
||||
hasScrollbars: boolean;
|
||||
hasTrashcan: boolean;
|
||||
maxTrashcanContents: number;
|
||||
@@ -143,10 +143,6 @@ export class Options {
|
||||
pathToMedia = options['media'].endsWith('/')
|
||||
? options['media']
|
||||
: options['media'] + '/';
|
||||
} else if ('path' in options) {
|
||||
// 'path' is a deprecated option which has been replaced by 'media'.
|
||||
deprecation.warn('path', 'Nov 2014', 'Jul 2023', 'media');
|
||||
pathToMedia = (options as any)['path'] + 'media/';
|
||||
}
|
||||
const rawOneBasedIndex = options['oneBasedIndex'];
|
||||
const oneBasedIndex =
|
||||
@@ -172,7 +168,6 @@ export class Options {
|
||||
this.pathToMedia = pathToMedia;
|
||||
this.hasCategories = hasCategories;
|
||||
this.moveOptions = Options.parseMoveOptions_(options, hasCategories);
|
||||
/** @deprecated January 2019 */
|
||||
this.hasScrollbars = !!this.moveOptions.scrollbars;
|
||||
this.hasTrashcan = hasTrashcan;
|
||||
this.maxTrashcanContents = maxTrashcanContents;
|
||||
|
||||
@@ -21,7 +21,6 @@ import {Types} from '../measurables/types.js';
|
||||
import {isDynamicShape} from './constants.js';
|
||||
import type {ConstantProvider, Notch, PuzzleTab} from './constants.js';
|
||||
import type {RenderInfo} from './info.js';
|
||||
import * as deprecation from '../../utils/deprecation.js';
|
||||
|
||||
/**
|
||||
* An object that draws a block based on the given rendering information.
|
||||
@@ -68,16 +67,6 @@ export class Drawer {
|
||||
this.recordSizeOnBlock_();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide icons that were marked as hidden.
|
||||
*
|
||||
* @deprecated Manually hiding icons is no longer necessary. To be removed
|
||||
* in v11.
|
||||
*/
|
||||
protected hideHiddenIcons_() {
|
||||
deprecation.warn('hideHiddenIcons_', 'v10', 'v11');
|
||||
}
|
||||
|
||||
/**
|
||||
* Save sizing information back to the block
|
||||
* Most of the rendering information can be thrown away at the end of the
|
||||
|
||||
@@ -12,18 +12,12 @@ import type {ConstantProvider} from '../common/constants.js';
|
||||
|
||||
import {Measurable} from './base.js';
|
||||
import {Types} from './types.js';
|
||||
import {hasBubble} from '../../interfaces/i_has_bubble.js';
|
||||
|
||||
/**
|
||||
* An object containing information about the space an icon takes up during
|
||||
* rendering.
|
||||
*/
|
||||
export class Icon extends Measurable {
|
||||
/**
|
||||
* @deprecated Will be removed in v11. Create a subclass of the Icon
|
||||
* measurable if this data is necessary for you.
|
||||
*/
|
||||
isVisible: boolean;
|
||||
flipRtl = false;
|
||||
|
||||
/**
|
||||
@@ -39,7 +33,6 @@ export class Icon extends Measurable {
|
||||
) {
|
||||
super(constants);
|
||||
|
||||
this.isVisible = hasBubble(icon) && icon.bubbleIsVisible();
|
||||
this.type |= Types.ICON;
|
||||
|
||||
const size = icon.getSize();
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
// Former goog.module ID: Blockly.minimalist.ConstantProvider
|
||||
|
||||
import {ConstantProvider as BaseConstantProvider} from '../common/constants.js';
|
||||
import * as deprecation from '../../utils/deprecation.js';
|
||||
|
||||
/**
|
||||
* An object that provides constants for rendering blocks in the minimalist
|
||||
* renderer.
|
||||
*
|
||||
* @deprecated Use Blockly.blockRendering.ConstantProvider instead.
|
||||
* To be removed in v11.
|
||||
*/
|
||||
export class ConstantProvider extends BaseConstantProvider {
|
||||
/**
|
||||
* @deprecated Use Blockly.blockRendering.ConstantProvider instead.
|
||||
* To be removed in v11.
|
||||
*/
|
||||
constructor() {
|
||||
super();
|
||||
deprecation.warn(
|
||||
'Blockly.minimalist.ConstantProvider',
|
||||
'v10',
|
||||
'v11',
|
||||
'Blockly.blockRendering.ConstantProvider',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
// Former goog.module ID: Blockly.minimalist.Drawer
|
||||
|
||||
import type {BlockSvg} from '../../block_svg.js';
|
||||
import {Drawer as BaseDrawer} from '../common/drawer.js';
|
||||
import * as deprecation from '../../utils/deprecation.js';
|
||||
|
||||
import type {RenderInfo} from './info.js';
|
||||
|
||||
/**
|
||||
* An object that draws a block based on the given rendering information.
|
||||
*
|
||||
* @deprecated Use Blockly.blockRendering.Drawer instead.
|
||||
* To be removed in v11.
|
||||
*/
|
||||
export class Drawer extends BaseDrawer {
|
||||
/**
|
||||
* @param block The block to render.
|
||||
* @param info An object containing all information needed to render this
|
||||
* block.
|
||||
*
|
||||
* @deprecated Use Blockly.blockRendering.Drawer instead.
|
||||
* To be removed in v11.
|
||||
*/
|
||||
constructor(block: BlockSvg, info: RenderInfo) {
|
||||
super(block, info);
|
||||
deprecation.warn(
|
||||
'Blockly.minimalist.Drawer',
|
||||
'v10',
|
||||
'v11',
|
||||
'Blockly.blockRendering.Drawer',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
// Former goog.module ID: Blockly.minimalist.RenderInfo
|
||||
|
||||
import type {BlockSvg} from '../../block_svg.js';
|
||||
import {RenderInfo as BaseRenderInfo} from '../common/info.js';
|
||||
import * as deprecation from '../../utils/deprecation.js';
|
||||
|
||||
import type {Renderer} from './renderer.js';
|
||||
|
||||
/**
|
||||
* An object containing all sizing information needed to draw this block.
|
||||
*
|
||||
* This measure pass does not propagate changes to the block (although fields
|
||||
* may choose to rerender when getSize() is called). However, calling it
|
||||
* repeatedly may be expensive.
|
||||
*
|
||||
* @deprecated Use Blockly.blockRendering.RenderInfo instead. To be removed
|
||||
* in v11.
|
||||
*/
|
||||
export class RenderInfo extends BaseRenderInfo {
|
||||
// Exclamation is fine b/c this is assigned by the super constructor.
|
||||
protected override renderer_!: Renderer;
|
||||
|
||||
/**
|
||||
* @param renderer The renderer in use.
|
||||
* @param block The block to measure.
|
||||
* @deprecated Use Blockly.blockRendering.RenderInfo instead. To be removed
|
||||
* in v11.
|
||||
*/
|
||||
constructor(renderer: Renderer, block: BlockSvg) {
|
||||
super(renderer, block);
|
||||
deprecation.warn(
|
||||
'Blockly.minimalist.RenderInfo',
|
||||
'v10',
|
||||
'v11',
|
||||
'Blockly.blockRendering.RenderInfo',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the block renderer in use.
|
||||
*
|
||||
* @returns The block renderer in use.
|
||||
*/
|
||||
override getRenderer(): Renderer {
|
||||
return this.renderer_;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/** @file Re-exports of Blockly.minimalist.* modules. */
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2021 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
// Former goog.module ID: Blockly.minimalist
|
||||
|
||||
import {ConstantProvider} from './constants.js';
|
||||
import {Drawer} from './drawer.js';
|
||||
import {RenderInfo} from './info.js';
|
||||
import {Renderer} from './renderer.js';
|
||||
|
||||
export {ConstantProvider, Drawer, Renderer, RenderInfo};
|
||||
@@ -1,76 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2019 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
// Former goog.module ID: Blockly.minimalist.Renderer
|
||||
|
||||
import type {BlockSvg} from '../../block_svg.js';
|
||||
import * as blockRendering from '../common/block_rendering.js';
|
||||
import type {RenderInfo as BaseRenderInfo} from '../common/info.js';
|
||||
import {Renderer as BaseRenderer} from '../common/renderer.js';
|
||||
import * as deprecation from '../../utils/deprecation.js';
|
||||
|
||||
import {ConstantProvider} from './constants.js';
|
||||
import {Drawer} from './drawer.js';
|
||||
import {RenderInfo} from './info.js';
|
||||
|
||||
/**
|
||||
* The minimalist renderer.
|
||||
*
|
||||
* @deprecated Use Blockly.blockRendering.Renderer instead. To be removed
|
||||
* in v11.
|
||||
*/
|
||||
export class Renderer extends BaseRenderer {
|
||||
/**
|
||||
* @param name The renderer name.
|
||||
* @deprecated Use Blockly.blockRendering.Renderer instead. To be removed
|
||||
* in v11.
|
||||
*/
|
||||
constructor(name: string) {
|
||||
super(name);
|
||||
deprecation.warn(
|
||||
'Blockly.minimalist.Renderer',
|
||||
'v10',
|
||||
'v11',
|
||||
'Blockly.blockRendering.Renderer',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance of the renderer's constant provider.
|
||||
*
|
||||
* @returns The constant provider.
|
||||
*/
|
||||
protected override makeConstants_(): ConstantProvider {
|
||||
return new ConstantProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance of the renderer's render info object.
|
||||
*
|
||||
* @param block The block to measure.
|
||||
* @returns The render info object.
|
||||
*/
|
||||
protected override makeRenderInfo_(block: BlockSvg): RenderInfo {
|
||||
return new RenderInfo(this, block);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance of the renderer's drawer.
|
||||
*
|
||||
* @param block The block to render.
|
||||
* @param info An object containing all information needed to render this
|
||||
* block.
|
||||
* @returns The drawer.
|
||||
*/
|
||||
protected override makeDrawer_(
|
||||
block: BlockSvg,
|
||||
info: BaseRenderInfo,
|
||||
): Drawer {
|
||||
return new Drawer(block, info as RenderInfo);
|
||||
}
|
||||
}
|
||||
|
||||
blockRendering.register('minimalist', Renderer);
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
// Former goog.module ID: Blockly.utils.dom
|
||||
|
||||
import * as deprecation from './deprecation.js';
|
||||
import type {Svg} from './svg.js';
|
||||
|
||||
/**
|
||||
@@ -154,24 +153,6 @@ export function insertAfter(newNode: Element, refNode: Element) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a node contains another node.
|
||||
*
|
||||
* @param parent The node that should contain the other node.
|
||||
* @param descendant The node to test presence of.
|
||||
* @returns Whether the parent node contains the descendant node.
|
||||
* @deprecated Use native 'contains' DOM method.
|
||||
*/
|
||||
export function containsNode(parent: Node, descendant: Node): boolean {
|
||||
deprecation.warn(
|
||||
'Blockly.utils.dom.containsNode',
|
||||
'version 10',
|
||||
'version 11',
|
||||
'Use native "contains" DOM method',
|
||||
);
|
||||
return parent.contains(descendant);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the CSS transform property on an element. This function sets the
|
||||
* non-vendor-prefixed and vendor-prefixed versions for backwards compatibility
|
||||
|
||||
@@ -6,27 +6,6 @@
|
||||
|
||||
// Former goog.module ID: Blockly.utils.string
|
||||
|
||||
import * as deprecation from './deprecation.js';
|
||||
|
||||
/**
|
||||
* Fast prefix-checker.
|
||||
* Copied from Closure's goog.string.startsWith.
|
||||
*
|
||||
* @param str The string to check.
|
||||
* @param prefix A string to look for at the start of `str`.
|
||||
* @returns True if `str` begins with `prefix`.
|
||||
* @deprecated Use built-in **string.startsWith** instead.
|
||||
*/
|
||||
export function startsWith(str: string, prefix: string): boolean {
|
||||
deprecation.warn(
|
||||
'Blockly.utils.string.startsWith()',
|
||||
'April 2022',
|
||||
'April 2023',
|
||||
'Use built-in string.startsWith',
|
||||
);
|
||||
return str.startsWith(prefix);
|
||||
}
|
||||
|
||||
/**
|
||||
* Given an array of strings, return the length of the shortest one.
|
||||
*
|
||||
|
||||
@@ -24,7 +24,6 @@ import type {BlocklyOptions} from './blockly_options.js';
|
||||
import * as browserEvents from './browser_events.js';
|
||||
import * as common from './common.js';
|
||||
import {ComponentManager} from './component_manager.js';
|
||||
import {config} from './config.js';
|
||||
import {ConnectionDB} from './connection_db.js';
|
||||
import * as ContextMenu from './contextmenu.js';
|
||||
import {ContextMenuRegistry} from './contextmenu_registry.js';
|
||||
@@ -35,7 +34,6 @@ import {Gesture} from './gesture.js';
|
||||
import {Grid} from './grid.js';
|
||||
import type {IASTNodeLocationSvg} from './interfaces/i_ast_node_location_svg.js';
|
||||
import type {IBoundedElement} from './interfaces/i_bounded_element.js';
|
||||
import type {ICopyData, ICopyable} from './interfaces/i_copyable.js';
|
||||
import type {IDragTarget} from './interfaces/i_drag_target.js';
|
||||
import type {IFlyout} from './interfaces/i_flyout.js';
|
||||
import type {IMetricsManager} from './interfaces/i_metrics_manager.js';
|
||||
@@ -49,7 +47,6 @@ import * as registry from './registry.js';
|
||||
import * as blockRendering from './renderers/common/block_rendering.js';
|
||||
import type {Renderer} from './renderers/common/renderer.js';
|
||||
import type {ScrollbarPair} from './scrollbar_pair.js';
|
||||
import * as blocks from './serialization/blocks.js';
|
||||
import type {Theme} from './theme.js';
|
||||
import {Classic} from './theme/classic.js';
|
||||
import {ThemeManager} from './theme_manager.js';
|
||||
@@ -73,11 +70,9 @@ import {Workspace} from './workspace.js';
|
||||
import {WorkspaceAudio} from './workspace_audio.js';
|
||||
import {WorkspaceComment} from './workspace_comment.js';
|
||||
import {WorkspaceCommentSvg} from './workspace_comment_svg.js';
|
||||
import * as Xml from './xml.js';
|
||||
import {ZoomControls} from './zoom_controls.js';
|
||||
import {ContextMenuOption} from './contextmenu_registry.js';
|
||||
import * as renderManagement from './render_management.js';
|
||||
import * as deprecation from './utils/deprecation.js';
|
||||
import {LayerManager} from './layer_manager.js';
|
||||
|
||||
/** Margin around the top/bottom/left/right after a zoomToFit call. */
|
||||
@@ -1313,183 +1308,6 @@ export class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Pastes the provided block or workspace comment onto the workspace.
|
||||
* Does not check whether there is remaining capacity for the object, that
|
||||
* should be done before calling this method.
|
||||
*
|
||||
* @param state The representation of the thing to paste.
|
||||
* @returns The pasted thing, or null if the paste was not successful.
|
||||
* @deprecated v10. Use `Blockly.clipboard.paste` instead. To be removed in
|
||||
* v11.
|
||||
*/
|
||||
paste(
|
||||
state: AnyDuringMigration | Element | DocumentFragment,
|
||||
): ICopyable<ICopyData> | null {
|
||||
deprecation.warn(
|
||||
'Blockly.WorkspaceSvg.prototype.paste',
|
||||
'v10',
|
||||
'v11',
|
||||
'Blockly.clipboard.paste',
|
||||
);
|
||||
if (!this.rendered || (!state['type'] && !state['tagName'])) {
|
||||
return null;
|
||||
}
|
||||
if (this.currentGesture_) {
|
||||
// Dragging while pasting? No.
|
||||
this.currentGesture_.cancel();
|
||||
}
|
||||
|
||||
const existingGroup = eventUtils.getGroup();
|
||||
if (!existingGroup) {
|
||||
eventUtils.setGroup(true);
|
||||
}
|
||||
let pastedThing;
|
||||
try {
|
||||
// Checks if this is JSON. JSON has a type property, while elements don't.
|
||||
if (state['type']) {
|
||||
pastedThing = this.pasteBlock_(null, state as blocks.State);
|
||||
} else {
|
||||
const xmlBlock = state as Element;
|
||||
if (xmlBlock.tagName.toLowerCase() === 'comment') {
|
||||
pastedThing = this.pasteWorkspaceComment_(xmlBlock);
|
||||
} else {
|
||||
pastedThing = this.pasteBlock_(xmlBlock, null);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
eventUtils.setGroup(existingGroup);
|
||||
}
|
||||
return pastedThing;
|
||||
}
|
||||
|
||||
/**
|
||||
* Paste the provided block onto the workspace.
|
||||
*
|
||||
* @param xmlBlock XML block element.
|
||||
* @param jsonBlock JSON block representation.
|
||||
* @returns The pasted block.
|
||||
*/
|
||||
private pasteBlock_(
|
||||
xmlBlock: Element | null,
|
||||
jsonBlock: blocks.State | null,
|
||||
): BlockSvg {
|
||||
eventUtils.disable();
|
||||
let block: BlockSvg;
|
||||
try {
|
||||
let blockX = 0;
|
||||
let blockY = 0;
|
||||
if (xmlBlock) {
|
||||
block = Xml.domToBlockInternal(xmlBlock, this) as BlockSvg;
|
||||
blockX = parseInt(xmlBlock.getAttribute('x') ?? '0');
|
||||
if (this.RTL) {
|
||||
blockX = -blockX;
|
||||
}
|
||||
blockY = parseInt(xmlBlock.getAttribute('y') ?? '0');
|
||||
} else if (jsonBlock) {
|
||||
block = blocks.append(jsonBlock, this) as BlockSvg;
|
||||
blockX = jsonBlock['x'] || 10;
|
||||
if (this.RTL) {
|
||||
blockX = this.getWidth() - blockX;
|
||||
}
|
||||
blockY = jsonBlock['y'] || 10;
|
||||
}
|
||||
|
||||
// Move the duplicate to original position.
|
||||
if (!isNaN(blockX) && !isNaN(blockY)) {
|
||||
// Offset block until not clobbering another block and not in connection
|
||||
// distance with neighbouring blocks.
|
||||
let collide;
|
||||
do {
|
||||
collide = false;
|
||||
const allBlocks = this.getAllBlocks(false);
|
||||
for (let i = 0, otherBlock; (otherBlock = allBlocks[i]); i++) {
|
||||
const otherXY = otherBlock.getRelativeToSurfaceXY();
|
||||
if (
|
||||
Math.abs(blockX - otherXY.x) <= 1 &&
|
||||
Math.abs(blockY - otherXY.y) <= 1
|
||||
) {
|
||||
collide = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!collide) {
|
||||
// Check for blocks in snap range to any of its connections.
|
||||
const connections = block!.getConnections_(false);
|
||||
for (let i = 0, connection; (connection = connections[i]); i++) {
|
||||
const neighbour = connection.closest(
|
||||
config.snapRadius,
|
||||
// This code doesn't work because it's passing absolute coords
|
||||
// instead of relative coords. But we're deprecating the `paste`
|
||||
// function anyway so we're not going to fix it.
|
||||
new Coordinate(blockX, blockY),
|
||||
);
|
||||
if (neighbour.connection) {
|
||||
collide = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (collide) {
|
||||
if (this.RTL) {
|
||||
blockX -= config.snapRadius;
|
||||
} else {
|
||||
blockX += config.snapRadius;
|
||||
}
|
||||
blockY += config.snapRadius * 2;
|
||||
}
|
||||
} while (collide);
|
||||
// No 'reason' provided since events are disabled.
|
||||
block!.moveTo(new Coordinate(blockX, blockY));
|
||||
}
|
||||
} finally {
|
||||
eventUtils.enable();
|
||||
}
|
||||
if (eventUtils.isEnabled() && !block!.isShadow()) {
|
||||
eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CREATE))(block!));
|
||||
}
|
||||
block!.select();
|
||||
return block!;
|
||||
}
|
||||
|
||||
/**
|
||||
* Paste the provided comment onto the workspace.
|
||||
*
|
||||
* @param xmlComment XML workspace comment element.
|
||||
* @returns The pasted workspace comment.
|
||||
*/
|
||||
private pasteWorkspaceComment_(xmlComment: Element): WorkspaceCommentSvg {
|
||||
eventUtils.disable();
|
||||
let comment: WorkspaceCommentSvg;
|
||||
try {
|
||||
comment = WorkspaceCommentSvg.fromXmlRendered(xmlComment, this);
|
||||
// Move the duplicate to original position.
|
||||
let commentX = parseInt(xmlComment.getAttribute('x') ?? '0');
|
||||
let commentY = parseInt(xmlComment.getAttribute('y') ?? '0');
|
||||
if (!isNaN(commentX) && !isNaN(commentY)) {
|
||||
if (this.RTL) {
|
||||
commentX = -commentX;
|
||||
}
|
||||
// Offset workspace comment.
|
||||
// TODO (#1719): Properly offset comment such that it's not interfering
|
||||
// with any blocks.
|
||||
commentX += 50;
|
||||
commentY += 50;
|
||||
// This code doesn't work because it's passing absolute coords
|
||||
// instead of relative coords. But we're deprecating the `paste`
|
||||
// function anyway so we're not going to fix it.
|
||||
comment.moveBy(commentX, commentY);
|
||||
}
|
||||
} finally {
|
||||
eventUtils.enable();
|
||||
}
|
||||
if (eventUtils.isEnabled()) {
|
||||
WorkspaceComment.fireCreateEvent(comment);
|
||||
}
|
||||
comment.select();
|
||||
return comment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the toolbox unless there's a drag in progress.
|
||||
*
|
||||
|
||||
@@ -208,6 +208,8 @@ const JSCOMP_ERROR = [
|
||||
'conformanceViolations',
|
||||
'const',
|
||||
'constantProperty',
|
||||
'deprecated',
|
||||
'deprecatedAnnotations',
|
||||
'duplicateMessage',
|
||||
'es5Strict',
|
||||
'externsValidation',
|
||||
@@ -254,8 +256,6 @@ const JSCOMP_ERROR = [
|
||||
* it's generally sufficient to remove them from JSCOMP_ERROR.
|
||||
*/
|
||||
const JSCOMP_WARNING = [
|
||||
'deprecated',
|
||||
'deprecatedAnnotations',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user