gobstones-blockly 0.31.0 → 0.32.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b47ed0e304185189a1d5b7cc25dad46e9a707f19649d960f55f0452a62dbdcea
|
4
|
+
data.tar.gz: 9232a10f5c19d707017564980654612b72aab401a18ef65da60db1b319fb4418
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 902cd68bd2423da9b2d4ed38d5d4363199a5b972985cd8ae75ad516600340b96c5b262c79cdbf727152dde76658b505963df3d3416b28d373ff01dd63bc5dd3a
|
7
|
+
data.tar.gz: f0c245a9c0a010389705cd1f1cf26ae4fe3c608fdd717658c8d16f23f00951d613c5f9d4f6796fc68239c16ae405a8b32c9ded89dcbee3e22e79cd101b13b1f0
|
@@ -81,6 +81,7 @@ Example:
|
|
81
81
|
<block type="OperadorLogico"></block>
|
82
82
|
<block type="not"></block>
|
83
83
|
<block type="OperadoresDeEnumeracion"></block>
|
84
|
+
<block type="AlternativaEnExpresiones"></block>
|
84
85
|
</category>
|
85
86
|
</category>
|
86
87
|
<category name="Definiciones">
|
@@ -4235,7 +4236,7 @@ Blockly.createBlockSvg = function(workspace, name, f) {
|
|
4235
4236
|
newBlock.render();
|
4236
4237
|
};
|
4237
4238
|
|
4238
|
-
const createVariable = (parent, name) => {
|
4239
|
+
const createVariable = (parent, name, callback = () => {}) => {
|
4239
4240
|
const workspace = parent.workspace;
|
4240
4241
|
Blockly.createBlockSvg(workspace, 'variables_get', b => {
|
4241
4242
|
ATOMICALLY(() => {
|
@@ -4243,6 +4244,7 @@ const createVariable = (parent, name) => {
|
|
4243
4244
|
const posParent = parent.getRelativeToSurfaceXY();
|
4244
4245
|
const pos = b.getRelativeToSurfaceXY();
|
4245
4246
|
b.moveBy(posParent.x - pos.x + parent.width + 16, posParent.y - pos.y + b.height + 6);
|
4247
|
+
callback(b);
|
4246
4248
|
});
|
4247
4249
|
});
|
4248
4250
|
}
|
@@ -4369,7 +4371,7 @@ Blockly.Blocks.InteractiveProgram = {
|
|
4369
4371
|
getLocalMediaUrl(this, icon),
|
4370
4372
|
getLocalMediaSize(icon),
|
4371
4373
|
getLocalMediaSize(icon),
|
4372
|
-
"
|
4374
|
+
"",
|
4373
4375
|
function() {
|
4374
4376
|
this.$init = false;
|
4375
4377
|
this.removeInput("initlabel");
|
@@ -4378,6 +4380,7 @@ Blockly.Blocks.InteractiveProgram = {
|
|
4378
4380
|
triggerRefresh(this);
|
4379
4381
|
}.bind(this)
|
4380
4382
|
);
|
4383
|
+
setTimeout(() => { removeButton.setTooltip("Eliminar"); });
|
4381
4384
|
|
4382
4385
|
this.appendDummyInput("initlabel").appendField('Al inicializar:').appendField(removeButton);
|
4383
4386
|
this.appendStatementInput('init').setCheck(["Statement"]);
|
@@ -4396,7 +4399,7 @@ Blockly.Blocks.InteractiveProgram = {
|
|
4396
4399
|
getLocalMediaUrl(this, icon),
|
4397
4400
|
getLocalMediaSize(icon),
|
4398
4401
|
getLocalMediaSize(icon),
|
4399
|
-
"
|
4402
|
+
"",
|
4400
4403
|
function() {
|
4401
4404
|
this.$timeout = undefined;
|
4402
4405
|
this.removeInput("timeoutlabel");
|
@@ -4404,6 +4407,7 @@ Blockly.Blocks.InteractiveProgram = {
|
|
4404
4407
|
triggerRefresh(this);
|
4405
4408
|
}.bind(this)
|
4406
4409
|
);
|
4410
|
+
setTimeout(() => { removeButton.setTooltip("Eliminar"); });
|
4407
4411
|
|
4408
4412
|
this.appendDummyInput("timeoutlabel").appendField(`Al estar inactivo ${timeout} milisegundos:`).appendField(removeButton);
|
4409
4413
|
this.appendStatementInput('timeout').setCheck(["Statement"]);
|
@@ -4478,27 +4482,32 @@ createInteractiveBinding = (name, keys) => {
|
|
4478
4482
|
const input = this.inputList[0];
|
4479
4483
|
const plusIcon = "plus.png";
|
4480
4484
|
const cleanIcon = "clean.png";
|
4481
|
-
|
4485
|
+
const addModifier = new Blockly.FieldImage(
|
4482
4486
|
getLocalMediaUrl(this, plusIcon),
|
4483
4487
|
getLocalMediaSize(plusIcon),
|
4484
4488
|
getLocalMediaSize(plusIcon),
|
4485
|
-
"
|
4489
|
+
"",
|
4486
4490
|
function() {
|
4487
4491
|
const modifiersCount = getModifierFields(self).length / 2;
|
4488
4492
|
if (modifiersCount >= modifiers.length) return;
|
4489
4493
|
|
4490
4494
|
self._addModifier();
|
4491
4495
|
}
|
4492
|
-
)
|
4493
|
-
|
4496
|
+
);
|
4497
|
+
setTimeout(() => { addModifier.setTooltip("Agregar modificador"); });
|
4498
|
+
input.appendField(addModifier);
|
4499
|
+
|
4500
|
+
const cleanModifiers = new Blockly.FieldImage(
|
4494
4501
|
getLocalMediaUrl(this, cleanIcon),
|
4495
4502
|
getLocalMediaSize(cleanIcon),
|
4496
4503
|
getLocalMediaSize(cleanIcon),
|
4497
|
-
"
|
4504
|
+
"",
|
4498
4505
|
function() {
|
4499
4506
|
self._cleanModifiers();
|
4500
4507
|
}
|
4501
|
-
)
|
4508
|
+
);
|
4509
|
+
setTimeout(() => { addModifier.setTooltip("Limpiar modificadores"); });
|
4510
|
+
input.appendField(cleanModifiers);
|
4502
4511
|
},
|
4503
4512
|
|
4504
4513
|
customContextMenu: function(options) {
|
@@ -5113,11 +5122,13 @@ Blockly.Blocks.List = {
|
|
5113
5122
|
getLocalMediaUrl(this, icon),
|
5114
5123
|
getLocalMediaSize(icon),
|
5115
5124
|
getLocalMediaSize(icon),
|
5116
|
-
"
|
5125
|
+
"",
|
5117
5126
|
function() {
|
5118
5127
|
this._addElement();
|
5119
5128
|
}.bind(this)
|
5120
5129
|
);
|
5130
|
+
setTimeout(() => { addButton.setTooltip("Agregar elemento"); });
|
5131
|
+
|
5121
5132
|
const input = this.appendDummyInput();
|
5122
5133
|
input.appendField(addButton);
|
5123
5134
|
input.name = "addButton";
|
@@ -5138,11 +5149,137 @@ Blockly.Blocks.List = {
|
|
5138
5149
|
getLocalMediaUrl(this, icon),
|
5139
5150
|
getLocalMediaSize(icon),
|
5140
5151
|
getLocalMediaSize(icon),
|
5141
|
-
"
|
5152
|
+
"",
|
5142
5153
|
function() {
|
5143
5154
|
this._removeElement(input);
|
5144
5155
|
}.bind(this)
|
5145
5156
|
);
|
5157
|
+
setTimeout(() => { removeButton.setTooltip("Quitar elemento"); });
|
5158
|
+
input.appendField(removeButton);
|
5159
|
+
}
|
5160
|
+
};
|
5161
|
+
|
5162
|
+
Blockly.Blocks.AlternativaEnExpresiones = {
|
5163
|
+
init: function () {
|
5164
|
+
this.jsonInit({
|
5165
|
+
message0: "",
|
5166
|
+
args0: [],
|
5167
|
+
output: "*",
|
5168
|
+
colour: Blockly.CUSTOM_COLORS.AlternativaEnExpresiones || Blockly.CUSTOM_COLORS.operator,
|
5169
|
+
inputsInline: true
|
5170
|
+
});
|
5171
|
+
this.length = 0;
|
5172
|
+
|
5173
|
+
this._addOtherwise();
|
5174
|
+
this._addElement();
|
5175
|
+
},
|
5176
|
+
|
5177
|
+
mutationToDom: function() {
|
5178
|
+
var container = document.createElement('mutation');
|
5179
|
+
container.setAttribute('extrabranches', this.length - 1);
|
5180
|
+
return container;
|
5181
|
+
},
|
5182
|
+
|
5183
|
+
domToMutation: function(xmlElement) {
|
5184
|
+
var extraBranches = parseInt(xmlElement.getAttribute('extrabranches')) || 0;
|
5185
|
+
for (let i = 0; i < extraBranches; i++) this._addElement();
|
5186
|
+
},
|
5187
|
+
|
5188
|
+
_addElement: function() {
|
5189
|
+
this.length++;
|
5190
|
+
this._removeOtherwise();
|
5191
|
+
this._removeAddButton();
|
5192
|
+
|
5193
|
+
if (this.length > 1) this._addNewline("newline" + this.length);
|
5194
|
+
this.appendDummyInput().appendField('elegir').name = "label1" + this.length;
|
5195
|
+
const input1 = this.appendValueInput('element' + this.length);
|
5196
|
+
this.appendDummyInput().appendField('cuando').name = "label2" + this.length;
|
5197
|
+
const input2 = this.appendValueInput('condition' + this.length);
|
5198
|
+
|
5199
|
+
if (this.length > 1) this._addRemoveButtonFor(this.length, input2);
|
5200
|
+
this._addAddButton();
|
5201
|
+
this._addOtherwise();
|
5202
|
+
triggerRefresh(this);
|
5203
|
+
},
|
5204
|
+
|
5205
|
+
_removeElement: function(n) {
|
5206
|
+
const isLastBranch = this.length === 2;
|
5207
|
+
|
5208
|
+
const elements = ["newline", "label1", "element", "label2", "condition"];
|
5209
|
+
elements.forEach((element) => this.removeInput(element + n));
|
5210
|
+
this.length--;
|
5211
|
+
|
5212
|
+
let id;
|
5213
|
+
elements.forEach((element) => {
|
5214
|
+
id = 1;
|
5215
|
+
for (let input of this.inputList) {
|
5216
|
+
if (input.name.startsWith(element)) {
|
5217
|
+
input.name = element + id;
|
5218
|
+
id++;
|
5219
|
+
}
|
5220
|
+
}
|
5221
|
+
});
|
5222
|
+
|
5223
|
+
if (isLastBranch) this.removeInput("newline1");
|
5224
|
+
|
5225
|
+
triggerRefresh(this);
|
5226
|
+
},
|
5227
|
+
|
5228
|
+
_addAddButton: function() {
|
5229
|
+
const icon = "plus.png";
|
5230
|
+
var addButton = new Blockly.FieldImage(
|
5231
|
+
getLocalMediaUrl(this, icon),
|
5232
|
+
getLocalMediaSize(icon),
|
5233
|
+
getLocalMediaSize(icon),
|
5234
|
+
"",
|
5235
|
+
function() {
|
5236
|
+
this._addElement();
|
5237
|
+
}.bind(this)
|
5238
|
+
);
|
5239
|
+
setTimeout(() => { addButton.setTooltip("Agregar opción"); });
|
5240
|
+
|
5241
|
+
const input = this.appendDummyInput();
|
5242
|
+
input.appendField(addButton);
|
5243
|
+
input.name = "addButton";
|
5244
|
+
},
|
5245
|
+
|
5246
|
+
_removeAddButton: function() {
|
5247
|
+
this.removeInput("addButton")
|
5248
|
+
this.removeInput("closingBracket");
|
5249
|
+
},
|
5250
|
+
|
5251
|
+
_addOtherwise: function() {
|
5252
|
+
this._addNewline("otherwiseNewline");
|
5253
|
+
|
5254
|
+
const textInput = this.appendDummyInput();
|
5255
|
+
textInput.appendField("o si no");
|
5256
|
+
textInput.name = "otherwiseText";
|
5257
|
+
|
5258
|
+
this.appendValueInput("otherwise");
|
5259
|
+
},
|
5260
|
+
|
5261
|
+
_removeOtherwise: function() {
|
5262
|
+
this.removeInput("otherwiseText");
|
5263
|
+
this.removeInput("otherwise");
|
5264
|
+
this.removeInput("otherwiseNewline");
|
5265
|
+
},
|
5266
|
+
|
5267
|
+
_addNewline: function(name) {
|
5268
|
+
this.appendStatementInput(name).setCheck(["NEWLINE"]);
|
5269
|
+
},
|
5270
|
+
|
5271
|
+
_addRemoveButtonFor: function(n, input) {
|
5272
|
+
const icon = "minus.png";
|
5273
|
+
var removeButton = new Blockly.FieldImage(
|
5274
|
+
getLocalMediaUrl(this, icon),
|
5275
|
+
getLocalMediaSize(icon),
|
5276
|
+
getLocalMediaSize(icon),
|
5277
|
+
"",
|
5278
|
+
function() {
|
5279
|
+
this._removeElement(n);
|
5280
|
+
}.bind(this)
|
5281
|
+
);
|
5282
|
+
setTimeout(() => { removeButton.setTooltip("Quitar opción"); });
|
5146
5283
|
input.appendField(removeButton);
|
5147
5284
|
}
|
5148
5285
|
};
|
@@ -5170,24 +5307,46 @@ Blockly.Blocks.ForEach = {
|
|
5170
5307
|
]
|
5171
5308
|
});
|
5172
5309
|
|
5310
|
+
var self = this;
|
5311
|
+
|
5312
|
+
const nameField = this.getField("varName");
|
5313
|
+
nameField.setValidator(function(name) {
|
5314
|
+
// Strip leading and trailing whitespace. Beyond this, all names are legal.
|
5315
|
+
name = name.replace(/^[\s\xa0]+|[\s\xa0]+$/g, '');
|
5316
|
+
|
5317
|
+
var oldName = this.text_;
|
5318
|
+
if (oldName != name) {
|
5319
|
+
// Rename any callers.
|
5320
|
+
var blocks = this.sourceBlock_.workspace.getAllBlocks(false);
|
5321
|
+
for (var i = 0; i < blocks.length; i++) {
|
5322
|
+
if (blocks[i].$parent === self.id) {
|
5323
|
+
blocks[i].setFieldValue(name, "VAR")
|
5324
|
+
}
|
5325
|
+
}
|
5326
|
+
}
|
5327
|
+
|
5328
|
+
return name;
|
5329
|
+
});
|
5330
|
+
|
5173
5331
|
this.setColour(Blockly.CUSTOM_COLORS.ForEach || Blockly.CUSTOM_COLORS.controlStructure);
|
5174
5332
|
this.appendValueInput('list');
|
5175
5333
|
this.appendStatementInput('block').setCheck(["Statement"]);
|
5176
5334
|
this.setInputsInline(true);
|
5177
5335
|
|
5178
|
-
var self = this;
|
5179
|
-
|
5180
5336
|
const handIcon = "hand.png";
|
5181
5337
|
var createGetterButton = new Blockly.FieldImage(
|
5182
5338
|
getLocalMediaUrl(this, handIcon),
|
5183
5339
|
getLocalMediaSize(handIcon),
|
5184
5340
|
getLocalMediaSize(handIcon),
|
5185
|
-
"
|
5341
|
+
"",
|
5186
5342
|
function() {
|
5187
5343
|
var name = self.getFieldValue('varName');
|
5188
|
-
createVariable(self, name)
|
5344
|
+
createVariable(self, name, (block) => {
|
5345
|
+
block.$parent = self.id;
|
5346
|
+
});
|
5189
5347
|
}
|
5190
5348
|
);
|
5349
|
+
setTimeout(() => { createGetterButton.setTooltip("Obtener variable"); });
|
5191
5350
|
|
5192
5351
|
this.inputList[0].appendField(createGetterButton);
|
5193
5352
|
}
|
@@ -5353,12 +5512,13 @@ Blockly.Blocks.Asignacion = {
|
|
5353
5512
|
getLocalMediaUrl(this, handIcon),
|
5354
5513
|
getLocalMediaSize(handIcon),
|
5355
5514
|
getLocalMediaSize(handIcon),
|
5356
|
-
"
|
5515
|
+
"",
|
5357
5516
|
function() {
|
5358
5517
|
var name = self.getFieldValue('varName');
|
5359
5518
|
self.createVariableBlock(name);
|
5360
5519
|
}
|
5361
5520
|
);
|
5521
|
+
setTimeout(() => { createGetterButton.setTooltip("Obtener variable"); });
|
5362
5522
|
|
5363
5523
|
this.appendDummyInput().appendField(createGetterButton);
|
5364
5524
|
},
|
@@ -5860,6 +6020,25 @@ Blockly.GobstonesLanguage.List = function(block) {
|
|
5860
6020
|
return [code, Blockly.GobstonesLanguage.ORDER_ATOMIC];
|
5861
6021
|
};
|
5862
6022
|
|
6023
|
+
Blockly.GobstonesLanguage.AlternativaEnExpresiones = function(block) {
|
6024
|
+
const elements = block
|
6025
|
+
.inputList
|
6026
|
+
.filter((it) => it.name.startsWith("element"))
|
6027
|
+
.map((it) => {
|
6028
|
+
const id = it.name.match(/element(\d+)/)[1];
|
6029
|
+
const value = Blockly.GobstonesLanguage.valueToCode(block, it.name, Blockly.GobstonesLanguage.ORDER_NONE);
|
6030
|
+
const conditionValue = Blockly.GobstonesLanguage.valueToCode(block, `condition${id}`, Blockly.GobstonesLanguage.ORDER_NONE);
|
6031
|
+
|
6032
|
+
return `${value} when (${conditionValue})`;
|
6033
|
+
})
|
6034
|
+
.join("\n ");
|
6035
|
+
|
6036
|
+
const otherwise = Blockly.GobstonesLanguage.valueToCode(block, "otherwise", Blockly.GobstonesLanguage.ORDER_NONE);
|
6037
|
+
const code = `\n choose ${elements}\n ${otherwise} otherwise\n`;
|
6038
|
+
|
6039
|
+
return [code, Blockly.GobstonesLanguage.ORDER_ATOMIC];
|
6040
|
+
};
|
6041
|
+
|
5863
6042
|
Blockly.GobstonesLanguage.ForEach = function (block) {
|
5864
6043
|
let body = Blockly.GobstonesLanguage.statementToCode(block, 'block');
|
5865
6044
|
var varName = formatCallName(block.getFieldValue('varName'), false, Blockly.VARIABLE_CATEGORY_NAME);
|
@@ -6721,6 +6900,11 @@ Blockly.ErrorInforming.CssContent = [
|
|
6721
6900
|
// Bloque
|
6722
6901
|
Blockly.Blocks[name] = {
|
6723
6902
|
init: function () {
|
6903
|
+
this.jsonInit({
|
6904
|
+
type: "Statement",
|
6905
|
+
previousStatement: "Statement",
|
6906
|
+
nextStatement: "Statement",
|
6907
|
+
});
|
6724
6908
|
this.setColour(Blockly.CUSTOM_COLORS.primitiveProcedure);
|
6725
6909
|
|
6726
6910
|
if (icon) {
|
@@ -6734,8 +6918,6 @@ Blockly.ErrorInforming.CssContent = [
|
|
6734
6918
|
|
6735
6919
|
self._definePrimitiveHolesOrDropdown(this, parts, dropdownOptions);
|
6736
6920
|
|
6737
|
-
this.setPreviousStatement(true);
|
6738
|
-
this.setNextStatement(true);
|
6739
6921
|
this.setInputsInline(true);
|
6740
6922
|
this.setTooltip(definition.attributes && definition.attributes.tooltip || "");
|
6741
6923
|
}
|
@@ -6796,6 +6978,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
6796
6978
|
this.setNextStatement(false);
|
6797
6979
|
this.setInputsInline(true);
|
6798
6980
|
this.setOutput('var');
|
6981
|
+
this.setTooltip(definition.attributes && definition.attributes.tooltip || "");
|
6799
6982
|
}
|
6800
6983
|
};
|
6801
6984
|
|
@@ -408,6 +408,9 @@ Polymer.telemetry.instanceCount = 0;
|
|
408
408
|
}());(function () {
|
409
409
|
var modules = {};
|
410
410
|
var lcModules = {};
|
411
|
+
function setModule(id, module) {
|
412
|
+
modules[id] = lcModules[id.toLowerCase()] = module;
|
413
|
+
}
|
411
414
|
var findModule = function (id) {
|
412
415
|
return modules[id] || lcModules[id.toLowerCase()];
|
413
416
|
};
|
@@ -422,9 +425,12 @@ this.register();
|
|
422
425
|
register: function (id) {
|
423
426
|
id = id || this.id || this.getAttribute('name') || this.getAttribute('is');
|
424
427
|
if (id) {
|
428
|
+
if (Polymer.Settings.strictTemplatePolicy && findModule(id) !== undefined) {
|
429
|
+
setModule(id, null);
|
430
|
+
throw new Error('strictTemplatePolicy: dom-module ' + id + ' re-registered');
|
431
|
+
}
|
425
432
|
this.id = id;
|
426
|
-
|
427
|
-
lcModules[id.toLowerCase()] = this;
|
433
|
+
setModule(id, this);
|
428
434
|
}
|
429
435
|
},
|
430
436
|
import: function (id, selector) {
|
@@ -791,7 +797,7 @@ default:
|
|
791
797
|
return value != null ? value : undefined;
|
792
798
|
}
|
793
799
|
}
|
794
|
-
});Polymer.version = "1.
|
800
|
+
});Polymer.version = "1.12.0";Polymer.Base._addFeature({
|
795
801
|
_registerFeatures: function () {
|
796
802
|
this._prepIs();
|
797
803
|
this._prepBehaviors();
|
@@ -75,7 +75,11 @@ _prepTemplate: function () {
|
|
75
75
|
var module;
|
76
76
|
if (this._template === undefined) {
|
77
77
|
module = Polymer.DomModule.import(this.is);
|
78
|
-
|
78
|
+
var template = module && module.querySelector('template');
|
79
|
+
if (Polymer.Settings.strictTemplatePolicy && !template) {
|
80
|
+
throw new Error('strictTemplatePolicy: expecting dom-module or null _template for ' + this.is);
|
81
|
+
}
|
82
|
+
this._template = template;
|
79
83
|
}
|
80
84
|
if (module) {
|
81
85
|
var assetPath = module.getAttribute('assetpath') || '';
|
@@ -1041,10 +1045,20 @@ this.removeChild(this.childNodes[0]);
|
|
1041
1045
|
},
|
1042
1046
|
setAttribute: function (name, value) {
|
1043
1047
|
this.node.setAttribute(name, value);
|
1044
|
-
this.
|
1048
|
+
this._maybeDistributeForAttributeChange(this.node, name);
|
1045
1049
|
},
|
1046
1050
|
removeAttribute: function (name) {
|
1047
1051
|
this.node.removeAttribute(name);
|
1052
|
+
this._maybeDistributeForAttributeChange(this.node, name);
|
1053
|
+
},
|
1054
|
+
_maybeDistributeForAttributeChange: function (element, name) {
|
1055
|
+
if (name === 'select' && element.localName === 'content') {
|
1056
|
+
var ownerRoot = this.getOwnerRoot();
|
1057
|
+
if (ownerRoot && this._nodeNeedsDistribution(ownerRoot.host)) {
|
1058
|
+
this._lazyDistribute(ownerRoot.host);
|
1059
|
+
return;
|
1060
|
+
}
|
1061
|
+
}
|
1048
1062
|
this._maybeDistributeParent();
|
1049
1063
|
},
|
1050
1064
|
_maybeDistributeParent: function () {
|
@@ -1599,7 +1613,7 @@ return h;
|
|
1599
1613
|
_unobserveContentElements: function (elements) {
|
1600
1614
|
for (var i = 0, n, h; i < elements.length && (n = elements[i]); i++) {
|
1601
1615
|
if (this._isContent(n)) {
|
1602
|
-
h = n.__observeNodesMap.get(this);
|
1616
|
+
h = n.__observeNodesMap && n.__observeNodesMap.get(this);
|
1603
1617
|
if (h) {
|
1604
1618
|
Polymer.dom(n).unobserveNodes(h);
|
1605
1619
|
n.__observeNodesMap.delete(this);
|
@@ -162,6 +162,11 @@ i++;
|
|
162
162
|
}
|
163
163
|
}
|
164
164
|
},
|
165
|
+
_select$Attr: function () {
|
166
|
+
var div = document.createElement('div');
|
167
|
+
div.innerHTML = '<div select$>';
|
168
|
+
return div.childNodes[0].attributes.getNamedItem('select$');
|
169
|
+
}(),
|
165
170
|
_replaceSlotWithContent: function (slot) {
|
166
171
|
var content = slot.ownerDocument.createElement('content');
|
167
172
|
while (slot.firstChild) {
|
@@ -169,13 +174,18 @@ content.appendChild(slot.firstChild);
|
|
169
174
|
}
|
170
175
|
var attrs = slot.attributes;
|
171
176
|
for (var i = 0; i < attrs.length; i++) {
|
172
|
-
|
173
|
-
content.setAttribute(attr.name, attr.value);
|
177
|
+
content.attributes.setNamedItem(attrs[i].cloneNode());
|
174
178
|
}
|
175
179
|
var name = slot.getAttribute('name');
|
176
180
|
if (name) {
|
177
181
|
content.setAttribute('select', '[slot=\'' + name + '\']');
|
178
182
|
}
|
183
|
+
var name$Value = slot.getAttribute('name$');
|
184
|
+
if (name$Value) {
|
185
|
+
var select$Attr = this._select$Attr.cloneNode();
|
186
|
+
select$Attr.value = '[slot=\'' + name$Value + '\']';
|
187
|
+
content.attributes.setNamedItem(select$Attr);
|
188
|
+
}
|
179
189
|
slot.parentNode.replaceChild(content, slot);
|
180
190
|
return content;
|
181
191
|
},
|
@@ -379,7 +389,7 @@ this._marshalAnnotatedListeners();
|
|
379
389
|
}
|
380
390
|
},
|
381
391
|
_configureAnnotationReferences: function () {
|
382
|
-
var notes = this._notes;
|
392
|
+
var notes = this._notes || [];
|
383
393
|
var nodes = this._nodes;
|
384
394
|
for (var i = 0; i < notes.length; i++) {
|
385
395
|
var note = notes[i];
|
@@ -695,7 +705,11 @@ deepTargetFind: function (x, y) {
|
|
695
705
|
var node = document.elementFromPoint(x, y);
|
696
706
|
var next = node;
|
697
707
|
while (next && next.shadowRoot) {
|
708
|
+
var oldNext = next;
|
698
709
|
next = next.shadowRoot.elementFromPoint(x, y);
|
710
|
+
if (oldNext === next) {
|
711
|
+
break;
|
712
|
+
}
|
699
713
|
if (next) {
|
700
714
|
node = next;
|
701
715
|
}
|
@@ -4346,6 +4360,9 @@ properties: { __hideTemplateChildren__: { observer: '_showHideChildren' } },
|
|
4346
4360
|
_instanceProps: Polymer.nob,
|
4347
4361
|
_parentPropPrefix: '_parent_',
|
4348
4362
|
templatize: function (template) {
|
4363
|
+
if (Polymer.Settings.strictTemplatePolicy && !this._getRootDataHost()) {
|
4364
|
+
throw new Error('strictTemplatePolicy: template owner not trusted');
|
4365
|
+
}
|
4349
4366
|
this._templatized = template;
|
4350
4367
|
if (!template._content) {
|
4351
4368
|
template._content = template.content;
|
@@ -4945,6 +4962,9 @@ this._debounceTemplate(this._render);
|
|
4945
4962
|
this._flushTemplates();
|
4946
4963
|
},
|
4947
4964
|
_render: function () {
|
4965
|
+
if (!this.ctor) {
|
4966
|
+
return;
|
4967
|
+
}
|
4948
4968
|
if (this._needFullRefresh) {
|
4949
4969
|
this._applyFullRefresh();
|
4950
4970
|
this._needFullRefresh = false;
|
@@ -5426,10 +5446,12 @@ if (this._instance) {
|
|
5426
5446
|
var c$ = this._instance._children;
|
5427
5447
|
if (c$ && c$.length) {
|
5428
5448
|
var parent = Polymer.dom(Polymer.dom(c$[0]).parentNode);
|
5449
|
+
if (parent) {
|
5429
5450
|
for (var i = 0, n; i < c$.length && (n = c$[i]); i++) {
|
5430
5451
|
parent.removeChild(n);
|
5431
5452
|
}
|
5432
5453
|
}
|
5454
|
+
}
|
5433
5455
|
this._instance = null;
|
5434
5456
|
}
|
5435
5457
|
},
|
@@ -5455,6 +5477,9 @@ properties: { notifyDomChange: { type: Boolean } },
|
|
5455
5477
|
extends: 'template',
|
5456
5478
|
_template: null,
|
5457
5479
|
created: function () {
|
5480
|
+
if (Polymer.Settings.strictTemplatePolicy) {
|
5481
|
+
throw new Error('strictTemplatePolicy: dom-bind not allowed');
|
5482
|
+
}
|
5458
5483
|
var self = this;
|
5459
5484
|
Polymer.RenderStatus.whenReady(function () {
|
5460
5485
|
if (document.readyState == 'loading') {
|
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.32.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: 2019-
|
11
|
+
date: 2019-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|