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.
Files changed (534) hide show
  1. package/blocklySkini/archive/blocklyControleur.js +87 -0
  2. package/blocklySkini/archive/blocklySkini.js +84 -0
  3. package/blocklySkini/archive/blocklyhop.js +75 -0
  4. package/blocklySkini/archive/clientControleurBlocly.js +170 -0
  5. package/blocklySkini/archive/index.html +76 -0
  6. package/blocklySkini/archive/testHHsuspend.txt +89 -0
  7. package/blocklySkini/archive/testHHtrap.txt +262 -0
  8. package/blocklySkini/archive/testOrchestration.txt +177 -0
  9. package/blocklySkini/archive/testOrchestration.xml +447 -0
  10. package/blocklySkini/archive/testOrchestration2.xml +456 -0
  11. package/blocklySkini/blockly/README.md +77 -0
  12. package/blocklySkini/blockly/blockly.d.ts +21480 -0
  13. package/blocklySkini/blockly/blockly.js +25 -0
  14. package/blocklySkini/blockly/blockly.min.js +2188 -0
  15. package/blocklySkini/blockly/blockly_compressed.js +1455 -0
  16. package/blocklySkini/blockly/blockly_compressed.js.map +1 -0
  17. package/blocklySkini/blockly/blocks/colour.js +122 -0
  18. package/blocklySkini/blockly/blocks/lists.js +862 -0
  19. package/blocklySkini/blockly/blocks/logic.js +635 -0
  20. package/blocklySkini/blockly/blocks/loops.js +357 -0
  21. package/blocklySkini/blockly/blocks/math.js +566 -0
  22. package/blocklySkini/blockly/blocks/procedures.js +1072 -0
  23. package/blocklySkini/blockly/blocks/text.js +923 -0
  24. package/blocklySkini/blockly/blocks/variables.js +163 -0
  25. package/blocklySkini/blockly/blocks/variables_dynamic.js +180 -0
  26. package/blocklySkini/blockly/blocks.d.ts +15 -0
  27. package/blocklySkini/blockly/blocks.js +27 -0
  28. package/blocklySkini/blockly/blocks_compressed.js +182 -0
  29. package/blocklySkini/blockly/blocks_compressed.js.map +1 -0
  30. package/blocklySkini/blockly/browser.js +36 -0
  31. package/blocklySkini/blockly/core/block.js +2010 -0
  32. package/blocklySkini/blockly/core/block_animations.js +203 -0
  33. package/blocklySkini/blockly/core/block_drag_surface.js +212 -0
  34. package/blocklySkini/blockly/core/block_dragger.js +378 -0
  35. package/blocklySkini/blockly/core/block_events.js +548 -0
  36. package/blocklySkini/blockly/core/block_svg.js +1763 -0
  37. package/blocklySkini/blockly/core/blockly.js +674 -0
  38. package/blocklySkini/blockly/core/blocks.js +23 -0
  39. package/blocklySkini/blockly/core/bubble.js +880 -0
  40. package/blocklySkini/blockly/core/bubble_dragger.js +274 -0
  41. package/blocklySkini/blockly/core/comment.js +439 -0
  42. package/blocklySkini/blockly/core/components/component.js +554 -0
  43. package/blocklySkini/blockly/core/components/tree/basenode.js +895 -0
  44. package/blocklySkini/blockly/core/components/tree/treecontrol.js +332 -0
  45. package/blocklySkini/blockly/core/components/tree/treenode.js +172 -0
  46. package/blocklySkini/blockly/core/connection.js +682 -0
  47. package/blocklySkini/blockly/core/connection_checker.js +285 -0
  48. package/blocklySkini/blockly/core/connection_db.js +295 -0
  49. package/blocklySkini/blockly/core/constants.js +277 -0
  50. package/blocklySkini/blockly/core/contextmenu.js +307 -0
  51. package/blocklySkini/blockly/core/contextmenu_items.js +534 -0
  52. package/blocklySkini/blockly/core/contextmenu_registry.js +165 -0
  53. package/blocklySkini/blockly/core/css.js +549 -0
  54. package/blocklySkini/blockly/core/dropdowndiv.js +776 -0
  55. package/blocklySkini/blockly/core/events.js +387 -0
  56. package/blocklySkini/blockly/core/events_abstract.js +106 -0
  57. package/blocklySkini/blockly/core/extensions.js +450 -0
  58. package/blocklySkini/blockly/core/field.js +1162 -0
  59. package/blocklySkini/blockly/core/field_angle.js +562 -0
  60. package/blocklySkini/blockly/core/field_checkbox.js +220 -0
  61. package/blocklySkini/blockly/core/field_colour.js +664 -0
  62. package/blocklySkini/blockly/core/field_dropdown.js +760 -0
  63. package/blocklySkini/blockly/core/field_image.js +286 -0
  64. package/blocklySkini/blockly/core/field_label.js +130 -0
  65. package/blocklySkini/blockly/core/field_label_serializable.js +69 -0
  66. package/blocklySkini/blockly/core/field_multilineinput.js +299 -0
  67. package/blocklySkini/blockly/core/field_number.js +317 -0
  68. package/blocklySkini/blockly/core/field_registry.js +66 -0
  69. package/blocklySkini/blockly/core/field_textinput.js +616 -0
  70. package/blocklySkini/blockly/core/field_variable.js +463 -0
  71. package/blocklySkini/blockly/core/flyout_base.js +1071 -0
  72. package/blocklySkini/blockly/core/flyout_button.js +325 -0
  73. package/blocklySkini/blockly/core/flyout_dragger.js +76 -0
  74. package/blocklySkini/blockly/core/flyout_horizontal.js +388 -0
  75. package/blocklySkini/blockly/core/flyout_vertical.js +397 -0
  76. package/blocklySkini/blockly/core/generator.js +482 -0
  77. package/blocklySkini/blockly/core/gesture.js +993 -0
  78. package/blocklySkini/blockly/core/grid.js +222 -0
  79. package/blocklySkini/blockly/core/icon.js +206 -0
  80. package/blocklySkini/blockly/core/inject.js +487 -0
  81. package/blocklySkini/blockly/core/input.js +296 -0
  82. package/blocklySkini/blockly/core/insertion_marker_manager.js +700 -0
  83. package/blocklySkini/blockly/core/interfaces/i_accessibility.js +72 -0
  84. package/blocklySkini/blockly/core/interfaces/i_bounded_element.js +31 -0
  85. package/blocklySkini/blockly/core/interfaces/i_bubble.js +83 -0
  86. package/blocklySkini/blockly/core/interfaces/i_connection_checker.js +94 -0
  87. package/blocklySkini/blockly/core/interfaces/i_contextmenu.js +26 -0
  88. package/blocklySkini/blockly/core/interfaces/i_copyable.js +40 -0
  89. package/blocklySkini/blockly/core/interfaces/i_deletable.js +27 -0
  90. package/blocklySkini/blockly/core/interfaces/i_deletearea.js +28 -0
  91. package/blocklySkini/blockly/core/interfaces/i_flyout.js +178 -0
  92. package/blocklySkini/blockly/core/interfaces/i_movable.js +27 -0
  93. package/blocklySkini/blockly/core/interfaces/i_registrable.js +22 -0
  94. package/blocklySkini/blockly/core/interfaces/i_registrable_field.js +31 -0
  95. package/blocklySkini/blockly/core/interfaces/i_selectable.js +43 -0
  96. package/blocklySkini/blockly/core/interfaces/i_styleable.js +33 -0
  97. package/blocklySkini/blockly/core/interfaces/i_toolbox.js +131 -0
  98. package/blocklySkini/blockly/core/interfaces/i_toolbox_item.js +148 -0
  99. package/blocklySkini/blockly/core/keyboard_nav/action.js +26 -0
  100. package/blocklySkini/blockly/core/keyboard_nav/ast_node.js +684 -0
  101. package/blocklySkini/blockly/core/keyboard_nav/basic_cursor.js +208 -0
  102. package/blocklySkini/blockly/core/keyboard_nav/cursor.js +170 -0
  103. package/blocklySkini/blockly/core/keyboard_nav/flyout_cursor.js +106 -0
  104. package/blocklySkini/blockly/core/keyboard_nav/key_map.js +190 -0
  105. package/blocklySkini/blockly/core/keyboard_nav/marker.js +120 -0
  106. package/blocklySkini/blockly/core/keyboard_nav/navigation.js +1084 -0
  107. package/blocklySkini/blockly/core/keyboard_nav/tab_navigate_cursor.js +48 -0
  108. package/blocklySkini/blockly/core/marker_manager.js +183 -0
  109. package/blocklySkini/blockly/core/menu.js +465 -0
  110. package/blocklySkini/blockly/core/menuitem.js +280 -0
  111. package/blocklySkini/blockly/core/msg.js +31 -0
  112. package/blocklySkini/blockly/core/mutator.js +555 -0
  113. package/blocklySkini/blockly/core/names.js +186 -0
  114. package/blocklySkini/blockly/core/options.js +365 -0
  115. package/blocklySkini/blockly/core/procedures.js +404 -0
  116. package/blocklySkini/blockly/core/registry.js +265 -0
  117. package/blocklySkini/blockly/core/rendered_connection.js +565 -0
  118. package/blocklySkini/blockly/core/renderers/common/block_rendering.js +81 -0
  119. package/blocklySkini/blockly/core/renderers/common/constants.js +1256 -0
  120. package/blocklySkini/blockly/core/renderers/common/debugger.js +431 -0
  121. package/blocklySkini/blockly/core/renderers/common/drawer.js +468 -0
  122. package/blocklySkini/blockly/core/renderers/common/i_path_object.js +151 -0
  123. package/blocklySkini/blockly/core/renderers/common/info.js +775 -0
  124. package/blocklySkini/blockly/core/renderers/common/marker_svg.js +687 -0
  125. package/blocklySkini/blockly/core/renderers/common/path_object.js +279 -0
  126. package/blocklySkini/blockly/core/renderers/common/renderer.js +301 -0
  127. package/blocklySkini/blockly/core/renderers/geras/constants.js +64 -0
  128. package/blocklySkini/blockly/core/renderers/geras/drawer.js +205 -0
  129. package/blocklySkini/blockly/core/renderers/geras/highlight_constants.js +311 -0
  130. package/blocklySkini/blockly/core/renderers/geras/highlighter.js +256 -0
  131. package/blocklySkini/blockly/core/renderers/geras/info.js +483 -0
  132. package/blocklySkini/blockly/core/renderers/geras/measurables/inputs.js +67 -0
  133. package/blocklySkini/blockly/core/renderers/geras/path_object.js +177 -0
  134. package/blocklySkini/blockly/core/renderers/geras/renderer.js +138 -0
  135. package/blocklySkini/blockly/core/renderers/measurables/base.js +44 -0
  136. package/blocklySkini/blockly/core/renderers/measurables/connections.js +114 -0
  137. package/blocklySkini/blockly/core/renderers/measurables/inputs.js +160 -0
  138. package/blocklySkini/blockly/core/renderers/measurables/row_elements.js +185 -0
  139. package/blocklySkini/blockly/core/renderers/measurables/rows.js +532 -0
  140. package/blocklySkini/blockly/core/renderers/measurables/types.js +349 -0
  141. package/blocklySkini/blockly/core/renderers/minimalist/constants.js +29 -0
  142. package/blocklySkini/blockly/core/renderers/minimalist/drawer.js +32 -0
  143. package/blocklySkini/blockly/core/renderers/minimalist/info.js +45 -0
  144. package/blocklySkini/blockly/core/renderers/minimalist/renderer.js +70 -0
  145. package/blocklySkini/blockly/core/renderers/thrasos/info.js +338 -0
  146. package/blocklySkini/blockly/core/renderers/thrasos/renderer.js +45 -0
  147. package/blocklySkini/blockly/core/renderers/zelos/constants.js +1002 -0
  148. package/blocklySkini/blockly/core/renderers/zelos/drawer.js +233 -0
  149. package/blocklySkini/blockly/core/renderers/zelos/info.js +587 -0
  150. package/blocklySkini/blockly/core/renderers/zelos/marker_svg.js +148 -0
  151. package/blocklySkini/blockly/core/renderers/zelos/measurables/inputs.js +47 -0
  152. package/blocklySkini/blockly/core/renderers/zelos/measurables/row_elements.js +37 -0
  153. package/blocklySkini/blockly/core/renderers/zelos/measurables/rows.js +108 -0
  154. package/blocklySkini/blockly/core/renderers/zelos/path_object.js +244 -0
  155. package/blocklySkini/blockly/core/renderers/zelos/renderer.js +130 -0
  156. package/blocklySkini/blockly/core/requires.js +84 -0
  157. package/blocklySkini/blockly/core/scrollbar.js +880 -0
  158. package/blocklySkini/blockly/core/theme/classic.js +87 -0
  159. package/blocklySkini/blockly/core/theme/dark.js +33 -0
  160. package/blocklySkini/blockly/core/theme/deuteranopia.js +104 -0
  161. package/blocklySkini/blockly/core/theme/highcontrast.js +119 -0
  162. package/blocklySkini/blockly/core/theme/modern.js +108 -0
  163. package/blocklySkini/blockly/core/theme/tritanopia.js +103 -0
  164. package/blocklySkini/blockly/core/theme/zelos.js +106 -0
  165. package/blocklySkini/blockly/core/theme.js +236 -0
  166. package/blocklySkini/blockly/core/theme_manager.js +197 -0
  167. package/blocklySkini/blockly/core/toolbox/category.js +690 -0
  168. package/blocklySkini/blockly/core/toolbox/collapsible_category.js +294 -0
  169. package/blocklySkini/blockly/core/toolbox/separator.js +123 -0
  170. package/blocklySkini/blockly/core/toolbox/toolbox.js +984 -0
  171. package/blocklySkini/blockly/core/toolbox/toolbox_item.js +145 -0
  172. package/blocklySkini/blockly/core/toolbox.js +943 -0
  173. package/blocklySkini/blockly/core/tooltip.js +387 -0
  174. package/blocklySkini/blockly/core/touch.js +255 -0
  175. package/blocklySkini/blockly/core/touch_gesture.js +325 -0
  176. package/blocklySkini/blockly/core/trashcan.js +661 -0
  177. package/blocklySkini/blockly/core/ui_events.js +85 -0
  178. package/blocklySkini/blockly/core/utils/aria.js +167 -0
  179. package/blocklySkini/blockly/core/utils/colour.js +208 -0
  180. package/blocklySkini/blockly/core/utils/coordinate.js +125 -0
  181. package/blocklySkini/blockly/core/utils/deprecation.js +34 -0
  182. package/blocklySkini/blockly/core/utils/dom.js +391 -0
  183. package/blocklySkini/blockly/core/utils/global.js +37 -0
  184. package/blocklySkini/blockly/core/utils/idgenerator.js +33 -0
  185. package/blocklySkini/blockly/core/utils/keycodes.js +164 -0
  186. package/blocklySkini/blockly/core/utils/math.js +56 -0
  187. package/blocklySkini/blockly/core/utils/metrics.js +124 -0
  188. package/blocklySkini/blockly/core/utils/object.js +73 -0
  189. package/blocklySkini/blockly/core/utils/rect.js +54 -0
  190. package/blocklySkini/blockly/core/utils/size.js +58 -0
  191. package/blocklySkini/blockly/core/utils/string.js +284 -0
  192. package/blocklySkini/blockly/core/utils/style.js +281 -0
  193. package/blocklySkini/blockly/core/utils/svg.js +181 -0
  194. package/blocklySkini/blockly/core/utils/svg_paths.js +142 -0
  195. package/blocklySkini/blockly/core/utils/toolbox.js +401 -0
  196. package/blocklySkini/blockly/core/utils/useragent.js +110 -0
  197. package/blocklySkini/blockly/core/utils/xml.js +79 -0
  198. package/blocklySkini/blockly/core/utils.js +652 -0
  199. package/blocklySkini/blockly/core/variable_events.js +248 -0
  200. package/blocklySkini/blockly/core/variable_map.js +414 -0
  201. package/blocklySkini/blockly/core/variable_model.js +95 -0
  202. package/blocklySkini/blockly/core/variables.js +571 -0
  203. package/blocklySkini/blockly/core/variables_dynamic.js +100 -0
  204. package/blocklySkini/blockly/core/warning.js +200 -0
  205. package/blocklySkini/blockly/core/widgetdiv.js +241 -0
  206. package/blocklySkini/blockly/core/workspace.js +786 -0
  207. package/blocklySkini/blockly/core/workspace_audio.js +153 -0
  208. package/blocklySkini/blockly/core/workspace_comment.js +373 -0
  209. package/blocklySkini/blockly/core/workspace_comment_render_svg.js +461 -0
  210. package/blocklySkini/blockly/core/workspace_comment_svg.js +701 -0
  211. package/blocklySkini/blockly/core/workspace_drag_surface_svg.js +176 -0
  212. package/blocklySkini/blockly/core/workspace_dragger.js +85 -0
  213. package/blocklySkini/blockly/core/workspace_events.js +93 -0
  214. package/blocklySkini/blockly/core/workspace_svg.js +2661 -0
  215. package/blocklySkini/blockly/core/ws_comment_events.js +417 -0
  216. package/blocklySkini/blockly/core/xml.js +827 -0
  217. package/blocklySkini/blockly/core/zoom_controls.js +449 -0
  218. package/blocklySkini/blockly/core-browser.js +34 -0
  219. package/blocklySkini/blockly/core.d.ts +15 -0
  220. package/blocklySkini/blockly/core.js +38 -0
  221. package/blocklySkini/blockly/dart.d.ts +15 -0
  222. package/blocklySkini/blockly/dart.js +27 -0
  223. package/blocklySkini/blockly/dart_compressed.js +114 -0
  224. package/blocklySkini/blockly/dart_compressed.js.map +1 -0
  225. package/blocklySkini/blockly/generators/dart/colour.js +114 -0
  226. package/blocklySkini/blockly/generators/dart/lists.js +447 -0
  227. package/blocklySkini/blockly/generators/dart/logic.js +127 -0
  228. package/blocklySkini/blockly/generators/dart/loops.js +169 -0
  229. package/blocklySkini/blockly/generators/dart/math.js +485 -0
  230. package/blocklySkini/blockly/generators/dart/procedures.js +111 -0
  231. package/blocklySkini/blockly/generators/dart/text.js +339 -0
  232. package/blocklySkini/blockly/generators/dart/variables.js +32 -0
  233. package/blocklySkini/blockly/generators/dart/variables_dynamic.js +21 -0
  234. package/blocklySkini/blockly/generators/dart.js +290 -0
  235. package/blocklySkini/blockly/generators/javascript/colour.js +89 -0
  236. package/blocklySkini/blockly/generators/javascript/lists.js +388 -0
  237. package/blocklySkini/blockly/generators/javascript/logic.js +129 -0
  238. package/blocklySkini/blockly/generators/javascript/loops.js +184 -0
  239. package/blocklySkini/blockly/generators/javascript/math.js +409 -0
  240. package/blocklySkini/blockly/generators/javascript/procedures.js +113 -0
  241. package/blocklySkini/blockly/generators/javascript/text.js +367 -0
  242. package/blocklySkini/blockly/generators/javascript/variables.js +32 -0
  243. package/blocklySkini/blockly/generators/javascript/variables_dynamic.js +23 -0
  244. package/blocklySkini/blockly/generators/javascript.js +317 -0
  245. package/blocklySkini/blockly/generators/lua/colour.js +76 -0
  246. package/blocklySkini/blockly/generators/lua/lists.js +368 -0
  247. package/blocklySkini/blockly/generators/lua/logic.js +127 -0
  248. package/blocklySkini/blockly/generators/lua/loops.js +173 -0
  249. package/blocklySkini/blockly/generators/lua/math.js +423 -0
  250. package/blocklySkini/blockly/generators/lua/procedures.js +113 -0
  251. package/blocklySkini/blockly/generators/lua/text.js +353 -0
  252. package/blocklySkini/blockly/generators/lua/variables.js +32 -0
  253. package/blocklySkini/blockly/generators/lua/variables_dynamic.js +21 -0
  254. package/blocklySkini/blockly/generators/lua.js +198 -0
  255. package/blocklySkini/blockly/generators/php/colour.js +91 -0
  256. package/blocklySkini/blockly/generators/php/lists.js +498 -0
  257. package/blocklySkini/blockly/generators/php/logic.js +128 -0
  258. package/blocklySkini/blockly/generators/php/loops.js +170 -0
  259. package/blocklySkini/blockly/generators/php/math.js +370 -0
  260. package/blocklySkini/blockly/generators/php/procedures.js +132 -0
  261. package/blocklySkini/blockly/generators/php/text.js +271 -0
  262. package/blocklySkini/blockly/generators/php/variables.js +32 -0
  263. package/blocklySkini/blockly/generators/php/variables_dynamic.js +21 -0
  264. package/blocklySkini/blockly/generators/php.js +318 -0
  265. package/blocklySkini/blockly/generators/python/colour.js +72 -0
  266. package/blocklySkini/blockly/generators/python/lists.js +349 -0
  267. package/blocklySkini/blockly/generators/python/logic.js +127 -0
  268. package/blocklySkini/blockly/generators/python/loops.js +214 -0
  269. package/blocklySkini/blockly/generators/python/math.js +385 -0
  270. package/blocklySkini/blockly/generators/python/procedures.js +134 -0
  271. package/blocklySkini/blockly/generators/python/text.js +293 -0
  272. package/blocklySkini/blockly/generators/python/variables.js +32 -0
  273. package/blocklySkini/blockly/generators/python/variables_dynamic.js +21 -0
  274. package/blocklySkini/blockly/generators/python.js +322 -0
  275. package/blocklySkini/blockly/index.d.ts +22 -0
  276. package/blocklySkini/blockly/index.js +24 -0
  277. package/blocklySkini/blockly/javascript.d.ts +15 -0
  278. package/blocklySkini/blockly/javascript.js +27 -0
  279. package/blocklySkini/blockly/javascript_compressed.js +115 -0
  280. package/blocklySkini/blockly/javascript_compressed.js.map +1 -0
  281. package/blocklySkini/blockly/lua.d.ts +15 -0
  282. package/blocklySkini/blockly/lua.js +27 -0
  283. package/blocklySkini/blockly/lua_compressed.js +94 -0
  284. package/blocklySkini/blockly/lua_compressed.js.map +1 -0
  285. package/blocklySkini/blockly/media/1x1.gif +0 -0
  286. package/blocklySkini/blockly/media/click.mp3 +0 -0
  287. package/blocklySkini/blockly/media/click.ogg +0 -0
  288. package/blocklySkini/blockly/media/click.wav +0 -0
  289. package/blocklySkini/blockly/media/delete.mp3 +0 -0
  290. package/blocklySkini/blockly/media/delete.ogg +0 -0
  291. package/blocklySkini/blockly/media/delete.wav +0 -0
  292. package/blocklySkini/blockly/media/disconnect.mp3 +0 -0
  293. package/blocklySkini/blockly/media/disconnect.ogg +0 -0
  294. package/blocklySkini/blockly/media/disconnect.wav +0 -0
  295. package/blocklySkini/blockly/media/dropdown-arrow.svg +1 -0
  296. package/blocklySkini/blockly/media/handclosed.cur +0 -0
  297. package/blocklySkini/blockly/media/handdelete.cur +0 -0
  298. package/blocklySkini/blockly/media/handopen.cur +0 -0
  299. package/blocklySkini/blockly/media/pilcrow.png +0 -0
  300. package/blocklySkini/blockly/media/quote0.png +0 -0
  301. package/blocklySkini/blockly/media/quote1.png +0 -0
  302. package/blocklySkini/blockly/media/sprites.png +0 -0
  303. package/blocklySkini/blockly/media/sprites.svg +74 -0
  304. package/blocklySkini/blockly/msg/ab.d.ts +16 -0
  305. package/blocklySkini/blockly/msg/ab.js +447 -0
  306. package/blocklySkini/blockly/msg/ar.d.ts +16 -0
  307. package/blocklySkini/blockly/msg/ar.js +447 -0
  308. package/blocklySkini/blockly/msg/az.d.ts +16 -0
  309. package/blocklySkini/blockly/msg/az.js +447 -0
  310. package/blocklySkini/blockly/msg/ba.d.ts +16 -0
  311. package/blocklySkini/blockly/msg/ba.js +447 -0
  312. package/blocklySkini/blockly/msg/bcc.d.ts +16 -0
  313. package/blocklySkini/blockly/msg/bcc.js +447 -0
  314. package/blocklySkini/blockly/msg/be-tarask.d.ts +16 -0
  315. package/blocklySkini/blockly/msg/be-tarask.js +447 -0
  316. package/blocklySkini/blockly/msg/be.d.ts +16 -0
  317. package/blocklySkini/blockly/msg/be.js +447 -0
  318. package/blocklySkini/blockly/msg/bg.d.ts +16 -0
  319. package/blocklySkini/blockly/msg/bg.js +447 -0
  320. package/blocklySkini/blockly/msg/bn.d.ts +16 -0
  321. package/blocklySkini/blockly/msg/bn.js +447 -0
  322. package/blocklySkini/blockly/msg/br.d.ts +16 -0
  323. package/blocklySkini/blockly/msg/br.js +447 -0
  324. package/blocklySkini/blockly/msg/ca.d.ts +16 -0
  325. package/blocklySkini/blockly/msg/ca.js +447 -0
  326. package/blocklySkini/blockly/msg/constants.d.ts +16 -0
  327. package/blocklySkini/blockly/msg/cs.d.ts +16 -0
  328. package/blocklySkini/blockly/msg/cs.js +447 -0
  329. package/blocklySkini/blockly/msg/da.d.ts +16 -0
  330. package/blocklySkini/blockly/msg/da.js +447 -0
  331. package/blocklySkini/blockly/msg/de.d.ts +16 -0
  332. package/blocklySkini/blockly/msg/de.js +447 -0
  333. package/blocklySkini/blockly/msg/diq.d.ts +16 -0
  334. package/blocklySkini/blockly/msg/diq.js +447 -0
  335. package/blocklySkini/blockly/msg/dty.d.ts +16 -0
  336. package/blocklySkini/blockly/msg/dty.js +447 -0
  337. package/blocklySkini/blockly/msg/ee.d.ts +16 -0
  338. package/blocklySkini/blockly/msg/ee.js +447 -0
  339. package/blocklySkini/blockly/msg/el.d.ts +16 -0
  340. package/blocklySkini/blockly/msg/el.js +447 -0
  341. package/blocklySkini/blockly/msg/en-gb.d.ts +16 -0
  342. package/blocklySkini/blockly/msg/en-gb.js +447 -0
  343. package/blocklySkini/blockly/msg/en.d.ts +16 -0
  344. package/blocklySkini/blockly/msg/en.js +447 -0
  345. package/blocklySkini/blockly/msg/eo.d.ts +16 -0
  346. package/blocklySkini/blockly/msg/eo.js +447 -0
  347. package/blocklySkini/blockly/msg/es.d.ts +16 -0
  348. package/blocklySkini/blockly/msg/es.js +447 -0
  349. package/blocklySkini/blockly/msg/et.d.ts +16 -0
  350. package/blocklySkini/blockly/msg/et.js +447 -0
  351. package/blocklySkini/blockly/msg/eu.d.ts +16 -0
  352. package/blocklySkini/blockly/msg/eu.js +447 -0
  353. package/blocklySkini/blockly/msg/fa.d.ts +16 -0
  354. package/blocklySkini/blockly/msg/fa.js +447 -0
  355. package/blocklySkini/blockly/msg/fi.d.ts +16 -0
  356. package/blocklySkini/blockly/msg/fi.js +447 -0
  357. package/blocklySkini/blockly/msg/fr.d.ts +16 -0
  358. package/blocklySkini/blockly/msg/fr.js +447 -0
  359. package/blocklySkini/blockly/msg/gl.d.ts +16 -0
  360. package/blocklySkini/blockly/msg/gl.js +447 -0
  361. package/blocklySkini/blockly/msg/gor.d.ts +16 -0
  362. package/blocklySkini/blockly/msg/gor.js +447 -0
  363. package/blocklySkini/blockly/msg/ha.d.ts +16 -0
  364. package/blocklySkini/blockly/msg/ha.js +447 -0
  365. package/blocklySkini/blockly/msg/he.d.ts +16 -0
  366. package/blocklySkini/blockly/msg/he.js +447 -0
  367. package/blocklySkini/blockly/msg/hi.d.ts +16 -0
  368. package/blocklySkini/blockly/msg/hi.js +447 -0
  369. package/blocklySkini/blockly/msg/hrx.d.ts +16 -0
  370. package/blocklySkini/blockly/msg/hrx.js +447 -0
  371. package/blocklySkini/blockly/msg/hu.d.ts +16 -0
  372. package/blocklySkini/blockly/msg/hu.js +447 -0
  373. package/blocklySkini/blockly/msg/hy.d.ts +16 -0
  374. package/blocklySkini/blockly/msg/hy.js +447 -0
  375. package/blocklySkini/blockly/msg/ia.d.ts +16 -0
  376. package/blocklySkini/blockly/msg/ia.js +447 -0
  377. package/blocklySkini/blockly/msg/id.d.ts +16 -0
  378. package/blocklySkini/blockly/msg/id.js +447 -0
  379. package/blocklySkini/blockly/msg/ig.d.ts +16 -0
  380. package/blocklySkini/blockly/msg/ig.js +447 -0
  381. package/blocklySkini/blockly/msg/is.d.ts +16 -0
  382. package/blocklySkini/blockly/msg/is.js +447 -0
  383. package/blocklySkini/blockly/msg/it.d.ts +16 -0
  384. package/blocklySkini/blockly/msg/it.js +447 -0
  385. package/blocklySkini/blockly/msg/ja.d.ts +16 -0
  386. package/blocklySkini/blockly/msg/ja.js +447 -0
  387. package/blocklySkini/blockly/msg/kab.d.ts +16 -0
  388. package/blocklySkini/blockly/msg/kab.js +447 -0
  389. package/blocklySkini/blockly/msg/kn.d.ts +16 -0
  390. package/blocklySkini/blockly/msg/kn.js +447 -0
  391. package/blocklySkini/blockly/msg/ko.d.ts +16 -0
  392. package/blocklySkini/blockly/msg/ko.js +447 -0
  393. package/blocklySkini/blockly/msg/lb.d.ts +16 -0
  394. package/blocklySkini/blockly/msg/lb.js +447 -0
  395. package/blocklySkini/blockly/msg/lki.d.ts +16 -0
  396. package/blocklySkini/blockly/msg/lki.js +447 -0
  397. package/blocklySkini/blockly/msg/lo.d.ts +16 -0
  398. package/blocklySkini/blockly/msg/lo.js +447 -0
  399. package/blocklySkini/blockly/msg/lrc.d.ts +16 -0
  400. package/blocklySkini/blockly/msg/lrc.js +447 -0
  401. package/blocklySkini/blockly/msg/lt.d.ts +16 -0
  402. package/blocklySkini/blockly/msg/lt.js +447 -0
  403. package/blocklySkini/blockly/msg/lv.d.ts +16 -0
  404. package/blocklySkini/blockly/msg/lv.js +447 -0
  405. package/blocklySkini/blockly/msg/mk.d.ts +16 -0
  406. package/blocklySkini/blockly/msg/mk.js +447 -0
  407. package/blocklySkini/blockly/msg/mnw.d.ts +16 -0
  408. package/blocklySkini/blockly/msg/mnw.js +447 -0
  409. package/blocklySkini/blockly/msg/ms.d.ts +16 -0
  410. package/blocklySkini/blockly/msg/ms.js +447 -0
  411. package/blocklySkini/blockly/msg/msg.d.ts +444 -0
  412. package/blocklySkini/blockly/msg/nb.d.ts +16 -0
  413. package/blocklySkini/blockly/msg/nb.js +447 -0
  414. package/blocklySkini/blockly/msg/nl.d.ts +16 -0
  415. package/blocklySkini/blockly/msg/nl.js +447 -0
  416. package/blocklySkini/blockly/msg/oc.d.ts +16 -0
  417. package/blocklySkini/blockly/msg/oc.js +447 -0
  418. package/blocklySkini/blockly/msg/pl.d.ts +16 -0
  419. package/blocklySkini/blockly/msg/pl.js +447 -0
  420. package/blocklySkini/blockly/msg/pms.d.ts +16 -0
  421. package/blocklySkini/blockly/msg/pms.js +447 -0
  422. package/blocklySkini/blockly/msg/pt-br.d.ts +16 -0
  423. package/blocklySkini/blockly/msg/pt-br.js +447 -0
  424. package/blocklySkini/blockly/msg/pt.d.ts +16 -0
  425. package/blocklySkini/blockly/msg/pt.js +447 -0
  426. package/blocklySkini/blockly/msg/qqq.d.ts +16 -0
  427. package/blocklySkini/blockly/msg/ro.d.ts +16 -0
  428. package/blocklySkini/blockly/msg/ro.js +447 -0
  429. package/blocklySkini/blockly/msg/ru.d.ts +16 -0
  430. package/blocklySkini/blockly/msg/ru.js +447 -0
  431. package/blocklySkini/blockly/msg/sc.d.ts +16 -0
  432. package/blocklySkini/blockly/msg/sc.js +447 -0
  433. package/blocklySkini/blockly/msg/sd.d.ts +16 -0
  434. package/blocklySkini/blockly/msg/sd.js +447 -0
  435. package/blocklySkini/blockly/msg/shn.d.ts +16 -0
  436. package/blocklySkini/blockly/msg/shn.js +447 -0
  437. package/blocklySkini/blockly/msg/sk.d.ts +16 -0
  438. package/blocklySkini/blockly/msg/sk.js +447 -0
  439. package/blocklySkini/blockly/msg/skr-arab.d.ts +16 -0
  440. package/blocklySkini/blockly/msg/skr-arab.js +447 -0
  441. package/blocklySkini/blockly/msg/sl.d.ts +16 -0
  442. package/blocklySkini/blockly/msg/sl.js +447 -0
  443. package/blocklySkini/blockly/msg/sq.d.ts +16 -0
  444. package/blocklySkini/blockly/msg/sq.js +447 -0
  445. package/blocklySkini/blockly/msg/sr-latn.d.ts +16 -0
  446. package/blocklySkini/blockly/msg/sr-latn.js +447 -0
  447. package/blocklySkini/blockly/msg/sr.d.ts +16 -0
  448. package/blocklySkini/blockly/msg/sr.js +447 -0
  449. package/blocklySkini/blockly/msg/sv.d.ts +16 -0
  450. package/blocklySkini/blockly/msg/sv.js +447 -0
  451. package/blocklySkini/blockly/msg/synonyms.d.ts +16 -0
  452. package/blocklySkini/blockly/msg/ta.d.ts +16 -0
  453. package/blocklySkini/blockly/msg/ta.js +447 -0
  454. package/blocklySkini/blockly/msg/tcy.d.ts +16 -0
  455. package/blocklySkini/blockly/msg/tcy.js +447 -0
  456. package/blocklySkini/blockly/msg/te.d.ts +16 -0
  457. package/blocklySkini/blockly/msg/te.js +447 -0
  458. package/blocklySkini/blockly/msg/th.d.ts +16 -0
  459. package/blocklySkini/blockly/msg/th.js +447 -0
  460. package/blocklySkini/blockly/msg/tl.d.ts +16 -0
  461. package/blocklySkini/blockly/msg/tl.js +447 -0
  462. package/blocklySkini/blockly/msg/tlh.d.ts +16 -0
  463. package/blocklySkini/blockly/msg/tlh.js +447 -0
  464. package/blocklySkini/blockly/msg/tr.d.ts +16 -0
  465. package/blocklySkini/blockly/msg/tr.js +447 -0
  466. package/blocklySkini/blockly/msg/ug-arab.d.ts +16 -0
  467. package/blocklySkini/blockly/msg/ug-arab.js +447 -0
  468. package/blocklySkini/blockly/msg/uk.d.ts +16 -0
  469. package/blocklySkini/blockly/msg/uk.js +447 -0
  470. package/blocklySkini/blockly/msg/ur.d.ts +16 -0
  471. package/blocklySkini/blockly/msg/ur.js +447 -0
  472. package/blocklySkini/blockly/msg/vi.d.ts +16 -0
  473. package/blocklySkini/blockly/msg/vi.js +447 -0
  474. package/blocklySkini/blockly/msg/xmf.d.ts +16 -0
  475. package/blocklySkini/blockly/msg/xmf.js +447 -0
  476. package/blocklySkini/blockly/msg/yo.d.ts +16 -0
  477. package/blocklySkini/blockly/msg/yo.js +447 -0
  478. package/blocklySkini/blockly/msg/zh-hans.d.ts +16 -0
  479. package/blocklySkini/blockly/msg/zh-hans.js +447 -0
  480. package/blocklySkini/blockly/msg/zh-hant.d.ts +16 -0
  481. package/blocklySkini/blockly/msg/zh-hant.js +447 -0
  482. package/blocklySkini/blockly/node.js +35 -0
  483. package/blocklySkini/blockly/package.json +84 -0
  484. package/blocklySkini/blockly/php.d.ts +15 -0
  485. package/blocklySkini/blockly/php.js +27 -0
  486. package/blocklySkini/blockly/php_compressed.js +103 -0
  487. package/blocklySkini/blockly/php_compressed.js.map +1 -0
  488. package/blocklySkini/blockly/python.d.ts +15 -0
  489. package/blocklySkini/blockly/python.js +27 -0
  490. package/blocklySkini/blockly/python_compressed.js +98 -0
  491. package/blocklySkini/blockly/python_compressed.js.map +1 -0
  492. package/blocklySkini/blocklySkini.html +81 -0
  493. package/blocklySkini/orchestrations/.xml +1 -0
  494. package/blocklySkini/orchestrations/BluesSkini-1.xml +231 -0
  495. package/blocklySkini/orchestrations/BluesSkini-2.xml +741 -0
  496. package/blocklySkini/orchestrations/BluesSkini-3.xml +731 -0
  497. package/blocklySkini/orchestrations/BluesSkini-4.xml +695 -0
  498. package/blocklySkini/orchestrations/BluesSkini-5.xml +731 -0
  499. package/blocklySkini/orchestrations/BluesSkini.xml +704 -0
  500. package/blocklySkini/orchestrations/FunkBitwig-1.xml +778 -0
  501. package/blocklySkini/orchestrations/FunkBitwig-2.xml +471 -0
  502. package/blocklySkini/orchestrations/JouerLeBonInstrument1-1.xml +784 -0
  503. package/blocklySkini/orchestrations/MajeurMineur-1.xml +638 -0
  504. package/blocklySkini/orchestrations/Opus5-3 - Copie.xml +1041 -0
  505. package/blocklySkini/orchestrations/Opus5-3.xml +1128 -0
  506. package/blocklySkini/orchestrations/Quatuor1-1.xml +357 -0
  507. package/blocklySkini/orchestrations/TechnoBitwig-1.xml +221 -0
  508. package/blocklySkini/orchestrations/TestBlockly.xml +497 -0
  509. package/blocklySkini/orchestrations/TestBlockly1.xml +500 -0
  510. package/blocklySkini/orchestrations/TestBlockly2.xml +792 -0
  511. package/blocklySkini/orchestrations/TestBlockly3-1.xml +1182 -0
  512. package/blocklySkini/orchestrations/TestBlockly3.xml +1251 -0
  513. package/blocklySkini/orchestrations/TestFunction.xml +143 -0
  514. package/blocklySkini/orchestrations/TestIf.xml +80 -0
  515. package/blocklySkini/orchestrations/TestLoop.xml +127 -0
  516. package/blocklySkini/orchestrations/TestOrchestration2.xml +460 -0
  517. package/blocklySkini/orchestrations/TestPrint.xml +70 -0
  518. package/blocklySkini/orchestrations/TestSubMod.xml +81 -0
  519. package/blocklySkini/orchestrations/Testlogic.xml +113 -0
  520. package/blocklySkini/orchestrations/TrouveLaPercu-1.xml +813 -0
  521. package/blocklySkini/orchestrations/TrouveLaPercu-2.xml +813 -0
  522. package/blocklySkini/orchestrations/bar.xml +496 -0
  523. package/blocklySkini/orchestrations/bar2.xml +496 -0
  524. package/blocklySkini/orchestrations/foo.xml +500 -0
  525. package/blocklySkini/orchestrations/opus5Blockly - Copie.xml +496 -0
  526. package/blocklySkini/orchestrations/opus5Blockly-3.xml +868 -0
  527. package/blocklySkini/orchestrations/opus5Blockly.xml +496 -0
  528. package/blocklySkini/orchestrations/testOrchestration3.xml +483 -0
  529. package/blocklySkini/orchestrations/testOrchestration4.xml +487 -0
  530. package/blocklySkini/scripts/hiphop_blocks.js +6104 -0
  531. package/blocklySkini/scripts/main2.js +801 -0
  532. package/blocklySkini/styles/index.css +320 -0
  533. package/blocklySkini/styles/material.css +11552 -0
  534. package/package.json +4 -3
