In this release (Q3 2020)
- Toolbox refactor: Replaces the old closure toolbox with a new toolbox that is easier to extend and work with. Adds the ability to:
- Define a toolbox with JSON barring some performance issues (more info to come)
- Register a custom toolbox, flyout, and toolbox item
- Hide and disable a category
- Change the classes for the category
- Workspace click events (WARNING, may change in following release)
- Ability to register/unregister context menu options for blocks and workspaces via the ContextMenuRegistry
This release had 240 PRs. For a full list of pull requests in this issue, see #4319.
API Changes
- Rename trashcan api calls for open/close lid. (4110)
- Add option sub types (4096)
- Move events into the global registry (4053)
- Remove some old deprecated functions (4029)
- Update click event handling for workspace and trashcan. (4024)
Issues closed in this release
- Dragging block from trashcan flyout on mobile is not working (4303)
- blocks appear on themselves when their count is more than 150 (4297)
- Custom PHP Function to Blockly Block (4255)
- Add getter for tooltip (4252)
- Add Enum for toolbox position (4246)
- Code demo sized incorrectly when switching to certain languages (4245)
- QUESTION: this.appendAddSubGroup (4236)
- Dropdown inputs suddenly getting a 'black' background after value changes (4178)
- Clicking ⚙ of "if" block makes the block fly far away (4175)
- Custom Elements - isTargetInput fails (4157)
- Toolbox (simple and category) sizes do not get updated properly (4138)
- Investigate intermittent Travis CI errors (4127)
- Marked workspace tests failing (4113)
- FieldNumber does not respect precision for small precision values (4105)
- Refactor block_test.js Deserialization tests (4101)
- Add Pinch To Zoom Control Options (4097)
- Field date documentation should say to use the published package (4094)
- Error calling dispose on non-injected WorkspaceSvg (4091)
- Getter for value block output types (4087)
- Advanced Playground Not Working On Master (4074)
- Gamepad-based programming (4073)
- How can we create a treeview toolbox in blockly as in image any sample code or need guide to the docs (4072)
- This section of JS code how to automatically generate process graphics block (4071)
- Cleanup for asynchronous calls in Blockly tests (4070)
- Add cleanup for Events in mocha tests (4064)
- Add a footer with T&C on blockly-demos site/pages similar to https://developers.google.com/blockly (4063)
- Trashcan api cleanup (4061)
- Blockly.JavaScript.variableDB_ is undefined (4060)
- Disposing of insertion marker causes error in when handling BLOCK_DELETE event (4048)
- Toolbox categories scale when zooming (4047)
- Add a build script flag to run the strict type checker (4040)
- Cannot re-append a field after Input.removeField() (4037)
- Category UI event is not emitted when block is dragged from flyout (4034)
- Trashcan should emit UI event when flyout is closed (4033)
- domToText: Performance issue in large projects (4030)
- Allows flyout button callbacks to pass a parameter (4027)
- Moving a mutated block throws errors (4022)
- External images not working on dropdown input (4015)
- FieldDate is not included in the master branch (4013)
- Blockly dropdown causing strange resize problems (4012)
- Populate previous release metadata (4011)
- Update Advanced Compilation Documentation (4009)
- Error in Python Generator for "controls_for" block (4000)
- Multiline text field generator broken on IE 11 (3998)
- Update Configuring A Workspace (3990)
- Variable "propertyValue" of unknown origin (3987)
- Lua generator's multiline_quote_ produces invalid code (3979)
- Multiline literals are getting indented (3978)
- Flyout Fires Workspace Click Event (parent workspace id) (3976)
- Revert back programatic setShadow after release (3964)
- Document how to listen to events on all workspaces on the page (3946)
- Undo'ing a delete of a block with a shadow, loses shadow reference. (3929)
- Inconsistent behavior passing invalid values to constructor and fromJson (3903)
- Simple and fancy playgrounds (3882)
- Probably bad event order in createBlock (3584)
- When block has mutation, initModel is called before fromXml (3542)
- Dynamic toolbox category from list of block names (3376)
- Update or remove screenshot test code (3329)
- Consider using Greenkeeper (3268)
- Proposal: Standard dynamic plugin system for Blockly. (3260)
- Proposal: Pluggable common context menu items for BlockSvg (3237)
- Script for publishing release candidates to a github.io site (3208)
- Change Events before Create Event (2627)
- Add
local
option to build.py (2245) - Add Undo/Redo buttons to playground and multi_playground (1947)
- Number field: change the value via mouse drag (1701)
- Add a 'strict' flag on connections (1357)
- Toolbox as .js files (1144)
- Unittest warns about prior definition of blocks (999)
- Warning thrown on some undo (968)
- Feature request: "Go to function definition" menu point (765)