Overview
Greetings, Block Builders! This release brings some exciting new features and important bug fixes.
- New procedure blocks that enable sharing procedures between workspaces. The new blocks are being published as a plugin, so the old procedure blocks will continue to work as expected. Learn more here and check out the plugin here.
- The JSON serializer now serializes movable, editable, and deletable properties. If you were previously relying on the serialize-disabled-interactions plugin to do so, see the README for next steps.
- Performance improvements during rendering and collapsing blocks
- Fixes problem with dropdowns on mobile devices (if you're on v9.2.0, this is an important fix!)
What's Changed
Deprecating changes 🚧
These are not breaking changes yet, but deprecate something that will be removed in the next major release
Blockly.Xml.textToDom
has been renamed toBlockly.utils.xml.textToDom
in #6818
New features ✨
- feat: Support for the new shareable procedure blocks plugin
- feat: Add support for centering on a block itself vs its stack. by @gonfunko in #6810
- feat: added
tests/typescript
to test supported TS examples by @btw17 in #6775 - feat: updated flyout button to set border radius via static variable by @btw17 in #6838
- feat(build): Run
tsc
onblocks/
andgenerators/
by @cpcallen in #6836 - feat: add basic render queueing by @BeksOmega in #6851
- feat: make renderer methods public or protected by @maribethb in #6887
Bug fixes 🐛
- fix: undoing and redoing parameter events by @BeksOmega in #6721
- fix: undoing and redoing deleting procedures by @BeksOmega in #6722
- fix: change assertFieldValue in test helpers to use deepEqual by @Samridhi-98 in #6739
- fix: correct docs for flyout metrics by @maribethb in #6751
- fix: replace 'AnyDuringMigration' for
core/field.ts
value functions by @btw17 in #6639 - fix: export Abstract event class directly by @maribethb in #6752
- fix: undoing pasting procedure callers that create defs by @BeksOmega in #6750
- fix: proc json serialization by @BeksOmega in #6746
- fix: CI exits properly after failure by @maribethb in #6763
- fix: copying and pasting procedure definitions by @BeksOmega in #6747
- fix(deps): Don't use global variables for jsdom injection in
scripts/package/node/core.js
andcore/utils/xml.ts
by @cpcallen in #6764 - fix(tests): Have
npm start
run a full build by @cpcallen in #6770 - fix: Increase generator test timeout by @maribethb in #6776
- fix: Make metadata tests more resilient. by @gonfunko in #6771
- fix(build): Fix event tests, improve
buildDeps
by @cpcallen in #6773 - fix: don't splice into unmovable stacks by @maribethb in #6800
- fix(tests): Use
build/msg/en.js
instead ofmsg/messages.js
by @cpcallen in #6825 - fix: Fire deletion events when clearing variables. by @NeilFraser in #6827
- fix: move deprecation warning to correct fromJson by @NeilFraser in #6831
- fix: serializing disabled interactions by @BeksOmega in #6847
- fix: variable events not deserializing properly by @BeksOmega in #6832
- fix: updating connections in the db multiple times by @BeksOmega in #6859
- fix: Don't repeatedly recreate the last marker block during a drag. by @gonfunko in #6875
- fix: export Field-related types from Blockly by @btw17 in #6877
- fix: improve collapse / uncollapse performance by @BeksOmega in #6860
- fix: creating duplicate params via renaming vars by @BeksOmega in #6885
- fix: improve performance of modifying block shape by @BeksOmega in #6884
- fix: empty procedure arrays in serialization by @BeksOmega in #6872
- fix: toString performance by @BeksOmega in #6896
- fix: improve performance of connecting blocks by @BeksOmega in #6876
- fix: dispose performance by @BeksOmega in #6894
- fix: Don't clobber event group when renaming vars by @NeilFraser in #6829
- fix: Fix scrolling of menus on mobile. by @gonfunko in #6911
- fix: scrolling dropdown items into view by @BeksOmega in #6912
- fix: flyouts resizing for blocks by @BeksOmega in #6914
- fix: overwriting flyout def with dynamic categories by @BeksOmega in #6913
- fix(fields): Make
Field.SKIP_SETUP
aSymbol
; removeclass Sentinel
by @cpcallen in #6919 - fix: connection locations not updating by @BeksOmega in #6921
- fix: Make Escape cancel changes in text fields. by @gonfunko in #6923
- fix: mutator not resizing for flyout by @BeksOmega in #6917
Cleanup ♻️
- refactor: Don't use skew_ and translate_ attributes on SVGs to animate blocks. by @gonfunko in #6782
- refactor: Use the field registry to instantiate fields in block definitions. by @gonfunko in #6811
- refactor: Use input type=number for field_number.ts by @gonfunko in #6845
- refactor: Remove more uses of AnyDuringMigration by @gonfunko in #6863
- docs: Fix a few typos by @timgates42 in #6878
- refactor(blocks): Migrate
blocks/colour.js
to TypeScript by @cpcallen in #6901 - refactor(blocks): Migrate
blocks/math.js
to TypeScript by @cpcallen in #6900
New Contributors 👋
- @Samridhi-98 made their first contribution in #6739
Full Changelog: blockly-v9.2.1...blockly-v9.3.0