igniteui-angular-spreadsheet
Version:
Ignite UI Angular spreadsheet component for displaying and editing Microsoft Excel workbooks for modern web apps.
1,451 lines (1,450 loc) • 44.6 kB
JavaScript
/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE: you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { __extends, __values } from "tslib";
import { Type, Base, markType, callStaticConstructors, String_$type, EnumUtil, runOn, delegateCombine, fromEnum, getBoxIfEnum, typeCast, toNullable, Boolean_$type, getInstanceType } from "igniteui-angular-core";
import { StackList$1 } from "./StackList$1";
import { CoreUtilities } from "./CoreUtilities";
import { PropertyChangeNotifier } from "./PropertyChangeNotifier";
import { UndoUtils } from "./UndoUtils";
import { InvalidOperationException } from "igniteui-angular-core";
import { stringEmpty, stringIsNullOrEmpty } from "igniteui-angular-core";
import { List$1 } from "igniteui-angular-core";
import { UndoManager_BoolProperties_$type } from "./UndoManager_BoolProperties";
import { ReadOnlyNotifyCollection$1 } from "./ReadOnlyNotifyCollection$1";
import { Stack$1 } from "igniteui-angular-core";
import { ArgumentOutOfRangeException } from "igniteui-angular-core";
import { ArgumentException } from "igniteui-angular-core";
import { nullableNotEquals, nullableEquals } from "igniteui-angular-core";
import { truncate, logBase } from "igniteui-angular-core";
import { dateMinValue, dateNow } from "igniteui-angular-core";
import { timeSpanTicks } from "igniteui-angular-core";
import { ReadOnlyCollection$1 } from "igniteui-angular-core";
import { stringFormat } from "igniteui-angular-core";
/**
* @hidden
*/
export var IUndoTransactionOwner_$type = new Type(null, 'IUndoTransactionOwner');
/**
* @hidden
*/
var UndoExecuteContext = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoExecuteContext, _super);
function UndoExecuteContext(a, b) {
var _this = _super.call(this) || this;
_this.e = null;
_this.b = 0;
_this.a = new StackList$1(UndoUnit.$, 0);
CoreUtilities.z(a, "undoManager");
_this.e = a;
_this.b = b;
return _this;
}
Object.defineProperty(UndoExecuteContext.prototype, "d", {
get: function () {
switch (this.b) {
case 0:
{
return 0;
}
case 1:
{
return 1;
}
case 2:
{
if (this.e.ag) {
return 1;
}
return 0;
}
default:
{
return 0;
}
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoExecuteContext.prototype, "c", {
get: function () {
return this.b;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoExecuteContext.prototype, "i", {
get: function () {
return this.a.count;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoExecuteContext.prototype, "f", {
get: function () {
return this.e;
},
enumerable: false,
configurable: true
});
UndoExecuteContext.prototype.g = function (a) {
if (a < 0 || a > this.i) {
return null;
}
return this.a.b(a);
};
UndoExecuteContext.prototype.h = function (a) {
CoreUtilities.z(a, "unit");
this.a.n(a);
try {
return a.b(this);
}
finally {
this.a.d();
}
};
UndoExecuteContext.$t = markType(UndoExecuteContext, 'UndoExecuteContext');
return UndoExecuteContext;
}(Base));
export { UndoExecuteContext };
/**
* @hidden
*/
var UndoHistoryItem = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoHistoryItem, _super);
function UndoHistoryItem(a, b, c) {
var _this = _super.call(this) || this;
_this.f = null;
_this.b = 0;
_this.d = null;
_this.j = null;
_this.i = null;
CoreUtilities.z(a, "unit");
CoreUtilities.z(c, "undoManager");
_this.f = a;
_this.b = b;
_this.d = c;
return _this;
}
Object.defineProperty(UndoHistoryItem.prototype, "c", {
get: function () {
return this.b;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoHistoryItem.prototype, "k", {
get: function () {
if (null == this.i) {
this.i = ((function (a) { return a != null ? a : stringEmpty(); })(this.f.e(this.b, true)));
}
return this.i;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoHistoryItem.prototype, "l", {
get: function () {
if (null == this.j) {
this.j = ((function (a) { return a != null ? a : stringEmpty(); })(this.f.e(this.b, false)));
}
return this.j;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoHistoryItem.prototype, "e", {
get: function () {
return this.d;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoHistoryItem.prototype, "g", {
get: function () {
return this.f;
},
enumerable: false,
configurable: true
});
UndoHistoryItem.prototype.m = function () {
this.n(true);
};
UndoHistoryItem.prototype.h = function () {
var a = this.c == 1 ? this.d.am : this.d.an;
return a.indexOf(this) >= 0;
};
UndoHistoryItem.prototype.n = function (a) {
var b = this.b == 1;
var c = b ? this.d.am : this.d.an;
var d = c.indexOf(this);
if (d >= 0) {
this.d.a5(d + 1, !b);
}
else if (a) {
throw new InvalidOperationException(1, UndoUtils.a("LE_HistoryItemNotInCurrentHistory"));
}
};
UndoHistoryItem.prototype.o = function () {
if (this.j != null) {
this.j = null;
this.a("ShortDescription");
}
if (this.i != null) {
this.i = null;
this.a("LongDescription");
}
};
UndoHistoryItem.$t = markType(UndoHistoryItem, 'UndoHistoryItem', PropertyChangeNotifier.$);
return UndoHistoryItem;
}(PropertyChangeNotifier));
export { UndoHistoryItem };
/**
* @hidden
*/
var UndoManager = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoManager, _super);
function UndoManager() {
var _this = _super.call(this) || this;
_this.aq = 0;
_this.d = null;
_this.c = null;
_this.al = null;
_this.ak = null;
_this.at = (0);
_this.ap = dateMinValue();
_this.ao = null;
_this.k = 32;
_this.n = null;
_this.m = null;
_this.g = null;
_this.f = null;
_this.e = null;
_this.d = new StackList$1(UndoHistoryItem.$, 0);
_this.c = new StackList$1(UndoHistoryItem.$, 0);
_this.al = new ReadOnlyNotifyCollection$1(UndoHistoryItem.$, _this.d);
_this.ak = new ReadOnlyNotifyCollection$1(UndoHistoryItem.$, _this.c);
var a = _this.d;
a.collectionChanged = delegateCombine(a.collectionChanged, runOn(_this, _this.a3));
var b = _this.c;
b.collectionChanged = delegateCombine(b.collectionChanged, runOn(_this, _this.a3));
return _this;
}
UndoManager.staticInit = function () {
var e_1, _a;
var a = new List$1(String_$type, 0);
try {
for (var _b = __values(EnumUtil.getValues(UndoManager_BoolProperties_$type)), _c = _b.next(); !_c.done; _c = _b.next()) {
var b = _c.value;
a.add(EnumUtil.getName(UndoManager_BoolProperties_$type, (EnumUtil.getEnumValue(UndoManager_BoolProperties_$type, b))));
}
}
catch (e_1_1) {
e_1 = { error: e_1_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_1)
throw e_1.error;
}
}
UndoManager.b = a.toArray();
};
Object.defineProperty(UndoManager.prototype, "x", {
get: function () {
return this.ab(32);
},
set: function (a) {
this.ai(32, a);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "z", {
get: function () {
return this.ab(2);
},
set: function (a) {
this.ai(2, a);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "aa", {
get: function () {
return this.ab(1);
},
set: function (a) {
this.ai(1, a);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "h", {
get: function () {
return this.e;
},
set: function (a) {
if (a != this.e) {
this.e = a;
this.a("CurrentHistoryItem");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "p", {
get: function () {
if (this.m == null) {
if (this.n != null) {
this.m = UndoTransaction.l(this.n);
}
}
return this.m;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ad", {
get: function () {
return this.ab(4);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "af", {
get: function () {
return this.ab(128);
},
set: function (a) {
this.ai(128, a, true);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ag", {
get: function () {
return this.ab(8);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ah", {
get: function () {
return this.aq > 0;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "au", {
get: function () {
return this.at;
},
set: function (a) {
CoreUtilities.x(timeSpanTicks(a), "value");
if (this.at != a) {
this.at = a;
this.a("MergeTimeout");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "am", {
get: function () {
return this.ak;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "q", {
get: function () {
return this.n;
},
set: function (a) {
if (a != this.n) {
this.n = a;
this.a("RootTransaction");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "i", {
get: function () {
return this.f;
},
set: function (a) {
if (this.f != a) {
this.f = a;
this.a("TopRedoHistoryItem");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "j", {
get: function () {
return this.g;
},
set: function (a) {
if (this.g != a) {
this.g = a;
this.a("TopUndoHistoryItem");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ar", {
get: function () {
return this.d.j;
},
set: function (a) {
if (a != this.ar) {
this.d.j = this.c.j = a;
this.a("UndoLimit");
}
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "an", {
get: function () {
return this.al;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "y", {
get: function () {
return this.x && !this.aj;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ac", {
get: function () {
return this.ab(64);
},
set: function (a) {
this.ai(64, a, false);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "ae", {
get: function () {
return this.ab(256);
},
set: function (a) {
this.ai(256, a, false);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoManager.prototype, "aj", {
get: function () {
return this.ab(16);
},
set: function (a) {
if (this.ai(16, a, false) && a) {
this.ax();
}
},
enumerable: false,
configurable: true
});
UndoManager.prototype.av = function (a) {
CoreUtilities.z(a, "unit");
this.v(a);
};
UndoManager.prototype.t = function (a, b, c, d, e) {
if (e === void 0) {
e = null;
}
if (this.ah) {
return null;
}
CoreUtilities.z(c, "undoMethod");
CoreUtilities.z(d, "redoMethod");
var f = UndoManager.w(a, b, c, d, e);
return this.v(f);
};
UndoManager.prototype.u = function (a, b, c, d, e) {
if (e === void 0) {
e = null;
}
if (this.ah) {
return null;
}
CoreUtilities.z(c, "undoMethod");
CoreUtilities.z(d, "redoMethod");
return this.t(a, b, function (f) { return c(); }, function (f) { return d(); }, e);
};
UndoManager.prototype.s = function (a, b, c, d, e) {
if (e === void 0) {
e = null;
}
if (this.ah) {
return null;
}
CoreUtilities.z(c, "undoMethod");
CoreUtilities.z(d, "redoMethod");
return this.t(a, b, function (f) {
c();
return true;
}, function (f) {
d();
return true;
}, e);
};
UndoManager.prototype.ay = function () {
this.bg();
this.ax();
this.d.clear();
this.c.clear();
};
UndoManager.prototype.a0 = function (a, b, c) {
CoreUtilities.z(c, "action");
var d = false;
var e = this.r(a, b);
try {
c();
d = true;
e.ad();
}
finally {
if (!d && !e.q) {
e.af();
}
}
};
UndoManager.prototype.az = function (a, b) {
CoreUtilities.z(b, "action");
CoreUtilities.z(a, "transaction");
var c = false;
this.bd(a);
try {
b();
c = true;
a.ad();
}
finally {
if (!c && !a.q) {
a.af();
}
}
};
UndoManager.prototype.a1 = function (a) {
CoreUtilities.z(a, "action");
UndoManager.a2(a, this.an);
UndoManager.a2(a, this.am);
if (null != this.ao) {
UndoManager.a2(a, this.ao);
}
var b = this.n;
if (null != b) {
a(b);
b.f(a);
}
};
UndoManager.a2 = function (a, b) {
var e_2, _a;
try {
for (var _b = __values(fromEnum(b)), _c = _b.next(); !_c.done; _c = _b.next()) {
var c = _c.value;
var d = c.g;
a(d);
d.f(a);
}
}
catch (e_2_1) {
e_2 = { error: e_2_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_2)
throw e_2.error;
}
}
};
UndoManager.prototype.a6 = function () {
this.aj = true;
};
UndoManager.prototype.a7 = function (a) {
if (a === void 0) {
a = 1;
}
this.a5(a, false);
};
UndoManager.prototype.a8 = function (a, b) {
if (b === void 0) {
b = true;
}
CoreUtilities.z(a, "match");
this.bg();
var c = null;
c = function (d) {
if (a(d)) {
return true;
}
return d.c(c);
};
var d = function (e) { return c(e.g); };
var e = this.ae;
this.ae = true;
try {
if (b && this.n != null) {
c(this.n);
}
var f = this.d.count == 0 ? null : this.d.c();
this.d.o(d);
if (f != null && (this.d.count == 0 || this.d.c() != f)) {
this.ax();
}
var g = this.ao;
if (g != null) {
var h = g.a();
var i = 0;
for (var j = h.length - 1; j >= 0; j--) {
if (c(h[j].g)) {
h[j] = null;
i++;
}
}
if (this.ao == g) {
if (i == h.length) {
this.ax();
}
else if (i > 0) {
g = new Stack$1(UndoHistoryItem.$);
for (var k = h.length - 1; k >= 0; k--) {
var l = h[k];
if (l != null) {
g.h(l);
}
}
this.ao = g;
}
}
}
this.c.o(d);
}
finally {
this.ae = e;
}
};
UndoManager.prototype.bb = function () {
this.aq--;
if (this.aq == 0) {
this.a("IsSuspended");
}
};
UndoManager.prototype.r = function (a, b) {
if (this.ah) {
throw new InvalidOperationException(1, UndoUtils.a("LE_NewTransactionWhileSuspended"));
}
var c = this.o(a, b);
if (c == null) {
throw new InvalidOperationException(1, UndoUtils.a("LE_FactoryNullTransaction"));
}
this.bd(c);
return c;
};
UndoManager.prototype.bd = function (a) {
CoreUtilities.z(a, "group");
if (nullableNotEquals(a.u, null)) {
throw new InvalidOperationException(1, UndoUtils.a("LE_TransactionAlreadyOpened"));
}
var b = this.p;
if (b != null) {
b.aa(a);
}
var c = b == null ? this : b;
a.ae(c);
};
UndoManager.prototype.be = function () {
this.aq++;
if (this.aq == 1) {
this.a("IsSuspended");
}
};
UndoManager.prototype.bf = function (a) {
if (a === void 0) {
a = 1;
}
this.a5(a, true);
};
UndoManager.w = function (a, b, c, d, e) {
var f = function (g) {
var h = g.d == 1 ? d : c;
if (null == h || !h(g)) {
return false;
}
g.f.av(g.g(0));
return true;
};
return new CustomUndoUnit(a, b, f, e);
};
UndoManager.prototype.o = function (a, b) {
return new UndoTransaction(a, b);
};
UndoManager.as = function ($tProperty, a, b, c, d, e, f) {
var g = null;
if (!stringIsNullOrEmpty(d)) {
var h = f ? "PropertyChangeDescriptionDetailed" : "PropertyChangeDescription";
var i = e == 1 ? c : b;
var j = e == 1 ? b : c;
g = UndoUtils.b(h, d, a, getBoxIfEnum($tProperty, i), getBoxIfEnum($tProperty, j));
}
return g;
};
UndoManager.prototype.a4 = function (a) {
this.m = null;
this.a("CurrentTransaction");
};
UndoManager.prototype.a5 = function (a, b) {
if (a <= 0) {
throw new ArgumentOutOfRangeException(2, "count", UndoUtils.b("LE_ArgumentIsNegative", "count", a));
}
if (this.ad || this.ag) {
throw new InvalidOperationException(1, UndoUtils.a("LE_UndoRedoInUndoRedo"));
}
if (this.af) {
throw new InvalidOperationException(1, UndoUtils.a("LE_UndoRedoInRollback"));
}
if (this.ah) {
throw new InvalidOperationException(1, UndoUtils.a("LE_UndoRedoWhileSuspended"));
}
if (this.n != null) {
throw new InvalidOperationException(1, UndoUtils.a("LE_UndoRedoInTransaction"));
}
this.bg();
if (!this.ab(b ? 1 : 2)) {
return;
}
var c = b ? 8 : 4;
var d = b ? 0 : 1;
try {
this.ai(c, true);
this.ax();
var e = b ? this.d : this.c;
var f = new UndoExecuteContext(this, d);
if (e.count > 0) {
this.aj = true;
}
for (var g = 0, h = Math.min(a, e.count); g < h; g++) {
var i = e.d();
this.h = i;
f.h(i.g);
}
}
finally {
this.h = null;
this.ai(c, false);
}
};
UndoManager.prototype.bc = function (a) {
var b = this.af;
try {
this.af = true;
var c = new UndoExecuteContext(this, 2);
c.h(a);
}
finally {
this.af = b;
}
};
UndoManager.prototype.bh = function (a) {
if (this.ah) {
throw new InvalidOperationException(1, UndoUtils.a("LE_EndTransactionWhileSuspended"));
}
};
UndoManager.prototype.v = function (a, b) {
if (b === void 0) {
b = false;
}
if (a == null) {
return null;
}
if (this.af) {
return null;
}
if (this.ah) {
return null;
}
this.bg();
var c = typeCast(UndoTransaction.$, a);
if (c != null) {
if (nullableNotEquals(c.u, false)) {
throw new ArgumentException(1, UndoUtils.a("LE_AddOpenTransaction"));
}
if (!b) {
throw new ArgumentException(1, UndoUtils.a("LE_AddTransactionDirect"));
}
}
if (this.n != null) {
var d = this.p;
var e = this.ad || this.ag;
if (!e) {
var f = this.l(d, a);
if (f != 0) {
if (f == 2) {
d.ab();
}
return null;
}
this.aj = false;
}
d.aa(a);
if (!e) {
this.a9();
}
}
else {
if (this.ag) {
this.ax();
this.c.n(new UndoHistoryItem(a, 1, this));
}
else {
var g = true;
var h = this.ad;
if (!h && this.d.count > 0) {
var i = this.d.c();
var j = this.l(i.g, a);
if (j != 0) {
this.a9();
g = false;
if (j == 1) {
i.o();
}
else {
var k = this.d.d();
this.ba();
this.a6();
}
}
}
this.ax();
if (g) {
if (!h) {
this.aw();
this.c.clear();
this.aj = false;
}
var l = new UndoHistoryItem(a, 0, this);
this.d.n(l);
if (!h) {
this.a9();
}
}
}
}
return a;
};
UndoManager.prototype.aw = function () {
var e_3, _a;
this.ao = new Stack$1(UndoHistoryItem.$);
try {
for (var _b = __values(fromEnum(this.c)), _c = _b.next(); !_c.done; _c = _b.next()) {
var a = _c.value;
this.ao.h(a);
}
}
catch (e_3_1) {
e_3 = { error: e_3_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_3)
throw e_3.error;
}
}
};
UndoManager.prototype.ax = function () {
this.ao = null;
};
UndoManager.prototype.ab = function (a) {
return (this.k & a) == a;
};
UndoManager.prototype.l = function (a, b) {
var c = 0;
if (this.y) {
var d = this.at == (0);
if (!d) {
var e = dateNow();
d = (+e - +(this.ap)) <= this.at;
}
if (d) {
try {
this.ac = true;
var f = new UndoMergeContext(this, b);
c = a.a(f);
}
finally {
this.ac = false;
}
if (c != 0) {
this.a9();
}
}
}
return c;
};
UndoManager.prototype.a3 = function (a, b) {
this.aa = this.d.count > 0;
this.z = this.c.count > 0;
this.j = this.aa ? this.d.c() : null;
this.i = this.z ? this.c.c() : null;
};
UndoManager.prototype.a9 = function () {
this.ap = dateNow();
};
UndoManager.prototype.ba = function () {
var e_4, _a;
if (this.ao == null) {
return;
}
var a = this.ao;
this.ax();
try {
for (var _b = __values(fromEnum(a)), _c = _b.next(); !_c.done; _c = _b.next()) {
var b = _c.value;
this.c.n(b);
}
}
catch (e_4_1) {
e_4 = { error: e_4_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_4)
throw e_4.error;
}
}
};
UndoManager.prototype.ai = function (a, b, c) {
if (c === void 0) {
c = true;
}
if (b == this.ab(a)) {
return false;
}
this.k ^= a;
if (c) {
this.a(UndoManager.b[truncate(logBase(a, 2))]);
}
return true;
};
UndoManager.prototype.bg = function () {
if (this.ac) {
throw new InvalidOperationException(1, UndoUtils.a("LE_ChangeHistoryInMerge"));
}
if (this.ae) {
throw new InvalidOperationException(1, UndoUtils.a("LE_ChangeHistoryInRemoveAll"));
}
};
Object.defineProperty(UndoManager.prototype, "undoManager", {
get: function () {
return this;
},
enumerable: false,
configurable: true
});
UndoManager.prototype.onChildOpened = function (a) {
CoreUtilities.z(a, "child");
if (this.n != null) {
throw new InvalidOperationException(1, UndoUtils.a("LE_HasOpenTransaction"));
}
if (nullableNotEquals(a.u, true)) {
throw new ArgumentException(1, UndoUtils.b("LE_TransactionNotOpened", a));
}
if (a.h != this) {
throw new ArgumentException(1, UndoUtils.a("LE_InvalidTransactionOwner"));
}
this.q = a;
return true;
};
UndoManager.prototype.onChildClosed = function (a, b) {
CoreUtilities.z(a, "child");
if (a != this.n) {
throw new ArgumentException(1, UndoUtils.b("LE_ClosingOtherTransaction", a, this.n));
}
this.q = null;
if (b == 0 && a.p()) {
this.v(a, true);
}
};
UndoManager.$t = markType(UndoManager, 'UndoManager', PropertyChangeNotifier.$, [IUndoTransactionOwner_$type]);
UndoManager.b = null;
return UndoManager;
}(PropertyChangeNotifier));
export { UndoManager };
/**
* @hidden
*/
var UndoMergeContext = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoMergeContext, _super);
function UndoMergeContext(a, b) {
var _this = _super.call(this) || this;
_this.c = null;
_this.a = null;
CoreUtilities.z(a, "undoManager");
CoreUtilities.z(b, "unitBeingAdded");
_this.a = a;
_this.c = b;
return _this;
}
Object.defineProperty(UndoMergeContext.prototype, "b", {
get: function () {
return this.a;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoMergeContext.prototype, "d", {
get: function () {
return this.c;
},
enumerable: false,
configurable: true
});
UndoMergeContext.$t = markType(UndoMergeContext, 'UndoMergeContext');
return UndoMergeContext;
}(Base));
export { UndoMergeContext };
/**
* @hidden
*/
var UndoUnit = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoUnit, _super);
function UndoUnit() {
return _super !== null && _super.apply(this, arguments) || this;
}
UndoUnit.prototype.f = function (a) {
};
UndoUnit.prototype.a = function (a) {
return 0;
};
UndoUnit.prototype.c = function (a) {
return false;
};
UndoUnit.$t = markType(UndoUnit, 'UndoUnit');
return UndoUnit;
}(Base));
export { UndoUnit };
/**
* @hidden
*/
var CustomUndoUnit = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(CustomUndoUnit, _super);
function CustomUndoUnit(a, b, c, d) {
var _this = _super.call(this) || this;
_this.h = null;
_this.i = null;
_this.j = null;
_this.g = null;
CoreUtilities.z(c, "executeMethod");
_this.g = c;
_this.i = a;
_this.j = b;
_this.h = d;
return _this;
}
CustomUndoUnit.prototype.b = function (a) {
return this.g(a);
};
CustomUndoUnit.prototype.e = function (a, b) {
return b ? this.j : this.i;
};
CustomUndoUnit.prototype.get_d = function () {
return this.h;
};
Object.defineProperty(CustomUndoUnit.prototype, "d", {
get: function () {
return this.get_d();
},
enumerable: false,
configurable: true
});
CustomUndoUnit.$t = markType(CustomUndoUnit, 'CustomUndoUnit', UndoUnit.$);
return CustomUndoUnit;
}(UndoUnit));
export { CustomUndoUnit };
/**
* @hidden
*/
var UndoTransaction = /** @class */ /*@__PURE__*/ (function (_super) {
__extends(UndoTransaction, _super);
function UndoTransaction(a, b) {
var _this = _super.call(this) || this;
_this.i = null;
_this.s = null;
_this.g = null;
_this.t = toNullable(Boolean_$type, null);
_this.j = null;
_this.v = null;
_this.w = null;
_this.v = a;
_this.w = b;
_this.i = new StackList$1(UndoUnit.$, 0);
_this.s = new ReadOnlyCollection$1(UndoUnit.$, 1, _this.i);
return _this;
}
UndoTransaction.prototype.b = function (a) {
var e_5, _a;
if (this.j != null) {
throw new InvalidOperationException(1, UndoUtils.b("LE_CannotExecuteOpenTransaction", this.j));
}
var b = false;
var c = this.o(a);
try {
try {
for (var _b = __values(fromEnum(this.i)), _c = _b.next(); !_c.done; _c = _b.next()) {
var d = _c.value;
if (a.h(d)) {
b = true;
}
}
}
catch (e_5_1) {
e_5 = { error: e_5_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_5)
throw e_5.error;
}
}
}
finally {
if (c != null && !c.q) {
c.ad();
}
}
return b;
};
UndoTransaction.prototype.f = function (a) {
var e_6, _a;
_super.prototype.f.call(this, a);
try {
for (var _b = __values(fromEnum(this.s)), _c = _b.next(); !_c.done; _c = _b.next()) {
var b = _c.value;
a(b);
b.f(a);
}
}
catch (e_6_1) {
e_6 = { error: e_6_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_6)
throw e_6.error;
}
}
};
UndoTransaction.prototype.e = function (a, b) {
var e_7, _a;
var c = b ? this.w : this.v;
if (c == null) {
if (this.i.count > 0) {
try {
for (var _b = __values(fromEnum(this.i)), _c = _b.next(); !_c.done; _c = _b.next()) {
var d = _c.value;
c = this.i.c().e(a, b);
if (c != null) {
break;
}
}
}
catch (e_7_1) {
e_7 = { error: e_7_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_7)
throw e_7.error;
}
}
}
if (c == null) {
c = UndoUtils.a("FallbackTransactionDescription");
}
}
return c;
};
UndoTransaction.prototype.a = function (a) {
var b = 0;
if (nullableEquals(this.t, true) && this.i.count > 0) {
var c = this.i.c();
b = c.a(a);
if (b == 2) {
this.i.d();
b = 1;
}
}
return b;
};
UndoTransaction.prototype.c = function (a) {
this.i.o(a);
return this.i.count == 0;
};
UndoTransaction.prototype.get_d = function () {
return null;
};
Object.defineProperty(UndoTransaction.prototype, "d", {
get: function () {
return this.get_d();
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "q", {
get: function () {
return nullableEquals(this.t, false);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "m", {
get: function () {
return this.j;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "n", {
get: function () {
return typeCast(UndoTransaction.$, this.g);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "r", {
get: function () {
return this.s;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "u", {
get: function () {
return this.t;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "h", {
get: function () {
return this.g;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "x", {
get: function () {
return stringFormat("{1}: {0} items", this.s.count, getInstanceType(this).typeName);
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "y", {
get: function () {
return this.v;
},
enumerable: false,
configurable: true
});
Object.defineProperty(UndoTransaction.prototype, "z", {
get: function () {
return this.w;
},
enumerable: false,
configurable: true
});
UndoTransaction.prototype.ac = function (a) {
this.ag();
var b = this.g.undoManager;
b.bh(this);
if (this.j != null) {
this.j.ac(a);
}
this.t = toNullable(Boolean_$type, false);
if (a == 1) {
b.bc(this);
}
this.g.onChildClosed(this, a);
b.a4(this);
};
UndoTransaction.prototype.o = function (a) {
switch (a.c) {
case 2: return null;
case 0:
case 1:
var b = this.k(a);
if (b != null) {
a.f.bd(b);
}
return b;
default: return null;
}
};
UndoTransaction.prototype.ag = function () {
if (nullableEquals(this.t, null)) {
throw new InvalidOperationException(1, UndoUtils.a("LE_TransactionNotStarted"));
}
if (nullableEquals(this.t, false)) {
throw new InvalidOperationException(1, UndoUtils.a("LE_TransactionClosed"));
}
};
UndoTransaction.prototype.aa = function (a) {
CoreUtilities.z(a, "unit");
this.ag();
if (this.j != null) {
throw new InvalidOperationException(1, UndoUtils.b("LE_AddUnitWhileOpenTransaction", this.j));
}
this.i.n(a);
};
UndoTransaction.prototype.ab = function () {
this.ac(2);
};
UndoTransaction.prototype.p = function () {
var e_8, _a;
try {
for (var _b = __values(fromEnum(this.i)), _c = _b.next(); !_c.done; _c = _b.next()) {
var a = _c.value;
var b = typeCast(UndoTransaction.$, a);
if (null != b) {
if (b.p()) {
return true;
}
}
else {
return true;
}
}
}
catch (e_8_1) {
e_8 = { error: e_8_1 };
}
finally {
try {
if (_c && !_c.done && (_a = _b.return))
_a.call(_b);
}
finally {
if (e_8)
throw e_8.error;
}
}
return false;
};
UndoTransaction.l = function (a) {
CoreUtilities.z(a, "group");
if (nullableNotEquals(a.u, true)) {
throw new ArgumentException(1, UndoUtils.b("LE_TransactionNotOpened", a));
}
while (a.m != null) {
a = a.m;
}
return a;
};
UndoTransaction.prototype.ae = function (a) {
CoreUtilities.z(a, "parent");
if (nullableNotEquals(this.t, null)) {
throw new InvalidOperationException(1, UndoUtils.a("LE_TransactionAlreadyOpened"));
}
this.g = a;
this.t = toNullable(Boolean_$type, true);
if (!a.onChildOpened(this)) {
this.t = toNullable(Boolean_$type, null);
this.g = null;
}
else {
a.undoManager.a4(this);
}
};
UndoTransaction.prototype.ad = function () {
this.ac(0);
};
UndoTransaction.prototype.af = function () {
this.ac(1);
};
UndoTransaction.prototype.k = function (a) {
return a.f.o(this.v, this.w);
};
Object.defineProperty(UndoTransaction.prototype, "undoManager", {
get: function () {
return this.g.undoManager;
},
enumerable: false,
configurable: true
});
UndoTransaction.prototype.onChildOpened = function (a) {
CoreUtilities.z(a, "child");
this.ag();
if (this.j != null) {
throw new InvalidOperationException(1, UndoUtils.a("LE_HasOpenTransaction"));
}
if (!this.i.contains(a)) {
throw new ArgumentException(1, UndoUtils.b("LE_ChildTransactionNotInUnits", a));
}
if (nullableNotEquals(a.u, true)) {
throw new ArgumentException(1, UndoUtils.b("LE_TransactionNotOpened", a));
}
if (a.h != this) {
throw new ArgumentException(1, UndoUtils.a("LE_InvalidTransactionOwner"));
}
this.j = a;
return true;
};
UndoTransaction.prototype.onChildClosed = function (a, b) {
CoreUtilities.z(a, "child");
this.ag();
if (a != this.j) {
throw new ArgumentException(1, UndoUtils.b("LE_ClosingOtherTransaction", a, this.j));
}
this.j = null;
if (b != 0 || !a.p()) {
this.i.d();
}
};
UndoTransaction.$t = markType(UndoTransaction, 'UndoTransaction', UndoUnit.$, [IUndoTransactionOwner_$type]);
return UndoTransaction;
}(UndoUnit));
export { UndoTransaction };
(function (v) { callStaticConstructors(); })(true);