Commit Graph

4086 Commits

Author SHA1 Message Date
Beka Westberg
d726080eaa feat: add support for appending custom inputs (#6990)
* feat: add appendInput method

* feat: enable constructing inputs from the registry

* chore: reorganize into suites

* chore: add new input test + fixup existing

* chore: reorganize appending from registry

* chore: fix input types enum

* chore: fix tests
2023-04-21 15:58:42 -07:00
Beka Westberg
35276e9468 fix: insertion markers firing move events (#7005) 2023-04-21 12:49:02 -07:00
Maribeth Bottorff
467b6a2e79 fix: rtl field alignment (#6991) 2023-04-20 13:53:18 -07:00
Dima
acd046e4b3 fix: block_svg disable/enable ops lead to unsync state and render (#6989)
* fix: disable/enable block_svg downstream blocks

* fix: disable/enable block_svg improve
2023-04-19 15:11:21 +00:00
Beka Westberg
83e3dcac70 feat: add after queued renders promises to render management (#6981)
* feat: add promise to render queue system

* chore: update docs for variables

* chore: add export of render management

* chore: add tests for resolving render management promises

* fix: modify insertion marker manager to use render management promises

* chore: format

* chore: remove callback from afterQueuedRenders

* chore: don't store resolver

* chore: rename afterQueuedRenders -> finishQueuedRenders

* chore: fix tests
2023-04-18 17:02:33 -07:00
Beka Westberg
edc5843c4c fix: non-printable characters in XML (#6952)
* fix: non-printable characters in XMl

* fix: PR comments

* chore: format

* chore: move to module-level parser and serializer

* chore: reorganize textToDom

* chore: add dummy implementations of domParser and xmlSerializer

* chore: properly check classes before constructing

* chore: fix tests

* chore: PR comments

* chore: remove null char from tests

* chore: docs!
2023-04-17 16:05:09 -07:00
Neil Fraser
20f0c937cd chore: 'compareDocumentPosition' to 'contains' (#6982)
The 'compareDocumentPosition' call was inherited from Closure Library, in order to work with IE 8 and earlier.  Use the more modern 'contains' call instead.

This change was originally added here:
https://github.com/google/blockly/pull/1991

Remove the DOCUMENT_POSITION_CONTAINED_BY constant which is not a NodeType and should never have been part of that enum.

This change was originally added here:
https://github.com/google/blockly/pull/2736
2023-04-17 23:48:24 +02:00
Maribeth Bottorff
2bbb3aa1fc fix: do not hide all chaff when resizing (#6916) 2023-04-17 10:06:44 -07:00
Neil Fraser
2fa7280ce1 fix: Don't truncate text label fields. (#6979)
https://groups.google.com/g/blockly/c/S5b3iKB2Sos
2023-04-15 17:34:20 -07:00
Rachel Fenichel
c458d63018 chore: remove underscores from private properties and methods in some fields (#6977)
* chore: remove private underscores in field_checkbox

* chore: remove private underscores from field_dropdown

* chore: remove private underscores in field_image

* chore: remove private underscores in field_label

* chore: remove private underscores in field_number

* chore: format
2023-04-13 14:59:43 -07:00
Rachel Fenichel
5f8330e74e chore: remove underscores from private properties and methods in keyboard nav and rendering (#6975)
* chore: remove underscores in keyboard navigation

* chore: remove private underscores from renderers
2023-04-12 11:19:41 -07:00
Neil Fraser
8ade26148c Fix offset location of connection ripple (#6973)
Resolves issue #6972
2023-04-12 10:00:41 -07:00
Rachel Fenichel
85013f83b2 chore: remove underscores from private properties and methods in connections (#6961)
* chore: remove private underscores in connection and connection_db

* chore: remove private underscores in rendererd_connection
2023-04-11 10:06:17 -07:00
Rachel Fenichel
2bf780e74f chore: remove underscores from private properties and methods for names and workspace comments (#6962)
* chore: remove private underscores in names.ts

* chore: remove private underscores in workspace comments

* chore: format

* chore: remove unneeded nulls
2023-04-11 10:00:39 -07:00
Aaron Dodson
b32e76d45f refactor: Remove some more uses of AnyDuringMigration. (#6970) 2023-04-10 13:57:04 -07:00
Rachel Fenichel
48bdeb3bdb chore: remove underscores from private properties and methods for flyout (#6960)
* chore: remove underscores in flyout files

* chore: remove underscores in flyout_button
2023-04-07 15:40:56 -07:00
Rachel Fenichel
8378eddd17 chore: remove underscores from properties and methods in trashcan (#6959) 2023-04-07 14:51:35 -07:00
Beka Westberg
2167afab85 fix: disposing during dragging (#6954) 2023-04-06 11:41:12 -07:00
Beka Westberg
7c17ab9931 fix: collapsed toolbox categories being expanded (#6942) 2023-04-06 09:09:34 -07:00
Beka Westberg
25c6d473ce Merge pull request #6918 from BeksOmega/fix/mutator-rerender
fix: remove forced rerender from mutator
2023-04-05 16:21:57 -07:00
Maribeth Bottorff
69afe5b60f fix: allow splicing into shadow block stacks (#6939)
* fix: allow splicing into shadow block stacks

* chore: format
2023-03-30 13:32:57 -07:00
Beka Westberg
7291fa04a9 fix: mutator not resizing for flyout (#6917) 2023-03-28 12:47:02 -07:00
Aaron Dodson
d004bd256d fix: Make Escape cancel changes in text fields. (#6923) 2023-03-24 14:56:25 -07:00
Beka Westberg
0708c97ffe fix: connection locations not updating (#6921)
* fix: connection locations not updating

* chore: update TODO
2023-03-24 19:58:33 +00:00
Christopher Allen
faa95d022d fix(fields): Make SKIP_SETUP a Symbol; remove Sentinel class (#6919)
We introduced the SKIP_SETUP sentinel value when converting
Field and its subclasses to ES6 class syntax, because super
must be called before any other code in a subclass
constructor, breaking the previous mechanism where subclasses
would set some properties before calling their superclass
constructor.

SKIP_SETUP was a singleton value of class Sentinel.

Recently, in PR #6639 @btw17 introduced the isSentinel type
predicate to improve the typing of Field.  Unfortunately, there
were some aspects of this change that were not very elegant:

- isSentinel was declared as a static method on Field (rather
  than on Sentinel itself).
- It only checks against the specific value SKIP_SETUP,
  rather than checking if the argument is instanceof Sentinel
  (though perhaps this is for efficiency?)

Additionally - as a result of the migration from ES6 to TS, and
predating PR #6639 - The signature for the Field constructor's
first argument was typed T|Sentinel, with subclass constructors
generally being <some type(s)>|Sentinel.

This creates a small problem when attempting to port Fields from
core to plugins, because Sentinel is not reexported by
core/utils.ts (and therefore not from core/blockly.ts either).

The latter problem could be solved simply by reexporting Sentinel,
or by having plugin constructors not accept SKIP_SETUP (though
this potentially makes them more difficult to subclass), but
neither is particularly desirable.

Instead, this PR proposes that we:

- Make Field.SKIP_SETUP a (unique) Symbol.
- Change the value argument to the Field constructor to accept
  T|typeof Field.SKIP_SETUP - where typeof Field.SKIP_SETUP is
  (like a literal type) a type that accepts just the single
  value SKIP_SETUP.
- Remove the Sentinel class and core/utils/sentinel.ts.

Not treating this as a breaking change:

- Removes Field.isSentinel - though this addition has not yet
  been published, so it can only break our own as-yet-unreleased
  code in samples.

- Changes the type of Field.SKIP_SETUP and the first argument
  of the Field constructor from Sentinel to typeof SKIP_SETUP
  (a unique Symbol) - but given that Sentinel has never been
  exported this should not break any actual external code.
2023-03-23 20:30:48 +00:00
Beka Westberg
01ecf547f4 fix: overwriting flyout def with dynamic categories (#6913)
* fix: overwriting flyout def with dynamic categories

* chore: revert playground testing

* fix: change createFlyoutInfo_ to be recursive
2023-03-22 15:25:47 -07:00
Beka Westberg
d897cdcf1d fix: remove forced rerender from mutator 2023-03-22 21:43:57 +00:00
Beka Westberg
a7d250cb78 fix: flyouts resizing for blocks (#6914)
* fix: flyouts resizing for blocks

* chore: fix node build

* chore: actually fix node
2023-03-21 15:27:04 -07:00
Beka Westberg
252b204adb fix: scrolling dropdown items into view (#6912)
* fix: scrolling dropdown items into view

* chore: lint
2023-03-21 10:00:40 -07:00
Aaron Dodson
cbb3829707 fix: Fix scrolling of menus on mobile. (#6911) 2023-03-20 15:27:51 -07:00
Beka Westberg
ed531ec313 chore: remove all namespace comments (#6903)
* chore: remove all namespace comments

* chore: fix lint
2023-03-20 09:43:58 -07:00
Neil Fraser
6f64d1801a fix: Don't clober event group when renaming vars (#6829)
* fix: Don't clober event group when renaming vars

Also audit all existing event group commands and tweak a few of them where I think there's a potential issue.
2023-03-17 12:09:51 -07:00
Beka Westberg
670f7da802 fix: dispose performance (#6894)
* fix: improve dispose performance

* chore: cleanup dispose functions

* chore: split dispose into dispose and disposeInternal

* chore: remove unnecessary node removal

* fix: remove unnecessary unbinding of event listeners

* fix: readd skipping event construction

* chore: work on fixing tests

* chore: fix remaining test failures

* chore: format

* chore: typo

* fix: first pass of PR comments

* chore: remove TODO
2023-03-16 15:28:25 -07:00
Beka Westberg
c2919c51bd fix: improve performance of connecting blocks (#6876)
* fix: early return from updateDisabled if it is noop

* chore: trigger connect and disconnect before hiding

* chore: remove disconnectInternal

* fix: skip setting parent when disconnecting before connecting

* chore: fixup docs

* chore: remove erroneous test

* fix: add delay to context menu callback.

Improve INP by allowing the browser to do a paint (closing the context
menu) before we trigger callbacks. This improves the user experience
for expensive callbacks (e.g. collapsing, or updating disabled).

* fix: rendering bug

When disconnecting the last block in the stack, the block would not be
rerendered correctly (the top-start corner would not be reshaped)

* fix: connecting bug

The order for applying connections was changed so that connections were
applied and then the insertion marker was hidden. This caused an error
because hiding the insertion marker expected there to be a child block
when there was not.

* chore: remove setParent param from public API

* chore: tsdoc
2023-03-16 13:40:33 -07:00
Christopher Allen
4efd2042f9 chore: Add required @license tag to any_aliases.ts (#6899)
Missing licence tag causes presubmit failure when updating
Blockly in third_party.
2023-03-16 17:15:51 +01:00
Neil Fraser
42fde0f81b chore: Reduce delta on ports to blockly-samples (#6886)
* Reduce usage of obsolete .keyCode property.
* Rename private properties/methods which violate eslint rules.
* Use arrays of bound events rather than individual properties.
* Improve typing info.
* Also fix O(n^2) recursive performance issue in theme's getComponentStyle function.
* And replace String(...) with '${...}' (smaller, faster).
* .toString() is considered harmful.
2023-03-15 13:28:57 -07:00
Beka Westberg
66fd055a83 fix: toString performance (#6896)
* fix: performance of reducing

* chore: remove AST from toString

* chore: format

* chore: fix build

* chore: readd comment
2023-03-15 13:12:36 -07:00
Aaron Dodson
17064a1c39 chore: Remove various IE hacks and workarounds (#6781)
* chore: Remove IE-specific hacks from flyout_base.ts.

* chore: Remove IE hacks from workspace_svg.ts.

* chore: Remove IE hacks from css.ts.

* chore: Remove IE hacks from xml.ts.

* chore: Remove IE hacks from grid.ts.

* chore: Remove errant logging from flyout_base.ts.

* chore: Remove obsolete comments about IE from bootstrap.js.

* chore: Remove reference to IE from README.

* chore: Clean up trailing spaces in bootstrap.js.
2023-03-14 11:26:38 -07:00
Beka Westberg
435b0b92ee chore: cleanup render management (#6883) 2023-03-13 09:27:21 -07:00
Beka Westberg
67dd6dfe00 fix: empty procedure arrays in serialization (#6872) 2023-03-13 08:55:27 -07:00
Beka Westberg
9236b4e207 fix: improve performance of modifying block shape (#6884) 2023-03-13 08:55:00 -07:00
Maribeth Bottorff
cdb1215d95 revert: "refactor: Remove block and workspace drag surfaces (#6758)" (#6888)
This reverts commit 332c0fd2f2.
2023-03-09 13:43:12 -08:00
Beka Westberg
c0934216f8 fix: creating duplicate params via renaming vars (#6885)
* feat: add IVariableHolder

* chore: reorganize variable prompts to early return

* fix: add retriggering prompt for conflicting params

* chore: add unit tests

* chore: fix build

* chore: reorganize checking for param conflicts

* fix: visibility

* chore: rename variable holder interface

* chore: fix typo

* chore: fix lint
2023-03-09 06:00:48 -08:00
Maribeth Bottorff
8173d139e1 feat: make renderer methods public or protected (#6887)
* feat: make renderering methods public or protected

* chore: formatting

* chore: recommend thrasos more strongly
2023-03-09 00:31:47 +00:00
Beka Westberg
5cae074431 fix: improve collapse / uncollapse performance (#6860)
* feat: enable render queueing for collapse-related things

* chore: delay bumping

* chore: fixup tests
2023-03-08 06:03:20 -08:00
Blake Thomas Williams
9e5bfc243e fix: export Field-related types from Blockly (#6877)
* chore: re-exported Field config types from Blockly

* mark `@internal` types, export field error, and add validator comments
2023-03-03 14:20:20 -08:00
Aaron Dodson
3a7ac3be1b fix: Don't repeatedly recreate the last marker block during a drag. (#6875)
* fix: Don't repeatedly recreate the last marker block during a drag.

* refactor: Reorganize insertion marker initialization and disposal.
2023-03-01 15:52:37 -08:00
Beka Westberg
bb6124a7c3 fix: updating connections in the db multiple times (#6859)
* fix: updating connections in the DB recursively

* chore: cleanup
2023-03-01 15:00:05 -08:00
Beka Westberg
f2b75fb877 feat: add basic render queueing (#6851)
* feat: add basic render queueing

* feat: change connecting and disconnecting to queue renders

* feat: delay bringToFront

* chore: format

* chore: fix build

* fix: stop updating connections when setting the parent.

This was causing erroneous block bumps because the connection locations
were changed before the blocks were actually rerendered.

* fix: connection highlight positioning
2023-03-01 10:29:01 -08:00
Aaron Dodson
8a44dff4e8 refactor: Remove more uses of AnyDuringMigration (#6863)
* refactor: Remove uses of AnyDuringMigration from xml.ts.

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

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

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

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

* refactor: Remove some uses of AnyDuringMigration from block.ts.

* refactor: Make safename construction more readable.

* fix: Use a default size for block comments.

* fix: Clarify test of shadow block disposal.

* fix: Update assert in workspace_svg_test to use isDeadOrDying().
2023-02-28 14:38:17 -08:00