scratch-blocks 2.0.2 → 2.0.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/.nvmrc +1 -1
- 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 +7 -10
- 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 +7 -9
- 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 -55
- 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 +3 -12
- 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 +13 -10
- 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 +488 -536
- 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 +136 -250
- 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 +52 -73
- package/src/flyout_checkbox_icon.ts +18 -28
- package/src/glows.ts +51 -58
- package/src/index.ts +119 -133
- package/src/procedures.ts +144 -211
- 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 +13 -15
- 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 +22 -17
- package/src/scratch_continuous_category.ts +24 -28
- package/src/scratch_continuous_toolbox.ts +20 -27
- package/src/scratch_dragger.ts +54 -86
- 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,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license
|
|
3
2
|
* Visual Blocks Editor
|
|
4
3
|
*
|
|
5
4
|
* Copyright 2018 Google Inc.
|
|
@@ -17,14 +16,12 @@
|
|
|
17
16
|
* See the License for the specific language governing permissions and
|
|
18
17
|
* limitations under the License.
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
19
|
/**
|
|
22
|
-
* @
|
|
20
|
+
* @file Class for a category header in the flyout for Scratch
|
|
23
21
|
* extensions which can display a textual label and a status button.
|
|
24
22
|
* @author ericr@media.mit.edu (Eric Rosenbaum)
|
|
25
23
|
*/
|
|
26
|
-
|
|
27
|
-
import * as Blockly from "blockly/core";
|
|
24
|
+
import * as Blockly from 'blockly/core'
|
|
28
25
|
|
|
29
26
|
/**
|
|
30
27
|
* Class for a category header in the flyout for Scratch extensions which can
|
|
@@ -34,26 +31,25 @@ export class StatusIndicatorLabel extends Blockly.FlyoutButton {
|
|
|
34
31
|
/**
|
|
35
32
|
* The ID of the Scratch extension whose status is indicated by this label.
|
|
36
33
|
*/
|
|
37
|
-
extensionId: string
|
|
34
|
+
extensionId: string
|
|
38
35
|
|
|
39
36
|
/**
|
|
40
37
|
* DOM element that displays the status indicator dot.
|
|
41
38
|
*/
|
|
42
|
-
imageElement: SVGImageElement
|
|
39
|
+
imageElement: SVGImageElement
|
|
43
40
|
|
|
44
41
|
/**
|
|
45
42
|
* Opaque data for mouse up listener used to unbind it in dispose().
|
|
46
43
|
*/
|
|
47
|
-
mouseUpWrapper: Blockly.browserEvents.Data
|
|
44
|
+
mouseUpWrapper: Blockly.browserEvents.Data
|
|
48
45
|
|
|
49
46
|
/**
|
|
50
47
|
* Function to be invoked when the status indicator is clicked.
|
|
51
48
|
*/
|
|
52
|
-
static statusButtonCallback: (extensionId: string) => void
|
|
49
|
+
static statusButtonCallback: (extensionId: string) => void
|
|
53
50
|
|
|
54
51
|
/**
|
|
55
52
|
* Creates a new StatusIndicatorLabel.
|
|
56
|
-
*
|
|
57
53
|
* @param workspace The workspace in which to place this header.
|
|
58
54
|
* @param targetWorkspace The flyout's target workspace.
|
|
59
55
|
* @param json The JSON specifying the header.
|
|
@@ -61,74 +57,69 @@ export class StatusIndicatorLabel extends Blockly.FlyoutButton {
|
|
|
61
57
|
constructor(
|
|
62
58
|
workspace: Blockly.WorkspaceSvg,
|
|
63
59
|
targetWorkspace: Blockly.WorkspaceSvg,
|
|
64
|
-
json: Blockly.utils.toolbox.LabelInfo
|
|
60
|
+
json: Blockly.utils.toolbox.LabelInfo,
|
|
65
61
|
) {
|
|
66
|
-
super(workspace, targetWorkspace, json, true)
|
|
67
|
-
this.extensionId = json
|
|
62
|
+
super(workspace, targetWorkspace, json, true)
|
|
63
|
+
this.extensionId = json.id!
|
|
68
64
|
|
|
69
|
-
const heightDelta = 40 - this.height
|
|
70
|
-
this.height = 40
|
|
71
|
-
const text = this.getSvgRoot().querySelector(
|
|
72
|
-
const previousY = Number(text.getAttribute(
|
|
65
|
+
const heightDelta = 40 - this.height
|
|
66
|
+
this.height = 40
|
|
67
|
+
const text = this.getSvgRoot().querySelector('text')!
|
|
68
|
+
const previousY = Number(text.getAttribute('y'))
|
|
73
69
|
|
|
74
|
-
text.setAttribute(
|
|
70
|
+
text.setAttribute('y', `${previousY + heightDelta / 2}`)
|
|
75
71
|
|
|
76
|
-
const statusButtonWidth = 30
|
|
77
|
-
const marginX = 20
|
|
78
|
-
const marginY = 5
|
|
79
|
-
const touchPadding = 16
|
|
80
|
-
const flyoutWidth = targetWorkspace.getFlyout()!.getWidth()
|
|
72
|
+
const statusButtonWidth = 30
|
|
73
|
+
const marginX = 20
|
|
74
|
+
const marginY = 5
|
|
75
|
+
const touchPadding = 16
|
|
76
|
+
const flyoutWidth = targetWorkspace.getFlyout()!.getWidth()
|
|
81
77
|
|
|
82
78
|
const statusButtonX = workspace.RTL
|
|
83
79
|
? marginX - flyoutWidth + statusButtonWidth
|
|
84
|
-
: (flyoutWidth - statusButtonWidth - marginX) / workspace.scale
|
|
80
|
+
: (flyoutWidth - statusButtonWidth - marginX) / workspace.scale
|
|
85
81
|
|
|
86
82
|
this.imageElement = Blockly.utils.dom.createSvgElement(
|
|
87
|
-
|
|
83
|
+
'image',
|
|
88
84
|
{
|
|
89
|
-
class:
|
|
90
|
-
height: statusButtonWidth +
|
|
91
|
-
width: statusButtonWidth +
|
|
92
|
-
x: statusButtonX +
|
|
93
|
-
y: marginY +
|
|
85
|
+
class: 'blocklyFlyoutButton',
|
|
86
|
+
height: statusButtonWidth + 'px',
|
|
87
|
+
width: statusButtonWidth + 'px',
|
|
88
|
+
x: statusButtonX + 'px',
|
|
89
|
+
y: marginY + 'px',
|
|
94
90
|
},
|
|
95
|
-
this.getSvgRoot()
|
|
96
|
-
)
|
|
91
|
+
this.getSvgRoot(),
|
|
92
|
+
)
|
|
97
93
|
const imageElementBackground = Blockly.utils.dom.createSvgElement(
|
|
98
|
-
|
|
94
|
+
'rect',
|
|
99
95
|
{
|
|
100
|
-
class:
|
|
101
|
-
height: statusButtonWidth + 2 * touchPadding +
|
|
102
|
-
width: statusButtonWidth + 2 * touchPadding +
|
|
103
|
-
x: statusButtonX - touchPadding +
|
|
104
|
-
y: marginY - touchPadding +
|
|
96
|
+
class: 'blocklyTouchTargetBackground',
|
|
97
|
+
height: statusButtonWidth + 2 * touchPadding + 'px',
|
|
98
|
+
width: statusButtonWidth + 2 * touchPadding + 'px',
|
|
99
|
+
x: statusButtonX - touchPadding + 'px',
|
|
100
|
+
y: marginY - touchPadding + 'px',
|
|
105
101
|
},
|
|
106
|
-
this.getSvgRoot()
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
this.refreshStatus()
|
|
110
|
-
|
|
111
|
-
this.mouseUpWrapper = Blockly.browserEvents.bind(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
null,
|
|
115
|
-
() => {
|
|
116
|
-
StatusIndicatorLabel.statusButtonCallback?.call(this, this.extensionId);
|
|
117
|
-
}
|
|
118
|
-
);
|
|
102
|
+
this.getSvgRoot(),
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
this.refreshStatus()
|
|
106
|
+
|
|
107
|
+
this.mouseUpWrapper = Blockly.browserEvents.bind(imageElementBackground, 'mouseup', null, () => {
|
|
108
|
+
StatusIndicatorLabel.statusButtonCallback?.call(this, this.extensionId)
|
|
109
|
+
})
|
|
119
110
|
}
|
|
120
111
|
|
|
121
112
|
/**
|
|
122
113
|
* Set the image on the status button using a status string.
|
|
123
114
|
*/
|
|
124
115
|
refreshStatus() {
|
|
125
|
-
|
|
126
|
-
|
|
116
|
+
const status = this.getExtensionState(this.extensionId)
|
|
117
|
+
const basePath = Blockly.getMainWorkspace().options.pathToMedia
|
|
127
118
|
if (status == StatusButtonState.READY) {
|
|
128
|
-
this.setImageSrc(basePath +
|
|
119
|
+
this.setImageSrc(basePath + 'status-ready.svg')
|
|
129
120
|
}
|
|
130
121
|
if (status == StatusButtonState.NOT_READY) {
|
|
131
|
-
this.setImageSrc(basePath +
|
|
122
|
+
this.setImageSrc(basePath + 'status-not-ready.svg')
|
|
132
123
|
}
|
|
133
124
|
}
|
|
134
125
|
|
|
@@ -139,29 +130,25 @@ export class StatusIndicatorLabel extends Blockly.FlyoutButton {
|
|
|
139
130
|
*/
|
|
140
131
|
setImageSrc(src: string) {
|
|
141
132
|
if (this.imageElement) {
|
|
142
|
-
this.imageElement.setAttributeNS(
|
|
143
|
-
"http://www.w3.org/1999/xlink",
|
|
144
|
-
"xlink:href",
|
|
145
|
-
src
|
|
146
|
-
);
|
|
133
|
+
this.imageElement.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', src)
|
|
147
134
|
}
|
|
148
135
|
}
|
|
149
136
|
|
|
150
137
|
/**
|
|
151
138
|
* Gets the extension state. Overridden externally.
|
|
152
|
-
* @param extensionId
|
|
153
|
-
* @
|
|
139
|
+
* @param extensionId A string identifying which extension's state to retrieve.
|
|
140
|
+
* @returns Whether the extension is ready to be used.
|
|
154
141
|
*/
|
|
155
142
|
getExtensionState(extensionId: string): StatusButtonState {
|
|
156
|
-
return StatusButtonState.NOT_READY
|
|
143
|
+
return StatusButtonState.NOT_READY
|
|
157
144
|
}
|
|
158
145
|
|
|
159
146
|
/**
|
|
160
147
|
* Disposes of this status indicator label.
|
|
161
148
|
*/
|
|
162
149
|
dispose() {
|
|
163
|
-
Blockly.browserEvents.unbind(this.mouseUpWrapper)
|
|
164
|
-
super.dispose()
|
|
150
|
+
Blockly.browserEvents.unbind(this.mouseUpWrapper)
|
|
151
|
+
super.dispose()
|
|
165
152
|
}
|
|
166
153
|
}
|
|
167
154
|
|
|
@@ -169,6 +156,6 @@ export class StatusIndicatorLabel extends Blockly.FlyoutButton {
|
|
|
169
156
|
* Set of available states for a status indicator.
|
|
170
157
|
*/
|
|
171
158
|
export enum StatusButtonState {
|
|
172
|
-
READY =
|
|
173
|
-
NOT_READY =
|
|
159
|
+
READY = 'ready',
|
|
160
|
+
NOT_READY = 'not ready',
|
|
174
161
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license
|
|
3
2
|
* Copyright 2024 Google LLC
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
4
|
*/
|
|
5
|
+
import * as Blockly from 'blockly/core'
|
|
6
|
+
import { StatusIndicatorLabel } from './status_indicator_label'
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
import { StatusIndicatorLabel } from "./status_indicator_label";
|
|
9
|
-
|
|
10
|
-
export const STATUS_INDICATOR_LABEL_TYPE = "status_indicator_label";
|
|
8
|
+
export const STATUS_INDICATOR_LABEL_TYPE = 'status_indicator_label'
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* Flyout inflater responsible for creating status indicator labels.
|
|
@@ -16,31 +14,23 @@ class StatusIndicatorLabelFlyoutInflater extends Blockly.LabelFlyoutInflater {
|
|
|
16
14
|
/**
|
|
17
15
|
* Creates a status indicator label on the flyout from the given state.
|
|
18
16
|
* @param state JSON representation of a status indicator label.
|
|
19
|
-
* @param
|
|
20
|
-
* label on.
|
|
17
|
+
* @param flyout The flyout on which to create the label.
|
|
21
18
|
* @returns The newly created status indicator label.
|
|
22
19
|
*/
|
|
23
|
-
load(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const label = new StatusIndicatorLabel(
|
|
28
|
-
flyout.getWorkspace(),
|
|
29
|
-
flyout.targetWorkspace!,
|
|
30
|
-
state
|
|
31
|
-
);
|
|
32
|
-
label.show();
|
|
33
|
-
return new Blockly.FlyoutItem(label, STATUS_INDICATOR_LABEL_TYPE);
|
|
20
|
+
load(state: Blockly.utils.toolbox.LabelInfo, flyout: Blockly.IFlyout): Blockly.FlyoutItem {
|
|
21
|
+
const label = new StatusIndicatorLabel(flyout.getWorkspace(), flyout.targetWorkspace!, state)
|
|
22
|
+
label.show()
|
|
23
|
+
return new Blockly.FlyoutItem(label, STATUS_INDICATOR_LABEL_TYPE)
|
|
34
24
|
}
|
|
35
25
|
}
|
|
36
26
|
|
|
37
27
|
/**
|
|
38
|
-
*
|
|
28
|
+
* Adds the status indicator label flyout inflater to the Blockly component registry.
|
|
39
29
|
*/
|
|
40
30
|
export function registerStatusIndicatorLabelFlyoutInflater() {
|
|
41
31
|
Blockly.registry.register(
|
|
42
32
|
Blockly.registry.Type.FLYOUT_INFLATER,
|
|
43
33
|
STATUS_INDICATOR_LABEL_TYPE,
|
|
44
|
-
StatusIndicatorLabelFlyoutInflater
|
|
45
|
-
)
|
|
34
|
+
StatusIndicatorLabelFlyoutInflater,
|
|
35
|
+
)
|
|
46
36
|
}
|