* fix: dragging variables from flyout
* fix: rename positionBlock_ to positionNewBlock_
* fix: type
* fix: try alternative method for handling variables in flyout
* fix: remove duplicate serialization hook implementations
* feat: add backwards compatibility to field serialization
* feat: add support for serializing old mutator hooks
* fix: build
* fix: refactor field changes into helpers
* fix: typo
* fix: removing xmlns
* tests: add tests for serialization and deserialization of mutator hooks
* fix: switch to early returns
* fix: remove some attributes from the JSO system
Remove the deletable, movable, and editable attributes.
Normally this would be a breaking change, but because this isn't
released yet it's just a patch.
* fixup: serializer tests
* Move existing tests into new suite
* Add tests for setShadowState
* Add assertions for serialization
* Unskip serialization tests
* Add logic to handle shadows in both systems
* Uncomment tests
* fix: add access modifiers to new comment funcs
* fix: fixup types
* fix: remove addNextBlocks = true
* feat: add real child of shadow errors
* fix: types
* Respect nulls from blocks.save
* Upgrade list blocks to use JSO serialization
* Upgrade logic blocks to use JSO serialization
* Upgrade math blocks to use JSO serialization
* Upgrade text blocks to use JSO serialization
* Upgrade procedure blocks to use JSO serialization
* Add more mutator tests
* Fix firing enabled events
* PR Comments
* Add parameter for recording undo.
This sets up the most common default behavior, but also makes it clear
to people that it is happening, because it might not be expected.
* Add grouping of events
* Add text width caching
* Add disabling workspace resizing
* Add performance optimizations
* Respect nulls from blocks.save
* Cleanup from rebase
* PR Comments
* Cleanup from rebase
* Add tests for serializing connected blocks
* Add serialization of child blocks
* Add tests for not serializing children
* Add options for not serializing children
* Fix types
* Change addNextBlocks to default to true
* Cleanup
* Fix types
* Upgrade field angle to use new serialization
* Upgrade field checkbox to use new serialization
* Upgrade field colour to use new serialization
* Upgrade field dropdown to use new serialization
* Upgrade serializable label field to use new serialization
* Upgrade field multiline input to use new serialization
* Upgrade field number to use new serialization
* Upgrade field text input to use new serialization
* Upgrade variable field to use new serialization
* Fix type casts
* Feedback from PR
* Switch to use getValue()
* 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
* 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
* 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
* 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
* Fix error conditions for setParent #4989
* Error now thrown when calling `a.setParent(b)` on non-null b if the output/previous connection of a is not connected to an input/next connection of b without removing block from old parent's child list.
* Commented out error for when calling `a.setParent(null)` if a is connected to superior block.
* Adjusted comment to reflect that blocks were no longer being disconnected in this method.
* Also changed == to === per #4924 (`newParent` and `this.parentBlock_` must both be instances of `Blockly.Block`).
* Fix error conditions for setParent #4989
* Error now thrown when calling `a.setParent(b)` on non-null b if the output/previous connection of a is not connected to an input/next connection of b without removing block from old parent's child list.
* Error now thrown when calling `a.setParent(null)` if a is connected to a superior block.
* Adjusted comment to reflect that blocks were no longer being disconnected in this method.
* Also changed == to === per #4924 (`newParent` and `this.parentBlock_` must both be instances of `Blockly.Block`).
* Fix error conditions for setParent #4989
* Error now thrown when calling `a.setParent(b)` on non-null b if the output/previous connection of a is not connected to an input/next connection of b without removing block from old parent's child list.
* Commented out error for when calling `a.setParent(null)` if a is connected to superior block.
* Adjusted comment to reflect that blocks were no longer being disconnected in this method.
* Also changed == to === per google#4924 (`newParent` and `this.parentBlock_` must both be instances of `Blockly.Block`).
* Fixed lint errors.
* Fix error conditions for setParent google#4989
* Error now thrown when calling `a.setParent(b)` on non-null b if the output/previous connection of a is not connected to an input/next connection of b without removing block from old parent's child list.
* Commented out error for when calling `a.setParent(null)` if a is connected to superior block.
* Adjusted comment to reflect that blocks were no longer being disconnected in this method.
* Also changed == to === per google#4924 (`newParent` and `this.parentBlock_` must both be instances of `Blockly.Block`).
* Fixed lint errors.
* Adjusted comment.
* Removed unnecessary set to null/added tests
* One is failing (commented out), will investigate later
* Lint fix
* Removed failing test that correctly fails
* Update comments to conform to style guide
Capitalize first letter, period at end
* New gulp task buildDeps (npm run build:deps) to create tests/deps.js.
* Old gulp task buildUncompressed is deleted.
* blockly_uncompressed.js is now handwritten.
* And simplified; in particular, BLOCKLY_BOOT is gone.
* And linted!
* For consistency with the Closure documentation and base.js,
consistently refer to what blockly_uncompressed.js is used for as
"uncompiled mode" rather than "uncompressed mode" (but don't yet
rename it to blockly_uncompiled.js)
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.)
I had forgotten that I needed to change the value of BUILD_DIR
in several different places.
Added comments warning future editors about this as well as filing
issue #5007 to track fixing this properly.
Despite being misconfigured and therefore failing, the typescript
and metadata test scripts were exiting with status 0, indicating
successful completion. These have been fixed so they should fail
on any error, including misconfiguration.
- Reconfigure package_tasks.js to use BUILD_DIR from config.js
(i.e., build/) rather than repository root as source of files to
package.
- Add check to packageTasks.package to ensure that certain required
files exist in BUILD_DIR, to verify that buildTasks.build and
typings.typings have been run.
- Fix packageUMDBundle to use generated, rather than checked-in
version of en.js.
- Fix packageDTS to use the generated (rather than checked-in)
versions of blockly.d.ts and msg/*.d.ts.
- Modify run_all_tests.sh to run packageTasks.package before running
node tests, since they depend on it. Previously this was only
working because 'npm install' runs the 'prepare' script, which would
run the 'package' script - so the code being tested by the node tests
was not the current source but whatever precomipled code had
previously been checked in.
- Remove the 'prepare' script from package.json, since it is no longer
needed (and is now broken, since it requires that build and typings
have been done first.) Note that no scripts at all are included in
the version of package.json that is created in dist/ and subsequently
included in the published npms, so this deletion does not affect what
happens when the Blockly npm in installed - it only affects what
happens when 'npm install' is run after the blockly repo is cloned.
- Factor out the actual recompilation steps from releaseTasks.recompile.
- Rename releaseTasks.recomple to recompileDevelop, since it deals
specifically with the develop branch. (The npm script name is
unchanged.)
- Ensure that a full recompile and repackage is done before publishing
(beta and non-beta) npms.
* Modify scripts/gulpfiles/typings.js to write typings to BUILD_DIR.
* Modify tests/scripts/compile_typings.sh to check compilability of
resulting output from BUILD_DIR.
* Rename checkin script to checkin:built, add a checkin:typings script
to do the same for .d.ts files, and a new checkin script to do both.
* Have recompile run checkin:typings.
- Do not run npm install.
- Do not re-run build that has already been run by a previous test.
- Check files in built/ instead repo root.
- Fix formatting, styleguide issues.
These functions have side effects and set all kinds of private fields. It is misleading for them to return the top-level element, for the caller to assign to a private field.
* Now throws error for getField/getFieldValue/setFieldValue if provided name is not a string
* Changed error to more specific TypeError
* Type checking and error message moved up to getField
* Tests added/modified to check that non-string types for field names produce type errors
* Added tests for getting/setting field (values) when names are not supplied and test for getting a field value, setting it to a new value, and getting it again.
* Added more user-friendly error message for setFieldValue telling the developer that he/she is missing the name rather than Field "undefined" not found.