Commit Graph

45 Commits

Author SHA1 Message Date
Christopher Allen
307ff71c21 refactor(build): Preparation for building TypeScript (#6205)
* chore(deps): Update closure/goog/base.js, add goog.js

  - Update base.js from the latest version (20220502.0.0).
  - Also copy over goog.js, which provides access to a suitable subset
    of goog.* via an importable module).

* chore(build): Split gulpfiles/config.js exports object

  This makes it possible for entries to depend on each other.

* chore(build): build config consistency

  - Reorder entries in gulpfiles.config.js to better match order they
    are used.
  - Have update_metadata.sh reference config.js and vice versa.

* refactor(build): Move deps.js (+ deps.mocha.js) from test/ to build/

  Once we start using tsc, deps.js will be created based on the ouptut
  of tsc rather than the raw source in core/.  Since tsc will need to
  be run before running closure-make-deps and also before trying to
  load blockly_uncompressed.js, it doesn't really make sense to check
  in deps.js; it's better to re-create as needed.

  To reduce inconvenience, a new "prepare" script is added to
  package.json which will run the buildDeps gulp target automaticaly
  when one runs npm install.

* refactor(build): Always build from TypeScript sources

  - Add buildJavaScript gulp task to use tsc to compile any .ts files
    in core/ into build/src/core/ (and also copy any .js files that
    are not yet migrated to TypeScript, which for now is all of them.
  - Remove closure/goog from explicit inputs to tsc; it will find
    the files it needs (e.g., goog.js) automatically.
  - Have buildDeps, the playground, and all the tests that run in
    uncompiled mode use build/src/core/ instead of core/ as their
    input directory.

* feat(build): Add buildJavaScriptAndDeps gulp task

  Have npm run build:deps (and npm run prepare) use a new gulp task,
  buildJavaScriptAndDeps, to run tsc followed by closure-make-deps,
  ensuring that deps.js is calculated based on the most recent code
  in core/.

* fix(build): Fix implementation of flattenCorePaths

  Even though this function is going away I want to remove it in
  a separate PR so that we can revert easily if desired.  But the
  previous checked-in code was totally wrong.  This version works.

* fix(build): Don't let checkinBuilt copy build/src/**

  Now that we are putting a lot more stuff in build/ (specifically,
  all the tsc output in build/src/), modify checkinBuilt so that it
  only copies the specific things we want to check in (for now):

  - _compressed.js build artifacts and their accompanying .js.maps
  - the generated build/msg/js/*.js language files.

  Unrelatedly, also fix safety-quoting of arguments for one execSync
  call.
2022-06-14 22:20:42 +01:00
Maribeth Bottorff
05b47e27d9 chore: fix screenshot lint (#6056)
* chore: fix screenshot lint

* chore: remove extra space
2022-03-31 14:34:33 -07:00
Beka Westberg
c4a25eb3c4 fix: revert "Delete events should animate when played (#5919)" (#6031)
* Revert "Delete events should animate when played (#5919)"

This reverts commit bce4c5e2c6.

* fix: lint in screenshot
2022-03-29 11:47:50 -07:00
Aaron Dodson
ca6e590101 fix: Fix downloading screenshots on the playground. (#6025)
* fix: Fix downloading screenshots on the playground.

* fix: Resolve lint warning about unused variable.
2022-03-25 08:27:08 -07:00
alschmiedt
364bf14ce6 fix: advanced playground and playground to work when hosted (#6021) 2022-03-23 11:08:55 -07:00
Beka Westberg
9e1cda8f45 fix: playground access to Blockly 2022-03-14 11:53:27 -07:00
Christopher Allen
5078dcbc6d refactor(blocks)!: Rename Blockly.blocks.* modules to Blockly.libraryBlocks.* (#5953)
...and rename Blockly.blocks.all (blocks/all.js) to
Blockly.libraryBlocks (blocks/blocks.js

BREAKING CHANGE: (only) because the exports object from the
`blocks_compressed.js` chunk will be accessed as
`Blockly.libraryBlocks` instead of `Blockly.blocks.all` when the
chunk is loaded in a browser via a `<script>` tag.  There will
be no changes visible when the chunk is loaded via ES module
`import` or CJS `require`.
2022-02-23 21:25:52 +00:00
Christopher Allen
b1f0a6a867 refactor(tests): Use goog.bootstrap to allow loading ES modules in playground (#5931)
* chore(deps): Update closure/goog/base.js, add goog.js

  * Update base.js from the latest version (20220104.0.0).
  * Also copy over goog.js, which provides access to asuitable subset
    of goog.* via an importable module).

* refactor(tests): Have playground.html load Blockly as a module

  N.B.:

  * We still need a preparation step, in order to load base.js and
    deps.js via <script> tags in uncompiled mode; in compiled mode
    it will instead load all the *_compressed.js files via <script>
    tags.

    Acess to the Blockly object is via:

        import Blockly from './playgrounds/blockly.mjs';

    (N.B: no "* as", since blockly.mjs has only a default export.)

  * There remain two serious defects when running in uncompiled mode:
    * It does not attempt to load msg/messages.js, causing startup to
      fail.
    * Module loading only works if there are no ES Modules; if there
      are, something goes wrong with base.js's attempt to sequence
      module loads causing goog.modules that import ES modules to get
      a null exports object for that import.  X-(

* fix(tests): Have playground.html load messages.js before generators

  This fixes the issue caused by missing messages when loading
  the generators.

* fix(tests): Move bootsrap calls to prepare.js

  Move the calls to goog.bootstrap from blockly.mjs to prepare.mjs.
  This is needed to work around a bug in the Cosure Library debug
  loader (https://github.com/google/closure-library/issues/1152).

  This gets a bit ugly because most of the code has to go in a
  <script> (because it needs goog.bootstrap, which was loaded by
  an earlier <script> tag).

* fix(documentation): Minor comment corrections for PR #5931
2022-02-23 10:30:21 +00:00
alschmiedt
2adf326c23 fix: update the playground to load compressed when hosted (#5835) 2022-01-06 11:28:27 -08:00
Rachel Fenichel
5a70f8a337 chore(test): add version of multi_playground with compressed files (#5785) 2021-12-03 11:11:57 -08:00
Rachel Fenichel
8635942248 chore(test): Add playground that uses compressed files (#5782) 2021-12-03 10:44:15 -08:00
alschmiedt
0493011201 fix: the advanced playground to work with dec 2021 release (#5775) 2021-12-02 17:43:26 -08:00
Rachel Fenichel
f14a1c8034 chore: fix more lint (#5676)
* chore: fix assorted lint

* chore: clang-format

* chore: clang-format
2021-11-08 16:41:52 -08:00
Rachel Fenichel
f70032aaa6 chore: replace more uses of var with const and let (#5628)
* chore: fix uses of var in core/block_dragger

* chore: fix uses of var in core/extensions.js

* chore: fix uses of var in core/field_multilineinput.js

* chore: fix uses of var in assorted core files

* chore: fix uses of var in node test runner and playground screenshot code

* fix: undefined return from measureFontMetrics

* fix: violations of no-const-assign

* chore: only one variable declaration per line
2021-10-25 09:28:31 -07:00
Neil Fraser
90b3f75d82 Remove @author tags (#5601)
Our files are up to a decade old, and have churned so much, that the initial author of the file no longer has much meaning.

Furthermore, this will encourage developers to post to the developer group, rather than emailing Googlers (usually me) directly.
2021-10-15 09:50:46 -07:00
kozbial
beff5e19bf Combine workspace_comment_render_svg.js with workspace_comment_svg.js 2021-07-29 17:03:52 -07:00
Christopher Allen
1306e41d3b Load playground.html etc. from local http server
Unlike goog.provide packages, goog.module modules are loaded using
XMLHttpRequest in uncompiled mode.  Because browsers treat file: URLs
as each being a separate, unique origin, this means that CORS rules
prevent goog.module modules being loaded from a file URL.

To work around this, use the http-server npm to serve the repository
root directory on localhost:8080.

Provide a script so that you can type `npm start` to start the local
http server and automatically open a browser window pointing at
tests/playground.html.

Modify the setBackgroundColour function in the playgrounds to provide
the usual lilac background on locahost URLs and a sickly green one
if using a file: URL, all of which will soon stop working.

(The background doesn't actually appear to be visible in the advanced
playground.)
2021-07-09 23:11:19 +01:00
Monica Kozbial
a15bbf1700 Revert #4697 (#4917) 2021-06-16 09:36:39 -07:00
Sam El-Husseini
d83279008b Remove dark theme in favour of @blockly/theme-dark (#4697)
* Remove dark theme in favour of @blockly/theme-dark
2021-04-21 13:33:59 -07:00
Fishuke
16979f7458 Fix misplaced percent sign in css, close iframe html tag (#4560) 2021-01-05 11:09:37 -08:00
Sam El-Husseini
70f71af933 Add test-blocks into the basic playground (#4333)
* Use local node_modules files instead of unkpkg for advanced playground, get test blocks in the basic playground from npm

* Also move theme-modern

* Update package-lock
2020-10-02 09:48:01 -07:00
alschmiedt
38d37d7c7a Updates dev tools script to new version (#4273) 2020-09-11 10:11:43 -07:00
alschmiedt
5bca960628 Fix advanced playground (#4266) 2020-09-10 15:57:53 -07:00
alschmiedt
29269957c7 Removes test blocks (#4250) 2020-09-08 13:50:45 -07:00
alschmiedt
d01169fa79 Toolbox Rewrite (#4223)
Rewrite the toolbox in order to get rid of old closure code and make it easier to extend.

Co-authored-by: Maribeth Bottorff <maribethb@google.com>
2020-09-02 08:13:07 -07:00
Sam El-Husseini
02ff548801 Snap dev tools to 1.1.1 (#4077) 2020-07-27 11:33:06 -07:00
Sam El-Husseini
5d43d256e2 Move test blocks to dev-tools, refactor advanced playground (#4057)
* Remove remaining advanced playground actions, and remove test blocks
2020-07-24 13:53:00 -07:00
alschmiedt
03f4a3d4e3 Fix spaces (#3992) 2020-06-24 13:53:57 -07:00
Sam El-Husseini
f1977fd5e3 No flyout mutator 2020-06-11 09:28:40 -07:00
Sam El-Husseini
0a7fee5af0 Remove arrow functions 2020-06-08 12:07:20 -07:00
Sam El-Husseini
2276b67968 PR comments 2020-06-08 12:05:37 -07:00
Sam El-Husseini
47385c5986 minor updates 2020-06-08 10:10:39 -07:00
Sam El-Husseini
29339351ad Use unpkg 2020-06-08 09:54:14 -07:00
Sam El-Husseini
e96ec4489c Update the advanced playground to include the new Blockly playground 2020-06-08 09:53:45 -07:00
alschmiedt
26e84fef11 Add ability to add blocks by type (#3928)
* Add ability to add blocks by type
2020-06-04 12:49:04 -07:00
Sam El-Husseini
38557d45be Fix advanced playground options passing (#3907) 2020-05-19 09:59:08 -07:00
alschmiedt
55a36ba364 Add JSON definition for test blocks (#3901)
* Add JSON definition for test blocks
2020-05-15 13:50:12 -07:00
Rachel Fenichel
808b74f413 Respond to review feedback 2020-05-08 13:47:02 -07:00
Rachel Fenichel
e6524a566d Create advanced playground; simplify basic playground 2020-05-06 14:23:40 -07:00
Neil Fraser
4e2f8e6e02 Use SPDX licences.
This is a followup to #3127.
At the time, SPDX licenses were pending approval by Google.
2020-02-11 13:27:20 -08:00
Sam El-Husseini
1fedbfa591 Add two new zelos rendering playgrounds for all the blocks in pxtblockly and scratchblocks. (#3582) 2020-01-13 11:57:50 -08:00
Sam El-Husseini
70c24cf94e CSS in renderers (#3446)
* Have each renderer declare some CSS that is specific to the renderer.
2019-11-18 16:14:19 -08:00
Sam El-Husseini
825643f4c3 Updates to the zelos rendering playground (#3420) 2019-11-11 13:19:03 -08:00
Sam El-Husseini
e92bae1dda Download screenshot in playground (#3148)
* Add an option on the playground to download a screenshot of the blocks on the workspace.
2019-10-03 14:35:12 -07:00
Andrew n marshall
4092a644d5 Adding a iframe wrapper around the playground. (#1634) 2018-02-16 16:48:11 -08:00