blockly 9.3.0-beta.0 → 9.3.1
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.min.js +1674 -1520
- package/blockly_compressed.js +1313 -1152
- package/blockly_compressed.js.map +1 -1
- package/blocks_compressed.js +166 -173
- package/blocks_compressed.js.map +1 -1
- package/core/any_aliases.d.ts +5 -0
- package/core/block.d.ts +49 -17
- package/core/block_animations.d.ts +0 -4
- package/core/block_drag_surface.d.ts +135 -0
- package/core/block_dragger.d.ts +2 -7
- package/core/block_svg.d.ts +72 -9
- package/core/blockly.d.ts +29 -58
- package/core/blockly_options.d.ts +0 -2
- package/core/blocks.d.ts +0 -2
- package/core/browser_events.d.ts +0 -9
- package/core/bubble.d.ts +6 -4
- package/core/bubble_dragger.d.ts +2 -3
- package/core/bump_objects.d.ts +0 -3
- package/core/clipboard.d.ts +0 -3
- package/core/comment.d.ts +6 -10
- package/core/common.d.ts +0 -12
- package/core/component_manager.d.ts +0 -2
- package/core/connection.d.ts +19 -6
- package/core/connection_checker.d.ts +1 -3
- package/core/connection_db.d.ts +0 -2
- package/core/connection_type.d.ts +0 -2
- package/core/constants.d.ts +0 -4
- package/core/contextmenu.d.ts +0 -11
- package/core/contextmenu_items.d.ts +0 -27
- package/core/contextmenu_registry.d.ts +0 -2
- package/core/css.d.ts +0 -2
- package/core/delete_area.d.ts +0 -2
- package/core/dialog.d.ts +0 -6
- package/core/drag_target.d.ts +0 -2
- package/core/events/events_abstract.d.ts +0 -3
- package/core/events/events_block_base.d.ts +0 -2
- package/core/events/events_block_change.d.ts +0 -2
- package/core/events/events_block_create.d.ts +0 -2
- package/core/events/events_block_delete.d.ts +0 -2
- package/core/events/events_block_drag.d.ts +0 -2
- package/core/events/events_block_move.d.ts +0 -2
- package/core/events/events_bubble_open.d.ts +0 -2
- package/core/events/events_click.d.ts +0 -2
- package/core/events/events_comment_base.d.ts +0 -2
- package/core/events/events_comment_change.d.ts +0 -2
- package/core/events/events_comment_create.d.ts +0 -2
- package/core/events/events_comment_delete.d.ts +0 -2
- package/core/events/events_comment_move.d.ts +0 -2
- package/core/events/events_marker_move.d.ts +0 -2
- package/core/events/events_selected.d.ts +0 -2
- package/core/events/events_theme_change.d.ts +0 -2
- package/core/events/events_toolbox_item_select.d.ts +0 -2
- package/core/events/events_trashcan_open.d.ts +0 -2
- package/core/events/events_ui.d.ts +0 -1
- package/core/events/events_ui_base.d.ts +0 -2
- package/core/events/events_var_base.d.ts +0 -2
- package/core/events/events_var_create.d.ts +0 -2
- package/core/events/events_viewport.d.ts +0 -2
- package/core/events/utils.d.ts +0 -73
- package/core/events/workspace_events.d.ts +0 -2
- package/core/extensions.d.ts +0 -8
- package/core/field.d.ts +16 -15
- package/core/field_angle.d.ts +60 -50
- package/core/field_checkbox.d.ts +22 -10
- package/core/field_colour.d.ts +55 -42
- package/core/field_dropdown.d.ts +34 -18
- package/core/field_image.d.ts +9 -12
- package/core/field_input.d.ts +34 -11
- package/core/field_label.d.ts +7 -10
- package/core/field_label_serializable.d.ts +4 -6
- package/core/field_multilineinput.d.ts +34 -12
- package/core/field_number.d.ts +27 -19
- package/core/field_registry.d.ts +0 -3
- package/core/field_textinput.d.ts +28 -12
- package/core/field_variable.d.ts +28 -16
- package/core/flyout_base.d.ts +5 -6
- package/core/flyout_button.d.ts +2 -2
- package/core/flyout_horizontal.d.ts +0 -2
- package/core/flyout_metrics_manager.d.ts +0 -2
- package/core/flyout_vertical.d.ts +0 -2
- package/core/generator.d.ts +0 -1
- package/core/gesture.d.ts +4 -17
- package/core/grid.d.ts +0 -2
- package/core/icon.d.ts +0 -2
- package/core/inject.d.ts +0 -1
- package/core/input.d.ts +0 -3
- package/core/input_types.d.ts +0 -2
- package/core/insertion_marker_manager.d.ts +6 -6
- package/core/interfaces/i_ast_node_location.d.ts +0 -2
- package/core/interfaces/i_ast_node_location_svg.d.ts +0 -2
- package/core/interfaces/i_ast_node_location_with_block.d.ts +0 -2
- package/core/interfaces/i_autohideable.d.ts +0 -2
- package/core/interfaces/i_block_dragger.d.ts +1 -3
- package/core/interfaces/i_bounded_element.d.ts +0 -2
- package/core/interfaces/i_bubble.d.ts +6 -4
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +0 -2
- package/core/interfaces/i_component.d.ts +0 -2
- package/core/interfaces/i_connection_checker.d.ts +0 -2
- package/core/interfaces/i_contextmenu.d.ts +0 -1
- package/core/interfaces/i_copyable.d.ts +3 -2
- package/core/interfaces/i_deletable.d.ts +0 -2
- package/core/interfaces/i_delete_area.d.ts +0 -2
- package/core/interfaces/i_drag_target.d.ts +0 -2
- package/core/interfaces/i_draggable.d.ts +0 -2
- package/core/interfaces/i_flyout.d.ts +0 -2
- package/core/interfaces/i_keyboard_accessible.d.ts +0 -2
- package/core/interfaces/i_legacy_procedure_blocks.d.ts +34 -0
- package/core/interfaces/i_metrics_manager.d.ts +0 -2
- package/core/interfaces/i_movable.d.ts +0 -2
- package/core/interfaces/i_positionable.d.ts +0 -2
- package/core/interfaces/i_procedure_model.d.ts +0 -5
- package/core/interfaces/i_registrable.d.ts +0 -2
- package/core/interfaces/i_selectable.d.ts +0 -2
- package/core/interfaces/i_selectable_toolbox_item.d.ts +4 -2
- package/core/interfaces/i_serializer.d.ts +0 -2
- package/core/interfaces/i_styleable.d.ts +0 -2
- package/core/interfaces/i_toolbox.d.ts +0 -2
- package/core/interfaces/i_toolbox_item.d.ts +0 -2
- package/core/interfaces/i_variable_backed_parameter_model.d.ts +17 -0
- package/core/internal_constants.d.ts +0 -5
- package/core/keyboard_nav/ast_node.d.ts +0 -3
- package/core/keyboard_nav/basic_cursor.d.ts +0 -3
- package/core/keyboard_nav/cursor.d.ts +0 -3
- package/core/keyboard_nav/marker.d.ts +0 -2
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +0 -2
- package/core/marker_manager.d.ts +0 -2
- package/core/menu.d.ts +0 -2
- package/core/menuitem.d.ts +0 -2
- package/core/metrics_manager.d.ts +0 -2
- package/core/mutator.d.ts +0 -2
- package/core/names.d.ts +0 -3
- package/core/options.d.ts +0 -2
- package/core/positionable_helpers.d.ts +0 -7
- package/core/procedures.d.ts +2 -25
- package/core/registry.d.ts +0 -11
- package/core/render_management.d.ts +15 -0
- package/core/rendered_connection.d.ts +22 -9
- package/core/renderers/common/block_rendering.d.ts +0 -3
- package/core/renderers/common/constants.d.ts +6 -51
- package/core/renderers/common/debug.d.ts +0 -3
- package/core/renderers/common/debugger.d.ts +9 -23
- package/core/renderers/common/drawer.d.ts +0 -5
- package/core/renderers/common/i_path_object.d.ts +0 -17
- package/core/renderers/common/info.d.ts +2 -12
- package/core/renderers/common/marker_svg.d.ts +2 -4
- package/core/renderers/common/path_object.d.ts +0 -24
- package/core/renderers/common/renderer.d.ts +5 -20
- package/core/renderers/geras/constants.d.ts +0 -5
- package/core/renderers/geras/drawer.d.ts +2 -4
- package/core/renderers/geras/highlight_constants.d.ts +6 -17
- package/core/renderers/geras/highlighter.d.ts +0 -13
- package/core/renderers/geras/info.d.ts +2 -5
- package/core/renderers/geras/measurables/inline_input.d.ts +0 -3
- package/core/renderers/geras/measurables/statement_input.d.ts +0 -3
- package/core/renderers/geras/path_object.d.ts +0 -8
- package/core/renderers/geras/renderer.d.ts +5 -7
- package/core/renderers/measurables/base.d.ts +0 -3
- package/core/renderers/measurables/bottom_row.d.ts +0 -9
- package/core/renderers/measurables/connection.d.ts +0 -3
- package/core/renderers/measurables/external_value_input.d.ts +0 -3
- package/core/renderers/measurables/field.d.ts +0 -3
- package/core/renderers/measurables/hat.d.ts +0 -3
- package/core/renderers/measurables/icon.d.ts +2 -5
- package/core/renderers/measurables/in_row_spacer.d.ts +0 -3
- package/core/renderers/measurables/inline_input.d.ts +1 -4
- package/core/renderers/measurables/input_connection.d.ts +1 -4
- package/core/renderers/measurables/input_row.d.ts +0 -7
- package/core/renderers/measurables/jagged_edge.d.ts +2 -5
- package/core/renderers/measurables/next_connection.d.ts +0 -3
- package/core/renderers/measurables/output_connection.d.ts +0 -3
- package/core/renderers/measurables/previous_connection.d.ts +0 -3
- package/core/renderers/measurables/round_corner.d.ts +0 -3
- package/core/renderers/measurables/row.d.ts +0 -39
- package/core/renderers/measurables/spacer_row.d.ts +0 -3
- package/core/renderers/measurables/square_corner.d.ts +0 -3
- package/core/renderers/measurables/statement_input.d.ts +0 -3
- package/core/renderers/measurables/top_row.d.ts +0 -6
- package/core/renderers/measurables/types.d.ts +0 -31
- package/core/renderers/minimalist/constants.d.ts +2 -4
- package/core/renderers/minimalist/drawer.d.ts +0 -3
- package/core/renderers/minimalist/info.d.ts +0 -4
- package/core/renderers/minimalist/renderer.d.ts +0 -3
- package/core/renderers/thrasos/info.d.ts +0 -4
- package/core/renderers/thrasos/renderer.d.ts +3 -3
- package/core/renderers/zelos/constants.d.ts +3 -17
- package/core/renderers/zelos/drawer.d.ts +0 -3
- package/core/renderers/zelos/info.d.ts +0 -4
- package/core/renderers/zelos/marker_svg.d.ts +0 -2
- package/core/renderers/zelos/measurables/bottom_row.d.ts +0 -3
- package/core/renderers/zelos/measurables/inputs.d.ts +0 -3
- package/core/renderers/zelos/measurables/row_elements.d.ts +0 -3
- package/core/renderers/zelos/measurables/top_row.d.ts +0 -3
- package/core/renderers/zelos/path_object.d.ts +0 -9
- package/core/renderers/zelos/renderer.d.ts +3 -5
- package/core/scrollbar.d.ts +0 -2
- package/core/scrollbar_pair.d.ts +0 -2
- package/core/serialization/blocks.d.ts +3 -9
- package/core/serialization/exceptions.d.ts +0 -8
- package/core/serialization/priorities.d.ts +0 -4
- package/core/serialization/registry.d.ts +0 -2
- package/core/serialization/variables.d.ts +0 -4
- package/core/serialization/workspaces.d.ts +0 -2
- package/core/shortcut_items.d.ts +0 -17
- package/core/shortcut_registry.d.ts +0 -2
- package/core/sprites.d.ts +0 -2
- package/core/theme/classic.d.ts +0 -2
- package/core/theme/zelos.d.ts +0 -2
- package/core/theme.d.ts +0 -2
- package/core/theme_manager.d.ts +3 -6
- package/core/toolbox/category.d.ts +5 -7
- package/core/toolbox/collapsible_category.d.ts +0 -4
- package/core/toolbox/separator.d.ts +0 -2
- package/core/toolbox/toolbox.d.ts +2 -5
- package/core/toolbox/toolbox_item.d.ts +0 -2
- package/core/tooltip.d.ts +0 -29
- package/core/touch.d.ts +0 -13
- package/core/trashcan.d.ts +0 -2
- package/core/utils/aria.d.ts +0 -6
- package/core/utils/array.d.ts +0 -1
- package/core/utils/colour.d.ts +0 -12
- package/core/utils/coordinate.d.ts +0 -2
- package/core/utils/deprecation.d.ts +0 -1
- package/core/utils/dom.d.ts +0 -25
- package/core/utils/idgenerator.d.ts +0 -2
- package/core/utils/keycodes.d.ts +0 -2
- package/core/utils/math.d.ts +0 -3
- package/core/utils/metrics.d.ts +0 -1
- package/core/utils/object.d.ts +0 -4
- package/core/utils/parsing.d.ts +0 -4
- package/core/utils/rect.d.ts +0 -2
- package/core/utils/size.d.ts +0 -2
- package/core/utils/string.d.ts +0 -6
- package/core/utils/style.d.ts +0 -8
- package/core/utils/svg.d.ts +0 -2
- package/core/utils/svg_math.d.ts +0 -6
- package/core/utils/svg_paths.d.ts +0 -8
- package/core/utils/toolbox.d.ts +2 -35
- package/core/utils/useragent.d.ts +0 -8
- package/core/utils/xml.d.ts +9 -8
- package/core/utils.d.ts +0 -12
- package/core/variable_map.d.ts +1 -3
- package/core/variable_model.d.ts +0 -1
- package/core/variables.d.ts +13 -17
- package/core/variables_dynamic.d.ts +0 -4
- package/core/warning.d.ts +0 -2
- package/core/widgetdiv.d.ts +0 -10
- package/core/workspace.d.ts +3 -3
- package/core/workspace_audio.d.ts +0 -2
- package/core/workspace_comment.d.ts +1 -3
- package/core/workspace_comment_svg.d.ts +16 -5
- package/core/workspace_drag_surface_svg.d.ts +74 -0
- package/core/workspace_dragger.d.ts +3 -2
- package/core/workspace_svg.d.ts +48 -8
- package/core/xml.d.ts +1 -13
- package/core/zoom_controls.d.ts +4 -15
- package/dart_compressed.js +199 -199
- package/dart_compressed.js.map +1 -1
- package/javascript_compressed.js +168 -168
- package/javascript_compressed.js.map +1 -1
- package/lua_compressed.js +211 -211
- package/lua_compressed.js.map +1 -1
- package/msg/bn.js +2 -2
- package/msg/bs.js +7 -7
- package/msg/de.js +1 -1
- package/msg/fi.js +1 -1
- package/msg/fr.js +3 -3
- package/msg/ia.js +5 -5
- package/msg/kn.js +5 -5
- package/msg/ko.js +1 -1
- package/msg/lb.js +22 -22
- package/msg/sd.js +9 -9
- package/msg/skr-arab.js +2 -2
- package/msg/sl.js +18 -18
- package/msg/sw.js +1 -1
- package/msg/zh-hans.js +6 -6
- package/msg/zh-hant.js +2 -2
- package/package.json +6 -6
- package/php_compressed.js +185 -185
- package/php_compressed.js.map +1 -1
- package/python_compressed.js +138 -138
- package/python_compressed.js.map +1 -1
- package/core/utils/sentinel.d.ts +0 -18
package/python_compressed.js
CHANGED
|
@@ -26,48 +26,104 @@ module$exports$Blockly$Python.pythonGenerator.init=function(a){Object.getPrototy
|
|
|
26
26
|
module$exports$Blockly$Python.pythonGenerator.finish=function(a){const b=[],c=[];for(let d in this.definitions_){const e=this.definitions_[d];e.match(/^(from\s+\S+\s+)?import\s+\S+/)?b.push(e):c.push(e)}a=Object.getPrototypeOf(this).finish.call(this,a);this.isInitialized=!1;this.nameDB_.reset();return(b.join("\n")+"\n\n"+c.join("\n\n")).replace(/\n\n+/g,"\n\n").replace(/\n*$/,"\n\n\n")+a};module$exports$Blockly$Python.pythonGenerator.scrubNakedValue=function(a){return a+"\n"};
|
|
27
27
|
module$exports$Blockly$Python.pythonGenerator.quote_=function(a){a=a.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n");let b="'";-1!==a.indexOf("'")&&(-1===a.indexOf('"')?b='"':a=a.replace(/'/g,"\\'"));return b+a+b};module$exports$Blockly$Python.pythonGenerator.multiline_quote_=function(a){return a.split(/\n/g).map(this.quote_).join(" + '\\n' + \n")};
|
|
28
28
|
module$exports$Blockly$Python.pythonGenerator.scrub_=function(a,b,c){let d="";if(!a.outputConnection||!a.outputConnection.targetConnection){var e=a.getCommentText();e&&(e=$.module$build$src$core$utils$string.wrap(e,this.COMMENT_WRAP-3),d+=this.prefixLines(e+"\n","# "));for(let f=0;f<a.inputList.length;f++)a.inputList[f].type===$.module$build$src$core$input_types.inputTypes.VALUE&&(e=a.inputList[f].connection.targetBlock())&&(e=this.allNestedComments(e))&&(d+=this.prefixLines(e,"# "))}a=a.nextConnection&&
|
|
29
|
-
a.nextConnection.targetBlock();c=c?"":this.blockToCode(a);return d+b+c};module$exports$Blockly$Python.pythonGenerator.getAdjustedInt=function(a,b,c,d){c=c||0;a.workspace.options.oneBasedIndex&&c--;const e=a.workspace.options.oneBasedIndex?"1":"0";a=this.valueToCode(a,b,c?this.ORDER_ADDITIVE:this.ORDER_NONE)||e;$.module$build$src$core$utils$string.isNumber(a)?(a=parseInt(a,10)+c,d&&(a=-a)):(a=0<c?"int("+a+" + "+c+")":0>c?"int("+a+" - "+-c+")":"int("+a+")",d&&(a="-"+a));return a};var module$exports$Blockly$Python$
|
|
30
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
37
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
[
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
a.nextConnection.targetBlock();c=c?"":this.blockToCode(a);return d+b+c};module$exports$Blockly$Python.pythonGenerator.getAdjustedInt=function(a,b,c,d){c=c||0;a.workspace.options.oneBasedIndex&&c--;const e=a.workspace.options.oneBasedIndex?"1":"0";a=this.valueToCode(a,b,c?this.ORDER_ADDITIVE:this.ORDER_NONE)||e;$.module$build$src$core$utils$string.isNumber(a)?(a=parseInt(a,10)+c,d&&(a=-a)):(a=0<c?"int("+a+" + "+c+")":0>c?"int("+a+" - "+-c+")":"int("+a+")",d&&(a="-"+a));return a};var module$exports$Blockly$Python$colour={};module$exports$Blockly$Python.pythonGenerator.colour_picker=function(a){return[module$exports$Blockly$Python.pythonGenerator.quote_(a.getFieldValue("COLOUR")),module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};module$exports$Blockly$Python.pythonGenerator.colour_random=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";return["'#%06x' % random.randint(0, 2**24 - 1)",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
30
|
+
module$exports$Blockly$Python.pythonGenerator.colour_rgb=function(a){const b=module$exports$Blockly$Python.pythonGenerator.provideFunction_("colour_rgb",`
|
|
31
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(r, g, b):
|
|
32
|
+
r = round(min(100, max(0, r)) * 2.55)
|
|
33
|
+
g = round(min(100, max(0, g)) * 2.55)
|
|
34
|
+
b = round(min(100, max(0, b)) * 2.55)
|
|
35
|
+
return '#%02x%02x%02x' % (r, g, b)
|
|
36
|
+
`),c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"RED",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0,d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"GREEN",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"BLUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
37
|
+
module$exports$Blockly$Python.pythonGenerator.colour_blend=function(a){const b=module$exports$Blockly$Python.pythonGenerator.provideFunction_("colour_blend",`
|
|
38
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(colour1, colour2, ratio):
|
|
39
|
+
r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16)
|
|
40
|
+
g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16)
|
|
41
|
+
b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16)
|
|
42
|
+
ratio = min(1, max(0, ratio))
|
|
43
|
+
r = round(r1 * (1 - ratio) + r2 * ratio)
|
|
44
|
+
g = round(g1 * (1 - ratio) + g2 * ratio)
|
|
45
|
+
b = round(b1 * (1 - ratio) + b2 * ratio)
|
|
46
|
+
return '#%02x%02x%02x' % (r, g, b)
|
|
47
|
+
`),c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"COLOUR1",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"'#000000'",d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"COLOUR2",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"'#000000'";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"RATIO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$lists={},module$contents$Blockly$Python$lists_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$Python$lists_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$Python.pythonGenerator.lists_create_empty=function(a){return["[]",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
48
|
+
module$exports$Blockly$Python.pythonGenerator.lists_create_with=function(a){const b=Array(a.itemCount_);for(let c=0;c<a.itemCount_;c++)b[c]=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD"+c,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";return["["+b.join(", ")+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
49
|
+
module$exports$Blockly$Python.pythonGenerator.lists_repeat=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ITEM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"NUM",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE)||"0";return["["+b+"] * "+a,module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE]};
|
|
50
|
+
module$exports$Blockly$Python.pythonGenerator.lists_length=function(a){return["len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
51
|
+
module$exports$Blockly$Python.pythonGenerator.lists_isEmpty=function(a){return["not len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT]};
|
|
52
|
+
module$exports$Blockly$Python.pythonGenerator.lists_indexOf=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FIND",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";let d=" -1",e="",f=" - 1";a.workspace.options.oneBasedIndex&&(d=" 0",e=" + 1",f="");return[("FIRST"===a.getFieldValue("END")?module$exports$Blockly$Python.pythonGenerator.provideFunction_("first_index",
|
|
43
53
|
`
|
|
44
|
-
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
68
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
69
|
-
|
|
70
|
-
|
|
54
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(my_list, elem):
|
|
55
|
+
try: index = my_list.index(elem)${e}
|
|
56
|
+
except: index =${d}
|
|
57
|
+
return index
|
|
58
|
+
`):module$exports$Blockly$Python.pythonGenerator.provideFunction_("last_index",`
|
|
59
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(my_list, elem):
|
|
60
|
+
try: index = len(my_list) - my_list[::-1].index(elem)${f}
|
|
61
|
+
except: index =${d}
|
|
62
|
+
return index
|
|
63
|
+
`))+"("+c+", "+b+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
64
|
+
module$exports$Blockly$Python.pythonGenerator.lists_getIndex=function(a){const b=a.getFieldValue("MODE")||"GET",c=a.getFieldValue("WHERE")||"FROM_START";var d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE","RANDOM"===c?module$exports$Blockly$Python.pythonGenerator.ORDER_NONE:module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"[]";switch(c){case "FIRST":if("GET"===b)return[d+"[0]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];if("GET_REMOVE"===b)return[d+
|
|
65
|
+
".pop(0)",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop(0)\n";break;case "LAST":if("GET"===b)return[d+"[-1]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];if("GET_REMOVE"===b)return[d+".pop()",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop()\n";break;case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT");if("GET"===b)return[d+"["+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];
|
|
66
|
+
if("GET_REMOVE"===b)return[d+".pop("+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop("+a+")\n";break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT",1,!0);if("GET"===b)return[d+"["+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];if("GET_REMOVE"===b)return[d+".pop("+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop("+a+")\n";break;case "RANDOM":module$exports$Blockly$Python.pythonGenerator.definitions_.import_random=
|
|
67
|
+
"import random";if("GET"===b)return["random.choice("+d+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];d=module$exports$Blockly$Python.pythonGenerator.provideFunction_("lists_remove_random_item",`
|
|
68
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(myList):
|
|
69
|
+
x = int(random.random() * len(myList))
|
|
70
|
+
return myList.pop(x)
|
|
71
|
+
`)+"("+d+")";if("GET_REMOVE"===b)return[d,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+"\n"}throw Error("Unhandled combination (lists_getIndex).");};
|
|
72
|
+
module$exports$Blockly$Python.pythonGenerator.lists_setIndex=function(a){let b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"[]";const c=a.getFieldValue("MODE")||"GET";var d=a.getFieldValue("WHERE")||"FROM_START";const e=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";switch(d){case "FIRST":if("SET"===c)return b+"[0] = "+e+"\n";if("INSERT"===
|
|
73
|
+
c)return b+".insert(0, "+e+")\n";break;case "LAST":if("SET"===c)return b+"[-1] = "+e+"\n";if("INSERT"===c)return b+".append("+e+")\n";break;case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT");if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+e+")\n";break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT",1,!0);if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+
|
|
74
|
+
e+")\n";break;case "RANDOM":module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";b.match(/^\w+$/)?a="":(a=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("tmp_list",$.NameType$$module$build$src$core$names.VARIABLE),d=a+" = "+b+"\n",b=a,a=d);d=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("tmp_x",$.NameType$$module$build$src$core$names.VARIABLE);a+=d+" = int(random.random() * len("+b+"))\n";if("SET"===c)return a+(b+"["+
|
|
75
|
+
d+"] = "+e+"\n");if("INSERT"===c)return a+(b+".insert("+d+", "+e+")\n")}throw Error("Unhandled combination (lists_setIndex).");};
|
|
76
|
+
module$exports$Blockly$Python.pythonGenerator.lists_getSublist=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"[]";var c=a.getFieldValue("WHERE1");const d=a.getFieldValue("WHERE2");switch(c){case "FROM_START":c=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1");0===c&&(c="");break;case "FROM_END":c=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1",1,!0);break;
|
|
77
|
+
case "FIRST":c="";break;default:throw Error("Unhandled option (lists_getSublist)");}switch(d){case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",1);break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",0,!0);$.module$build$src$core$utils$string.isNumber(String(a))?0===a&&(a=""):(module$exports$Blockly$Python.pythonGenerator.definitions_.import_sys="import sys",a+=" or sys.maxsize");break;case "LAST":a="";break;default:throw Error("Unhandled option (lists_getSublist)");
|
|
78
|
+
}return[b+"["+c+" : "+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER]};module$exports$Blockly$Python.pythonGenerator.lists_sort=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]",c=a.getFieldValue("TYPE");a="1"===a.getFieldValue("DIRECTION")?"False":"True";return[module$exports$Blockly$Python.pythonGenerator.provideFunction_("lists_sort",`
|
|
79
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(my_list, type, reverse):
|
|
80
|
+
def try_float(s):
|
|
81
|
+
try:
|
|
82
|
+
return float(s)
|
|
83
|
+
except:
|
|
84
|
+
return 0
|
|
85
|
+
key_funcs = {
|
|
86
|
+
"NUMERIC": try_float,
|
|
87
|
+
"TEXT": str,
|
|
88
|
+
"IGNORE_CASE": lambda s: str(s).lower()
|
|
89
|
+
}
|
|
90
|
+
key_func = key_funcs[type]
|
|
91
|
+
list_cpy = list(my_list)
|
|
92
|
+
return sorted(list_cpy, key=key_func, reverse=reverse)
|
|
93
|
+
`)+"("+b+', "'+c+'", '+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
94
|
+
module$exports$Blockly$Python.pythonGenerator.lists_split=function(a){var b=a.getFieldValue("MODE");if("SPLIT"===b)b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"INPUT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''",a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"DELIM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE),a=b+".split("+a+")";else if("JOIN"===b)b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"INPUT",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||
|
|
95
|
+
"[]",a=(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"DELIM",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+".join("+b+")";else throw Error("Unknown mode: "+b);return[a,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
96
|
+
module$exports$Blockly$Python.pythonGenerator.lists_reverse=function(a){return["list(reversed("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+"))",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$logic={};
|
|
97
|
+
module$exports$Blockly$Python.pythonGenerator.controls_if=function(a){let b=0,c="",d,e;module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX&&(c+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX,a));do e=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"IF"+b,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"False",d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO"+b)||module$exports$Blockly$Python.pythonGenerator.PASS,
|
|
98
|
+
module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(d=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$Python.pythonGenerator.INDENT)+d),c+=(0===b?"if ":"elif ")+e+":\n"+d,b++;while(a.getInput("IF"+b));if(a.getInput("ELSE")||module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX)d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,
|
|
99
|
+
"ELSE")||module$exports$Blockly$Python.pythonGenerator.PASS,module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(d=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$Python.pythonGenerator.INDENT)+d),c+="else:\n"+d;return c};module$exports$Blockly$Python.pythonGenerator.controls_ifelse=module$exports$Blockly$Python.pythonGenerator.controls_if;
|
|
100
|
+
module$exports$Blockly$Python.pythonGenerator.logic_compare=function(a){const b={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}[a.getFieldValue("OP")],c=module$exports$Blockly$Python.pythonGenerator.ORDER_RELATIONAL,d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"A",c)||"0";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]};
|
|
101
|
+
module$exports$Blockly$Python.pythonGenerator.logic_operation=function(a){const b="AND"===a.getFieldValue("OP")?"and":"or",c="and"===b?module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_AND:module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_OR;let d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"A",c);a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"B",c);if(d||a){const e="and"===b?"True":"False";d||(d=e);a||(a=e)}else a=d="False";return[d+" "+b+" "+a,
|
|
102
|
+
c]};module$exports$Blockly$Python.pythonGenerator.logic_negate=function(a){return["not "+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"BOOL",module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT)||"True"),module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT]};module$exports$Blockly$Python.pythonGenerator.logic_boolean=function(a){return["TRUE"===a.getFieldValue("BOOL")?"True":"False",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
103
|
+
module$exports$Blockly$Python.pythonGenerator.logic_null=function(a){return["None",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
104
|
+
module$exports$Blockly$Python.pythonGenerator.logic_ternary=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"IF",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"False",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"THEN",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"None";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ELSE",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"None";
|
|
105
|
+
return[c+" if "+b+" else "+a,module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL]};var module$exports$Blockly$Python$loops={},module$contents$Blockly$Python$loops_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$Python$loops_NameType=$.NameType$$module$build$src$core$names;
|
|
106
|
+
module$exports$Blockly$Python.pythonGenerator.controls_repeat_ext=function(a){let b;b=a.getField("TIMES")?String(parseInt(a.getFieldValue("TIMES"),10)):module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TIMES",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";b=$.module$build$src$core$utils$string.isNumber(b)?parseInt(b,10):"int("+b+")";let c=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO");c=module$exports$Blockly$Python.pythonGenerator.addLoopTrap(c,a)||
|
|
107
|
+
module$exports$Blockly$Python.pythonGenerator.PASS;return"for "+module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("count",$.NameType$$module$build$src$core$names.VARIABLE)+" in range("+b+"):\n"+c};module$exports$Blockly$Python.pythonGenerator.controls_repeat=module$exports$Blockly$Python.pythonGenerator.controls_repeat_ext;
|
|
108
|
+
module$exports$Blockly$Python.pythonGenerator.controls_whileUntil=function(a){const b="UNTIL"===a.getFieldValue("MODE");let c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"BOOL",b?module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT:module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"False",d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO");d=module$exports$Blockly$Python.pythonGenerator.addLoopTrap(d,a)||module$exports$Blockly$Python.pythonGenerator.PASS;
|
|
109
|
+
b&&(c="not "+c);return"while "+c+":\n"+d};
|
|
110
|
+
module$exports$Blockly$Python.pythonGenerator.controls_for=function(a){const b=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);var c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FROM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0",d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0",e=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,
|
|
111
|
+
"BY",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"1";let f=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO");f=module$exports$Blockly$Python.pythonGenerator.addLoopTrap(f,a)||module$exports$Blockly$Python.pythonGenerator.PASS;let g="";const h=function(){return module$exports$Blockly$Python.pythonGenerator.provideFunction_("upRange",`
|
|
112
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(start, stop, step):
|
|
113
|
+
while start <= stop:
|
|
114
|
+
yield start
|
|
115
|
+
start += abs(step)
|
|
116
|
+
`)},k=function(){return module$exports$Blockly$Python.pythonGenerator.provideFunction_("downRange",`
|
|
117
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(start, stop, step):
|
|
118
|
+
while start >= stop:
|
|
119
|
+
yield start
|
|
120
|
+
start -= abs(step)
|
|
121
|
+
`)};a=function(l,m,n){return"("+l+" <= "+m+") and "+h()+"("+l+", "+m+", "+n+") or "+k()+"("+l+", "+m+", "+n+")"};if($.module$build$src$core$utils$string.isNumber(c)&&$.module$build$src$core$utils$string.isNumber(d)&&$.module$build$src$core$utils$string.isNumber(e))c=Number(c),d=Number(d),e=Math.abs(Number(e)),0===c%1&&0===d%1&&0===e%1?(c<=d?(d++,a=0===c&&1===e?d:c+", "+d,1!==e&&(a+=", "+e)):(d--,a=c+", "+d+", -"+e),a="range("+a+")"):(a=c<d?h():k(),a+="("+c+", "+d+", "+e+")");else{const l=function(m,
|
|
122
|
+
n){$.module$build$src$core$utils$string.isNumber(m)?m=Number(m):m.match(/^\w+$/)||(n=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName(b+n,$.NameType$$module$build$src$core$names.VARIABLE),g+=n+" = "+m+"\n",m=n);return m};c=l(c,"_start");d=l(d,"_end");e=l(e,"_inc");"number"===typeof c&&"number"===typeof d?(a=c<d?h():k(),a+="("+c+", "+d+", "+e+")"):a=a(c,d,e)}return g+="for "+b+" in "+a+":\n"+f};
|
|
123
|
+
module$exports$Blockly$Python.pythonGenerator.controls_forEach=function(a){const b=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_RELATIONAL)||"[]";let d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO");d=module$exports$Blockly$Python.pythonGenerator.addLoopTrap(d,a)||module$exports$Blockly$Python.pythonGenerator.PASS;
|
|
124
|
+
return"for "+b+" in "+c+":\n"+d};
|
|
125
|
+
module$exports$Blockly$Python.pythonGenerator.controls_flow_statements=function(a){let b="";module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX&&(b+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(b+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a));if(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX){const c=
|
|
126
|
+
a.getSurroundLoop();c&&!c.suppressPrefixSuffix&&(b+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break\n";case "CONTINUE":return b+"continue\n"}throw Error("Unknown flow statement.");};var module$exports$Blockly$Python$math={},module$contents$Blockly$Python$math_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$Python.pythonGenerator.addReservedWords("math,random,Number");
|
|
71
127
|
module$exports$Blockly$Python.pythonGenerator.math_number=function(a){a=Number(a.getFieldValue("NUM"));let b;Infinity===a?(a='float("inf")',b=module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL):-Infinity===a?(a='-float("inf")',b=module$exports$Blockly$Python.pythonGenerator.ORDER_UNARY_SIGN):b=0>a?module$exports$Blockly$Python.pythonGenerator.ORDER_UNARY_SIGN:module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC;return[a,b]};
|
|
72
128
|
module$exports$Blockly$Python.pythonGenerator.math_arithmetic=function(a){var b={ADD:[" + ",module$exports$Blockly$Python.pythonGenerator.ORDER_ADDITIVE],MINUS:[" - ",module$exports$Blockly$Python.pythonGenerator.ORDER_ADDITIVE],MULTIPLY:[" * ",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE],POWER:[" ** ",module$exports$Blockly$Python.pythonGenerator.ORDER_EXPONENTIATION]}[a.getFieldValue("OP")];
|
|
73
129
|
const c=b[0];b=b[1];const d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"A",b)||"0";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"B",b)||"0";return[d+c+a,b]};
|
|
@@ -148,104 +204,48 @@ module$exports$Blockly$Python.pythonGenerator.math_constrain=function(a){const b
|
|
|
148
204
|
b+", "+c+"), "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
149
205
|
module$exports$Blockly$Python.pythonGenerator.math_random_int=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FROM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";return["random.randint("+b+", "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
150
206
|
module$exports$Blockly$Python.pythonGenerator.math_random_float=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";return["random.random()",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
151
|
-
module$exports$Blockly$Python.pythonGenerator.math_atan2=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_math="import math";const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"X",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";return["math.atan2("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"Y",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0")+", "+b+") / math.pi * 180",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE]};var module$exports$Blockly$Python$
|
|
152
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
153
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
154
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
170
|
-
|
|
171
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
172
|
-
a.
|
|
173
|
-
module$exports$Blockly$Python.pythonGenerator.controls_if=function(a){let b=0,c="",d,e;module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX&&(c+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX,a));do e=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"IF"+b,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"False",d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"DO"+b)||module$exports$Blockly$Python.pythonGenerator.PASS,
|
|
174
|
-
module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(d=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$Python.pythonGenerator.INDENT)+d),c+=(0===b?"if ":"elif ")+e+":\n"+d,b++;while(a.getInput("IF"+b));if(a.getInput("ELSE")||module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX)d=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,
|
|
175
|
-
"ELSE")||module$exports$Blockly$Python.pythonGenerator.PASS,module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(d=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$Python.pythonGenerator.INDENT)+d),c+="else:\n"+d;return c};module$exports$Blockly$Python.pythonGenerator.controls_ifelse=module$exports$Blockly$Python.pythonGenerator.controls_if;
|
|
176
|
-
module$exports$Blockly$Python.pythonGenerator.logic_compare=function(a){const b={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}[a.getFieldValue("OP")],c=module$exports$Blockly$Python.pythonGenerator.ORDER_RELATIONAL,d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"A",c)||"0";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]};
|
|
177
|
-
module$exports$Blockly$Python.pythonGenerator.logic_operation=function(a){const b="AND"===a.getFieldValue("OP")?"and":"or",c="and"===b?module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_AND:module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_OR;let d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"A",c);a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"B",c);if(d||a){const e="and"===b?"True":"False";d||(d=e);a||(a=e)}else a=d="False";return[d+" "+b+" "+a,
|
|
178
|
-
c]};module$exports$Blockly$Python.pythonGenerator.logic_negate=function(a){return["not "+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"BOOL",module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT)||"True"),module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT]};module$exports$Blockly$Python.pythonGenerator.logic_boolean=function(a){return["TRUE"===a.getFieldValue("BOOL")?"True":"False",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
179
|
-
module$exports$Blockly$Python.pythonGenerator.logic_null=function(a){return["None",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
180
|
-
module$exports$Blockly$Python.pythonGenerator.logic_ternary=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"IF",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"False",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"THEN",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"None";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ELSE",module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL)||"None";
|
|
181
|
-
return[c+" if "+b+" else "+a,module$exports$Blockly$Python.pythonGenerator.ORDER_CONDITIONAL]};var module$exports$Blockly$Python$lists={},module$contents$Blockly$Python$lists_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$Python$lists_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$Python.pythonGenerator.lists_create_empty=function(a){return["[]",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
182
|
-
module$exports$Blockly$Python.pythonGenerator.lists_create_with=function(a){const b=Array(a.itemCount_);for(let c=0;c<a.itemCount_;c++)b[c]=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD"+c,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";return["["+b.join(", ")+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
183
|
-
module$exports$Blockly$Python.pythonGenerator.lists_repeat=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ITEM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"NUM",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE)||"0";return["["+b+"] * "+a,module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE]};
|
|
184
|
-
module$exports$Blockly$Python.pythonGenerator.lists_length=function(a){return["len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
185
|
-
module$exports$Blockly$Python.pythonGenerator.lists_isEmpty=function(a){return["not len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT]};
|
|
186
|
-
module$exports$Blockly$Python.pythonGenerator.lists_indexOf=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FIND",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";let d=" -1",e="",f=" - 1";a.workspace.options.oneBasedIndex&&(d=" 0",e=" + 1",f="");return[("FIRST"===a.getFieldValue("END")?module$exports$Blockly$Python.pythonGenerator.provideFunction_("first_index",
|
|
207
|
+
module$exports$Blockly$Python.pythonGenerator.math_atan2=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_math="import math";const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"X",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";return["math.atan2("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"Y",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0")+", "+b+") / math.pi * 180",module$exports$Blockly$Python.pythonGenerator.ORDER_MULTIPLICATIVE]};var module$exports$Blockly$Python$procedures={},module$contents$Blockly$Python$procedures_Variables=$.module$build$src$core$variables,module$contents$Blockly$Python$procedures_NameType=$.NameType$$module$build$src$core$names;
|
|
208
|
+
module$exports$Blockly$Python.pythonGenerator.procedures_defreturn=function(a){var b=[],c=a.workspace,d=$.module$build$src$core$variables.allUsedVarModels(c)||[];for(let m=0,n;n=d[m];m++){var e=n.name;-1===a.getVars().indexOf(e)&&b.push(module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(e,$.NameType$$module$build$src$core$names.VARIABLE))}c=$.module$build$src$core$variables.allDeveloperVariables(c);for(d=0;d<c.length;d++)b.push(module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(c[d],
|
|
209
|
+
$.NameType$$module$build$src$core$names.DEVELOPER_VARIABLE));c=b.length?module$exports$Blockly$Python.pythonGenerator.INDENT+"global "+b.join(", ")+"\n":"";b=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE);d="";module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX&&(d+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_PREFIX,a));module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&
|
|
210
|
+
(d+=module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a));d&&(d=module$exports$Blockly$Python.pythonGenerator.prefixLines(d,module$exports$Blockly$Python.pythonGenerator.INDENT));e="";module$exports$Blockly$Python.pythonGenerator.INFINITE_LOOP_TRAP&&(e=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.INFINITE_LOOP_TRAP,a),
|
|
211
|
+
module$exports$Blockly$Python.pythonGenerator.INDENT));let f=module$exports$Blockly$Python.pythonGenerator.statementToCode(a,"STACK"),g=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"RETURN",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"",h="";f&&g&&(h=d);g?g=module$exports$Blockly$Python.pythonGenerator.INDENT+"return "+g+"\n":f||(f=module$exports$Blockly$Python.pythonGenerator.PASS);const k=[],l=a.getVars();for(let m=0;m<l.length;m++)k[m]=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(l[m],
|
|
212
|
+
$.NameType$$module$build$src$core$names.VARIABLE);c="def "+b+"("+k.join(", ")+"):\n"+c+d+e+f+h+g;c=module$exports$Blockly$Python.pythonGenerator.scrub_(a,c);module$exports$Blockly$Python.pythonGenerator.definitions_["%"+b]=c;return null};module$exports$Blockly$Python.pythonGenerator.procedures_defnoreturn=module$exports$Blockly$Python.pythonGenerator.procedures_defreturn;
|
|
213
|
+
module$exports$Blockly$Python.pythonGenerator.procedures_callreturn=function(a){const b=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("NAME"),$.NameType$$module$build$src$core$names.PROCEDURE),c=[],d=a.getVars();for(let e=0;e<d.length;e++)c[e]=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ARG"+e,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None";return[b+"("+c.join(", ")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
214
|
+
module$exports$Blockly$Python.pythonGenerator.procedures_callnoreturn=function(a){return module$exports$Blockly$Python.pythonGenerator.procedures_callreturn(a)[0]+"\n"};
|
|
215
|
+
module$exports$Blockly$Python.pythonGenerator.procedures_ifreturn=function(a){let b="if "+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"CONDITION",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"False")+":\n";module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX&&(b+=module$exports$Blockly$Python.pythonGenerator.prefixLines(module$exports$Blockly$Python.pythonGenerator.injectId(module$exports$Blockly$Python.pythonGenerator.STATEMENT_SUFFIX,a),module$exports$Blockly$Python.pythonGenerator.INDENT));
|
|
216
|
+
a.hasReturnValue_?(a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"None",b+=module$exports$Blockly$Python.pythonGenerator.INDENT+"return "+a+"\n"):b+=module$exports$Blockly$Python.pythonGenerator.INDENT+"return\n";return b};var module$exports$Blockly$Python$texts={},module$contents$Blockly$Python$texts_stringUtils=$.module$build$src$core$utils$string,module$contents$Blockly$Python$texts_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$Python.pythonGenerator.text=function(a){return[module$exports$Blockly$Python.pythonGenerator.quote_(a.getFieldValue("TEXT")),module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
217
|
+
module$exports$Blockly$Python.pythonGenerator.text_multiline=function(a){a=module$exports$Blockly$Python.pythonGenerator.multiline_quote_(a.getFieldValue("TEXT"));const b=-1!==a.indexOf("+")?module$exports$Blockly$Python.pythonGenerator.ORDER_ADDITIVE:module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC;return[a,b]};
|
|
218
|
+
var module$contents$Blockly$Python$texts_strRegExp=/^\s*'([^']|\\')*'\s*$/,module$contents$Blockly$Python$texts_forceString=function(a){return module$contents$Blockly$Python$texts_strRegExp.test(a)?[a,module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]:["str("+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
219
|
+
module$exports$Blockly$Python.pythonGenerator.text_join=function(a){switch(a.itemCount_){case 0:return["''",module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC];case 1:return a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD0",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''",module$contents$Blockly$Python$texts_forceString(a);case 2:var b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD0",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||
|
|
220
|
+
"''";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD1",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";return[module$contents$Blockly$Python$texts_forceString(b)[0]+" + "+module$contents$Blockly$Python$texts_forceString(a)[0],module$exports$Blockly$Python.pythonGenerator.ORDER_ADDITIVE];default:b=[];for(let c=0;c<a.itemCount_;c++)b[c]=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"ADD"+c,module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";
|
|
221
|
+
a=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("x",$.NameType$$module$build$src$core$names.VARIABLE);return["''.join([str("+a+") for "+a+" in ["+b.join(", ")+"]])",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]}};
|
|
222
|
+
module$exports$Blockly$Python.pythonGenerator.text_append=function(a){const b=module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE);a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";return b+" = str("+b+") + "+module$contents$Blockly$Python$texts_forceString(a)[0]+"\n"};
|
|
223
|
+
module$exports$Blockly$Python.pythonGenerator.text_length=function(a){return["len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
224
|
+
module$exports$Blockly$Python.pythonGenerator.text_isEmpty=function(a){return["not len("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''")+")",module$exports$Blockly$Python.pythonGenerator.ORDER_LOGICAL_NOT]};
|
|
225
|
+
module$exports$Blockly$Python.pythonGenerator.text_indexOf=function(a){var b="FIRST"===a.getFieldValue("END")?"find":"rfind";const c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FIND",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";b=(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+"."+b+"("+c+")";return a.workspace.options.oneBasedIndex?[b+" + 1",module$exports$Blockly$Python.pythonGenerator.ORDER_ADDITIVE]:
|
|
226
|
+
[b,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
227
|
+
module$exports$Blockly$Python.pythonGenerator.text_charAt=function(a){const b=a.getFieldValue("WHERE")||"FROM_START",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE","RANDOM"===b?module$exports$Blockly$Python.pythonGenerator.ORDER_NONE:module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''";switch(b){case "FIRST":return[c+"[0]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];case "LAST":return[c+"[-1]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];
|
|
228
|
+
case "FROM_START":return a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT"),[c+"["+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];case "FROM_END":return a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT",1,!0),[c+"["+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER];case "RANDOM":return module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random",[module$exports$Blockly$Python.pythonGenerator.provideFunction_("text_random_letter",
|
|
187
229
|
`
|
|
188
|
-
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
module$exports$Blockly$Python.pythonGenerator.
|
|
207
|
-
c)return b+".insert(0, "+e+")\n";break;case "LAST":if("SET"===c)return b+"[-1] = "+e+"\n";if("INSERT"===c)return b+".append("+e+")\n";break;case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT");if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+e+")\n";break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT",1,!0);if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+
|
|
208
|
-
e+")\n";break;case "RANDOM":module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";b.match(/^\w+$/)?a="":(a=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("tmp_list",$.NameType$$module$build$src$core$names.VARIABLE),d=a+" = "+b+"\n",b=a,a=d);d=module$exports$Blockly$Python.pythonGenerator.nameDB_.getDistinctName("tmp_x",$.NameType$$module$build$src$core$names.VARIABLE);a+=d+" = int(random.random() * len("+b+"))\n";if("SET"===c)return a+(b+"["+
|
|
209
|
-
d+"] = "+e+"\n");if("INSERT"===c)return a+(b+".insert("+d+", "+e+")\n")}throw Error("Unhandled combination (lists_setIndex).");};
|
|
210
|
-
module$exports$Blockly$Python.pythonGenerator.lists_getSublist=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"[]";var c=a.getFieldValue("WHERE1");const d=a.getFieldValue("WHERE2");switch(c){case "FROM_START":c=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1");0===c&&(c="");break;case "FROM_END":c=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1",1,!0);break;
|
|
211
|
-
case "FIRST":c="";break;default:throw Error("Unhandled option (lists_getSublist)");}switch(d){case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",1);break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",0,!0);$.module$build$src$core$utils$string.isNumber(String(a))?0===a&&(a=""):(module$exports$Blockly$Python.pythonGenerator.definitions_.import_sys="import sys",a+=" or sys.maxsize");break;case "LAST":a="";break;default:throw Error("Unhandled option (lists_getSublist)");
|
|
212
|
-
}return[b+"["+c+" : "+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER]};module$exports$Blockly$Python.pythonGenerator.lists_sort=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]",c=a.getFieldValue("TYPE");a="1"===a.getFieldValue("DIRECTION")?"False":"True";return[module$exports$Blockly$Python.pythonGenerator.provideFunction_("lists_sort",`
|
|
213
|
-
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(my_list, type, reverse):
|
|
214
|
-
def try_float(s):
|
|
215
|
-
try:
|
|
216
|
-
return float(s)
|
|
217
|
-
except:
|
|
218
|
-
return 0
|
|
219
|
-
key_funcs = {
|
|
220
|
-
"NUMERIC": try_float,
|
|
221
|
-
"TEXT": str,
|
|
222
|
-
"IGNORE_CASE": lambda s: str(s).lower()
|
|
223
|
-
}
|
|
224
|
-
key_func = key_funcs[type]
|
|
225
|
-
list_cpy = list(my_list)
|
|
226
|
-
return sorted(list_cpy, key=key_func, reverse=reverse)
|
|
227
|
-
`)+"("+b+', "'+c+'", '+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
228
|
-
module$exports$Blockly$Python.pythonGenerator.lists_split=function(a){var b=a.getFieldValue("MODE");if("SPLIT"===b)b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"INPUT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''",a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"DELIM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE),a=b+".split("+a+")";else if("JOIN"===b)b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"INPUT",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||
|
|
229
|
-
"[]",a=(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"DELIM",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+".join("+b+")";else throw Error("Unknown mode: "+b);return[a,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
230
|
-
module$exports$Blockly$Python.pythonGenerator.lists_reverse=function(a){return["list(reversed("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"LIST",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"[]")+"))",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$colour={};module$exports$Blockly$Python.pythonGenerator.colour_picker=function(a){return[module$exports$Blockly$Python.pythonGenerator.quote_(a.getFieldValue("COLOUR")),module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};module$exports$Blockly$Python.pythonGenerator.colour_random=function(a){module$exports$Blockly$Python.pythonGenerator.definitions_.import_random="import random";return["'#%06x' % random.randint(0, 2**24 - 1)",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
231
|
-
module$exports$Blockly$Python.pythonGenerator.colour_rgb=function(a){const b=module$exports$Blockly$Python.pythonGenerator.provideFunction_("colour_rgb",`
|
|
232
|
-
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(r, g, b):
|
|
233
|
-
r = round(min(100, max(0, r)) * 2.55)
|
|
234
|
-
g = round(min(100, max(0, g)) * 2.55)
|
|
235
|
-
b = round(min(100, max(0, b)) * 2.55)
|
|
236
|
-
return '#%02x%02x%02x' % (r, g, b)
|
|
237
|
-
`),c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"RED",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0,d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"GREEN",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"BLUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
238
|
-
module$exports$Blockly$Python.pythonGenerator.colour_blend=function(a){const b=module$exports$Blockly$Python.pythonGenerator.provideFunction_("colour_blend",`
|
|
239
|
-
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(colour1, colour2, ratio):
|
|
240
|
-
r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16)
|
|
241
|
-
g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16)
|
|
242
|
-
b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16)
|
|
243
|
-
ratio = min(1, max(0, ratio))
|
|
244
|
-
r = round(r1 * (1 - ratio) + r2 * ratio)
|
|
245
|
-
g = round(g1 * (1 - ratio) + g2 * ratio)
|
|
246
|
-
b = round(b1 * (1 - ratio) + b2 * ratio)
|
|
247
|
-
return '#%02x%02x%02x' % (r, g, b)
|
|
248
|
-
`),c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"COLOUR1",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"'#000000'",d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"COLOUR2",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"'#000000'";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"RATIO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$all=module$exports$Blockly$Python;
|
|
230
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(text):
|
|
231
|
+
x = int(random.random() * len(text))
|
|
232
|
+
return text[x]
|
|
233
|
+
`)+"("+c+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]}throw Error("Unhandled option (text_charAt).");};
|
|
234
|
+
module$exports$Blockly$Python.pythonGenerator.text_getSubstring=function(a){var b=a.getFieldValue("WHERE1");const c=a.getFieldValue("WHERE2"),d=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"STRING",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''";switch(b){case "FROM_START":b=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1");0===b&&(b="");break;case "FROM_END":b=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT1",1,!0);break;case "FIRST":b=
|
|
235
|
+
"";break;default:throw Error("Unhandled option (text_getSubstring)");}switch(c){case "FROM_START":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",1);break;case "FROM_END":a=module$exports$Blockly$Python.pythonGenerator.getAdjustedInt(a,"AT2",0,!0);$.module$build$src$core$utils$string.isNumber(String(a))?0===a&&(a=""):(module$exports$Blockly$Python.pythonGenerator.definitions_.import_sys="import sys",a+=" or sys.maxsize");break;case "LAST":a="";break;default:throw Error("Unhandled option (text_getSubstring)");
|
|
236
|
+
}return[d+"["+b+" : "+a+"]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER]};module$exports$Blockly$Python.pythonGenerator.text_changeCase=function(a){const b={UPPERCASE:".upper()",LOWERCASE:".lower()",TITLECASE:".title()"}[a.getFieldValue("CASE")];return[(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+b,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
237
|
+
module$exports$Blockly$Python.pythonGenerator.text_trim=function(a){const b={LEFT:".lstrip()",RIGHT:".rstrip()",BOTH:".strip()"}[a.getFieldValue("MODE")];return[(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+b,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
238
|
+
module$exports$Blockly$Python.pythonGenerator.text_print=function(a){return"print("+(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''")+")\n"};module$exports$Blockly$Python.pythonGenerator.text_prompt_ext=function(a){var b=module$exports$Blockly$Python.pythonGenerator.provideFunction_("text_prompt",`
|
|
239
|
+
def ${module$exports$Blockly$Python.pythonGenerator.FUNCTION_NAME_PLACEHOLDER_}(msg):
|
|
240
|
+
try:
|
|
241
|
+
return raw_input(msg)
|
|
242
|
+
except NameError:
|
|
243
|
+
return input(msg)
|
|
244
|
+
`);let c;c=a.getField("TEXT")?module$exports$Blockly$Python.pythonGenerator.quote_(a.getFieldValue("TEXT")):module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";b=b+"("+c+")";"NUMBER"===a.getFieldValue("TYPE")&&(b="float("+b+")");return[b,module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};module$exports$Blockly$Python.pythonGenerator.text_prompt=module$exports$Blockly$Python.pythonGenerator.text_prompt_ext;
|
|
245
|
+
module$exports$Blockly$Python.pythonGenerator.text_count=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"SUB",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";return[b+".count("+a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_FUNCTION_CALL]};
|
|
246
|
+
module$exports$Blockly$Python.pythonGenerator.text_replace=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''",c=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"FROM",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";a=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TO",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"''";return[b+".replace("+c+", "+
|
|
247
|
+
a+")",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER]};module$exports$Blockly$Python.pythonGenerator.text_reverse=function(a){return[(module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"TEXT",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER)||"''")+"[::-1]",module$exports$Blockly$Python.pythonGenerator.ORDER_MEMBER]};var module$exports$Blockly$Python$variables={},module$contents$Blockly$Python$variables_NameType=$.NameType$$module$build$src$core$names;module$exports$Blockly$Python.pythonGenerator.variables_get=function(a){return[module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE),module$exports$Blockly$Python.pythonGenerator.ORDER_ATOMIC]};
|
|
248
|
+
module$exports$Blockly$Python.pythonGenerator.variables_set=function(a){const b=module$exports$Blockly$Python.pythonGenerator.valueToCode(a,"VALUE",module$exports$Blockly$Python.pythonGenerator.ORDER_NONE)||"0";return module$exports$Blockly$Python.pythonGenerator.nameDB_.getName(a.getFieldValue("VAR"),$.NameType$$module$build$src$core$names.VARIABLE)+" = "+b+"\n"};var module$exports$Blockly$Python$variablesDynamic={};module$exports$Blockly$Python.pythonGenerator.variables_get_dynamic=module$exports$Blockly$Python.pythonGenerator.variables_get;module$exports$Blockly$Python.pythonGenerator.variables_set_dynamic=module$exports$Blockly$Python.pythonGenerator.variables_set;var module$exports$Blockly$Python$all=module$exports$Blockly$Python;
|
|
249
249
|
module$exports$Blockly$Python.__namespace__=$;
|
|
250
250
|
return module$exports$Blockly$Python;
|
|
251
251
|
}));
|