Commit Graph

4001 Commits

Author SHA1 Message Date
Beka Westberg
658e14ff75 fix: not being able to set field values to empty (#6702) 2022-12-14 17:08:15 -08:00
Christopher Allen
3be3d4a6ff chore: miscellaneous fixes to docs, style, and tests (#6705)
* docs(icon): Better description for Icon.prototype.setVisible

  Also tweak description of getBlock.

* docs(blocks): Fix typo in description of BlockDefinition

* chore(tests): Factor out common goog:chromeOptions

* chore(build): Minor style fixes
2022-12-14 23:48:12 +00:00
Neil Fraser
fccf8e436e feat: Display a 'wait' cursor when opening trashcan (#6699)
No visible change for regular case.  But if there's thousands of blocks in the trash, the visual feedback that something's happening is better.  Otherwise the user clicks, and that click will cause some random block to be spawned out of the trash.
2022-12-15 00:25:06 +01:00
Neil Fraser
768d18468a fix: Don't spellcheck number fields. (#6698)
For the most part spellcheckers ignore numbers so this isn't an issue.  But (for example) 'Infinity' is an English word that's hardcoded into Blockly, and other languages may spellcheck it as wrong.
2022-12-12 11:25:00 -08:00
Maribeth Bottorff
20f378e082 fix: don't reopen dropdownDiv if it was already open (#6688) 2022-12-09 19:27:27 -08:00
Blake Thomas Williams
9ee1559e34 fix: set default field to any and fix validator function return type (#6690)
* chore: set default field to  and fix validator function return type

* Fix format
2022-12-09 14:16:37 -08:00
Beka Westberg
d6230b2a44 feat: procedure event serialization (#6669)
* feat: add serialization to procedure base event

* feat: add serialization to procedure change return event

* feat: add serialization to procedure create event

* feat: add serialization of the procedure delete event

* feat: add serialization of procedure enable events

* feat: add serialization of procedure parameter create events

* feat: add serialization of the parameter delete event

* feat: add serialization of procedure parameter rename events

* feat: add serialization for procedure rename events
2022-12-09 10:30:39 -08:00
Beka Westberg
0ea319c4c3 feat: add destroy lifecycle hook to blocks (#6678)
* chore: move healing tests

* chore: add tests for calling destroy

* feat: add calling the destroy callback

* chore: cleanup reversions

* chore: fixup type of destroy
2022-12-05 14:39:07 -08:00
Aaron Dodson
90cb965e7c refactor: Migrate to PointerEvents (#6598)
* refactor: Remove checks for PointerEvent support.

* refactor: Deprecate and remove calls to splitEventByTouches.

* refactor: Deprecate and remove calls to setClientFromTouch().

* refactor: Use PointerEvent in place of Event/MouseEvent/TouchEvent/PseudoEvent.

* refactor: Update references to mouse/touch events in code and documentation to reference pointer events.

* refactor: Merge Gesture and TouchGesture

* chore: clang-format changed files

* refactor: Bind and expect PointerEvents instead of MouseEvents.

* refactor: Rename TouchGesture to Gesture.

* fix: Fix test failures.

* chore: clang-format changed files.

* fix: Fix errant _ from merging

* refactor: Clean up dead code in browser_events.ts.

* chore: Update version in deprecation notices to reflect release schedule

* fix: Fixed a bug that caused the browser context menu to not be suppressed in Chrome.

* fix: Re-export Gesture as TouchGesture for backwards compatibility.

* refactor: Deprecate and remove uses of opt_noPreventDefault.

* chore: Fix error message in gesture.ts.

* chore: Removed obsolete todo.
2022-12-05 11:27:52 -08:00
Neil Fraser
1c768e8121 chore: stop linter from whining about no return (#6679)
No functional change, just jumping through hoops due to tooling.

"JSDoc @returns declaration present but return expression not available in function"
2022-12-02 17:17:38 +01:00
Beka Westberg
fc2c10d0d0 feat: make the variable map return early for noops (#6674)
* chore: add variable map tests

* chore: move firing create events into the variable map

* feat: add early returning in the case of noop renames

* chore: format
2022-12-02 08:10:41 -08:00
Beka Westberg
67275e4bba Revert "feat!: allow blocks to receive their own delete events" (#6676) 2022-12-01 14:55:31 -08:00
Beka Westberg
089841c26f Revert "fix: blocks not receiving their own delete events (#6655)" (#6675)
This reverts commit 485bd4dddf.
2022-12-01 14:11:30 -08:00
Neil Fraser
1cccc3cb4a docs: make three methods not internal (#6666)
Amusingly Flyout.isVisible and .setVisible are public, but there's no way to access a flyout given that getFlyout was not public.
2022-12-01 08:46:21 -08:00
Beka Westberg
c959ce85ae feat: add running procedure events (#6650)
* chore: fixup procedure change event tests

* feat: add running procedure change return events

* fixup change return

* feat: add running the procedure rename event

* feat: add running procedure enable events

* feat: add running parameter rename events

* feat: add running procedure create events

* feat: add running procedure delete events

* feat: add running parameter create events

* feat: add running procedure parameter delete events

* chore: add types to all of the new procedure events

* chore: format

* chore: use type imports

* chore: fix test comments

* chore: add more inline docs
2022-12-01 08:38:50 -08:00
Beka Westberg
485bd4dddf fix: blocks not receiving their own delete events (#6655)
* fix: blocks not receiving their own delete events

* chore: unskip tests
2022-11-29 08:39:21 -08:00
Maribeth Bottorff
be4b8323c5 feat: add option to disable modal inputs on mobile (#6625) 2022-11-22 11:52:46 -08:00
Beka Westberg
7b055dbc7e chore(tests): test running procedure events (#6627)
* chore: define necessary events

* chore: cleanup test organization

* chore: cleanup comment

* chore: move assertEventFiredShallow to test helpers

* chore: add tests for running the procedure change return events

* chore: work on tests??

* chore: add tests for running the change return events

* chore: add tests for running enable events

* chore: add tests for procedure rename events

* chore: add tests for renaming procedure parameters

* chore: add tests for running procedure create events

* chore: add tests for running procedure parameter create events

* chore: add tests for running procedure delete events

* chore: add tests for running procedure parameter delete events

* chore: skip all tests for running procedure events
2022-11-18 16:01:41 -08:00
Rachel Fenichel
a1eb42307f fix: make mutator workspace public (#6634)
* fix: make mutator workspace public

* fix: make workspace private again
2022-11-18 15:26:16 -08:00
Beka Westberg
f64c934f04 feat: refactor event serialization to use static fromJson method (#6614)
* feat: add new path for deserialization of events

* chore: add tests for round-tripping events

* chore: add static fromJson methods to all events

* chore: add inline docs to new static methods

* chore: add deprecation warnings

* chore: cleanup

* chore: add deprecation and docs to abstract

* chore: format

* chore: cleanup from rebase

* chore: update docs comment
2022-11-14 11:07:36 -08:00
Blake Thomas Williams
6ce06e6982 chore: clean up field default values (#6613) 2022-11-11 13:42:09 -08:00
Rachel Fenichel
78af46e72b chore: removes underscores in input (#6612) 2022-11-11 09:56:39 -08:00
Blake Thomas Williams
79f620647f chore: add validator and field value types (#6603)
* chore: add validator and field value types

* chore/clean up unused default and unnecessary field type setting

* chore: removed IRegisterableField and updated various Field instances

* fix: remove unused field image validator function

* chore: added pass-through constructor to field_textinput
2022-11-11 08:54:57 -08:00
Beka Westberg
0532b5d1c0 feat: add firing of procedure events. (#6604)
* feat: add empty implementations of events

* chore: register all events

* chore: change assertions to shallow match properties

* feat: add firing events from the observable procedure map

* fix: make event not fired assertions actually fail

* chore: fixup typos in tests

* feat: add firing procedure model events

* feat: add firing parameter create and parameter delete events

* chore: reorganize event tests into suites

* feat: add firing parameter rename events

* chore: format

* chore: use tripple equals
2022-11-10 16:38:32 -08:00
Rachel Fenichel
92efdb91d1 chore: clean up insertion marker code (#6602)
* chore: move comments

* chore: remove underscores from private property names

* chore: remove underscores from properties and methods in insertion marker manager

* chore: format

* chore: track closestConnection and localConnection as a single object

* chore: format

* chore: add comments and simplify shouldUpdatePreviews

* chore(docs): add jsdoc for new params

* chore: use destructuring assignments

* chore: improve readability

* chore: address review feedback

* chore: respond to review feedback

* chore: fix types in shouldDelete

* chore: make wouldDeleteBlock a property

* chore: format
2022-11-10 09:32:27 -08:00
Beka Westberg
1f862cb878 chore: disable serialization of procedure data for point release (#6610)
* chore: disable serialization of procedure data for point release

* chore: format
2022-11-09 14:28:05 -08:00
Christopher Allen
52a0d525d7 chore(build): Remove build products from the Blockly repository (#6475)
* feat(build): Make build tasks invoke their prerequisites

  - Divide gulp targets into three kinds: main sequence,
    manually invokable, and script-only.  The first two categories
    automatically invoke their prerequisites.
  - Give (most of) the affected gulp targets shorter and more memorable
    names that could become their npm script names in future.

* feat(build): Make package tasks invoke their prerequisites

  Have the package task invoke the cleanBuildDir (as well as
  cleanPackageDir) and build tasks.  Remove the checkBuildDir
  task as it is now redundant since a fresh build is done every
  time.

* feat(build): Make git tasks invoke their prerequisites

* feat(build): Make cleanup, license [sic] tasks invoke their prerequisites

  Turns out they don't have any, so this commit just classifies
  their gulp targets according to the established scheme.

* feat(build): Make appengine tasks invoke their prerequisites

  In this case prepareDeployDir will eventually depend on package
  but does not for now.

* feat(build): Have npm scripts run npm ci first where applicable

  Have any npm script that have external effects (e.g. publishing an
  npm package, pushing a new version to appengine, or updating GitHub
  Pages) start by running npm ci to ensure that all dependencies are
  up-to-date with respect to package-lock.json.

  (This is done by npm and not a gulp script because gulp itself
  might need updating.  So might npm, but that is less likely to
  make any difference to what gets published/pushed.)

* chore(build): have tests use package target

  Have the tests just run the package target (with debug flags)
  since that runs the the build target automatically.

* feat(tests): Write Closure Compiler output directly to dist/

  Since they are already UMD-wrapped, have Closure Compiler write
  output chunks directly to RELEASE_DIR, i.e. dist/.

* chore(tests): Use freshly-build files in compressed mode.

  Use the freshly-built build/*_compresssed.js files when bootstrapping
  in compressed mode, rather than using the checked-in files in the
  repository root.

  This helps ensure that compressed and uncompressed mode will be
  testing (as closely as possible) the same code.

  Obsoletes #6218 (though the issues discussed there have not actually
  yet been addressed in this branch).

* chore(build): Write intermediate langfiles to build/msg

  Write the results of create_messages.py to build/msg instead of
  build/msg/js.

* fix(build): Use build/msg/en.js instead of msg/messages.js in tests

  This has no direct effect but fixes a long-standing misdesign
  where we are testing against the input to, rather than the output
  of, the language file processing pipeline.

* feat(demos): Use freshly-built files

  Use the freshly-built dist/*_compresssed.js and build/msg/* files
  rather than using the checked-in files in the repository root.

  This helps ensure that these demos are using the most recent
  version of Blockly (even in the develop branch).

* fix(build): Update appengine deployment to include built files

  Modify the prepareDemos task as follows:

  - Use the git index instead of HEAD, so that most local changes
    will be applied (without copying whatever .gitignored cruft
    might be in the local directory).
  - Run clean and build and then copy build/msg and
    dist/*_compressed.js* to the deploy directory.

  This fixes the problem created by the previous commit, wherein the
  demos relied on built files that were not being deployed to
  appengine.

* fix(build): Update GitHub Pages deployment to include built files

  Modify the updateGithubPages task to run clean and build and
  then git add build/msg dist/*_compressed.js*, so that they will
  be included in the deployed pages.

  This fixes the problem created by the previous^2 commit,
  wherein the demos relied on built files that were not being
  deployed to GitHub Pages.

* chore(build): Remove build products from repository

  Remove *_compressed.js* and msg/js/* from the blockly repository.
  Also remove the now-obsolete checkinBuilt gulp task.

* chore(build): Apply relevant changes to test_tasks.js

  Apply changes made to run_all_tests.sh and check_metadata.sh to
  the corresponding parts of their JS replacements in
  test_tasks.js.

* chore(build): Make updates suggested in PR #6475

  - Remove `clean:builddir` and `clean:releasedir` - `clean`
    is sufficient.
  - Remove duplicate `require` from `appengine_tasks.js`.

* feat(build): Use shorter npm script names

  Since scripts that run build tasks now automatically run their
  prerequisite tasks, the previous naming scheme of task `build`
  running all the `build:subtask`s no longe really makes very
  much sense.

  Additionally, following a chat discussion, there seems to be a
  rough consensus to use "messages" to refer to the .json input
  files, and "langfiles" to the generated .js output files.

  Consequently, simplify npm script names by renaming as follows:

  - "generate:langfiles" -> "messages"
  - "build:langfiles" -> "langfiles"
  - "build:js" -> "tsc"
  - "build:deps" -> "deps"
  - "build:compiled" -> "minify"
  - "build:compressed": delete this synonym for "build:compiled",

  ("minify" was chosen as agnostic to Closure Compiler vs. WebPack.)

* chores(build): Add deprecation notice for old scripts

  To reduce potential confusion/frustration, restore the previous
  npm scripts but have them display a deprecation notice instead
  (note that npm prints the script contents before running it, so
  echo is not needed).

* docs(build): Add comments distinguishing 'messages' from 'langfiles'
2022-11-03 13:15:10 +00:00
Rachel Fenichel
f95af3614c chore: remove some underscores in icon-related classes (#6583)
* chore: remove underscores from properties and methods in comment.ts

* chore: remove some underscores from icon-related classes

* chore: cleanup

* chore: respond to PR feedback

* chore: catch one more bit of PR feedback
2022-10-31 13:43:50 -07:00
Beka Westberg
5c1860f473 feat: export serializers (#6586)
* feat: export serializers

* chore: update package-lock

* chore: fix typo
2022-10-31 10:20:34 -07:00
Rachel Fenichel
25c87c1770 chore: remove underscores and clean up scrollbar.ts (#6584)
* chore: restructure constructor to improve annotations

* chore: clean up scrollbar disposal

* chore: remove underscores from private properties and methods in scrollbar

* chore: clean up comment
2022-10-28 11:05:46 -07:00
Neil Fraser
e90aba9273 fix: Rename Generator to CodeGenerator (#6585)
Stops collisions with ES6's Generator.
The old Blockly.Generator still exists as a name, but is now deprecated.
2022-10-28 01:59:00 +02:00
Beka Westberg
2311a94b03 feat: add serialization of procedure models (#6582)
* feat: add procedure model serializer

* chore: cleanup

* fix: serializer registration

* chore: add inline docs

* chore: cleanup and unskip tests

* chore: format

* fix: refactor factories to use generics

* chore: format

* chore: add docs to constructor
2022-10-27 15:41:46 -07:00
Beka Westberg
fed57f24b7 fix: refactors concrete implementations of the procedure data models (#6575)
* fix: expand the IParameterModel interface

* fix: remove support for return types from the concrete procedure model

* feat: add an interface for the procedure map, and add getting procedures

* fix: add procedure map to workspace

* chore: format

* fix: add name parameter to procedure model to match parameter model

* chore: format

* chore: fix comments
2022-10-25 14:12:57 -07:00
Beka Westberg
c9ced48de2 feat: trigger updates to IProcedureBlock blocks (#6570)
* feat: add interface and method for updating procedure blocks

* chore: remove module ID declarations

* feat: add actually triggering updates

* chore: format

* chore: clean up tests
2022-10-25 08:56:13 -07:00
Beka Westberg
7ffe1fa89f chore: update procedure map tests to match the refactored API (#6569)
* chore: add tests for the backing variable of parameter models

* chore: update existing procedure map tests

* chore: update block update tests to use refactored API

* chore: update tests to actually use fluent API

* chore: format

* chore: fix tests

* chore: reorganize tests

* chore: format

* chore: add comment
2022-10-25 08:51:40 -07:00
Beka Westberg
41db0c5fb0 fix: feedback on procedure model implementations (#6560)
* fix: feedback on procedure model implementations

* chore: format
2022-10-25 08:46:42 -07:00
Rachel Fenichel
a46e12b06b chore: remove underscores from menuitem and menu (#6567)
* chore: remove underscores in menuitem.ts

* chore: remove underscores in menu.ts

* chore: format
2022-10-25 08:33:59 -07:00
Blake Thomas Williams
f22303b91d chore: added type information to core/field_dropdown.ts (#6550)
* chore: added generator type to `core/field_dropdown.ts` and updated affected files

* chore: added type to ARROW_CHAR in `core/field_dropdown.ts`

* chore: cleaned up misc 'AnyDuringMigration' cases and related comments

* fix: misc adjustments from PR feedback

* Fix: simplified `getOptions`

* fix: removed outdated arrow and cleaned up formatting

* fix: cleanup format after rebase
2022-10-24 14:35:25 -07:00
Beka Westberg
d58844d23c Revert "chore: update procedure map tests to match the refactored API (#6562)" (#6568)
This reverts commit 5f70fc415b.
2022-10-19 10:42:32 -07:00
Beka Westberg
5f70fc415b chore: update procedure map tests to match the refactored API (#6562)
* fix: feedback on procedure model implementations

* chore: format

* chore: add tests for the backing variable of parameter models

* chore: update existing procedure map tests

* chore: update block update tests to use refactored API

* chore: update tests to actually use fluent API

* chore: format

* chore: fix tests

* chore: reorganize tests

* chore: format

* chore: add comment
2022-10-19 10:28:40 -07:00
Beka Westberg
04dffbc33a chore: fix mutator blocks jumping (#6559)
* chore: fix mutator blocks jumping

* chore: format
2022-10-18 14:15:53 -07:00
Neil Fraser
321f619e28 fix: Don't warn if field is acually 0 width (#6558)
One part of issue 6557.
2022-10-18 23:01:41 +02:00
Beka Westberg
df660af66c fix: make getSourceBlock nullable again (#6542)
* fix: make getSourceBlock nullable again

* chore: format

* chore: move to a specific error

* chore: also update procedures with new error

* chore: format
2022-10-18 12:57:44 -07:00
Rachel Fenichel
b0c897224a chore: clean up code in field_angle.ts (#6551) 2022-10-17 09:27:42 -07:00
Neil Fraser
5a23c84e6e Don't quote fromJson property. (#6545)
This is the only place in our codebase where it's quoted.  The result is a failure to compile correctly using advanced optimizations.
2022-10-14 19:01:28 +02:00
Maribeth Bottorff
caf91c82a6 fix: fix pinch to zoom (#6544)
* fix: fix pinch to zoom

* chore: format
2022-10-13 18:05:42 -07:00
Beka Westberg
a7247af7c3 feat: add basic observable implementations of procedure interfaces (#6489)
* feat: implement basic observable procedure model

* feat: implement basic observable procedure model

* feat: implement basic observable parameter model

* feat: implement basic observable procedure map

* chore: format

* chore: refactor parameter model

* chore: update the observable procedure model to match interface

* chore: update the observable parameter model to match interface

* chore: update the observable procedure map

* chore: update concrete implementations to use this return type

* chore: format

* chore: remove legacy module IDs

* chore: fix typo
2022-10-13 15:23:10 -07:00
Beka Westberg
1162a660a0 feat: add interface definitions for procedure stuff (#6488)
* feat: add interface definitions for procedure stuff

* fix: signature of insertParameter

* fix: remove declareModuleId

* fix: remove variable-ness from the parameter interface

* chore: types -> type

* chore: PR comments

* fix: update interfaces to use this return type

* chore: format
2022-10-13 11:21:37 -07:00
Beka Westberg
7147813693 fix: parent blocks not bumping neighbours (#6538)
* fix: parent blocks not bumping neighbours

* chore: add more comments
2022-10-13 10:59:04 -07:00
Neil Fraser
9b81317d32 chore: Remove blockly factory use of utils.dom.add/removeClass (#6534)
* Remove usages of utils.dom.add/removeClass from Blockly Factory
* Use template strings for error messages.

(Random stuff found while working on something larger.)
2022-10-13 01:30:17 +02:00