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,664 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2012 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @fileoverview Colour input field.
9
+ * @author fraser@google.com (Neil Fraser)
10
+ */
11
+ 'use strict';
12
+
13
+ goog.provide('Blockly.FieldColour');
14
+
15
+ goog.require('Blockly.Css');
16
+ goog.require('Blockly.DropDownDiv');
17
+ goog.require('Blockly.Events');
18
+ goog.require('Blockly.Events.BlockChange');
19
+ goog.require('Blockly.Field');
20
+ goog.require('Blockly.fieldRegistry');
21
+ goog.require('Blockly.navigation');
22
+ goog.require('Blockly.utils.aria');
23
+ goog.require('Blockly.utils.colour');
24
+ goog.require('Blockly.utils.dom');
25
+ goog.require('Blockly.utils.IdGenerator');
26
+ goog.require('Blockly.utils.KeyCodes');
27
+ goog.require('Blockly.utils.object');
28
+ goog.require('Blockly.utils.Size');
29
+
30
+
31
+ /**
32
+ * Class for a colour input field.
33
+ * @param {string=} opt_value The initial value of the field. Should be in
34
+ * '#rrggbb' format. Defaults to the first value in the default colour array.
35
+ * @param {Function=} opt_validator A function that is called to validate
36
+ * changes to the field's value. Takes in a colour string & returns a
37
+ * validated colour string ('#rrggbb' format), or null to abort the change.
38
+ * @param {Object=} opt_config A map of options used to configure the field.
39
+ * See the [field creation documentation]{@link https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/colour}
40
+ * for a list of properties this parameter supports.
41
+ * @extends {Blockly.Field}
42
+ * @constructor
43
+ */
44
+ Blockly.FieldColour = function(opt_value, opt_validator, opt_config) {
45
+ Blockly.FieldColour.superClass_.constructor.call(
46
+ this, opt_value, opt_validator, opt_config);
47
+
48
+ /**
49
+ * The field's colour picker element.
50
+ * @type {Element}
51
+ * @private
52
+ */
53
+ this.picker_ = null;
54
+
55
+ /**
56
+ * Index of the currently highlighted element.
57
+ * @type {?number}
58
+ * @private
59
+ */
60
+ this.highlightedIndex_ = null;
61
+
62
+ /**
63
+ * Mouse click event data.
64
+ * @type {?Blockly.EventData}
65
+ * @private
66
+ */
67
+ this.onClickWrapper_ = null;
68
+
69
+ /**
70
+ * Mouse move event data.
71
+ * @type {?Blockly.EventData}
72
+ * @private
73
+ */
74
+ this.onMouseMoveWrapper_ = null;
75
+
76
+ /**
77
+ * Mouse enter event data.
78
+ * @type {?Blockly.EventData}
79
+ * @private
80
+ */
81
+ this.onMouseEnterWrapper_ = null;
82
+
83
+ /**
84
+ * Mouse leave event data.
85
+ * @type {?Blockly.EventData}
86
+ * @private
87
+ */
88
+ this.onMouseLeaveWrapper_ = null;
89
+
90
+ /**
91
+ * Key down event data.
92
+ * @type {?Blockly.EventData}
93
+ * @private
94
+ */
95
+ this.onKeyDownWrapper_ = null;
96
+ };
97
+ Blockly.utils.object.inherits(Blockly.FieldColour, Blockly.Field);
98
+
99
+ /**
100
+ * Construct a FieldColour from a JSON arg object.
101
+ * @param {!Object} options A JSON object with options (colour).
102
+ * @return {!Blockly.FieldColour} The new field instance.
103
+ * @package
104
+ * @nocollapse
105
+ */
106
+ Blockly.FieldColour.fromJson = function(options) {
107
+ return new Blockly.FieldColour(options['colour'], undefined, options);
108
+ };
109
+
110
+ /**
111
+ * Serializable fields are saved by the XML renderer, non-serializable fields
112
+ * are not. Editable fields should also be serializable.
113
+ * @type {boolean}
114
+ */
115
+ Blockly.FieldColour.prototype.SERIALIZABLE = true;
116
+
117
+ /**
118
+ * Mouse cursor style when over the hotspot that initiates the editor.
119
+ */
120
+ Blockly.FieldColour.prototype.CURSOR = 'default';
121
+
122
+ /**
123
+ * Used to tell if the field needs to be rendered the next time the block is
124
+ * rendered. Colour fields are statically sized, and only need to be
125
+ * rendered at initialization.
126
+ * @type {boolean}
127
+ * @protected
128
+ */
129
+ Blockly.FieldColour.prototype.isDirty_ = false;
130
+
131
+ /**
132
+ * Array of colours used by this field. If null, use the global list.
133
+ * @type {Array.<string>}
134
+ * @private
135
+ */
136
+ Blockly.FieldColour.prototype.colours_ = null;
137
+
138
+ /**
139
+ * Array of colour tooltips used by this field. If null, use the global list.
140
+ * @type {Array.<string>}
141
+ * @private
142
+ */
143
+ Blockly.FieldColour.prototype.titles_ = null;
144
+
145
+ /**
146
+ * Number of colour columns used by this field. If 0, use the global setting.
147
+ * By default use the global constants for columns.
148
+ * @type {number}
149
+ * @private
150
+ */
151
+ Blockly.FieldColour.prototype.columns_ = 0;
152
+
153
+ /**
154
+ * Configure the field based on the given map of options.
155
+ * @param {!Object} config A map of options to configure the field based on.
156
+ * @private
157
+ */
158
+ Blockly.FieldColour.prototype.configure_ = function(config) {
159
+ Blockly.FieldColour.superClass_.configure_.call(this, config);
160
+ if (config['colourOptions']) {
161
+ this.colours_ = config['colourOptions'];
162
+ this.titles_ = config['colourTitles'];
163
+ }
164
+ if (config['columns']) {
165
+ this.columns_ = config['columns'];
166
+ }
167
+ };
168
+
169
+ /**
170
+ * Create the block UI for this colour field.
171
+ * @package
172
+ */
173
+ Blockly.FieldColour.prototype.initView = function() {
174
+ this.size_ = new Blockly.utils.Size(
175
+ this.getConstants().FIELD_COLOUR_DEFAULT_WIDTH,
176
+ this.getConstants().FIELD_COLOUR_DEFAULT_HEIGHT);
177
+ if (!this.getConstants().FIELD_COLOUR_FULL_BLOCK) {
178
+ this.createBorderRect_();
179
+ this.borderRect_.style['fillOpacity'] = '1';
180
+ } else {
181
+ this.clickTarget_ = this.sourceBlock_.getSvgRoot();
182
+ }
183
+ };
184
+
185
+ /**
186
+ * @override
187
+ */
188
+ Blockly.FieldColour.prototype.applyColour = function() {
189
+ if (!this.getConstants().FIELD_COLOUR_FULL_BLOCK) {
190
+ if (this.borderRect_) {
191
+ this.borderRect_.style.fill = this.getValue();
192
+ }
193
+ } else {
194
+ this.sourceBlock_.pathObject.svgPath.setAttribute('fill', this.getValue());
195
+ this.sourceBlock_.pathObject.svgPath.setAttribute('stroke', '#fff');
196
+ }
197
+ };
198
+
199
+ /**
200
+ * Ensure that the input value is a valid colour.
201
+ * @param {*=} opt_newValue The input value.
202
+ * @return {?string} A valid colour, or null if invalid.
203
+ * @protected
204
+ */
205
+ Blockly.FieldColour.prototype.doClassValidation_ = function(opt_newValue) {
206
+ if (typeof opt_newValue != 'string') {
207
+ return null;
208
+ }
209
+ return Blockly.utils.colour.parse(opt_newValue);
210
+ };
211
+
212
+ /**
213
+ * Update the value of this colour field, and update the displayed colour.
214
+ * @param {*} newValue The value to be saved. The default validator guarantees
215
+ * that this is a colour in '#rrggbb' format.
216
+ * @protected
217
+ */
218
+ Blockly.FieldColour.prototype.doValueUpdate_ = function(newValue) {
219
+ this.value_ = newValue;
220
+ if (this.borderRect_) {
221
+ this.borderRect_.style.fill = newValue;
222
+ } else if (this.sourceBlock_ && this.sourceBlock_.rendered) {
223
+ this.sourceBlock_.pathObject.svgPath.setAttribute('fill', newValue);
224
+ this.sourceBlock_.pathObject.svgPath.setAttribute('stroke', '#fff');
225
+ }
226
+ };
227
+
228
+ /**
229
+ * Get the text for this field. Used when the block is collapsed.
230
+ * @return {string} Text representing the value of this field.
231
+ */
232
+ Blockly.FieldColour.prototype.getText = function() {
233
+ var colour = /** @type {string} */ (this.value_);
234
+ // Try to use #rgb format if possible, rather than #rrggbb.
235
+ if (/^#(.)\1(.)\2(.)\3$/.test(colour)) {
236
+ colour = '#' + colour[1] + colour[3] + colour[5];
237
+ }
238
+ return colour;
239
+ };
240
+
241
+ /**
242
+ * An array of colour strings for the palette.
243
+ * Copied from goog.ui.ColorPicker.SIMPLE_GRID_COLORS
244
+ * All colour pickers use this unless overridden with setColours.
245
+ * @type {!Array.<string>}
246
+ */
247
+ Blockly.FieldColour.COLOURS = [
248
+ // grays
249
+ '#ffffff', '#cccccc', '#c0c0c0', '#999999', '#666666', '#333333', '#000000',
250
+ // reds
251
+ '#ffcccc', '#ff6666', '#ff0000', '#cc0000', '#990000', '#660000', '#330000',
252
+ // oranges
253
+ '#ffcc99', '#ff9966', '#ff9900', '#ff6600', '#cc6600', '#993300', '#663300',
254
+ // yellows
255
+ '#ffff99', '#ffff66', '#ffcc66', '#ffcc33', '#cc9933', '#996633', '#663333',
256
+ // olives
257
+ '#ffffcc', '#ffff33', '#ffff00', '#ffcc00', '#999900', '#666600', '#333300',
258
+ // greens
259
+ '#99ff99', '#66ff99', '#33ff33', '#33cc00', '#009900', '#006600', '#003300',
260
+ // turquoises
261
+ '#99ffff', '#33ffff', '#66cccc', '#00cccc', '#339999', '#336666', '#003333',
262
+ // blues
263
+ '#ccffff', '#66ffff', '#33ccff', '#3366ff', '#3333ff', '#000099', '#000066',
264
+ // purples
265
+ '#ccccff', '#9999ff', '#6666cc', '#6633ff', '#6600cc', '#333399', '#330099',
266
+ // violets
267
+ '#ffccff', '#ff99ff', '#cc66cc', '#cc33cc', '#993399', '#663366', '#330033'
268
+ ];
269
+
270
+ /**
271
+ * The default value for this field.
272
+ * @type {*}
273
+ * @protected
274
+ */
275
+ Blockly.FieldColour.prototype.DEFAULT_VALUE = Blockly.FieldColour.COLOURS[0];
276
+
277
+ /**
278
+ * An array of tooltip strings for the palette. If not the same length as
279
+ * COLOURS, the colour's hex code will be used for any missing titles.
280
+ * All colour pickers use this unless overridden with setColours.
281
+ * @type {!Array.<string>}
282
+ */
283
+ Blockly.FieldColour.TITLES = [];
284
+
285
+ /**
286
+ * Number of columns in the palette.
287
+ * All colour pickers use this unless overridden with setColumns.
288
+ */
289
+ Blockly.FieldColour.COLUMNS = 7;
290
+
291
+ /**
292
+ * Set a custom colour grid for this field.
293
+ * @param {Array.<string>} colours Array of colours for this block,
294
+ * or null to use default (Blockly.FieldColour.COLOURS).
295
+ * @param {Array.<string>=} opt_titles Optional array of colour tooltips,
296
+ * or null to use default (Blockly.FieldColour.TITLES).
297
+ * @return {!Blockly.FieldColour} Returns itself (for method chaining).
298
+ */
299
+ Blockly.FieldColour.prototype.setColours = function(colours, opt_titles) {
300
+ this.colours_ = colours;
301
+ if (opt_titles) {
302
+ this.titles_ = opt_titles;
303
+ }
304
+ return this;
305
+ };
306
+
307
+ /**
308
+ * Set a custom grid size for this field.
309
+ * @param {number} columns Number of columns for this block,
310
+ * or 0 to use default (Blockly.FieldColour.COLUMNS).
311
+ * @return {!Blockly.FieldColour} Returns itself (for method chaining).
312
+ */
313
+ Blockly.FieldColour.prototype.setColumns = function(columns) {
314
+ this.columns_ = columns;
315
+ return this;
316
+ };
317
+
318
+ /**
319
+ * Create and show the colour field's editor.
320
+ * @protected
321
+ */
322
+ Blockly.FieldColour.prototype.showEditor_ = function() {
323
+ this.picker_ = this.dropdownCreate_();
324
+ Blockly.DropDownDiv.getContentDiv().appendChild(this.picker_);
325
+
326
+ Blockly.DropDownDiv.showPositionedByField(
327
+ this, this.dropdownDispose_.bind(this));
328
+
329
+ // Focus so we can start receiving keyboard events.
330
+ this.picker_.focus({preventScroll:true});
331
+ };
332
+
333
+ /**
334
+ * Handle a click on a colour cell.
335
+ * @param {!MouseEvent} e Mouse event.
336
+ * @private
337
+ */
338
+ Blockly.FieldColour.prototype.onClick_ = function(e) {
339
+ var cell = /** @type {!Element} */ (e.target);
340
+ var colour = cell && cell.label;
341
+ if (colour !== null) {
342
+ this.setValue(colour);
343
+ Blockly.DropDownDiv.hideIfOwner(this);
344
+ }
345
+ };
346
+
347
+ /**
348
+ * Handle a key down event. Navigate around the grid with the
349
+ * arrow keys. Enter selects the highlighted colour.
350
+ * @param {!KeyboardEvent} e Keyboard event.
351
+ * @private
352
+ */
353
+ Blockly.FieldColour.prototype.onKeyDown_ = function(e) {
354
+ var handled = false;
355
+ if (e.keyCode === Blockly.utils.KeyCodes.UP) {
356
+ this.moveHighlightBy_(0, -1);
357
+ handled = true;
358
+ } else if (e.keyCode === Blockly.utils.KeyCodes.DOWN) {
359
+ this.moveHighlightBy_(0, 1);
360
+ handled = true;
361
+ } else if (e.keyCode === Blockly.utils.KeyCodes.LEFT) {
362
+ this.moveHighlightBy_(-1, 0);
363
+ handled = true;
364
+ } else if (e.keyCode === Blockly.utils.KeyCodes.RIGHT) {
365
+ this.moveHighlightBy_(1, 0);
366
+ handled = true;
367
+ } else if (e.keyCode === Blockly.utils.KeyCodes.ENTER) {
368
+ // Select the highlighted colour.
369
+ var highlighted = this.getHighlighted_();
370
+ if (highlighted) {
371
+ var colour = highlighted && highlighted.label;
372
+ if (colour !== null) {
373
+ this.setValue(colour);
374
+ }
375
+ }
376
+ Blockly.DropDownDiv.hideWithoutAnimation();
377
+ handled = true;
378
+ }
379
+ if (handled) {
380
+ e.stopPropagation();
381
+ }
382
+ };
383
+
384
+ /**
385
+ * Handles the given action.
386
+ * This is only triggered when keyboard accessibility mode is enabled.
387
+ * @param {!Blockly.Action} action The action to be handled.
388
+ * @return {boolean} True if the field handled the action, false otherwise.
389
+ * @package
390
+ */
391
+ Blockly.FieldColour.prototype.onBlocklyAction = function(action) {
392
+ if (this.picker_) {
393
+ if (action === Blockly.navigation.ACTION_PREVIOUS) {
394
+ this.moveHighlightBy_(0, -1);
395
+ return true;
396
+ } else if (action === Blockly.navigation.ACTION_NEXT) {
397
+ this.moveHighlightBy_(0, 1);
398
+ return true;
399
+ } else if (action === Blockly.navigation.ACTION_OUT) {
400
+ this.moveHighlightBy_(-1, 0);
401
+ return true;
402
+ } else if (action === Blockly.navigation.ACTION_IN) {
403
+ this.moveHighlightBy_(1, 0);
404
+ return true;
405
+ }
406
+ }
407
+ return Blockly.FieldColour.superClass_.onBlocklyAction.call(this, action);
408
+ };
409
+
410
+ /**
411
+ * Move the currently highlighted position by dx and dy.
412
+ * @param {number} dx Change of x
413
+ * @param {number} dy Change of y
414
+ * @private
415
+ */
416
+ Blockly.FieldColour.prototype.moveHighlightBy_ = function(dx, dy) {
417
+ var colours = this.colours_ || Blockly.FieldColour.COLOURS;
418
+ var columns = this.columns_ || Blockly.FieldColour.COLUMNS;
419
+
420
+ // Get the current x and y coordinates
421
+ var x = this.highlightedIndex_ % columns;
422
+ var y = Math.floor(this.highlightedIndex_ / columns);
423
+
424
+ // Add the offset
425
+ x += dx;
426
+ y += dy;
427
+
428
+ if (dx < 0) {
429
+ // Move left one grid cell, even in RTL.
430
+ // Loop back to the end of the previous row if we have room.
431
+ if (x < 0 && y > 0) {
432
+ x = columns - 1;
433
+ y--;
434
+ } else if (x < 0) {
435
+ x = 0;
436
+ }
437
+ } else if (dx > 0) {
438
+ // Move right one grid cell, even in RTL.
439
+ // Loop to the start of the next row, if there's room.
440
+ if (x > columns - 1 &&
441
+ y < Math.floor(colours.length / columns) - 1) {
442
+ x = 0;
443
+ y++;
444
+ } else if (x > columns - 1) {
445
+ x--;
446
+ }
447
+ } else if (dy < 0) {
448
+ // Move up one grid cell, stop at the top.
449
+ if (y < 0) {
450
+ y = 0;
451
+ }
452
+ } else if (dy > 0) {
453
+ // Move down one grid cell, stop at the bottom.
454
+ if (y > Math.floor(colours.length / columns) - 1) {
455
+ y = Math.floor(colours.length / columns) - 1;
456
+ }
457
+ }
458
+
459
+ // Move the highlight to the new coordinates.
460
+ var cell = /** @type {!Element} */ (this.picker_.childNodes[y].childNodes[x]);
461
+ var index = (y * columns) + x;
462
+ this.setHighlightedCell_(cell, index);
463
+ };
464
+
465
+ /**
466
+ * Handle a mouse move event. Highlight the hovered colour.
467
+ * @param {!MouseEvent} e Mouse event.
468
+ * @private
469
+ */
470
+ Blockly.FieldColour.prototype.onMouseMove_ = function(e) {
471
+ var cell = /** @type {!Element} */ (e.target);
472
+ var index = cell && Number(cell.getAttribute('data-index'));
473
+ if (index !== null && index !== this.highlightedIndex_) {
474
+ this.setHighlightedCell_(cell, index);
475
+ }
476
+ };
477
+
478
+ /**
479
+ * Handle a mouse enter event. Focus the picker.
480
+ * @private
481
+ */
482
+ Blockly.FieldColour.prototype.onMouseEnter_ = function() {
483
+ this.picker_.focus({preventScroll:true});
484
+ };
485
+
486
+ /**
487
+ * Handle a mouse leave event. Blur the picker and unhighlight
488
+ * the currently highlighted colour.
489
+ * @private
490
+ */
491
+ Blockly.FieldColour.prototype.onMouseLeave_ = function() {
492
+ this.picker_.blur();
493
+ var highlighted = this.getHighlighted_();
494
+ if (highlighted) {
495
+ Blockly.utils.dom.removeClass(highlighted, 'blocklyColourHighlighted');
496
+ }
497
+ };
498
+
499
+ /**
500
+ * Returns the currently highlighted item (if any).
501
+ * @return {HTMLElement} Highlighted item (null if none).
502
+ * @private
503
+ */
504
+ Blockly.FieldColour.prototype.getHighlighted_ = function() {
505
+ var columns = this.columns_ || Blockly.FieldColour.COLUMNS;
506
+ var x = this.highlightedIndex_ % columns;
507
+ var y = Math.floor(this.highlightedIndex_ / columns);
508
+ var row = this.picker_.childNodes[y];
509
+ if (!row) {
510
+ return null;
511
+ }
512
+ var col = /** @type {HTMLElement} */ (row.childNodes[x]);
513
+ return col;
514
+ };
515
+
516
+ /**
517
+ * Update the currently highlighted cell.
518
+ * @param {!Element} cell the new cell to highlight
519
+ * @param {number} index the index of the new cell
520
+ * @private
521
+ */
522
+ Blockly.FieldColour.prototype.setHighlightedCell_ = function(cell, index) {
523
+ // Unhighlight the current item.
524
+ var highlighted = this.getHighlighted_();
525
+ if (highlighted) {
526
+ Blockly.utils.dom.removeClass(highlighted, 'blocklyColourHighlighted');
527
+ }
528
+ // Highlight new item.
529
+ Blockly.utils.dom.addClass(cell, 'blocklyColourHighlighted');
530
+ // Set new highlighted index.
531
+ this.highlightedIndex_ = index;
532
+
533
+ // Update accessibility roles.
534
+ Blockly.utils.aria.setState(/** @type {!Element} */ (this.picker_),
535
+ Blockly.utils.aria.State.ACTIVEDESCENDANT, cell.getAttribute('id'));
536
+ };
537
+
538
+ /**
539
+ * Create a colour picker dropdown editor.
540
+ * @return {!Element} The newly created colour picker.
541
+ * @private
542
+ */
543
+ Blockly.FieldColour.prototype.dropdownCreate_ = function() {
544
+ var columns = this.columns_ || Blockly.FieldColour.COLUMNS;
545
+ var colours = this.colours_ || Blockly.FieldColour.COLOURS;
546
+ var titles = this.titles_ || Blockly.FieldColour.TITLES;
547
+ var selectedColour = this.getValue();
548
+ // Create the palette.
549
+ var table = document.createElement('table');
550
+ table.className = 'blocklyColourTable';
551
+ table.tabIndex = 0;
552
+ table.dir = 'ltr';
553
+ Blockly.utils.aria.setRole(table, Blockly.utils.aria.Role.GRID);
554
+ Blockly.utils.aria.setState(table, Blockly.utils.aria.State.EXPANDED, true);
555
+ Blockly.utils.aria.setState(table, Blockly.utils.aria.State.ROWCOUNT,
556
+ Math.floor(colours.length / columns));
557
+ Blockly.utils.aria.setState(table, Blockly.utils.aria.State.COLCOUNT,
558
+ columns);
559
+ var row;
560
+ for (var i = 0; i < colours.length; i++) {
561
+ if (i % columns == 0) {
562
+ row = document.createElement('tr');
563
+ Blockly.utils.aria.setRole(row, Blockly.utils.aria.Role.ROW);
564
+ table.appendChild(row);
565
+ }
566
+ var cell = document.createElement('td');
567
+ row.appendChild(cell);
568
+ cell.label = colours[i]; // This becomes the value, if clicked.
569
+ cell.title = titles[i] || colours[i];
570
+ cell.id = Blockly.utils.IdGenerator.getNextUniqueId();
571
+ cell.setAttribute('data-index', i);
572
+ Blockly.utils.aria.setRole(cell, Blockly.utils.aria.Role.GRIDCELL);
573
+ Blockly.utils.aria.setState(cell,
574
+ Blockly.utils.aria.State.LABEL, colours[i]);
575
+ Blockly.utils.aria.setState(cell,
576
+ Blockly.utils.aria.State.SELECTED, colours[i] == selectedColour);
577
+ cell.style.backgroundColor = colours[i];
578
+ if (colours[i] == selectedColour) {
579
+ cell.className = 'blocklyColourSelected';
580
+ this.highlightedIndex_ = i;
581
+ }
582
+ }
583
+
584
+ // Configure event handler on the table to listen for any event in a cell.
585
+ this.onClickWrapper_ = Blockly.bindEventWithChecks_(table,
586
+ 'click', this, this.onClick_, true);
587
+ this.onMouseMoveWrapper_ = Blockly.bindEventWithChecks_(table,
588
+ 'mousemove', this, this.onMouseMove_, true);
589
+ this.onMouseEnterWrapper_ = Blockly.bindEventWithChecks_(table,
590
+ 'mouseenter', this, this.onMouseEnter_, true);
591
+ this.onMouseLeaveWrapper_ = Blockly.bindEventWithChecks_(table,
592
+ 'mouseleave', this, this.onMouseLeave_, true);
593
+ this.onKeyDownWrapper_ = Blockly.bindEventWithChecks_(table,
594
+ 'keydown', this, this.onKeyDown_);
595
+
596
+ return table;
597
+ };
598
+
599
+ /**
600
+ * Disposes of events and dom-references belonging to the colour editor.
601
+ * @private
602
+ */
603
+ Blockly.FieldColour.prototype.dropdownDispose_ = function() {
604
+ if (this.onClickWrapper_) {
605
+ Blockly.unbindEvent_(this.onClickWrapper_);
606
+ this.onClickWrapper_ = null;
607
+ }
608
+ if (this.onMouseMoveWrapper_) {
609
+ Blockly.unbindEvent_(this.onMouseMoveWrapper_);
610
+ this.onMouseMoveWrapper_ = null;
611
+ }
612
+ if (this.onMouseEnterWrapper_) {
613
+ Blockly.unbindEvent_(this.onMouseEnterWrapper_);
614
+ this.onMouseEnterWrapper_ = null;
615
+ }
616
+ if (this.onMouseLeaveWrapper_) {
617
+ Blockly.unbindEvent_(this.onMouseLeaveWrapper_);
618
+ this.onMouseLeaveWrapper_ = null;
619
+ }
620
+ if (this.onKeyDownWrapper_) {
621
+ Blockly.unbindEvent_(this.onKeyDownWrapper_);
622
+ this.onKeyDownWrapper_ = null;
623
+ }
624
+ this.picker_ = null;
625
+ this.highlightedIndex_ = null;
626
+ };
627
+
628
+ /**
629
+ * CSS for colour picker. See css.js for use.
630
+ */
631
+ Blockly.Css.register([
632
+ /* eslint-disable indent */
633
+ '.blocklyColourTable {',
634
+ 'border-collapse: collapse;',
635
+ 'display: block;',
636
+ 'outline: none;',
637
+ 'padding: 1px;',
638
+ '}',
639
+
640
+ '.blocklyColourTable>tr>td {',
641
+ 'border: .5px solid #888;',
642
+ 'box-sizing: border-box;',
643
+ 'cursor: pointer;',
644
+ 'display: inline-block;',
645
+ 'height: 20px;',
646
+ 'padding: 0;',
647
+ 'width: 20px;',
648
+ '}',
649
+
650
+ '.blocklyColourTable>tr>td.blocklyColourHighlighted {',
651
+ 'border-color: #eee;',
652
+ 'box-shadow: 2px 2px 7px 2px rgba(0,0,0,.3);',
653
+ 'position: relative;',
654
+ '}',
655
+
656
+ '.blocklyColourSelected, .blocklyColourSelected:hover {',
657
+ 'border-color: #eee !important;',
658
+ 'outline: 1px solid #333;',
659
+ 'position: relative;',
660
+ '}'
661
+ /* eslint-enable indent */
662
+ ]);
663
+
664
+ Blockly.fieldRegistry.register('field_colour', Blockly.FieldColour);