Commit Graph

6760 Commits

Author SHA1 Message Date
Beka Westberg
780b6162ce Add serialization of mutators (#5054)
* Add tests for saving extra state

* Add serializing extra state

* Fix backwards compatibility

* Switch to other function declarations

* Handle null returns from hooks

* Remove backwards compatibility

* Remove XML require, and fix type

* Fix JSDoc formatting
2021-09-20 13:08:35 -07:00
Beka Westberg
ceeda333dc Add serialization of basic block attributes to JSOs (#5053)
* Add basic attribute tests

* Add basic block serialization

* Add more attribute tests

* Change save to use options dictionary

* Add obeying save options

* Add test for data attribute

* Add saving data tag

* Move to ES6 syntax

* Fixup move to es6 syntax

* Declare module

* Format and lint

* Add docs

* Add returning null on insertion markers

* Fixup for move to module

* Switch to other function declarations

* Cleanup for finalized style

* Fix lint and types

* Export State def

* Switch disabled=true to enabled=false
2021-09-20 13:08:35 -07:00
Beka Westberg
2fa0e9801a Add JSO hooks for blocks and fields. (#5052)
* Add JSON serialiation hooks for fields

* Add checking for JSON hooks

* Fix other checks and move checks to function

* Remove error for both serialization hooks being defined

* Fixup comments and errors

* Add tests

* Add json hooks to block properties

* Cleanup

* Rip out fragile backwards compatibility
2021-09-20 13:08:35 -07:00
Beka Westberg
319423959b Adds a serializer test suite - project cereal (#5034)
* Setup basic architecture for tests

* Attribute tests

* Easy field tests added

* Work on tests

* Work on tests

* Work on tests

* Add mutation tests

* Fixup ID tests

* Add more mutator tests

* Fixup lint and typos

* Uncomment tests

* Use test helpers

* Small PR comments

* Use test helpers for setup and teardown

* Add TODOs and fixup types

* Fix types

* Actually fix types
2021-09-20 13:08:35 -07:00
Christopher Allen
7b3a3aa743 Prevent request of (non-existent) closure/goog/deps.js (#5499)
Since the only part of the Closure Library we have is base.js,
prevent it from trying to load deps.js from the same directory.

(We already load our own dependency graph from tests/deps.js.)
2021-09-17 23:31:00 +01:00
Beka Westberg
f77526e558 Move browser event utils from utils.js to browser_events.js (#5464)
* fix: move browser event utils to browserEvents

* fix: mark browser event utils in utils as deprecated

* fix: move uses of browser event funcs to browserEvents

* fix: remove browserEvents definition of noEvent

* fix: add renames for browser event utils

* docs: add suggested alternatives for browser event utils

* fix: change deprecations to stubs

* fix: PR comments
2021-09-17 14:49:01 -07:00
Aaron Dodson
511ce5df2b Migrate core/blockly.js to goog.module syntax (#5494)
* Migrate core/blockly.js to ES6 const/let

* Migrate core/blockly.js to goog.module

* Migrate core/blockly.js to named requires

* clang-format core/blockly.js

* Consolidate accessors in core/blockly.js
2021-09-17 14:30:23 -07:00
Aaron Dodson
7aab18409f Migrate selected from Blockly to Blockly.common (#5489)
* Add getSelected/setSelected to core/common.js

* Migrate core to use Blockly.common.getSelected/setSelected instead of Blockly.selected

* Migrate demos to use Blockly.common.getSelected/setSelected instead of Blockly.selected

* Remove Blockly.selected

* Use variable instead of calling common.getSelected() multiple times

* Add accessor for selected on Blockly

* Add renaming record for Blockly.selected -> Blockly.common.getSelected/setSelected
2021-09-17 11:42:43 -07:00
Christopher Allen
dbf10cf167 Clean up get/set accessor definitions (#5488)
* Use Object.defineProperties instead of .defineProperty when
  installing get and set accessors for previously-mutable exports.

* Add entries to renamings.js where feasible (i.e., for static rather
  than instance properties).

(Don't do blockly.js yet, to avoid merge conflicts.)
2021-09-17 19:30:21 +01:00
alschmiedt
28fadf8c15 Sets flag to true (#5454) 2021-09-17 11:15:20 -07:00
Maribeth Bottorff
6dbc534dcc refactor: Move Blockly.svgResize to Blockly.common (#5485)
* refactor: Move Blockly.svgResize to Blockly.common

* fix formatting and deps
2021-09-16 15:53:33 -07:00
Maribeth Bottorff
3bac582edb refactor: move Blockly.deleteBlock out of blockly.js (#5483) 2021-09-16 15:13:59 -07:00
Maribeth Bottorff
c5acc1de72 refactor: remove unused Blockly.onContextMenu_ (#5480) 2021-09-16 15:01:12 -07:00
Maribeth Bottorff
1334bd3f1b refactor: Migrate Blockly.onKeyDown out of blockly.js (#5476)
* refactor: move Blockly.onKeyDown to inject.js

* fix the tests
2021-09-16 14:48:03 -07:00
Aaron Dodson
42a3920ece Note Blockly.alert/confirm/prompt/hueToHex/hideChaff migrations in renamings.js (#5475) 2021-09-16 13:06:21 -07:00
alschmiedt
5b1586ee1b test: update mocha tests to use goog_module (#5440)
* Use goog.module in mocha tests

* Fix compiler warnings

* Make test helpers a module

* Name test modules Blockly.test.*

This is to be more consistent with how non-test modules are named.

Also remove top-level goog.require of TestHelpers (now
Blockly.test.helpers) since requiring a side-effect-less module does
nothing.

* Convert block_test.js and comment_test.js to goog.module syntax

* Address PR comments

* Goog modulify tests

* Goog modulify toolbox helpers

* Fixes imports and moves common tests from workspace_test.js to a helper file.

* Update test deps after rebase

Co-authored-by: Christopher Allen <cpcallen+git@google.com>
2021-09-16 13:00:38 -07:00
Christopher Allen
51d9dad31f Re-export Blockly.utils.* submodules from Blockly.utils (#5465)
* Reexport Blockly.utils.* modules from Blockly.utils

* Update metadata (file sizes) again

  blockly_compressed.js has gotten too big for the second time this
  quarter.  Update the expected file sizes for it so that tests
  will continue to pass.
2021-09-16 18:23:33 +01:00
Christopher Allen
81e645a771 Remove vestigial (circular) require of Blockly (#5474) 2021-09-16 16:46:06 +01:00
Aaron Dodson
6a4a359f7b Migrate hideChaff() from Blockly to WorkspaceSvg (#5460)
* Add hideChaff() to core/workspace_svg.js

* Mark Blockly.hideChaff as deprecated

* Update uses of Blockly.hideChaff() to WorkspaceSvg.hideChaff() in core

* Update uses of Blockly.hideChaff() to WorkspaceSvg.hideChaff() in demos

* Style and formatting fixes

* Switch from accessor to stub wrapper for Blockly.hideChaff

Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>

Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>
2021-09-15 13:41:20 -07:00
alschmiedt
0e43ddc4ba fix: adds a fix for npm install failing (#5471) 2021-09-15 13:12:02 -07:00
alschmiedt
57ac0ae33b test: Changes mocha tests to use node_modules (#5467) 2021-09-15 08:23:42 -07:00
Rachel Fenichel
9b8cd7ce5b Migrate core/inject.js to goog_module syntax (#5456)
* Move bump objects function into a separate module

* Fix types

* Migrate core/inject.js to ES6 const/let

* Migrate core/inject.js to goog.module and move more functions to bump_objects.js

* Migrate core/inject.js named requires

* clang-format core/inject.js

* Rename private functions
2021-09-15 08:15:25 -07:00
Aaron Dodson
2ba51d4d75 Migrate Blockly.hueToHex to Blockly.utils.colour.hueToHex (#5462)
* Move hueToHex to core/utils/colour.js

* Mark Blockly.hueToHex as deprecated and pass calls through to Blockly.utils.colour.hueToHex

* Migrate core to use Blockly.utils.colour.hueToHex

* Migrate demos to use Blockly.utils.colour.hueToHex
2021-09-14 14:13:24 -07:00
Christopher Allen
d202ae0201 Don't monkey-patch Blocky.utils.xml.document (#5461)
Use Blockly.utils.xml.setDocument instead.
2021-09-14 19:55:31 +01:00
Rachel Fenichel
f4430e9e47 Move bump objects function into a separate module (#5453)
* Move bump objects function into a separate module

* Fix types

* Update core/bump_objects.js

Fix missing newline.

Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>

Co-authored-by: Christopher Allen <cpcallen+github@gmail.com>
2021-09-14 10:02:38 -07:00
Aaron Dodson
ce8e7921a2 Move alert/confirm/prompt to a new file, dialog.js (#5457)
* Migrate prompt/alert/confirm to dedicated module

* Update core/blockly.js to pass through calls to prompt/alert/confirm to core/dialog.js

* Update calls to Blockly.prompt/alert/confirm to dialog.prompt/alert/confirm

* Fix typo and errant redeclaration of Blockly.prompt

* Clarify JSDoc on customizing Blockly.dialog.alert/confirm/prompt
2021-09-14 08:19:53 -07:00
Christopher Allen
ff9320f8d9 Migrate core/utils/xml.js to goog.module syntax (#5459)
* Migrate core/utils/xml.js to ES6 const/let

* Migrate core/utils/xml.js to goog.module

  The document() function is renamed to getDocument() so as to avoid
  shadowing the global of the same name.

* clang-format core/utils/xml.js

* Call monkey-patchable exports.global internally too

  This fixes Node test failures due to the monkey-patching of
  Blockly.utils.xml.global in scripts/package/node/core.js not being
  able to affect the target calls in createElement and createTextNode.
2021-09-14 15:51:06 +01:00
Christopher Allen
f9d0caa112 Migrate core.global.js to named exports (#5451)
This is part of #5153 but is being prioritised because we want remove
the declareLegacyNamespace calls from the core/utils/*.js modules and
then reexport them explicitly via utils.js, and it turns out that
doing so results in the exports object of this module being passed to
Object.freeze - which fails on the global object, which can't be made
non-extensible!

The new name chosen for the former default export is globalThis, since
it is intended to have the same value as the global variable of that
name; see:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
2021-09-14 14:39:29 +01:00
Christopher Allen
09fb59f6ee Fix deps.js (#5452)
Running npm run build:deps in goog_module makes a change to tests/deps.js that was previously committed by PR #5441 but which appears to have been inadvertently undone by #5222.
2021-09-10 22:16:48 +01:00
Christopher Allen
7a2e23876e Migrate core/msg.js to goog.module syntax (#5448)
* Migrate core/msg.js to goog.module
* Migrate core/msg.js named requires
2021-09-10 18:10:23 +01:00
Aaron Dodson
53061ac6e5 Migrate core/touch_gesture.js to goog.module syntax (#5449)
* Migrate core/touch_gesture.js to ES6 const/let

* Migrate core/touch_gesture.js to goog.module

* Migrate core/touch_gesture.js to named requires

* clang-format core/touch_gesture.js

* Remove Blockly prefix from Touch
2021-09-09 14:19:32 -07:00
Aaron Dodson
646a931d77 Migrate core/tooltip.js to goog.module syntax (#5222)
* Migrate core/tooltip.js to ES6 const/let

* Migrate core/tooltip.js to goog.module

* Migrate core/tooltip.js to named requires

* clang-format core/tooltip.js

* Fix exports of mutable fields in core/tooltip.js

* Don't assign a value when exporting visible in core/tooltip.js
2021-09-09 12:45:16 -07:00
Christopher Allen
79b814018e Migrate core/utils.js to goog.module syntax (#5446)
* Add missing requires for Blockly.utils.*
  - Blockly.utils.svgPaths in core/rendered_connection.js
  - Blockly.utils.colour in core/toolbox/category.js
  - Blockly.utils.KeyCodes in core/toolbox/toolbox.js
* Migrate core/utils.js to ES6 const/let
* Migrate core/utils.js to goog.module
* Migrate core/utils.js named requires
* clang-format core/utils.js
2021-09-09 17:25:53 +01:00
Christopher Allen
a6471c4276 Rename Blockly.utils.IdGenerator to idGenerator and move Blockly.utils.genUid to there (#5441)
* Rename Blockly.utils.IdGenerator -> idGenerator
* Move genUid from Blockly.utils to Blockly.utils.idGenerator
2021-09-09 17:08:44 +01:00
Christopher Allen
2d89a36e7d Migrate core/utils/useragent.js to goog.module syntax (#5435)
* Migrate core/utils/useragent.js to ES6 const/let
* Migrate core/utils/useragent.js to goog.module
* Migrate core/utils/useragent.js named requires
* clang-format core/utils/useragent.js
2021-09-07 18:48:18 +01:00
Christopher Allen
c31895dc60 fix: Add missing require for Blockly.utils.object, .Size (#5427)
Some files were using Blockly.utils.object.inherits (or .mixin) without
having imported Blockly.utils.object.

Similarly, trashcan.js tried to use utils.Size as a constructor
instead of importing Size from Blockly.utils.Size.
2021-09-03 22:45:54 +01:00
Christopher Allen
24d73be1c3 docs: Create renamings.js to collect renamed API entries (#5426)
Create a file scripts/migration/renamings.js to collect information about renamed API entries. Start by filling it with the renamings already done to blockly.js.
2021-09-03 17:57:31 +01:00
Aaron Dodson
a3b52aaab3 Migrate core/events/events.js to goog.module syntax (#5302)
* Migrate core/events/events.js to ES6 const/let

* Migrate core/events/events.js to goog.module

* Migrate core/events/events.js to named requires

* clang-format core/events/events.js

* Migrate Blockly core to use getRecordUndo/setRecordUndo

* Update core/events.js to reflect latest guidance around exporting mutable fields
2021-08-26 08:53:31 -07:00
alschmiedt
6be7bc1b2b Merge pull request #5207 from alschmiedt/migrate_dropdown
Migrate dropdown to goog.module syntax
2021-08-24 13:08:43 -07:00
Aaron Dodson
4751eea529 Migrate core/events/ws_comment_events.js to goog.module syntax (#5380)
* Split provides in core/events/ws_comment_events.js into individual files

* Migrate core/events/events_comment_* to ES6 const/let

* Migrate core/events/events_comment_* to goog.module

* Migrate core/events/events_comment_* to named requires

* clang-format core/events/events_comment_*

* Revert now-unnecessary changes to tests/mocha/event_test.js

* Update fileoverview comments for separated comment event classes
2021-08-24 08:00:27 -07:00
alschmiedt
0fa81f33de PR comments and clang format after rebase 2021-08-19 17:23:18 -07:00
alschmiedt
c349db1a2e Adds test deps back in 2021-08-19 17:14:05 -07:00
alschmiedt
168b71e964 Updates to the new pattern for testing private 2021-08-19 17:07:05 -07:00
alschmiedt
9939915252 Address PR comments 2021-08-19 17:07:04 -07:00
alschmiedt
3d75bd6493 Attempt to fix tests 2021-08-19 17:03:55 -07:00
alschmiedt
4c270c0e9d clang-format core/dropdowndiv.js 2021-08-19 17:03:52 -07:00
alschmiedt
cbd5e86291 Migrate core/dropdowndiv.js to goog.module 2021-08-19 17:02:19 -07:00
alschmiedt
f29d795a7e Migrate core/dropdowndiv.js to goog.module 2021-08-19 16:58:45 -07:00
alschmiedt
72c0a55ad9 Migrate core/dropdowndiv.js to ES6 const/let 2021-08-19 16:56:04 -07:00
kozbial
5dd4e1ed50 Cleanup in core/renderers/zelos/measurables/inputs.js 2021-08-19 10:40:53 -07:00