Fix bug in isDirty() causing error for some widgets, which broke onbeforeclose

This commit is contained in:
nathangray 2020-06-24 09:40:35 -06:00
parent 4959281164
commit 10b2eda4ac
2 changed files with 10 additions and 2 deletions

View File

@ -220,6 +220,7 @@ var et2_inputWidget = /** @class */ (function (_super) {
return this._oldValue;
};
et2_inputWidget.prototype.isDirty = function () {
var _a;
var value = this.getValue();
if (typeof value !== typeof this._oldValue) {
return true;
@ -229,8 +230,10 @@ var et2_inputWidget = /** @class */ (function (_super) {
}
switch (typeof this._oldValue) {
case "object":
if (this._oldValue.length !== value.length)
if (((_a = this._oldValue) === null || _a === void 0 ? void 0 : _a.length) && typeof this._oldValue.length !== "undefined" &&
this._oldValue.length !== value.length) {
return true;
}
for (var key in this._oldValue) {
if (this._oldValue[key] !== value[key])
return true;

View File

@ -324,7 +324,12 @@ export class et2_inputWidget extends et2_valueWidget implements et2_IInput, et2_
switch(typeof this._oldValue)
{
case "object":
if(this._oldValue.length !== value.length) return true;
if(this._oldValue?.length && typeof this._oldValue.length !== "undefined" &&
this._oldValue.length !== value.length
)
{
return true;
}
for(let key in this._oldValue)
{
if(this._oldValue[key] !== value[key]) return true;