igniteui-react-core
Version:
Ignite UI React Core.
596 lines (595 loc) • 19.8 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 { Base, INotifyPropertyChanged_$type, PropertyChangedEventArgs, runOn, delegateCombine, typeCast, delegateRemove, String_$type, fromEnum, Number_$type, Array_$type, markType } from "./type";
import { IDataSourceLocalDataProvider_$type } from "./IDataSourceLocalDataProvider";
import { DataSourceLocalDataProvider } from "./DataSourceLocalDataProvider";
import { List$1 } from "./List$1";
import { SummaryDescription } from "./SummaryDescription";
import { Tuple$2 } from "./Tuple$2";
import { AggregatedDataProviderLayerMap } from "./AggregatedDataProviderLayerMap";
import { AggregatedDataProviderLayerInfo } from "./AggregatedDataProviderLayerInfo";
import { IDataSourceUpdateNotifier_$type } from "./IDataSourceUpdateNotifier";
/**
* @hidden
*/
export let AggregatedDataProvider = /*@__PURE__*/ (() => {
class AggregatedDataProvider extends Base {
constructor() {
super();
this.g = new DataSourceLocalDataProvider();
this.c = null;
this.r = null;
this.j = false;
this.q = null;
this.i = false;
this.schemaChanged = null;
this.propertyChanged = null;
this.h = false;
this.k = true;
this.o = new List$1(String_$type, 0);
let a = this.g;
a.schemaChanged = delegateCombine(a.schemaChanged, runOn(this, this.ab));
}
clone() {
let a = new AggregatedDataProvider();
a.deferAutoRefresh = this.deferAutoRefresh;
a.executionContext = this.executionContext;
a.dataSource = this.dataSource;
a.propertiesRequested = this.propertiesRequested;
a.schemaHints = this.schemaHints;
a.summaryScope = this.summaryScope;
a.includeParentSummary = this.includeParentSummary;
if (this.targetDataSource != null) {
a.targetDataSource = this.targetDataSource.clone();
}
for (let b = 0; b < this.groupDescriptions.k.count; b++) {
a.groupDescriptions.add(this.groupDescriptions.k.item(b));
}
for (let c = 0; c < this.sortDescriptions.k.count; c++) {
a.sortDescriptions.add(this.sortDescriptions.k.item(c));
}
for (let d = 0; d < this.filterExpressions.k.count; d++) {
a.filterExpressions.add(this.filterExpressions.k.item(d));
}
for (let e = 0; e < this.summaryDescriptions.k.count; e++) {
a.summaryDescriptions.add(this.summaryDescriptions.k.item(e));
}
return a;
}
ab(a, b) {
if (this.schemaChanged != null) {
this.schemaChanged(this, b);
}
}
get targetDataSource() {
return this.c;
}
set targetDataSource(a) {
let b = this.c;
this.c = a;
if (b != this.c) {
this.ai("TargetDataSource", b, this.c);
}
}
get schemaHints() {
return this.r;
}
set schemaHints(a) {
let b = this.r;
this.r = a;
if (b != this.r) {
this.ai("SchemaHints", b, this.r);
}
}
get includeParentSummary() {
return this.j;
}
set includeParentSummary(a) {
let b = this.j;
this.j = a;
if (b != this.j) {
this.ai("IncludeParentSummary", b, this.r);
}
}
get actualSchema() {
return this.g.actualSchema;
}
get executionContext() {
return this.g.executionContext;
}
set executionContext(a) {
this.g.executionContext = a;
}
get updateNotifier() {
return this.g.updateNotifier;
}
set updateNotifier(a) {
this.g.updateNotifier = a;
}
get dataSource() {
return this.q;
}
set dataSource(a) {
let b = this.q;
this.q = a;
if (b != this.q) {
this.ai("ItemsSource", b, this.q);
}
}
get deferAutoRefresh() {
return this.i;
}
set deferAutoRefresh(a) {
let b = this.i;
this.i = a;
if (b != this.i) {
this.ai("DeferAutoRefresh", b, this.i);
}
}
get isSortingSupported() {
return this.g.isSortingSupported;
}
get isGroupingSupported() {
return this.g.isGroupingSupported;
}
get isFilteringSupported() {
return this.g.isFilteringSupported;
}
get sortDescriptions() {
return this.g.sortDescriptions;
}
get groupDescriptions() {
return this.g.groupDescriptions;
}
get summaryDescriptions() {
return this.g.summaryDescriptions;
}
get summaryScope() {
return this.g.summaryScope;
}
set summaryScope(a) {
this.g.summaryScope = a;
}
get filterExpressions() {
return this.g.filterExpressions;
}
get propertiesRequested() {
return this.g.propertiesRequested;
}
set propertiesRequested(a) {
this.g.propertiesRequested = a;
}
get schemaIncludedProperties() {
return this.g.schemaIncludedProperties;
}
set schemaIncludedProperties(a) {
this.g.schemaIncludedProperties = a;
}
get notifyUsingSourceIndexes() {
return true;
}
get isItemIndexLookupSupported() {
return this.g.isItemIndexLookupSupported;
}
get isKeyIndexLookupSupported() {
return this.g.isKeyIndexLookupSupported;
}
get actualCount() {
return this.g.actualCount;
}
ai(a, b, c) {
if (this.propertyChanged != null) {
this.propertyChanged(this, new PropertyChangedEventArgs(a));
}
this.ao(a, b, c);
}
ao(a, b, c) {
switch (a) {
case "ItemsSource":
this.g.dataSource = c;
break;
case "DeferAutoRefresh":
if (!c) {
this.queueAutoRefresh();
}
break;
case "TargetDataSource":
if (b != null) {
let d = b;
if (d.updateNotifier != null) {
if (typeCast(AggregatedDataProviderTargetDataSourceNotifier.$, d.updateNotifier) !== null) {
d.updateNotifier = d.updateNotifier.c;
}
}
d.schemaChanged = delegateRemove(d.schemaChanged, runOn(this, this.ah));
}
if (c != null) {
let e = c;
this.g.executionContext = e.executionContext;
let f = new AggregatedDataProviderTargetDataSourceNotifier(this, e.updateNotifier);
e.updateNotifier = f;
e.schemaChanged = delegateCombine(e.schemaChanged, runOn(this, this.ah));
}
this.queueAutoRefresh();
break;
}
}
ah(a, b) {
this.k = true;
this.queueAutoRefresh();
}
addItem(a) {
this.g.addItem(a);
}
queueAutoRefresh() {
if (this.deferAutoRefresh) {
return;
}
if (this.h) {
return;
}
if (this.executionContext != null) {
this.h = true;
this.executionContext.enqueueAction(runOn(this, this.ae));
}
}
ae() {
if (this.deferAutoRefresh) {
this.h = false;
return;
}
if (!this.h) {
return;
}
this.h = false;
this.ap();
}
ap() {
this.aq();
}
aq() {
if (this.c == null) {
return;
}
if (!this.k) {
return;
}
this.k = false;
let a = this.c.clone();
let b = this.c.clone();
a = this.d(a);
b = this.e(b);
a.flushAutoRefresh();
b.flushAutoRefresh();
this.o.clear();
let c = this.a(b, a, 0, 0);
this.t(c, this.o);
this.dataSource = c;
}
t(a, b) {
if (b.count == 0) {
return null;
}
for (let d = 0; d < a.length; d++) {
let c = a[d];
let e = c;
for (let f of fromEnum(b)) {
if (e[f] == null) {
e[f] = NaN;
}
}
}
return null;
}
d(a) {
a.shouldEmitSummaryRows = false;
a.includeSummaryRowsInSection = false;
a.summaryScope = 2;
a.isSectionSummaryRowsAtBottom = true;
a.sectionHeaderDisplayMode = 0;
if (a.summaryDescriptions.k.count == 0) {
for (let b = 1; b < a.groupDescriptions.k.count; b++) {
a.summaryDescriptions.k.add(new SummaryDescription(2, a.groupDescriptions.k.item(b).propertyName, 4));
}
}
return a;
}
e(a) {
a.shouldEmitSummaryRows = false;
a.includeSummaryRowsInSection = false;
a.summaryScope = 2;
a.isSectionSummaryRowsAtBottom = true;
a.sectionHeaderDisplayMode = 0;
while (a.groupDescriptions.k.count > 1) {
a.groupDescriptions.k.removeAt(a.groupDescriptions.k.count - 1);
}
if (a.summaryDescriptions.k.count == 0) {
for (let b = 0; b < a.groupDescriptions.k.count; b++) {
a.summaryDescriptions.k.add(new SummaryDescription(2, a.groupDescriptions.k.item(b).propertyName, 4));
}
}
return a;
}
flushAutoRefresh() {
this.ae();
}
refresh() {
this.ap();
}
getItemAtIndex(a) {
return this.g.getItemAtIndex(a);
}
getItemValue(a, b) {
return this.g.getItemValue(a, b);
}
indexOfItem(a) {
return this.g.indexOfItem(a);
}
indexOfKey(a) {
return this.g.indexOfKey(a);
}
removeItem(a) {
this.g.removeItem(a);
}
resolveSchemaPropertyType(a) {
return this.g.resolveSchemaPropertyType(a);
}
setItemValue(a, b, c) {
this.g.setItemValue(a, b, c);
}
notifyClearItems() {
if (this.targetDataSource != null) {
this.targetDataSource.notifyClearItems();
}
}
notifyInsertItem(a, b) {
if (this.targetDataSource != null) {
this.targetDataSource.notifyInsertItem(a, b);
}
}
notifyRemoveItem(a, b) {
if (this.targetDataSource != null) {
this.targetDataSource.notifyRemoveItem(a, b);
}
}
notifySetItem(a, b, c) {
if (this.targetDataSource != null) {
this.targetDataSource.notifySetItem(a, b, c);
}
}
p(a) {
return a.groupDescriptions.k.count;
}
a(a, b, c, d) {
if (d == this.p(b)) {
let e = this.z(b, c, d);
return e.d;
}
if (d == 0) {
let f = new AggregatedDataProviderLayerMap();
let g = this.aa(f, a, c, d);
g = this.aa(f, b, c, d);
return g.d;
}
return new Array(0);
}
aa(a, b, c, d) {
let e = false;
let f = 0;
let g = null;
for (let h = c; h < b.actualCount; h++) {
let i = b.getRowType(h);
if (i == 3 || i == 6) {
continue;
}
if (!e) {
if (i == 0) {
e = true;
}
if (i == 1) {
e = true;
f = 0;
g = this.b(a, b, h, d);
this.ag(a, b, g, h, d);
continue;
}
}
let j = b.getItemAtIndex(h);
if (g != null && i == 0) {
g.k.add1(j);
}
if (g != null && this.l(b, j, h)) {
if (b.getRowType(h) == 1) {
h--;
}
e = false;
g = null;
}
}
return new Tuple$2(Number_$type, Array_$type, b.actualCount, a.a(this.o));
}
ag(a, b, c, d, e) {
let f = b.getRowType(d);
if (f == 1) {
let g = b.getItemAtIndex(d);
if (c.i.count == 1) {
this.ad(a, b, g, c);
}
else {
this.ac(b, g, c);
}
}
}
af(a, b, c, d, e) {
let f = b.getRowType(d);
if (f == 5) {
let g = b.getItemAtIndex(d);
if (this.n(g, c)) {
if (c.i.count == 1) {
this.ad(a, b, g, c);
}
else {
this.ac(b, g, c);
}
}
}
let h = 1;
while (d + h < b.actualCount && b.getRowType(d + h) == 5) {
let i = b.getRowType(d + h);
if (i == 5) {
let j = b.getItemAtIndex(d + h);
if (c.i.count == 1) {
this.ad(a, b, j, c);
}
else {
this.ac(b, j, c);
}
}
h++;
}
}
ad(a, b, c, d) {
let e = a.b(d.j._inner[0]);
let f = c.summaryResults;
if (e != null) {
for (let g = 0; g < f.length; g++) {
let h = f[g];
e.z(h.propertyName, b.summaryDescriptions.k.item(g).alias, h.operand, h.value);
}
}
}
ac(a, b, c) {
let d = b.summaryResults;
for (let e = 0; e < d.length; e++) {
let f = d[e];
c.p(f.propertyName, a.summaryDescriptions.k.item(e).alias, f.operand, f.value);
}
}
n(a, b) {
return a.level == 1;
}
b(a, b, c, d) {
let e = b.getItemAtIndex(c);
let f = e.getSectionKeys();
let g = new List$1(String_$type, 0);
for (let h = 0; h < f.length; h++) {
g.add(f[h]);
}
let i = new List$1(Base.$, 0);
for (let j = 0; j < g.count; j++) {
i.add1(e.getSectionValue(g._inner[j]));
}
let k = new AggregatedDataProviderLayerInfo();
k.i = g;
k.j = i;
a.g(k);
return k;
}
z(a, b, c) {
let d = new List$1(Base.$, 0);
let e = false;
for (let f = b; f < a.actualCount; f++) {
let g = a.getRowType(f);
if (g == 3 || g == 6) {
continue;
}
if (!e) {
if (g == 0) {
e = true;
}
if (g == 1) {
e = true;
continue;
}
}
let h = a.getItemAtIndex(f);
d.add1(h);
if (this.l(a, h, f)) {
return new Tuple$2(Number_$type, Array_$type, f, d.toArray());
}
}
return new Tuple$2(Number_$type, Array_$type, a.actualCount, d.toArray());
}
l(a, b, c) {
if (a.getRowType(c) != 0) {
return true;
}
return false;
}
aj() {
this.k = true;
this.queueAutoRefresh();
}
ak(a, b) {
this.k = true;
this.queueAutoRefresh();
}
al(a, b) {
this.k = true;
this.queueAutoRefresh();
}
am(a, b, c) {
this.k = true;
this.queueAutoRefresh();
}
an(a, b) {
this.k = true;
this.queueAutoRefresh();
}
}
AggregatedDataProvider.$t = /*@__PURE__*/ markType(AggregatedDataProvider, 'AggregatedDataProvider', Base.$, [IDataSourceLocalDataProvider_$type, INotifyPropertyChanged_$type]);
return AggregatedDataProvider;
})();
/**
* @hidden
*/
export let AggregatedDataProviderTargetDataSourceNotifier = /*@__PURE__*/ (() => {
class AggregatedDataProviderTargetDataSourceNotifier extends Base {
get c() {
return this.b;
}
constructor(a, b) {
super();
this.a = null;
this.b = null;
this.a = a;
this.b = b;
}
notifyClearItems() {
this.a.aj();
if (this.b != null) {
this.b.notifyClearItems();
}
}
notifyInsertItem(a, b) {
this.a.ak(a, b);
if (this.b != null) {
this.b.notifyInsertItem(a, b);
}
}
notifyRemoveItem(a, b) {
this.a.al(a, b);
if (this.b != null) {
this.b.notifyRemoveItem(a, b);
}
}
notifySetItem(a, b, c) {
this.a.am(a, b, c);
if (this.b != null) {
this.b.notifySetItem(a, b, c);
}
}
rangeActualized(a, b) {
this.a.an(a, b);
if (this.b != null) {
this.b.rangeActualized(a, b);
}
}
}
AggregatedDataProviderTargetDataSourceNotifier.$t = /*@__PURE__*/ markType(AggregatedDataProviderTargetDataSourceNotifier, 'AggregatedDataProviderTargetDataSourceNotifier', Base.$, [IDataSourceUpdateNotifier_$type]);
return AggregatedDataProviderTargetDataSourceNotifier;
})();