@@ -0,0 +1,185 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Objects representing elements in a row of a rendered
9
+ * block.
10
+ * @author fenichel@google.com (Rachel Fenichel)
11
+ */
12
+
13
+ goog.provide('Blockly.blockRendering.Field');
14
+ goog.provide('Blockly.blockRendering.Hat');
15
+ goog.provide('Blockly.blockRendering.Icon');
16
+ goog.provide('Blockly.blockRendering.InRowSpacer');
17
+ goog.provide('Blockly.blockRendering.JaggedEdge');
18
+ goog.provide('Blockly.blockRendering.RoundCorner');
19
+ goog.provide('Blockly.blockRendering.SquareCorner');
20
+
21
+ goog.require('Blockly.blockRendering.Measurable');
22
+ goog.require('Blockly.blockRendering.Types');
23
+ goog.require('Blockly.utils.object');
24
+
25
+
26
+ /**
27
+ * An object containing information about the space an icon takes up during
28
+ * rendering
29
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
30
+ * constants provider.
31
+ * @param {!Blockly.Icon} icon The icon to measure and store information for.
32
+ * @package
33
+ * @constructor
34
+ * @extends {Blockly.blockRendering.Measurable}
35
+ */
36
+ Blockly.blockRendering.Icon = function(constants, icon) {
37
+ Blockly.blockRendering.Icon.superClass_.constructor.call(this, constants);
38
+ this.icon = icon;
39
+ this.isVisible = icon.isVisible();
40
+ this.type |= Blockly.blockRendering.Types.ICON;
41
+
42
+ var size = icon.getCorrectedSize();
43
+ this.height = size.height;
44
+ this.width = size.width;
45
+ };
46
+ Blockly.utils.object.inherits(Blockly.blockRendering.Icon,
47
+ Blockly.blockRendering.Measurable);
48
+
49
+ /**
50
+ * An object containing information about the jagged edge of a collapsed block
51
+ * takes up during rendering
52
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
53
+ * constants provider.
54
+ * @package
55
+ * @constructor
56
+ * @extends {Blockly.blockRendering.Measurable}
57
+ */
58
+ Blockly.blockRendering.JaggedEdge = function(constants) {
59
+ Blockly.blockRendering.JaggedEdge.superClass_.constructor.call(
60
+ this, constants);
61
+ this.type |= Blockly.blockRendering.Types.JAGGED_EDGE;
62
+ this.height = this.constants_.JAGGED_TEETH.height;
63
+ this.width = this.constants_.JAGGED_TEETH.width;
64
+ };
65
+ Blockly.utils.object.inherits(Blockly.blockRendering.JaggedEdge,
66
+ Blockly.blockRendering.Measurable);
67
+
68
+
69
+ /**
70
+ * An object containing information about the space a field takes up during
71
+ * rendering
72
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
73
+ * constants provider.
74
+ * @param {!Blockly.Field} field The field to measure and store information for.
75
+ * @param {!Blockly.Input} parentInput The parent input for the field.
76
+ * @package
77
+ * @constructor
78
+ * @extends {Blockly.blockRendering.Measurable}
79
+ */
80
+ Blockly.blockRendering.Field = function(constants, field, parentInput) {
81
+ Blockly.blockRendering.Field.superClass_.constructor.call(this, constants);
82
+ this.field = field;
83
+ this.isEditable = field.EDITABLE;
84
+ this.flipRtl = field.getFlipRtl();
85
+ this.type |= Blockly.blockRendering.Types.FIELD;
86
+
87
+ var size = this.field.getSize();
88
+ this.height = size.height;
89
+ this.width = size.width;
90
+ this.parentInput = parentInput;
91
+ };
92
+ Blockly.utils.object.inherits(Blockly.blockRendering.Field,
93
+ Blockly.blockRendering.Measurable);
94
+
95
+ /**
96
+ * An object containing information about the space a hat takes up during
97
+ * rendering.
98
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
99
+ * constants provider.
100
+ * @package
101
+ * @constructor
102
+ * @extends {Blockly.blockRendering.Measurable}
103
+ */
104
+ Blockly.blockRendering.Hat = function(constants) {
105
+ Blockly.blockRendering.Hat.superClass_.constructor.call(this, constants);
106
+ this.type |= Blockly.blockRendering.Types.HAT;
107
+ this.height = this.constants_.START_HAT.height;
108
+ this.width = this.constants_.START_HAT.width;
109
+ this.ascenderHeight = this.height;
110
+
111
+ };
112
+ Blockly.utils.object.inherits(Blockly.blockRendering.Hat,
113
+ Blockly.blockRendering.Measurable);
114
+
115
+ /**
116
+ * An object containing information about the space a square corner takes up
117
+ * during rendering.
118
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
119
+ * constants provider.
120
+ * @param {string=} opt_position The position of this corner.
121
+ * @package
122
+ * @constructor
123
+ * @extends {Blockly.blockRendering.Measurable}
124
+ */
125
+ Blockly.blockRendering.SquareCorner = function(constants, opt_position) {
126
+ Blockly.blockRendering.SquareCorner.superClass_.constructor.call(this,
127
+ constants);
128
+ this.type = ((!opt_position || opt_position == 'left') ?
129
+ Blockly.blockRendering.Types.LEFT_SQUARE_CORNER :
130
+ Blockly.blockRendering.Types.RIGHT_SQUARE_CORNER) |
131
+ Blockly.blockRendering.Types.CORNER;
132
+ this.height = this.constants_.NO_PADDING;
133
+ this.width = this.constants_.NO_PADDING;
134
+
135
+ };
136
+ Blockly.utils.object.inherits(Blockly.blockRendering.SquareCorner,
137
+ Blockly.blockRendering.Measurable);
138
+
139
+ /**
140
+ * An object containing information about the space a rounded corner takes up
141
+ * during rendering.
142
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
143
+ * constants provider.
144
+ * @param {string=} opt_position The position of this corner.
145
+ * @package
146
+ * @constructor
147
+ * @extends {Blockly.blockRendering.Measurable}
148
+ */
149
+ Blockly.blockRendering.RoundCorner = function(constants, opt_position) {
150
+ Blockly.blockRendering.RoundCorner.superClass_.constructor.call(this,
151
+ constants);
152
+ this.type = ((!opt_position || opt_position == 'left') ?
153
+ Blockly.blockRendering.Types.LEFT_ROUND_CORNER :
154
+ Blockly.blockRendering.Types.RIGHT_ROUND_CORNER) |
155
+ Blockly.blockRendering.Types.CORNER;
156
+ this.width = this.constants_.CORNER_RADIUS;
157
+ // The rounded corner extends into the next row by 4 so we only take the
158
+ // height that is aligned with this row.
159
+ this.height = this.constants_.CORNER_RADIUS / 2;
160
+
161
+ };
162
+ Blockly.utils.object.inherits(Blockly.blockRendering.RoundCorner,
163
+ Blockly.blockRendering.Measurable);
164
+
165
+ /**
166
+ * An object containing information about a spacer between two elements on a
167
+ * row.
168
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
169
+ * constants provider.
170
+ * @param {number} width The width of the spacer.
171
+ * @package
172
+ * @constructor
173
+ * @extends {Blockly.blockRendering.Measurable}
174
+ */
175
+ Blockly.blockRendering.InRowSpacer = function(constants, width) {
176
+ Blockly.blockRendering.InRowSpacer.superClass_.constructor.call(this,
177
+ constants);
178
+ this.type |= Blockly.blockRendering.Types.SPACER |
179
+ Blockly.blockRendering.Types.IN_ROW_SPACER;
180
+ this.width = width;
181
+ this.height = this.constants_.SPACER_DEFAULT_HEIGHT;
182
+ };
183
+ Blockly.utils.object.inherits(Blockly.blockRendering.InRowSpacer,
184
+ Blockly.blockRendering.Measurable);
185
+
@@ -0,0 +1,532 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Objects representing a single row on a rendered block and all
9
+ * of its subcomponents.
10
+ * @author fenichel@google.com (Rachel Fenichel)
11
+ */
12
+
13
+ goog.provide('Blockly.blockRendering.BottomRow');
14
+ goog.provide('Blockly.blockRendering.InputRow');
15
+ goog.provide('Blockly.blockRendering.Row');
16
+ goog.provide('Blockly.blockRendering.SpacerRow');
17
+ goog.provide('Blockly.blockRendering.TopRow');
18
+
19
+ goog.require('Blockly.blockRendering.InputConnection');
20
+ goog.require('Blockly.blockRendering.InRowSpacer');
21
+ goog.require('Blockly.blockRendering.Measurable');
22
+ goog.require('Blockly.blockRendering.NextConnection');
23
+ goog.require('Blockly.blockRendering.PreviousConnection');
24
+ goog.require('Blockly.blockRendering.Types');
25
+ goog.require('Blockly.utils.object');
26
+
27
+
28
+ /**
29
+ * An object representing a single row on a rendered block and all of its
30
+ * subcomponents.
31
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
32
+ * constants provider.
33
+ * @package
34
+ * @constructor
35
+ */
36
+ Blockly.blockRendering.Row = function(constants) {
37
+ /**
38
+ * The type of this rendering object.
39
+ * @package
40
+ * @type {number}
41
+ */
42
+ this.type = Blockly.blockRendering.Types.ROW;
43
+
44
+ /**
45
+ * An array of elements contained in this row.
46
+ * @package
47
+ * @type {!Array.<!Blockly.blockRendering.Measurable>}
48
+ */
49
+ this.elements = [];
50
+
51
+ /**
52
+ * The height of the row.
53
+ * @package
54
+ * @type {number}
55
+ */
56
+ this.height = 0;
57
+
58
+ /**
59
+ * The width of the row, from the left edge of the block to the right.
60
+ * Does not include child blocks unless they are inline.
61
+ * @package
62
+ * @type {number}
63
+ */
64
+ this.width = 0;
65
+
66
+ /**
67
+ * The minimum height of the row.
68
+ * @package
69
+ * @type {number}
70
+ */
71
+ this.minHeight = 0;
72
+
73
+ /**
74
+ * The minimum width of the row, from the left edge of the block to the right.
75
+ * Does not include child blocks unless they are inline.
76
+ * @package
77
+ * @type {number}
78
+ */
79
+ this.minWidth = 0;
80
+
81
+ /**
82
+ * The width of the row, from the left edge of the block to the edge of the
83
+ * block or any connected child blocks.
84
+ * @package
85
+ * @type {number}
86
+ */
87
+ this.widthWithConnectedBlocks = 0;
88
+
89
+ /**
90
+ * The Y position of the row relative to the origin of the block's svg group.
91
+ * @package
92
+ * @type {number}
93
+ */
94
+ this.yPos = 0;
95
+
96
+ /**
97
+ * The X position of the row relative to the origin of the block's svg group.
98
+ * @package
99
+ * @type {number}
100
+ */
101
+ this.xPos = 0;
102
+
103
+ /**
104
+ * Whether the row has any external inputs.
105
+ * @package
106
+ * @type {boolean}
107
+ */
108
+ this.hasExternalInput = false;
109
+
110
+ /**
111
+ * Whether the row has any statement inputs.
112
+ * @package
113
+ * @type {boolean}
114
+ */
115
+ this.hasStatement = false;
116
+
117
+ /**
118
+ * Whether the row has any inline inputs.
119
+ * @package
120
+ * @type {boolean}
121
+ */
122
+ this.hasInlineInput = false;
123
+
124
+ /**
125
+ * Whether the row has any dummy inputs.
126
+ * @package
127
+ * @type {boolean}
128
+ */
129
+ this.hasDummyInput = false;
130
+
131
+ /**
132
+ * Whether the row has a jagged edge.
133
+ * @package
134
+ * @type {boolean}
135
+ */
136
+ this.hasJaggedEdge = false;
137
+
138
+ /**
139
+ * The renderer's constant provider.
140
+ * @type {!Blockly.blockRendering.ConstantProvider}
141
+ * @protected
142
+ */
143
+ this.constants_ = constants;
144
+
145
+ this.notchOffset = this.constants_.NOTCH_OFFSET_LEFT;
146
+
147
+ /**
148
+ * Alignment of the row.
149
+ * @package
150
+ * @type {?number}
151
+ */
152
+ this.align = null;
153
+ };
154
+
155
+ /**
156
+ * Inspect all subcomponents and populate all size properties on the row.
157
+ * @package
158
+ */
159
+ Blockly.blockRendering.Row.prototype.measure = function() {
160
+ throw Error('Unexpected attempt to measure a base Row.');
161
+ };
162
+
163
+ /**
164
+ * Get the last input on this row, if it has one.
165
+ * @return {Blockly.blockRendering.InputConnection} The last input on the row,
166
+ * or null.
167
+ * @package
168
+ */
169
+ // TODO: Consider moving this to InputRow, if possible.
170
+ Blockly.blockRendering.Row.prototype.getLastInput = function() {
171
+ for (var i = this.elements.length - 1, elem; (elem = this.elements[i]); i--) {
172
+ if (Blockly.blockRendering.Types.isInput(elem)) {
173
+ return /** @type {Blockly.blockRendering.InputConnection} */ (elem);
174
+ }
175
+ }
176
+ return null;
177
+ };
178
+
179
+ /**
180
+ * Determines whether this row should start with an element spacer.
181
+ * @return {boolean} Whether the row should start with a spacer.
182
+ * @package
183
+ */
184
+ Blockly.blockRendering.Row.prototype.startsWithElemSpacer = function() {
185
+ return true;
186
+ };
187
+
188
+ /**
189
+ * Determines whether this row should end with an element spacer.
190
+ * @return {boolean} Whether the row should end with a spacer.
191
+ * @package
192
+ */
193
+ Blockly.blockRendering.Row.prototype.endsWithElemSpacer = function() {
194
+ return true;
195
+ };
196
+
197
+ /**
198
+ * Convenience method to get the first spacer element on this row.
199
+ * @return {Blockly.blockRendering.InRowSpacer} The first spacer element on
200
+ * this row.
201
+ * @package
202
+ */
203
+ Blockly.blockRendering.Row.prototype.getFirstSpacer = function() {
204
+ for (var i = 0, elem; (elem = this.elements[i]); i++) {
205
+ if (Blockly.blockRendering.Types.isSpacer(elem)) {
206
+ return /** @type {Blockly.blockRendering.InRowSpacer} */ (elem);
207
+ }
208
+ }
209
+ return null;
210
+ };
211
+
212
+ /**
213
+ * Convenience method to get the last spacer element on this row.
214
+ * @return {Blockly.blockRendering.InRowSpacer} The last spacer element on
215
+ * this row.
216
+ * @package
217
+ */
218
+ Blockly.blockRendering.Row.prototype.getLastSpacer = function() {
219
+ for (var i = this.elements.length - 1, elem; (elem = this.elements[i]); i--) {
220
+ if (Blockly.blockRendering.Types.isSpacer(elem)) {
221
+ return /** @type {Blockly.blockRendering.InRowSpacer} */ (elem);
222
+ }
223
+ }
224
+ return null;
225
+ };
226
+
227
+ /**
228
+ * An object containing information about what elements are in the top row of a
229
+ * block as well as sizing information for the top row.
230
+ * Elements in a top row can consist of corners, hats, spacers, and previous
231
+ * connections.
232
+ * After this constructor is called, the row will contain all non-spacer
233
+ * elements it needs.
234
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
235
+ * constants provider.
236
+ * @package
237
+ * @constructor
238
+ * @extends {Blockly.blockRendering.Row}
239
+ */
240
+ Blockly.blockRendering.TopRow = function(constants) {
241
+ Blockly.blockRendering.TopRow.superClass_.constructor.call(this, constants);
242
+
243
+ this.type |= Blockly.blockRendering.Types.TOP_ROW;
244
+
245
+ /**
246
+ * The starting point for drawing the row, in the y direction.
247
+ * This allows us to draw hats and similar shapes that don't start at the
248
+ * origin. Must be non-negative (see #2820).
249
+ * @package
250
+ * @type {number}
251
+ */
252
+ this.capline = 0;
253
+
254
+ /**
255
+ * How much the row extends up above its capline.
256
+ * @type {number}
257
+ */
258
+ this.ascenderHeight = 0;
259
+
260
+ /**
261
+ * Whether the block has a previous connection.
262
+ * @package
263
+ * @type {boolean}
264
+ */
265
+ this.hasPreviousConnection = false;
266
+
267
+ /**
268
+ * The previous connection on the block, if any.
269
+ * @type {Blockly.blockRendering.PreviousConnection}
270
+ */
271
+ this.connection = null;
272
+ };
273
+ Blockly.utils.object.inherits(Blockly.blockRendering.TopRow,
274
+ Blockly.blockRendering.Row);
275
+
276
+ /**
277
+ * Returns whether or not the top row has a left square corner.
278
+ * @param {!Blockly.BlockSvg} block The block whose top row this represents.
279
+ * @return {boolean} Whether or not the top row has a left square corner.
280
+ */
281
+ Blockly.blockRendering.TopRow.prototype.hasLeftSquareCorner = function(block) {
282
+ var hasHat = (block.hat ?
283
+ block.hat === 'cap' : this.constants_.ADD_START_HATS) &&
284
+ !block.outputConnection && !block.previousConnection;
285
+ var prevBlock = block.getPreviousBlock();
286
+
287
+ return !!block.outputConnection ||
288
+ hasHat || (prevBlock ? prevBlock.getNextBlock() == block : false);
289
+ };
290
+
291
+ /**
292
+ * Returns whether or not the top row has a right square corner.
293
+ * @param {!Blockly.BlockSvg} _block The block whose top row this represents.
294
+ * @return {boolean} Whether or not the top row has a right square corner.
295
+ */
296
+ Blockly.blockRendering.TopRow.prototype.hasRightSquareCorner = function(
297
+ _block) {
298
+ return true;
299
+ };
300
+
301
+ /**
302
+ * @override
303
+ */
304
+ Blockly.blockRendering.TopRow.prototype.measure = function() {
305
+ var height = 0;
306
+ var width = 0;
307
+ var ascenderHeight = 0;
308
+ for (var e = 0, elem; (elem = this.elements[e]); e++) {
309
+ width += elem.width;
310
+ if (!(Blockly.blockRendering.Types.isSpacer(elem))) {
311
+ if (Blockly.blockRendering.Types.isHat(elem)) {
312
+ ascenderHeight = Math.max(ascenderHeight, elem.ascenderHeight);
313
+ } else {
314
+ height = Math.max(height, elem.height);
315
+ }
316
+ }
317
+ }
318
+ this.width = Math.max(this.minWidth, width);
319
+ this.height = Math.max(this.minHeight, height) + ascenderHeight;
320
+ this.ascenderHeight = ascenderHeight;
321
+ this.capline = this.ascenderHeight;
322
+ this.widthWithConnectedBlocks = this.width;
323
+ };
324
+
325
+ /**
326
+ * @override
327
+ */
328
+ Blockly.blockRendering.TopRow.prototype.startsWithElemSpacer = function() {
329
+ return false;
330
+ };
331
+
332
+ /**
333
+ * @override
334
+ */
335
+ Blockly.blockRendering.TopRow.prototype.endsWithElemSpacer = function() {
336
+ return false;
337
+ };
338
+
339
+ /**
340
+ * An object containing information about what elements are in the bottom row of
341
+ * a block as well as spacing information for the top row.
342
+ * Elements in a bottom row can consist of corners, spacers and next
343
+ * connections.
344
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
345
+ * constants provider.
346
+ * @package
347
+ * @constructor
348
+ * @extends {Blockly.blockRendering.Row}
349
+ */
350
+ Blockly.blockRendering.BottomRow = function(constants) {
351
+ Blockly.blockRendering.BottomRow.superClass_.constructor.call(this,
352
+ constants);
353
+ this.type |= Blockly.blockRendering.Types.BOTTOM_ROW;
354
+
355
+ /**
356
+ * Whether this row has a next connection.
357
+ * @package
358
+ * @type {boolean}
359
+ */
360
+ this.hasNextConnection = false;
361
+
362
+ /**
363
+ * The next connection on the row, if any.
364
+ * @package
365
+ * @type {Blockly.blockRendering.NextConnection}
366
+ */
367
+ this.connection = null;
368
+
369
+ /**
370
+ * The amount that the bottom of the block extends below the horizontal edge,
371
+ * e.g. because of a next connection. Must be non-negative (see #2820).
372
+ * @package
373
+ * @type {number}
374
+ */
375
+ this.descenderHeight = 0;
376
+
377
+ /**
378
+ * The Y position of the bottom edge of the block, relative to the origin
379
+ * of the block rendering.
380
+ * @type {number}
381
+ */
382
+ this.baseline = 0;
383
+ };
384
+ Blockly.utils.object.inherits(Blockly.blockRendering.BottomRow,
385
+ Blockly.blockRendering.Row);
386
+
387
+ /**
388
+ * Returns whether or not the bottom row has a left square corner.
389
+ * @param {!Blockly.BlockSvg} block The block whose bottom row this represents.
390
+ * @return {boolean} Whether or not the bottom row has a left square corner.
391
+ */
392
+ Blockly.blockRendering.BottomRow.prototype.hasLeftSquareCorner = function(
393
+ block) {
394
+ return !!block.outputConnection || !!block.getNextBlock();
395
+ };
396
+
397
+ /**
398
+ * Returns whether or not the bottom row has a right square corner.
399
+ * @param {!Blockly.BlockSvg} _block The block whose bottom row this represents.
400
+ * @return {boolean} Whether or not the bottom row has a right square corner.
401
+ */
402
+ Blockly.blockRendering.BottomRow.prototype.hasRightSquareCorner = function(
403
+ _block) {
404
+ return true;
405
+ };
406
+
407
+ /**
408
+ * @override
409
+ */
410
+ Blockly.blockRendering.BottomRow.prototype.measure = function() {
411
+ var height = 0;
412
+ var width = 0;
413
+ var descenderHeight = 0;
414
+ for (var e = 0, elem; (elem = this.elements[e]); e++) {
415
+ width += elem.width;
416
+ if (!(Blockly.blockRendering.Types.isSpacer(elem))) {
417
+ // Note: this assumes that next connections have *only* descenderHeight,
418
+ // with no height above the baseline.
419
+ if (Blockly.blockRendering.Types.isNextConnection(elem)) {
420
+ descenderHeight = Math.max(descenderHeight, elem.height);
421
+ } else {
422
+ height = Math.max(height, elem.height);
423
+ }
424
+ }
425
+ }
426
+ this.width = Math.max(this.minWidth, width);
427
+ this.height = Math.max(this.minHeight, height) + descenderHeight;
428
+ this.descenderHeight = descenderHeight;
429
+ this.widthWithConnectedBlocks = this.width;
430
+ };
431
+
432
+ /**
433
+ * @override
434
+ */
435
+ Blockly.blockRendering.BottomRow.prototype.startsWithElemSpacer = function() {
436
+ return false;
437
+ };
438
+
439
+ /**
440
+ * @override
441
+ */
442
+ Blockly.blockRendering.BottomRow.prototype.endsWithElemSpacer = function() {
443
+ return false;
444
+ };
445
+
446
+ /**
447
+ * An object containing information about a spacer between two rows.
448
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
449
+ * constants provider.
450
+ * @param {number} height The height of the spacer.
451
+ * @param {number} width The width of the spacer.
452
+ * @package
453
+ * @constructor
454
+ * @extends {Blockly.blockRendering.Row}
455
+ */
456
+ Blockly.blockRendering.SpacerRow = function(constants, height, width) {
457
+ Blockly.blockRendering.SpacerRow.superClass_.constructor.call(this,
458
+ constants);
459
+ this.type |= Blockly.blockRendering.Types.SPACER |
460
+ Blockly.blockRendering.Types.BETWEEN_ROW_SPACER;
461
+ this.width = width;
462
+ this.height = height;
463
+ this.followsStatement = false;
464
+ this.widthWithConnectedBlocks = 0;
465
+ this.elements = [
466
+ new Blockly.blockRendering.InRowSpacer(this.constants_, width)];
467
+ };
468
+ Blockly.utils.object.inherits(Blockly.blockRendering.SpacerRow,
469
+ Blockly.blockRendering.Row);
470
+
471
+ /**
472
+ * @override
473
+ */
474
+ Blockly.blockRendering.SpacerRow.prototype.measure = function() {
475
+ // NOP. Width and height were set at creation.
476
+ };
477
+
478
+ /**
479
+ * An object containing information about a row that holds one or more inputs.
480
+ * @param {!Blockly.blockRendering.ConstantProvider} constants The rendering
481
+ * constants provider.
482
+ * @package
483
+ * @constructor
484
+ * @extends {Blockly.blockRendering.Row}
485
+ */
486
+ Blockly.blockRendering.InputRow = function(constants) {
487
+ Blockly.blockRendering.InputRow.superClass_.constructor.call(this, constants);
488
+ this.type |= Blockly.blockRendering.Types.INPUT_ROW;
489
+
490
+ /**
491
+ * The total width of all blocks connected to this row.
492
+ * @type {number}
493
+ * @package
494
+ */
495
+ this.connectedBlockWidths = 0;
496
+ };
497
+ Blockly.utils.object.inherits(Blockly.blockRendering.InputRow,
498
+ Blockly.blockRendering.Row);
499
+
500
+ /**
501
+ * Inspect all subcomponents and populate all size properties on the row.
502
+ * @package
503
+ */
504
+ Blockly.blockRendering.InputRow.prototype.measure = function() {
505
+ this.width = this.minWidth;
506
+ this.height = this.minHeight;
507
+ var connectedBlockWidths = 0;
508
+ for (var e = 0, elem; (elem = this.elements[e]); e++) {
509
+ this.width += elem.width;
510
+ if (Blockly.blockRendering.Types.isInput(elem)) {
511
+ if (Blockly.blockRendering.Types.isStatementInput(elem)) {
512
+ connectedBlockWidths += elem.connectedBlockWidth;
513
+ } else if (Blockly.blockRendering.Types.isExternalInput(elem) &&
514
+ elem.connectedBlockWidth != 0) {
515
+ connectedBlockWidths += (elem.connectedBlockWidth -
516
+ elem.connectionWidth);
517
+ }
518
+ }
519
+ if (!(Blockly.blockRendering.Types.isSpacer(elem))) {
520
+ this.height = Math.max(this.height, elem.height);
521
+ }
522
+ }
523
+ this.connectedBlockWidths = connectedBlockWidths;
524
+ this.widthWithConnectedBlocks = this.width + connectedBlockWidths;
525
+ };
526
+
527
+ /**
528
+ * @override
529
+ */
530
+ Blockly.blockRendering.InputRow.prototype.endsWithElemSpacer = function() {
531
+ return !this.hasExternalInput && !this.hasStatement;
532
+ };