blockly 7.20211209.2 → 8.0.0
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/blockly.d.ts +18963 -18432
- package/blockly.min.js +852 -844
- package/blockly_compressed.js +669 -664
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +47 -0
- package/blocks/colour.js +13 -3
- package/blocks/lists.js +22 -13
- package/blocks/logic.js +13 -3
- package/blocks/loops.js +24 -11
- package/blocks/math.js +12 -3
- package/blocks/procedures.js +41 -27
- package/blocks/text.js +22 -13
- package/blocks/variables.js +14 -3
- package/blocks/variables_dynamic.js +13 -3
- package/blocks_compressed.js +146 -141
- package/blocks_compressed.js.map +1 -1
- package/core/block.js +1869 -1814
- package/core/block_drag_surface.js +201 -200
- package/core/block_dragger.js +377 -373
- package/core/block_svg.js +1593 -1479
- package/core/blockly.js +8 -22
- package/core/blocks.js +9 -2
- package/core/browser_events.js +22 -5
- package/core/bubble.js +841 -797
- package/core/bubble_dragger.js +213 -206
- package/core/bump_objects.js +2 -2
- package/core/clipboard.js +9 -9
- package/core/comment.js +353 -332
- package/core/common.js +46 -17
- package/core/component_manager.js +181 -174
- package/core/config.js +87 -0
- package/core/connection.js +595 -584
- package/core/connection_checker.js +242 -244
- package/core/connection_db.js +235 -230
- package/core/contextmenu.js +9 -6
- package/core/contextmenu_items.js +1 -2
- package/core/contextmenu_registry.js +93 -89
- package/core/css.js +474 -474
- package/core/delete_area.js +45 -42
- package/core/drag_target.js +57 -56
- package/core/dropdowndiv.js +153 -163
- package/core/events/events.js +2 -2
- package/core/events/events_abstract.js +89 -77
- package/core/events/events_block_base.js +37 -36
- package/core/events/events_block_change.js +130 -124
- package/core/events/events_block_create.js +73 -71
- package/core/events/events_block_delete.js +84 -82
- package/core/events/events_block_drag.js +50 -49
- package/core/events/events_block_move.js +147 -140
- package/core/events/events_bubble_open.js +51 -50
- package/core/events/events_click.js +48 -44
- package/core/events/events_comment_base.js +72 -69
- package/core/events/events_comment_change.js +63 -61
- package/core/events/events_comment_create.js +44 -42
- package/core/events/events_comment_delete.js +42 -40
- package/core/events/events_comment_move.js +106 -104
- package/core/events/events_marker_move.js +65 -64
- package/core/events/events_selected.js +46 -45
- package/core/events/events_theme_change.js +36 -35
- package/core/events/events_toolbox_item_select.js +46 -45
- package/core/events/events_trashcan_open.js +37 -36
- package/core/events/events_ui.js +47 -46
- package/core/events/events_ui_base.js +30 -29
- package/core/events/events_var_base.js +37 -36
- package/core/events/events_var_create.js +50 -48
- package/core/events/events_var_delete.js +50 -48
- package/core/events/events_var_rename.js +51 -49
- package/core/events/events_viewport.js +66 -65
- package/core/events/utils.js +29 -14
- package/core/events/workspace_events.js +49 -55
- package/core/extensions.js +4 -3
- package/core/field.js +1061 -997
- package/core/field_angle.js +462 -442
- package/core/field_checkbox.js +194 -182
- package/core/field_colour.js +519 -505
- package/core/field_dropdown.js +617 -598
- package/core/field_image.js +229 -220
- package/core/field_label.js +102 -91
- package/core/field_label_serializable.js +42 -41
- package/core/field_multilineinput.js +372 -358
- package/core/field_number.js +272 -253
- package/core/field_textinput.js +499 -467
- package/core/field_variable.js +458 -420
- package/core/flyout_base.js +1005 -952
- package/core/flyout_button.js +277 -260
- package/core/flyout_horizontal.js +304 -302
- package/core/flyout_metrics_manager.js +64 -64
- package/core/flyout_vertical.js +306 -300
- package/core/generator.js +459 -446
- package/core/gesture.js +829 -813
- package/core/grid.js +166 -163
- package/core/icon.js +168 -159
- package/core/inject.js +7 -5
- package/core/input.js +257 -248
- package/core/insertion_marker_manager.js +655 -624
- package/core/internal_constants.js +0 -129
- package/core/keyboard_nav/ast_node.js +605 -596
- package/core/keyboard_nav/basic_cursor.js +166 -165
- package/core/keyboard_nav/cursor.js +99 -97
- package/core/keyboard_nav/marker.js +83 -79
- package/core/keyboard_nav/tab_navigate_cursor.js +18 -23
- package/core/marker_manager.js +153 -141
- package/core/menu.js +377 -372
- package/core/menuitem.js +223 -217
- package/core/metrics_manager.js +403 -390
- package/core/mutator.js +468 -437
- package/core/names.js +229 -188
- package/core/options.js +290 -284
- package/core/procedures.js +29 -17
- package/core/registry.js +19 -16
- package/core/rendered_connection.js +482 -463
- package/core/renderers/common/block_rendering.js +9 -3
- package/core/renderers/common/constants.js +1119 -1112
- package/core/renderers/common/debug.js +14 -0
- package/core/renderers/common/debugger.js +338 -316
- package/core/renderers/common/drawer.js +380 -370
- package/core/renderers/common/i_path_object.js +2 -2
- package/core/renderers/common/info.js +626 -618
- package/core/renderers/common/marker_svg.js +579 -541
- package/core/renderers/common/path_object.js +203 -200
- package/core/renderers/common/renderer.js +220 -218
- package/core/renderers/geras/constants.js +36 -36
- package/core/renderers/geras/drawer.js +155 -147
- package/core/renderers/geras/highlight_constants.js +244 -238
- package/core/renderers/geras/highlighter.js +231 -179
- package/core/renderers/geras/info.js +392 -369
- package/core/renderers/geras/measurables/inline_input.js +25 -19
- package/core/renderers/geras/measurables/statement_input.js +23 -17
- package/core/renderers/geras/path_object.js +106 -121
- package/core/renderers/geras/renderer.js +96 -98
- package/core/renderers/measurables/base.js +30 -18
- package/core/renderers/measurables/bottom_row.js +83 -80
- package/core/renderers/measurables/connection.js +22 -15
- package/core/renderers/measurables/external_value_input.js +35 -22
- package/core/renderers/measurables/field.js +35 -20
- package/core/renderers/measurables/hat.js +18 -13
- package/core/renderers/measurables/icon.js +24 -17
- package/core/renderers/measurables/in_row_spacer.js +15 -13
- package/core/renderers/measurables/inline_input.js +43 -33
- package/core/renderers/measurables/input_connection.js +41 -28
- package/core/renderers/measurables/input_row.js +50 -44
- package/core/renderers/measurables/jagged_edge.js +14 -12
- package/core/renderers/measurables/next_connection.js +16 -14
- package/core/renderers/measurables/output_connection.js +26 -20
- package/core/renderers/measurables/previous_connection.js +16 -15
- package/core/renderers/measurables/round_corner.js +20 -18
- package/core/renderers/measurables/row.js +184 -168
- package/core/renderers/measurables/spacer_row.js +38 -23
- package/core/renderers/measurables/square_corner.js +18 -16
- package/core/renderers/measurables/statement_input.js +23 -20
- package/core/renderers/measurables/top_row.js +88 -85
- package/core/renderers/minimalist/constants.js +8 -7
- package/core/renderers/minimalist/drawer.js +11 -10
- package/core/renderers/minimalist/info.js +18 -18
- package/core/renderers/minimalist/renderer.js +40 -39
- package/core/renderers/thrasos/info.js +258 -248
- package/core/renderers/thrasos/renderer.js +20 -20
- package/core/renderers/zelos/constants.js +898 -873
- package/core/renderers/zelos/drawer.js +186 -169
- package/core/renderers/zelos/info.js +502 -479
- package/core/renderers/zelos/marker_svg.js +129 -115
- package/core/renderers/zelos/measurables/bottom_row.js +31 -30
- package/core/renderers/zelos/measurables/inputs.js +22 -21
- package/core/renderers/zelos/measurables/row_elements.js +14 -13
- package/core/renderers/zelos/measurables/top_row.js +34 -33
- package/core/renderers/zelos/path_object.js +181 -180
- package/core/renderers/zelos/renderer.js +91 -92
- package/core/scrollbar.js +759 -713
- package/core/scrollbar_pair.js +250 -245
- package/core/serialization/blocks.js +19 -9
- package/core/serialization/workspaces.js +3 -2
- package/core/shortcut_registry.js +286 -277
- package/core/sprites.js +31 -0
- package/core/theme.js +135 -141
- package/core/theme_manager.js +147 -143
- package/core/toolbox/category.js +602 -576
- package/core/toolbox/collapsible_category.js +226 -227
- package/core/toolbox/separator.js +70 -61
- package/core/toolbox/toolbox.js +934 -927
- package/core/toolbox/toolbox_item.js +115 -99
- package/core/tooltip.js +108 -35
- package/core/touch.js +8 -3
- package/core/touch_gesture.js +254 -251
- package/core/trashcan.js +606 -595
- package/core/utils/coordinate.js +97 -95
- package/core/utils/dom.js +2 -2
- package/core/utils/global.js +2 -0
- package/core/utils/rect.js +41 -37
- package/core/utils/sentinel.js +25 -0
- package/core/utils/size.js +30 -27
- package/core/utils/svg.js +18 -16
- package/core/variable_map.js +325 -341
- package/core/variable_model.js +55 -54
- package/core/variables.js +9 -2
- package/core/variables_dynamic.js +3 -1
- package/core/warning.js +126 -120
- package/core/widgetdiv.js +4 -4
- package/core/workspace.js +685 -664
- package/core/workspace_audio.js +124 -118
- package/core/workspace_comment.js +308 -298
- package/core/workspace_comment_svg.js +1029 -951
- package/core/workspace_drag_surface_svg.js +147 -140
- package/core/workspace_dragger.js +70 -71
- package/core/workspace_svg.js +2322 -2297
- package/core/xml.js +30 -20
- package/core/zoom_controls.js +431 -439
- package/dart_compressed.js +40 -43
- package/dart_compressed.js.map +1 -1
- package/generators/dart/colour.js +56 -64
- package/generators/dart/lists.js +61 -50
- package/generators/dart/math.js +160 -148
- package/generators/dart/text.js +83 -61
- package/generators/javascript/colour.js +37 -34
- package/generators/javascript/lists.js +50 -43
- package/generators/javascript/math.js +123 -139
- package/generators/javascript/text.js +67 -81
- package/generators/lua/colour.js +25 -23
- package/generators/lua/lists.js +97 -69
- package/generators/lua/logic.js +1 -2
- package/generators/lua/math.js +182 -144
- package/generators/lua/text.js +116 -99
- package/generators/php/colour.js +38 -32
- package/generators/php/lists.js +109 -89
- package/generators/php/math.js +90 -81
- package/generators/php/text.js +63 -61
- package/generators/python/colour.js +18 -18
- package/generators/python/lists.js +38 -30
- package/generators/python/loops.js +12 -8
- package/generators/python/math.js +104 -106
- package/generators/python/text.js +34 -30
- package/javascript_compressed.js +37 -39
- package/javascript_compressed.js.map +1 -1
- package/lua_compressed.js +39 -42
- package/lua_compressed.js.map +1 -1
- package/msg/az.js +2 -2
- package/msg/be.js +4 -4
- package/msg/cs.js +15 -15
- package/msg/de.js +1 -1
- package/msg/diq.js +1 -1
- package/msg/eo.js +1 -1
- package/msg/es.js +1 -1
- package/msg/fa.js +1 -1
- package/msg/fr.js +4 -4
- package/msg/he.js +1 -1
- package/msg/hr.js +2 -2
- package/msg/hy.js +2 -2
- package/msg/id.js +12 -12
- package/msg/inh.js +14 -14
- package/msg/ja.js +7 -7
- package/msg/lv.js +29 -29
- package/msg/pa.js +3 -3
- package/msg/smn.js +436 -0
- package/msg/te.js +1 -1
- package/msg/yue.js +1 -1
- package/msg/zh-hans.js +3 -3
- package/msg/zh-hant.js +3 -3
- package/package.json +7 -6
- package/php_compressed.js +38 -42
- package/php_compressed.js.map +1 -1
- package/python_compressed.js +26 -25
- package/python_compressed.js.map +1 -1
- package/blocks/all.js +0 -23
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
goog.module('Blockly.Events.CommentMove');
|
|
17
17
|
|
|
18
18
|
const eventUtils = goog.require('Blockly.Events.utils');
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const registry = goog.require('Blockly.registry');
|
|
21
20
|
const {CommentBase} = goog.require('Blockly.Events.CommentBase');
|
|
22
21
|
const {Coordinate} = goog.require('Blockly.utils.Coordinate');
|
|
@@ -26,129 +25,132 @@ const {WorkspaceComment} = goog.requireType('Blockly.WorkspaceComment');
|
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* Class for a comment move event. Created before the move.
|
|
29
|
-
* @param {!WorkspaceComment=} opt_comment The comment that is being
|
|
30
|
-
* moved. Undefined for a blank event.
|
|
31
28
|
* @extends {CommentBase}
|
|
32
|
-
* @constructor
|
|
33
29
|
* @alias Blockly.Events.CommentMove
|
|
34
30
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
class CommentMove extends CommentBase {
|
|
32
|
+
/**
|
|
33
|
+
* @param {!WorkspaceComment=} opt_comment The comment that is being
|
|
34
|
+
* moved. Undefined for a blank event.
|
|
35
|
+
*/
|
|
36
|
+
constructor(opt_comment) {
|
|
37
|
+
super(opt_comment);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Type of this event.
|
|
41
|
+
* @type {string}
|
|
42
|
+
*/
|
|
43
|
+
this.type = eventUtils.COMMENT_MOVE;
|
|
44
|
+
|
|
45
|
+
if (!opt_comment) {
|
|
46
|
+
return; // Blank event to be populated by fromJson.
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The comment that is being moved. Will be cleared after recording the new
|
|
51
|
+
* location.
|
|
52
|
+
* @type {WorkspaceComment}
|
|
53
|
+
*/
|
|
54
|
+
this.comment_ = opt_comment;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The location before the move, in workspace coordinates.
|
|
58
|
+
* @type {!Coordinate}
|
|
59
|
+
*/
|
|
60
|
+
this.oldCoordinate_ = opt_comment.getXY();
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The location after the move, in workspace coordinates.
|
|
64
|
+
* @type {Coordinate}
|
|
65
|
+
*/
|
|
66
|
+
this.newCoordinate_ = null;
|
|
39
67
|
}
|
|
40
68
|
|
|
41
69
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* @type {WorkspaceComment}
|
|
70
|
+
* Record the comment's new location. Called after the move. Can only be
|
|
71
|
+
* called once.
|
|
45
72
|
*/
|
|
46
|
-
|
|
73
|
+
recordNew() {
|
|
74
|
+
if (!this.comment_) {
|
|
75
|
+
throw Error(
|
|
76
|
+
'Tried to record the new position of a comment on the ' +
|
|
77
|
+
'same event twice.');
|
|
78
|
+
}
|
|
79
|
+
this.newCoordinate_ = this.comment_.getXY();
|
|
80
|
+
this.comment_ = null;
|
|
81
|
+
}
|
|
47
82
|
|
|
48
83
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
84
|
+
* Override the location before the move. Use this if you don't create the
|
|
85
|
+
* event until the end of the move, but you know the original location.
|
|
86
|
+
* @param {!Coordinate} xy The location before the move,
|
|
87
|
+
* in workspace coordinates.
|
|
51
88
|
*/
|
|
52
|
-
|
|
89
|
+
setOldCoordinate(xy) {
|
|
90
|
+
this.oldCoordinate_ = xy;
|
|
91
|
+
}
|
|
53
92
|
|
|
93
|
+
// TODO (#1266): "Full" and "minimal" serialization.
|
|
54
94
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @
|
|
95
|
+
* Encode the event as JSON.
|
|
96
|
+
* @return {!Object} JSON representation.
|
|
57
97
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
'Tried to record the new position of a comment on the ' +
|
|
70
|
-
'same event twice.');
|
|
98
|
+
toJson() {
|
|
99
|
+
const json = super.toJson();
|
|
100
|
+
if (this.oldCoordinate_) {
|
|
101
|
+
json['oldCoordinate'] = Math.round(this.oldCoordinate_.x) + ',' +
|
|
102
|
+
Math.round(this.oldCoordinate_.y);
|
|
103
|
+
}
|
|
104
|
+
if (this.newCoordinate_) {
|
|
105
|
+
json['newCoordinate'] = Math.round(this.newCoordinate_.x) + ',' +
|
|
106
|
+
Math.round(this.newCoordinate_.y);
|
|
107
|
+
}
|
|
108
|
+
return json;
|
|
71
109
|
}
|
|
72
|
-
this.newCoordinate_ = this.comment_.getXY();
|
|
73
|
-
this.comment_ = null;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Type of this event.
|
|
78
|
-
* @type {string}
|
|
79
|
-
*/
|
|
80
|
-
CommentMove.prototype.type = eventUtils.COMMENT_MOVE;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Override the location before the move. Use this if you don't create the
|
|
84
|
-
* event until the end of the move, but you know the original location.
|
|
85
|
-
* @param {!Coordinate} xy The location before the move,
|
|
86
|
-
* in workspace coordinates.
|
|
87
|
-
*/
|
|
88
|
-
CommentMove.prototype.setOldCoordinate = function(xy) {
|
|
89
|
-
this.oldCoordinate_ = xy;
|
|
90
|
-
};
|
|
91
110
|
|
|
92
|
-
/**
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Decode the JSON event.
|
|
113
|
+
* @param {!Object} json JSON representation.
|
|
114
|
+
*/
|
|
115
|
+
fromJson(json) {
|
|
116
|
+
super.fromJson(json);
|
|
117
|
+
|
|
118
|
+
if (json['oldCoordinate']) {
|
|
119
|
+
const xy = json['oldCoordinate'].split(',');
|
|
120
|
+
this.oldCoordinate_ = new Coordinate(Number(xy[0]), Number(xy[1]));
|
|
121
|
+
}
|
|
122
|
+
if (json['newCoordinate']) {
|
|
123
|
+
const xy = json['newCoordinate'].split(',');
|
|
124
|
+
this.newCoordinate_ = new Coordinate(Number(xy[0]), Number(xy[1]));
|
|
125
|
+
}
|
|
106
126
|
}
|
|
107
|
-
return json;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Decode the JSON event.
|
|
112
|
-
* @param {!Object} json JSON representation.
|
|
113
|
-
*/
|
|
114
|
-
CommentMove.prototype.fromJson = function(json) {
|
|
115
|
-
CommentMove.superClass_.fromJson.call(this, json);
|
|
116
127
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.newCoordinate_ = new Coordinate(Number(xy[0]), Number(xy[1]));
|
|
128
|
+
/**
|
|
129
|
+
* Does this event record any change of state?
|
|
130
|
+
* @return {boolean} False if something changed.
|
|
131
|
+
*/
|
|
132
|
+
isNull() {
|
|
133
|
+
return Coordinate.equals(this.oldCoordinate_, this.newCoordinate_);
|
|
124
134
|
}
|
|
125
|
-
};
|
|
126
135
|
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
console.warn('Can\'t move non-existent comment: ' + this.commentId);
|
|
144
|
-
return;
|
|
136
|
+
/**
|
|
137
|
+
* Run a move event.
|
|
138
|
+
* @param {boolean} forward True if run forward, false if run backward (undo).
|
|
139
|
+
*/
|
|
140
|
+
run(forward) {
|
|
141
|
+
const workspace = this.getEventWorkspace_();
|
|
142
|
+
const comment = workspace.getCommentById(this.commentId);
|
|
143
|
+
if (!comment) {
|
|
144
|
+
console.warn('Can\'t move non-existent comment: ' + this.commentId);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const target = forward ? this.newCoordinate_ : this.oldCoordinate_;
|
|
149
|
+
// TODO: Check if the comment is being dragged, and give up if so.
|
|
150
|
+
const current = comment.getXY();
|
|
151
|
+
comment.moveBy(target.x - current.x, target.y - current.y);
|
|
145
152
|
}
|
|
146
|
-
|
|
147
|
-
const target = forward ? this.newCoordinate_ : this.oldCoordinate_;
|
|
148
|
-
// TODO: Check if the comment is being dragged, and give up if so.
|
|
149
|
-
const current = comment.getXY();
|
|
150
|
-
comment.moveBy(target.x - current.x, target.y - current.y);
|
|
151
|
-
};
|
|
153
|
+
}
|
|
152
154
|
|
|
153
155
|
registry.register(registry.Type.EVENT, eventUtils.COMMENT_MOVE, CommentMove);
|
|
154
156
|
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
goog.module('Blockly.Events.MarkerMove');
|
|
17
17
|
|
|
18
18
|
const eventUtils = goog.require('Blockly.Events.utils');
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const registry = goog.require('Blockly.registry');
|
|
21
20
|
const {ASTNode} = goog.require('Blockly.ASTNode');
|
|
22
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
@@ -28,81 +27,83 @@ const {Workspace} = goog.requireType('Blockly.Workspace');
|
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
29
|
* Class for a marker move event.
|
|
31
|
-
* @param {?Block=} opt_block The affected block. Null if current node
|
|
32
|
-
* is of type workspace. Undefined for a blank event.
|
|
33
|
-
* @param {boolean=} isCursor Whether this is a cursor event. Undefined for a
|
|
34
|
-
* blank event.
|
|
35
|
-
* @param {?ASTNode=} opt_oldNode The old node the marker used to be on.
|
|
36
|
-
* Undefined for a blank event.
|
|
37
|
-
* @param {!ASTNode=} opt_newNode The new node the marker is now on.
|
|
38
|
-
* Undefined for a blank event.
|
|
39
30
|
* @extends {UiBase}
|
|
40
|
-
* @constructor
|
|
41
31
|
* @alias Blockly.Events.MarkerMove
|
|
42
32
|
*/
|
|
43
|
-
|
|
44
|
-
let workspaceId = opt_block ? opt_block.workspace.id : undefined;
|
|
45
|
-
if (opt_newNode && opt_newNode.getType() === ASTNode.types.WORKSPACE) {
|
|
46
|
-
workspaceId = (/** @type {!Workspace} */ (opt_newNode.getLocation())).id;
|
|
47
|
-
}
|
|
48
|
-
MarkerMove.superClass_.constructor.call(this, workspaceId);
|
|
49
|
-
|
|
33
|
+
class MarkerMove extends UiBase {
|
|
50
34
|
/**
|
|
51
|
-
* The
|
|
52
|
-
*
|
|
35
|
+
* @param {?Block=} opt_block The affected block. Null if current node
|
|
36
|
+
* is of type workspace. Undefined for a blank event.
|
|
37
|
+
* @param {boolean=} isCursor Whether this is a cursor event. Undefined for a
|
|
38
|
+
* blank event.
|
|
39
|
+
* @param {?ASTNode=} opt_oldNode The old node the marker used to be on.
|
|
40
|
+
* Undefined for a blank event.
|
|
41
|
+
* @param {!ASTNode=} opt_newNode The new node the marker is now on.
|
|
42
|
+
* Undefined for a blank event.
|
|
53
43
|
*/
|
|
54
|
-
|
|
44
|
+
constructor(opt_block, isCursor, opt_oldNode, opt_newNode) {
|
|
45
|
+
let workspaceId = opt_block ? opt_block.workspace.id : undefined;
|
|
46
|
+
if (opt_newNode && opt_newNode.getType() === ASTNode.types.WORKSPACE) {
|
|
47
|
+
workspaceId = (/** @type {!Workspace} */ (opt_newNode.getLocation())).id;
|
|
48
|
+
}
|
|
49
|
+
super(workspaceId);
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
/**
|
|
52
|
+
* The workspace identifier for this event.
|
|
53
|
+
* @type {?string}
|
|
54
|
+
*/
|
|
55
|
+
this.blockId = opt_block ? opt_block.id : null;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The old node the marker used to be on.
|
|
59
|
+
* @type {?ASTNode|undefined}
|
|
60
|
+
*/
|
|
61
|
+
this.oldNode = opt_oldNode;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The new node the marker is now on.
|
|
65
|
+
* @type {ASTNode|undefined}
|
|
66
|
+
*/
|
|
67
|
+
this.newNode = opt_newNode;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Whether this is a cursor event.
|
|
71
|
+
* @type {boolean|undefined}
|
|
72
|
+
*/
|
|
73
|
+
this.isCursor = isCursor;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Type of this event.
|
|
77
|
+
* @type {string}
|
|
78
|
+
*/
|
|
79
|
+
this.type = eventUtils.MARKER_MOVE;
|
|
80
|
+
}
|
|
61
81
|
|
|
62
82
|
/**
|
|
63
|
-
*
|
|
64
|
-
* @
|
|
83
|
+
* Encode the event as JSON.
|
|
84
|
+
* @return {!Object} JSON representation.
|
|
65
85
|
*/
|
|
66
|
-
|
|
86
|
+
toJson() {
|
|
87
|
+
const json = super.toJson();
|
|
88
|
+
json['isCursor'] = this.isCursor;
|
|
89
|
+
json['blockId'] = this.blockId;
|
|
90
|
+
json['oldNode'] = this.oldNode;
|
|
91
|
+
json['newNode'] = this.newNode;
|
|
92
|
+
return json;
|
|
93
|
+
}
|
|
67
94
|
|
|
68
95
|
/**
|
|
69
|
-
*
|
|
70
|
-
* @
|
|
96
|
+
* Decode the JSON event.
|
|
97
|
+
* @param {!Object} json JSON representation.
|
|
71
98
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
MarkerMove.prototype.type = eventUtils.MARKER_MOVE;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Encode the event as JSON.
|
|
84
|
-
* @return {!Object} JSON representation.
|
|
85
|
-
*/
|
|
86
|
-
MarkerMove.prototype.toJson = function() {
|
|
87
|
-
const json = MarkerMove.superClass_.toJson.call(this);
|
|
88
|
-
json['isCursor'] = this.isCursor;
|
|
89
|
-
json['blockId'] = this.blockId;
|
|
90
|
-
json['oldNode'] = this.oldNode;
|
|
91
|
-
json['newNode'] = this.newNode;
|
|
92
|
-
return json;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Decode the JSON event.
|
|
97
|
-
* @param {!Object} json JSON representation.
|
|
98
|
-
*/
|
|
99
|
-
MarkerMove.prototype.fromJson = function(json) {
|
|
100
|
-
MarkerMove.superClass_.fromJson.call(this, json);
|
|
101
|
-
this.isCursor = json['isCursor'];
|
|
102
|
-
this.blockId = json['blockId'];
|
|
103
|
-
this.oldNode = json['oldNode'];
|
|
104
|
-
this.newNode = json['newNode'];
|
|
105
|
-
};
|
|
99
|
+
fromJson(json) {
|
|
100
|
+
super.fromJson(json);
|
|
101
|
+
this.isCursor = json['isCursor'];
|
|
102
|
+
this.blockId = json['blockId'];
|
|
103
|
+
this.oldNode = json['oldNode'];
|
|
104
|
+
this.newNode = json['newNode'];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
106
107
|
|
|
107
108
|
registry.register(registry.Type.EVENT, eventUtils.MARKER_MOVE, MarkerMove);
|
|
108
109
|
|
|
@@ -16,66 +16,67 @@
|
|
|
16
16
|
goog.module('Blockly.Events.Selected');
|
|
17
17
|
|
|
18
18
|
const eventUtils = goog.require('Blockly.Events.utils');
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const registry = goog.require('Blockly.registry');
|
|
21
20
|
const {UiBase} = goog.require('Blockly.Events.UiBase');
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
/**
|
|
25
24
|
* Class for a selected event.
|
|
26
|
-
* @param {?string=} opt_oldElementId The ID of the previously selected
|
|
27
|
-
* element. Null if no element last selected. Undefined for a blank event.
|
|
28
|
-
* @param {?string=} opt_newElementId The ID of the selected element. Null if no
|
|
29
|
-
* element currently selected (deselect). Undefined for a blank event.
|
|
30
|
-
* @param {string=} opt_workspaceId The workspace identifier for this event.
|
|
31
|
-
* Null if no element previously selected. Undefined for a blank event.
|
|
32
25
|
* @extends {UiBase}
|
|
33
|
-
* @constructor
|
|
34
26
|
* @alias Blockly.Events.Selected
|
|
35
27
|
*/
|
|
36
|
-
|
|
37
|
-
Selected.superClass_.constructor.call(this, opt_workspaceId);
|
|
38
|
-
|
|
28
|
+
class Selected extends UiBase {
|
|
39
29
|
/**
|
|
40
|
-
* The
|
|
41
|
-
*
|
|
30
|
+
* @param {?string=} opt_oldElementId The ID of the previously selected
|
|
31
|
+
* element. Null if no element last selected. Undefined for a blank event.
|
|
32
|
+
* @param {?string=} opt_newElementId The ID of the selected element. Null if
|
|
33
|
+
* no element currently selected (deselect). Undefined for a blank event.
|
|
34
|
+
* @param {string=} opt_workspaceId The workspace identifier for this event.
|
|
35
|
+
* Null if no element previously selected. Undefined for a blank event.
|
|
42
36
|
*/
|
|
43
|
-
|
|
37
|
+
constructor(opt_oldElementId, opt_newElementId, opt_workspaceId) {
|
|
38
|
+
super(opt_workspaceId);
|
|
44
39
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
object.inherits(Selected, UiBase);
|
|
40
|
+
/**
|
|
41
|
+
* The id of the last selected element.
|
|
42
|
+
* @type {?string|undefined}
|
|
43
|
+
*/
|
|
44
|
+
this.oldElementId = opt_oldElementId;
|
|
52
45
|
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
/**
|
|
47
|
+
* The id of the selected element.
|
|
48
|
+
* @type {?string|undefined}
|
|
49
|
+
*/
|
|
50
|
+
this.newElementId = opt_newElementId;
|
|
58
51
|
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
json['oldElementId'] = this.oldElementId;
|
|
66
|
-
json['newElementId'] = this.newElementId;
|
|
67
|
-
return json;
|
|
68
|
-
};
|
|
52
|
+
/**
|
|
53
|
+
* Type of this event.
|
|
54
|
+
* @type {string}
|
|
55
|
+
*/
|
|
56
|
+
this.type = eventUtils.SELECTED;
|
|
57
|
+
}
|
|
69
58
|
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Encode the event as JSON.
|
|
61
|
+
* @return {!Object} JSON representation.
|
|
62
|
+
*/
|
|
63
|
+
toJson() {
|
|
64
|
+
const json = super.toJson();
|
|
65
|
+
json['oldElementId'] = this.oldElementId;
|
|
66
|
+
json['newElementId'] = this.newElementId;
|
|
67
|
+
return json;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Decode the JSON event.
|
|
72
|
+
* @param {!Object} json JSON representation.
|
|
73
|
+
*/
|
|
74
|
+
fromJson(json) {
|
|
75
|
+
super.fromJson(json);
|
|
76
|
+
this.oldElementId = json['oldElementId'];
|
|
77
|
+
this.newElementId = json['newElementId'];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
79
80
|
|
|
80
81
|
registry.register(registry.Type.EVENT, eventUtils.SELECTED, Selected);
|
|
81
82
|
|
|
@@ -16,55 +16,56 @@
|
|
|
16
16
|
goog.module('Blockly.Events.ThemeChange');
|
|
17
17
|
|
|
18
18
|
const eventUtils = goog.require('Blockly.Events.utils');
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const registry = goog.require('Blockly.registry');
|
|
21
20
|
const {UiBase} = goog.require('Blockly.Events.UiBase');
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
/**
|
|
25
24
|
* Class for a theme change event.
|
|
26
|
-
* @param {string=} opt_themeName The theme name. Undefined for a blank event.
|
|
27
|
-
* @param {string=} opt_workspaceId The workspace identifier for this event.
|
|
28
|
-
* event. Undefined for a blank event.
|
|
29
25
|
* @extends {UiBase}
|
|
30
|
-
* @constructor
|
|
31
26
|
* @alias Blockly.Events.ThemeChange
|
|
32
27
|
*/
|
|
33
|
-
|
|
34
|
-
ThemeChange.superClass_.constructor.call(this, opt_workspaceId);
|
|
35
|
-
|
|
28
|
+
class ThemeChange extends UiBase {
|
|
36
29
|
/**
|
|
37
|
-
* The theme name.
|
|
38
|
-
* @
|
|
30
|
+
* @param {string=} opt_themeName The theme name. Undefined for a blank event.
|
|
31
|
+
* @param {string=} opt_workspaceId The workspace identifier for this event.
|
|
32
|
+
* event. Undefined for a blank event.
|
|
39
33
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
object.inherits(ThemeChange, UiBase);
|
|
34
|
+
constructor(opt_themeName, opt_workspaceId) {
|
|
35
|
+
super(opt_workspaceId);
|
|
43
36
|
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
/**
|
|
38
|
+
* The theme name.
|
|
39
|
+
* @type {string|undefined}
|
|
40
|
+
*/
|
|
41
|
+
this.themeName = opt_themeName;
|
|
49
42
|
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
json['themeName'] = this.themeName;
|
|
57
|
-
return json;
|
|
58
|
-
};
|
|
43
|
+
/**
|
|
44
|
+
* Type of this event.
|
|
45
|
+
* @type {string}
|
|
46
|
+
*/
|
|
47
|
+
this.type = eventUtils.THEME_CHANGE;
|
|
48
|
+
}
|
|
59
49
|
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Encode the event as JSON.
|
|
52
|
+
* @return {!Object} JSON representation.
|
|
53
|
+
*/
|
|
54
|
+
toJson() {
|
|
55
|
+
const json = super.toJson();
|
|
56
|
+
json['themeName'] = this.themeName;
|
|
57
|
+
return json;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Decode the JSON event.
|
|
62
|
+
* @param {!Object} json JSON representation.
|
|
63
|
+
*/
|
|
64
|
+
fromJson(json) {
|
|
65
|
+
super.fromJson(json);
|
|
66
|
+
this.themeName = json['themeName'];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
68
69
|
|
|
69
70
|
registry.register(registry.Type.EVENT, eventUtils.THEME_CHANGE, ThemeChange);
|
|
70
71
|
|