scratch-blocks 2.0.2 → 2.0.3
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/commitlint.config.js +2 -2
- package/dist/main.mjs +1 -2
- package/dist/types/msg/scratch_msgs.d.ts.map +1 -1
- package/dist/types/src/block_reporting.d.ts.map +1 -1
- package/dist/types/src/blocks/colour.d.ts +0 -19
- package/dist/types/src/blocks/colour.d.ts.map +1 -1
- package/dist/types/src/blocks/control.d.ts +0 -19
- package/dist/types/src/blocks/control.d.ts.map +1 -1
- package/dist/types/src/blocks/data.d.ts +0 -19
- package/dist/types/src/blocks/data.d.ts.map +1 -1
- package/dist/types/src/blocks/event.d.ts +0 -19
- package/dist/types/src/blocks/event.d.ts.map +1 -1
- package/dist/types/src/blocks/looks.d.ts +0 -19
- package/dist/types/src/blocks/looks.d.ts.map +1 -1
- package/dist/types/src/blocks/math.d.ts +0 -19
- package/dist/types/src/blocks/math.d.ts.map +1 -1
- package/dist/types/src/blocks/matrix.d.ts +0 -19
- package/dist/types/src/blocks/matrix.d.ts.map +1 -1
- package/dist/types/src/blocks/motion.d.ts +0 -19
- package/dist/types/src/blocks/motion.d.ts.map +1 -1
- package/dist/types/src/blocks/note.d.ts +0 -19
- package/dist/types/src/blocks/note.d.ts.map +1 -1
- package/dist/types/src/blocks/operators.d.ts +0 -19
- package/dist/types/src/blocks/operators.d.ts.map +1 -1
- package/dist/types/src/blocks/procedures.d.ts +6 -9
- package/dist/types/src/blocks/procedures.d.ts.map +1 -1
- package/dist/types/src/blocks/sensing.d.ts +0 -19
- package/dist/types/src/blocks/sensing.d.ts.map +1 -1
- package/dist/types/src/blocks/sound.d.ts +0 -19
- package/dist/types/src/blocks/sound.d.ts.map +1 -1
- package/dist/types/src/blocks/text.d.ts +0 -19
- package/dist/types/src/blocks/text.d.ts.map +1 -1
- package/dist/types/src/blocks/vertical_extensions.d.ts +0 -19
- package/dist/types/src/blocks/vertical_extensions.d.ts.map +1 -1
- package/dist/types/src/checkable_continuous_flyout.d.ts +2 -7
- package/dist/types/src/checkable_continuous_flyout.d.ts.map +1 -1
- package/dist/types/src/checkbox_bubble.d.ts +13 -12
- package/dist/types/src/checkbox_bubble.d.ts.map +1 -1
- package/dist/types/src/colours.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +0 -7
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/context_menu_items.d.ts +0 -5
- package/dist/types/src/context_menu_items.d.ts.map +1 -1
- package/dist/types/src/data_category.d.ts +2 -4
- package/dist/types/src/data_category.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_base.d.ts +2 -3
- package/dist/types/src/events/events_block_comment_base.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_change.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_change.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_collapse.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_collapse.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_create.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_create.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_delete.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_delete.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_move.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_move.d.ts.map +1 -1
- package/dist/types/src/events/events_block_comment_resize.d.ts +0 -5
- package/dist/types/src/events/events_block_comment_resize.d.ts.map +1 -1
- package/dist/types/src/events/events_block_drag_end.d.ts +1 -2
- package/dist/types/src/events/events_block_drag_end.d.ts.map +1 -1
- package/dist/types/src/events/events_block_drag_outside.d.ts +1 -2
- package/dist/types/src/events/events_block_drag_outside.d.ts.map +1 -1
- package/dist/types/src/events/events_scratch_variable_create.d.ts +0 -5
- package/dist/types/src/events/events_scratch_variable_create.d.ts.map +1 -1
- package/dist/types/src/fields/field_colour_slider.d.ts +3 -27
- package/dist/types/src/fields/field_colour_slider.d.ts.map +1 -1
- package/dist/types/src/fields/field_matrix.d.ts +0 -19
- package/dist/types/src/fields/field_matrix.d.ts.map +1 -1
- package/dist/types/src/fields/field_note.d.ts +8 -23
- package/dist/types/src/fields/field_note.d.ts.map +1 -1
- package/dist/types/src/fields/field_textinput_removable.d.ts +2 -4
- package/dist/types/src/fields/field_textinput_removable.d.ts.map +1 -1
- package/dist/types/src/fields/field_variable_getter.d.ts +0 -19
- package/dist/types/src/fields/field_variable_getter.d.ts.map +1 -1
- package/dist/types/src/fields/field_vertical_separator.d.ts +0 -19
- package/dist/types/src/fields/field_vertical_separator.d.ts.map +1 -1
- package/dist/types/src/fields/scratch_field_angle.d.ts +0 -19
- package/dist/types/src/fields/scratch_field_angle.d.ts.map +1 -1
- package/dist/types/src/fields/scratch_field_dropdown.d.ts +0 -5
- package/dist/types/src/fields/scratch_field_dropdown.d.ts.map +1 -1
- package/dist/types/src/fields/scratch_field_number.d.ts +0 -19
- package/dist/types/src/fields/scratch_field_number.d.ts.map +1 -1
- package/dist/types/src/fields/scratch_field_variable.d.ts +4 -7
- package/dist/types/src/fields/scratch_field_variable.d.ts.map +1 -1
- package/dist/types/src/flyout_checkbox_icon.d.ts +2 -3
- package/dist/types/src/flyout_checkbox_icon.d.ts.map +1 -1
- package/dist/types/src/glows.d.ts +1 -3
- package/dist/types/src/glows.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +50 -51
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/procedures.d.ts +6 -8
- package/dist/types/src/procedures.d.ts.map +1 -1
- package/dist/types/src/recyclable_block_flyout_inflater.d.ts +3 -5
- package/dist/types/src/recyclable_block_flyout_inflater.d.ts.map +1 -1
- package/dist/types/src/renderer/bowler_hat.d.ts +2 -3
- package/dist/types/src/renderer/bowler_hat.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/cat_face.d.ts +6 -5
- package/dist/types/src/renderer/cat/cat_face.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/constants.d.ts +2 -2
- package/dist/types/src/renderer/cat/constants.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/drawer.d.ts +3 -4
- package/dist/types/src/renderer/cat/drawer.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/path_object.d.ts +2 -3
- package/dist/types/src/renderer/cat/path_object.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/render_info.d.ts +3 -4
- package/dist/types/src/renderer/cat/render_info.d.ts.map +1 -1
- package/dist/types/src/renderer/cat/renderer.d.ts +6 -7
- package/dist/types/src/renderer/cat/renderer.d.ts.map +1 -1
- package/dist/types/src/renderer/constants.d.ts +4 -4
- package/dist/types/src/renderer/constants.d.ts.map +1 -1
- package/dist/types/src/renderer/drawer.d.ts +5 -4
- package/dist/types/src/renderer/drawer.d.ts.map +1 -1
- package/dist/types/src/renderer/path_object.d.ts +1 -3
- package/dist/types/src/renderer/path_object.d.ts.map +1 -1
- package/dist/types/src/renderer/render_info.d.ts +3 -4
- package/dist/types/src/renderer/render_info.d.ts.map +1 -1
- package/dist/types/src/renderer/renderer.d.ts +8 -15
- package/dist/types/src/renderer/renderer.d.ts.map +1 -1
- package/dist/types/src/scratch_block_paster.d.ts +0 -5
- package/dist/types/src/scratch_block_paster.d.ts.map +1 -1
- package/dist/types/src/scratch_blocks_utils.d.ts +0 -20
- package/dist/types/src/scratch_blocks_utils.d.ts.map +1 -1
- package/dist/types/src/scratch_comment_bubble.d.ts +1 -4
- package/dist/types/src/scratch_comment_bubble.d.ts.map +1 -1
- package/dist/types/src/scratch_comment_icon.d.ts +2 -3
- package/dist/types/src/scratch_comment_icon.d.ts.map +1 -1
- package/dist/types/src/scratch_connection_checker.d.ts +0 -5
- package/dist/types/src/scratch_connection_checker.d.ts.map +1 -1
- package/dist/types/src/scratch_continuous_category.d.ts +5 -5
- package/dist/types/src/scratch_continuous_category.d.ts.map +1 -1
- package/dist/types/src/scratch_continuous_toolbox.d.ts +3 -6
- package/dist/types/src/scratch_continuous_toolbox.d.ts.map +1 -1
- package/dist/types/src/scratch_dragger.d.ts +1 -10
- package/dist/types/src/scratch_dragger.d.ts.map +1 -1
- package/dist/types/src/scratch_insertion_marker_previewer.d.ts +0 -5
- package/dist/types/src/scratch_insertion_marker_previewer.d.ts.map +1 -1
- package/dist/types/src/scratch_variable_map.d.ts +0 -5
- package/dist/types/src/scratch_variable_map.d.ts.map +1 -1
- package/dist/types/src/scratch_variable_model.d.ts +1 -2
- package/dist/types/src/scratch_variable_model.d.ts.map +1 -1
- package/dist/types/src/scratch_zoom_controls.d.ts +4 -6
- package/dist/types/src/scratch_zoom_controls.d.ts.map +1 -1
- package/dist/types/src/shadows.d.ts +2 -2
- package/dist/types/src/shadows.d.ts.map +1 -1
- package/dist/types/src/status_indicator_label.d.ts +4 -6
- package/dist/types/src/status_indicator_label.d.ts.map +1 -1
- package/dist/types/src/status_indicator_label_flyout_inflater.d.ts +1 -6
- package/dist/types/src/status_indicator_label_flyout_inflater.d.ts.map +1 -1
- package/dist/types/src/variables.d.ts +4 -8
- package/dist/types/src/variables.d.ts.map +1 -1
- package/dist/types/src/xml.d.ts +2 -3
- package/dist/types/src/xml.d.ts.map +1 -1
- package/dist/types/tests/jsunit/block_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/connection_db_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/connection_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/event_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/extensions_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/field_number_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/field_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/field_variable_getter_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/field_variable_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/gesture_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/input_test.d.ts +1 -0
- package/dist/types/tests/jsunit/input_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/json_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/names_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/procedure_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/scratch_block_comment_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/svg_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/test_utilities.d.ts.map +1 -1
- package/dist/types/tests/jsunit/utils_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/variable_map_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/variable_model_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/widget_div_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/workspace_comment_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/workspace_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/workspace_undo_redo_test.d.ts.map +1 -1
- package/dist/types/tests/jsunit/xml_test.d.ts.map +1 -1
- package/dist/types/tests/workspace_svg/workspace_svg_test.d.ts.map +1 -1
- package/eslint.config.mjs +69 -0
- package/i18n/create_scratch_msgs.js +44 -45
- package/i18n/js_to_json.js +40 -32
- package/i18n/json_to_js.js +37 -37
- package/i18n/sync_tx_translations.js +64 -65
- package/i18n/test_scratch_msgs.js +66 -63
- package/msg/js/en.js +289 -287
- package/msg/json/en.json +284 -284
- package/msg/messages.js +289 -287
- package/msg/scratch_msgs.js +22959 -22970
- package/package.json +6 -3
- package/prettier.config.mjs +3 -0
- package/release.config.js +7 -7
- package/renovate.json5 +7 -9
- package/src/block_reporting.ts +15 -18
- package/src/blocks/colour.ts +12 -15
- package/src/blocks/control.ts +167 -177
- package/src/blocks/data.ts +225 -292
- package/src/blocks/event.ts +121 -123
- package/src/blocks/looks.ts +165 -167
- package/src/blocks/math.ts +44 -46
- package/src/blocks/matrix.ts +11 -13
- package/src/blocks/motion.ts +151 -153
- package/src/blocks/note.ts +11 -13
- package/src/blocks/operators.ts +158 -160
- package/src/blocks/procedures.ts +415 -523
- package/src/blocks/sensing.ts +163 -165
- package/src/blocks/sound.ts +58 -60
- package/src/blocks/text.ts +10 -12
- package/src/blocks/vertical_extensions.ts +86 -102
- package/src/checkable_continuous_flyout.ts +25 -42
- package/src/checkbox_bubble.ts +83 -100
- package/src/colours.ts +35 -37
- package/src/constants.ts +22 -29
- package/src/context_menu_items.ts +56 -81
- package/src/css.ts +3 -4
- package/src/data_category.ts +137 -251
- package/src/events/events_block_comment_base.ts +21 -31
- package/src/events/events_block_comment_change.ts +21 -42
- package/src/events/events_block_comment_collapse.ts +22 -43
- package/src/events/events_block_comment_create.ts +29 -46
- package/src/events/events_block_comment_delete.ts +10 -19
- package/src/events/events_block_comment_move.ts +27 -52
- package/src/events/events_block_comment_resize.ts +28 -55
- package/src/events/events_block_drag_end.ts +16 -26
- package/src/events/events_block_drag_outside.ts +12 -22
- package/src/events/events_scratch_variable_create.ts +33 -56
- package/src/fields/field_colour_slider.ts +173 -228
- package/src/fields/field_matrix.ts +200 -269
- package/src/fields/field_note.ts +272 -377
- package/src/fields/field_textinput_removable.ts +25 -40
- package/src/fields/field_variable_getter.ts +26 -31
- package/src/fields/field_vertical_separator.ts +19 -24
- package/src/fields/scratch_field_angle.ts +150 -186
- package/src/fields/scratch_field_dropdown.ts +15 -19
- package/src/fields/scratch_field_number.ts +123 -180
- package/src/fields/scratch_field_variable.ts +54 -75
- package/src/flyout_checkbox_icon.ts +18 -28
- package/src/glows.ts +51 -58
- package/src/index.ts +119 -133
- package/src/procedures.ts +146 -213
- package/src/recyclable_block_flyout_inflater.ts +14 -25
- package/src/renderer/bowler_hat.ts +6 -8
- package/src/renderer/cat/cat_face.ts +98 -99
- package/src/renderer/cat/constants.ts +67 -87
- package/src/renderer/cat/drawer.ts +21 -27
- package/src/renderer/cat/path_object.ts +3 -5
- package/src/renderer/cat/render_info.ts +5 -8
- package/src/renderer/cat/renderer.ts +11 -15
- package/src/renderer/constants.ts +34 -49
- package/src/renderer/drawer.ts +35 -51
- package/src/renderer/path_object.ts +4 -10
- package/src/renderer/render_info.ts +36 -56
- package/src/renderer/renderer.ts +16 -29
- package/src/scratch_block_paster.ts +12 -20
- package/src/scratch_blocks_utils.ts +4 -7
- package/src/scratch_comment_bubble.ts +70 -101
- package/src/scratch_comment_icon.ts +74 -123
- package/src/scratch_connection_checker.ts +7 -17
- package/src/scratch_continuous_category.ts +24 -28
- package/src/scratch_continuous_toolbox.ts +20 -27
- package/src/scratch_dragger.ts +42 -81
- package/src/scratch_insertion_marker_previewer.ts +6 -11
- package/src/scratch_variable_map.ts +5 -12
- package/src/scratch_variable_model.ts +4 -11
- package/src/scratch_zoom_controls.ts +101 -156
- package/src/shadows.ts +32 -37
- package/src/status_indicator_label.ts +54 -67
- package/src/status_indicator_label_flyout_inflater.ts +11 -21
- package/src/variables.ts +89 -138
- package/src/xml.ts +21 -35
- package/tsconfig.json +2 -6
- package/types/continuous-toolbox.d.ts +1 -1
- package/dist/main.mjs.LICENSE.txt +0 -163
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license
|
|
3
2
|
* Copyright 2024 Google LLC
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
import * as Blockly from "blockly/core";
|
|
5
|
+
import * as Blockly from 'blockly/core'
|
|
8
6
|
|
|
9
7
|
export class BlockDragEnd extends Blockly.Events.BlockBase {
|
|
10
|
-
isOutside!: boolean
|
|
11
|
-
xml!: Element | DocumentFragment
|
|
8
|
+
isOutside!: boolean
|
|
9
|
+
xml!: Element | DocumentFragment
|
|
12
10
|
|
|
13
11
|
constructor(block?: Blockly.Block, isOutside?: boolean) {
|
|
14
|
-
super(block)
|
|
15
|
-
this.type =
|
|
16
|
-
if (isOutside !== undefined) this.isOutside = isOutside
|
|
17
|
-
this.recordUndo = false
|
|
18
|
-
if (block) this.xml = Blockly.Xml.blockToDom(block, true)
|
|
12
|
+
super(block)
|
|
13
|
+
this.type = 'endDrag'
|
|
14
|
+
if (isOutside !== undefined) this.isOutside = isOutside
|
|
15
|
+
this.recordUndo = false
|
|
16
|
+
if (block) this.xml = Blockly.Xml.blockToDom(block, true)
|
|
19
17
|
}
|
|
20
18
|
|
|
21
19
|
toJson(): BlockDragEndJson {
|
|
@@ -23,27 +21,19 @@ export class BlockDragEnd extends Blockly.Events.BlockBase {
|
|
|
23
21
|
...super.toJson(),
|
|
24
22
|
isOutside: this.isOutside,
|
|
25
23
|
xml: Blockly.utils.xml.domToText(this.xml),
|
|
26
|
-
}
|
|
24
|
+
}
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
static fromJson(
|
|
30
|
-
json
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
): BlockDragEnd {
|
|
34
|
-
const newEvent = super.fromJson(
|
|
35
|
-
json,
|
|
36
|
-
workspace,
|
|
37
|
-
event ?? new BlockDragEnd()
|
|
38
|
-
) as BlockDragEnd;
|
|
39
|
-
newEvent.isOutside = json["isOutside"];
|
|
40
|
-
newEvent.xml = Blockly.utils.xml.textToDom(json["xml"]);
|
|
27
|
+
static fromJson(json: BlockDragEndJson, workspace: Blockly.Workspace, event?: any): BlockDragEnd {
|
|
28
|
+
const newEvent = super.fromJson(json, workspace, event ?? new BlockDragEnd()) as BlockDragEnd
|
|
29
|
+
newEvent.isOutside = json.isOutside
|
|
30
|
+
newEvent.xml = Blockly.utils.xml.textToDom(json.xml)
|
|
41
31
|
|
|
42
|
-
return newEvent
|
|
32
|
+
return newEvent
|
|
43
33
|
}
|
|
44
34
|
}
|
|
45
35
|
|
|
46
36
|
interface BlockDragEndJson extends Blockly.Events.BlockBaseJson {
|
|
47
|
-
isOutside: boolean
|
|
48
|
-
xml: string
|
|
37
|
+
isOutside: boolean
|
|
38
|
+
xml: string
|
|
49
39
|
}
|
|
@@ -1,44 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license
|
|
3
2
|
* Copyright 2024 Google LLC
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
import * as Blockly from "blockly/core";
|
|
5
|
+
import * as Blockly from 'blockly/core'
|
|
8
6
|
|
|
9
7
|
export class BlockDragOutside extends Blockly.Events.BlockBase {
|
|
10
|
-
isOutside!: boolean
|
|
8
|
+
isOutside!: boolean
|
|
11
9
|
|
|
12
10
|
constructor(block?: Blockly.Block, isOutside?: boolean) {
|
|
13
|
-
super(block)
|
|
14
|
-
this.type =
|
|
15
|
-
if (isOutside !== undefined) this.isOutside = isOutside
|
|
16
|
-
this.recordUndo = false
|
|
11
|
+
super(block)
|
|
12
|
+
this.type = 'dragOutside'
|
|
13
|
+
if (isOutside !== undefined) this.isOutside = isOutside
|
|
14
|
+
this.recordUndo = false
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
toJson(): BlockDragOutsideJson {
|
|
20
18
|
return {
|
|
21
19
|
...super.toJson(),
|
|
22
20
|
isOutside: this.isOutside,
|
|
23
|
-
}
|
|
21
|
+
}
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
static fromJson(
|
|
27
|
-
json
|
|
28
|
-
|
|
29
|
-
event?: any
|
|
30
|
-
): BlockDragOutside {
|
|
31
|
-
const newEvent = super.fromJson(
|
|
32
|
-
json,
|
|
33
|
-
workspace,
|
|
34
|
-
event ?? new BlockDragOutside()
|
|
35
|
-
) as BlockDragOutside;
|
|
36
|
-
newEvent.isOutside = json["isOutside"];
|
|
24
|
+
static fromJson(json: BlockDragOutsideJson, workspace: Blockly.Workspace, event?: any): BlockDragOutside {
|
|
25
|
+
const newEvent = super.fromJson(json, workspace, event ?? new BlockDragOutside()) as BlockDragOutside
|
|
26
|
+
newEvent.isOutside = json.isOutside
|
|
37
27
|
|
|
38
|
-
return newEvent
|
|
28
|
+
return newEvent
|
|
39
29
|
}
|
|
40
30
|
}
|
|
41
31
|
|
|
42
32
|
interface BlockDragOutsideJson extends Blockly.Events.BlockBaseJson {
|
|
43
|
-
isOutside: boolean
|
|
33
|
+
isOutside: boolean
|
|
44
34
|
}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license
|
|
3
2
|
* Copyright 2024 Google LLC
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
import { ScratchVariableModel } from "../scratch_variable_model";
|
|
5
|
+
import * as Blockly from 'blockly/core'
|
|
6
|
+
import { ScratchVariableModel } from '../scratch_variable_model'
|
|
9
7
|
|
|
10
8
|
class ScratchVariableCreate extends Blockly.Events.VarCreate {
|
|
11
|
-
isLocal!: boolean
|
|
12
|
-
isCloud!: boolean
|
|
9
|
+
isLocal!: boolean
|
|
10
|
+
isCloud!: boolean
|
|
13
11
|
|
|
14
12
|
constructor(variable?: ScratchVariableModel) {
|
|
15
|
-
super(variable)
|
|
16
|
-
if (!variable) return
|
|
13
|
+
super(variable)
|
|
14
|
+
if (!variable) return
|
|
17
15
|
|
|
18
|
-
this.isLocal = variable.isLocal
|
|
19
|
-
this.isCloud = variable.isCloud
|
|
16
|
+
this.isLocal = variable.isLocal
|
|
17
|
+
this.isCloud = variable.isCloud
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
toJson(): ScratchVariableCreateJson {
|
|
@@ -24,38 +22,27 @@ class ScratchVariableCreate extends Blockly.Events.VarCreate {
|
|
|
24
22
|
...super.toJson(),
|
|
25
23
|
isLocal: this.isLocal,
|
|
26
24
|
isCloud: this.isCloud,
|
|
27
|
-
}
|
|
25
|
+
}
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
static fromJson(
|
|
31
|
-
json
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const newEvent = super.fromJson(
|
|
36
|
-
json,
|
|
37
|
-
workspace,
|
|
38
|
-
event ?? new ScratchVariableCreate()
|
|
39
|
-
) as ScratchVariableCreate;
|
|
40
|
-
newEvent.isLocal = json["isLocal"];
|
|
41
|
-
newEvent.isCloud = json["isCloud"];
|
|
42
|
-
return newEvent;
|
|
28
|
+
static fromJson(json: ScratchVariableCreateJson, workspace: Blockly.Workspace, event?: any): ScratchVariableCreate {
|
|
29
|
+
const newEvent = super.fromJson(json, workspace, event ?? new ScratchVariableCreate()) as ScratchVariableCreate
|
|
30
|
+
newEvent.isLocal = json.isLocal
|
|
31
|
+
newEvent.isCloud = json.isCloud
|
|
32
|
+
return newEvent
|
|
43
33
|
}
|
|
44
34
|
|
|
45
35
|
run(forward: boolean) {
|
|
46
|
-
const workspace = this.getEventWorkspace_()
|
|
47
|
-
const variableMap = workspace.getVariableMap()
|
|
36
|
+
const workspace = this.getEventWorkspace_()
|
|
37
|
+
const variableMap = workspace.getVariableMap()
|
|
48
38
|
if (forward) {
|
|
49
39
|
if (this.varName == null || this.varType == null || this.varId == null) {
|
|
50
|
-
console.error(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
);
|
|
58
|
-
return;
|
|
40
|
+
console.error('ScratchVariableCreate.run: missing variable data for create', {
|
|
41
|
+
varName: this.varName,
|
|
42
|
+
varType: this.varType,
|
|
43
|
+
varId: this.varId,
|
|
44
|
+
})
|
|
45
|
+
return
|
|
59
46
|
}
|
|
60
47
|
const variable = new ScratchVariableModel(
|
|
61
48
|
workspace,
|
|
@@ -63,36 +50,26 @@ class ScratchVariableCreate extends Blockly.Events.VarCreate {
|
|
|
63
50
|
this.varType,
|
|
64
51
|
this.varId,
|
|
65
52
|
this.isLocal,
|
|
66
|
-
this.isCloud
|
|
67
|
-
)
|
|
68
|
-
variableMap.addVariable(variable)
|
|
69
|
-
Blockly.Events.fire(
|
|
70
|
-
new (Blockly.Events.get(Blockly.Events.VAR_CREATE))(variable)
|
|
71
|
-
);
|
|
53
|
+
this.isCloud,
|
|
54
|
+
)
|
|
55
|
+
variableMap.addVariable(variable)
|
|
56
|
+
Blockly.Events.fire(new (Blockly.Events.get(Blockly.Events.VAR_CREATE))(variable))
|
|
72
57
|
} else {
|
|
73
58
|
if (this.varId == null) {
|
|
74
|
-
console.error(
|
|
75
|
-
|
|
76
|
-
this
|
|
77
|
-
);
|
|
78
|
-
return;
|
|
59
|
+
console.error('ScratchVariableCreate.run: missing varId for delete', this)
|
|
60
|
+
return
|
|
79
61
|
}
|
|
80
|
-
const variable = variableMap.getVariableById(this.varId)
|
|
62
|
+
const variable = variableMap.getVariableById(this.varId)
|
|
81
63
|
if (variable) {
|
|
82
|
-
variableMap.deleteVariable(variable)
|
|
64
|
+
variableMap.deleteVariable(variable)
|
|
83
65
|
}
|
|
84
66
|
}
|
|
85
67
|
}
|
|
86
68
|
}
|
|
87
69
|
|
|
88
70
|
interface ScratchVariableCreateJson extends Blockly.Events.VarCreateJson {
|
|
89
|
-
isCloud: boolean
|
|
90
|
-
isLocal: boolean
|
|
71
|
+
isCloud: boolean
|
|
72
|
+
isLocal: boolean
|
|
91
73
|
}
|
|
92
74
|
|
|
93
|
-
Blockly.registry.register(
|
|
94
|
-
Blockly.registry.Type.EVENT,
|
|
95
|
-
Blockly.Events.VAR_CREATE,
|
|
96
|
-
ScratchVariableCreate,
|
|
97
|
-
true
|
|
98
|
-
);
|
|
75
|
+
Blockly.registry.register(Blockly.registry.Type.EVENT, Blockly.Events.VAR_CREATE, ScratchVariableCreate, true)
|