scratch-blocks 2.0.0-spork.2 → 2.0.0-spork.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +0 -12
- package/package.json +4 -4
- package/src/{block_reporting.js → block_reporting.ts} +7 -5
- package/src/blocks/{colour.js → colour.ts} +6 -6
- package/src/blocks/{control.js → control.ts} +21 -54
- package/src/blocks/{data.js → data.ts} +134 -142
- package/src/blocks/{event.js → event.ts} +12 -33
- package/src/blocks/{looks.js → looks.ts} +24 -73
- package/src/blocks/{math.js → math.ts} +6 -11
- package/src/blocks/{matrix.js → matrix.ts} +2 -3
- package/src/blocks/{motion.js → motion.ts} +23 -70
- package/src/blocks/{note.js → note.ts} +2 -3
- package/src/blocks/{operators.js → operators.ts} +18 -55
- package/src/blocks/{procedures.js → procedures.ts} +418 -269
- package/src/blocks/{sensing.js → sensing.ts} +21 -61
- package/src/blocks/{sound.js → sound.ts} +9 -28
- package/src/blocks/{text.js → text.ts} +1 -2
- package/src/blocks/{vertical_extensions.js → vertical_extensions.ts} +63 -100
- package/src/checkable_continuous_flyout.ts +112 -0
- package/src/{checkbox_bubble.js → checkbox_bubble.ts} +40 -58
- package/src/{colours.js → colours.ts} +11 -4
- package/src/{constants.js → constants.ts} +13 -0
- package/src/{context_menu_items.js → context_menu_items.ts} +18 -12
- package/src/{css.js → css.ts} +13 -7
- package/src/{data_category.js → data_category.ts} +216 -150
- package/src/events/{events_block_comment_base.js → events_block_comment_base.ts} +23 -4
- package/src/events/{events_block_comment_change.js → events_block_comment_change.ts} +29 -5
- package/src/events/{events_block_comment_collapse.js → events_block_comment_collapse.ts} +24 -6
- package/src/events/{events_block_comment_create.js → events_block_comment_create.ts} +36 -10
- package/src/events/{events_block_comment_delete.js → events_block_comment_delete.ts} +6 -2
- package/src/events/{events_block_comment_move.js → events_block_comment_move.ts} +36 -6
- package/src/events/events_block_comment_resize.ts +88 -0
- package/src/events/events_block_drag_end.ts +49 -0
- package/src/events/events_block_drag_outside.ts +44 -0
- package/src/events/{events_scratch_variable_create.js → events_scratch_variable_create.ts} +28 -15
- package/src/fields/{field_colour_slider.js → field_colour_slider.ts} +117 -106
- package/src/fields/{field_matrix.js → field_matrix.ts} +189 -215
- package/src/fields/{field_note.js → field_note.ts} +227 -286
- package/src/fields/{field_textinput_removable.js → field_textinput_removable.ts} +17 -20
- package/src/fields/{field_variable_getter.js → field_variable_getter.ts} +28 -17
- package/src/fields/{field_vertical_separator.js → field_vertical_separator.ts} +14 -30
- package/src/fields/{field_angle.js → scratch_field_angle.ts} +124 -80
- package/src/fields/{field_dropdown.js → scratch_field_dropdown.ts} +9 -7
- package/src/fields/{field_number.js → scratch_field_number.ts} +60 -55
- package/src/fields/{field_variable.js → scratch_field_variable.ts} +46 -27
- package/src/{flyout_checkbox_icon.js → flyout_checkbox_icon.ts} +15 -19
- package/src/{glows.js → glows.ts} +29 -18
- package/src/index.ts +62 -63
- package/src/procedures.ts +462 -0
- package/src/recyclable_block_flyout_inflater.ts +51 -0
- package/src/renderer/{bowler_hat.js → bowler_hat.ts} +1 -1
- package/src/renderer/{constants.js → constants.ts} +26 -12
- package/src/renderer/{drawer.js → drawer.ts} +8 -3
- package/src/renderer/{path_object.js → path_object.ts} +2 -2
- package/src/renderer/{render_info.js → render_info.ts} +19 -7
- package/src/renderer/renderer.ts +76 -0
- package/src/{scratch_block_paster.js → scratch_block_paster.ts} +9 -7
- package/src/scratch_blocks_utils.ts +39 -0
- package/src/{scratch_comment_icon.js → scratch_comment_icon.ts} +43 -26
- package/src/scratch_connection_checker.ts +44 -0
- package/src/{scratch_continuous_category.js → scratch_continuous_category.ts} +20 -13
- package/src/scratch_continuous_toolbox.ts +70 -0
- package/src/{scratch_dragger.js → scratch_dragger.ts} +97 -28
- package/src/{scratch_variable_map.js → scratch_variable_map.ts} +4 -1
- package/src/scratch_variable_model.ts +30 -0
- package/src/{shadows.js → shadows.ts} +8 -4
- package/src/{status_indicator_label.js → status_indicator_label.ts} +24 -36
- package/src/{status_indicator_label_flyout_inflater.js → status_indicator_label_flyout_inflater.ts} +13 -9
- package/src/{variables.js → variables.ts} +153 -123
- package/tsconfig.json +5 -0
- package/src/categories.js +0 -15
- package/src/checkable_continuous_flyout.js +0 -138
- package/src/events/events_block_comment_resize.js +0 -52
- package/src/events/events_block_drag_end.js +0 -33
- package/src/events/events_block_drag_outside.js +0 -30
- package/src/procedures.js +0 -425
- package/src/recyclable_block_flyout_inflater.js +0 -194
- package/src/renderer/renderer.js +0 -74
- package/src/scratch_blocks_utils.js +0 -148
- package/src/scratch_connection_checker.js +0 -29
- package/src/scratch_continuous_toolbox.js +0 -78
- package/src/scratch_variable_model.js +0 -24
- /package/{continuous-toolbox.d.ts → types/continuous-toolbox.d.ts} +0 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
1
7
|
/**
|
|
2
8
|
* String representing the variable type of scalar variables.
|
|
3
9
|
* This string, for use in differentiating between types of variables,
|
|
@@ -32,6 +38,13 @@ export { LIST_VARIABLE_TYPE };
|
|
|
32
38
|
const PROCEDURES_DEFINITION_BLOCK_TYPE = "procedures_definition";
|
|
33
39
|
export { PROCEDURES_DEFINITION_BLOCK_TYPE };
|
|
34
40
|
|
|
41
|
+
/*
|
|
42
|
+
* The type of all procedure declaration blocks.
|
|
43
|
+
* @const {string}
|
|
44
|
+
*/
|
|
45
|
+
const PROCEDURES_DECLARATION_BLOCK_TYPE = "procedures_declaration";
|
|
46
|
+
export { PROCEDURES_DECLARATION_BLOCK_TYPE };
|
|
47
|
+
|
|
35
48
|
/**
|
|
36
49
|
* The type of all procedure prototype blocks.
|
|
37
50
|
* @const {string}
|
|
@@ -11,19 +11,19 @@ import * as Blockly from "blockly/core";
|
|
|
11
11
|
*/
|
|
12
12
|
export function registerDeleteBlock() {
|
|
13
13
|
const deleteOption = {
|
|
14
|
-
displayText(scope) {
|
|
14
|
+
displayText(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
15
15
|
const descendantCount = getDeletableBlocksInStack(scope.block).length;
|
|
16
16
|
return descendantCount === 1
|
|
17
17
|
? Blockly.Msg["DELETE_BLOCK"]
|
|
18
18
|
: Blockly.Msg["DELETE_X_BLOCKS"].replace("%1", `${descendantCount}`);
|
|
19
19
|
},
|
|
20
|
-
preconditionFn(scope) {
|
|
20
|
+
preconditionFn(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
21
21
|
if (!scope.block.isInFlyout && scope.block.isDeletable()) {
|
|
22
22
|
return "enabled";
|
|
23
23
|
}
|
|
24
24
|
return "hidden";
|
|
25
25
|
},
|
|
26
|
-
callback(scope) {
|
|
26
|
+
callback(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
27
27
|
Blockly.Events.setGroup(true);
|
|
28
28
|
scope.block.dispose(true, true);
|
|
29
29
|
Blockly.Events.setGroup(false);
|
|
@@ -35,7 +35,9 @@ export function registerDeleteBlock() {
|
|
|
35
35
|
Blockly.ContextMenuRegistry.registry.register(deleteOption);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function getDeletableBlocksInStack(
|
|
38
|
+
function getDeletableBlocksInStack(
|
|
39
|
+
block: Blockly.BlockSvg
|
|
40
|
+
): Blockly.BlockSvg[] {
|
|
39
41
|
let descendants = block.getDescendants(false).filter(isDeletable);
|
|
40
42
|
if (block.getNextBlock()) {
|
|
41
43
|
// Next blocks are not deleted.
|
|
@@ -48,7 +50,7 @@ function getDeletableBlocksInStack(block) {
|
|
|
48
50
|
return descendants;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
function isDeletable(block) {
|
|
53
|
+
function isDeletable(block: Blockly.BlockSvg): boolean {
|
|
52
54
|
return block.isDeletable() && !block.isShadow();
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -57,7 +59,7 @@ function isDeletable(block) {
|
|
|
57
59
|
*/
|
|
58
60
|
export function registerDeleteAll() {
|
|
59
61
|
const deleteOption = {
|
|
60
|
-
displayText(scope) {
|
|
62
|
+
displayText(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
61
63
|
if (!scope.workspace) {
|
|
62
64
|
return "";
|
|
63
65
|
}
|
|
@@ -72,7 +74,7 @@ export function registerDeleteAll() {
|
|
|
72
74
|
`${deletableBlocksLength}`
|
|
73
75
|
);
|
|
74
76
|
},
|
|
75
|
-
preconditionFn(scope) {
|
|
77
|
+
preconditionFn(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
76
78
|
if (!scope.workspace) {
|
|
77
79
|
return "disabled";
|
|
78
80
|
}
|
|
@@ -81,7 +83,7 @@ export function registerDeleteAll() {
|
|
|
81
83
|
).length;
|
|
82
84
|
return deletableBlocksLength > 0 ? "enabled" : "disabled";
|
|
83
85
|
},
|
|
84
|
-
callback(scope) {
|
|
86
|
+
callback(scope: Blockly.ContextMenuRegistry.Scope) {
|
|
85
87
|
if (!scope.workspace) {
|
|
86
88
|
return;
|
|
87
89
|
}
|
|
@@ -95,7 +97,7 @@ export function registerDeleteAll() {
|
|
|
95
97
|
"%1",
|
|
96
98
|
String(deletableBlocks.length)
|
|
97
99
|
),
|
|
98
|
-
function (ok) {
|
|
100
|
+
function (ok: boolean) {
|
|
99
101
|
if (ok) {
|
|
100
102
|
deleteNext(deletableBlocks);
|
|
101
103
|
}
|
|
@@ -116,10 +118,14 @@ export function registerDeleteAll() {
|
|
|
116
118
|
* @param workspace to delete all blocks from.
|
|
117
119
|
* @returns list of blocks to delete.
|
|
118
120
|
*/
|
|
119
|
-
function getDeletableBlocksInWorkspace(
|
|
121
|
+
function getDeletableBlocksInWorkspace(
|
|
122
|
+
workspace: Blockly.WorkspaceSvg
|
|
123
|
+
): Blockly.BlockSvg[] {
|
|
120
124
|
return workspace
|
|
121
125
|
.getTopBlocks(true)
|
|
122
|
-
.flatMap((b) =>
|
|
126
|
+
.flatMap((b: Blockly.BlockSvg) =>
|
|
127
|
+
b.getDescendants(false).filter(isDeletable)
|
|
128
|
+
);
|
|
123
129
|
}
|
|
124
130
|
|
|
125
131
|
/**
|
|
@@ -129,7 +135,7 @@ function getDeletableBlocksInWorkspace(workspace) {
|
|
|
129
135
|
* @param eventGroup Event group ID with which all delete events should be
|
|
130
136
|
* associated. If not specified, create a new group.
|
|
131
137
|
*/
|
|
132
|
-
function deleteNext(deleteList, eventGroup) {
|
|
138
|
+
function deleteNext(deleteList: Blockly.BlockSvg[], eventGroup?: string) {
|
|
133
139
|
const DELAY = 10;
|
|
134
140
|
if (eventGroup) {
|
|
135
141
|
Blockly.Events.setGroup(eventGroup);
|
package/src/{css.js → css.ts}
RENAMED
|
@@ -751,8 +751,9 @@ const styles = `
|
|
|
751
751
|
}
|
|
752
752
|
|
|
753
753
|
/* Category tree in Toolbox. */
|
|
754
|
-
.
|
|
754
|
+
.blocklyToolbox {
|
|
755
755
|
background-color: var(--colour-toolbox);
|
|
756
|
+
border-right: 1px solid #ddd;
|
|
756
757
|
color: var(--colour-toolboxText);
|
|
757
758
|
overflow-x: visible;
|
|
758
759
|
overflow-y: auto;
|
|
@@ -763,6 +764,11 @@ const styles = `
|
|
|
763
764
|
padding: 0;
|
|
764
765
|
}
|
|
765
766
|
|
|
767
|
+
.blocklyToolbox[dir="RTL"] {
|
|
768
|
+
border-right: none;
|
|
769
|
+
border-left: 1px solid #ddd;
|
|
770
|
+
}
|
|
771
|
+
|
|
766
772
|
.blocklyTreeRoot {
|
|
767
773
|
padding: 4px 0;
|
|
768
774
|
}
|
|
@@ -771,7 +777,7 @@ const styles = `
|
|
|
771
777
|
outline: none;
|
|
772
778
|
}
|
|
773
779
|
|
|
774
|
-
.
|
|
780
|
+
.blocklyToolbox .blocklyToolboxCategory {
|
|
775
781
|
line-height: 22px;
|
|
776
782
|
margin: 0;
|
|
777
783
|
padding: 0.375rem 0px;
|
|
@@ -789,11 +795,11 @@ const styles = `
|
|
|
789
795
|
margin: 1px 0 8px 5px;
|
|
790
796
|
}
|
|
791
797
|
|
|
792
|
-
.
|
|
793
|
-
margin-left:
|
|
798
|
+
.blocklyToolbox[dir="RTL"] .blocklyToolboxCategory {
|
|
799
|
+
margin-left: 0px;
|
|
794
800
|
}
|
|
795
801
|
|
|
796
|
-
.
|
|
802
|
+
.blocklyToolboxCategory:hover {
|
|
797
803
|
color: var(--colour-toolboxHover);
|
|
798
804
|
}
|
|
799
805
|
|
|
@@ -844,7 +850,7 @@ const styles = `
|
|
|
844
850
|
background-position: -48px -1px;
|
|
845
851
|
}
|
|
846
852
|
|
|
847
|
-
.
|
|
853
|
+
.blocklyToolboxCategoryLabel {
|
|
848
854
|
cursor: default;
|
|
849
855
|
font-family: "Helvetica Neue", Helvetica, sans-serif;
|
|
850
856
|
font-size: .65rem;
|
|
@@ -855,7 +861,7 @@ const styles = `
|
|
|
855
861
|
text-wrap: wrap;
|
|
856
862
|
}
|
|
857
863
|
|
|
858
|
-
.
|
|
864
|
+
.blocklyToolboxSelected .blocklyToolboxCategoryLabel {
|
|
859
865
|
color: inherit;
|
|
860
866
|
}
|
|
861
867
|
|