UNPKG

igniteui-angular-core

Version:

Ignite UI Angular Core logic used in multiple UI components.

1,389 lines (1,388 loc) 51.1 kB
/* 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 { BaseDataSource } from "./BaseDataSource"; import { IPageCandidatesSink_$type } from "./IPageCandidatesSink"; import { PagePredictionEngine } from "./PagePredictionEngine"; import { LRUCache$2 } from "./LRUCache$2"; import { Base, runOn, Array_$type, Number_$type, typeCast, fromEnum, typeGetValue, String_$type, Boolean_$type, markType } from "./type"; import { IDataSourcePage_$type } from "./IDataSourcePage"; import { Dictionary$2 } from "./Dictionary$2"; import { SectionMap } from "./SectionMap"; import { DataSourceExecutionContext } from "./DataSourceExecutionContext"; import { SectionData } from "./SectionData"; import { List$1 } from "./List$1"; import { DataSourceSpecialRow } from "./DataSourceSpecialRow"; import { DataSourcePropertiesComparer } from "./DataSourcePropertiesComparer"; import { TransactionState } from "./TransactionState"; import { TransactionType } from "./TransactionType"; import { DataSourceBatchStartedEventArgs } from "./DataSourceBatchStartedEventArgs"; import { DataSourceBatchCompletedEventArgs } from "./DataSourceBatchCompletedEventArgs"; import { truncate, intDivide } from "./number"; /** * @hidden */ var VirtualDataSource = /** @class */ /*@__PURE__*/ (function (_super) { __extends(VirtualDataSource, _super); function VirtualDataSource() { var _this = _super.call(this) || this; _this.dm = false; _this.d9 = 0; _this.dg = null; _this.c7 = null; _this.c6 = null; _this.d8 = 50; _this.d7 = 200; _this.actualPageSizePopulated = false; _this.dt = 50; _this.dk = false; _this.db = null; _this.c2 = null; _this.c3 = null; _this.dj = new LRUCache$2(Base.$, IDataSourcePage_$type, 0, 200); _this.dr = new Dictionary$2(Base.$, Array_$type, 0); _this.ds = new Dictionary$2(Number_$type, Number_$type, 0); _this.dl = false; _this.c0 = null; _this.c4 = null; _this.di = new SectionMap(); _this.c1 = null; _this.d1 = -1; _this.du = -1; _this.d3 = -1; _this.dw = -1; _this.d4 = -1; _this.dx = -1; _this.d2 = -1; _this.dv = -1; _this.d6 = -1; _this.d5 = -1; _this.dz = -1; _this.dy = -1; _this.d0 = -1; _this.dq = new Dictionary$2(String_$type, Boolean_$type, 0); _this._concurrencyTag = null; _this.batchStarted = null; _this.batchCompleted = null; _this.dg = new PagePredictionEngine(); _this.dg.e = _this; _this.dg.ag = _this.actualPageSize; _this.dg.f = _this.di; _this.executionContext = new DataSourceExecutionContext(); _this.dg.b = _this.executionContext; _this.isReadOnly = true; return _this; } VirtualDataSource.prototype.get_isSectionCollapsable = function () { if (!this.isSectionContentVisible) { return true; } return _super.prototype.get_isSectionCollapsable.call(this); }; VirtualDataSource.prototype.set_isSectionCollapsable = function (a) { _super.prototype.set_isSectionCollapsable.call(this, a); }; VirtualDataSource.prototype.get_isSectionExpandedDefault = function () { if (!this.isSectionContentVisible) { return false; } if (this.isSectionCollapsable) { return _super.prototype.get_isSectionExpandedDefault.call(this); } return true; }; VirtualDataSource.prototype.set_isSectionExpandedDefault = function (a) { _super.prototype.set_isSectionExpandedDefault.call(this, a); }; VirtualDataSource.prototype.get_actualBaseDataProvider = function () { return this.actualDataProvider; }; Object.defineProperty(VirtualDataSource.prototype, "actualBaseDataProvider", { get: function () { return this.get_actualBaseDataProvider(); }, enumerable: false, configurable: true }); Object.defineProperty(VirtualDataSource.prototype, "dataProvider", { get: function () { return this.c7; }, set: function (a) { var b = this.c7; this.c7 = a; if (b != this.c7) { this.onPropertyUpdated("DataProvider", b, this.c7); } }, enumerable: false, configurable: true }); Object.defineProperty(VirtualDataSource.prototype, "actualDataProvider", { get: function () { if (this.c6 == null) { this.actualDataProvider = this.resolveDataProvider(); } return this.c6; }, set: function (a) { var b = this.c6; this.c6 = a; if (b != this.c6) { this.onPropertyUpdated("ActualDataProvider", b, this.c6); } }, enumerable: false, configurable: true }); Object.defineProperty(VirtualDataSource.prototype, "pageSizeRequested", { get: function () { return this.d8; }, set: function (a) { var b = this.d8; this.d8 = a; if (b != this.d8) { this.onPropertyUpdated("PageSizeRequested", b, this.d8); } }, enumerable: false, configurable: true }); VirtualDataSource.prototype.resetCache = function () { if (this.dc != null) { this.dc.resetCache(); } this.resetCacheOverride(); }; VirtualDataSource.prototype.resetCacheOverride = function () { this.dj.i(); }; Object.defineProperty(VirtualDataSource.prototype, "maxCachedPages", { get: function () { return this.d7; }, set: function (a) { var b = this.d7; this.d7 = a; if (b != this.d7) { this.onPropertyUpdated("MaxCachedPages", b, this.d7); } }, enumerable: false, configurable: true }); Object.defineProperty(VirtualDataSource.prototype, "actualPageSize", { get: function () { return this.dt; }, set: function (a) { var b = this.dt; this.dt = a; if (b != this.dt) { this.onPropertyUpdated("ActualPageSize", b, this.dt); } }, enumerable: false, configurable: true }); VirtualDataSource.prototype.get_isSortingSupported = function () { if (this.externalDataSource != null && !this.dk) { this.dk = true; var a = this.externalDataSource.isSortingSupportedOverride; this.dk = false; return a; } return false; }; VirtualDataSource.prototype.get_isFilteringSupported = function () { if (this.externalDataSource != null && !this.dk) { this.dk = true; var a = this.externalDataSource.isFilteringSupportedOverride; this.dk = false; return a; } return false; }; VirtualDataSource.prototype.get_isGroupingSupported = function () { if (this.externalDataSource != null && !this.dk) { this.dk = true; var a = this.externalDataSource.isGroupingSupportedOverride; this.dk = false; return a; } return false; }; Object.defineProperty(VirtualDataSource.prototype, "dc", { get: function () { return this.db; }, set: function (a) { this.db = a; this.actualDataProvider = this.resolveDataProvider(); }, enumerable: false, configurable: true }); VirtualDataSource.prototype.resolveDataProvider = function () { if (this.dc == null) { return null; } return this.dc.resolveDataProvider(); }; VirtualDataSource.prototype.propertyUpdatedOverride = function (a, b, c) { _super.prototype.propertyUpdatedOverride.call(this, a, b, c); switch (a) { case "DataProvider": this.actualDataProvider = this.dataProvider; this.queueAutoRefresh(); break; case "ExecutionContext": this.dg.b = this.executionContext; break; case "ActualDataProvider": this.actualDataProvider.pageSizeRequested = this.pageSizeRequested; this.actualDataProvider.pageLoaded = runOn(this, this.eu); this.actualDataProvider.batchCompleted = runOn(this, this.et); this.queueAutoRefresh(); break; case "PageSizeRequested": this.actualPageSize = this.pageSizeRequested; if (this.actualDataProvider != null) { this.actualDataProvider.pageSizeRequested = this.pageSizeRequested; } this.queueAutoRefresh(); break; case "ActualPageSize": this.dg.ag = this.actualPageSize; this.queueAutoRefresh(); break; case "FirstVisibleIndexRequested": this.dg.aa = this.firstVisibleIndexRequested; break; case "LastVisibleIndexRequested": this.dg.ae = this.lastVisibleIndexRequested; break; case "ActualCount": if (this.actualDataProvider != null && !this.di.q) { this.dg.ab = this.actualDataProvider.actualCount; } else { this.dg.ab = this.actualCount; } this.queueAutoRefresh(); break; case "MaxCachedPages": this.dj.h = this.maxCachedPages; break; } }; VirtualDataSource.prototype.ed = function (a) { if (this.aq && this.di.q) { var b = this.dh(a); if (b == null) { b = this.di.d(); } return a - b.t; } return a; }; VirtualDataSource.prototype.eu = function (a, b, c) { var _this = this; var d = this.executionContext; if (d != null) { d.execute(function () { return _this.e0(a, b, c); }); } else { this.e0(a, b, c); } }; VirtualDataSource.prototype.e0 = function (a, b, c) { if (a == null) { b = this.resolveFullCount(b); if (this.actualCount != b) { this.actualCount = b; } return; } if (c != this.actualPageSize && !this.actualPageSizePopulated) { this.actualPageSize = c; } this.actualPageSizePopulated = true; var d = a.pageIndex(); this.ev(d); this.dj.item(d, a); var e = a.schema(); if (e != null) { this.actualSchema = e; } var f = a.getSummaryInformation(); if (this.summaryDescriptions.k.count > 0 && this.c4 == null && f != null) { this.c4 = f; for (var g = 0; g < this.c4.length; g++) { this.c4[g].summaryIndex = this.eb(this.c4[g]); } var h = SectionData.r(this.c4); this.d9 = h.count; } var i = a.getGroupInformation(); if (this.groupDescriptions.k.count > 0 && this.c0 == null && i != null) { this.c0 = i; this.ez(); this.dm = false; } b = this.resolveFullCount(b); if (this.actualCount != b) { this.actualCount = b; } this.ey(a); }; VirtualDataSource.prototype.eb = function (a) { for (var b = 0; b < this.summaryDescriptions.k.count; b++) { var c = this.summaryDescriptions.k.item(b); if (c.propertyName == a.propertyName && c.operand == a.operand) { return b; } } return -1; }; VirtualDataSource.prototype.resolveFullCount = function (a) { if (this.c0 != null) { return this.di.u + this.getRootSummaryRowCount(); } return a + this.getRootSummaryRowCount(); }; VirtualDataSource.prototype.ez = function () { var a = 0; var b = 0; var c = this.shouldEmitSectionHeaders; var d = this.shouldEmitSectionFooters; for (var e = 0; e < this.c0.length; e++) { var f = new SectionData(); var g = b; var h = this.c0[e].endIndex - this.c0[e].startIndex; f.af = a; f.ae = e; f.d = new Array(this.groupDescriptions.k.count); for (var i = 0; i < this.groupDescriptions.k.count; i++) { f.d[i] = 0; } f.ad = a + h; f.t = 0; f.e = this.c0[e].groupKeyProperties; f.f = this.c0[e].groupKeyValues; f.h = new Array(0); f.ai(this.sectionHeaderDisplayMode, this.isSectionExpandedDefault); this.es(f, e == 0); if (d) { f.u = f.c.length; } var j = 0; f.i = new Array(this.groupDescriptions.k.count); if (this.summaryScope == 0 || this.summaryScope == 2) { if (this.c0[e].summaryResults != null) { f.i[this.groupDescriptions.k.count - 1] = this.c0[e].summaryResults; if (f.i != null) { for (var k = 0; k < f.i[this.groupDescriptions.k.count - 1].length; k++) { var l = f.i[this.groupDescriptions.k.count - 1][k]; l.summaryIndex = this.eb(l); l.groupKey = f.f; } j = SectionData.r(f.i[this.groupDescriptions.k.count - 1]).count; } } } if (this.includeSummaryRowsInSection && this.shouldEmitSummaryRows) { if (this.isSectionSummaryRowsAtBottom) { f.ag = j; } else { f.ah = j; g += j; } b += j; f.ad = f.ad + j; } if (d) { b++; } if (c) { var m = 0; f.b = new Array(f.c.length); if (f.z > -1) { var n = this.di.t._inner[f.z]; for (var o = 0; o < n.f.length; o++) { m = o; if (!Base.equalsStatic(n.f[o], f.f[o])) { break; } } } for (var p = m; p < f.c.length; p++) { b++; g++; f.ad = f.ad + 1; var q = this.em(f, p); f.a[p] = q; f.b[p] = p - m; if (this.dq.containsKey(q)) { f.c[p] = this.dq.item(q); } else { f.c[p] = this.isSectionExpandedDefault; } if (!f.c[p]) { var r = 0; var s = f.c.length - 1 - p; f.ad = f.ad - r; b -= r; if (d) { b--; f.u = f.u - 1; } p += s; } } } f.y = c ? f.v() : 0; f.t = g; this.di.z(f, h + 1); if (!f.p) { var t = f.w(); f.ad = f.ad - (f.d[t] + j); b -= f.d[t] + j; } a = f.ad + 1; this.di.t.add(f); f.q = this.di.r(f); } var u = 0; for (var v = 0; v < this.di.t.count; v++) { var w = this.di.t._inner[v]; if (this.shouldEmitSectionHeaders) { if (!w.q) { var x = w.ad - w.af + 1; this.di.ae(w.ae); this.di.ab(w, -x, -x); v--; u++; continue; } } if (w.z > -1) { w.z -= u; } } }; VirtualDataSource.prototype.es = function (a, b) { if (b) { this.c2 = new Array(this.groupDescriptions.k.count); for (var c = 0; c < this.c2.length; c++) { this.c2[c] = a; } } if (this.sectionHeaderDisplayMode == 1) { var d = false; var e = a.e.length; for (var f = 0; f < e; f++) { if (d) { this.c2[f] = a; continue; } var g = false; if (this.c2[f].f[f] == null) { g = a.f[f] != null; } else { g = !Base.equalsStatic(this.c2[f].f[f], a.f[f]); } if (g) { this.c2[f] = a; if (f - 1 > -1) { var h = f - 1; while (h >= 0 && this.c2[h].o) { h = h - 1; } a.z = this.c2[h].ae; } d = true; } } } else { var i = false; for (var j = 0; j < a.e.length; j++) { if (this.c2[0].f[j] == null) { if (this.c2[0].f[j] != a.f[j]) { i = true; break; } continue; } if (!Base.equalsStatic(this.c2[0].f[j], a.f[j])) { i = true; break; } } if (i) { this.c2[0] = a; } } }; VirtualDataSource.prototype.er = function (a) { }; VirtualDataSource.prototype.ey = function (a) { if (this.updateNotifier != null) { var b = a.pageIndex() * this.actualPageSize; if (this.actualDataProvider != null) { if (b > this.actualDataProvider.actualCount) { return; } } var c = this.ec(b); var d = this.ec(b + a.count() - 1); if (c > 0 && this.getRowType(c - 1) == 1) { c--; } if (this.actualCount == 0 && a.count() == 0) { this.onClearItems(); } else { this.updateNotifier.rangeActualized(c, d); } } }; VirtualDataSource.prototype.ec = function (a) { if (this.aq && this.di.q) { var b = this.di.g(a); if (b == null) { b = this.di.d(); } if (!b.p) { return b.af; } return a + b.t; } return a; }; VirtualDataSource.prototype.ew = function (a) { a(); }; VirtualDataSource.prototype.get_isVirtual = function () { return true; }; VirtualDataSource.prototype.isPlaceholderItem = function (a) { var b = this.c5(a); var c = b[0]; if (!this.dj.d(c)) { if (b[1] == -1) { return false; } return true; } return false; }; VirtualDataSource.prototype.getItemAtIndex = function (a) { if (a >= this.actualCount - this.getRootSummaryRowCount()) { return this.eh(a); } var b = this.c5(a); var c = b[0]; if (!this.dj.d(c)) { if (b[1] == -1) { return this.eh(a); } return null; } var d = this.dj.item(c); var e = b[1]; if (e == -1) { return this.eh(a); } return d.getItemAtIndex(e); }; VirtualDataSource.prototype.getItemFromKey = function (a) { var b = this.indexOfKey(a); if (b >= 0) { return this.getItemAtIndex(b); } return null; }; VirtualDataSource.prototype.eh = function (a) { if (a >= this.actualCount - this.getRootSummaryRowCount()) { var b = new DataSourceSpecialRow(); b.rowType = 4; b.level = 0; var c = a - (this.actualCount - this.getRootSummaryRowCount()); var d = SectionData.r(this.c4); var e = new Array(d._inner[c].count); d._inner[c].values.copyTo(e, 0); b.summaryResults = e; return b; } var f = this.dh(a); if (f != null) { var g = f.j(a); if (g == 1 || g == 2) { var h = new DataSourceSpecialRow(); h.rowType = g; h.summaryResults = f.i[f.i.length - 1]; h.level = g == 1 ? f.w() + (a - f.af) : (f.u - 1) - (f.w() + (a - (f.ad - f.u + 1))); if (this.sectionHeaderDisplayMode == 0) { for (var i = 0; i < this.groupDescriptions.k.count; i++) { h.setSectionValue(this.groupDescriptions.k.item(i).propertyName, f.f[i]); h.setValue(this.groupDescriptions.k.item(i).propertyName, f.f[i]); } } else { if (h.level >= 0 && h.level < this.groupDescriptions.k.count) { h.setSectionValue(this.groupDescriptions.k.item(h.level).propertyName, f.f[h.level]); h.setValue(this.groupDescriptions.k.item(h.level).propertyName, f.f[h.level]); } } return h; } else if (g == 5) { var j = new DataSourceSpecialRow(); j.rowType = 5; j.level = f.c.length; var k = f.x(a); var l = SectionData.r(f.i[f.i.length - 1]); var m = new Array(l._inner[k].count); l._inner[k].values.copyTo(m, 0); j.summaryResults = m; return j; } } return null; }; VirtualDataSource.prototype.c5 = function (a) { if (this.aq && this.di.q) { var b = false; var c = this.dh(a); if (c == null) { c = this.di.d(); if (this.c4.length > 0 && a > c.ad) { b = true; } } var d = c.af; if (this.shouldEmitSectionHeaders && a >= d && a < d + c.v()) { b = true; } if (a - (d + c.v() - 1) <= c.aa + c.ah) { b = true; } if (this.shouldEmitSectionFooters) { if (a <= c.ad && a >= c.ad - c.c.length - c.ag) { b = true; } } else if (c.ag > 0) { if (a > c.ad - c.ag && a <= c.ad) { b = true; } } var e = a - c.t; var f = truncate(Math.floor(e / this.actualPageSize)); var g = e % this.actualPageSize; if (b) { g = -1; } var h = new Array(2); h[0] = f; h[1] = g; return h; } else { var i = truncate(Math.floor(a / this.actualPageSize)); var j = a % this.actualPageSize; var k = new Array(2); k[0] = i; k[1] = j; return k; } }; VirtualDataSource.prototype.dh = function (a) { return this.di.e(a); }; VirtualDataSource.prototype.getItemPropertyAtIndex = function (a, b) { if (a > (this.actualCount - 1) - this.getRootSummaryRowCount()) { return this.ei(a, b); } var c = this.c5(a); var d = c[0]; if (!this.dj.d(d)) { if (c[1] == -1) { return this.ei(a, b); } return null; } var e = this.dj.item(d); var f = c[1]; if (f == -1) { return this.ei(a, b); } if (this.ar()) { var g = e.getItemAtIndex(f); var h = this.ao(g, b); if (h) { var i = this.a2(g, b); return i; } } return e.getItemValueAtIndex(f, b); }; VirtualDataSource.prototype.ei = function (a, b) { var c = this.eh(a); if (typeCast(DataSourceSpecialRow.$, c) !== null) { return c.getValue(b); } return null; }; VirtualDataSource.prototype.ex = function (a) { if (!this.ds.containsKey(a)) { this.ds.addItem(a, 1); } else { this.ds.item(a, this.ds.item(a) + 1); } }; VirtualDataSource.prototype.ev = function (a) { if (this.ds.containsKey(a)) { this.ds.item(a, this.ds.item(a) - 1); if (this.ds.item(a) <= 0) { this.ds.removeItem(a); if (this.actualDataProvider != null) { this.actualDataProvider.removePageRequest(a); } } } }; VirtualDataSource.prototype.addCandidate = function (a, b) { var c = false; if (!this.dr.containsKey(a)) { var d = new List$1(Number_$type, 0); var e = this.transformPage(a); for (var f = 0; f < e.length; f++) { var g = e[f]; if (!this.dj.d(g)) { d.add(g); this.ex(g); var h = this.ds.item(g); if (h == 1 && this.actualDataProvider != null) { this.actualDataProvider.addPageRequest(g, b); } c = true; } } if (d.count > 0) { this.dr.addItem(a, d.toArray()); } } return c; }; VirtualDataSource.prototype.removeCandidate = function (a) { if (this.dr.containsKey(a)) { for (var b = 0; b < this.dr.item(a).length; b++) { var c = this.dr.item(a)[b]; this.ev(c); } this.dr.removeItem(a); } }; VirtualDataSource.prototype.transformPage = function (a) { var b = [a]; if (this.aq && this.di.q) { var c = a * this.actualPageSize; var d = c + this.actualPageSize - 1; var e = this.dh(c); var f = new List$1(Number_$type, 0); for (var g = c; g <= d; g++) { if (e == null) { break; } if (g > e.ad) { if (e.ae < this.di.t.count - 1) { e = this.di.t._inner[e.ae + 1]; } else { break; } } if (!e.p || (g >= e.af && g <= e.af + (e.v() - 1) + e.aa)) { continue; } var h = g - e.t; var i = intDivide(h, this.actualPageSize); if (!f.contains(i)) { f.add(i); } } b = f.toArray(); } return b; }; VirtualDataSource.prototype.getUnrealizedCount = function () { var a = this.dj.g * this.actualPageSize; var b = this.actualCount - a; return b; }; VirtualDataSource.prototype.onSetItemOverride = function (a, b, c) { _super.prototype.onSetItemOverride.call(this, a, b, c); var d = this.c5(a); var e = d[0]; if (this.dj.d(e)) { this.dj.j(e); } }; VirtualDataSource.prototype.refreshInternalOverride = function () { _super.prototype.refreshInternalOverride.call(this); this.actualPageSizePopulated = false; var a = this.actualCount != 0; this.dl = true; if (!this.dm) { this.resetCache(); if (a) { this.onClearItems(); } this.c0 = null; this.c4 = null; this.d9 = 0; this.di.v(); } else { this.dm = false; if (a) { this.onClearItems(); } } this.e1(); this.dg.au(); this.dl = false; }; VirtualDataSource.prototype.e1 = function () { var e_1, _a; if (this.actualDataProvider != null) { try { for (var _b = __values(fromEnum(this.dr.values)), _c = _b.next(); !_c.done; _c = _b.next()) { var a = _c.value; for (var c = 0; c < a.length; c++) { var b = a[c]; this.actualDataProvider.addPageRequest(b, 1); } } } 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; } } } }; VirtualDataSource.prototype.onClearItemsOverride = function () { _super.prototype.onClearItemsOverride.call(this); if (!this.dl) { this.queueAutoRefresh(); } }; VirtualDataSource.prototype.onInsertItemOverride = function (a, b) { _super.prototype.onInsertItemOverride.call(this, a, b); this.queueAutoRefresh(); }; VirtualDataSource.prototype.onRemoveItemOverride = function (a, b) { _super.prototype.onRemoveItemOverride.call(this, a, b); this.queueAutoRefresh(); }; VirtualDataSource.prototype.get_isItemIndexLookupSupported = function () { return true; }; VirtualDataSource.prototype.get_isKeyIndexLookupSupported = function () { return true; }; VirtualDataSource.prototype.indexOfItem = function (a) { var b = this.dj.b; var c = b.o; var d = b.q; var e = d.count; var f = b.p; for (var g = 0; g < e; g++) { if (f._inner[g]) { continue; } var h = d._inner[g].b; var i = h.count(); for (var j = 0; j < i; j++) { if (this.dp(h.getItemAtIndex(j), a)) { var k = typeGetValue(c._inner[g]); var l = k * this.actualPageSize; return l + j; } } } if (this.actualDataProvider != null && this.actualDataProvider.isItemIndexLookupSupported) { return this.actualDataProvider.indexOfItem(a); } return -1; }; VirtualDataSource.prototype.dp = function (a, b) { if (a == null && b == null) { return true; } if (a == null || b == null) { return false; } return Base.equalsStatic(a, b); }; VirtualDataSource.prototype.indexOfKey = function (a) { var b = this.actualPrimaryKey; if (b == null || b.length < 1 || this.actualBaseDataProvider == null) { return -1; } this.ensureComparables(this.actualSchema); var c = this.df(); if (this.aq && this.shouldEmitSectionHeaders && !this.isSectionContentVisible && this.isSectionHeaderNormalRow) { if (this.di.t.count > 0) { for (var d = 0; d < this.di.t.count; d++) { var e = this.di.t._inner[d]; var f = new DataSourceSpecialRow(); for (var g = 0; g < e.e.length; g++) { var h = e.e[g]; var i = e.f[g]; f.setSectionValue(h, i); } if (c.i(f, a) == 0) { return d; } } } } var j = this.dj.b; var k = j.o; var l = j.q; var m = l.count; var n = j.p; for (var o = 0; o < m; o++) { if (n._inner[o]) { continue; } var p = l._inner[o].b; var q = p.count(); for (var r = 0; r < q; r++) { if (c.i(p.getItemAtIndex(r), a) == 0) { var s = typeGetValue(k._inner[o]); var t = s * this.actualPageSize; return t + r; } } } if (this.actualDataProvider != null && this.actualDataProvider.isKeyIndexLookupSupported) { return this.actualDataProvider.indexOfKey(a); } return -1; }; VirtualDataSource.prototype.df = function () { var a = new Array(this.actualPrimaryKey.length); for (var b = 0; b < a.length; b++) { a[b] = 0; } return new DataSourcePropertiesComparer(this.actualPrimaryKey, a, this.d, this); }; VirtualDataSource.prototype.getStickyRowPriority = function (a) { var b = this.getRowType(a); switch (b) { case 1: return 100 - this.getRowLevel(a); case 2: return 99 - this.getRowLevel(a); case 3: case 5: return 2; case 4: return 3; } return 1; }; VirtualDataSource.prototype.unpinRow = function (a) { _super.prototype.unpinRow.call(this, a); }; VirtualDataSource.prototype.pinRow = function (a) { _super.prototype.pinRow.call(this, a); }; VirtualDataSource.prototype.isRowPinned = function (a) { return _super.prototype.isRowPinned.call(this, a); }; VirtualDataSource.prototype.getStickyRowsInRange = function (a, b) { if ((this.groupDescriptions == null || this.groupDescriptions.k.count == 0) && (this.summaryDescriptions == null || this.summaryDescriptions.k.count == 0)) { return null; } var c = this.dh(a); var d = this.dh(b); if (this.di.t.count > 0) { if (this.di.t.count == 1) { c = this.di.t._inner[0]; d = this.di.t._inner[0]; } else { c = this.di.e(a); if (c != null) { while (c.z != -1) { c = this.di.t._inner[c.z]; } } d = this.di.e(b); if (b >= this.actualCount - this.getRootSummaryRowCount()) { d = this.di.d(); } } } else if (this.getRootSummaryRowCount() > 0) { var e = new List$1(Number_$type, 0); for (var f = this.actualCount - this.getRootSummaryRowCount(); f < this.actualCount; f++) { e.add(f); } return e.toArray(); } if (c == null || d == null) { return null; } if (c.ae == this.d1 && c.aa == this.d3 && c.af == this.d4 && c.ad == this.d2 && c.ah == this.d6 && c.ag == this.d5 && d.ae == this.du && d.aa == this.dw && d.af == this.dx && d.ad == this.dv && d.ah == this.dz && d.ag == this.dy && this.getRootSummaryRowCount() == this.d0) { return this.c1; } this.d1 = c.ae; this.du = d.ae; this.d3 = c.aa; this.dw = d.aa; this.d4 = c.af; this.dx = d.af; this.d2 = c.ad; this.dv = d.ad; this.dz = d.ah; this.dy = d.ag; this.d6 = c.ah; this.d5 = c.ag; this.d0 = this.getRootSummaryRowCount(); var g = new List$1(Number_$type, 0); for (var h = c.ae; h <= d.ae; h++) { var i = this.di.t._inner[h]; var j = i.c.length; var k = i.v(); if (this.shouldEmitSectionHeaders && this.aq) { for (var l = 0; l < i.c.length; l++) { if (i.a[l] != null) { var m = i.af + i.b[l]; g.add(m); } if (!i.c[l]) { break; } } } if (i.p) { for (var n = 0; n < i.ah; n++) { g.add(i.af + n + k); } if (this.shouldEmitShiftedRows) { for (var o = 0; o < i.aa; o++) { g.add(i.af + o + j); } } if (this.summaryScope == 0 || this.summaryScope == 2) { if (this.includeSummaryRowsInSection && this.isSectionSummaryRowsAtBottom) { for (var p = i.ag - 1; p >= 0; p--) { if (this.shouldEmitSectionFooters) { g.add(i.ad - k - p); } else { g.add(i.ad - p); } } } } } if (this.shouldEmitSectionFooters && this.aq) { for (var q = i.c.length - 1; q >= 0; q--) { if (!i.c[q]) { break; } g.add(i.ad - q); } } } for (var r = this.actualCount - this.getRootSummaryRowCount(); r < this.actualCount; r++) { g.add(r); } this.c1 = g.toArray(); return this.c1; }; VirtualDataSource.prototype.isExclusivelySticky = function (a) { var b = this.getRowType(a); return b == 1 || b == 2 || b == 4 || (this.isSectionSummaryRowsAtBottom && b == 5); }; VirtualDataSource.prototype.getRowType = function (a) { if (a < 0) { return 0; } var b = this.getItemAtIndex(a); var item_ = b; if ((item_ != null && item_.$$isSpecialRow !== undefined)) { var c = b.rowType; if (this.isSectionHeaderNormalRow && c == 1) { return 0; } return c; } return 0; }; VirtualDataSource.prototype.getIsRowExpandedAtIndex = function (a) { var b = this.di.e(a); if (b == null) { b = this.di.d(); } for (var c = 0; c < b.a.length; c++) { if (b.a[c] != null) { if (a == b.af + b.b[c]) { return b.c[c]; } } } return _super.prototype.getIsRowExpandedAtIndex.call(this, a); }; VirtualDataSource.prototype.setIsRowExpandedAtIndex = function (a, b) { var c = this.di.e(a); if (c == null) { c = this.di.d(); } for (var d = 0; d < c.a.length; d++) { if (c.a[d] != null) { if (a == c.af + c.b[d]) { var e = false; var f = c.a[d]; if (this.dq.containsKey(f) && this.dq.item(f) != b) { var g = this.dq.item(f); if (b == this.isSectionExpandedDefault) { this.dq.removeItem(f); } else { this.dq.item(f, b); } e = true; this.onRowExpansionChanged(a, g, b); } else if (b != this.isSectionExpandedDefault) { this.dq.addItem(f, b); e = true; this.onRowExpansionChanged(a, this.isSectionExpandedDefault, b); } if (e) { this.di.v(); this.ez(); this.dm = true; if (this.actualCount != this.di.u) { this.actualCount = this.di.u + this.getRootSummaryRowCount(); } else { this.queueAutoRefresh(); } } break; } } } }; VirtualDataSource.prototype.getRowLevel = function (a) { if (a < 0) { return 0; } var b = this.getItemAtIndex(a); var item_ = b; if ((item_ != null && item_.$$isSpecialRow !== undefined)) { return b.level; } if (this.isGroupingSupported) { if (this.sectionHeaderDisplayMode == 1) { return this.groupDescriptions.k.count; } else if (this.groupDescriptions.k.count > 0) { return 1; } } return 0; }; VirtualDataSource.prototype.getRootSummaryRowCount = function () { return this.shouldEmitSummaryRows ? this.d9 : 0; }; VirtualDataSource.prototype.el = function (a) { var b = ""; for (var c = 0; c < a.e.length; c++) { var d = a.f[c].toString(); b += a.e[c] + ":" + d; } return b; }; VirtualDataSource.prototype.em = function (a, b) { if (this.sectionHeaderDisplayMode == 0) { return this.el(a); } var c = ""; for (var d = 0; d < a.e.length; d++) { var e = a.f[d].toString(); c += a.e[d] + ":" + e + ":"; } var f = b.toString(); c += f; return c; }; VirtualDataSource.prototype.getRootSummaryResults = function () { return this.c4; }; VirtualDataSource.prototype.getSectionSummaryResults = function (a) { if (this.di.t.count > 0 && a >= 0 && a < this.di.t.count) { return this.di.t._inner[a].i; } return null; }; VirtualDataSource.prototype.clone = function () { return null; }; VirtualDataSource.prototype.cloneProperties = function (a) { _super.prototype.cloneProperties.call(this, a); var b = typeCast(VirtualDataSource.$, a); if (b != null) { b.pageSizeRequested = this.pageSizeRequested; b.maxCachedPages = this.maxCachedPages; } }; Object.defineProperty(VirtualDataSource.prototype, "concurrencyTag", { get: function () { return this._concurrencyTag; }, set: function (a) { this._concurrencyTag = a; }, enumerable: false, configurable: true }); VirtualDataSource.prototype.get_isBatchingEnabled = function () { return true; }; VirtualDataSource.prototype.set_isBatchingEnabled = function (a) { _super.prototype.set_isBatchingEnabled.call(this, a); }; VirtualDataSource.prototype.updatePropertyAtKey = function (a, b, c, d) { if (d === void 0) { d = false; } var e = _super.prototype.updatePropertyAtKey.call(this, a, b, c, d); if (this.concurrencyTag != null && this.ar()) { var f = this.indexOfKey(a); if (f > -1) { var g = this.getItemAtIndex(f); var h = this.actualDataProvider.getItemValue(g, this.concurrencyTag); if (h != null) { var i = this.v.g(a); i.version = h; } } } return e; }; VirtualDataSource.prototype.removeItemByKey = function (a) { _super.prototype.removeItemByKey.call(this, a); if (this.concurrencyTag != null && this.ar()) { var b = this.indexOfKey(a); if (b > -1) { var c = this.getItemAtIndex(b); var d = this.actualDataProvider.getItemValue(c, this.concurrencyTag); if (d != null) { var e = this.v.g(a); e.version = d; } } } }; VirtualDataSource.prototype.ct = function (a, b) { if (a == 5) { var c = b; var d_1 = c.a; var e = new List$1(TransactionState.$, 0); var _loop_1 = function (f) { var e_2, _a, e_3, _b; var g = d_1[f].transactionType; var h = null; var i = null; if (g == TransactionType.Delete || g == 1) { var j = new Dictionary$2(String_$type, Base.$, 0); var k = d_1[f].id; for (var l = 0; l < this_1.actualPrimaryKey.length; l++) { j.addItem(this_1.actualPrimaryKey[l], k[l]); } h = j; } if (g == 0) { var m = new Dictionary$2(String_$type, Base.$, 0); var n = d_1[f].id; var o = n[0]; for (var p = 0; p < this_1.actualSchema.propertyNames.length; p++) { var q = this_1.actualSchema.propertyNames[p]; m.addItem(q, this_1.actualDataProvider.getItemValue(o, q)); } i = m; } else if (g == 1) { i = d_1[f].value; } if (h != null) { var r = {}; var s = h; try { for (var _c = (e_2 = void 0, __values(fromEnum(s))), _d = _c.next(); !_d.done; _d = _c.next()) { var t = _d.value; r[t.key] = t.value; } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_d && !_d.done && (_a = _c.return)) _a.call(_c); } finally { if (e_2) throw e_2.error; } } h = r; } if (i != null) { var u = {}; var v = i; try { for (var _e = (e_3 = void 0, __values(fromEnum(v))), _f = _e.next(); !_f.done; _f = _e.next()) { var w = _f.value; u[w.key] = w.value; } } catch (e_3_1) { e_3 = { error: e_3_1 }; } finally { try { if (_f && !_f.done && (_b = _e.return)) _b.call(_e); } finally { if (e_3) throw e_3.error; } }