* Fix wrong width of field_dropdown with an image on Edge / IE
* Avoid re-rendering on IE and Edge by using getBBox().width to compute the text width on those browsers
* Helper functions for rendering an image or text option.
* Break showEditor_ into smaller helper functions
* More decomposition, and function comments.
Adds `Block.getHue()` to retrieve the block colour when set via a hue.
The hue value is stored in the new `.hue_` field, which is null if the colour was set via a hex string.
* Revert "Create WorkspaceViewport class (#1291)"
This reverts commit 6c00d77c9e.
* Revert "Remove all all instances calling setValue with name. (#1254)"
This reverts commit 8e8b6b27af.
* Implement Blockly.Events.filter in linear time
For large App Inventor projects (order 1k+ blocks, 100+ top-level
blocks), the O(n^2) behavior of Blockly.Event.filter was causing
performance issues when rearranging blocks or pasting from the
backpack. This commit provides a linear merge implementation using a
key that uniquely identifies a block so that multiple events targeting
the same block are merged. This change benefits from O(1) amortized
lookup using an object as a key-value store.
* Add event filter unit tests and fix logic bugs
* Update Blockly.Events.filter unit tests
* Fix#1275 by adding a more specific rule for overflow:visible on the drag surface svg. This wins out over a common bootstrap rule that says: svg:not(:root) {overflow:hidden} and helps avoid a difficult problem for Blockly users to diagnose.
* Update css.js
* Revert "Fix synonyms when compiled. (#1248)"
This reverts commit f08afbb351.
* Revert "Compatibility for Closure Compiler. (#1240)" [fc8d4c9]
* Adding exports to all messages.
* Fixed missing dependency to Blockly.defineBlocksWithJsonArray()
* Adding a fully compiled demo draft (still simple optimizations).
* Demo optimizations switched to advanced and enabled exports (for Blockly.Msg).
* Message interpolation updated to use the exported (global) Blockly.Msg array.
* Adding some debug compilation options to the build script.
* Adding SVG externs.
* Fixed Blockly.inject's config array to work with compilation.
* Reverting all compiled code.
This fixes commit b307ba1151.
This fixes commit dec6910b67.
* Reverting all compiled code.
This fixes commit 824c806ec3.
* Removing old todo
* Merge commit 'fe96bec765f0eb58c5321101965100c2716760ed' into compile-messages-with-externs
* commit 'fe96bec765f0eb58c5321101965100c2716760ed':
Fixes positional index for Czech translation (#1264)
Missed one use of string instead of .property in extensions.js (#1262)
Update extensions.js to be compatible with ADVANCED_OPTIMIZATIONS (#1253)
Fix type tags and todo placement.
Procedure block renames variable in mutator if there is a case change.
* Fixes based on review by @NeilFraser
- 80 cols
- using goog.global instead of window
- @export on the same line as messages
* BF: Moving the msg dependency earlier, since Blockly.Msg.en is filling the Blockly.Msg object, which is empty without Blockly.Msg.en (and the rest of the code is using it as Blockly.Msg).
* Updating some texts in the demo's html file to be more descriptive.
* Commenting the debug options in the build, to maximize the optimizations. They are not removed, to allow anybody to turn them on if needed (since they are not documented on the Closure Compiler's REST API pages).
* BF: fixed blocks_compressed.js compilation, as it now requires Blockly namespace to exist.
* SVG externs file updated based on the one in https://github.com/google/closure-compiler/blob/master/contrib/externs/svg.js (eliminating 2 warnings)
* Update extensions.js to be compatible with ADVANCED_OPTIMIZATIONS
We were using strings to check for the existence of properties on
a mutator, which breaks if those properties were renamed by the
closure compiler. This updates all of the uses to direct function
references so that anyone building with advanced optimizations turned
on will get the correct method references in their mutators.
fixes#1251
* Update to extensions.js for advanced optimizations
Some minor updates to making extensions.js work with advanced
optimizations.
* use === undefined instead of typeof == 'undefined'