Commit Graph

4743 Commits

Author SHA1 Message Date
Rachel Fenichel
0a6596ce75 feat: mark some marker_svg properties protected instead of private (#8558) 2024-09-03 09:17:42 -07:00
Chang Min Bark
4d0fd5db79 fix(comments): added workspace comments and comment drag strategy isDeadOrDying() checks (#8532)
* fix: added id to rendered ws comments; made getCommentById public; added blocklyDraggable class to ws comments

* fix: added workspace comments and comment drag strategy isDeadOrDying checks

* chore: removed .idea files

* chore: formatted with prettier
2024-09-03 17:12:40 +01:00
Christopher Allen
724828f689 refactor: Use arrow functions when calling Array.prototype.filter (#8557) 2024-08-30 17:23:23 +01:00
Christopher Allen
a7afda8343 fix(events): Simplify filter function, add new enqueueEvent function (#8539)
* docs(events): JSDoc improvments

* fix(filter): Introduce enqueueEvent; don't reorder in filter

  Remove the broken BlockChange event reordering code from filter.
  Instead, do necessary event reordering (correctly, this time)
  in a new enqueueEvent function used by fireInternal.

* chore(events): Deprecate forward parameter of filter

  Since we don't filter in undo any more, and filtering in reverse
  order causes problems, prepare to remove this opportunity for
  error.

* fix(events): Only merge adjacent events

  Simplify filter by having it consider only adjacent events in the
  queue for merging.

  Previously any events in the queue could potentially be merged if
  they were of suitable (typically identical) .type, even if other
  events had occurred between them (with the sole exception of
  BlockMove events, which would only be merged with adjacent
  events).  This could potentially result in replay failures during
  undo/redo/mirroring, though it is unknown whether any such
  problems occurred in practice.

* refactor(events): Tweaks

  - Use for…of loop where appropriate.
  - Make filter reason-merging code more concise.
  - Use arrow functions when calling Array.prototype.filter.

* chore(events): Fix typos for PR #8539.
2024-08-29 17:41:54 +01:00
John Nesky
095f29e274 fix: Detect if deleting shadow block affects selection highlight (#8533)
* fix: Detect if deleting shadow block affects selection highlight

* Use contains instead of descendsFrom for html consistency.

* Added tests.

* Removing and manually inlining new contains function.
2024-08-26 12:22:37 -07:00
Ben Henning
0413021b7c Auto-fix formatting issues to address CI failure. 2024-08-21 21:02:07 +00:00
Aaron Dodson
ba0762348d fix: display the correct variable reference count when deleting a variable. (#8549) 2024-08-21 13:57:32 -07:00
Ben Henning
ca42a4b4fd Merge branch 'develop' into ensure-immovable-blocks-are-considered-during-workspace-tidying 2024-08-21 17:44:37 +00:00
Ben Henning
3a3e83fe44 Fix workspace clean up not considering immovables.
At a high-level, this change ensures that cleaning up a workspace
doesn't move blocks in a way that overlaps with immovable blocks. It
also adds missing testing coverage for both Rect (used for bounding box
calculations during workspace cleanup) and WorkspaceSvg (for verifying
the updated clean up functionality).

This also renames the clean up function to be 'tidyUp' since that better
suits what's happening (as opposed to other clean-up routines which are
actually deinitializing objects).
2024-08-21 17:41:38 +00:00
Arun Chandran
d6125d4fb9 fix!: Remove the blocklyMenuItemHighlight CSS class and use the hover (#8536)
* fix!: Remove the blocklyMenuItemHighlight CSS class and use the hover

* fix: Remove setHighlighted method in menuitem

* fix: Remove blocklymenuitemhighlight css class
2024-08-21 09:01:07 -07:00
Christopher Allen
032b5ed9ea refactor(events): Introduce and use event type predicates (#8538)
* refactor(events): Introduce type predicates for event classes

  Introduce predicates for testing Abstract event subclasses based on
  their .type properties.  These are useful because there are places
  where it is not possible to use instanceof <ClassConstructor> tests
  for type narrowing due to load ordering issues that would be caused
  by the need to import (rather than just import type) the class
  constructors in question.

* refactor(events): Use event type predicates

  Simplify several sections of code by using type predicates for
  type narrowing and thereby avoiding the need for explicit casts.

* chore(events): Fix copyright date of recently-added files

* chore: Remove unused import
2024-08-20 19:50:29 +01:00
Christopher Allen
bde216d120 refactor(events): Don't filter events before undo (#8537)
Use of the filter function in Workspace.prototype.undo has caused
problems with repeated undo/redo (see issue #7026), the
originally-chosen fix for which was the addition (in PR #7069) of
code to fireNow to post-filter the .undoStack_ and .redoStack_ of
any workspace that had just been involved in dispatching events.

This apparently resolved the issue but added considerable
additional complexity and made it difficult to reason about how
events are processed for undo/redo.

Instead, since this filtering typically does nothing (at least
nothing desirable), simply don't re-filter events on the undo
stack before replaying them.
2024-08-20 08:39:37 +01:00
Christopher Allen
7ccdcc5cef refactor(events): introduce EventType enum in separate module (#8530)
* refactor(events): Use "export ... from" where applicable

* refactor(events): Introduce EventType enum

  Introduce an enum for the event .type values.  We can't actually
  use it as the type of the .type property on Abstract events,
  because we want to allow developers to add their own custom
  event types inheriting from this type, but at least this way we
  can be reasonably sure that all of our own event subclasses have
  distinct .type values—plus consistent use of enum syntax
  (EventType.TYPE_NAME) is probably good for readability overall.

  Put it in a separate module from the rest of events/utils.ts
  because it would be helpful if event utils could use

      event instanceof SomeEventType

  for type narrowing but but at the moment most events are in
  modules that depend on events/utils.ts for their .type
  constant, and although circular ESM dependencies should work
  in principle there are various restrictions and this
  particular circularity causes issues at the moment.

  A few of the event classes also depend on utils.ts for fire()
  or other functions, which will be harder to deal with, but at
  least this commit is win in terms of reducing the complexity
  of our dependencies, making most of the Abstract event subclass
  module dependent on type.ts, which has no imports, rather than
  on utils.ts which has multiple imports.
2024-08-20 08:36:33 +01:00
Aaron Dodson
14d119b204 fix: improve prompting when deleting variables (#8529)
* fix: improve variable deletion behaviors.

* fix: don't prompt about deletion of only 1 variable block when triggered programmatically.

* fix: include the triggering block in the count of referencing blocks

* fix: only count the triggering block as a referencing block if it's not in the flyout
2024-08-19 15:47:00 -07:00
John Nesky
17e4f1c966 Fix: let workspace comment have delete cursor over trash. (#8477) 2024-08-15 11:41:22 -07:00
Christopher Allen
ce22f42868 chore: Organise imports (#8527)
* chore(deps): Add pretter-plugin-organize-imports

* chore: Remove insignificant blank lines in import sections

  Since prettier-plugin-organize-imports sorts imports within
  sections separated by blank lines, but preserves the section
  divisions, remove any blank lines that are not dividing imports
  into meaningful sections.

  Do not remove blank lines separating side-effect-only imports
  from main imports.

* chore: Remove unneded eslint-disable directives

* chore: Organise imports
2024-08-15 03:16:14 +01:00
dependabot[bot]
f57ef73aaf chore(deps): bump @typescript-eslint/eslint-plugin from 7.17.0 to 8.0.1 (#8479)
* chore(deps): bump @typescript-eslint/eslint-plugin from 7.17.0 to 8.0.1

Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.17.0 to 8.0.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.0.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: lint plugin versions

* chore: fix linting

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Beka Westberg <bwestberg@google.com>
2024-08-14 09:10:34 -07:00
Shreshtha Sharma
64fd9ad89a feat: added blocklyHighlighted CSS class to highlighted block's root… (#8407)
* fix: added 'blocklyHighlighted' CSS class to highlighted block's root svg

* fix: added 'blocklyHighlighted' CSS class to highlighted block's root svg

* fix: added 'blocklyHighlighted' CSS class to highlighted block's root svg

* fix: added 'blocklyHighlighted' CSS class to highlighted block's root svg

* fix: added 'blocklyHighlighted' CSS class to highlighted block's root svg
2024-08-14 09:06:27 -07:00
Jeremiah Saunders
731fb40faa feat: implement WorkspaceSvg class manipulation (#8473)
* Implement addClass and removeClass functions

* feat: implement `WorkspaceSvg` class manipulation

* Update core/workspace_svg.ts

* Update core/workspace_svg.ts
2024-08-13 11:14:05 -07:00
Adityajaiswal03
59fab944f4 feat: change blocklyEditableText to blocklyEditableField and blocklyNonEditableText to blocklyNonEditableField BREAKING CHANGE: The blocklyEditableText and blocklyNonEditableText identifiers have been renamed to blocklyEditableField and blocklyNonEditableField respectively. This change may require updates to any existing code that references the old identifiers. (#8475) 2024-08-12 13:10:38 -07:00
AbhinavKRNarayan
6b3f9a6723 fix(touch): prevent infinite loop on multi-touch drag (#8470)
* Change in gesture.ts

* prettier
2024-08-08 15:17:34 -07:00
Jeremiah Saunders
23e901120b feat: expose bringToFront() method (#8472)
* Remove internal from bringToFront JSDoc

* Add a note about the cost of this method

* Remove unnecessary colon
2024-08-07 09:07:48 -07:00
aishwaryavenkatesan
68dda11623 fix!: deleted styles without associated classes from css.ts, issue #8285 (#8465) 2024-08-07 09:07:34 -07:00
Shreshtha Sharma
9374c028d4 feat: added block's style as a CSS class to block's root SVG (#8436)
* fix: added block's style as a CSS class to block's root SVG

* fix: added block's style as a CSS class to block's root SVG

* fix: added block's style as a CSS class to block's root SVG
2024-08-06 09:35:35 -07:00
omwagh28
f10c3b0ee8 fix!: Renamed the blocklyTreeSelected CSS class to blocklyToolboxSelected https://github.com/google/blockly/issues/8351 (#8459) 2024-08-06 09:26:05 -07:00
Jeremiah Saunders
f020b54fd0 fix: bring comments and bubbles to the front on click (#8451)
* Bring comment to the block layer when clicked

* Bring bubbles to front when clicked
2024-08-02 13:09:30 -07:00
Aaron Dodson
6887940e22 feat: add a method for subclasses of FieldVariable to get the default type. (#8453) 2024-08-02 10:57:15 -07:00
Aayush Khopade
8a1b01568e feat: Add a blocklyNumberField CSS class to number fields (#8414)
* feat: Add a blocklyNumberField CSS class to number fields https://github.com/google/blockly/issues/8313

* feat: add 'blocklyNumberField' CSS class to FieldNumber Fixes https://github.com/google/blockly/issues/8313
2024-07-31 15:34:14 -07:00
UtkershBasnet
17db6039b5 fix!: Rename blocklyTreeIconOpen to blocklyToolboxCategoryIconOpen (#8440) 2024-07-31 15:33:25 -07:00
surajguduru
6393ab39ce feat: add blocklyLabelField CSS class to label fields (#8423) 2024-07-30 18:26:17 -07:00
Tejas Ghatule
203e422977 feat: add the block's type as a CSS class to the block's root SVG (#8428)
* feat: Added the block's type as a CSS class to the block's root SVG https://github.com/google/blockly/issues/8268

* fix: Added the block type as a CSS class to the blocks root SVG https://github.com/google/blockly/issues/8268
2024-07-30 18:12:48 -07:00
Shreshtha Sharma
9c88970d46 feat: added blocklyNotDetetable class to block_svg (#8406)
* feat: added blocklynotdetetable class to block_svg

* feat: added blocklynotdetetable class to block_svg
2024-07-31 00:50:38 +01:00
dakshkanaujia
dc1f276759 fix!: Redundant blockly non selectable #8328 (#8433)
* Remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes

* Removed .gitpod file

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes https://github.com/google/blockly/issues/8328

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes #8328

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes #8328

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes #8328

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes #8328

* fix: remove redundant blocklyNonSelectable class and integrate non-selectability into existing classes
2024-07-30 08:24:15 -07:00
Bhargav
4b95cb77af feat: Added blocklyImageField CSS class to image fields https://github.com/google/blockly/issues/8314 (#8439) 2024-07-29 19:31:37 -07:00
Aaron Dodson
82c7aad4e7 feat: Add a VarTypeChange event. (#8402)
* feat: Add a VarTypeChange event.

* chore: Update copyright date.

* refactor: Inline fields in the constructor.
2024-07-29 12:00:52 -07:00
John Nesky
e2310a4fed fix: Codify component weights with toolbox in front of flyouts. (#8432) 2024-07-29 10:30:29 -07:00
Skye
af0a724b3e fix: use :focus pseudo class instead of blocklyFocused (#8360)
* bug: removed blocklyFocused from menu.ts and dropdown.ts, changed css style to :focus

* removed blocklyFocused from menu.ts

* resubmit

* core css removed blocklyFocused

* fix core css

* menu file import cleanup, linting error
2024-07-26 18:16:22 -07:00
ℍ𝕠𝕝𝕝𝕠𝕨 𝕄𝕒𝕟
504de6a98c fix: drag strategy only clear group id set by us (#8355)
Add a condition check so that we don't unset
the group ID that is not set by us. Otherwise the
multi-select plugin undo/redo will be broken (apply
individually instead of all together)

Signed-off-by: Hollow Man <hollowman@opensuse.org>
2024-07-25 22:09:10 +01:00
Aaron Dodson
5d825f0a60 chore: Removed @internal annotation from public Field methods. (#8426)
* chore: Removed @internal annotation from public Field methods.

* chore: make forceRerender non-internal.
2024-07-25 10:07:48 -07:00
Christopher Allen
ebb56b2ce8 docs(blocks): block.ts and blocks/* JSDoc / formatting / etc. cleanup (#8431)
* docs(block): Improve documentation for well-known block methods

  Improve the JSDocs for the declarations of well-known block
  methods:

  - getDeveloperVariables
  - compose
  - decompose
  - saveConnections

* docs(blocks): Improve block comments

  Fix JSDoc formatting in both core/block.ts and blocks/*, as well as
  making various other minor improvments.

* chore(blocks): Remove one unexported const
2024-07-25 17:25:24 +01:00
dianaprahoveanu23
2619fb803c feat: Add a blocklyNotEditable CSS class to the block's root SVG (#8391)
* feat: added blockyNotEditable CSS class to the block's root SVG

* Run linter to fix code style issues
2024-07-23 08:33:59 -07:00
Aaron Dodson
91892ac303 refactor: deprecate and clean up variable-related methods. (#8415)
* refactor: deprecate and clean up variable-related methods.

* chore: Add deprecation JSDoc.
2024-07-22 17:13:20 -07:00
Shreyans Pathak
fb82c9c9bb feat: add blocklyMiniWorkspaceBubble css class (#8390) 2024-07-22 16:09:10 -07:00
Chaitanya Yeole
76eebc2f24 feat: Add a blocklyBlock CSS class to the block's root SVG (#8397) 2024-07-22 16:05:19 -07:00
Gabriel Fleury
e29d7abfdb fix!: Rename editing CSS class to blocklyEditing (#8287) (#8301)
* chore!: Rename editing CSS class to blocklyEditing (#8287)

* further changes
2024-07-22 15:38:40 -07:00
Gabriel Fleury
348313a1b6 feat: Add a blocklyCollapsed CSS class to collapsed blocks' root SVG (#8264) (#8308)
* feat: Add a blocklyCollapsed CSS class to collapsed blocks' root SVG (#8264)

* format
2024-07-22 15:14:45 -07:00
Gabriel Fleury
58abf6ef89 fix: Remove references to getFastTextWidth (#8277) (#8307)
* feat: Remove references to getFastTextWidth (#8277)

* format
2024-07-22 15:14:17 -07:00
Aaron Dodson
26e6d80e15 refactor: clean up VariableModel. (#8416) 2024-07-22 10:51:56 -07:00
John Nesky
40c6d9c490 fix: Enable blocks if user can't manually enable them. (#8354)
* fix: Enable blocks if user can't manually enable them.

* Only change the affected test method.
2024-07-22 09:21:51 -07:00
Aaron Dodson
21c0a7d999 refactor!: Use IVariableMap instead of VariableMap (#8401)
* refactor: use IVariableMap in place of VariableMap.

* refactor!: move variable deletion prompting out of VariableMap.

* chore: Remove unused imports.
2024-07-22 09:17:40 -07:00