Commit Graph

3977 Commits

Author SHA1 Message Date
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
Rachel Fenichel
ab9825cfaf chore: remove underscores from some private properties and methods (#6537)
* chore: rename properties to remove underscores in zoom_controls.ts

* chore: remove underscores from private methods in zoom_controls.ts

* chore: fix underscores in private property names in ws_svg

* chore: format
2022-10-12 16:07:13 -07:00
Rachel Fenichel
25fe27221f chore: remove underscores from private properties in workspace.ts (#6536) 2022-10-12 13:28:29 -07:00
Rachel Fenichel
a9b0b199e3 chore: clean up some underscores (#6492)
* chore: clean up block_drag_surface.ts

* chore: remove underscores in property names in bubble.ts

* chore: remove underscores from method names in bubble.ts

* chore: format, and remove one cast
2022-10-11 15:48:21 -07:00
Beka Westberg
ca3b9bd079 fix: move Theme to use a Partial type for BlockStyle (#6532)
* fix: move theme to use Partial type

* chore: remove useless error throwing

* chore: format

* chore: update validatedBlockStyle_ to use Partial
2022-10-11 15:40:56 -07:00
koenvanwijk
581e8acf4b fix: Connections can be highlighted multiple times (#6502)
* fix: Connections can be highlighted multiple times

* fix: remove spaces to fix clang-formating
2022-10-10 11:34:27 -07:00
Beka Westberg
a263587ca0 chore: rearrange serialization export to make APIExtractor happy (#6480)
* chore: rearrange serialization export to make APIExtractor happy

* chore: format
2022-10-05 13:43:07 -07:00
Neil Fraser
84f6dfef4f Fix: // isn't a legal comment in CSS (#6467) 2022-10-05 06:38:32 +02:00
YAMADA Yutaka
2a2cbb4722 fix: Modifying size update handling for multiline field in parent block. (#6461) 2022-10-03 11:48:57 -07:00
Beka Westberg
d3447ea565 fix!: Update deprecations for the new release. (#6470)
* chore: bump early deprecations to v10

* fixup

* fixup

* chore: remove deprecated properties

* chore: add missing @deprecated tags

* chore: format

* chore: format

* chore: fix import
2022-10-03 11:21:52 -07:00
Blake Thomas Williams
e0b60cbf8a chore: fixed tsdoc missing deprecation messages (#6460)
* chore: added missing deprecation messages for `core/renderers/common/block_rendering.ts`

* chore: added missing deprecation messages for `core/utils.ts`

* chore: updated format

* fix: reverted runAfterPageLoad to internal and updated messaging
2022-09-30 14:25:44 -07:00
Blake Thomas Williams
fa925e8c35 chore: cleaned up several type cases in core/field.ts and impacted files (#6363)
* chore: cleaned up several type cases in core/field.ts and impacted files

* chore: updated instances of `sourceBlock_!` to `getSourceBlock()`

* chore: updated instances of `fieldGroup_!` to `getSvgRoot()`

* chore: updated nullable variables in `field.ts` to use internal functions

* chore: updated getSourceBlock and getSvgRoot to handle nullability

* chore: updated comments to reference throwing an error

* fix: reverted `getSvgRoot` to `fieldGroup_` in null-accepting areas

* fix: updated `getSvgRoot` to allow null and added null handling methods

* fix: moved click target error handling to their specific cases

* fix: updated drawer.ts to handle cast svg group to defined
2022-09-30 08:53:19 -07:00
Rachel Fenichel
dd0d0f6bcf fix(tests): revert change in marker_svg to keep keyboard nav tests working (#6457) 2022-09-30 08:03:13 -07:00
Beka Westberg
8530e6d537 fix: adding and removing css classes that contained spaces (#6455)
* fix: adding CSS classes

* fix: removing css classes

* fix: add a test for multiple icon classes

* chore: format
2022-09-28 15:51:17 -07:00
Beka Westberg
f678531389 chore: remove AnyDuringMigration from events (#6382)
* chore: remove AnyDuringMigration from events

* chore: format

* chore: lint

* chore: fix tests

* fix: correct types for JSON properties

* chore: fix tests

* refactor: replace exclamation markers with errors

* chore: fix build and tests

* chore: set event types as members, rather than in constructor

* chore: update comment

* chore: export new types

* chore: format

* chore: remove unnecessary override

* chore: change how we're overriding isBlank

* chore: remove unnecessary ?

* chore: remove non-null assertion in block move event

* chore: format

* chore: revert changes to isNull

* chore: format
2022-09-27 15:08:05 -07:00
Beka Westberg
eb1b78663c fix: field defaults not being defined correctly (#6453) 2022-09-27 14:53:44 -07:00
Aaron Dodson
ab03c65f9f fix: Fix blocks with mutators. (#6440)
* refactor: Revert the Mutator/Icon constructor API changes with a deprecation warning.

* fix: Update the block definitions to use the new Mutator constructor.
2022-09-27 13:42:52 -07:00
Beka Westberg
9c81e7591a fix: message types being incorrect (#6414)
* chore: regen msg dts files

* fix: package tasks not packaging msg.d.ts files

* fix: add setLocale to blockly.ts

* chore: format

* chore: move setLocale

* chore: add comment about setLocale not being useful when used with script tags

* chore: format
2022-09-26 14:02:57 -07:00
Beka Westberg
893787b285 fix: path object not checking theme props (#6451)
* fix: path object not checking theme props

* fix: error msgs
2022-09-26 13:58:57 -07:00
Beka Westberg
abad51fdb0 fix: theme types (#6423)
* chore: fix theme types

* chore: format
2022-09-26 12:52:46 -07:00
Beka Westberg
f2e408b6fa fix: disposing of a workspace that has overwritten shadows (#6424)
* fix: disposing of a workspace that has overwritten shadows

* fix: try slightly different placement to fix tests

* fix: add disposing parameter to guaruntee consistent behavior

* chore: wrap properties in a isDeadOrDying method

* chore: make disposing private
2022-09-26 12:37:36 -07:00
Neil Fraser
e5dcb766bd chore: Remove radix from parseInt, simplify Blockly.utils.dom methods, use Unicode characters. (#6441)
* chore: remove radix from parseInt

Previously any number starting with '0' would be parsed as octal if the radix was left blank.  But this was changed years ago.  It is no longer needed to specify a radix.

* chore: 'ID' is identification

'id' is a part of Freud's brain.

* Use Unicode characters instead of codes

This is in line with the current style guide.

* Simplify Blockly.utils.dom methods.

classList add/remove/has supports SVG elements in all browsers Blockly supports (i.e. not IE).
2022-09-22 06:59:24 -07:00
Aaron Dodson
c84febbe07 refactor: Remove more uses of AnyDuringMigration (#6439)
* refactor: Remove uses of AnyDuringMigration from workspace_comment.ts

* refactor: Remove uses of AnyDuringMigration from separator.ts.

* refactor: Remove uses of AnyDuringMigration from category.ts.

* refactor: Remove uses of AnyDuringMigration from rendered_connection.ts.

* refactor: Removed uses of AnyDuringMigration from flyout_metrics_manager.ts.

* refactor: Remove uses of AnyDuringMigration from dom.ts.
2022-09-21 12:28:35 -07:00
Rachel Fenichel
c2cbed1146 fix: some AnyDuringMigration (#6430)
* fix: remove some AnyDuringMigrations

* fix: some instances of AnyDuringMigration

* fix: some AnyDuringMigration

* chore: revert comment removal
2022-09-15 12:48:40 -07:00
Christopher Allen
c063d12abb chore: Re-remove core/blockly.js (#6422)
core/blockly.js was removed from the ts/migration branch in PR #6261,
but for some reason when ts/migration was merged into develop via
a two step process something went wrong:

* as expected, blockly.js got renamed to blockly.ts in PR #6297, but
* for some reason it got re-added under its original name in PR #6299.

Since the file should not exist, is not used, and has proven to
cause confusion (to me at least!), delete it again, hopefully for
good this time.
2022-09-14 18:11:14 +01:00