gobstones-blockly 0.20.1 → 0.21.0
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.
- checksums.yaml +4 -4
- data/app/assets/htmls/gs-element-blockly.html +58 -0
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21365b9498ea4a6da0c2a37f0710fcf460aa9a355c3f448eb42a68007001438c
|
4
|
+
data.tar.gz: 28e559e14998d514efcbcefecebec2da03899b3a47cb0b2a3ac27df098d6626e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b7c1b456d0abfd81a2f985a6fcf4b80ce7f7ef52ac17ee6e46bef876afe89eec3da10d8b1cc7e96c8940f58636a070f634230007b84769250d1dac181e345bf
|
7
|
+
data.tar.gz: d96e514841bd423e7ea96447256a795d4c06f7ff53005ac92e890ae088e3f9fdb6d3c1ffc9a59fc828450f9e878f59b06866179ad0c4f41356306a1d40343a29
|
@@ -5081,6 +5081,28 @@ Blockly.Blocks.variables_get = {
|
|
5081
5081
|
}
|
5082
5082
|
};
|
5083
5083
|
|
5084
|
+
Blockly.Blocks.OperadoresDeEnumeracion = {
|
5085
|
+
init: function () {
|
5086
|
+
this.jsonInit({
|
5087
|
+
message0: '%1 %2',
|
5088
|
+
args0: [
|
5089
|
+
{
|
5090
|
+
type: 'field_dropdown',
|
5091
|
+
name: 'OPERATOR',
|
5092
|
+
options: [['siguiente', 'siguiente'], ['previo', 'previo'], ['opuesto', 'opuesto']]
|
5093
|
+
},
|
5094
|
+
{
|
5095
|
+
type: 'input_value',
|
5096
|
+
name: 'VALUE'
|
5097
|
+
}
|
5098
|
+
],
|
5099
|
+
colour: Blockly.CUSTOM_COLORS.OperadoresDeEnumeracion || Blockly.CUSTOM_COLORS.operator,
|
5100
|
+
inputsInline: true,
|
5101
|
+
output: "*"
|
5102
|
+
})
|
5103
|
+
}
|
5104
|
+
};
|
5105
|
+
|
5084
5106
|
Blockly.Blocks.not = createSingleParameterExpressionBlock('no','Bool');
|
5085
5107
|
Blockly.Blocks.siguiente = createSingleParameterExpressionBlock('siguiente','*');
|
5086
5108
|
Blockly.Blocks.previo = createSingleParameterExpressionBlock('previo','*');
|
@@ -5504,6 +5526,10 @@ Blockly.GobstonesLanguage.OperadorLogico = function(block) {
|
|
5504
5526
|
return [code, order];
|
5505
5527
|
};
|
5506
5528
|
|
5529
|
+
Blockly.GobstonesLanguage.OperadoresDeEnumeracion = function(block) {
|
5530
|
+
return exprParamsBlockCodeGenerator(block.getFieldValue('OPERATOR'), ['VALUE'])(block);
|
5531
|
+
};
|
5532
|
+
|
5507
5533
|
Blockly.GobstonesLanguage.not = exprParamsBlockCodeGenerator('not',['VALUE']);
|
5508
5534
|
Blockly.GobstonesLanguage.siguiente = exprParamsBlockCodeGenerator('siguiente',['VALUE']);
|
5509
5535
|
Blockly.GobstonesLanguage.previo = exprParamsBlockCodeGenerator('previo',['VALUE']);
|
@@ -6051,6 +6077,9 @@ Blockly.ErrorInforming.CssContent = [
|
|
6051
6077
|
let xml = toolboxXML || this.$$('#toolbox').innerHTML;
|
6052
6078
|
|
6053
6079
|
this._processCustomCategories(xml);
|
6080
|
+
setTimeout(() => {
|
6081
|
+
this._processCustomCategoryStyles(xml);
|
6082
|
+
});
|
6054
6083
|
|
6055
6084
|
// TODO: Este parseo por strings es tremendo, y esa property `xml` de los nodos se usa en _toolboxBlockXML, _toolboxBlockXML, etc. Hay que hacer de vuelta todo lo de acciones primitivas.
|
6056
6085
|
|
@@ -6642,6 +6671,35 @@ Blockly.ErrorInforming.CssContent = [
|
|
6642
6671
|
});
|
6643
6672
|
},
|
6644
6673
|
|
6674
|
+
_processCustomCategoryStyles(xml) {
|
6675
|
+
const parsedXml = Blockly.Xml.textToDom(`<xml>${xml}</xml>`);
|
6676
|
+
|
6677
|
+
const forEachNode = (node, action) => {
|
6678
|
+
action(node);
|
6679
|
+
node.childNodes.forEach((node) => forEachNode(node, action));
|
6680
|
+
}
|
6681
|
+
|
6682
|
+
forEachNode(parsedXml, (node) => {
|
6683
|
+
if (!node.getAttribute) return;
|
6684
|
+
|
6685
|
+
const name = node.getAttribute("name");
|
6686
|
+
const custom = node.getAttribute("gbs_custom");
|
6687
|
+
|
6688
|
+
if (custom === "SEPARATOR") {
|
6689
|
+
const toolbar = document.querySelector("#blocklyDiv div div div").childNodes[1];
|
6690
|
+
|
6691
|
+
forEachNode(toolbar, (toolbarNode) => {
|
6692
|
+
const isLabel = toolbarNode.classList && toolbarNode.classList[0] === "blocklyTreeLabel";
|
6693
|
+
const isTheRightCategory = toolbarNode.textContent === name;
|
6694
|
+
|
6695
|
+
if (isLabel && isTheRightCategory) {
|
6696
|
+
toolbarNode.innerHTML = `<strong>${toolbarNode.innerText}</strong>`;
|
6697
|
+
}
|
6698
|
+
});
|
6699
|
+
}
|
6700
|
+
});
|
6701
|
+
},
|
6702
|
+
|
6645
6703
|
_mapToolboxTree: function(toolboxTree, f){
|
6646
6704
|
var resultingList = [];
|
6647
6705
|
for (var i in toolboxTree){
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobstones-blockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Alfonso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|