blockly 9.0.0-beta.0 → 9.0.0-beta.2
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 +830 -810
- package/blockly_compressed.js +821 -801
- package/blockly_compressed.js.map +1 -1
- package/blocks.d.ts +0 -5
- package/blocks_compressed.js +9 -9
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +1 -0
- package/closure/goog/goog.d.ts +1 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/block.d.ts +156 -53
- package/core/block_animations.d.ts +5 -0
- package/core/block_drag_surface.d.ts +18 -5
- package/core/block_dragger.d.ts +20 -5
- package/core/block_svg.d.ts +92 -24
- package/core/blockly.d.ts +31 -10
- package/core/blockly_options.d.ts +2 -0
- package/core/blocks.d.ts +2 -0
- package/core/browser_events.d.ts +16 -7
- package/core/bubble.d.ts +42 -12
- package/core/bubble_dragger.d.ts +9 -2
- package/core/bump_objects.d.ts +6 -2
- package/core/clipboard.d.ts +6 -2
- package/core/comment.d.ts +13 -3
- package/core/common.d.ts +35 -9
- package/core/component_manager.d.ts +16 -6
- package/core/config.d.ts +1 -0
- package/core/connection.d.ts +48 -18
- package/core/connection_checker.d.ts +16 -7
- package/core/connection_db.d.ts +17 -6
- package/core/connection_type.d.ts +2 -0
- package/core/constants.d.ts +3 -0
- package/core/contextmenu.d.ts +15 -5
- package/core/contextmenu_items.d.ts +15 -0
- package/core/contextmenu_registry.d.ts +12 -7
- package/core/css.d.ts +3 -0
- package/core/delete_area.d.ts +5 -1
- package/core/dialog.d.ts +14 -7
- package/core/drag_target.d.ts +10 -2
- package/core/dropdowndiv.d.ts +42 -10
- package/core/events/events.d.ts +51 -24
- package/core/events/events_abstract.d.ts +18 -7
- package/core/events/events_block_base.d.ts +13 -7
- package/core/events/events_block_change.d.ts +24 -11
- package/core/events/events_block_create.d.ts +18 -7
- package/core/events/events_block_delete.d.ts +20 -8
- package/core/events/events_block_drag.d.ts +14 -4
- package/core/events/events_block_move.d.ts +25 -12
- package/core/events/events_bubble_open.d.ts +21 -6
- package/core/events/events_click.d.ts +20 -6
- package/core/events/events_comment_base.d.ts +13 -6
- package/core/events/events_comment_change.d.ts +17 -7
- package/core/events/events_comment_create.d.ts +13 -5
- package/core/events/events_comment_delete.d.ts +4 -11
- package/core/events/events_comment_move.d.ts +19 -8
- package/core/events/events_marker_move.d.ts +16 -5
- package/core/events/events_selected.d.ts +14 -5
- package/core/events/events_theme_change.d.ts +11 -3
- package/core/events/events_toolbox_item_select.d.ts +14 -5
- package/core/events/events_trashcan_open.d.ts +11 -3
- package/core/events/events_ui.d.ts +5 -1
- package/core/events/events_ui_base.d.ts +2 -0
- package/core/events/events_var_base.d.ts +13 -7
- package/core/events/events_var_create.d.ts +15 -6
- package/core/events/events_var_delete.d.ts +15 -6
- package/core/events/events_var_rename.d.ts +15 -6
- package/core/events/events_viewport.d.ts +14 -3
- package/core/events/utils.d.ts +50 -7
- package/core/events/workspace_events.d.ts +11 -6
- package/core/extensions.d.ts +14 -4
- package/core/field.d.ts +93 -36
- package/core/field_angle.d.ts +14 -3
- package/core/field_checkbox.d.ts +20 -7
- package/core/field_colour.d.ts +22 -6
- package/core/field_dropdown.d.ts +28 -8
- package/core/field_image.d.ts +15 -4
- package/core/field_label.d.ts +8 -2
- package/core/field_label_serializable.d.ts +4 -1
- package/core/field_multilineinput.d.ts +21 -6
- package/core/field_number.d.ts +22 -6
- package/core/field_registry.d.ts +8 -2
- package/core/field_textinput.d.ts +28 -8
- package/core/field_variable.d.ts +36 -13
- package/core/flyout_base.d.ts +70 -24
- package/core/flyout_button.d.ts +12 -5
- package/core/flyout_horizontal.d.ts +14 -6
- package/core/flyout_metrics_manager.d.ts +6 -3
- package/core/flyout_vertical.d.ts +14 -6
- package/core/generator.d.ts +39 -20
- package/core/gesture.d.ts +56 -22
- package/core/grid.d.ts +20 -16
- package/core/icon.d.ts +18 -5
- package/core/inject.d.ts +3 -1
- package/core/input.d.ts +25 -10
- package/core/input_types.d.ts +2 -0
- package/core/insertion_marker_manager.d.ts +27 -9
- package/core/interfaces/i_ast_node_location.d.ts +2 -0
- package/core/interfaces/i_ast_node_location_svg.d.ts +4 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +4 -1
- package/core/interfaces/i_autohideable.d.ts +3 -0
- package/core/interfaces/i_block_dragger.d.ts +7 -1
- package/core/interfaces/i_bounded_element.d.ts +5 -1
- package/core/interfaces/i_bubble.d.ts +11 -2
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +6 -2
- package/core/interfaces/i_component.d.ts +3 -1
- package/core/interfaces/i_connection_checker.d.ts +14 -6
- package/core/interfaces/i_contextmenu.d.ts +2 -0
- package/core/interfaces/i_copyable.d.ts +3 -1
- package/core/interfaces/i_deletable.d.ts +4 -1
- package/core/interfaces/i_delete_area.d.ts +4 -1
- package/core/interfaces/i_drag_target.d.ts +10 -2
- package/core/interfaces/i_draggable.d.ts +2 -0
- package/core/interfaces/i_flyout.d.ts +27 -11
- package/core/interfaces/i_keyboard_accessible.d.ts +4 -1
- package/core/interfaces/i_metrics_manager.d.ts +24 -12
- package/core/interfaces/i_movable.d.ts +4 -1
- package/core/interfaces/i_positionable.d.ts +5 -1
- package/core/interfaces/i_registrable.d.ts +2 -0
- package/core/interfaces/i_registrable_field.d.ts +2 -0
- package/core/interfaces/i_selectable.d.ts +2 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +10 -3
- package/core/interfaces/i_serializer.d.ts +6 -1
- package/core/interfaces/i_styleable.d.ts +4 -0
- package/core/interfaces/i_toolbox.d.ts +17 -6
- package/core/interfaces/i_toolbox_item.d.ts +17 -7
- package/core/internal_constants.d.ts +6 -0
- package/core/keyboard_nav/ast_node.d.ts +55 -28
- package/core/keyboard_nav/basic_cursor.d.ts +20 -9
- package/core/keyboard_nav/cursor.d.ts +11 -5
- package/core/keyboard_nav/marker.d.ts +9 -2
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +4 -1
- package/core/main.d.ts +1 -0
- package/core/marker_manager.d.ts +13 -2
- package/core/menu.d.ts +25 -6
- package/core/menuitem.d.ts +22 -7
- package/core/metrics_manager.d.ts +30 -15
- package/core/msg.d.ts +15 -0
- package/core/mutator.d.ts +20 -8
- package/core/names.d.ts +20 -8
- package/core/options.d.ts +12 -6
- package/core/positionable_helpers.d.ts +11 -3
- package/core/procedures.d.ts +27 -10
- package/core/registry.d.ts +19 -8
- package/core/rendered_connection.d.ts +29 -7
- package/core/renderers/common/block_rendering.d.ts +9 -2
- package/core/renderers/common/constants.d.ts +57 -18
- package/core/renderers/common/debug.d.ts +5 -1
- package/core/renderers/common/debugger.d.ts +12 -1
- package/core/renderers/common/drawer.d.ts +16 -3
- package/core/renderers/common/i_path_object.d.ts +37 -16
- package/core/renderers/common/info.d.ts +28 -11
- package/core/renderers/common/marker_svg.d.ts +42 -11
- package/core/renderers/common/path_object.d.ts +23 -3
- package/core/renderers/common/renderer.d.ts +33 -12
- package/core/renderers/geras/constants.d.ts +6 -2
- package/core/renderers/geras/drawer.d.ts +4 -1
- package/core/renderers/geras/geras.d.ts +3 -2
- package/core/renderers/geras/highlight_constants.d.ts +9 -6
- package/core/renderers/geras/highlighter.d.ts +12 -1
- package/core/renderers/geras/info.d.ts +4 -1
- package/core/renderers/geras/measurables/inline_input.d.ts +2 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +2 -0
- package/core/renderers/geras/path_object.d.ts +4 -1
- package/core/renderers/geras/renderer.d.ts +16 -6
- package/core/renderers/measurables/base.d.ts +2 -0
- package/core/renderers/measurables/bottom_row.d.ts +9 -3
- package/core/renderers/measurables/connection.d.ts +2 -0
- package/core/renderers/measurables/external_value_input.d.ts +2 -1
- package/core/renderers/measurables/field.d.ts +2 -1
- package/core/renderers/measurables/hat.d.ts +2 -1
- package/core/renderers/measurables/icon.d.ts +4 -1
- package/core/renderers/measurables/in_row_spacer.d.ts +2 -1
- package/core/renderers/measurables/inline_input.d.ts +2 -1
- package/core/renderers/measurables/input_connection.d.ts +2 -0
- package/core/renderers/measurables/input_row.d.ts +4 -1
- package/core/renderers/measurables/jagged_edge.d.ts +2 -1
- package/core/renderers/measurables/next_connection.d.ts +2 -1
- package/core/renderers/measurables/output_connection.d.ts +2 -1
- package/core/renderers/measurables/previous_connection.d.ts +2 -1
- package/core/renderers/measurables/round_corner.d.ts +2 -1
- package/core/renderers/measurables/row.d.ts +30 -8
- package/core/renderers/measurables/spacer_row.d.ts +2 -1
- package/core/renderers/measurables/square_corner.d.ts +2 -1
- package/core/renderers/measurables/statement_input.d.ts +2 -1
- package/core/renderers/measurables/top_row.d.ts +7 -4
- package/core/renderers/measurables/types.d.ts +54 -25
- package/core/renderers/minimalist/constants.d.ts +2 -0
- package/core/renderers/minimalist/drawer.d.ts +2 -0
- package/core/renderers/minimalist/info.d.ts +5 -1
- package/core/renderers/minimalist/minimalist.d.ts +2 -1
- package/core/renderers/minimalist/renderer.d.ts +8 -3
- package/core/renderers/thrasos/info.d.ts +5 -4
- package/core/renderers/thrasos/renderer.d.ts +4 -1
- package/core/renderers/thrasos/thrasos.d.ts +2 -1
- package/core/renderers/zelos/constants.d.ts +31 -44
- package/core/renderers/zelos/drawer.d.ts +3 -0
- package/core/renderers/zelos/info.d.ts +10 -5
- package/core/renderers/zelos/marker_svg.d.ts +5 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +2 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +2 -1
- package/core/renderers/zelos/measurables/row_elements.d.ts +2 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +2 -0
- package/core/renderers/zelos/path_object.d.ts +9 -2
- package/core/renderers/zelos/renderer.d.ts +14 -6
- package/core/renderers/zelos/zelos.d.ts +3 -2
- package/core/scrollbar.d.ts +41 -9
- package/core/scrollbar_pair.d.ts +20 -6
- package/core/serialization/blocks.d.ts +10 -4
- package/core/serialization/exceptions.d.ts +5 -0
- package/core/serialization/priorities.d.ts +3 -0
- package/core/serialization/registry.d.ts +3 -0
- package/core/serialization/variables.d.ts +2 -0
- package/core/serialization/workspaces.d.ts +4 -1
- package/core/shortcut_items.d.ts +10 -0
- package/core/shortcut_registry.d.ts +25 -9
- package/core/sprites.d.ts +2 -4
- package/core/theme/classic.d.ts +2 -0
- package/core/theme/themes.d.ts +1 -0
- package/core/theme/zelos.d.ts +2 -0
- package/core/theme.d.ts +41 -30
- package/core/theme_manager.d.ts +10 -1
- package/core/toolbox/category.d.ts +60 -32
- package/core/toolbox/collapsible_category.d.ts +10 -3
- package/core/toolbox/separator.d.ts +4 -1
- package/core/toolbox/toolbox.d.ts +71 -23
- package/core/toolbox/toolbox_item.d.ts +17 -7
- package/core/tooltip.d.ts +22 -1
- package/core/touch.d.ts +18 -6
- package/core/touch_gesture.d.ts +19 -4
- package/core/trashcan.d.ts +27 -6
- package/core/utils/aria.d.ts +4 -0
- package/core/utils/array.d.ts +4 -2
- package/core/utils/colour.d.ts +24 -13
- package/core/utils/coordinate.d.ts +19 -9
- package/core/utils/deprecation.d.ts +6 -4
- package/core/utils/dom.d.ts +37 -18
- package/core/utils/idgenerator.d.ts +14 -4
- package/core/utils/keycodes.d.ts +1 -0
- package/core/utils/math.d.ts +7 -3
- package/core/utils/metrics.d.ts +1 -0
- package/core/utils/object.d.ts +7 -2
- package/core/utils/parsing.d.ts +9 -4
- package/core/utils/rect.d.ts +5 -3
- package/core/utils/sentinel.d.ts +2 -0
- package/core/utils/size.d.ts +4 -2
- package/core/utils/string.d.ts +13 -6
- package/core/utils/style.d.ts +14 -33
- package/core/utils/svg.d.ts +5 -2
- package/core/utils/svg_math.d.ts +15 -7
- package/core/utils/svg_paths.d.ts +20 -10
- package/core/utils/toolbox.d.ts +26 -5
- package/core/utils/useragent.d.ts +1 -12
- package/core/utils/xml.d.ts +13 -5
- package/core/utils.d.ts +43 -21
- package/core/variable_map.d.ts +26 -9
- package/core/variable_model.d.ts +5 -2
- package/core/variables.d.ts +33 -18
- package/core/variables_dynamic.d.ts +25 -5
- package/core/warning.d.ts +8 -3
- package/core/widgetdiv.d.ts +15 -6
- package/core/workspace.d.ts +80 -30
- package/core/workspace_audio.d.ts +6 -0
- package/core/workspace_comment.d.ts +33 -11
- package/core/workspace_comment_svg.d.ts +52 -9
- package/core/workspace_drag_surface_svg.d.ts +20 -14
- package/core/workspace_dragger.d.ts +6 -0
- package/core/workspace_svg.d.ts +174 -62
- package/core/xml.d.ts +26 -11
- package/core/zoom_controls.d.ts +17 -7
- package/core-browser.js +0 -6
- package/core.d.ts +0 -5
- package/core.js +0 -6
- package/dart.d.ts +1 -7
- package/dart_compressed.js.map +1 -1
- package/index.d.ts +2 -6
- package/javascript.d.ts +1 -7
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +1 -7
- package/lua_compressed.js.map +1 -1
- package/msg/ab.d.ts +8 -0
- package/msg/ace.d.ts +8 -0
- package/msg/af.d.ts +8 -0
- package/msg/am.d.ts +8 -0
- package/msg/ar.d.ts +8 -0
- package/msg/ast.d.ts +8 -0
- package/msg/az.d.ts +8 -0
- package/msg/ba.d.ts +8 -0
- package/msg/bcc.d.ts +8 -0
- package/msg/be-tarask.d.ts +8 -0
- package/msg/be.d.ts +8 -0
- package/msg/bg.d.ts +8 -0
- package/msg/bn.d.ts +8 -0
- package/msg/br.d.ts +8 -0
- package/msg/bs.d.ts +8 -0
- package/msg/ca.d.ts +8 -0
- package/msg/cdo.d.ts +8 -0
- package/msg/constants.d.ts +16 -0
- package/msg/cs.d.ts +8 -0
- package/msg/da.d.ts +8 -0
- package/msg/de.d.ts +8 -0
- package/msg/diq.d.ts +8 -0
- package/msg/dty.d.ts +8 -0
- package/msg/ee.d.ts +8 -0
- package/msg/el.d.ts +8 -0
- package/msg/en-gb.d.ts +8 -0
- package/msg/en.d.ts +8 -0
- package/msg/eo.d.ts +8 -0
- package/msg/es.d.ts +8 -0
- package/msg/et.d.ts +8 -0
- package/msg/eu.d.ts +8 -0
- package/msg/fa.d.ts +8 -0
- package/msg/fi.d.ts +8 -0
- package/msg/fo.d.ts +8 -0
- package/msg/fr.d.ts +8 -0
- package/msg/frr.d.ts +8 -0
- package/msg/gl.d.ts +8 -0
- package/msg/gn.d.ts +8 -0
- package/msg/gor.d.ts +8 -0
- package/msg/ha.d.ts +8 -0
- package/msg/hak.d.ts +8 -0
- package/msg/he.d.ts +8 -0
- package/msg/hi.d.ts +8 -0
- package/msg/hr.d.ts +8 -0
- package/msg/hrx.d.ts +8 -0
- package/msg/hu.d.ts +8 -0
- package/msg/hy.d.ts +8 -0
- package/msg/ia.d.ts +8 -0
- package/msg/id.d.ts +8 -0
- package/msg/ig.d.ts +8 -0
- package/msg/inh.d.ts +8 -0
- package/msg/is.d.ts +8 -0
- package/msg/it.d.ts +8 -0
- package/msg/ja.d.ts +8 -0
- package/msg/ka.d.ts +8 -0
- package/msg/kab.d.ts +8 -0
- package/msg/kbd-cyrl.d.ts +8 -0
- package/msg/km.d.ts +8 -0
- package/msg/kn.d.ts +8 -0
- package/msg/ko.d.ts +8 -0
- package/msg/ksh.d.ts +8 -0
- package/msg/ku-latn.d.ts +8 -0
- package/msg/ky.d.ts +8 -0
- package/msg/la.d.ts +8 -0
- package/msg/lb.d.ts +8 -0
- package/msg/lki.d.ts +8 -0
- package/msg/lo.d.ts +8 -0
- package/msg/lrc.d.ts +8 -0
- package/msg/lt.d.ts +8 -0
- package/msg/lv.d.ts +8 -0
- package/msg/mg.d.ts +8 -0
- package/msg/mk.d.ts +8 -0
- package/msg/ml.d.ts +8 -0
- package/msg/mnw.d.ts +8 -0
- package/msg/ms.d.ts +8 -0
- package/msg/msg.d.ts +429 -432
- package/msg/my.d.ts +8 -0
- package/msg/mzn.d.ts +8 -0
- package/msg/nb.d.ts +8 -0
- package/msg/ne.d.ts +8 -0
- package/msg/nl.d.ts +8 -0
- package/msg/oc.d.ts +8 -0
- package/msg/olo.d.ts +8 -0
- package/msg/pa.d.ts +8 -0
- package/msg/pl.d.ts +8 -0
- package/msg/pms.d.ts +8 -0
- package/msg/ps.d.ts +8 -0
- package/msg/pt-br.d.ts +8 -0
- package/msg/pt.d.ts +8 -0
- package/msg/qqq.d.ts +16 -0
- package/msg/ro.d.ts +8 -0
- package/msg/ru.d.ts +8 -0
- package/msg/sc.d.ts +8 -0
- package/msg/sco.d.ts +8 -0
- package/msg/sd.d.ts +8 -0
- package/msg/shn.d.ts +8 -0
- package/msg/si.d.ts +8 -0
- package/msg/sk.d.ts +8 -0
- package/msg/skr-arab.d.ts +8 -0
- package/msg/sl.d.ts +8 -0
- package/msg/smn.d.ts +8 -0
- package/msg/sq.d.ts +8 -0
- package/msg/sr-latn.d.ts +8 -0
- package/msg/sr.d.ts +8 -0
- package/msg/sv.d.ts +8 -0
- package/msg/sw.d.ts +8 -0
- package/msg/synonyms.d.ts +16 -0
- package/msg/ta.d.ts +8 -0
- package/msg/tcy.d.ts +8 -0
- package/msg/te.d.ts +8 -0
- package/msg/th.d.ts +8 -0
- package/msg/ti.d.ts +8 -0
- package/msg/tl.d.ts +8 -0
- package/msg/tlh.d.ts +8 -0
- package/msg/tr.d.ts +8 -0
- package/msg/ug-arab.d.ts +8 -0
- package/msg/uk.d.ts +8 -0
- package/msg/ur.d.ts +8 -0
- package/msg/uz.d.ts +8 -0
- package/msg/vi.d.ts +8 -0
- package/msg/xmf.d.ts +8 -0
- package/msg/yo.d.ts +8 -0
- package/msg/yue.d.ts +8 -0
- package/msg/zgh.d.ts +8 -0
- package/msg/zh-hans.d.ts +8 -0
- package/msg/zh-hant.d.ts +8 -0
- package/package.json +6 -3
- package/php.d.ts +1 -7
- package/php_compressed.js.map +1 -1
- package/python.d.ts +1 -7
- package/python_compressed.js.map +1 -1
- package/blocks/blocks.js +0 -48
- package/blocks/colour.js +0 -121
- package/blocks/lists.js +0 -996
- package/blocks/logic.js +0 -665
- package/blocks/loops.js +0 -375
- package/blocks/math.js +0 -594
- package/blocks/procedures.js +0 -1196
- package/blocks/text.js +0 -1000
- package/blocks/variables.js +0 -176
- package/blocks/variables_dynamic.js +0 -192
- package/core/any_aliases.ts +0 -1
- package/core/block.ts +0 -2102
- package/core/block_animations.ts +0 -202
- package/core/block_drag_surface.ts +0 -237
- package/core/block_dragger.ts +0 -447
- package/core/block_svg.ts +0 -1758
- package/core/blockly.js +0 -890
- package/core/blockly.ts +0 -749
- package/core/blockly_options.ts +0 -81
- package/core/blocks.ts +0 -29
- package/core/browser_events.ts +0 -289
- package/core/bubble.ts +0 -892
- package/core/bubble_dragger.ts +0 -229
- package/core/bump_objects.ts +0 -182
- package/core/clipboard.ts +0 -91
- package/core/comment.ts +0 -398
- package/core/common.ts +0 -288
- package/core/component_manager.ts +0 -211
- package/core/config.ts +0 -80
- package/core/connection.ts +0 -692
- package/core/connection_checker.ts +0 -301
- package/core/connection_db.ts +0 -289
- package/core/connection_type.ts +0 -32
- package/core/constants.ts +0 -29
- package/core/contextmenu.ts +0 -363
- package/core/contextmenu_items.ts +0 -576
- package/core/contextmenu_registry.ts +0 -179
- package/core/css.ts +0 -560
- package/core/delete_area.ts +0 -82
- package/core/dialog.ts +0 -127
- package/core/drag_target.ts +0 -94
- package/core/dropdowndiv.ts +0 -683
- package/core/events/events.ts +0 -123
- package/core/events/events_abstract.ts +0 -112
- package/core/events/events_block_base.ts +0 -65
- package/core/events/events_block_change.ts +0 -176
- package/core/events/events_block_create.ts +0 -114
- package/core/events/events_block_delete.ts +0 -126
- package/core/events/events_block_drag.ts +0 -82
- package/core/events/events_block_move.ts +0 -206
- package/core/events/events_bubble_open.ts +0 -82
- package/core/events/events_click.ts +0 -84
- package/core/events/events_comment_base.ts +0 -107
- package/core/events/events_comment_change.ts +0 -108
- package/core/events/events_comment_create.ts +0 -82
- package/core/events/events_comment_delete.ts +0 -77
- package/core/events/events_comment_move.ts +0 -154
- package/core/events/events_marker_move.ts +0 -99
- package/core/events/events_selected.ts +0 -78
- package/core/events/events_theme_change.ts +0 -67
- package/core/events/events_toolbox_item_select.ts +0 -79
- package/core/events/events_trashcan_open.ts +0 -68
- package/core/events/events_ui.ts +0 -89
- package/core/events/events_ui_base.ts +0 -54
- package/core/events/events_var_base.ts +0 -65
- package/core/events/events_var_create.ts +0 -88
- package/core/events/events_var_delete.ts +0 -88
- package/core/events/events_var_rename.ts +0 -89
- package/core/events/events_viewport.ts +0 -100
- package/core/events/utils.ts +0 -529
- package/core/events/workspace_events.ts +0 -86
- package/core/extensions.ts +0 -504
- package/core/field.ts +0 -1206
- package/core/field_angle.ts +0 -563
- package/core/field_checkbox.ts +0 -243
- package/core/field_colour.ts +0 -632
- package/core/field_dropdown.ts +0 -773
- package/core/field_image.ts +0 -282
- package/core/field_label.ts +0 -152
- package/core/field_label_serializable.ts +0 -76
- package/core/field_multilineinput.ts +0 -466
- package/core/field_number.ts +0 -327
- package/core/field_registry.ts +0 -87
- package/core/field_textinput.ts +0 -591
- package/core/field_variable.ts +0 -545
- package/core/flyout_base.ts +0 -1165
- package/core/flyout_button.ts +0 -292
- package/core/flyout_horizontal.ts +0 -381
- package/core/flyout_metrics_manager.ts +0 -94
- package/core/flyout_vertical.ts +0 -384
- package/core/generator.ts +0 -539
- package/core/gesture.ts +0 -946
- package/core/grid.ts +0 -192
- package/core/icon.ts +0 -189
- package/core/inject.ts +0 -390
- package/core/input.ts +0 -309
- package/core/input_types.ts +0 -32
- package/core/insertion_marker_manager.ts +0 -788
- package/core/interfaces/i_ast_node_location.ts +0 -23
- package/core/interfaces/i_ast_node_location_svg.ts +0 -37
- package/core/interfaces/i_ast_node_location_with_block.ts +0 -38
- package/core/interfaces/i_autohideable.ts +0 -34
- package/core/interfaces/i_block_dragger.ts +0 -67
- package/core/interfaces/i_bounded_element.ts +0 -42
- package/core/interfaces/i_bubble.ts +0 -88
- package/core/interfaces/i_collapsible_toolbox_item.ts +0 -47
- package/core/interfaces/i_component.ts +0 -32
- package/core/interfaces/i_connection_checker.ts +0 -102
- package/core/interfaces/i_contextmenu.ts +0 -26
- package/core/interfaces/i_copyable.ts +0 -40
- package/core/interfaces/i_deletable.ts +0 -29
- package/core/interfaces/i_delete_area.ts +0 -46
- package/core/interfaces/i_drag_target.ts +0 -84
- package/core/interfaces/i_draggable.ts +0 -25
- package/core/interfaces/i_flyout.ts +0 -186
- package/core/interfaces/i_keyboard_accessible.ts +0 -35
- package/core/interfaces/i_metrics_manager.ts +0 -151
- package/core/interfaces/i_movable.ts +0 -29
- package/core/interfaces/i_positionable.ts +0 -50
- package/core/interfaces/i_registrable.ts +0 -25
- package/core/interfaces/i_registrable_field.ts +0 -31
- package/core/interfaces/i_selectable.ts +0 -34
- package/core/interfaces/i_selectable_toolbox_item.ts +0 -64
- package/core/interfaces/i_serializer.ts +0 -65
- package/core/interfaces/i_styleable.ts +0 -35
- package/core/interfaces/i_toolbox.ts +0 -127
- package/core/interfaces/i_toolbox_item.ts +0 -84
- package/core/internal_constants.ts +0 -67
- package/core/keyboard_nav/ast_node.ts +0 -717
- package/core/keyboard_nav/basic_cursor.ts +0 -214
- package/core/keyboard_nav/cursor.ts +0 -134
- package/core/keyboard_nav/marker.ts +0 -115
- package/core/keyboard_nav/tab_navigate_cursor.ts +0 -48
- package/core/main.js +0 -303
- package/core/marker_manager.ts +0 -181
- package/core/menu.ts +0 -449
- package/core/menuitem.ts +0 -240
- package/core/metrics_manager.ts +0 -456
- package/core/msg.ts +0 -20
- package/core/mutator.ts +0 -560
- package/core/names.ts +0 -267
- package/core/options.ts +0 -365
- package/core/positionable_helpers.ts +0 -181
- package/core/procedures.ts +0 -443
- package/core/registry.ts +0 -339
- package/core/rendered_connection.ts +0 -568
- package/core/renderers/common/block_rendering.ts +0 -164
- package/core/renderers/common/constants.ts +0 -1124
- package/core/renderers/common/debug.ts +0 -61
- package/core/renderers/common/debugger.ts +0 -433
- package/core/renderers/common/drawer.ts +0 -450
- package/core/renderers/common/i_path_object.ts +0 -161
- package/core/renderers/common/info.ts +0 -718
- package/core/renderers/common/marker_svg.ts +0 -680
- package/core/renderers/common/path_object.ts +0 -272
- package/core/renderers/common/renderer.ts +0 -271
- package/core/renderers/geras/constants.ts +0 -61
- package/core/renderers/geras/drawer.ts +0 -176
- package/core/renderers/geras/geras.ts +0 -37
- package/core/renderers/geras/highlight_constants.ts +0 -337
- package/core/renderers/geras/highlighter.ts +0 -306
- package/core/renderers/geras/info.ts +0 -450
- package/core/renderers/geras/measurables/inline_input.ts +0 -51
- package/core/renderers/geras/measurables/statement_input.ts +0 -50
- package/core/renderers/geras/path_object.ts +0 -138
- package/core/renderers/geras/renderer.ts +0 -126
- package/core/renderers/measurables/base.ts +0 -53
- package/core/renderers/measurables/bottom_row.ts +0 -120
- package/core/renderers/measurables/connection.ts +0 -52
- package/core/renderers/measurables/external_value_input.ts +0 -65
- package/core/renderers/measurables/field.ts +0 -63
- package/core/renderers/measurables/hat.ts +0 -48
- package/core/renderers/measurables/icon.ts +0 -54
- package/core/renderers/measurables/in_row_spacer.ts +0 -44
- package/core/renderers/measurables/inline_input.ts +0 -76
- package/core/renderers/measurables/input_connection.ts +0 -66
- package/core/renderers/measurables/input_row.ts +0 -82
- package/core/renderers/measurables/jagged_edge.ts +0 -43
- package/core/renderers/measurables/next_connection.ts +0 -47
- package/core/renderers/measurables/output_connection.ts +0 -56
- package/core/renderers/measurables/previous_connection.ts +0 -47
- package/core/renderers/measurables/round_corner.ts +0 -49
- package/core/renderers/measurables/row.ts +0 -225
- package/core/renderers/measurables/spacer_row.ts +0 -55
- package/core/renderers/measurables/square_corner.ts +0 -47
- package/core/renderers/measurables/statement_input.ts +0 -55
- package/core/renderers/measurables/top_row.ts +0 -122
- package/core/renderers/measurables/types.ts +0 -332
- package/core/renderers/minimalist/constants.ts +0 -32
- package/core/renderers/minimalist/drawer.ts +0 -38
- package/core/renderers/minimalist/info.ts +0 -52
- package/core/renderers/minimalist/minimalist.ts +0 -22
- package/core/renderers/minimalist/renderer.ts +0 -71
- package/core/renderers/thrasos/info.ts +0 -338
- package/core/renderers/thrasos/renderer.ts +0 -48
- package/core/renderers/thrasos/thrasos.ts +0 -20
- package/core/renderers/zelos/constants.ts +0 -858
- package/core/renderers/zelos/drawer.ts +0 -228
- package/core/renderers/zelos/info.ts +0 -593
- package/core/renderers/zelos/marker_svg.ts +0 -151
- package/core/renderers/zelos/measurables/bottom_row.ts +0 -53
- package/core/renderers/zelos/measurables/inputs.ts +0 -56
- package/core/renderers/zelos/measurables/row_elements.ts +0 -45
- package/core/renderers/zelos/measurables/top_row.ts +0 -58
- package/core/renderers/zelos/path_object.ts +0 -215
- package/core/renderers/zelos/renderer.ts +0 -142
- package/core/renderers/zelos/zelos.ts +0 -39
- package/core/scrollbar.ts +0 -870
- package/core/scrollbar_pair.ts +0 -321
- package/core/serialization/blocks.ts +0 -706
- package/core/serialization/exceptions.ts +0 -98
- package/core/serialization/priorities.ts +0 -32
- package/core/serialization/registry.ts +0 -43
- package/core/serialization/variables.ts +0 -96
- package/core/serialization/workspaces.ts +0 -106
- package/core/shortcut_items.ts +0 -266
- package/core/shortcut_registry.ts +0 -355
- package/core/sprites.ts +0 -29
- package/core/theme/classic.ts +0 -54
- package/core/theme/themes.ts +0 -22
- package/core/theme/zelos.ts +0 -91
- package/core/theme.ts +0 -221
- package/core/theme_manager.ts +0 -186
- package/core/toolbox/category.ts +0 -679
- package/core/toolbox/collapsible_category.ts +0 -273
- package/core/toolbox/separator.ts +0 -105
- package/core/toolbox/toolbox.ts +0 -1044
- package/core/toolbox/toolbox_item.ts +0 -147
- package/core/tooltip.ts +0 -463
- package/core/touch.ts +0 -306
- package/core/touch_gesture.ts +0 -295
- package/core/trashcan.ts +0 -671
- package/core/utils/aria.ts +0 -160
- package/core/utils/array.ts +0 -32
- package/core/utils/colour.ts +0 -276
- package/core/utils/coordinate.ts +0 -124
- package/core/utils/deprecation.ts +0 -41
- package/core/utils/dom.ts +0 -408
- package/core/utils/idgenerator.ts +0 -80
- package/core/utils/keycodes.ts +0 -169
- package/core/utils/math.ts +0 -61
- package/core/utils/metrics.ts +0 -97
- package/core/utils/object.ts +0 -95
- package/core/utils/parsing.ts +0 -261
- package/core/utils/rect.ts +0 -62
- package/core/utils/sentinel.ts +0 -23
- package/core/utils/size.ts +0 -51
- package/core/utils/string.ts +0 -308
- package/core/utils/style.ts +0 -306
- package/core/utils/svg.ts +0 -88
- package/core/utils/svg_math.ts +0 -269
- package/core/utils/svg_paths.ts +0 -140
- package/core/utils/toolbox.ts +0 -433
- package/core/utils/useragent.ts +0 -135
- package/core/utils/xml.ts +0 -97
- package/core/utils.ts +0 -428
- package/core/variable_map.ts +0 -392
- package/core/variable_model.ts +0 -82
- package/core/variables.ts +0 -596
- package/core/variables_dynamic.ts +0 -133
- package/core/warning.ts +0 -161
- package/core/widgetdiv.ts +0 -257
- package/core/workspace.ts +0 -801
- package/core/workspace_audio.ts +0 -156
- package/core/workspace_comment.ts +0 -398
- package/core/workspace_comment_svg.ts +0 -1127
- package/core/workspace_drag_surface_svg.ts +0 -187
- package/core/workspace_dragger.ts +0 -104
- package/core/workspace_svg.ts +0 -2655
- package/core/xml.ts +0 -1023
- package/core/zoom_controls.ts +0 -441
- package/generators/dart/all.js +0 -27
- package/generators/dart/colour.js +0 -105
- package/generators/dart/lists.js +0 -431
- package/generators/dart/logic.js +0 -123
- package/generators/dart/loops.js +0 -161
- package/generators/dart/math.js +0 -446
- package/generators/dart/procedures.js +0 -105
- package/generators/dart/text.js +0 -338
- package/generators/dart/variables.js +0 -32
- package/generators/dart/variables_dynamic.js +0 -21
- package/generators/dart.js +0 -303
- package/generators/javascript/all.js +0 -27
- package/generators/javascript/colour.js +0 -85
- package/generators/javascript/lists.js +0 -405
- package/generators/javascript/logic.js +0 -127
- package/generators/javascript/loops.js +0 -180
- package/generators/javascript/math.js +0 -401
- package/generators/javascript/procedures.js +0 -110
- package/generators/javascript/text.js +0 -371
- package/generators/javascript/variables.js +0 -32
- package/generators/javascript/variables_dynamic.js +0 -21
- package/generators/javascript.js +0 -322
- package/generators/lua/all.js +0 -27
- package/generators/lua/colour.js +0 -71
- package/generators/lua/lists.js +0 -348
- package/generators/lua/logic.js +0 -112
- package/generators/lua/loops.js +0 -168
- package/generators/lua/math.js +0 -406
- package/generators/lua/procedures.js +0 -106
- package/generators/lua/text.js +0 -327
- package/generators/lua/variables.js +0 -31
- package/generators/lua/variables_dynamic.js +0 -21
- package/generators/lua.js +0 -206
- package/generators/php/all.js +0 -27
- package/generators/php/colour.js +0 -81
- package/generators/php/lists.js +0 -481
- package/generators/php/logic.js +0 -119
- package/generators/php/loops.js +0 -161
- package/generators/php/math.js +0 -349
- package/generators/php/procedures.js +0 -125
- package/generators/php/text.js +0 -255
- package/generators/php/variables.js +0 -32
- package/generators/php/variables_dynamic.js +0 -21
- package/generators/php.js +0 -303
- package/generators/python/all.js +0 -27
- package/generators/python/colour.js +0 -67
- package/generators/python/lists.js +0 -346
- package/generators/python/logic.js +0 -120
- package/generators/python/loops.js +0 -206
- package/generators/python/math.js +0 -373
- package/generators/python/procedures.js +0 -129
- package/generators/python/text.js +0 -291
- package/generators/python/variables.js +0 -32
- package/generators/python/variables_dynamic.js +0 -21
- package/generators/python.js +0 -333
package/core/registry.ts
DELETED
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2020 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @fileoverview This file is a universal registry that provides generic methods
|
|
9
|
-
* for registering and unregistering different types of classes.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* This file is a universal registry that provides generic methods
|
|
14
|
-
* for registering and unregistering different types of classes.
|
|
15
|
-
* @namespace Blockly.registry
|
|
16
|
-
*/
|
|
17
|
-
import * as goog from '../closure/goog/goog.js';
|
|
18
|
-
goog.declareModuleId('Blockly.registry');
|
|
19
|
-
|
|
20
|
-
import type {Abstract} from './events/events_abstract.js';
|
|
21
|
-
import type {Field} from './field.js';
|
|
22
|
-
import type {IBlockDragger} from './interfaces/i_block_dragger.js';
|
|
23
|
-
import type {IConnectionChecker} from './interfaces/i_connection_checker.js';
|
|
24
|
-
import type {IFlyout} from './interfaces/i_flyout.js';
|
|
25
|
-
import type {IMetricsManager} from './interfaces/i_metrics_manager.js';
|
|
26
|
-
import type {ISerializer} from './interfaces/i_serializer.js';
|
|
27
|
-
import type {IToolbox} from './interfaces/i_toolbox.js';
|
|
28
|
-
import type {Cursor} from './keyboard_nav/cursor.js';
|
|
29
|
-
import type {Options} from './options.js';
|
|
30
|
-
import type {Renderer} from './renderers/common/renderer.js';
|
|
31
|
-
import type {Theme} from './theme.js';
|
|
32
|
-
import type {ToolboxItem} from './toolbox/toolbox_item.js';
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* A map of maps. With the keys being the type and name of the class we are
|
|
37
|
-
* registering and the value being the constructor function.
|
|
38
|
-
* e.g. {'field': {'field_angle': Blockly.FieldAngle}}
|
|
39
|
-
*/
|
|
40
|
-
const typeMap: {
|
|
41
|
-
[key: string]:
|
|
42
|
-
{[key: string]: (new () => AnyDuringMigration)|AnyDuringMigration}
|
|
43
|
-
} = Object.create(null);
|
|
44
|
-
export const TEST_ONLY = {typeMap};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* A map of maps. With the keys being the type and caseless name of the class we
|
|
48
|
-
* are registring, and the value being the most recent cased name for that
|
|
49
|
-
* registration.
|
|
50
|
-
*/
|
|
51
|
-
const nameMap: {[key: string]: {[key: string]: string}} = Object.create(null);
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* The string used to register the default class for a type of plugin.
|
|
55
|
-
* @alias Blockly.registry.DEFAULT
|
|
56
|
-
*/
|
|
57
|
-
export const DEFAULT = 'default';
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* A name with the type of the element stored in the generic.
|
|
61
|
-
* @alias Blockly.registry.Type
|
|
62
|
-
*/
|
|
63
|
-
export class Type<T> {
|
|
64
|
-
/** @param name The name of the registry type. */
|
|
65
|
-
constructor(private readonly name: string) {}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Returns the name of the type.
|
|
69
|
-
* @return The name.
|
|
70
|
-
*/
|
|
71
|
-
toString(): string {
|
|
72
|
-
return this.name;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
static CONNECTION_CHECKER = new Type<IConnectionChecker>('connectionChecker');
|
|
76
|
-
|
|
77
|
-
static CURSOR = new Type<Cursor>('cursor');
|
|
78
|
-
|
|
79
|
-
static EVENT = new Type<Abstract>('event');
|
|
80
|
-
|
|
81
|
-
static FIELD = new Type<Field>('field');
|
|
82
|
-
|
|
83
|
-
static RENDERER = new Type<Renderer>('renderer');
|
|
84
|
-
|
|
85
|
-
static TOOLBOX = new Type<IToolbox>('toolbox');
|
|
86
|
-
|
|
87
|
-
static THEME = new Type<Theme>('theme');
|
|
88
|
-
|
|
89
|
-
static TOOLBOX_ITEM = new Type<ToolboxItem>('toolboxItem');
|
|
90
|
-
|
|
91
|
-
static FLYOUTS_VERTICAL_TOOLBOX = new Type<IFlyout>('flyoutsVerticalToolbox');
|
|
92
|
-
|
|
93
|
-
static FLYOUTS_HORIZONTAL_TOOLBOX =
|
|
94
|
-
new Type<IFlyout>('flyoutsHorizontalToolbox');
|
|
95
|
-
|
|
96
|
-
static METRICS_MANAGER = new Type<IMetricsManager>('metricsManager');
|
|
97
|
-
|
|
98
|
-
static BLOCK_DRAGGER = new Type<IBlockDragger>('blockDragger');
|
|
99
|
-
|
|
100
|
-
/** @internal */
|
|
101
|
-
static SERIALIZER = new Type<ISerializer>('serializer');
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Registers a class based on a type and name.
|
|
106
|
-
* @param type The type of the plugin.
|
|
107
|
-
* (e.g. Field, Renderer)
|
|
108
|
-
* @param name The plugin's name. (Ex. field_angle, geras)
|
|
109
|
-
* @param registryItem The class or object to register.
|
|
110
|
-
* @param opt_allowOverrides True to prevent an error when overriding an already
|
|
111
|
-
* registered item.
|
|
112
|
-
* @throws {Error} if the type or name is empty, a name with the given type has
|
|
113
|
-
* already been registered, or if the given class or object is not valid for
|
|
114
|
-
* its type.
|
|
115
|
-
* @alias Blockly.registry.register
|
|
116
|
-
*/
|
|
117
|
-
export function register<T>(
|
|
118
|
-
type: string|Type<T>, name: string,
|
|
119
|
-
registryItem: (new (...p1: AnyDuringMigration[]) => T)|null|
|
|
120
|
-
AnyDuringMigration,
|
|
121
|
-
opt_allowOverrides?: boolean): void {
|
|
122
|
-
if (!(type instanceof Type) && typeof type !== 'string' ||
|
|
123
|
-
String(type).trim() === '') {
|
|
124
|
-
throw Error(
|
|
125
|
-
'Invalid type "' + type + '". The type must be a' +
|
|
126
|
-
' non-empty string or a Blockly.registry.Type.');
|
|
127
|
-
}
|
|
128
|
-
type = String(type).toLowerCase();
|
|
129
|
-
|
|
130
|
-
if (typeof name !== 'string' || name.trim() === '') {
|
|
131
|
-
throw Error(
|
|
132
|
-
'Invalid name "' + name + '". The name must be a' +
|
|
133
|
-
' non-empty string.');
|
|
134
|
-
}
|
|
135
|
-
const caselessName = name.toLowerCase();
|
|
136
|
-
if (!registryItem) {
|
|
137
|
-
throw Error('Can not register a null value');
|
|
138
|
-
}
|
|
139
|
-
let typeRegistry = typeMap[type];
|
|
140
|
-
let nameRegistry = nameMap[type];
|
|
141
|
-
// If the type registry has not been created, create it.
|
|
142
|
-
if (!typeRegistry) {
|
|
143
|
-
typeRegistry = typeMap[type] = Object.create(null);
|
|
144
|
-
nameRegistry = nameMap[type] = Object.create(null);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Validate that the given class has all the required properties.
|
|
148
|
-
validate(type, registryItem);
|
|
149
|
-
|
|
150
|
-
// Don't throw an error if opt_allowOverrides is true.
|
|
151
|
-
if (!opt_allowOverrides && typeRegistry[caselessName]) {
|
|
152
|
-
throw Error(
|
|
153
|
-
'Name "' + caselessName + '" with type "' + type +
|
|
154
|
-
'" already registered.');
|
|
155
|
-
}
|
|
156
|
-
typeRegistry[caselessName] = registryItem;
|
|
157
|
-
nameRegistry[caselessName] = name;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Checks the given registry item for properties that are required based on the
|
|
162
|
-
* type.
|
|
163
|
-
* @param type The type of the plugin. (e.g. Field, Renderer)
|
|
164
|
-
* @param registryItem A class or object that we are checking for the required
|
|
165
|
-
* properties.
|
|
166
|
-
*/
|
|
167
|
-
function validate(type: string, registryItem: Function|AnyDuringMigration) {
|
|
168
|
-
switch (type) {
|
|
169
|
-
case String(Type.FIELD):
|
|
170
|
-
if (typeof registryItem.fromJson !== 'function') {
|
|
171
|
-
throw Error('Type "' + type + '" must have a fromJson function');
|
|
172
|
-
}
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Unregisters the registry item with the given type and name.
|
|
179
|
-
* @param type The type of the plugin.
|
|
180
|
-
* (e.g. Field, Renderer)
|
|
181
|
-
* @param name The plugin's name. (Ex. field_angle, geras)
|
|
182
|
-
* @alias Blockly.registry.unregister
|
|
183
|
-
*/
|
|
184
|
-
export function unregister<T>(type: string|Type<T>, name: string) {
|
|
185
|
-
type = String(type).toLowerCase();
|
|
186
|
-
name = name.toLowerCase();
|
|
187
|
-
const typeRegistry = typeMap[type];
|
|
188
|
-
if (!typeRegistry || !typeRegistry[name]) {
|
|
189
|
-
console.warn(
|
|
190
|
-
'Unable to unregister [' + name + '][' + type + '] from the ' +
|
|
191
|
-
'registry.');
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
delete typeMap[type][name];
|
|
195
|
-
delete nameMap[type][name];
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Gets the registry item for the given name and type. This can be either a
|
|
200
|
-
* class or an object.
|
|
201
|
-
* @param type The type of the plugin.
|
|
202
|
-
* (e.g. Field, Renderer)
|
|
203
|
-
* @param name The plugin's name. (Ex. field_angle, geras)
|
|
204
|
-
* @param opt_throwIfMissing Whether or not to throw an error if we are unable
|
|
205
|
-
* to find the plugin.
|
|
206
|
-
* @return The class or object with the given name and type or null if none
|
|
207
|
-
* exists.
|
|
208
|
-
*/
|
|
209
|
-
function getItem<T>(
|
|
210
|
-
type: string|Type<T>, name: string, opt_throwIfMissing?: boolean):
|
|
211
|
-
(new (...p1: AnyDuringMigration[]) => T)|null|AnyDuringMigration {
|
|
212
|
-
type = String(type).toLowerCase();
|
|
213
|
-
name = name.toLowerCase();
|
|
214
|
-
const typeRegistry = typeMap[type];
|
|
215
|
-
if (!typeRegistry || !typeRegistry[name]) {
|
|
216
|
-
const msg = 'Unable to find [' + name + '][' + type + '] in the registry.';
|
|
217
|
-
if (opt_throwIfMissing) {
|
|
218
|
-
throw new Error(
|
|
219
|
-
msg + ' You must require or register a ' + type + ' plugin.');
|
|
220
|
-
} else {
|
|
221
|
-
console.warn(msg);
|
|
222
|
-
}
|
|
223
|
-
return null;
|
|
224
|
-
}
|
|
225
|
-
return typeRegistry[name];
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Returns whether or not the registry contains an item with the given type and
|
|
230
|
-
* name.
|
|
231
|
-
* @param type The type of the plugin.
|
|
232
|
-
* (e.g. Field, Renderer)
|
|
233
|
-
* @param name The plugin's name. (Ex. field_angle, geras)
|
|
234
|
-
* @return True if the registry has an item with the given type and name, false
|
|
235
|
-
* otherwise.
|
|
236
|
-
* @alias Blockly.registry.hasItem
|
|
237
|
-
*/
|
|
238
|
-
export function hasItem<T>(type: string|Type<T>, name: string): boolean {
|
|
239
|
-
type = String(type).toLowerCase();
|
|
240
|
-
name = name.toLowerCase();
|
|
241
|
-
const typeRegistry = typeMap[type];
|
|
242
|
-
if (!typeRegistry) {
|
|
243
|
-
return false;
|
|
244
|
-
}
|
|
245
|
-
return !!typeRegistry[name];
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Gets the class for the given name and type.
|
|
250
|
-
* @param type The type of the plugin.
|
|
251
|
-
* (e.g. Field, Renderer)
|
|
252
|
-
* @param name The plugin's name. (Ex. field_angle, geras)
|
|
253
|
-
* @param opt_throwIfMissing Whether or not to throw an error if we are unable
|
|
254
|
-
* to find the plugin.
|
|
255
|
-
* @return The class with the given name and type or null if none exists.
|
|
256
|
-
* @alias Blockly.registry.getClass
|
|
257
|
-
*/
|
|
258
|
-
export function getClass<T>(
|
|
259
|
-
type: string|Type<T>, name: string, opt_throwIfMissing?: boolean):
|
|
260
|
-
(new (...p1: AnyDuringMigration[]) => T)|null {
|
|
261
|
-
return getItem(type, name, opt_throwIfMissing) as (
|
|
262
|
-
new (...p1: AnyDuringMigration[]) => T) |
|
|
263
|
-
null;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Gets the object for the given name and type.
|
|
268
|
-
* @param type The type of the plugin.
|
|
269
|
-
* (e.g. Category)
|
|
270
|
-
* @param name The plugin's name. (Ex. logic_category)
|
|
271
|
-
* @param opt_throwIfMissing Whether or not to throw an error if we are unable
|
|
272
|
-
* to find the object.
|
|
273
|
-
* @return The object with the given name and type or null if none exists.
|
|
274
|
-
* @alias Blockly.registry.getObject
|
|
275
|
-
*/
|
|
276
|
-
export function getObject<T>(
|
|
277
|
-
type: string|Type<T>, name: string, opt_throwIfMissing?: boolean): T|null {
|
|
278
|
-
return getItem(type, name, opt_throwIfMissing) as T;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Returns a map of items registered with the given type.
|
|
283
|
-
* @param type The type of the plugin. (e.g. Category)
|
|
284
|
-
* @param opt_cased Whether or not to return a map with cased keys (rather than
|
|
285
|
-
* caseless keys). False by default.
|
|
286
|
-
* @param opt_throwIfMissing Whether or not to throw an error if we are unable
|
|
287
|
-
* to find the object. False by default.
|
|
288
|
-
* @return A map of objects with the given type, or null if none exists.
|
|
289
|
-
* @alias Blockly.registry.getAllItems
|
|
290
|
-
*/
|
|
291
|
-
export function getAllItems<T>(
|
|
292
|
-
type: string|Type<T>, opt_cased: boolean, opt_throwIfMissing?: boolean):
|
|
293
|
-
{[key: string]: T|null|(new (...p1: AnyDuringMigration[]) => T)}|null {
|
|
294
|
-
type = String(type).toLowerCase();
|
|
295
|
-
const typeRegistry = typeMap[type];
|
|
296
|
-
if (!typeRegistry) {
|
|
297
|
-
const msg = `Unable to find [${type}] in the registry.`;
|
|
298
|
-
if (opt_throwIfMissing) {
|
|
299
|
-
throw new Error(`${msg} You must require or register a ${type} plugin.`);
|
|
300
|
-
} else {
|
|
301
|
-
console.warn(msg);
|
|
302
|
-
}
|
|
303
|
-
return null;
|
|
304
|
-
}
|
|
305
|
-
if (!opt_cased) {
|
|
306
|
-
return typeRegistry;
|
|
307
|
-
}
|
|
308
|
-
const nameRegistry = nameMap[type];
|
|
309
|
-
const casedRegistry = Object.create(null);
|
|
310
|
-
const keys = Object.keys(typeRegistry);
|
|
311
|
-
for (let i = 0; i < keys.length; i++) {
|
|
312
|
-
const key = keys[i];
|
|
313
|
-
casedRegistry[nameRegistry[key]] = typeRegistry[key];
|
|
314
|
-
}
|
|
315
|
-
return casedRegistry;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Gets the class from Blockly options for the given type.
|
|
320
|
-
* This is used for plugins that override a built in feature. (e.g. Toolbox)
|
|
321
|
-
* @param type The type of the plugin.
|
|
322
|
-
* @param options The option object to check for the given plugin.
|
|
323
|
-
* @param opt_throwIfMissing Whether or not to throw an error if we are unable
|
|
324
|
-
* to find the plugin.
|
|
325
|
-
* @return The class for the plugin.
|
|
326
|
-
* @alias Blockly.registry.getClassFromOptions
|
|
327
|
-
*/
|
|
328
|
-
export function getClassFromOptions<T>(
|
|
329
|
-
type: Type<T>, options: Options, opt_throwIfMissing?: boolean):
|
|
330
|
-
(new (...p1: AnyDuringMigration[]) => T)|null {
|
|
331
|
-
const typeName = type.toString();
|
|
332
|
-
const plugin = options.plugins[typeName] || DEFAULT;
|
|
333
|
-
|
|
334
|
-
// If the user passed in a plugin class instead of a registered plugin name.
|
|
335
|
-
if (typeof plugin === 'function') {
|
|
336
|
-
return plugin;
|
|
337
|
-
}
|
|
338
|
-
return getClass(type, plugin, opt_throwIfMissing);
|
|
339
|
-
}
|