@web-atoms/core
Version:
41 lines (40 loc) • 1.1 kB
JavaScript
System.register(["./AtomBinder"], function (_export, _context) {
"use strict";
var AtomBinder;
function BindableProperty(target, key) {
const iVal = target[key];
const keyName = "_" + key;
target[keyName] = iVal;
const getter = function () {
return this[keyName];
};
const setter = function (newVal) {
const oldValue = this[keyName];
if (oldValue === undefined ? oldValue === newVal : oldValue == newVal) {
return;
}
const ce = this;
if (ce.onPropertyChanging) {
ce.onPropertyChanging(key, oldValue, newVal);
}
this[keyName] = newVal;
AtomBinder.refreshValue(this, key);
};
if (delete target[key]) {
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
}
}
_export("BindableProperty", BindableProperty);
return {
setters: [function (_AtomBinder) {
AtomBinder = _AtomBinder.AtomBinder;
}],
execute: function () {}
};
});
//# sourceMappingURL=BindableProperty.js.map