Commit Graph

313 Commits

Author SHA1 Message Date
Neil Fraser
6650ecf13f Make dynamic variables be an optional module.
Also straighten out some dependencies.
2019-09-27 10:48:14 -07:00
Sam El-Husseini
870824bc3e Workspace theme (#3093)
* Move the theme object so it's on the workspace.

* Add support for subscribing UI elements to theme component styles and changes.
2019-09-26 16:52:17 -07:00
Rachel Fenichel
269f0dc381 Enable eslint rule spaced-comment
Fix up all remaining violations and turn the rule on.
2019-09-25 16:04:05 -07:00
Neil Fraser
a03660243e Code cleanup, drop some CSS.
Random improvements to require statements.

Removal of some obviously dead CSS.

.blocklyDropDownDiv no longer supresses text selection (see comment in PR).

This PR drops the compiled size by 4 KB, which is larger than I was expecting.
2019-09-25 10:34:34 -07:00
Neil Fraser
ddb8e46b87 Make flyouts be optional modules.
No Blockly instances need both Horizontal and Vertical flyouts.  Dropping one of these saves 2 KB.  Some don’t need flyouts at all (e.g. Blockly Games Puzzle or readonly documentation blocks).
2019-09-23 22:02:59 -07:00
Neil Fraser
b84cda2c76 Strip out more bloat from toolbox (#3068)
Also removes three private accesses from workspaceSvg into toolbox tree.

The strategy for workspace.updateToolbox is no longer to clear and repopulate the toolbox, but rather to throw away the old toolbox and rebuild a new one.  This is simpler and more reliable.

This commit trims off another KB from the compiled code.
2019-09-23 15:18:32 -07:00
Sam El-Husseini
494487b37f Mark fields as dirty when the workspace becomes visible. (#3072)
* Mark fields as dirty when the workspace becomes visible.
2019-09-23 11:21:45 -07:00
Neil Fraser
b0e700307a Quick hack to solve circular dependencies
Submitted without review since everything is broken.  Further investigation needed to find origin of this regression.
2019-09-21 09:58:46 -07:00
Neil Fraser
56e7a46f45 Add more missing dependencies
Submitted without review.  From this bug:
https://github.com/google/blockly-games/issues/116
2019-09-21 08:48:27 -07:00
alschmiedt
23b31c7ea8 Cursor rtl (#3062)
* Fix rtl for cursor svg & small bug fix
2019-09-20 14:34:18 -07:00
Neil Fraser
823c1c98a8 Make toolbox an optional module.
This drops the compiled size by 25 kb if there are no categories.  Which also indicates that the toolbox itself suffers from really bad bloat.  The toolbox should not represent 1/6th of our codebase.
2019-09-20 10:36:06 -07:00
kozbial
c533a0d943 Setting cursor and marker directly in Workspace and adding check to setCursor/setDrawer. 2019-09-19 10:38:23 -07:00
kozbial
3d06e7eb33 Creating cursordrawer in renderer. 2019-09-19 10:38:23 -07:00
Neil Fraser
ec34698c53 Make trashcan and zoomcontrols optional modules. (#3043)
Saves 6 KB when compiled if there is no trashcan nor zoomcontrols.
2019-09-18 15:55:12 -07:00
alschmiedt
2c98ecaed6 Update APIs and Add New Cursor Look (#3009)
* Updates methods to be private in navigation.js

* Update cursor with new look
2019-09-16 12:33:43 -07:00
Sam El-Husseini
e339ae26bc Move the rendering object to live on the workspace_svg (#3016)
* Move the rendering object onto the workspace allowing the various workspaces to have different renderers.
2019-09-13 14:20:34 -07:00
Sam El-Husseini
fc420b7037 Support for registering renderers and switching between them (#3013)
* Added support for registering renderers and for choosing which renderer the workspace wants to use.
2019-09-13 10:30:20 -07:00
alschmiedt
ec07a36e44 Update cursor api (#3002)
* Move over to new implementation for cursor
2019-09-11 18:16:05 -07:00
Sam El-Husseini
8ab51c8639 Remove closure base file dependency (#2976)
* Trim down closure's base dependency even further by removing the dependency on closure's base file.
2019-09-11 17:30:51 -07:00
Rachel Fenichel
916ba8e5b8 Move rendering init call into workspace svg. 2019-08-23 13:36:56 -07:00
alschmiedt
00be6a6381 Make the navigation namespace lowercase (#2812) 2019-08-13 14:00:49 -07:00
RoboErikG
dac4ae2e78 Don't try to zoom flyouts and mutators (#2772)
* Don't try to zoom flyouts and mutators

Fixes #2752

Flyouts and mutator workspaces don't have enough info to handle
zooming correctly, so they were throwing errors if you pinched them.
This adds a check to quit a zoom early if in either of those. We
might want to revisit later if we should support zooming on them.

* Add TODO
2019-08-06 13:05:01 -07:00
alschmiedt
9466c6b7df Move marker creation to the workspace (#2742)
* Move marker creation to the workspace
2019-07-31 09:04:53 -07:00
alschmiedt
62f4871e45 Fixes copy paste to work with the marker (#2740)
* Fixes copy paste to work with the marker
2019-07-31 07:49:02 -07:00
Sam El-Husseini
c1b49a1da7 Fix some jsdoc types (#2701)
* Fix JSDoc regarding type inconsistencies. Make image field src required and update image field tests.
2019-07-25 12:24:36 -07:00
alschmiedt
6dc9a07810 Integrates cursor into develop (#2710)
* Integrates cursor into blockly

* Fix review comments

* Add dispose to cursor

* Fixes dispose functionality

* Remove unnecessary dispose method
2019-07-25 11:14:40 -07:00
Neil Fraser
9f6c1c316a Refactor workspace.connectionDBList
It seems wrong that Blockly.ConnectionDB.init reaches in to create a property on workspace.
It seems wrong that this database isn’t disposed of when the workspace is.
It seems unnecessary that disposed connections need to drop their reference *to* the workspace’s database since the connection object is going away anyway, and the databases aren’t.
2019-06-12 13:15:39 -07:00
Neil Fraser
b8cbd9e7df Resolve 13 warnings
Reduce count from 632 to 619.
Eliminate copy-paste code duplication in Field.prototype.setValue
2019-06-12 10:59:33 -07:00
Beka Westberg
6d47853370 Fixed workspace scroll not properly hiding floating elements. 2019-06-11 13:32:10 -07:00
Neil Fraser
0213de11bc Use Rect in more places. 2019-06-07 10:32:57 -07:00
Neil Fraser
848d3a3509 Move setCssTransform & createSvgElement to dom.
Also move SVG_NS and HTML_NS properties.
2019-06-07 10:32:57 -07:00
Neil Fraser
775ce34eac Simplify workspace.getBlocksBoundingBox
Previously it returned x,y,width,height.  Returning top,bottom,left,right results in simpler code, both in this function and in downstream callers.

This commit makes the minumum change to the metrics_test.  I’m happy to change the test’s data if that makes more sense.
2019-06-07 10:32:57 -07:00
Neil Fraser
a9fdf7844a Fix ordering of requires
Search and replace of a name strikes again.
2019-06-07 10:32:57 -07:00
Neil Fraser
02e9b25f03 Flaten bounding box data structure.
Old: a box object with two coordinate objects, each with two numbers.
New: a box object with four numbers.

The old system would make sense if there was a reason to group the top-left and bottom-right coordinates.  But in our code we only pulled out top/bottom/left/right numbers.

New code is simpler and faster.
2019-06-07 10:32:57 -07:00
Neil Fraser
3dfac9a2ba Alphabetize require statements.
Search and replace for userAgent didn’t take into account alphabetic ordering.
Also some line wraping.
2019-06-07 10:32:57 -07:00
Neil Fraser
d1a29739d8 Move utilities into own directory.
TODO: There are more functions which may be migrated into dom and string.
2019-06-07 10:32:57 -07:00
Neil Fraser
5bf7069a2f Remove goog.math.Coordinate 2019-06-07 10:32:57 -07:00
Neil Fraser
f2c57dea1b Remove goog.math.Rect dependency 2019-06-07 10:32:57 -07:00
Neil Fraser
931cc85c83 Remove last goog.dom dependency. 2019-06-07 10:32:57 -07:00
Neil Fraser
9f528922a7 Fix some dependencies 2019-05-24 15:45:05 -07:00
Neil Fraser
5cf52c566a Fix a dozen compiler warnings. 2019-05-17 16:48:40 -07:00
Neil Fraser
49954e0cec Remove calls to goog.dom.getViewportSize
document.documentElement.clientWidth/clientHeight seems to work everywhere Blockly works.  Closure’s functions are mind-numbingly complex due to IE5, old WebKit, Opera 8, and others.
2019-05-17 15:04:39 -07:00
Tiara Tan
e79dcecb22 Rename WorkspaceSvg.getFlyout_ (#2357) 2019-04-03 14:22:42 -07:00
Neil Fraser
f118d33855 Corrections to JSDoc comments 2019-03-29 15:24:37 -07:00
Neil Fraser
e9de083361 Fix @return JSDocs. 2019-03-29 15:24:37 -07:00
Neil Fraser
68e134b073 No keyboard access to quarks during drag.
Same issue as zooming with the mouse wheel.
2019-03-29 15:24:37 -07:00
Neil Fraser
45e24c2b98 No need to check non-null before nullifying 2019-03-29 15:24:37 -07:00
Neil Fraser
87385b0721 Make drag detection more robust.
Previously, one could drag (and hold) a quark outside the bounds of a mutator bubble, then scroll, and the old code wouldn’t query the mutator for gestures.
2019-03-29 15:24:37 -07:00
Neil Fraser
405b1e4e78 Lint issues found while debugging. 2019-03-27 15:47:29 -07:00
Neil Fraser
dbafdcf1ff Prevent gestures from being broken by zoom/scroll. 2019-03-27 15:47:29 -07:00