gobstones-blockly 0.25.4 → 0.28.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 +66 -28
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29902334f56b93fd4cef18ef000f6503f536f50db2367928e8d89bea3aaf0876
|
4
|
+
data.tar.gz: 7370abf521aa0634c477ad8a267e725e4d253c3165221f1ae1c3d5f61b2c89c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfd32117eb21e74db5ce2610c2df787c444b0a7bbfd5a5fa5473f00e859cdbbb293d599a0577a6298f9acfd3414735ee1e0e6fab2515b1c5caaf1b890efb1134
|
7
|
+
data.tar.gz: d10e980e304acbd0966921c63228790159c037fc6d5d44ed13274c62918bed40237818158b1f9c6323eba8275e9e7b76bd1731eb89ba29a1fd35ffa05acf097f
|
@@ -80,9 +80,7 @@ Example:
|
|
80
80
|
<block type="OperadorDeComparacion"></block>
|
81
81
|
<block type="OperadorLogico"></block>
|
82
82
|
<block type="not"></block>
|
83
|
-
<block type="
|
84
|
-
<block type="previo"></block>
|
85
|
-
<block type="opuesto"></block>
|
83
|
+
<block type="OperadoresDeEnumeracion"></block>
|
86
84
|
</category>
|
87
85
|
</category>
|
88
86
|
<category name="Definiciones">
|
@@ -90,7 +88,7 @@ Example:
|
|
90
88
|
<block type="Program"></block>
|
91
89
|
<block type="InteractiveProgram"></block>
|
92
90
|
</category>
|
93
|
-
<category name="
|
91
|
+
<category name="Eventos">
|
94
92
|
<block type="InteractiveLetterBinding"></block>
|
95
93
|
<block type="InteractiveNumberBinding"></block>
|
96
94
|
<block type="InteractiveKeyBinding"></block>
|
@@ -105,7 +103,7 @@ Example:
|
|
105
103
|
<block type="procedures_defreturn"></block>
|
106
104
|
</category>
|
107
105
|
</category>
|
108
|
-
<category name="Auxiliares Docente">
|
106
|
+
<category name="Auxiliares Docente" gbs_visible="teacher">
|
109
107
|
<block type="ComandoCompletar"></block>
|
110
108
|
<block type="ExpresionCompletar"></block>
|
111
109
|
<block type="AsociacionDeTeclaCompletar"></block>
|
@@ -5280,14 +5278,12 @@ Blockly.Blocks.siguiente = createSingleParameterExpressionBlock('siguiente','*')
|
|
5280
5278
|
Blockly.Blocks.previo = createSingleParameterExpressionBlock('previo','*');
|
5281
5279
|
Blockly.Blocks.opuesto = createSingleParameterExpressionBlock('opuesto','*');
|
5282
5280
|
|
5283
|
-
|
5284
5281
|
// Necesario para sanitizar nombres de procedimientos.
|
5285
5282
|
// En la interfaz de bloques de gobstones por ahora vamos a dejar pasar sólo espacios y letras con tilde
|
5286
5283
|
Blockly.Blocks.GobstonesSanitizer = function(name){
|
5287
5284
|
return name.replace(/[^A-Za-z0-9ÁÉÍÓÚÑáéíóúñ_ ]/g,'');
|
5288
5285
|
};
|
5289
5286
|
|
5290
|
-
|
5291
5287
|
Blockly.Procedures.OldRename = Blockly.Procedures.rename;
|
5292
5288
|
Blockly.Procedures.rename = function(name){
|
5293
5289
|
return Blockly.Procedures.OldRename.call(this,
|
@@ -5302,6 +5298,35 @@ Blockly.Blocks.procedures_mutatorarg.validator_ = function(name){
|
|
5302
5298
|
return Blockly.Blocks.procedures_mutatorarg.validator_old.call(this,
|
5303
5299
|
Blockly.Blocks.GobstonesSanitizer(name));
|
5304
5300
|
};
|
5301
|
+
|
5302
|
+
// Enable/Disable atomic
|
5303
|
+
const oldProceduresCustomContextMenu = Blockly.Blocks.procedures_defnoreturn.customContextMenu
|
5304
|
+
Blockly.Blocks.procedures_defnoreturn.customContextMenu = function(options) {
|
5305
|
+
oldProceduresCustomContextMenu.call(this, options);
|
5306
|
+
|
5307
|
+
const block = this;
|
5308
|
+
options.splice(1, 0, {
|
5309
|
+
enabled: true,
|
5310
|
+
text: block.$isAtomic ? "✗ Mostrar paso a paso" : "✓ Mostrar paso a paso",
|
5311
|
+
callback: function() {
|
5312
|
+
block.$isAtomic = !block.$isAtomic;
|
5313
|
+
triggerRefresh(block);
|
5314
|
+
}
|
5315
|
+
})
|
5316
|
+
}
|
5317
|
+
const oldProceduresMutationToDom = Blockly.Blocks['procedures_defnoreturn'].mutationToDom;
|
5318
|
+
Blockly.Blocks.procedures_defnoreturn.mutationToDom = function() {
|
5319
|
+
const container = oldProceduresMutationToDom.call(this);
|
5320
|
+
container.setAttribute("isatomic", this.$isAtomic ? "true" : "false");
|
5321
|
+
return container;
|
5322
|
+
}
|
5323
|
+
const oldProceduresDomToMutation = Blockly.Blocks['procedures_defnoreturn'].domToMutation;
|
5324
|
+
Blockly.Blocks.procedures_defnoreturn.domToMutation = function(xmlElement) {
|
5325
|
+
const isAtomic = xmlElement.getAttribute("isatomic");
|
5326
|
+
this.$isAtomic = isAtomic === "true";
|
5327
|
+
|
5328
|
+
return oldProceduresDomToMutation.call(this, xmlElement);
|
5329
|
+
}
|
5305
5330
|
</script>
|
5306
5331
|
<script>/* global Blockly, goog */
|
5307
5332
|
/* eslint camelcase: "off" */
|
@@ -5844,11 +5869,11 @@ var makeParameterList = function (block) {
|
|
5844
5869
|
};
|
5845
5870
|
|
5846
5871
|
Blockly.GobstonesLanguage.procedures_defnoreturn = function (block) {
|
5847
|
-
|
5848
|
-
|
5872
|
+
var name = formatCallName(block.getFieldValue('NAME'),true);
|
5873
|
+
var body = Blockly.GobstonesLanguage.statementToCode(block, 'STACK');
|
5849
5874
|
|
5850
|
-
|
5851
|
-
|
5875
|
+
var code = 'procedure ' + name + '(' + makeParameterList(block) + ') {\n' + body + '}\n';
|
5876
|
+
if (block.$isAtomic) code = "/*@ATTRIBUTE@atomic@*/" + "\n" + code;
|
5852
5877
|
|
5853
5878
|
code = Blockly.GobstonesLanguage.scrub_(block, code);
|
5854
5879
|
Blockly.GobstonesLanguage.definitions_[name] = code;
|
@@ -6161,6 +6186,14 @@ Blockly.ErrorInforming.CssContent = [
|
|
6161
6186
|
type: Boolean,
|
6162
6187
|
},
|
6163
6188
|
|
6189
|
+
/*
|
6190
|
+
* `role` Indica el role del usuario ("teacher" || "student").
|
6191
|
+
*/
|
6192
|
+
role: {
|
6193
|
+
type: String,
|
6194
|
+
value: "teacher"
|
6195
|
+
},
|
6196
|
+
|
6164
6197
|
/*
|
6165
6198
|
* `width` Ancho del elemento.
|
6166
6199
|
*/
|
@@ -6869,8 +6902,9 @@ Blockly.ErrorInforming.CssContent = [
|
|
6869
6902
|
|
6870
6903
|
const name = node.getAttribute("name");
|
6871
6904
|
const custom = node.getAttribute("gbs_custom");
|
6905
|
+
const visible = node.getAttribute("gbs_visible");
|
6872
6906
|
|
6873
|
-
if (custom === "SEPARATOR") {
|
6907
|
+
if (custom === "SEPARATOR" || visible !== null) {
|
6874
6908
|
const toolbar = document.querySelector("#blocklyDiv div div div").childNodes[1];
|
6875
6909
|
|
6876
6910
|
forEachNode(toolbar, (toolbarNode) => {
|
@@ -6878,23 +6912,27 @@ Blockly.ErrorInforming.CssContent = [
|
|
6878
6912
|
const isTheRightCategory = toolbarNode.textContent === name;
|
6879
6913
|
|
6880
6914
|
if (isLabel && isTheRightCategory) {
|
6881
|
-
|
6882
|
-
|
6883
|
-
|
6884
|
-
|
6885
|
-
|
6886
|
-
|
6887
|
-
|
6888
|
-
|
6889
|
-
|
6890
|
-
|
6891
|
-
|
6892
|
-
|
6893
|
-
|
6894
|
-
|
6915
|
+
if (custom === "SEPARATOR") {
|
6916
|
+
const row = toolbarNode.parentElement;
|
6917
|
+
row.style["pointer-elements"] = "none";
|
6918
|
+
row.style["background-image"] = "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wEVFRcgIqOIVAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAADUlEQVQI12MQDcn/DwADMgHYjceGPAAAAABJRU5ErkJggg==)";
|
6919
|
+
row.style["color"] = "#ffffff";
|
6920
|
+
row.style["margin-top"] = "8px";
|
6921
|
+
row.style["margin-bottom"] = "8px";
|
6922
|
+
row.style["pointer-events"] = "none";
|
6923
|
+
row.style["user-select"] = "none";
|
6924
|
+
|
6925
|
+
if (toolbarNode.innerHTML.startsWith("*")) {
|
6926
|
+
row.style["margin-top"] = "0";
|
6927
|
+
row.style["margin-bottom"] = "-8px";
|
6928
|
+
row.style["font-weight"] = "900";
|
6929
|
+
toolbarNode.innerHTML = toolbarNode.innerHTML.replace("*", "");
|
6930
|
+
}
|
6931
|
+
|
6932
|
+
toolbarNode.innerHTML = `<span>${toolbarNode.innerHTML}</span>`;
|
6933
|
+
} else if (visible !== null && visible !== this.role) {
|
6934
|
+
toolbarNode.remove();
|
6895
6935
|
}
|
6896
|
-
|
6897
|
-
toolbarNode.innerHTML = `<span>${toolbarNode.innerHTML}</span>`;
|
6898
6936
|
}
|
6899
6937
|
});
|
6900
6938
|
}
|
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.28.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:
|
11
|
+
date: 2019-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -87,8 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
|
-
|
91
|
-
rubygems_version: 2.7.8
|
90
|
+
rubygems_version: 3.0.2
|
92
91
|
signing_key:
|
93
92
|
specification_version: 4
|
94
93
|
summary: Gobstones Blockly
|