nodeskini 1.0.0 → 1.0.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/blocklySkini/archive/blocklyControleur.js +87 -0
- package/blocklySkini/archive/blocklySkini.js +84 -0
- package/blocklySkini/archive/blocklyhop.js +75 -0
- package/blocklySkini/archive/clientControleurBlocly.js +170 -0
- package/blocklySkini/archive/index.html +76 -0
- package/blocklySkini/archive/testHHsuspend.txt +89 -0
- package/blocklySkini/archive/testHHtrap.txt +262 -0
- package/blocklySkini/archive/testOrchestration.txt +177 -0
- package/blocklySkini/archive/testOrchestration.xml +447 -0
- package/blocklySkini/archive/testOrchestration2.xml +456 -0
- package/blocklySkini/blockly/README.md +77 -0
- package/blocklySkini/blockly/blockly.d.ts +21480 -0
- package/blocklySkini/blockly/blockly.js +25 -0
- package/blocklySkini/blockly/blockly.min.js +2188 -0
- package/blocklySkini/blockly/blockly_compressed.js +1455 -0
- package/blocklySkini/blockly/blockly_compressed.js.map +1 -0
- package/blocklySkini/blockly/blocks/colour.js +122 -0
- package/blocklySkini/blockly/blocks/lists.js +862 -0
- package/blocklySkini/blockly/blocks/logic.js +635 -0
- package/blocklySkini/blockly/blocks/loops.js +357 -0
- package/blocklySkini/blockly/blocks/math.js +566 -0
- package/blocklySkini/blockly/blocks/procedures.js +1072 -0
- package/blocklySkini/blockly/blocks/text.js +923 -0
- package/blocklySkini/blockly/blocks/variables.js +163 -0
- package/blocklySkini/blockly/blocks/variables_dynamic.js +180 -0
- package/blocklySkini/blockly/blocks.d.ts +15 -0
- package/blocklySkini/blockly/blocks.js +27 -0
- package/blocklySkini/blockly/blocks_compressed.js +182 -0
- package/blocklySkini/blockly/blocks_compressed.js.map +1 -0
- package/blocklySkini/blockly/browser.js +36 -0
- package/blocklySkini/blockly/core/block.js +2010 -0
- package/blocklySkini/blockly/core/block_animations.js +203 -0
- package/blocklySkini/blockly/core/block_drag_surface.js +212 -0
- package/blocklySkini/blockly/core/block_dragger.js +378 -0
- package/blocklySkini/blockly/core/block_events.js +548 -0
- package/blocklySkini/blockly/core/block_svg.js +1763 -0
- package/blocklySkini/blockly/core/blockly.js +674 -0
- package/blocklySkini/blockly/core/blocks.js +23 -0
- package/blocklySkini/blockly/core/bubble.js +880 -0
- package/blocklySkini/blockly/core/bubble_dragger.js +274 -0
- package/blocklySkini/blockly/core/comment.js +439 -0
- package/blocklySkini/blockly/core/components/component.js +554 -0
- package/blocklySkini/blockly/core/components/tree/basenode.js +895 -0
- package/blocklySkini/blockly/core/components/tree/treecontrol.js +332 -0
- package/blocklySkini/blockly/core/components/tree/treenode.js +172 -0
- package/blocklySkini/blockly/core/connection.js +682 -0
- package/blocklySkini/blockly/core/connection_checker.js +285 -0
- package/blocklySkini/blockly/core/connection_db.js +295 -0
- package/blocklySkini/blockly/core/constants.js +277 -0
- package/blocklySkini/blockly/core/contextmenu.js +307 -0
- package/blocklySkini/blockly/core/contextmenu_items.js +534 -0
- package/blocklySkini/blockly/core/contextmenu_registry.js +165 -0
- package/blocklySkini/blockly/core/css.js +549 -0
- package/blocklySkini/blockly/core/dropdowndiv.js +776 -0
- package/blocklySkini/blockly/core/events.js +387 -0
- package/blocklySkini/blockly/core/events_abstract.js +106 -0
- package/blocklySkini/blockly/core/extensions.js +450 -0
- package/blocklySkini/blockly/core/field.js +1162 -0
- package/blocklySkini/blockly/core/field_angle.js +562 -0
- package/blocklySkini/blockly/core/field_checkbox.js +220 -0
- package/blocklySkini/blockly/core/field_colour.js +664 -0
- package/blocklySkini/blockly/core/field_dropdown.js +760 -0
- package/blocklySkini/blockly/core/field_image.js +286 -0
- package/blocklySkini/blockly/core/field_label.js +130 -0
- package/blocklySkini/blockly/core/field_label_serializable.js +69 -0
- package/blocklySkini/blockly/core/field_multilineinput.js +299 -0
- package/blocklySkini/blockly/core/field_number.js +317 -0
- package/blocklySkini/blockly/core/field_registry.js +66 -0
- package/blocklySkini/blockly/core/field_textinput.js +616 -0
- package/blocklySkini/blockly/core/field_variable.js +463 -0
- package/blocklySkini/blockly/core/flyout_base.js +1071 -0
- package/blocklySkini/blockly/core/flyout_button.js +325 -0
- package/blocklySkini/blockly/core/flyout_dragger.js +76 -0
- package/blocklySkini/blockly/core/flyout_horizontal.js +388 -0
- package/blocklySkini/blockly/core/flyout_vertical.js +397 -0
- package/blocklySkini/blockly/core/generator.js +482 -0
- package/blocklySkini/blockly/core/gesture.js +993 -0
- package/blocklySkini/blockly/core/grid.js +222 -0
- package/blocklySkini/blockly/core/icon.js +206 -0
- package/blocklySkini/blockly/core/inject.js +487 -0
- package/blocklySkini/blockly/core/input.js +296 -0
- package/blocklySkini/blockly/core/insertion_marker_manager.js +700 -0
- package/blocklySkini/blockly/core/interfaces/i_accessibility.js +72 -0
- package/blocklySkini/blockly/core/interfaces/i_bounded_element.js +31 -0
- package/blocklySkini/blockly/core/interfaces/i_bubble.js +83 -0
- package/blocklySkini/blockly/core/interfaces/i_connection_checker.js +94 -0
- package/blocklySkini/blockly/core/interfaces/i_contextmenu.js +26 -0
- package/blocklySkini/blockly/core/interfaces/i_copyable.js +40 -0
- package/blocklySkini/blockly/core/interfaces/i_deletable.js +27 -0
- package/blocklySkini/blockly/core/interfaces/i_deletearea.js +28 -0
- package/blocklySkini/blockly/core/interfaces/i_flyout.js +178 -0
- package/blocklySkini/blockly/core/interfaces/i_movable.js +27 -0
- package/blocklySkini/blockly/core/interfaces/i_registrable.js +22 -0
- package/blocklySkini/blockly/core/interfaces/i_registrable_field.js +31 -0
- package/blocklySkini/blockly/core/interfaces/i_selectable.js +43 -0
- package/blocklySkini/blockly/core/interfaces/i_styleable.js +33 -0
- package/blocklySkini/blockly/core/interfaces/i_toolbox.js +131 -0
- package/blocklySkini/blockly/core/interfaces/i_toolbox_item.js +148 -0
- package/blocklySkini/blockly/core/keyboard_nav/action.js +26 -0
- package/blocklySkini/blockly/core/keyboard_nav/ast_node.js +684 -0
- package/blocklySkini/blockly/core/keyboard_nav/basic_cursor.js +208 -0
- package/blocklySkini/blockly/core/keyboard_nav/cursor.js +170 -0
- package/blocklySkini/blockly/core/keyboard_nav/flyout_cursor.js +106 -0
- package/blocklySkini/blockly/core/keyboard_nav/key_map.js +190 -0
- package/blocklySkini/blockly/core/keyboard_nav/marker.js +120 -0
- package/blocklySkini/blockly/core/keyboard_nav/navigation.js +1084 -0
- package/blocklySkini/blockly/core/keyboard_nav/tab_navigate_cursor.js +48 -0
- package/blocklySkini/blockly/core/marker_manager.js +183 -0
- package/blocklySkini/blockly/core/menu.js +465 -0
- package/blocklySkini/blockly/core/menuitem.js +280 -0
- package/blocklySkini/blockly/core/msg.js +31 -0
- package/blocklySkini/blockly/core/mutator.js +555 -0
- package/blocklySkini/blockly/core/names.js +186 -0
- package/blocklySkini/blockly/core/options.js +365 -0
- package/blocklySkini/blockly/core/procedures.js +404 -0
- package/blocklySkini/blockly/core/registry.js +265 -0
- package/blocklySkini/blockly/core/rendered_connection.js +565 -0
- package/blocklySkini/blockly/core/renderers/common/block_rendering.js +81 -0
- package/blocklySkini/blockly/core/renderers/common/constants.js +1256 -0
- package/blocklySkini/blockly/core/renderers/common/debugger.js +431 -0
- package/blocklySkini/blockly/core/renderers/common/drawer.js +468 -0
- package/blocklySkini/blockly/core/renderers/common/i_path_object.js +151 -0
- package/blocklySkini/blockly/core/renderers/common/info.js +775 -0
- package/blocklySkini/blockly/core/renderers/common/marker_svg.js +687 -0
- package/blocklySkini/blockly/core/renderers/common/path_object.js +279 -0
- package/blocklySkini/blockly/core/renderers/common/renderer.js +301 -0
- package/blocklySkini/blockly/core/renderers/geras/constants.js +64 -0
- package/blocklySkini/blockly/core/renderers/geras/drawer.js +205 -0
- package/blocklySkini/blockly/core/renderers/geras/highlight_constants.js +311 -0
- package/blocklySkini/blockly/core/renderers/geras/highlighter.js +256 -0
- package/blocklySkini/blockly/core/renderers/geras/info.js +483 -0
- package/blocklySkini/blockly/core/renderers/geras/measurables/inputs.js +67 -0
- package/blocklySkini/blockly/core/renderers/geras/path_object.js +177 -0
- package/blocklySkini/blockly/core/renderers/geras/renderer.js +138 -0
- package/blocklySkini/blockly/core/renderers/measurables/base.js +44 -0
- package/blocklySkini/blockly/core/renderers/measurables/connections.js +114 -0
- package/blocklySkini/blockly/core/renderers/measurables/inputs.js +160 -0
- package/blocklySkini/blockly/core/renderers/measurables/row_elements.js +185 -0
- package/blocklySkini/blockly/core/renderers/measurables/rows.js +532 -0
- package/blocklySkini/blockly/core/renderers/measurables/types.js +349 -0
- package/blocklySkini/blockly/core/renderers/minimalist/constants.js +29 -0
- package/blocklySkini/blockly/core/renderers/minimalist/drawer.js +32 -0
- package/blocklySkini/blockly/core/renderers/minimalist/info.js +45 -0
- package/blocklySkini/blockly/core/renderers/minimalist/renderer.js +70 -0
- package/blocklySkini/blockly/core/renderers/thrasos/info.js +338 -0
- package/blocklySkini/blockly/core/renderers/thrasos/renderer.js +45 -0
- package/blocklySkini/blockly/core/renderers/zelos/constants.js +1002 -0
- package/blocklySkini/blockly/core/renderers/zelos/drawer.js +233 -0
- package/blocklySkini/blockly/core/renderers/zelos/info.js +587 -0
- package/blocklySkini/blockly/core/renderers/zelos/marker_svg.js +148 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/inputs.js +47 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/row_elements.js +37 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/rows.js +108 -0
- package/blocklySkini/blockly/core/renderers/zelos/path_object.js +244 -0
- package/blocklySkini/blockly/core/renderers/zelos/renderer.js +130 -0
- package/blocklySkini/blockly/core/requires.js +84 -0
- package/blocklySkini/blockly/core/scrollbar.js +880 -0
- package/blocklySkini/blockly/core/theme/classic.js +87 -0
- package/blocklySkini/blockly/core/theme/dark.js +33 -0
- package/blocklySkini/blockly/core/theme/deuteranopia.js +104 -0
- package/blocklySkini/blockly/core/theme/highcontrast.js +119 -0
- package/blocklySkini/blockly/core/theme/modern.js +108 -0
- package/blocklySkini/blockly/core/theme/tritanopia.js +103 -0
- package/blocklySkini/blockly/core/theme/zelos.js +106 -0
- package/blocklySkini/blockly/core/theme.js +236 -0
- package/blocklySkini/blockly/core/theme_manager.js +197 -0
- package/blocklySkini/blockly/core/toolbox/category.js +690 -0
- package/blocklySkini/blockly/core/toolbox/collapsible_category.js +294 -0
- package/blocklySkini/blockly/core/toolbox/separator.js +123 -0
- package/blocklySkini/blockly/core/toolbox/toolbox.js +984 -0
- package/blocklySkini/blockly/core/toolbox/toolbox_item.js +145 -0
- package/blocklySkini/blockly/core/toolbox.js +943 -0
- package/blocklySkini/blockly/core/tooltip.js +387 -0
- package/blocklySkini/blockly/core/touch.js +255 -0
- package/blocklySkini/blockly/core/touch_gesture.js +325 -0
- package/blocklySkini/blockly/core/trashcan.js +661 -0
- package/blocklySkini/blockly/core/ui_events.js +85 -0
- package/blocklySkini/blockly/core/utils/aria.js +167 -0
- package/blocklySkini/blockly/core/utils/colour.js +208 -0
- package/blocklySkini/blockly/core/utils/coordinate.js +125 -0
- package/blocklySkini/blockly/core/utils/deprecation.js +34 -0
- package/blocklySkini/blockly/core/utils/dom.js +391 -0
- package/blocklySkini/blockly/core/utils/global.js +37 -0
- package/blocklySkini/blockly/core/utils/idgenerator.js +33 -0
- package/blocklySkini/blockly/core/utils/keycodes.js +164 -0
- package/blocklySkini/blockly/core/utils/math.js +56 -0
- package/blocklySkini/blockly/core/utils/metrics.js +124 -0
- package/blocklySkini/blockly/core/utils/object.js +73 -0
- package/blocklySkini/blockly/core/utils/rect.js +54 -0
- package/blocklySkini/blockly/core/utils/size.js +58 -0
- package/blocklySkini/blockly/core/utils/string.js +284 -0
- package/blocklySkini/blockly/core/utils/style.js +281 -0
- package/blocklySkini/blockly/core/utils/svg.js +181 -0
- package/blocklySkini/blockly/core/utils/svg_paths.js +142 -0
- package/blocklySkini/blockly/core/utils/toolbox.js +401 -0
- package/blocklySkini/blockly/core/utils/useragent.js +110 -0
- package/blocklySkini/blockly/core/utils/xml.js +79 -0
- package/blocklySkini/blockly/core/utils.js +652 -0
- package/blocklySkini/blockly/core/variable_events.js +248 -0
- package/blocklySkini/blockly/core/variable_map.js +414 -0
- package/blocklySkini/blockly/core/variable_model.js +95 -0
- package/blocklySkini/blockly/core/variables.js +571 -0
- package/blocklySkini/blockly/core/variables_dynamic.js +100 -0
- package/blocklySkini/blockly/core/warning.js +200 -0
- package/blocklySkini/blockly/core/widgetdiv.js +241 -0
- package/blocklySkini/blockly/core/workspace.js +786 -0
- package/blocklySkini/blockly/core/workspace_audio.js +153 -0
- package/blocklySkini/blockly/core/workspace_comment.js +373 -0
- package/blocklySkini/blockly/core/workspace_comment_render_svg.js +461 -0
- package/blocklySkini/blockly/core/workspace_comment_svg.js +701 -0
- package/blocklySkini/blockly/core/workspace_drag_surface_svg.js +176 -0
- package/blocklySkini/blockly/core/workspace_dragger.js +85 -0
- package/blocklySkini/blockly/core/workspace_events.js +93 -0
- package/blocklySkini/blockly/core/workspace_svg.js +2661 -0
- package/blocklySkini/blockly/core/ws_comment_events.js +417 -0
- package/blocklySkini/blockly/core/xml.js +827 -0
- package/blocklySkini/blockly/core/zoom_controls.js +449 -0
- package/blocklySkini/blockly/core-browser.js +34 -0
- package/blocklySkini/blockly/core.d.ts +15 -0
- package/blocklySkini/blockly/core.js +38 -0
- package/blocklySkini/blockly/dart.d.ts +15 -0
- package/blocklySkini/blockly/dart.js +27 -0
- package/blocklySkini/blockly/dart_compressed.js +114 -0
- package/blocklySkini/blockly/dart_compressed.js.map +1 -0
- package/blocklySkini/blockly/generators/dart/colour.js +114 -0
- package/blocklySkini/blockly/generators/dart/lists.js +447 -0
- package/blocklySkini/blockly/generators/dart/logic.js +127 -0
- package/blocklySkini/blockly/generators/dart/loops.js +169 -0
- package/blocklySkini/blockly/generators/dart/math.js +485 -0
- package/blocklySkini/blockly/generators/dart/procedures.js +111 -0
- package/blocklySkini/blockly/generators/dart/text.js +339 -0
- package/blocklySkini/blockly/generators/dart/variables.js +32 -0
- package/blocklySkini/blockly/generators/dart/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/dart.js +290 -0
- package/blocklySkini/blockly/generators/javascript/colour.js +89 -0
- package/blocklySkini/blockly/generators/javascript/lists.js +388 -0
- package/blocklySkini/blockly/generators/javascript/logic.js +129 -0
- package/blocklySkini/blockly/generators/javascript/loops.js +184 -0
- package/blocklySkini/blockly/generators/javascript/math.js +409 -0
- package/blocklySkini/blockly/generators/javascript/procedures.js +113 -0
- package/blocklySkini/blockly/generators/javascript/text.js +367 -0
- package/blocklySkini/blockly/generators/javascript/variables.js +32 -0
- package/blocklySkini/blockly/generators/javascript/variables_dynamic.js +23 -0
- package/blocklySkini/blockly/generators/javascript.js +317 -0
- package/blocklySkini/blockly/generators/lua/colour.js +76 -0
- package/blocklySkini/blockly/generators/lua/lists.js +368 -0
- package/blocklySkini/blockly/generators/lua/logic.js +127 -0
- package/blocklySkini/blockly/generators/lua/loops.js +173 -0
- package/blocklySkini/blockly/generators/lua/math.js +423 -0
- package/blocklySkini/blockly/generators/lua/procedures.js +113 -0
- package/blocklySkini/blockly/generators/lua/text.js +353 -0
- package/blocklySkini/blockly/generators/lua/variables.js +32 -0
- package/blocklySkini/blockly/generators/lua/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/lua.js +198 -0
- package/blocklySkini/blockly/generators/php/colour.js +91 -0
- package/blocklySkini/blockly/generators/php/lists.js +498 -0
- package/blocklySkini/blockly/generators/php/logic.js +128 -0
- package/blocklySkini/blockly/generators/php/loops.js +170 -0
- package/blocklySkini/blockly/generators/php/math.js +370 -0
- package/blocklySkini/blockly/generators/php/procedures.js +132 -0
- package/blocklySkini/blockly/generators/php/text.js +271 -0
- package/blocklySkini/blockly/generators/php/variables.js +32 -0
- package/blocklySkini/blockly/generators/php/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/php.js +318 -0
- package/blocklySkini/blockly/generators/python/colour.js +72 -0
- package/blocklySkini/blockly/generators/python/lists.js +349 -0
- package/blocklySkini/blockly/generators/python/logic.js +127 -0
- package/blocklySkini/blockly/generators/python/loops.js +214 -0
- package/blocklySkini/blockly/generators/python/math.js +385 -0
- package/blocklySkini/blockly/generators/python/procedures.js +134 -0
- package/blocklySkini/blockly/generators/python/text.js +293 -0
- package/blocklySkini/blockly/generators/python/variables.js +32 -0
- package/blocklySkini/blockly/generators/python/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/python.js +322 -0
- package/blocklySkini/blockly/index.d.ts +22 -0
- package/blocklySkini/blockly/index.js +24 -0
- package/blocklySkini/blockly/javascript.d.ts +15 -0
- package/blocklySkini/blockly/javascript.js +27 -0
- package/blocklySkini/blockly/javascript_compressed.js +115 -0
- package/blocklySkini/blockly/javascript_compressed.js.map +1 -0
- package/blocklySkini/blockly/lua.d.ts +15 -0
- package/blocklySkini/blockly/lua.js +27 -0
- package/blocklySkini/blockly/lua_compressed.js +94 -0
- package/blocklySkini/blockly/lua_compressed.js.map +1 -0
- package/blocklySkini/blockly/media/1x1.gif +0 -0
- package/blocklySkini/blockly/media/click.mp3 +0 -0
- package/blocklySkini/blockly/media/click.ogg +0 -0
- package/blocklySkini/blockly/media/click.wav +0 -0
- package/blocklySkini/blockly/media/delete.mp3 +0 -0
- package/blocklySkini/blockly/media/delete.ogg +0 -0
- package/blocklySkini/blockly/media/delete.wav +0 -0
- package/blocklySkini/blockly/media/disconnect.mp3 +0 -0
- package/blocklySkini/blockly/media/disconnect.ogg +0 -0
- package/blocklySkini/blockly/media/disconnect.wav +0 -0
- package/blocklySkini/blockly/media/dropdown-arrow.svg +1 -0
- package/blocklySkini/blockly/media/handclosed.cur +0 -0
- package/blocklySkini/blockly/media/handdelete.cur +0 -0
- package/blocklySkini/blockly/media/handopen.cur +0 -0
- package/blocklySkini/blockly/media/pilcrow.png +0 -0
- package/blocklySkini/blockly/media/quote0.png +0 -0
- package/blocklySkini/blockly/media/quote1.png +0 -0
- package/blocklySkini/blockly/media/sprites.png +0 -0
- package/blocklySkini/blockly/media/sprites.svg +74 -0
- package/blocklySkini/blockly/msg/ab.d.ts +16 -0
- package/blocklySkini/blockly/msg/ab.js +447 -0
- package/blocklySkini/blockly/msg/ar.d.ts +16 -0
- package/blocklySkini/blockly/msg/ar.js +447 -0
- package/blocklySkini/blockly/msg/az.d.ts +16 -0
- package/blocklySkini/blockly/msg/az.js +447 -0
- package/blocklySkini/blockly/msg/ba.d.ts +16 -0
- package/blocklySkini/blockly/msg/ba.js +447 -0
- package/blocklySkini/blockly/msg/bcc.d.ts +16 -0
- package/blocklySkini/blockly/msg/bcc.js +447 -0
- package/blocklySkini/blockly/msg/be-tarask.d.ts +16 -0
- package/blocklySkini/blockly/msg/be-tarask.js +447 -0
- package/blocklySkini/blockly/msg/be.d.ts +16 -0
- package/blocklySkini/blockly/msg/be.js +447 -0
- package/blocklySkini/blockly/msg/bg.d.ts +16 -0
- package/blocklySkini/blockly/msg/bg.js +447 -0
- package/blocklySkini/blockly/msg/bn.d.ts +16 -0
- package/blocklySkini/blockly/msg/bn.js +447 -0
- package/blocklySkini/blockly/msg/br.d.ts +16 -0
- package/blocklySkini/blockly/msg/br.js +447 -0
- package/blocklySkini/blockly/msg/ca.d.ts +16 -0
- package/blocklySkini/blockly/msg/ca.js +447 -0
- package/blocklySkini/blockly/msg/constants.d.ts +16 -0
- package/blocklySkini/blockly/msg/cs.d.ts +16 -0
- package/blocklySkini/blockly/msg/cs.js +447 -0
- package/blocklySkini/blockly/msg/da.d.ts +16 -0
- package/blocklySkini/blockly/msg/da.js +447 -0
- package/blocklySkini/blockly/msg/de.d.ts +16 -0
- package/blocklySkini/blockly/msg/de.js +447 -0
- package/blocklySkini/blockly/msg/diq.d.ts +16 -0
- package/blocklySkini/blockly/msg/diq.js +447 -0
- package/blocklySkini/blockly/msg/dty.d.ts +16 -0
- package/blocklySkini/blockly/msg/dty.js +447 -0
- package/blocklySkini/blockly/msg/ee.d.ts +16 -0
- package/blocklySkini/blockly/msg/ee.js +447 -0
- package/blocklySkini/blockly/msg/el.d.ts +16 -0
- package/blocklySkini/blockly/msg/el.js +447 -0
- package/blocklySkini/blockly/msg/en-gb.d.ts +16 -0
- package/blocklySkini/blockly/msg/en-gb.js +447 -0
- package/blocklySkini/blockly/msg/en.d.ts +16 -0
- package/blocklySkini/blockly/msg/en.js +447 -0
- package/blocklySkini/blockly/msg/eo.d.ts +16 -0
- package/blocklySkini/blockly/msg/eo.js +447 -0
- package/blocklySkini/blockly/msg/es.d.ts +16 -0
- package/blocklySkini/blockly/msg/es.js +447 -0
- package/blocklySkini/blockly/msg/et.d.ts +16 -0
- package/blocklySkini/blockly/msg/et.js +447 -0
- package/blocklySkini/blockly/msg/eu.d.ts +16 -0
- package/blocklySkini/blockly/msg/eu.js +447 -0
- package/blocklySkini/blockly/msg/fa.d.ts +16 -0
- package/blocklySkini/blockly/msg/fa.js +447 -0
- package/blocklySkini/blockly/msg/fi.d.ts +16 -0
- package/blocklySkini/blockly/msg/fi.js +447 -0
- package/blocklySkini/blockly/msg/fr.d.ts +16 -0
- package/blocklySkini/blockly/msg/fr.js +447 -0
- package/blocklySkini/blockly/msg/gl.d.ts +16 -0
- package/blocklySkini/blockly/msg/gl.js +447 -0
- package/blocklySkini/blockly/msg/gor.d.ts +16 -0
- package/blocklySkini/blockly/msg/gor.js +447 -0
- package/blocklySkini/blockly/msg/ha.d.ts +16 -0
- package/blocklySkini/blockly/msg/ha.js +447 -0
- package/blocklySkini/blockly/msg/he.d.ts +16 -0
- package/blocklySkini/blockly/msg/he.js +447 -0
- package/blocklySkini/blockly/msg/hi.d.ts +16 -0
- package/blocklySkini/blockly/msg/hi.js +447 -0
- package/blocklySkini/blockly/msg/hrx.d.ts +16 -0
- package/blocklySkini/blockly/msg/hrx.js +447 -0
- package/blocklySkini/blockly/msg/hu.d.ts +16 -0
- package/blocklySkini/blockly/msg/hu.js +447 -0
- package/blocklySkini/blockly/msg/hy.d.ts +16 -0
- package/blocklySkini/blockly/msg/hy.js +447 -0
- package/blocklySkini/blockly/msg/ia.d.ts +16 -0
- package/blocklySkini/blockly/msg/ia.js +447 -0
- package/blocklySkini/blockly/msg/id.d.ts +16 -0
- package/blocklySkini/blockly/msg/id.js +447 -0
- package/blocklySkini/blockly/msg/ig.d.ts +16 -0
- package/blocklySkini/blockly/msg/ig.js +447 -0
- package/blocklySkini/blockly/msg/is.d.ts +16 -0
- package/blocklySkini/blockly/msg/is.js +447 -0
- package/blocklySkini/blockly/msg/it.d.ts +16 -0
- package/blocklySkini/blockly/msg/it.js +447 -0
- package/blocklySkini/blockly/msg/ja.d.ts +16 -0
- package/blocklySkini/blockly/msg/ja.js +447 -0
- package/blocklySkini/blockly/msg/kab.d.ts +16 -0
- package/blocklySkini/blockly/msg/kab.js +447 -0
- package/blocklySkini/blockly/msg/kn.d.ts +16 -0
- package/blocklySkini/blockly/msg/kn.js +447 -0
- package/blocklySkini/blockly/msg/ko.d.ts +16 -0
- package/blocklySkini/blockly/msg/ko.js +447 -0
- package/blocklySkini/blockly/msg/lb.d.ts +16 -0
- package/blocklySkini/blockly/msg/lb.js +447 -0
- package/blocklySkini/blockly/msg/lki.d.ts +16 -0
- package/blocklySkini/blockly/msg/lki.js +447 -0
- package/blocklySkini/blockly/msg/lo.d.ts +16 -0
- package/blocklySkini/blockly/msg/lo.js +447 -0
- package/blocklySkini/blockly/msg/lrc.d.ts +16 -0
- package/blocklySkini/blockly/msg/lrc.js +447 -0
- package/blocklySkini/blockly/msg/lt.d.ts +16 -0
- package/blocklySkini/blockly/msg/lt.js +447 -0
- package/blocklySkini/blockly/msg/lv.d.ts +16 -0
- package/blocklySkini/blockly/msg/lv.js +447 -0
- package/blocklySkini/blockly/msg/mk.d.ts +16 -0
- package/blocklySkini/blockly/msg/mk.js +447 -0
- package/blocklySkini/blockly/msg/mnw.d.ts +16 -0
- package/blocklySkini/blockly/msg/mnw.js +447 -0
- package/blocklySkini/blockly/msg/ms.d.ts +16 -0
- package/blocklySkini/blockly/msg/ms.js +447 -0
- package/blocklySkini/blockly/msg/msg.d.ts +444 -0
- package/blocklySkini/blockly/msg/nb.d.ts +16 -0
- package/blocklySkini/blockly/msg/nb.js +447 -0
- package/blocklySkini/blockly/msg/nl.d.ts +16 -0
- package/blocklySkini/blockly/msg/nl.js +447 -0
- package/blocklySkini/blockly/msg/oc.d.ts +16 -0
- package/blocklySkini/blockly/msg/oc.js +447 -0
- package/blocklySkini/blockly/msg/pl.d.ts +16 -0
- package/blocklySkini/blockly/msg/pl.js +447 -0
- package/blocklySkini/blockly/msg/pms.d.ts +16 -0
- package/blocklySkini/blockly/msg/pms.js +447 -0
- package/blocklySkini/blockly/msg/pt-br.d.ts +16 -0
- package/blocklySkini/blockly/msg/pt-br.js +447 -0
- package/blocklySkini/blockly/msg/pt.d.ts +16 -0
- package/blocklySkini/blockly/msg/pt.js +447 -0
- package/blocklySkini/blockly/msg/qqq.d.ts +16 -0
- package/blocklySkini/blockly/msg/ro.d.ts +16 -0
- package/blocklySkini/blockly/msg/ro.js +447 -0
- package/blocklySkini/blockly/msg/ru.d.ts +16 -0
- package/blocklySkini/blockly/msg/ru.js +447 -0
- package/blocklySkini/blockly/msg/sc.d.ts +16 -0
- package/blocklySkini/blockly/msg/sc.js +447 -0
- package/blocklySkini/blockly/msg/sd.d.ts +16 -0
- package/blocklySkini/blockly/msg/sd.js +447 -0
- package/blocklySkini/blockly/msg/shn.d.ts +16 -0
- package/blocklySkini/blockly/msg/shn.js +447 -0
- package/blocklySkini/blockly/msg/sk.d.ts +16 -0
- package/blocklySkini/blockly/msg/sk.js +447 -0
- package/blocklySkini/blockly/msg/skr-arab.d.ts +16 -0
- package/blocklySkini/blockly/msg/skr-arab.js +447 -0
- package/blocklySkini/blockly/msg/sl.d.ts +16 -0
- package/blocklySkini/blockly/msg/sl.js +447 -0
- package/blocklySkini/blockly/msg/sq.d.ts +16 -0
- package/blocklySkini/blockly/msg/sq.js +447 -0
- package/blocklySkini/blockly/msg/sr-latn.d.ts +16 -0
- package/blocklySkini/blockly/msg/sr-latn.js +447 -0
- package/blocklySkini/blockly/msg/sr.d.ts +16 -0
- package/blocklySkini/blockly/msg/sr.js +447 -0
- package/blocklySkini/blockly/msg/sv.d.ts +16 -0
- package/blocklySkini/blockly/msg/sv.js +447 -0
- package/blocklySkini/blockly/msg/synonyms.d.ts +16 -0
- package/blocklySkini/blockly/msg/ta.d.ts +16 -0
- package/blocklySkini/blockly/msg/ta.js +447 -0
- package/blocklySkini/blockly/msg/tcy.d.ts +16 -0
- package/blocklySkini/blockly/msg/tcy.js +447 -0
- package/blocklySkini/blockly/msg/te.d.ts +16 -0
- package/blocklySkini/blockly/msg/te.js +447 -0
- package/blocklySkini/blockly/msg/th.d.ts +16 -0
- package/blocklySkini/blockly/msg/th.js +447 -0
- package/blocklySkini/blockly/msg/tl.d.ts +16 -0
- package/blocklySkini/blockly/msg/tl.js +447 -0
- package/blocklySkini/blockly/msg/tlh.d.ts +16 -0
- package/blocklySkini/blockly/msg/tlh.js +447 -0
- package/blocklySkini/blockly/msg/tr.d.ts +16 -0
- package/blocklySkini/blockly/msg/tr.js +447 -0
- package/blocklySkini/blockly/msg/ug-arab.d.ts +16 -0
- package/blocklySkini/blockly/msg/ug-arab.js +447 -0
- package/blocklySkini/blockly/msg/uk.d.ts +16 -0
- package/blocklySkini/blockly/msg/uk.js +447 -0
- package/blocklySkini/blockly/msg/ur.d.ts +16 -0
- package/blocklySkini/blockly/msg/ur.js +447 -0
- package/blocklySkini/blockly/msg/vi.d.ts +16 -0
- package/blocklySkini/blockly/msg/vi.js +447 -0
- package/blocklySkini/blockly/msg/xmf.d.ts +16 -0
- package/blocklySkini/blockly/msg/xmf.js +447 -0
- package/blocklySkini/blockly/msg/yo.d.ts +16 -0
- package/blocklySkini/blockly/msg/yo.js +447 -0
- package/blocklySkini/blockly/msg/zh-hans.d.ts +16 -0
- package/blocklySkini/blockly/msg/zh-hans.js +447 -0
- package/blocklySkini/blockly/msg/zh-hant.d.ts +16 -0
- package/blocklySkini/blockly/msg/zh-hant.js +447 -0
- package/blocklySkini/blockly/node.js +35 -0
- package/blocklySkini/blockly/package.json +84 -0
- package/blocklySkini/blockly/php.d.ts +15 -0
- package/blocklySkini/blockly/php.js +27 -0
- package/blocklySkini/blockly/php_compressed.js +103 -0
- package/blocklySkini/blockly/php_compressed.js.map +1 -0
- package/blocklySkini/blockly/python.d.ts +15 -0
- package/blocklySkini/blockly/python.js +27 -0
- package/blocklySkini/blockly/python_compressed.js +98 -0
- package/blocklySkini/blockly/python_compressed.js.map +1 -0
- package/blocklySkini/blocklySkini.html +81 -0
- package/blocklySkini/orchestrations/.xml +1 -0
- package/blocklySkini/orchestrations/BluesSkini-1.xml +231 -0
- package/blocklySkini/orchestrations/BluesSkini-2.xml +741 -0
- package/blocklySkini/orchestrations/BluesSkini-3.xml +731 -0
- package/blocklySkini/orchestrations/BluesSkini-4.xml +695 -0
- package/blocklySkini/orchestrations/BluesSkini-5.xml +731 -0
- package/blocklySkini/orchestrations/BluesSkini.xml +704 -0
- package/blocklySkini/orchestrations/FunkBitwig-1.xml +778 -0
- package/blocklySkini/orchestrations/FunkBitwig-2.xml +471 -0
- package/blocklySkini/orchestrations/JouerLeBonInstrument1-1.xml +784 -0
- package/blocklySkini/orchestrations/MajeurMineur-1.xml +638 -0
- package/blocklySkini/orchestrations/Opus5-3 - Copie.xml +1041 -0
- package/blocklySkini/orchestrations/Opus5-3.xml +1128 -0
- package/blocklySkini/orchestrations/Quatuor1-1.xml +357 -0
- package/blocklySkini/orchestrations/TechnoBitwig-1.xml +221 -0
- package/blocklySkini/orchestrations/TestBlockly.xml +497 -0
- package/blocklySkini/orchestrations/TestBlockly1.xml +500 -0
- package/blocklySkini/orchestrations/TestBlockly2.xml +792 -0
- package/blocklySkini/orchestrations/TestBlockly3-1.xml +1182 -0
- package/blocklySkini/orchestrations/TestBlockly3.xml +1251 -0
- package/blocklySkini/orchestrations/TestFunction.xml +143 -0
- package/blocklySkini/orchestrations/TestIf.xml +80 -0
- package/blocklySkini/orchestrations/TestLoop.xml +127 -0
- package/blocklySkini/orchestrations/TestOrchestration2.xml +460 -0
- package/blocklySkini/orchestrations/TestPrint.xml +70 -0
- package/blocklySkini/orchestrations/TestSubMod.xml +81 -0
- package/blocklySkini/orchestrations/Testlogic.xml +113 -0
- package/blocklySkini/orchestrations/TrouveLaPercu-1.xml +813 -0
- package/blocklySkini/orchestrations/TrouveLaPercu-2.xml +813 -0
- package/blocklySkini/orchestrations/bar.xml +496 -0
- package/blocklySkini/orchestrations/bar2.xml +496 -0
- package/blocklySkini/orchestrations/foo.xml +500 -0
- package/blocklySkini/orchestrations/opus5Blockly - Copie.xml +496 -0
- package/blocklySkini/orchestrations/opus5Blockly-3.xml +868 -0
- package/blocklySkini/orchestrations/opus5Blockly.xml +496 -0
- package/blocklySkini/orchestrations/testOrchestration3.xml +483 -0
- package/blocklySkini/orchestrations/testOrchestration4.xml +487 -0
- package/blocklySkini/scripts/hiphop_blocks.js +6104 -0
- package/blocklySkini/scripts/main2.js +801 -0
- package/blocklySkini/styles/index.css +320 -0
- package/blocklySkini/styles/material.css +11552 -0
- package/package.json +4 -3
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2011 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Library to create tooltips for Blockly.
|
|
9
|
+
* First, call Blockly.Tooltip.init() after onload.
|
|
10
|
+
* Second, set the 'tooltip' property on any SVG element that needs a tooltip.
|
|
11
|
+
* If the tooltip is a string, then that message will be displayed.
|
|
12
|
+
* If the tooltip is an SVG element, then that object's tooltip will be used.
|
|
13
|
+
* Third, call Blockly.Tooltip.bindMouseEvents(e) passing the SVG element.
|
|
14
|
+
* @author fraser@google.com (Neil Fraser)
|
|
15
|
+
*/
|
|
16
|
+
'use strict';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @name Blockly.Tooltip
|
|
20
|
+
* @namespace
|
|
21
|
+
*/
|
|
22
|
+
goog.provide('Blockly.Tooltip');
|
|
23
|
+
|
|
24
|
+
goog.require('Blockly.utils.string');
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A type which can define a tooltip.
|
|
28
|
+
* Either a string, an object containing a tooltip property, or a function which
|
|
29
|
+
* returns either a string, or another arbitrarily nested function which
|
|
30
|
+
* eventually unwinds to a string.
|
|
31
|
+
* @typedef {string|{tooltip}|function(): (string|!Function)}
|
|
32
|
+
*/
|
|
33
|
+
Blockly.Tooltip.TipInfo;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Is a tooltip currently showing?
|
|
37
|
+
*/
|
|
38
|
+
Blockly.Tooltip.visible = false;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Is someone else blocking the tooltip from being shown?
|
|
42
|
+
* @type {boolean}
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
Blockly.Tooltip.blocked_ = false;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Maximum width (in characters) of a tooltip.
|
|
49
|
+
*/
|
|
50
|
+
Blockly.Tooltip.LIMIT = 50;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* PID of suspended thread to clear tooltip on mouse out.
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
Blockly.Tooltip.mouseOutPid_ = 0;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* PID of suspended thread to show the tooltip.
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
Blockly.Tooltip.showPid_ = 0;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Last observed X location of the mouse pointer (freezes when tooltip appears).
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
Blockly.Tooltip.lastX_ = 0;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Last observed Y location of the mouse pointer (freezes when tooltip appears).
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
Blockly.Tooltip.lastY_ = 0;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Current element being pointed at.
|
|
78
|
+
* @type {Element}
|
|
79
|
+
* @private
|
|
80
|
+
*/
|
|
81
|
+
Blockly.Tooltip.element_ = null;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Once a tooltip has opened for an element, that element is 'poisoned' and
|
|
85
|
+
* cannot respawn a tooltip until the pointer moves over a different element.
|
|
86
|
+
* @type {Element}
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
Blockly.Tooltip.poisonedElement_ = null;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Horizontal offset between mouse cursor and tooltip.
|
|
93
|
+
*/
|
|
94
|
+
Blockly.Tooltip.OFFSET_X = 0;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Vertical offset between mouse cursor and tooltip.
|
|
98
|
+
*/
|
|
99
|
+
Blockly.Tooltip.OFFSET_Y = 10;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Radius mouse can move before killing tooltip.
|
|
103
|
+
*/
|
|
104
|
+
Blockly.Tooltip.RADIUS_OK = 10;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Delay before tooltip appears.
|
|
108
|
+
*/
|
|
109
|
+
Blockly.Tooltip.HOVER_MS = 750;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Horizontal padding between tooltip and screen edge.
|
|
113
|
+
*/
|
|
114
|
+
Blockly.Tooltip.MARGINS = 5;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* The HTML container. Set once by Blockly.Tooltip.createDom.
|
|
118
|
+
* @type {Element}
|
|
119
|
+
*/
|
|
120
|
+
Blockly.Tooltip.DIV = null;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Returns the tooltip text for the given element.
|
|
124
|
+
* @param {?Object} object The object to get the the tooltip text of.
|
|
125
|
+
* @returns {string} The tooltip text of the element.
|
|
126
|
+
*/
|
|
127
|
+
Blockly.Tooltip.getTooltipOfObject = function(object) {
|
|
128
|
+
var obj = Blockly.Tooltip.getTargetObject_(object);
|
|
129
|
+
if (obj) {
|
|
130
|
+
var tooltip = obj.tooltip;
|
|
131
|
+
while (typeof tooltip == 'function') {
|
|
132
|
+
tooltip = tooltip();
|
|
133
|
+
}
|
|
134
|
+
if (typeof tooltip != 'string') {
|
|
135
|
+
throw Error('Tooltip function must return a string.');
|
|
136
|
+
}
|
|
137
|
+
return tooltip;
|
|
138
|
+
}
|
|
139
|
+
return '';
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Returns the target object that the given object is targeting for its
|
|
144
|
+
* tooltip. Could be the object itself.
|
|
145
|
+
* @param {?Object} obj The object are trying to find the target tooltip
|
|
146
|
+
* object of.
|
|
147
|
+
* @returns {?{tooltip}} The target tooltip object.
|
|
148
|
+
* @private
|
|
149
|
+
*/
|
|
150
|
+
Blockly.Tooltip.getTargetObject_ = function(obj) {
|
|
151
|
+
while (obj && obj.tooltip) {
|
|
152
|
+
if ((typeof obj.tooltip == 'string') ||
|
|
153
|
+
(typeof obj.tooltip == 'function')) {
|
|
154
|
+
return obj;
|
|
155
|
+
}
|
|
156
|
+
obj = obj.tooltip;
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Create the tooltip div and inject it onto the page.
|
|
163
|
+
*/
|
|
164
|
+
Blockly.Tooltip.createDom = function() {
|
|
165
|
+
if (Blockly.Tooltip.DIV) {
|
|
166
|
+
return; // Already created.
|
|
167
|
+
}
|
|
168
|
+
// Create an HTML container for popup overlays (e.g. editor widgets).
|
|
169
|
+
Blockly.Tooltip.DIV = document.createElement('div');
|
|
170
|
+
Blockly.Tooltip.DIV.className = 'blocklyTooltipDiv';
|
|
171
|
+
var container = Blockly.parentContainer || document.body;
|
|
172
|
+
container.appendChild(Blockly.Tooltip.DIV);
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Binds the required mouse events onto an SVG element.
|
|
177
|
+
* @param {!Element} element SVG element onto which tooltip is to be bound.
|
|
178
|
+
*/
|
|
179
|
+
Blockly.Tooltip.bindMouseEvents = function(element) {
|
|
180
|
+
element.mouseOverWrapper_ = Blockly.bindEvent_(element, 'mouseover', null,
|
|
181
|
+
Blockly.Tooltip.onMouseOver_);
|
|
182
|
+
element.mouseOutWrapper_ = Blockly.bindEvent_(element, 'mouseout', null,
|
|
183
|
+
Blockly.Tooltip.onMouseOut_);
|
|
184
|
+
|
|
185
|
+
// Don't use bindEvent_ for mousemove since that would create a
|
|
186
|
+
// corresponding touch handler, even though this only makes sense in the
|
|
187
|
+
// context of a mouseover/mouseout.
|
|
188
|
+
element.addEventListener('mousemove', Blockly.Tooltip.onMouseMove_, false);
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Unbinds tooltip mouse events from the SVG element.
|
|
193
|
+
* @param {!Element} element SVG element onto which tooltip is bound.
|
|
194
|
+
*/
|
|
195
|
+
Blockly.Tooltip.unbindMouseEvents = function(element) {
|
|
196
|
+
if (!element) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
Blockly.unbindEvent_(element.mouseOverWrapper_);
|
|
200
|
+
Blockly.unbindEvent_(element.mouseOutWrapper_);
|
|
201
|
+
element.removeEventListener('mousemove', Blockly.Tooltip.onMouseMove_);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Hide the tooltip if the mouse is over a different object.
|
|
206
|
+
* Initialize the tooltip to potentially appear for this object.
|
|
207
|
+
* @param {!Event} e Mouse event.
|
|
208
|
+
* @private
|
|
209
|
+
*/
|
|
210
|
+
Blockly.Tooltip.onMouseOver_ = function(e) {
|
|
211
|
+
if (Blockly.Tooltip.blocked_) {
|
|
212
|
+
// Someone doesn't want us to show tooltips.
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
// If the tooltip is an object, treat it as a pointer to the next object in
|
|
216
|
+
// the chain to look at. Terminate when a string or function is found.
|
|
217
|
+
var element = /** @type {Element} */ (Blockly.Tooltip.getTargetObject_(
|
|
218
|
+
e.currentTarget));
|
|
219
|
+
if (Blockly.Tooltip.element_ != element) {
|
|
220
|
+
Blockly.Tooltip.hide();
|
|
221
|
+
Blockly.Tooltip.poisonedElement_ = null;
|
|
222
|
+
Blockly.Tooltip.element_ = element;
|
|
223
|
+
}
|
|
224
|
+
// Forget about any immediately preceding mouseOut event.
|
|
225
|
+
clearTimeout(Blockly.Tooltip.mouseOutPid_);
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Hide the tooltip if the mouse leaves the object and enters the workspace.
|
|
230
|
+
* @param {!Event} _e Mouse event.
|
|
231
|
+
* @private
|
|
232
|
+
*/
|
|
233
|
+
Blockly.Tooltip.onMouseOut_ = function(_e) {
|
|
234
|
+
if (Blockly.Tooltip.blocked_) {
|
|
235
|
+
// Someone doesn't want us to show tooltips.
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
// Moving from one element to another (overlapping or with no gap) generates
|
|
239
|
+
// a mouseOut followed instantly by a mouseOver. Fork off the mouseOut
|
|
240
|
+
// event and kill it if a mouseOver is received immediately.
|
|
241
|
+
// This way the task only fully executes if mousing into the void.
|
|
242
|
+
Blockly.Tooltip.mouseOutPid_ = setTimeout(function() {
|
|
243
|
+
Blockly.Tooltip.element_ = null;
|
|
244
|
+
Blockly.Tooltip.poisonedElement_ = null;
|
|
245
|
+
Blockly.Tooltip.hide();
|
|
246
|
+
}, 1);
|
|
247
|
+
clearTimeout(Blockly.Tooltip.showPid_);
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* When hovering over an element, schedule a tooltip to be shown. If a tooltip
|
|
252
|
+
* is already visible, hide it if the mouse strays out of a certain radius.
|
|
253
|
+
* @param {!Event} e Mouse event.
|
|
254
|
+
* @private
|
|
255
|
+
*/
|
|
256
|
+
Blockly.Tooltip.onMouseMove_ = function(e) {
|
|
257
|
+
if (!Blockly.Tooltip.element_ || !Blockly.Tooltip.element_.tooltip) {
|
|
258
|
+
// No tooltip here to show.
|
|
259
|
+
return;
|
|
260
|
+
} else if (Blockly.Tooltip.blocked_) {
|
|
261
|
+
// Someone doesn't want us to show tooltips. We are probably handling a
|
|
262
|
+
// user gesture, such as a click or drag.
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (Blockly.Tooltip.visible) {
|
|
266
|
+
// Compute the distance between the mouse position when the tooltip was
|
|
267
|
+
// shown and the current mouse position. Pythagorean theorem.
|
|
268
|
+
var dx = Blockly.Tooltip.lastX_ - e.pageX;
|
|
269
|
+
var dy = Blockly.Tooltip.lastY_ - e.pageY;
|
|
270
|
+
if (Math.sqrt(dx * dx + dy * dy) > Blockly.Tooltip.RADIUS_OK) {
|
|
271
|
+
Blockly.Tooltip.hide();
|
|
272
|
+
}
|
|
273
|
+
} else if (Blockly.Tooltip.poisonedElement_ != Blockly.Tooltip.element_) {
|
|
274
|
+
// The mouse moved, clear any previously scheduled tooltip.
|
|
275
|
+
clearTimeout(Blockly.Tooltip.showPid_);
|
|
276
|
+
// Maybe this time the mouse will stay put. Schedule showing of tooltip.
|
|
277
|
+
Blockly.Tooltip.lastX_ = e.pageX;
|
|
278
|
+
Blockly.Tooltip.lastY_ = e.pageY;
|
|
279
|
+
Blockly.Tooltip.showPid_ =
|
|
280
|
+
setTimeout(Blockly.Tooltip.show_, Blockly.Tooltip.HOVER_MS);
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Dispose of the tooltip.
|
|
286
|
+
* @package
|
|
287
|
+
*/
|
|
288
|
+
Blockly.Tooltip.dispose = function() {
|
|
289
|
+
Blockly.Tooltip.element_ = null;
|
|
290
|
+
Blockly.Tooltip.poisonedElement_ = null;
|
|
291
|
+
Blockly.Tooltip.hide();
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Hide the tooltip.
|
|
296
|
+
*/
|
|
297
|
+
Blockly.Tooltip.hide = function() {
|
|
298
|
+
if (Blockly.Tooltip.visible) {
|
|
299
|
+
Blockly.Tooltip.visible = false;
|
|
300
|
+
if (Blockly.Tooltip.DIV) {
|
|
301
|
+
Blockly.Tooltip.DIV.style.display = 'none';
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (Blockly.Tooltip.showPid_) {
|
|
305
|
+
clearTimeout(Blockly.Tooltip.showPid_);
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Hide any in-progress tooltips and block showing new tooltips until the next
|
|
311
|
+
* call to unblock().
|
|
312
|
+
* @package
|
|
313
|
+
*/
|
|
314
|
+
Blockly.Tooltip.block = function() {
|
|
315
|
+
Blockly.Tooltip.hide();
|
|
316
|
+
Blockly.Tooltip.blocked_ = true;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Unblock tooltips: allow them to be scheduled and shown according to their own
|
|
321
|
+
* logic.
|
|
322
|
+
* @package
|
|
323
|
+
*/
|
|
324
|
+
Blockly.Tooltip.unblock = function() {
|
|
325
|
+
Blockly.Tooltip.blocked_ = false;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Create the tooltip and show it.
|
|
330
|
+
* @private
|
|
331
|
+
*/
|
|
332
|
+
Blockly.Tooltip.show_ = function() {
|
|
333
|
+
if (Blockly.Tooltip.blocked_) {
|
|
334
|
+
// Someone doesn't want us to show tooltips.
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
Blockly.Tooltip.poisonedElement_ = Blockly.Tooltip.element_;
|
|
338
|
+
if (!Blockly.Tooltip.DIV) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
// Erase all existing text.
|
|
342
|
+
Blockly.Tooltip.DIV.textContent = '';
|
|
343
|
+
var tip = Blockly.Tooltip.getTooltipOfObject(Blockly.Tooltip.element_);
|
|
344
|
+
tip = Blockly.utils.string.wrap(tip, Blockly.Tooltip.LIMIT);
|
|
345
|
+
// Create new text, line by line.
|
|
346
|
+
var lines = tip.split('\n');
|
|
347
|
+
for (var i = 0; i < lines.length; i++) {
|
|
348
|
+
var div = document.createElement('div');
|
|
349
|
+
div.appendChild(document.createTextNode(lines[i]));
|
|
350
|
+
Blockly.Tooltip.DIV.appendChild(div);
|
|
351
|
+
}
|
|
352
|
+
var rtl = Blockly.Tooltip.element_.RTL;
|
|
353
|
+
var windowWidth = document.documentElement.clientWidth;
|
|
354
|
+
var windowHeight = document.documentElement.clientHeight;
|
|
355
|
+
// Display the tooltip.
|
|
356
|
+
Blockly.Tooltip.DIV.style.direction = rtl ? 'rtl' : 'ltr';
|
|
357
|
+
Blockly.Tooltip.DIV.style.display = 'block';
|
|
358
|
+
Blockly.Tooltip.visible = true;
|
|
359
|
+
// Move the tooltip to just below the cursor.
|
|
360
|
+
var anchorX = Blockly.Tooltip.lastX_;
|
|
361
|
+
if (rtl) {
|
|
362
|
+
anchorX -= Blockly.Tooltip.OFFSET_X + Blockly.Tooltip.DIV.offsetWidth;
|
|
363
|
+
} else {
|
|
364
|
+
anchorX += Blockly.Tooltip.OFFSET_X;
|
|
365
|
+
}
|
|
366
|
+
var anchorY = Blockly.Tooltip.lastY_ + Blockly.Tooltip.OFFSET_Y;
|
|
367
|
+
|
|
368
|
+
if (anchorY + Blockly.Tooltip.DIV.offsetHeight >
|
|
369
|
+
windowHeight + window.scrollY) {
|
|
370
|
+
// Falling off the bottom of the screen; shift the tooltip up.
|
|
371
|
+
anchorY -= Blockly.Tooltip.DIV.offsetHeight + 2 * Blockly.Tooltip.OFFSET_Y;
|
|
372
|
+
}
|
|
373
|
+
if (rtl) {
|
|
374
|
+
// Prevent falling off left edge in RTL mode.
|
|
375
|
+
anchorX = Math.max(Blockly.Tooltip.MARGINS - window.scrollX, anchorX);
|
|
376
|
+
} else {
|
|
377
|
+
if (anchorX + Blockly.Tooltip.DIV.offsetWidth >
|
|
378
|
+
windowWidth + window.scrollX - 2 * Blockly.Tooltip.MARGINS) {
|
|
379
|
+
// Falling off the right edge of the screen;
|
|
380
|
+
// clamp the tooltip on the edge.
|
|
381
|
+
anchorX = windowWidth - Blockly.Tooltip.DIV.offsetWidth -
|
|
382
|
+
2 * Blockly.Tooltip.MARGINS;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
Blockly.Tooltip.DIV.style.top = anchorY + 'px';
|
|
386
|
+
Blockly.Tooltip.DIV.style.left = anchorX + 'px';
|
|
387
|
+
};
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Touch handling for Blockly.
|
|
9
|
+
* @author fenichel@google.com (Rachel Fenichel)
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @name Blockly.Touch
|
|
15
|
+
* @namespace
|
|
16
|
+
*/
|
|
17
|
+
goog.provide('Blockly.Touch');
|
|
18
|
+
|
|
19
|
+
goog.require('Blockly.utils');
|
|
20
|
+
goog.require('Blockly.utils.global');
|
|
21
|
+
goog.require('Blockly.utils.string');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Whether touch is enabled in the browser.
|
|
26
|
+
* Copied from Closure's goog.events.BrowserFeature.TOUCH_ENABLED
|
|
27
|
+
*/
|
|
28
|
+
Blockly.Touch.TOUCH_ENABLED =
|
|
29
|
+
('ontouchstart' in Blockly.utils.global ||
|
|
30
|
+
!!(Blockly.utils.global['document'] && document.documentElement &&
|
|
31
|
+
'ontouchstart' in document.documentElement) ||
|
|
32
|
+
// IE10 uses non-standard touch events, so it has a different check.
|
|
33
|
+
!!(Blockly.utils.global['navigator'] &&
|
|
34
|
+
(Blockly.utils.global['navigator']['maxTouchPoints'] ||
|
|
35
|
+
Blockly.utils.global['navigator']['msMaxTouchPoints'])));
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Which touch events are we currently paying attention to?
|
|
39
|
+
* @type {?string}
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
Blockly.Touch.touchIdentifier_ = null;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The TOUCH_MAP lookup dictionary specifies additional touch events to fire,
|
|
46
|
+
* in conjunction with mouse events.
|
|
47
|
+
* @type {Object}
|
|
48
|
+
*/
|
|
49
|
+
Blockly.Touch.TOUCH_MAP = {};
|
|
50
|
+
if (Blockly.utils.global['PointerEvent']) {
|
|
51
|
+
Blockly.Touch.TOUCH_MAP = {
|
|
52
|
+
'mousedown': ['pointerdown'],
|
|
53
|
+
'mouseenter': ['pointerenter'],
|
|
54
|
+
'mouseleave': ['pointerleave'],
|
|
55
|
+
'mousemove': ['pointermove'],
|
|
56
|
+
'mouseout': ['pointerout'],
|
|
57
|
+
'mouseover': ['pointerover'],
|
|
58
|
+
'mouseup': ['pointerup', 'pointercancel'],
|
|
59
|
+
'touchend': ['pointerup'],
|
|
60
|
+
'touchcancel': ['pointercancel']
|
|
61
|
+
};
|
|
62
|
+
} else if (Blockly.Touch.TOUCH_ENABLED) {
|
|
63
|
+
Blockly.Touch.TOUCH_MAP = {
|
|
64
|
+
'mousedown': ['touchstart'],
|
|
65
|
+
'mousemove': ['touchmove'],
|
|
66
|
+
'mouseup': ['touchend', 'touchcancel']
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* PID of queued long-press task.
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
Blockly.longPid_ = 0;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Context menus on touch devices are activated using a long-press.
|
|
78
|
+
* Unfortunately the contextmenu touch event is currently (2015) only supported
|
|
79
|
+
* by Chrome. This function is fired on any touchstart event, queues a task,
|
|
80
|
+
* which after about a second opens the context menu. The tasks is killed
|
|
81
|
+
* if the touch event terminates early.
|
|
82
|
+
* @param {!Event} e Touch start event.
|
|
83
|
+
* @param {Blockly.Gesture} gesture The gesture that triggered this longStart.
|
|
84
|
+
* @package
|
|
85
|
+
*/
|
|
86
|
+
Blockly.longStart = function(e, gesture) {
|
|
87
|
+
Blockly.longStop_();
|
|
88
|
+
// Punt on multitouch events.
|
|
89
|
+
if (e.changedTouches && e.changedTouches.length != 1) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
Blockly.longPid_ = setTimeout(function() {
|
|
93
|
+
// Additional check to distinguish between touch events and pointer events
|
|
94
|
+
if (e.changedTouches) {
|
|
95
|
+
// TouchEvent
|
|
96
|
+
e.button = 2; // Simulate a right button click.
|
|
97
|
+
// e was a touch event. It needs to pretend to be a mouse event.
|
|
98
|
+
e.clientX = e.changedTouches[0].clientX;
|
|
99
|
+
e.clientY = e.changedTouches[0].clientY;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Let the gesture route the right-click correctly.
|
|
103
|
+
if (gesture) {
|
|
104
|
+
gesture.handleRightClick(e);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
}, Blockly.LONGPRESS);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Nope, that's not a long-press. Either touchend or touchcancel was fired,
|
|
112
|
+
* or a drag hath begun. Kill the queued long-press task.
|
|
113
|
+
* @package
|
|
114
|
+
*/
|
|
115
|
+
Blockly.longStop_ = function() {
|
|
116
|
+
if (Blockly.longPid_) {
|
|
117
|
+
clearTimeout(Blockly.longPid_);
|
|
118
|
+
Blockly.longPid_ = 0;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Clear the touch identifier that tracks which touch stream to pay attention
|
|
124
|
+
* to. This ends the current drag/gesture and allows other pointers to be
|
|
125
|
+
* captured.
|
|
126
|
+
*/
|
|
127
|
+
Blockly.Touch.clearTouchIdentifier = function() {
|
|
128
|
+
Blockly.Touch.touchIdentifier_ = null;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Decide whether Blockly should handle or ignore this event.
|
|
133
|
+
* Mouse and touch events require special checks because we only want to deal
|
|
134
|
+
* with one touch stream at a time. All other events should always be handled.
|
|
135
|
+
* @param {!Event} e The event to check.
|
|
136
|
+
* @return {boolean} True if this event should be passed through to the
|
|
137
|
+
* registered handler; false if it should be blocked.
|
|
138
|
+
*/
|
|
139
|
+
Blockly.Touch.shouldHandleEvent = function(e) {
|
|
140
|
+
return !Blockly.Touch.isMouseOrTouchEvent(e) ||
|
|
141
|
+
Blockly.Touch.checkTouchIdentifier(e);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Get the touch identifier from the given event. If it was a mouse event, the
|
|
146
|
+
* identifier is the string 'mouse'.
|
|
147
|
+
* @param {!Event} e Mouse event or touch event.
|
|
148
|
+
* @return {string} The touch identifier from the first changed touch, if
|
|
149
|
+
* defined. Otherwise 'mouse'.
|
|
150
|
+
*/
|
|
151
|
+
Blockly.Touch.getTouchIdentifierFromEvent = function(e) {
|
|
152
|
+
return e.pointerId != undefined ? e.pointerId :
|
|
153
|
+
(e.changedTouches && e.changedTouches[0] &&
|
|
154
|
+
e.changedTouches[0].identifier !== undefined &&
|
|
155
|
+
e.changedTouches[0].identifier !== null) ?
|
|
156
|
+
e.changedTouches[0].identifier : 'mouse';
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Check whether the touch identifier on the event matches the current saved
|
|
161
|
+
* identifier. If there is no identifier, that means it's a mouse event and
|
|
162
|
+
* we'll use the identifier "mouse". This means we won't deal well with
|
|
163
|
+
* multiple mice being used at the same time. That seems okay.
|
|
164
|
+
* If the current identifier was unset, save the identifier from the
|
|
165
|
+
* event. This starts a drag/gesture, during which touch events with other
|
|
166
|
+
* identifiers will be silently ignored.
|
|
167
|
+
* @param {!Event} e Mouse event or touch event.
|
|
168
|
+
* @return {boolean} Whether the identifier on the event matches the current
|
|
169
|
+
* saved identifier.
|
|
170
|
+
*/
|
|
171
|
+
Blockly.Touch.checkTouchIdentifier = function(e) {
|
|
172
|
+
var identifier = Blockly.Touch.getTouchIdentifierFromEvent(e);
|
|
173
|
+
|
|
174
|
+
// if (Blockly.touchIdentifier_ )is insufficient because Android touch
|
|
175
|
+
// identifiers may be zero.
|
|
176
|
+
if (Blockly.Touch.touchIdentifier_ !== undefined &&
|
|
177
|
+
Blockly.Touch.touchIdentifier_ !== null) {
|
|
178
|
+
// We're already tracking some touch/mouse event. Is this from the same
|
|
179
|
+
// source?
|
|
180
|
+
return Blockly.Touch.touchIdentifier_ == identifier;
|
|
181
|
+
}
|
|
182
|
+
if (e.type == 'mousedown' || e.type == 'touchstart' ||
|
|
183
|
+
e.type == 'pointerdown') {
|
|
184
|
+
// No identifier set yet, and this is the start of a drag. Set it and
|
|
185
|
+
// return.
|
|
186
|
+
Blockly.Touch.touchIdentifier_ = identifier;
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
// There was no identifier yet, but this wasn't a start event so we're going
|
|
190
|
+
// to ignore it. This probably means that another drag finished while this
|
|
191
|
+
// pointer was down.
|
|
192
|
+
return false;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Set an event's clientX and clientY from its first changed touch. Use this to
|
|
197
|
+
* make a touch event work in a mouse event handler.
|
|
198
|
+
* @param {!Event} e A touch event.
|
|
199
|
+
*/
|
|
200
|
+
Blockly.Touch.setClientFromTouch = function(e) {
|
|
201
|
+
if (Blockly.utils.string.startsWith(e.type, 'touch')) {
|
|
202
|
+
// Map the touch event's properties to the event.
|
|
203
|
+
var touchPoint = e.changedTouches[0];
|
|
204
|
+
e.clientX = touchPoint.clientX;
|
|
205
|
+
e.clientY = touchPoint.clientY;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Check whether a given event is a mouse or touch event.
|
|
211
|
+
* @param {!Event} e An event.
|
|
212
|
+
* @return {boolean} True if it is a mouse or touch event; false otherwise.
|
|
213
|
+
*/
|
|
214
|
+
Blockly.Touch.isMouseOrTouchEvent = function(e) {
|
|
215
|
+
return Blockly.utils.string.startsWith(e.type, 'touch') ||
|
|
216
|
+
Blockly.utils.string.startsWith(e.type, 'mouse') ||
|
|
217
|
+
Blockly.utils.string.startsWith(e.type, 'pointer');
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Check whether a given event is a touch event or a pointer event.
|
|
222
|
+
* @param {!Event} e An event.
|
|
223
|
+
* @return {boolean} True if it is a touch event; false otherwise.
|
|
224
|
+
*/
|
|
225
|
+
Blockly.Touch.isTouchEvent = function(e) {
|
|
226
|
+
return Blockly.utils.string.startsWith(e.type, 'touch') ||
|
|
227
|
+
Blockly.utils.string.startsWith(e.type, 'pointer');
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Split an event into an array of events, one per changed touch or mouse
|
|
232
|
+
* point.
|
|
233
|
+
* @param {!Event} e A mouse event or a touch event with one or more changed
|
|
234
|
+
* touches.
|
|
235
|
+
* @return {!Array.<!Event>} An array of mouse or touch events. Each touch
|
|
236
|
+
* event will have exactly one changed touch.
|
|
237
|
+
*/
|
|
238
|
+
Blockly.Touch.splitEventByTouches = function(e) {
|
|
239
|
+
var events = [];
|
|
240
|
+
if (e.changedTouches) {
|
|
241
|
+
for (var i = 0; i < e.changedTouches.length; i++) {
|
|
242
|
+
var newEvent = {
|
|
243
|
+
type: e.type,
|
|
244
|
+
changedTouches: [e.changedTouches[i]],
|
|
245
|
+
target: e.target,
|
|
246
|
+
stopPropagation: function() { e.stopPropagation(); },
|
|
247
|
+
preventDefault: function() { e.preventDefault(); }
|
|
248
|
+
};
|
|
249
|
+
events[i] = newEvent;
|
|
250
|
+
}
|
|
251
|
+
} else {
|
|
252
|
+
events.push(e);
|
|
253
|
+
}
|
|
254
|
+
return events;
|
|
255
|
+
};
|