@glimmer/runtime
Advanced tools
Comparing version 0.65.1 to 0.65.2
@@ -196,3 +196,3 @@ "use strict"; | ||
if (!(0, _reference.isConstRef)(reference)) { | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute)); | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env)); | ||
} | ||
@@ -202,22 +202,20 @@ }); | ||
class UpdateDynamicAttributeOpcode extends _opcodes.UpdatingOpcode { | ||
constructor(reference, attribute) { | ||
constructor(reference, attribute, env) { | ||
super(); | ||
this.reference = reference; | ||
this.attribute = attribute; | ||
this.type = 'patch-element'; | ||
this.lastValue = (0, _reference.valueForRef)(reference); | ||
let initialized = false; | ||
this.updateRef = (0, _reference.createComputeRef)(() => { | ||
let value = (0, _reference.valueForRef)(reference); | ||
if (initialized === true) { | ||
attribute.update(value, env); | ||
} else { | ||
initialized = true; | ||
} | ||
}); | ||
(0, _reference.valueForRef)(this.updateRef); | ||
} | ||
evaluate(vm) { | ||
let { | ||
attribute, | ||
reference, | ||
lastValue | ||
} = this; | ||
let currentValue = (0, _reference.valueForRef)(reference); | ||
if (currentValue !== lastValue) { | ||
attribute.update(currentValue, vm.env); | ||
this.lastValue = currentValue; | ||
} | ||
evaluate() { | ||
(0, _reference.valueForRef)(this.updateRef); | ||
} | ||
@@ -228,2 +226,2 @@ | ||
exports.UpdateDynamicAttributeOpcode = UpdateDynamicAttributeOpcode; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFVQTs7QUFFQTs7QUFFQTs7QUFHQTs7QUFHQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDaEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFVBQUEsQ0FBeUIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQXpCLElBQXlCLENBQXpCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBK0IsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDbkQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGFBQUEsQ0FBNEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTVCLElBQTRCLENBQTVCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBcUI7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBMEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTFCLEdBQTBCLENBQTFCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBMkMsRUFBRCxJQUFPO0FBQy9DLE1BQUksT0FBTyxHQUFTLDRCQUFrQixFQUFFLENBQUYsS0FBQSxDQUF0QyxLQUFzQyxFQUFsQixDQUFwQjtBQUNBLEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQUEsT0FB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QUgsR0FBMUIsSUFBQTtBQUVBLE1BQUksU0FBUyxHQUFHLEVBQUUsQ0FBRixRQUFBLEdBQUEsbUJBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUErQyxDQUFDLENBQWhELFFBQUEsRUFBaEIsU0FBZ0IsQ0FBaEI7O0FBRUEsTUFBSSxDQUFDLDJCQUFMLFNBQUssQ0FBTCxFQUE0QjtBQUMxQixJQUFBLEVBQUUsQ0FBRixVQUFBLENBQWMsSUFBQSw0QkFBQSxDQUFBLFNBQUEsRUFBZCxTQUFjLENBQWQ7QUFDRDtBQVZILENBQUE7O0FBYU0sTUFBQSw0QkFBQSxTQUFBLHVCQUFBLENBQTBEO0FBSzlELEVBQUEsV0FBQSxDQUFBLFNBQUEsRUFBQSxTQUFBLEVBQXNGO0FBQ3BGO0FBRGtCLFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFBdUMsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUpwRCxTQUFBLElBQUEsR0FBQSxlQUFBO0FBTUwsU0FBQSxTQUFBLEdBQWlCLDRCQUFqQixTQUFpQixDQUFqQjtBQUNEOztBQUVELEVBQUEsUUFBUSxDQUFBLEVBQUEsRUFBZTtBQUNyQixRQUFJO0FBQUEsTUFBQSxTQUFBO0FBQUEsTUFBQSxTQUFBO0FBQXdCLE1BQUE7QUFBeEIsUUFBSixJQUFBO0FBQ0EsUUFBSSxZQUFZLEdBQUcsNEJBQW5CLFNBQW1CLENBQW5COztBQUVBLFFBQUksWUFBWSxLQUFoQixTQUFBLEVBQWdDO0FBQzlCLE1BQUEsU0FBUyxDQUFULE1BQUEsQ0FBQSxZQUFBLEVBQStCLEVBQUUsQ0FBakMsR0FBQTtBQUNBLFdBQUEsU0FBQSxHQUFBLFlBQUE7QUFDRDtBQUNGOztBQWxCNkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UsIHZhbHVlRm9yUmVmLCBpc0NvbnN0UmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IFJldmlzaW9uLCBUYWcsIHZhbHVlRm9yVGFnLCB2YWxpZGF0ZVRhZywgY29uc3VtZVRhZyB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrRWxlbWVudCxcbiAgQ2hlY2tPcHRpb24sXG4gIENoZWNrTm9kZSxcbiAgQ2hlY2tNYXliZSxcbn0gZnJvbSAnQGdsaW1tZXIvZGVidWcnO1xuaW1wb3J0IHsgT3AsIE9wdGlvbiwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IE1vZGlmaWVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGlmaWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxbSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsIHVua25vd25dW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChbbWFuYWdlciwgbW9kaWZpZXJdKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKG1vZGlmaWVyKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSB2bS5ydW50aW1lLnJlc29sdmVyLnJlc29sdmU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuICBsZXQgbW9kaWZpZXIgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIHN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIobWFuYWdlciwgbW9kaWZpZXIpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhtb2RpZmllcik7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIG1hbmFnZXIsIG1vZGlmaWVyKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWc6IFRhZyxcbiAgICBwcml2YXRlIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbW9kaWZpZXI6IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbWFuYWdlciwgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsICEhdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAncGF0Y2gtZWxlbWVudCc7XG5cbiAgcHVibGljIGxhc3RWYWx1ZTogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBwcml2YXRlIGF0dHJpYnV0ZTogRHluYW1pY0F0dHJpYnV0ZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBhdHRyaWJ1dGUsIHJlZmVyZW5jZSwgbGFzdFZhbHVlIH0gPSB0aGlzO1xuICAgIGxldCBjdXJyZW50VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuXG4gICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgICBhdHRyaWJ1dGUudXBkYXRlKGN1cnJlbnRWYWx1ZSwgdm0uZW52KTtcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFVQTs7QUFFQTs7QUFFQTs7QUFHQTs7QUFHQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDaEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFVBQUEsQ0FBeUIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQXpCLElBQXlCLENBQXpCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBK0IsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDbkQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGFBQUEsQ0FBNEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTVCLElBQTRCLENBQTVCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsQ0FBQSxFQUFBLEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBcUI7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBMEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTFCLEdBQTBCLENBQTFCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBMkMsRUFBRCxJQUFPO0FBQy9DLE1BQUksT0FBTyxHQUFTLDRCQUFrQixFQUFFLENBQUYsS0FBQSxDQUF0QyxLQUFzQyxFQUFsQixDQUFwQjtBQUNBLEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQUEsT0FB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QUgsR0FBMUIsSUFBQTtBQUVBLE1BQUksU0FBUyxHQUFHLEVBQUUsQ0FBRixRQUFBLEdBQUEsbUJBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUErQyxDQUFDLENBQWhELFFBQUEsRUFBaEIsU0FBZ0IsQ0FBaEI7O0FBRUEsTUFBSSxDQUFDLDJCQUFMLFNBQUssQ0FBTCxFQUE0QjtBQUMxQixJQUFBLEVBQUUsQ0FBRixVQUFBLENBQWMsSUFBQSw0QkFBQSxDQUFBLFNBQUEsRUFBQSxTQUFBLEVBQXVELEVBQUUsQ0FBdkUsR0FBYyxDQUFkO0FBQ0Q7QUFWSCxDQUFBOztBQWFNLE1BQUEsNEJBQUEsU0FBQSx1QkFBQSxDQUEwRDtBQUs5RCxFQUFBLFdBQUEsQ0FBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLEdBQUEsRUFBd0Y7QUFDdEY7QUFMSyxTQUFBLElBQUEsR0FBQSxlQUFBO0FBT0wsUUFBSSxXQUFXLEdBQWYsS0FBQTtBQUVBLFNBQUEsU0FBQSxHQUFpQixpQ0FBaUIsTUFBSztBQUNyQyxVQUFJLEtBQUssR0FBRyw0QkFBWixTQUFZLENBQVo7O0FBRUEsVUFBSSxXQUFXLEtBQWYsSUFBQSxFQUEwQjtBQUN4QixRQUFBLFNBQVMsQ0FBVCxNQUFBLENBQUEsS0FBQSxFQUFBLEdBQUE7QUFERixPQUFBLE1BRU87QUFDTCxRQUFBLFdBQVcsR0FBWCxJQUFBO0FBQ0Q7QUFQSCxLQUFpQixDQUFqQjtBQVVBLGdDQUFZLEtBQVosU0FBQTtBQUNEOztBQUVELEVBQUEsUUFBUSxHQUFBO0FBQ04sZ0NBQVksS0FBWixTQUFBO0FBQ0Q7O0FBekI2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGlzQ29uc3RSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQgeyBPcCwgT3B0aW9uLCBFbnZpcm9ubWVudCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IE1vZGlmaWVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGlmaWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxbSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsIHVua25vd25dW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChbbWFuYWdlciwgbW9kaWZpZXJdKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKG1vZGlmaWVyKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSB2bS5ydW50aW1lLnJlc29sdmVyLnJlc29sdmU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuICBsZXQgbW9kaWZpZXIgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIHN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIobWFuYWdlciwgbW9kaWZpZXIpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhtb2RpZmllcik7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIG1hbmFnZXIsIG1vZGlmaWVyKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWc6IFRhZyxcbiAgICBwcml2YXRlIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbW9kaWZpZXI6IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbWFuYWdlciwgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsICEhdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlLCB2bS5lbnYpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwcml2YXRlIHVwZGF0ZVJlZjogUmVmZXJlbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUsIGVudjogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVJlZiA9IGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGluaXRpYWxpemVkID09PSB0cnVlKSB7XG4gICAgICAgIGF0dHJpYnV0ZS51cGRhdGUodmFsdWUsIGVudik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cblxuICBldmFsdWF0ZSgpIHtcbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -208,3 +208,3 @@ "use strict"; | ||
if (!(0, _reference.isConstRef)(reference)) { | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute)); | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env)); | ||
} | ||
@@ -216,10 +216,18 @@ }); | ||
function UpdateDynamicAttributeOpcode(reference, attribute) { | ||
function UpdateDynamicAttributeOpcode(reference, attribute, env) { | ||
var _this2; | ||
_this2 = _UpdatingOpcode2.call(this) || this; | ||
_this2.reference = reference; | ||
_this2.attribute = attribute; | ||
_this2.type = 'patch-element'; | ||
_this2.lastValue = (0, _reference.valueForRef)(reference); | ||
var initialized = false; | ||
_this2.updateRef = (0, _reference.createComputeRef)(function () { | ||
var value = (0, _reference.valueForRef)(reference); | ||
if (initialized === true) { | ||
attribute.update(value, env); | ||
} else { | ||
initialized = true; | ||
} | ||
}); | ||
(0, _reference.valueForRef)(_this2.updateRef); | ||
return _this2; | ||
@@ -230,12 +238,4 @@ } | ||
_proto2.evaluate = function evaluate(vm) { | ||
var attribute = this.attribute, | ||
reference = this.reference, | ||
lastValue = this.lastValue; | ||
var currentValue = (0, _reference.valueForRef)(reference); | ||
if (currentValue !== lastValue) { | ||
attribute.update(currentValue, vm.env); | ||
this.lastValue = currentValue; | ||
} | ||
_proto2.evaluate = function evaluate() { | ||
(0, _reference.valueForRef)(this.updateRef); | ||
}; | ||
@@ -247,2 +247,2 @@ | ||
exports.UpdateDynamicAttributeOpcode = UpdateDynamicAttributeOpcode; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFVQTs7QUFFQTs7QUFFQTs7QUFHQTs7Ozs7Ozs7QUFHQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsVUFBQSxFQUFBLEVBQUEsSUFBQSxFQUFzQjtBQUFBLE1BQVYsSUFBVSxHQUFBLElBQUEsQ0FBZixHQUFlO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUF6QixJQUF5QixDQUF6QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStCLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBc0I7QUFBQSxNQUFWLElBQVUsR0FBQSxLQUFBLENBQWYsR0FBZTtBQUNuRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsYUFBQSxDQUE0QixFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBNUIsSUFBNEIsQ0FBNUI7QUFERixDQUFBOztBQUlBLHdCQUFBLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUFtQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXFCO0FBQUEsTUFBVCxHQUFTLEdBQUEsS0FBQSxDQUFkLEdBQWM7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBMEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTFCLEdBQTBCLENBQTFCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBMkMsVUFBRCxFQUFDLEVBQU07QUFDL0MsTUFBSSxPQUFPLEdBQVMsNEJBQWtCLEVBQUUsQ0FBRixLQUFBLENBQXRDLEtBQXNDLEVBQWxCLENBQXBCO0FB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LDRCQUFOLEdBQUEsYUFBQSxVQUFBLGdCQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSw0QkFBQSxFQUFBLGdCQUFBLENBQUE7O0FBS0UsV0FBQSw0QkFBQSxDQUFBLFNBQUEsRUFBQSxTQUFBLEVBQXNGO0FBQUEsUUFBQSxNQUFBOztBQUNwRixJQUFBLE1BQUEsR0FBQSxnQkFBQSxDQUFBLElBQUEsQ0FBQSxJQUFBLEtBQUEsSUFBQTtBQURrQixJQUFBLE1BQUEsQ0FBQSxTQUFBLEdBQUEsU0FBQTtBQUF1QyxJQUFBLE1BQUEsQ0FBQSxTQUFBLEdBQUEsU0FBQTtBQUpwRCxJQUFBLE1BQUEsQ0FBQSxJQUFBLEdBQUEsZUFBQTtBQU1MLElBQUEsTUFBQSxDQUFBLFNBQUEsR0FBaUIsNEJBQWpCLFNBQWlCLENBQWpCO0FBRm9GLFdBQUEsTUFBQTtBQUdyRjs7QUFSSCxNQUFBLE9BQUEsR0FBQSw0QkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsUUFBQSxHQVVFLFNBQUEsUUFBQSxDQUFBLEVBQUEsRUFBdUI7QUFBQSxRQUNqQixTQURpQixHQUFBLEtBQUEsU0FBQTtBQUFBLFFBQ2pCLFNBRGlCLEdBQUEsS0FBQSxTQUFBO0FBQUEsUUFDTyxTQURQLEdBQUEsS0FBQSxTQUFBO0FBRXJCLFFBQUksWUFBWSxHQUFHLDRCQUFuQixTQUFtQixDQUFuQjs7QUFFQSxRQUFJLFlBQVksS0FBaEIsU0FBQSxFQUFnQztBQUM5QixNQUFBLFNBQVMsQ0FBVCxNQUFBLENBQUEsWUFBQSxFQUErQixFQUFFLENBQWpDLEdBQUE7QUFDQSxXQUFBLFNBQUEsR0FBQSxZQUFBO0FBQ0Q7QUFqQkwsR0FBQTs7QUFBQSxTQUFBLDRCQUFBO0FBQUEsQ0FBQSxDQUFBLHVCQUFBLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UsIHZhbHVlRm9yUmVmLCBpc0NvbnN0UmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IFJldmlzaW9uLCBUYWcsIHZhbHVlRm9yVGFnLCB2YWxpZGF0ZVRhZywgY29uc3VtZVRhZyB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrRWxlbWVudCxcbiAgQ2hlY2tPcHRpb24sXG4gIENoZWNrTm9kZSxcbiAgQ2hlY2tNYXliZSxcbn0gZnJvbSAnQGdsaW1tZXIvZGVidWcnO1xuaW1wb3J0IHsgT3AsIE9wdGlvbiwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IE1vZGlmaWVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGlmaWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxbSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsIHVua25vd25dW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChbbWFuYWdlciwgbW9kaWZpZXJdKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKG1vZGlmaWVyKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSB2bS5ydW50aW1lLnJlc29sdmVyLnJlc29sdmU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuICBsZXQgbW9kaWZpZXIgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIHN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIobWFuYWdlciwgbW9kaWZpZXIpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhtb2RpZmllcik7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIG1hbmFnZXIsIG1vZGlmaWVyKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWc6IFRhZyxcbiAgICBwcml2YXRlIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbW9kaWZpZXI6IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbWFuYWdlciwgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsICEhdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAncGF0Y2gtZWxlbWVudCc7XG5cbiAgcHVibGljIGxhc3RWYWx1ZTogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBwcml2YXRlIGF0dHJpYnV0ZTogRHluYW1pY0F0dHJpYnV0ZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBhdHRyaWJ1dGUsIHJlZmVyZW5jZSwgbGFzdFZhbHVlIH0gPSB0aGlzO1xuICAgIGxldCBjdXJyZW50VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuXG4gICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgICBhdHRyaWJ1dGUudXBkYXRlKGN1cnJlbnRWYWx1ZSwgdm0uZW52KTtcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFVQTs7QUFFQTs7QUFFQTs7QUFHQTs7Ozs7Ozs7QUFHQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsVUFBQSxFQUFBLEVBQUEsSUFBQSxFQUFzQjtBQUFBLE1BQVYsSUFBVSxHQUFBLElBQUEsQ0FBZixHQUFlO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUF6QixJQUF5QixDQUF6QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStCLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBc0I7QUFBQSxNQUFWLElBQVUsR0FBQSxLQUFBLENBQWYsR0FBZTtBQUNuRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsYUFBQSxDQUE0QixFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBNUIsSUFBNEIsQ0FBNUI7QUFERixDQUFBOztBQUlBLHdCQUFBLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUFtQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXFCO0FBQUEsTUFBVCxHQUFTLEdBQUEsS0FBQSxDQUFkLEdBQWM7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBMEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTFCLEdBQTBCLENBQTFCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBMkMsVUFBRCxFQUFDLEVBQU07QUFDL0MsTUFBSSxPQUFPLEdBQVMsNEJBQWtCLEVBQUUsQ0FBRixLQUFBLENBQXRDLEtBQXNDLEVBQWxCLENBQXBCO0FBQ0EsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBQSxPQUFBO0FBRkYsQ0FBQTs7QUFLQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBMEMsVUFBRCxFQUFDLEVBQU07QUFDOUMsTUFBSSxVQUFVLEdBQVMsRUFBRSxDQUFGLEtBQUEsQ0FBdkIsS0FBdUIsRUFBdkI7QUFDQSxNQUFJLGVBQWUsR0FBUyxFQUFFLENBQUYsS0FBQSxDQUE1QixLQUE0QixFQUE1QjtBQUNBLE1BQUksT0FBTyxHQUFTLEVBQUUsQ0FBRixLQUFBLENBQXBCLEtBQW9CLEVBQXBCO0FBRUEsTUFBSSxPQUFPLEdBQVMsNEJBQXBCLFVBQW9CLENBQXBCO0FBQ0EsTUFBSSxZQUFZLEdBQVMsNEJBQXpCLGVBQXlCLENBQXpCO0FBQ0EsTUFBSSxJQUFJLEdBQUcsNEJBQVgsT0FBVyxDQUFYOztBQUVBLE1BQUksQ0FBQywyQkFBTCxVQUFLLENBQUwsRUFBNkI7QUFDM0IsSUFBQSxFQUFFLENBQUYsVUFBQSxDQUFjLElBQUEsV0FBQSxDQUFkLFVBQWMsQ0FBZDtBQUNEOztBQUVELE1BQUksWUFBWSxLQUFaLFNBQUEsSUFBOEIsQ0FBQywyQkFBbkMsZUFBbUMsQ0FBbkMsRUFBZ0U7QUFDOUQsSUFBQSxFQUFFLENBQUYsVUFBQSxDQUFjLElBQUEsV0FBQSxDQUFkLGVBQWMsQ0FBZDtBQUNEOztBQUVELE1BQUksS0FBSyxHQUFHLEVBQUUsQ0FBRixRQUFBLEdBQUEsaUJBQUEsQ0FBQSxPQUFBLEVBQUEsSUFBQSxFQUFaLFlBQVksQ0FBWjtBQUNBLE1BQUEsS0FBQSxFQUFXLEVBQUUsQ0FBRixvQkFBQSxDQUFBLEtBQUE7QUFsQmIsQ0FBQTs7QUFxQkEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQXlDLFVBQUQsRUFBQyxFQUFNO0FBQzdDLEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxnQkFBQTtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQXFDLFVBQUQsRUFBQyxFQUFNO0FBQ3pDLE1BQUksVUFBVSxHQUFTLEVBQUUsQ0FBRixVQUFBLENBQXZCLE9BQXVCLENBQXZCO0FBQ0EsTUFBSSxTQUFTLEdBQWIsSUFBQTs7QUFFQSxNQUFBLFVBQUEsRUFBZ0I7QUFDZCxJQUFBLFNBQVMsR0FBRyxVQUFVLENBQVYsS0FBQSxDQUFaLEVBQVksQ0FBWjtBQUNBLElBQUEsRUFBRSxDQUFGLFNBQUEsQ0FBQSxPQUFBLEVBQUEsSUFBQTtBQUNEOztBQUVELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxZQUFBLENBQUEsU0FBQTtBQVRGLENBQUE7O0FBWUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQXFDLFVBQUQsRUFBQyxFQUFNO0FBQ3pDLE1BQUksU0FBUyxHQUFHLEVBQUUsQ0FBRixRQUFBLEdBQWhCLFlBQWdCLEVBQWhCOztBQUVBLE1BQUEsU0FBQSxFQUFlO0FBQ2IsSUFBQSxTQUFTLENBQVQsT0FBQSxDQUFrQixVQUFBLEtBQUEsRUFBd0I7QUFBQSxVQUF2QixPQUF1QixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxVQUF4QixRQUF3QixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFDeEMsTUFBQSxFQUFFLENBQUYsR0FBQSxDQUFBLHVCQUFBLENBQUEsUUFBQSxFQUFBLE9BQUE7QUFDQSxVQUFJLENBQUMsR0FBRyxPQUFPLENBQVAsY0FBQSxDQUFSLFFBQVEsQ0FBUjs7QUFFQSxVQUFBLENBQUEsRUFBTztBQUNMLFFBQUEsRUFBRSxDQUFGLG9CQUFBLENBQUEsQ0FBQTtBQUNEO0FBTkgsS0FBQTtBQVFEO0FBWkgsQ0FBQTs7QUFlQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBZ0MsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUF3QjtBQUFBLE1BQVosTUFBWSxHQUFBLEtBQUEsQ0FBakIsR0FBaUI7O0FBQUEsTUFBQSxxQkFBQSxHQUM3QixFQUFFLENBQUYsT0FBQSxDQUFBLFFBQUEsQ0FBQSxPQUFBLENBRDZCLE1BQzdCLENBRDZCO0FBQUEsTUFDbEQsT0FEa0QsR0FBQSxxQkFBQSxDQUFBLE9BQUE7QUFBQSxNQUN2QyxLQUR1QyxHQUFBLHFCQUFBLENBQUEsS0FBQTs7QUFFdEQsTUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFkLEtBQUE7QUFDQSxNQUFJLElBQUksR0FBUyxLQUFLLENBQXRCLEtBQWlCLEVBQWpCOztBQUhzRCxNQUFBLFlBQUEsR0FJYixFQUFFLENBSlcsUUFJYixFQUphO0FBQUEsTUFJbEQsWUFKa0QsR0FBQSxZQUFBLENBQUEsWUFBQTtBQUFBLE1BSWxDLGdCQUprQyxHQUFBLFlBQUEsQ0FBQSxnQkFBQTs7QUFLdEQsTUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFyQixZQUFtQixFQUFuQjtBQUNBLE1BQUksUUFBUSxHQUFHLE9BQU8sQ0FBUCxNQUFBLENBQUEsWUFBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsWUFBQSxFQUFmLGdCQUFlLENBQWY7QUFRQSxNQUFJLFVBQVUsR0FDTixFQUFFLENBQUYsVUFBQSxDQURSLE9BQ1EsQ0FEUjtBQUtBLEVBQUEsVUFBVSxDQUFWLFdBQUEsQ0FBQSxPQUFBLEVBQUEsUUFBQTtBQUVBLE1BQUksR0FBRyxHQUFHLE9BQU8sQ0FBUCxNQUFBLENBQVYsUUFBVSxDQUFWOztBQUVBLE1BQUksR0FBRyxLQUFQLElBQUEsRUFBa0I7QUFDaEIsK0JBQUEsR0FBQTtBQUNBLElBQUEsRUFBRSxDQUFGLFVBQUEsQ0FBYyxJQUFBLG9CQUFBLENBQUEsR0FBQSxFQUFBLE9BQUEsRUFBZCxRQUFjLENBQWQ7QUFDRDtBQTFCSCxDQUFBOztBQTZCQSxJQUFNLG9CQUFOLEdBQUEsYUFBQSxVQUFBLGVBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLG9CQUFBLEVBQUEsZUFBQSxDQUFBOztBQUlFLFdBQUEsb0JBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLFFBQUEsRUFHMkI7QUFBQSxRQUFBLEtBQUE7O0FBRXpCLElBQUEsS0FBQSxHQUFBLGVBQUEsQ0FBQSxJQUFBLENBQUEsSUFBQSxLQUFBLElBQUE7QUFKTyxJQUFBLEtBQUEsQ0FBQSxHQUFBLEdBQUEsR0FBQTtBQUNDLElBQUEsS0FBQSxDQUFBLE9BQUEsR0FBQSxPQUFBO0FBQ0EsSUFBQSxLQUFBLENBQUEsUUFBQSxHQUFBLFFBQUE7QUFOSCxJQUFBLEtBQUEsQ0FBQSxJQUFBLEdBQUEsaUJBQUE7QUFTTCxJQUFBLEtBQUEsQ0FBQSxXQUFBLEdBQW1CLDRCQUFuQixHQUFtQixDQUFuQjtBQUh5QixXQUFBLEtBQUE7QUFJMUI7O0FBWEgsTUFBQSxNQUFBLEdBQUEsb0JBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLFFBQUEsR0FhRSxTQUFBLFFBQUEsQ0FBQSxFQUFBLEVBQXVCO0FBQUEsUUFDakIsT0FEaUIsR0FBQSxLQUFBLE9BQUE7QUFBQSxRQUNqQixRQURpQixHQUFBLEtBQUEsUUFBQTtBQUFBLFFBQ2pCLEdBRGlCLEdBQUEsS0FBQSxHQUFBO0FBQUEsUUFDUyxXQURULEdBQUEsS0FBQSxXQUFBO0FBR3JCLCtCQUFBLEdBQUE7O0FBRUEsUUFBSSxDQUFDLDRCQUFXLEdBQVgsRUFBTCxXQUFLLENBQUwsRUFBb0M7QUFDbEMsTUFBQSxFQUFFLENBQUYsR0FBQSxDQUFBLHNCQUFBLENBQUEsUUFBQSxFQUFBLE9BQUE7QUFDQSxXQUFBLFdBQUEsR0FBbUIsNEJBQW5CLEdBQW1CLENBQW5CO0FBQ0Q7QUFyQkwsR0FBQTs7QUFBQSxTQUFBLG9CQUFBO0FBQUEsQ0FBQSxDQUFBLHVCQUFBLENBQUE7Ozs7QUF5QkEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQWtDLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBcUQ7QUFBQSxNQUFoRCxLQUFnRCxHQUFBLEtBQUEsQ0FBOUMsR0FBOEM7QUFBQSxNQUFoRCxNQUFnRCxHQUFBLEtBQUEsQ0FBbEMsR0FBa0M7QUFBQSxNQUFoQixVQUFnQixHQUFBLEtBQUEsQ0FBckIsR0FBcUI7O0FBQ3JGLE1BQUksSUFBSSxHQUFHLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUFYLEtBQVcsQ0FBWDs7QUFDQSxNQUFJLEtBQUssR0FBRyxFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBWixNQUFZLENBQVo7O0FBQ0EsTUFBSSxTQUFTLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUFILFVBQUcsQ0FBSCxHQUExQixJQUFBO0FBRUEsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGtCQUFBLENBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxTQUFBO0FBTEYsQ0FBQTs7QUFRQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUF1RDtBQUFBLE1BQWxELEtBQWtELEdBQUEsS0FBQSxDQUFoRCxHQUFnRDtBQUFBLE1BQWxELFFBQWtELEdBQUEsS0FBQSxDQUFwQyxHQUFvQztBQUFBLE1BQWhCLFVBQWdCLEdBQUEsS0FBQSxDQUFyQixHQUFxQjs7QUFDeEYsTUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQVgsS0FBVyxDQUFYOztBQUNBLE1BQUksU0FBUyxHQUFTLEVBQUUsQ0FBRixLQUFBLENBQXRCLEtBQXNCLEVBQXRCO0FBQ0EsTUFBSSxLQUFLLEdBQUcsNEJBQVosU0FBWSxDQUFaO0FBQ0EsTUFBSSxTQUFTLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUFILFVBQUcsQ0FBSCxHQUExQixJQUFBO0FBRUEsTUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFGLFFBQUEsR0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxLQUFBLEVBQStDLENBQUMsQ0FBaEQsUUFBQSxFQUFoQixTQUFnQixDQUFoQjs7QUFFQSxNQUFJLENBQUMsMkJBQUwsU0FBSyxDQUFMLEVBQTRCO0FBQzFCLElBQUEsRUFBRSxDQUFGLFVBQUEsQ0FBYyxJQUFBLDRCQUFBLENBQUEsU0FBQSxFQUFBLFNBQUEsRUFBdUQsRUFBRSxDQUF2RSxHQUFjLENBQWQ7QUFDRDtBQVZILENBQUE7O0FBYUEsSUFBTSw0QkFBTixHQUFBLGFBQUEsVUFBQSxnQkFBQSxFQUFBO0FBQUEsRUFBQSxjQUFBLENBQUEsNEJBQUEsRUFBQSxnQkFBQSxDQUFBOztBQUtFLFdBQUEsNEJBQUEsQ0FBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLEdBQUEsRUFBd0Y7QUFBQSxRQUFBLE1BQUE7O0FBQ3RGLElBQUEsTUFBQSxHQUFBLGdCQUFBLENBQUEsSUFBQSxDQUFBLElBQUEsS0FBQSxJQUFBO0FBTEssSUFBQSxNQUFBLENBQUEsSUFBQSxHQUFBLGVBQUE7QUFPTCxRQUFJLFdBQVcsR0FBZixLQUFBO0FBRUEsSUFBQSxNQUFBLENBQUEsU0FBQSxHQUFpQixpQ0FBaUIsWUFBSztBQUNyQyxVQUFJLEtBQUssR0FBRyw0QkFBWixTQUFZLENBQVo7O0FBRUEsVUFBSSxXQUFXLEtBQWYsSUFBQSxFQUEwQjtBQUN4QixRQUFBLFNBQVMsQ0FBVCxNQUFBLENBQUEsS0FBQSxFQUFBLEdBQUE7QUFERixPQUFBLE1BRU87QUFDTCxRQUFBLFdBQVcsR0FBWCxJQUFBO0FBQ0Q7QUFQSCxLQUFpQixDQUFqQjtBQVVBLGdDQUFZLE1BQUEsQ0FBWixTQUFBO0FBZnNGLFdBQUEsTUFBQTtBQWdCdkY7O0FBckJILE1BQUEsT0FBQSxHQUFBLDRCQUFBLENBQUEsU0FBQTs7QUFBQSxFQUFBLE9BQUEsQ0FBQSxRQUFBLEdBdUJFLFNBQUEsUUFBQSxHQUFRO0FBQ04sZ0NBQVksS0FBWixTQUFBO0FBeEJKLEdBQUE7O0FBQUEsU0FBQSw0QkFBQTtBQUFBLENBQUEsQ0FBQSx1QkFBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiwgaXNDb25zdFJlZiwgY3JlYXRlQ29tcHV0ZVJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBSZXZpc2lvbiwgVGFnLCB2YWx1ZUZvclRhZywgdmFsaWRhdGVUYWcsIGNvbnN1bWVUYWcgfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHtcbiAgY2hlY2ssXG4gIENoZWNrU3RyaW5nLFxuICBDaGVja0VsZW1lbnQsXG4gIENoZWNrT3B0aW9uLFxuICBDaGVja05vZGUsXG4gIENoZWNrTWF5YmUsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7IE9wLCBPcHRpb24sIEVudmlyb25tZW50LCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlciB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHQwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgTW9kaWZpZXJEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vbW9kaWZpZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBUFBFTkRfT1BDT0RFUywgVXBkYXRpbmdPcGNvZGUgfSBmcm9tICcuLi8uLi9vcGNvZGVzJztcbmltcG9ydCB7IFVwZGF0aW5nVk0gfSBmcm9tICcuLi8uLi92bSc7XG5pbXBvcnQgeyBBc3NlcnQgfSBmcm9tICcuL3ZtJztcbmltcG9ydCB7IER5bmFtaWNBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi92bS9hdHRyaWJ1dGVzL2R5bmFtaWMnO1xuaW1wb3J0IHsgQ2hlY2tSZWZlcmVuY2UsIENoZWNrQXJndW1lbnRzLCBDaGVja09wZXJhdGlvbnMgfSBmcm9tICcuLy1kZWJ1Zy1zdHJpcCc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuVGV4dCwgKHZtLCB7IG9wMTogdGV4dCB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kVGV4dCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRleHQpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ29tbWVudCwgKHZtLCB7IG9wMTogdGV4dCB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kQ29tbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRleHQpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuT3BlbkVsZW1lbnQsICh2bSwgeyBvcDE6IHRhZyB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkub3BlbkVsZW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0YWcpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuT3BlbkR5bmFtaWNFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IHRhZ05hbWUgPSBjaGVjayh2YWx1ZUZvclJlZihjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSkpLCBDaGVja1N0cmluZyk7XG4gIHZtLmVsZW1lbnRzKCkub3BlbkVsZW1lbnQodGFnTmFtZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlB1c2hSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IGVsZW1lbnRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBpbnNlcnRCZWZvcmVSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBndWlkUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuXG4gIGxldCBlbGVtZW50ID0gY2hlY2sodmFsdWVGb3JSZWYoZWxlbWVudFJlZiksIENoZWNrRWxlbWVudCk7XG4gIGxldCBpbnNlcnRCZWZvcmUgPSBjaGVjayh2YWx1ZUZvclJlZihpbnNlcnRCZWZvcmVSZWYpLCBDaGVja01heWJlKENoZWNrT3B0aW9uKENoZWNrTm9kZSkpKTtcbiAgbGV0IGd1aWQgPSB2YWx1ZUZvclJlZihndWlkUmVmKSBhcyBzdHJpbmc7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKGVsZW1lbnRSZWYpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgQXNzZXJ0KGVsZW1lbnRSZWYpKTtcbiAgfVxuXG4gIGlmIChpbnNlcnRCZWZvcmUgIT09IHVuZGVmaW5lZCAmJiAhaXNDb25zdFJlZihpbnNlcnRCZWZvcmVSZWYpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgQXNzZXJ0KGluc2VydEJlZm9yZVJlZikpO1xuICB9XG5cbiAgbGV0IGJsb2NrID0gdm0uZWxlbWVudHMoKS5wdXNoUmVtb3RlRWxlbWVudChlbGVtZW50LCBndWlkLCBpbnNlcnRCZWZvcmUpO1xuICBpZiAoYmxvY2spIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGJsb2NrKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUG9wUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkucG9wUmVtb3RlRWxlbWVudCgpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5GbHVzaEVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgb3BlcmF0aW9ucyA9IGNoZWNrKHZtLmZldGNoVmFsdWUoJHQwKSwgQ2hlY2tPcGVyYXRpb25zKTtcbiAgbGV0IG1vZGlmaWVyczogT3B0aW9uPFtJbnRlcm5hbE1vZGlmaWVyTWFuYWdlciwgdW5rbm93bl1bXT4gPSBudWxsO1xuXG4gIGlmIChvcGVyYXRpb25zKSB7XG4gICAgbW9kaWZpZXJzID0gb3BlcmF0aW9ucy5mbHVzaCh2bSk7XG4gICAgdm0ubG9hZFZhbHVlKCR0MCwgbnVsbCk7XG4gIH1cblxuICB2bS5lbGVtZW50cygpLmZsdXNoRWxlbWVudChtb2RpZmllcnMpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5DbG9zZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgbW9kaWZpZXJzID0gdm0uZWxlbWVudHMoKS5jbG9zZUVsZW1lbnQoKTtcblxuICBpZiAobW9kaWZpZXJzKSB7XG4gICAgbW9kaWZpZXJzLmZvckVhY2goKFttYW5hZ2VyLCBtb2RpZmllcl0pID0+IHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZUluc3RhbGxNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICBsZXQgZCA9IG1hbmFnZXIuZ2V0RGVzdHJveWFibGUobW9kaWZpZXIpO1xuXG4gICAgICBpZiAoZCkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Nb2RpZmllciwgKHZtLCB7IG9wMTogaGFuZGxlIH0pID0+IHtcbiAgbGV0IHsgbWFuYWdlciwgc3RhdGUgfSA9IHZtLnJ1bnRpbWUucmVzb2x2ZXIucmVzb2x2ZTxNb2RpZmllckRlZmluaXRpb24+KGhhbmRsZSk7XG4gIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICBsZXQgYXJncyA9IGNoZWNrKHN0YWNrLnBvcEpzKCksIENoZWNrQXJndW1lbnRzKTtcbiAgbGV0IHsgY29uc3RydWN0aW5nLCB1cGRhdGVPcGVyYXRpb25zIH0gPSB2bS5lbGVtZW50cygpO1xuICBsZXQgZHluYW1pY1Njb3BlID0gdm0uZHluYW1pY1Njb3BlKCk7XG4gIGxldCBtb2RpZmllciA9IG1hbmFnZXIuY3JlYXRlKFxuICAgIGV4cGVjdChjb25zdHJ1Y3RpbmcsICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCB0aGUgZWxlbWVudCBpdCBhcHBsaWVzIHRvJyksXG4gICAgc3RhdGUsXG4gICAgYXJncyxcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdXBkYXRlT3BlcmF0aW9uc1xuICApO1xuXG4gIGxldCBvcGVyYXRpb25zID0gZXhwZWN0KFxuICAgIGNoZWNrKHZtLmZldGNoVmFsdWUoJHQwKSwgQ2hlY2tPcGVyYXRpb25zKSxcbiAgICAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgb3BlcmF0aW9ucyB0byBhcHBlbmQgdG8nXG4gICk7XG5cbiAgb3BlcmF0aW9ucy5hZGRNb2RpZmllcihtYW5hZ2VyLCBtb2RpZmllcik7XG5cbiAgbGV0IHRhZyA9IG1hbmFnZXIuZ2V0VGFnKG1vZGlmaWVyKTtcblxuICBpZiAodGFnICE9PSBudWxsKSB7XG4gICAgY29uc3VtZVRhZyh0YWcpO1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IFVwZGF0ZU1vZGlmaWVyT3Bjb2RlKHRhZywgbWFuYWdlciwgbW9kaWZpZXIpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2RpZmllck9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAndXBkYXRlLW1vZGlmaWVyJztcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlZDogUmV2aXNpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhZzogVGFnLFxuICAgIHByaXZhdGUgbWFuYWdlcjogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gICAgcHJpdmF0ZSBtb2RpZmllcjogdW5rbm93blxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBtYW5hZ2VyLCBtb2RpZmllciwgdGFnLCBsYXN0VXBkYXRlZCB9ID0gdGhpcztcblxuICAgIGNvbnN1bWVUYWcodGFnKTtcblxuICAgIGlmICghdmFsaWRhdGVUYWcodGFnLCBsYXN0VXBkYXRlZCkpIHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZVVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBtYW5hZ2VyKTtcbiAgICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICAgIH1cbiAgfVxufVxuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuU3RhdGljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3ZhbHVlLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB2YWx1ZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfdmFsdWUpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgdm0uZWxlbWVudHMoKS5zZXRTdGF0aWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiB0cnVzdGluZywgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgcmVmZXJlbmNlID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgbGV0IGF0dHJpYnV0ZSA9IHZtLmVsZW1lbnRzKCkuc2V0RHluYW1pY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgISF0cnVzdGluZywgbmFtZXNwYWNlKTtcblxuICBpZiAoIWlzQ29uc3RSZWYocmVmZXJlbmNlKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUocmVmZXJlbmNlLCBhdHRyaWJ1dGUsIHZtLmVudikpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3BhdGNoLWVsZW1lbnQnO1xuXG4gIHByaXZhdGUgdXBkYXRlUmVmOiBSZWZlcmVuY2U7XG5cbiAgY29uc3RydWN0b3IocmVmZXJlbmNlOiBSZWZlcmVuY2U8dW5rbm93bj4sIGF0dHJpYnV0ZTogRHluYW1pY0F0dHJpYnV0ZSwgZW52OiBFbnZpcm9ubWVudCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBsZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMudXBkYXRlUmVmID0gY3JlYXRlQ29tcHV0ZVJlZigoKSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuXG4gICAgICBpZiAoaW5pdGlhbGl6ZWQgPT09IHRydWUpIHtcbiAgICAgICAgYXR0cmlidXRlLnVwZGF0ZSh2YWx1ZSwgZW52KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhbHVlRm9yUmVmKHRoaXMudXBkYXRlUmVmKTtcbiAgfVxuXG4gIGV2YWx1YXRlKCkge1xuICAgIHZhbHVlRm9yUmVmKHRoaXMudXBkYXRlUmVmKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -1,2 +0,2 @@ | ||
import { valueForRef, isConstRef } from '@glimmer/reference'; | ||
import { valueForRef, isConstRef, createComputeRef } from '@glimmer/reference'; | ||
import { valueForTag, validateTag, consumeTag } from '@glimmer/validator'; | ||
@@ -167,29 +167,27 @@ import { $t0 } from '@glimmer/vm'; | ||
if (!isConstRef(reference)) { | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute)); | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env)); | ||
} | ||
}); | ||
export class UpdateDynamicAttributeOpcode extends UpdatingOpcode { | ||
constructor(reference, attribute) { | ||
constructor(reference, attribute, env) { | ||
super(); | ||
this.reference = reference; | ||
this.attribute = attribute; | ||
this.type = 'patch-element'; | ||
this.lastValue = valueForRef(reference); | ||
let initialized = false; | ||
this.updateRef = createComputeRef(() => { | ||
let value = valueForRef(reference); | ||
if (initialized === true) { | ||
attribute.update(value, env); | ||
} else { | ||
initialized = true; | ||
} | ||
}); | ||
valueForRef(this.updateRef); | ||
} | ||
evaluate(vm) { | ||
let { | ||
attribute, | ||
reference, | ||
lastValue | ||
} = this; | ||
let currentValue = valueForRef(reference); | ||
if (currentValue !== lastValue) { | ||
attribute.update(currentValue, vm.env); | ||
this.lastValue = currentValue; | ||
} | ||
evaluate() { | ||
valueForRef(this.updateRef); | ||
} | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQW9CLFdBQXBCLEVBQWlDLFVBQWpDLFFBQW1ELG9CQUFuRDtBQUNBLFNBQXdCLFdBQXhCLEVBQXFDLFdBQXJDLEVBQWtELFVBQWxELFFBQW9FLG9CQUFwRTtBQVVBLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUVBLFNBQVMsY0FBVCxFQUF5QixjQUF6QixRQUErQyxlQUEvQztBQUVBLFNBQVMsTUFBVCxRQUF1QixNQUF2QjtBQUdBLFNBQVMsU0FBVCxRQUEwQixlQUExQjtBQUdBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsQ0FBQyxFQUFELEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDaEQsRUFBQSxFQUFFLENBQUMsUUFBSCxHQUFjLFVBQWQsQ0FBeUIsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBekI7QUFDRCxDQUZEO0FBSUEsY0FBYyxDQUFDLEdBQWYsQ0FBa0I7QUFBQTtBQUFsQixFQUErQixDQUFDLEVBQUQsRUFBSztBQUFFLEVBQUEsR0FBRyxFQUFFO0FBQVAsQ0FBTCxLQUFzQjtBQUNuRCxFQUFBLEVBQUUsQ0FBQyxRQUFILEdBQWMsYUFBZCxDQUE0QixFQUFFLENBQUMsU0FBRCxDQUFGLENBQWMsUUFBZCxDQUF1QixJQUF2QixDQUE1QjtBQUNELENBRkQ7QUFJQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXFCO0FBQ3RELEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxXQUFkLENBQTBCLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQXVCLEdB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QyxTQUFELENBQTlCOztBQUVBLFFBQUksWUFBWSxLQUFLLFNBQXJCLEVBQWdDO0FBQzlCLE1BQUEsU0FBUyxDQUFDLE1BQVYsQ0FBaUIsWUFBakIsRUFBK0IsRUFBRSxDQUFDLEdBQWxDO0FBQ0EsV0FBSyxTQUFMLEdBQWlCLFlBQWpCO0FBQ0Q7QUFDRjs7QUFsQjZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiwgaXNDb25zdFJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBSZXZpc2lvbiwgVGFnLCB2YWx1ZUZvclRhZywgdmFsaWRhdGVUYWcsIGNvbnN1bWVUYWcgfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHtcbiAgY2hlY2ssXG4gIENoZWNrU3RyaW5nLFxuICBDaGVja0VsZW1lbnQsXG4gIENoZWNrT3B0aW9uLFxuICBDaGVja05vZGUsXG4gIENoZWNrTWF5YmUsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7IE9wLCBPcHRpb24sIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdDAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBNb2RpZmllckRlZmluaXRpb24gfSBmcm9tICcuLi8uLi9tb2RpZmllci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IHsgVXBkYXRpbmdWTSB9IGZyb20gJy4uLy4uL3ZtJztcbmltcG9ydCB7IEFzc2VydCB9IGZyb20gJy4vdm0nO1xuaW1wb3J0IHsgRHluYW1pY0F0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3ZtL2F0dHJpYnV0ZXMvZHluYW1pYyc7XG5pbXBvcnQgeyBDaGVja1JlZmVyZW5jZSwgQ2hlY2tBcmd1bWVudHMsIENoZWNrT3BlcmF0aW9ucyB9IGZyb20gJy4vLWRlYnVnLXN0cmlwJztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248W0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyLCB1bmtub3duXVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgoW21hbmFnZXIsIG1vZGlmaWVyXSkgPT4ge1xuICAgICAgdm0uZW52LnNjaGVkdWxlSW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBtYW5hZ2VyKTtcbiAgICAgIGxldCBkID0gbWFuYWdlci5nZXREZXN0cm95YWJsZShtb2RpZmllcik7XG5cbiAgICAgIGlmIChkKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk1vZGlmaWVyLCAodm0sIHsgb3AxOiBoYW5kbGUgfSkgPT4ge1xuICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gdm0ucnVudGltZS5yZXNvbHZlci5yZXNvbHZlPE1vZGlmaWVyRGVmaW5pdGlvbj4oaGFuZGxlKTtcbiAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgbGV0IG1vZGlmaWVyID0gbWFuYWdlci5jcmVhdGUoXG4gICAgZXhwZWN0KGNvbnN0cnVjdGluZywgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIHRoZSBlbGVtZW50IGl0IGFwcGxpZXMgdG8nKSxcbiAgICBzdGF0ZSxcbiAgICBhcmdzLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB1cGRhdGVPcGVyYXRpb25zXG4gICk7XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKG1hbmFnZXIsIG1vZGlmaWVyKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcobW9kaWZpZXIpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBtYW5hZ2VyLCBtb2RpZmllcikpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZU1vZGlmaWVyT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICd1cGRhdGUtbW9kaWZpZXInO1xuICBwcml2YXRlIGxhc3RVcGRhdGVkOiBSZXZpc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFnOiBUYWcsXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgICBwcml2YXRlIG1vZGlmaWVyOiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gIH1cblxuICBldmFsdWF0ZSh2bTogVXBkYXRpbmdWTSkge1xuICAgIGxldCB7IG1hbmFnZXIsIG1vZGlmaWVyLCB0YWcsIGxhc3RVcGRhdGVkIH0gPSB0aGlzO1xuXG4gICAgY29uc3VtZVRhZyh0YWcpO1xuXG4gICAgaWYgKCF2YWxpZGF0ZVRhZyh0YWcsIGxhc3RVcGRhdGVkKSkge1xuICAgICAgdm0uZW52LnNjaGVkdWxlVXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gICAgfVxuICB9XG59XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5TdGF0aWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdmFsdWUsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHZhbHVlID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF92YWx1ZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICB2bS5lbGVtZW50cygpLnNldFN0YXRpY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IHRydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICBsZXQgYXR0cmlidXRlID0gdm0uZWxlbWVudHMoKS5zZXREeW5hbWljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCAhIXRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSkpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3BhdGNoLWVsZW1lbnQnO1xuXG4gIHB1YmxpYyBsYXN0VmFsdWU6IHVua25vd247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgcHJpdmF0ZSBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgYXR0cmlidXRlLCByZWZlcmVuY2UsIGxhc3RWYWx1ZSB9ID0gdGhpcztcbiAgICBsZXQgY3VycmVudFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgIGlmIChjdXJyZW50VmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgYXR0cmlidXRlLnVwZGF0ZShjdXJyZW50VmFsdWUsIHZtLmVudik7XG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQW9CLFdBQXBCLEVBQWlDLFVBQWpDLEVBQTZDLGdCQUE3QyxRQUFxRSxvQkFBckU7QUFDQSxTQUF3QixXQUF4QixFQUFxQyxXQUFyQyxFQUFrRCxVQUFsRCxRQUFvRSxvQkFBcEU7QUFVQSxTQUFTLEdBQVQsUUFBb0IsYUFBcEI7QUFFQSxTQUFTLGNBQVQsRUFBeUIsY0FBekIsUUFBK0MsZUFBL0M7QUFFQSxTQUFTLE1BQVQsUUFBdUIsTUFBdkI7QUFHQSxTQUFTLFNBQVQsUUFBMEIsZUFBMUI7QUFHQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ2hELEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxVQUFkLENBQXlCLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQXVCLElBQXZCLENBQXpCO0FBQ0QsQ0FGRDtBQUlBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBK0IsQ0FBQyxFQUFELEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDbkQsRUFBQSxFQUFFLENBQUMsUUFBSCxHQUFjLGFBQWQsQ0FBNEIsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBNUI7QUFDRCxDQUZEO0FBSUEsY0FBYyxDQUFDLEdBQWYsQ0FBa0I7QUFBQTtBQUFsQixFQUFtQyxDQUFDLEVBQUQsRUFBSztBQUFFLEVBQUEsR0FBRyxFQUFFO0FBQVAsQ0FBTCxLQUFxQjtBQUN0RCxFQUFBLEVBQUUsQ0FBQyxRQUFILEdBQWMsV0FBZCxDQUEwQixFQUFFLENBQUMsU0FBRCxDQUFGLENBQWMs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QUF4QjtBQUNELE9BRkQsTUFFTztBQUNMLFFBQUEsV0FBVyxHQUFHLElBQWQ7QUFDRDtBQUNGLEtBUmdDLENBQWpDO0FBVUEsSUFBQSxXQUFXLENBQUMsS0FBSyxTQUFOLENBQVg7QUFDRDs7QUFFRCxFQUFBLFFBQVEsR0FBQTtBQUNOLElBQUEsV0FBVyxDQUFDLEtBQUssU0FBTixDQUFYO0FBQ0Q7O0FBekI2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGlzQ29uc3RSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQgeyBPcCwgT3B0aW9uLCBFbnZpcm9ubWVudCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IE1vZGlmaWVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGlmaWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxbSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsIHVua25vd25dW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChbbWFuYWdlciwgbW9kaWZpZXJdKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKG1vZGlmaWVyKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSB2bS5ydW50aW1lLnJlc29sdmVyLnJlc29sdmU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuICBsZXQgbW9kaWZpZXIgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIHN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIobWFuYWdlciwgbW9kaWZpZXIpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhtb2RpZmllcik7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIG1hbmFnZXIsIG1vZGlmaWVyKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWc6IFRhZyxcbiAgICBwcml2YXRlIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbW9kaWZpZXI6IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbWFuYWdlciwgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsICEhdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlLCB2bS5lbnYpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwcml2YXRlIHVwZGF0ZVJlZjogUmVmZXJlbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUsIGVudjogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVJlZiA9IGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGluaXRpYWxpemVkID09PSB0cnVlKSB7XG4gICAgICAgIGF0dHJpYnV0ZS51cGRhdGUodmFsdWUsIGVudik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cblxuICBldmFsdWF0ZSgpIHtcbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } | ||
import { valueForRef, isConstRef } from '@glimmer/reference'; | ||
import { valueForRef, isConstRef, createComputeRef } from '@glimmer/reference'; | ||
import { valueForTag, validateTag, consumeTag } from '@glimmer/validator'; | ||
@@ -173,3 +173,3 @@ import { $t0 } from '@glimmer/vm'; | ||
if (!isConstRef(reference)) { | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute)); | ||
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env)); | ||
} | ||
@@ -180,10 +180,18 @@ }); | ||
function UpdateDynamicAttributeOpcode(reference, attribute) { | ||
function UpdateDynamicAttributeOpcode(reference, attribute, env) { | ||
var _this2; | ||
_this2 = _UpdatingOpcode2.call(this) || this; | ||
_this2.reference = reference; | ||
_this2.attribute = attribute; | ||
_this2.type = 'patch-element'; | ||
_this2.lastValue = valueForRef(reference); | ||
var initialized = false; | ||
_this2.updateRef = createComputeRef(function () { | ||
var value = valueForRef(reference); | ||
if (initialized === true) { | ||
attribute.update(value, env); | ||
} else { | ||
initialized = true; | ||
} | ||
}); | ||
valueForRef(_this2.updateRef); | ||
return _this2; | ||
@@ -194,12 +202,4 @@ } | ||
_proto2.evaluate = function evaluate(vm) { | ||
var attribute = this.attribute, | ||
reference = this.reference, | ||
lastValue = this.lastValue; | ||
var currentValue = valueForRef(reference); | ||
if (currentValue !== lastValue) { | ||
attribute.update(currentValue, vm.env); | ||
this.lastValue = currentValue; | ||
} | ||
_proto2.evaluate = function evaluate() { | ||
valueForRef(this.updateRef); | ||
}; | ||
@@ -209,2 +209,2 @@ | ||
}(UpdatingOpcode); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBQSxXQUFBLEVBQUEsVUFBQSxRQUFBLG9CQUFBO0FBQ0EsU0FBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLFVBQUEsUUFBQSxvQkFBQTtBQVVBLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFFQSxTQUFBLGNBQUEsRUFBQSxjQUFBLFFBQUEsZUFBQTtBQUVBLFNBQUEsTUFBQSxRQUFBLE1BQUE7QUFHQSxTQUFBLFNBQUEsUUFBQSxlQUFBO0FBR0EsY0FBYyxDQUFkLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUE0QixVQUFBLEVBQUEsUUFBc0I7QUFBQSxNQUFWLElBQVUsUUFBZixHQUFlO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixTQUFFLENBQUYsQ0FBQSxRQUFBLENBQXpCLElBQXlCLENBQXpCO0FBREYsQ0FBQTtBQUlBLGNBQWMsQ0FBZCxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBK0IsVUFBQSxFQUFBLFNBQXNCO0FBQUEsTUFBVixJQUFVLFNBQWYsR0FBZTtBQUNuRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsYUFBQSxDQUE0QixFQUFFLENBQUYsU0FBRSxDQUFGLENBQUEsUUFBQSxDQUE1QixJQUE0QixDQUE1QjtBQURGLENBQUE7QUFJQSxjQUFjLENBQWQsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLFVBQUEsRUFBQSxTQUFxQjtBQUFBLE1BQVQsR0FBUyxTQUFkLEdBQWM7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdBQUEsQ0FBMEIsRUFBRSxDQUFGLFNBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBMUIsR0FBMEIsQ0FBMUI7QUFERixDQUFBO0FBSUEsY0FBYyxDQUFkLEdBQUEsQ0FBa0I7QUFBQTtB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Q3JCLElBRHFCLENBQ2pCLFNBRGlCO0FBQUEsUUFDakIsU0FEaUIsR0FDckIsSUFEcUIsQ0FDakIsU0FEaUI7QUFBQSxRQUNPLFNBRFAsR0FDckIsSUFEcUIsQ0FDTyxTQURQO0FBRXJCLFFBQUksWUFBWSxHQUFHLFdBQVcsQ0FBOUIsU0FBOEIsQ0FBOUI7O0FBRUEsUUFBSSxZQUFZLEtBQWhCLFNBQUEsRUFBZ0M7QUFDOUIsTUFBQSxTQUFTLENBQVQsTUFBQSxDQUFBLFlBQUEsRUFBK0IsRUFBRSxDQUFqQyxHQUFBO0FBQ0EsV0FBQSxTQUFBLEdBQUEsWUFBQTtBQUNEO0FBQ0YsR0FsQkg7O0FBQUE7QUFBQSxFQUFNLGNBQU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UsIHZhbHVlRm9yUmVmLCBpc0NvbnN0UmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IFJldmlzaW9uLCBUYWcsIHZhbHVlRm9yVGFnLCB2YWxpZGF0ZVRhZywgY29uc3VtZVRhZyB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrRWxlbWVudCxcbiAgQ2hlY2tPcHRpb24sXG4gIENoZWNrTm9kZSxcbiAgQ2hlY2tNYXliZSxcbn0gZnJvbSAnQGdsaW1tZXIvZGVidWcnO1xuaW1wb3J0IHsgT3AsIE9wdGlvbiwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IE1vZGlmaWVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGlmaWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxbSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsIHVua25vd25dW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChbbWFuYWdlciwgbW9kaWZpZXJdKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKG1vZGlmaWVyKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSB2bS5ydW50aW1lLnJlc29sdmVyLnJlc29sdmU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuICBsZXQgc3RhY2sgPSB2bS5zdGFjaztcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuICBsZXQgbW9kaWZpZXIgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIHN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIobWFuYWdlciwgbW9kaWZpZXIpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhtb2RpZmllcik7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIG1hbmFnZXIsIG1vZGlmaWVyKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWc6IFRhZyxcbiAgICBwcml2YXRlIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbW9kaWZpZXI6IHVua25vd25cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbWFuYWdlciwgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllciwgbWFuYWdlcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsICEhdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlKSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAncGF0Y2gtZWxlbWVudCc7XG5cbiAgcHVibGljIGxhc3RWYWx1ZTogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBwcml2YXRlIGF0dHJpYnV0ZTogRHluYW1pY0F0dHJpYnV0ZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBhdHRyaWJ1dGUsIHJlZmVyZW5jZSwgbGFzdFZhbHVlIH0gPSB0aGlzO1xuICAgIGxldCBjdXJyZW50VmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuXG4gICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gbGFzdFZhbHVlKSB7XG4gICAgICBhdHRyaWJ1dGUudXBkYXRlKGN1cnJlbnRWYWx1ZSwgdm0uZW52KTtcbiAgICAgIHRoaXMubGFzdFZhbHVlID0gY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBQSxXQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLFdBQUEsRUFBQSxXQUFBLEVBQUEsVUFBQSxRQUFBLG9CQUFBO0FBVUEsU0FBQSxHQUFBLFFBQUEsYUFBQTtBQUVBLFNBQUEsY0FBQSxFQUFBLGNBQUEsUUFBQSxlQUFBO0FBRUEsU0FBQSxNQUFBLFFBQUEsTUFBQTtBQUdBLFNBQUEsU0FBQSxRQUFBLGVBQUE7QUFHQSxjQUFjLENBQWQsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLFVBQUEsRUFBQSxRQUFzQjtBQUFBLE1BQVYsSUFBVSxRQUFmLEdBQWU7QUFDaEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFVBQUEsQ0FBeUIsRUFBRSxDQUFGLFNBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBekIsSUFBeUIsQ0FBekI7QUFERixDQUFBO0FBSUEsY0FBYyxDQUFkLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUErQixVQUFBLEVBQUEsU0FBc0I7QUFBQSxNQUFWLElBQVUsU0FBZixHQUFlO0FBQ25ELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxhQUFBLENBQTRCLEVBQUUsQ0FBRixTQUFFLENBQUYsQ0FBQSxRQUFBLENBQTVCLElBQTRCLENBQTVCO0FBREYsQ0FBQTtBQUlBLGNBQWMsQ0FBZCxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsVUFBQSxFQUFBLFNBQXFCO0FBQUEsTUFBVCxHQUFTLFNBQWQsR0FBYztBQUN0RCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsV0FBQSxDQUEwQixFQUFFLENBQUYsU0FBRSxDQUFGLENBQUEsUUFBQSxDQUExQixHQUEwQixDQUExQjtBQURGLENBQUE7QUFJQSxjQUFjLENBQWQsR0FBQSxD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QUFBLEVBQTBCO0FBQ3hCLFFBQUEsU0FBUyxDQUFULE1BQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQTtBQURGLE9BQUEsTUFFTztBQUNMLFFBQUEsV0FBVyxHQUFYLElBQUE7QUFDRDtBQVBILEtBQWlDLENBQWpDO0FBVUEsSUFBQSxXQUFXLENBQUMsT0FBWixTQUFXLENBQVg7QUFmc0Y7QUFnQnZGOztBQXJCSDs7QUFBQSxVQXVCRSxRQXZCRixHQXVCRSxvQkFBUTtBQUNOLElBQUEsV0FBVyxDQUFDLEtBQVosU0FBVyxDQUFYO0FBQ0QsR0F6Qkg7O0FBQUE7QUFBQSxFQUFNLGNBQU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UsIHZhbHVlRm9yUmVmLCBpc0NvbnN0UmVmLCBjcmVhdGVDb21wdXRlUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IFJldmlzaW9uLCBUYWcsIHZhbHVlRm9yVGFnLCB2YWxpZGF0ZVRhZywgY29uc3VtZVRhZyB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrRWxlbWVudCxcbiAgQ2hlY2tPcHRpb24sXG4gIENoZWNrTm9kZSxcbiAgQ2hlY2tNYXliZSxcbn0gZnJvbSAnQGdsaW1tZXIvZGVidWcnO1xuaW1wb3J0IHsgT3AsIE9wdGlvbiwgRW52aXJvbm1lbnQsIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdDAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBNb2RpZmllckRlZmluaXRpb24gfSBmcm9tICcuLi8uLi9tb2RpZmllci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IHsgVXBkYXRpbmdWTSB9IGZyb20gJy4uLy4uL3ZtJztcbmltcG9ydCB7IEFzc2VydCB9IGZyb20gJy4vdm0nO1xuaW1wb3J0IHsgRHluYW1pY0F0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3ZtL2F0dHJpYnV0ZXMvZHluYW1pYyc7XG5pbXBvcnQgeyBDaGVja1JlZmVyZW5jZSwgQ2hlY2tBcmd1bWVudHMsIENoZWNrT3BlcmF0aW9ucyB9IGZyb20gJy4vLWRlYnVnLXN0cmlwJztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248W0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyLCB1bmtub3duXVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgoW21hbmFnZXIsIG1vZGlmaWVyXSkgPT4ge1xuICAgICAgdm0uZW52LnNjaGVkdWxlSW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBtYW5hZ2VyKTtcbiAgICAgIGxldCBkID0gbWFuYWdlci5nZXREZXN0cm95YWJsZShtb2RpZmllcik7XG5cbiAgICAgIGlmIChkKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk1vZGlmaWVyLCAodm0sIHsgb3AxOiBoYW5kbGUgfSkgPT4ge1xuICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gdm0ucnVudGltZS5yZXNvbHZlci5yZXNvbHZlPE1vZGlmaWVyRGVmaW5pdGlvbj4oaGFuZGxlKTtcbiAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgbGV0IG1vZGlmaWVyID0gbWFuYWdlci5jcmVhdGUoXG4gICAgZXhwZWN0KGNvbnN0cnVjdGluZywgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIHRoZSBlbGVtZW50IGl0IGFwcGxpZXMgdG8nKSxcbiAgICBzdGF0ZSxcbiAgICBhcmdzLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB1cGRhdGVPcGVyYXRpb25zXG4gICk7XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKG1hbmFnZXIsIG1vZGlmaWVyKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcobW9kaWZpZXIpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBtYW5hZ2VyLCBtb2RpZmllcikpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZU1vZGlmaWVyT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICd1cGRhdGUtbW9kaWZpZXInO1xuICBwcml2YXRlIGxhc3RVcGRhdGVkOiBSZXZpc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGFnOiBUYWcsXG4gICAgcHJpdmF0ZSBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgICBwcml2YXRlIG1vZGlmaWVyOiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gIH1cblxuICBldmFsdWF0ZSh2bTogVXBkYXRpbmdWTSkge1xuICAgIGxldCB7IG1hbmFnZXIsIG1vZGlmaWVyLCB0YWcsIGxhc3RVcGRhdGVkIH0gPSB0aGlzO1xuXG4gICAgY29uc3VtZVRhZyh0YWcpO1xuXG4gICAgaWYgKCF2YWxpZGF0ZVRhZyh0YWcsIGxhc3RVcGRhdGVkKSkge1xuICAgICAgdm0uZW52LnNjaGVkdWxlVXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIG1hbmFnZXIpO1xuICAgICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gICAgfVxuICB9XG59XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5TdGF0aWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdmFsdWUsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHZhbHVlID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF92YWx1ZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICB2bS5lbGVtZW50cygpLnNldFN0YXRpY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IHRydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICBsZXQgYXR0cmlidXRlID0gdm0uZWxlbWVudHMoKS5zZXREeW5hbWljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCAhIXRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSwgdm0uZW52KSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAncGF0Y2gtZWxlbWVudCc7XG5cbiAgcHJpdmF0ZSB1cGRhdGVSZWY6IFJlZmVyZW5jZTtcblxuICBjb25zdHJ1Y3RvcihyZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgYXR0cmlidXRlOiBEeW5hbWljQXR0cmlidXRlLCBlbnY6IEVudmlyb25tZW50KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGxldCBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgdGhpcy51cGRhdGVSZWYgPSBjcmVhdGVDb21wdXRlUmVmKCgpID0+IHtcbiAgICAgIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG5cbiAgICAgIGlmIChpbml0aWFsaXplZCA9PT0gdHJ1ZSkge1xuICAgICAgICBhdHRyaWJ1dGUudXBkYXRlKHZhbHVlLCBlbnYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFsdWVGb3JSZWYodGhpcy51cGRhdGVSZWYpO1xuICB9XG5cbiAgZXZhbHVhdGUoKSB7XG4gICAgdmFsdWVGb3JSZWYodGhpcy51cGRhdGVSZWYpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
import { Reference } from '@glimmer/reference'; | ||
import { Tag } from '@glimmer/validator'; | ||
import { InternalModifierManager } from '@glimmer/interfaces'; | ||
import { Environment, InternalModifierManager } from '@glimmer/interfaces'; | ||
import { UpdatingOpcode } from '../../opcodes'; | ||
@@ -17,9 +17,7 @@ import { UpdatingVM } from '../../vm'; | ||
export declare class UpdateDynamicAttributeOpcode extends UpdatingOpcode { | ||
private reference; | ||
private attribute; | ||
type: string; | ||
lastValue: unknown; | ||
constructor(reference: Reference<unknown>, attribute: DynamicAttribute); | ||
evaluate(vm: UpdatingVM): void; | ||
private updateRef; | ||
constructor(reference: Reference<unknown>, attribute: DynamicAttribute, env: Environment); | ||
evaluate(): void; | ||
} | ||
//# sourceMappingURL=dom.d.ts.map |
{ | ||
"name": "@glimmer/runtime", | ||
"version": "0.65.1", | ||
"version": "0.65.2", | ||
"description": "Minimal runtime needed to render Glimmer templates", | ||
@@ -9,17 +9,17 @@ "repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/runtime", | ||
"@glimmer/env": "0.1.7", | ||
"@glimmer/global-context": "0.65.1", | ||
"@glimmer/low-level": "0.65.1", | ||
"@glimmer/util": "0.65.1", | ||
"@glimmer/reference": "0.65.1", | ||
"@glimmer/validator": "0.65.1", | ||
"@glimmer/wire-format": "0.65.1", | ||
"@glimmer/interfaces": "0.65.1", | ||
"@glimmer/program": "0.65.1", | ||
"@glimmer/vm": "0.65.1", | ||
"@glimmer/global-context": "0.65.2", | ||
"@glimmer/low-level": "0.65.2", | ||
"@glimmer/util": "0.65.2", | ||
"@glimmer/reference": "0.65.2", | ||
"@glimmer/validator": "0.65.2", | ||
"@glimmer/wire-format": "0.65.2", | ||
"@glimmer/interfaces": "0.65.2", | ||
"@glimmer/program": "0.65.2", | ||
"@glimmer/vm": "0.65.2", | ||
"@simple-dom/interface": "^1.4.0" | ||
}, | ||
"devDependencies": { | ||
"@glimmer/local-debug-flags": "0.65.1", | ||
"@glimmer/opcode-compiler": "0.65.1", | ||
"@glimmer/debug": "0.65.1", | ||
"@glimmer/local-debug-flags": "0.65.2", | ||
"@glimmer/opcode-compiler": "0.65.2", | ||
"@glimmer/debug": "0.65.2", | ||
"@types/qunit": "^2.9.0" | ||
@@ -26,0 +26,0 @@ }, |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4178197
16
36066
+ Added@glimmer/encoder@0.65.2(transitive)
+ Added@glimmer/global-context@0.65.2(transitive)
+ Added@glimmer/interfaces@0.65.2(transitive)
+ Added@glimmer/low-level@0.65.2(transitive)
+ Added@glimmer/program@0.65.2(transitive)
+ Added@glimmer/reference@0.65.2(transitive)
+ Added@glimmer/util@0.65.2(transitive)
+ Added@glimmer/validator@0.65.2(transitive)
+ Added@glimmer/vm@0.65.2(transitive)
+ Added@glimmer/wire-format@0.65.2(transitive)
- Removed@glimmer/encoder@0.65.1(transitive)
- Removed@glimmer/global-context@0.65.1(transitive)
- Removed@glimmer/interfaces@0.65.1(transitive)
- Removed@glimmer/low-level@0.65.1(transitive)
- Removed@glimmer/program@0.65.1(transitive)
- Removed@glimmer/reference@0.65.1(transitive)
- Removed@glimmer/util@0.65.1(transitive)
- Removed@glimmer/validator@0.65.1(transitive)
- Removed@glimmer/vm@0.65.1(transitive)
- Removed@glimmer/wire-format@0.65.1(transitive)
Updated@glimmer/interfaces@0.65.2
Updated@glimmer/low-level@0.65.2
Updated@glimmer/program@0.65.2
Updated@glimmer/reference@0.65.2
Updated@glimmer/util@0.65.2
Updated@glimmer/validator@0.65.2
Updated@glimmer/vm@0.65.2
Updated@glimmer/wire-format@0.65.2