mirror of
https://github.com/google/blockly.git
synced 2026-01-11 19:07:08 +01:00
Add JSON definition for test blocks (#3901)
* Add JSON definition for test blocks
This commit is contained in:
@@ -67,6 +67,7 @@
|
||||
<script src="blocks/test_blocks.js"></script>
|
||||
<script src="themes/test_themes.js"></script>
|
||||
<script src="./playgrounds/screenshot.js"></script>
|
||||
<script src="./playgrounds/test_blocks_toolbox.js"></script>
|
||||
|
||||
<script>
|
||||
// Custom requires for the playground.
|
||||
@@ -95,14 +96,7 @@ function start() {
|
||||
var rtl = match && match[1] == 'rtl';
|
||||
document.forms.options.elements.dir.selectedIndex = Number(rtl);
|
||||
var toolbox = getToolboxElement();
|
||||
var toolboxNames = [
|
||||
'toolbox-categories',
|
||||
'toolbox-categories-typed-variables',
|
||||
'toolbox-simple',
|
||||
'toolbox-test-blocks'
|
||||
];
|
||||
document.forms.options.elements.toolbox.selectedIndex =
|
||||
toolboxNames.indexOf(toolbox.id);
|
||||
setToolboxDropdown();
|
||||
match = location.search.match(/side=([^&]+)/);
|
||||
var autoimport = !!location.search.match(/autoimport=([^&]+)/);
|
||||
// Create main workspace.
|
||||
@@ -295,16 +289,36 @@ function setBackgroundColour() {
|
||||
}
|
||||
}
|
||||
|
||||
function getToolboxElement() {
|
||||
function getToolboxSuffix() {
|
||||
var match = location.search.match(/toolbox=([^&]+)/);
|
||||
// Default to the basic toolbox with categories and untyped variables,
|
||||
// but override that if the toolbox type is set in the URL.
|
||||
var toolboxSuffix = (match ? match[1] : 'categories');
|
||||
// The three possible values are: "simple", "categories",
|
||||
// "categories-typed-variables".
|
||||
return (match ? match[1] : 'categories');
|
||||
}
|
||||
|
||||
function getToolboxElement() {
|
||||
// The four possible values are: "simple", "categories",
|
||||
// "categories-typed-variables", and "test-blocks".
|
||||
var toolboxSuffix = getToolboxSuffix();
|
||||
// test-blocks are defined in JSON
|
||||
if (toolboxSuffix == 'test-blocks') {
|
||||
return testBlocksToolbox;
|
||||
}
|
||||
return document.getElementById('toolbox-' + toolboxSuffix);
|
||||
}
|
||||
|
||||
function setToolboxDropdown() {
|
||||
var toolboxNames = [
|
||||
'toolbox-categories',
|
||||
'toolbox-categories-typed-variables',
|
||||
'toolbox-simple',
|
||||
'toolbox-test-blocks'
|
||||
];
|
||||
var toolboxSuffix = getToolboxSuffix();
|
||||
document.forms.options.elements.toolbox.selectedIndex =
|
||||
toolboxNames.indexOf('toolbox-' + toolboxSuffix);
|
||||
}
|
||||
|
||||
function toXml() {
|
||||
var output = document.getElementById('importExport');
|
||||
var xml = Blockly.Xml.workspaceToDom(workspace);
|
||||
@@ -1282,362 +1296,5 @@ var spaghettiXml = [
|
||||
<category name="Variables" categorystyle="variable_category" custom="VARIABLE_DYNAMIC"></category>
|
||||
<category name="Functions" categorystyle="procedure_category" custom="PROCEDURE"></category>
|
||||
</xml>
|
||||
|
||||
<!-- toolbox-test-blocks has a category menu and an auto-closing flyout.
|
||||
The blocks in this toolbox reflect block configurations not used by
|
||||
the standard predefined blocks, and so test alternative block rendering
|
||||
code paths. -->
|
||||
<xml xmlns="https://developers.google.com/blockly/xml" id="toolbox-test-blocks" style="display: none">
|
||||
<category name="Align">
|
||||
<block type="test_align_dummy_right"></block>
|
||||
<block type="test_align_all"></block>
|
||||
<block type="test_align_with_external_input"></block>
|
||||
</category>
|
||||
<category name="Basic">
|
||||
<block type="test_basic_empty"></block>
|
||||
<block type="test_basic_empty_with_mutator"></block>
|
||||
<block type="test_basic_dummy"></block>
|
||||
<block type="test_basic_multiple_dummy"></block>
|
||||
<block type="test_basic_stack"></block>
|
||||
<block type="test_basic_row"></block>
|
||||
<block type="test_basic_value_to_stack"></block>
|
||||
<block type="test_basic_value_to_statement"></block>
|
||||
<block type="test_basic_limit_instances"></block>
|
||||
<block type="test_basic_tooltips"></block>
|
||||
<block type="test_basic_javascript"></block>
|
||||
</category>
|
||||
<category name="Connections" expanded="true">
|
||||
<category name="Row">
|
||||
<label text="blocks have"></label>
|
||||
<sep gap="-1"></sep>
|
||||
<label text="tooltips"></label>
|
||||
|
||||
<button text="insert" callbackkey="insertConnectionRows"></button>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_row_input"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_row_blue"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_row_yellow"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_row_red"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_row_output"></block>
|
||||
<block type="test_connections_row_yellow">
|
||||
<value name="NAME">
|
||||
<block type="test_connections_row_yellow" movable="false"></block>
|
||||
</value>
|
||||
</block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_multivalue_1valid"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_multivalue_2valid"></block>
|
||||
</category>
|
||||
<category name="Stack">
|
||||
<label text="blocks have"></label>
|
||||
<sep gap="-1"></sep>
|
||||
<label text="tooltips"></label>
|
||||
|
||||
<button text="insert" callbackkey="insertConnectionStacks"></button>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_stack_next"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_stack_blue"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_stack_yellow"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_stack_red"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_stack_prev"></block>
|
||||
<block type="test_connections_stack_yellow">
|
||||
<next>
|
||||
<block type="test_connections_stack_yellow" movable="false"></block>
|
||||
</next>
|
||||
</block>
|
||||
</category>
|
||||
<category name="Statement">
|
||||
<label text="blocks have"></label>
|
||||
<sep gap="-1"></sep>
|
||||
<label text="tooltips"></label>
|
||||
|
||||
<button text="insert" callbackkey="insertConnectionStatements"></button>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_statement_blue"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_statement_yellow"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_statement_red"></block>
|
||||
<block type="test_connections_statement_nonext"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_multistatement_1valid"></block>
|
||||
<sep gap="7"></sep>
|
||||
<block type="test_connections_multistatement_2valid"></block>
|
||||
</category>
|
||||
</category>
|
||||
<category name="Drag">
|
||||
<label text="Drag each to the workspace"></label>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<block type="text">
|
||||
<field name="TEXT">Drag me by this child</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Drag me by this shadow</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Shadow value</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<next>
|
||||
<shadow type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Shadow statement</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</shadow>
|
||||
</next>
|
||||
</block>
|
||||
<label text="Multiple Variable Refs"></label>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" id="item">item</field>
|
||||
</block>
|
||||
</value>
|
||||
<next>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<block type="variables_get">
|
||||
<field name="VAR" id="item">item</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
</next>
|
||||
</block>
|
||||
<label text="Procedure Definitions"></label>
|
||||
<block type="procedures_defnoreturn">
|
||||
<field name="NAME">without arguments</field>
|
||||
<statement name="STACK">
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">No argument reference.</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
</statement>
|
||||
</block>
|
||||
<block type="procedures_defnoreturn">
|
||||
<mutation>
|
||||
<arg name="fnArgument"></arg>
|
||||
</mutation>
|
||||
<field name="NAME">with one argument</field>
|
||||
<statement name="STACK">
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">Expected an argument reference here.</field>
|
||||
</shadow>
|
||||
<block type="variables_get">
|
||||
<field name="VAR">fnArgument</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
</statement>
|
||||
</block>
|
||||
</category>
|
||||
<category name="Fields" expanded="true">
|
||||
<category name="Defaults">
|
||||
<button text="add blocks to workspace" callbackKey="addAllBlocksToWorkspace"></button>
|
||||
<sep gap="8"></sep>
|
||||
<button text="set random style" callbackKey="setRandomStyle"></button>
|
||||
<sep gap="8"></sep>
|
||||
<button text="toggle enabled" callbackKey="toggleEnabled"></button>
|
||||
<sep gap="8"></sep>
|
||||
<button text="toggle shadow" callbackKey="toggleShadow"></button>
|
||||
<sep gap="8"></sep>
|
||||
<button text="toggle collapsed" callbackKey="toggleCollapsed"></button>
|
||||
<block type="test_fields_angle"></block>
|
||||
<block type="test_fields_checkbox"></block>
|
||||
<block type="test_fields_colour"></block>
|
||||
<block type="test_fields_colour_options"></block>
|
||||
<block type="test_fields_text_input"></block>
|
||||
<block type="test_fields_only_text_input"></block>
|
||||
<block type="test_fields_multilinetext"></block>
|
||||
<block type="test_fields_variable"></block>
|
||||
<button text="randomize label text" callbackKey="randomizeLabelText"></button>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_fields_label_serializable"></block>
|
||||
<button text="change image" callbackKey="changeImage"></button>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_fields_image"></block>
|
||||
</category>
|
||||
<category name="Numbers">
|
||||
<block type="test_numbers_float">
|
||||
<field name="NUM">123.456</field>
|
||||
</block>
|
||||
<block type="test_numbers_hundredths">
|
||||
<field name="NUM">123.456</field>
|
||||
</block>
|
||||
<block type="test_numbers_halves">
|
||||
<field name="NUM">123.456</field>
|
||||
</block>
|
||||
<block type="test_numbers_whole">
|
||||
<field name="NUM">123.456</field>
|
||||
</block>
|
||||
<block type="test_numbers_three_halves">
|
||||
<field name="NUM">123.456</field>
|
||||
</block>
|
||||
<block type="test_numbers_whole_bounded">
|
||||
<field name="NOTE">60</field>
|
||||
</block>
|
||||
</category>
|
||||
<category name="Angles">
|
||||
<block type="test_angles_clockwise"></block>
|
||||
<block type="test_angles_offset"></block>
|
||||
<block type="test_angles_wrap"></block>
|
||||
<block type="test_angles_round_30"></block>
|
||||
<block type="test_angles_round_0"></block>
|
||||
<block type="test_angles_protractor"></block>
|
||||
<block type="test_angles_compass"></block>
|
||||
</category>
|
||||
<category name="Drop-downs">
|
||||
<label text="Dynamic"></label>
|
||||
<block type="test_dropdowns_dynamic"></block>
|
||||
<button text="Add option" callbackKey="addDynamicOption"></button>
|
||||
<button text="Remove option" callbackKey="removeDynamicOption"></button>
|
||||
<block type="test_dropdowns_dynamic_random"></block>
|
||||
<label text="Other"></label>
|
||||
<block type="test_dropdowns_long"></block>
|
||||
<block type="test_dropdowns_images"></block>
|
||||
<block type="test_dropdowns_images_and_text"></block>
|
||||
</category>
|
||||
<category name="Images">
|
||||
<block type="test_images_datauri"></block>
|
||||
<block type="test_images_small"></block>
|
||||
<block type="test_images_large"></block>
|
||||
<block type="test_images_fliprtl"></block>
|
||||
<block type="test_images_missing"></block>
|
||||
<block type="test_images_many_icons"></block>
|
||||
<block type="test_images_clickhandler"></block>
|
||||
</category>
|
||||
<category name="Emoji! o((*^ᴗ^*))o">
|
||||
<label text="Unicode & Emojis"></label>
|
||||
<block type="test_style_emoji"></block>
|
||||
<block type="text">
|
||||
<field name="TEXT">Robot face in text field: 🤖</field>
|
||||
</block>
|
||||
<block type="text">
|
||||
<field name="TEXT">Zalgo in text field: B̛̻̦̬̘̰͎̥̈̔͊͞ͅl̡͖̫̺̬̖̣̳̃̀́͑͑̕͟͠͝o̢̹͙̮̫͔͋̉̊̑̿̽̚c̸̹̹̜͙̹̠͋̒͑̊̇͝k̡͉̫͇̖̳͖̊͒́̆̄̎̂̔̕͜͞l̰̙̞̳̩̠͖̯̀̆̈́̿̈̓͗y̨̡̟͇̮͈̬̙̲̏̅̀͘͠</field>
|
||||
</block>
|
||||
</category>
|
||||
<category name="Validators">
|
||||
<button text="add blocks to workspace" callbackKey="addAllBlocksToWorkspace"></button>
|
||||
<sep gap="8"></sep>
|
||||
<button text="set input" callbackKey="setInput"></button>
|
||||
<label text="Dispose block"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_dispose_block"></block>
|
||||
<label text="Angles"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_angle_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_angle_mult30_force"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_angle_mult30_null"></block>
|
||||
<label text="Checkboxes"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_checkbox_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_checkbox_match"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_checkbox_not_match_null"></block>
|
||||
<label text="Colours"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_colour_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_colour_force_red"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_colour_red_null"></block>
|
||||
<label text="Dropdowns"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_dropdown_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_dropdown_force_1s"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_dropdown_1s_null"></block>
|
||||
<label text="Numbers"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_number_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_number_mult10_force"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_number_mult10_null"></block>
|
||||
<label text="Text"></label>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_text_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_text_A"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_text_B"></block>
|
||||
<label text="Variables"></label>
|
||||
<sep gap="8"></sep>
|
||||
<button text="add test variables" callbackKey="addVariables" web-class="modifiesWorkspace"></button>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_variable_null"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_variable_force_1s"></block>
|
||||
<sep gap="12"></sep>
|
||||
<block type="test_validators_variable_1s_null"></block>
|
||||
</category>
|
||||
</category>
|
||||
<category name="Mutators">
|
||||
<label text="logic_compare"></label>
|
||||
<block type="logic_compare">
|
||||
<value name="A">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="B">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="logic_compare">
|
||||
<value name="A">
|
||||
<block type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</block>
|
||||
</value>
|
||||
<value name="B">
|
||||
<block type="math_number">
|
||||
<field name="NUM">10</field>
|
||||
</block>
|
||||
</value>
|
||||
</block>
|
||||
</category>
|
||||
<category name="Style">
|
||||
<label text="Hats"></label>
|
||||
<block type="test_style_hat"></block>
|
||||
<label text="Colour"></label>
|
||||
<block type="test_style_hex1"></block>
|
||||
<block type="test_style_hex2"></block>
|
||||
<block type="test_style_hex3"></block>
|
||||
<block type="test_style_no_colour"></block>
|
||||
<block type="test_style_hex4"></block>
|
||||
<block type="test_style_hex5"></block>
|
||||
</category>
|
||||
</xml>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
956
tests/playgrounds/test_blocks_toolbox.js
Normal file
956
tests/playgrounds/test_blocks_toolbox.js
Normal file
@@ -0,0 +1,956 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @fileoverview Test blocks toolbox has a category menu and an auto-closing flyout.
|
||||
* The blocks in this toolbox reflect block configurations not used by
|
||||
* the standard predefined blocks, and so test alternative block rendering
|
||||
* code paths.
|
||||
* @author aschmiedt@google.com (Abby Schmiedt)
|
||||
*/
|
||||
|
||||
|
||||
var alignCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Align",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_align_dummy_right\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_align_all\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_align_with_external_input\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var basicCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Basic",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_empty\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_empty_with_mutator\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_dummy\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_multiple_dummy\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_stack\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_row\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_value_to_stack\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_value_to_statement\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_limit_instances\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_tooltips\"></block>"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_basic_javascript\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var rowCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Row",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "blocks have"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "-1"
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "tooltips"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "insert",
|
||||
"callbackkey": "insertConnectionRows"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_input\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_blue\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_yellow\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_red\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_output\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_row_yellow\"><value name=\"NAME\"><block type=\"test_connections_row_yellow\" movable=\"false\"></block></value></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_multivalue_1valid\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_multivalue_2valid\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var stackCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Stack",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "blocks have"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "-1"
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "tooltips"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "insert",
|
||||
"callbackkey": "insertConnectionStacks"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_next\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_blue\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_yellow\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_red\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_prev\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_stack_yellow\"><next><block type=\"test_connections_stack_yellow\" movable=\"false\"></block></next></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var statementCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Statement",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "blocks have"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "-1"
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "tooltips"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "insert",
|
||||
"callbackkey": "insertConnectionStatements"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_statement_blue\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_statement_yellow\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_statement_red\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_statement_nonext\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_multistatement_1valid\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "7"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_connections_multistatement_2valid\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var dragCategory = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Drag",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Drag each to the workspace"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text_print\"><value name=\"TEXT\"><block type=\"text\"><field name=\"TEXT\">Dragmebythischild</field></block></value></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text_print\"><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Dragmebythisshadow</field></shadow></value></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text_print\"><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Shadowvalue</field></shadow></value><next><shadow type=\"text_print\"><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Shadowstatement</field></shadow></value></shadow></next></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Multiple Variable Refs"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text_print\"><value name=\"TEXT\"><block type=\"variables_get\"><field name=\"VAR\" id=\"item\">item</field></block></value><next><block type=\"text_print\"><value name=\"TEXT\"><block type=\"variables_get\"><field name=\"VAR\" id=\"item\">item</field></block></value></block></next></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Procedure Definitions"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"procedures_defnoreturn\"><field name=\"NAME\">withoutarguments</field><statement name=\"STACK\"><block type=\"text_print\"><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Noargumentreference.</field></shadow></value></block></statement></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"procedures_defnoreturn\"><mutation><arg name=\"fnArgument\"></arg></mutation><field name=\"NAME\">withoneargument</field><statement name=\"STACK\"><block type=\"text_print\"><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Expectedanargumentreferencehere.</field></shadow><block type=\"variables_get\"><field name=\"VAR\">fnArgument</field></block></value></block></statement></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldDefaults = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Defaults",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "add blocks to workspace",
|
||||
"callbackkey": "addAllBlocksToWorkspace"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "set random style",
|
||||
"callbackkey": "setRandomStyle"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "toggle enabled",
|
||||
"callbackkey": "toggleEnabled"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "toggle shadow",
|
||||
"callbackkey": "toggleShadow"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "toggle collapsed",
|
||||
"callbackkey": "toggleCollapsed"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_angle\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_checkbox\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_colour\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_colour_options\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_text_input\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_only_text_input\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_multilinetext\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_variable\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "randomize label text",
|
||||
"callbackkey": "randomizeLabelText"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_label_serializable\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "change image",
|
||||
"callbackkey": "changeImage"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_fields_image\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldNumbers = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Numbers",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_float\"><field name=\"NUM\">123.456</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_hundredths\"><field name=\"NUM\">123.456</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_halves\"><field name=\"NUM\">123.456</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_whole\"><field name=\"NUM\">123.456</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_three_halves\"><field name=\"NUM\">123.456</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_numbers_whole_bounded\"><field name=\"NOTE\">60</field></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldAngles = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Angles",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_clockwise\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_offset\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_wrap\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_round_30\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_round_0\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_protractor\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_angles_compass\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldDropDowns = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Drop-downs",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Dynamic"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_dropdowns_dynamic\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "Add option",
|
||||
"callbackkey": "addDynamicOption"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "Remove option",
|
||||
"callbackkey": "removeDynamicOption"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_dropdowns_dynamic_random\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Other"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_dropdowns_long\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_dropdowns_images\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_dropdowns_images_and_text\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldImages = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Images",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_datauri\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_small\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_large\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_fliprtl\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_missing\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_many_icons\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_images_clickhandler\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var fieldEmoji = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Emoji! o((*^ᴗ^*))o",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Unicode & Emojis"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_emoji\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text\"><field name=\"TEXT\">Robotfaceintextfield:🤖</field></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"text\"><field name=\"TEXT\">Zalgointextfield:B̛̻̦̬̘̰͎̥̈̔͊͞ͅl̡͖̫̺̬̖̣̳̃̀́͑͑̕͟͠͝o̢̹͙̮̫͔͋̉̊̑̿̽̚c̸̹̹̜͙̹̠͋̒͑̊̇͝k̡͉̫͇̖̳͖̊͒́̆̄̎̂̔̕͜͞l̰̙̞̳̩̠͖̯̀̆̈́̿̈̓͗y̨̡̟͇̮͈̬̙̲̏̅̀͘͠</field></block>",
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
var fieldValidators = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Validators",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "add blocks to workspace",
|
||||
"callbackkey": "addAllBlocksToWorkspace"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "set input",
|
||||
"callbackkey": "setInput"
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Dispose block"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_dispose_block\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Angles"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_angle_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_angle_mult30_force\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_angle_mult30_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Checkboxes"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_checkbox_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_checkbox_match\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_checkbox_not_match_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Colours"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_colour_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_colour_force_red\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_colour_red_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Dropdowns"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_dropdown_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_dropdown_force_1s\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_dropdown_1s_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Numbers"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_number_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_number_mult10_force\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_number_mult10_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Text"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_text_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_text_A\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_text_B\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Variables"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "8"
|
||||
},
|
||||
{
|
||||
"kind": "BUTTON",
|
||||
"text": "add test variables",
|
||||
"callbackkey": "addVariables",
|
||||
"web-class": "modifiesWorkspace"
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_variable_null\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_variable_force_1s\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "SEP",
|
||||
"gap": "12"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_validators_variable_1s_null\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var mutators = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Mutators",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "logic_compare"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"logic_compare\"><value name=\"A\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value><value name=\"B\"><shadow type=\"math_number\"><field name=\"NUM\">10</field></shadow></value></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"logic_compare\"><value name=\"A\"><block type=\"math_number\"><field name=\"NUM\">10</field></block></value><value name=\"B\"><block type=\"math_number\"><field name=\"NUM\">10</field></block></value></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
var style = {
|
||||
"kind": "CATEGORY",
|
||||
"name": "Style",
|
||||
"contents": [
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Hats"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hat\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "LABEL",
|
||||
"text": "Colour"
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hex1\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hex2\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hex3\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_no_colour\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hex4\"></block>",
|
||||
},
|
||||
{
|
||||
"kind": "BLOCK",
|
||||
"blockxml": "<block type=\"test_style_hex5\"></block>",
|
||||
}
|
||||
],
|
||||
};
|
||||
|
||||
/* exported testBlocksToolbox */
|
||||
var testBlocksToolbox = [
|
||||
alignCategory,
|
||||
basicCategory,
|
||||
{
|
||||
"kind": "CATEGORY",
|
||||
"name": "Connections",
|
||||
"expanded": "true",
|
||||
"contents": [
|
||||
rowCategory,
|
||||
stackCategory,
|
||||
statementCategory
|
||||
],
|
||||
},
|
||||
dragCategory,
|
||||
{
|
||||
"kind": "CATEGORY",
|
||||
"name": "Fields",
|
||||
"expanded": "true",
|
||||
"contents": [
|
||||
fieldDefaults,
|
||||
fieldNumbers,
|
||||
fieldAngles,
|
||||
fieldDropDowns,
|
||||
fieldImages,
|
||||
fieldEmoji,
|
||||
fieldValidators
|
||||
],
|
||||
},
|
||||
mutators,
|
||||
style
|
||||
];
|
||||
Reference in New Issue
Block a user