@easyquery/enterprise 7.1.3-beta02 → 7.2.0-rc01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/eq.enterprise.js +3488 -3104
- package/dist/browser/eq.enterprise.js.map +1 -1
- package/dist/browser/eq.enterprise.min.js +2 -2
- package/dist/browser/eq.enterprise.min.js.LICENSE.txt +0 -2
- package/dist/browser/eq.enterprise.min.js.map +1 -1
- package/dist/bundles/easyquery.enterprise.js +673 -327
- package/dist/bundles/easyquery.enterprise.js.map +1 -1
- package/dist/bundles/easyquery.enterprise.min.js +1 -1
- package/dist/bundles/easyquery.enterprise.min.js.LICENSE.txt +0 -2
- package/dist/bundles/easyquery.enterprise.min.js.map +1 -1
- package/dist/lib/data/data_table_aggr_calculator.d.ts +46 -0
- package/dist/lib/data/data_table_aggr_calculator.js +164 -0
- package/dist/lib/data/data_table_aggr_calculator.js.map +1 -0
- package/dist/lib/data/eqs_aggr_calculator.d.ts +4 -1
- package/dist/lib/data/eqs_aggr_calculator.js +22 -11
- package/dist/lib/data/eqs_aggr_calculator.js.map +1 -1
- package/dist/lib/extensions.js +2 -2
- package/dist/lib/extensions.js.map +1 -1
- package/package.json +5 -7
|
@@ -180,8 +180,17 @@ var browserUtils;
|
|
|
180
180
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
181
181
|
|
|
182
182
|
"use strict";
|
|
183
|
+
// ESM COMPAT FLAG
|
|
183
184
|
__webpack_require__.r(__webpack_exports__);
|
|
184
185
|
|
|
186
|
+
// EXPORTS
|
|
187
|
+
__webpack_require__.d(__webpack_exports__, "EqServerAggregatesCalculator", function() { return /* reexport */ eqs_aggr_calculator_EqServerAggregatesCalculator; });
|
|
188
|
+
__webpack_require__.d(__webpack_exports__, "QueryEx", function() { return /* reexport */ query_ex_QueryEx; });
|
|
189
|
+
__webpack_require__.d(__webpack_exports__, "QueryColumnEx", function() { return /* reexport */ query_column_ex_QueryColumnEx; });
|
|
190
|
+
__webpack_require__.d(__webpack_exports__, "ConditionEx", function() { return /* reexport */ condition_ex_ConditionEx; });
|
|
191
|
+
__webpack_require__.d(__webpack_exports__, "DataModelEx", function() { return /* reexport */ model_ex_DataModelEx; });
|
|
192
|
+
__webpack_require__.d(__webpack_exports__, "EqServerQueryStorage", function() { return /* reexport */ EqServerQueryStorage; });
|
|
193
|
+
|
|
185
194
|
// EXTERNAL MODULE: external "easyqueryCore"
|
|
186
195
|
var external_easyqueryCore_ = __webpack_require__(0);
|
|
187
196
|
|
|
@@ -835,7 +844,7 @@ var i18n_i18n;
|
|
|
835
844
|
var utils_utils;
|
|
836
845
|
(function (utils) {
|
|
837
846
|
function getAllDataTypes() {
|
|
838
|
-
return Object.values(DataType);
|
|
847
|
+
return Object.values(DataType).filter(function (item) { return typeof item === "number"; });
|
|
839
848
|
}
|
|
840
849
|
utils.getAllDataTypes = getAllDataTypes;
|
|
841
850
|
function getDateDataTypes() {
|
|
@@ -843,12 +852,16 @@ var utils_utils;
|
|
|
843
852
|
}
|
|
844
853
|
utils.getDateDataTypes = getDateDataTypes;
|
|
845
854
|
function getStringDataTypes() {
|
|
846
|
-
return [DataType.String, DataType.Memo];
|
|
855
|
+
return [DataType.String, DataType.Memo, DataType.FixedChar];
|
|
847
856
|
}
|
|
848
857
|
utils.getStringDataTypes = getStringDataTypes;
|
|
849
858
|
var _numericTypes = [DataType.Byte, DataType.Word, DataType.Int32,
|
|
850
|
-
DataType.Int64, DataType.Float, DataType.Currency];
|
|
851
|
-
|
|
859
|
+
DataType.Int64, DataType.Float, DataType.Currency, DataType.Autoinc];
|
|
860
|
+
function getNumericDataTypes() {
|
|
861
|
+
return _numericTypes;
|
|
862
|
+
}
|
|
863
|
+
utils.getNumericDataTypes = getNumericDataTypes;
|
|
864
|
+
var _intTypes = [DataType.Byte, DataType.Word, DataType.Int32, DataType.Int64, DataType.Autoinc];
|
|
852
865
|
//-------------- object functions -------------------
|
|
853
866
|
/**
|
|
854
867
|
* Copy the content of all objests passed in `args` parameters into `target`
|
|
@@ -913,7 +926,7 @@ var utils_utils;
|
|
|
913
926
|
hashSet.set(sourceVal, target[key]);
|
|
914
927
|
}
|
|
915
928
|
else {
|
|
916
|
-
if (typeof target[key] == 'undefined') {
|
|
929
|
+
if (typeof target[key] == 'undefined' || target[key] == null) {
|
|
917
930
|
target[key] = Object.create(Object.getPrototypeOf(sourceVal));
|
|
918
931
|
}
|
|
919
932
|
hashSet.set(sourceVal, target[key]);
|
|
@@ -1442,7 +1455,7 @@ var http_client_HttpClient = /** @class */ (function () {
|
|
|
1442
1455
|
var desc = {
|
|
1443
1456
|
method: method,
|
|
1444
1457
|
url: url,
|
|
1445
|
-
headers: __assign({}, this.defaultHeaders, options.headers || {}),
|
|
1458
|
+
headers: __assign(__assign({}, this.defaultHeaders), options.headers || {}),
|
|
1446
1459
|
queryParams: options.queryParams || {},
|
|
1447
1460
|
data: data
|
|
1448
1461
|
};
|
|
@@ -1588,6 +1601,12 @@ var MetaEntity = /** @class */ (function () {
|
|
|
1588
1601
|
};
|
|
1589
1602
|
internalProcessEntity(this);
|
|
1590
1603
|
};
|
|
1604
|
+
MetaEntity.prototype.getFirstPrimaryAttr = function () {
|
|
1605
|
+
return this.getPrimaryAttrs()[0];
|
|
1606
|
+
};
|
|
1607
|
+
MetaEntity.prototype.getPrimaryAttrs = function () {
|
|
1608
|
+
return this.attributes.filter(function (attr) { return attr.isPrimaryKey; });
|
|
1609
|
+
};
|
|
1591
1610
|
return MetaEntity;
|
|
1592
1611
|
}());
|
|
1593
1612
|
|
|
@@ -2206,9 +2225,9 @@ var meta_data_MetaData = /** @class */ (function () {
|
|
|
2206
2225
|
}());
|
|
2207
2226
|
|
|
2208
2227
|
//# sourceMappingURL=meta_data.js.map
|
|
2209
|
-
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/
|
|
2210
|
-
var
|
|
2211
|
-
|
|
2228
|
+
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/aggr_settings.js
|
|
2229
|
+
var aggr_settings_assign = (undefined && undefined.__assign) || function () {
|
|
2230
|
+
aggr_settings_assign = Object.assign || function(t) {
|
|
2212
2231
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
2213
2232
|
s = arguments[i];
|
|
2214
2233
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -2216,7 +2235,7 @@ var aggr_calculator_assign = (undefined && undefined.__assign) || function () {
|
|
|
2216
2235
|
}
|
|
2217
2236
|
return t;
|
|
2218
2237
|
};
|
|
2219
|
-
return
|
|
2238
|
+
return aggr_settings_assign.apply(this, arguments);
|
|
2220
2239
|
};
|
|
2221
2240
|
/**
|
|
2222
2241
|
* Defines aggregations settings for the current context.
|
|
@@ -2229,16 +2248,32 @@ var AggregationSettings = /** @class */ (function () {
|
|
|
2229
2248
|
this.groups = [];
|
|
2230
2249
|
this.useGrandTotals = false;
|
|
2231
2250
|
this.useRecordCount = false;
|
|
2232
|
-
this.
|
|
2251
|
+
this._caseSensitiveGroups = false;
|
|
2233
2252
|
this.COUNT_FIELD_NAME = 'GRPRECCNT';
|
|
2234
2253
|
}
|
|
2254
|
+
Object.defineProperty(AggregationSettings.prototype, "caseSensitiveGroups", {
|
|
2255
|
+
get: function () {
|
|
2256
|
+
return this._caseSensitiveGroups;
|
|
2257
|
+
},
|
|
2258
|
+
set: function (value) {
|
|
2259
|
+
this._caseSensitiveGroups = value;
|
|
2260
|
+
this.updateCompareProc();
|
|
2261
|
+
},
|
|
2262
|
+
enumerable: true,
|
|
2263
|
+
configurable: true
|
|
2264
|
+
});
|
|
2265
|
+
AggregationSettings.prototype.updateCompareProc = function () {
|
|
2266
|
+
this.compareValues = this._caseSensitiveGroups
|
|
2267
|
+
? this.strictCompare
|
|
2268
|
+
: this.caseInsensitiveCompare;
|
|
2269
|
+
};
|
|
2235
2270
|
AggregationSettings.prototype.addGroup = function (settings) {
|
|
2236
2271
|
var cols = settings.columns || this.colStore.getColumnIds(settings.from, settings.to);
|
|
2237
2272
|
if (!this.colStore.validateColumns(cols))
|
|
2238
2273
|
throw "Invalid columns: " + cols;
|
|
2239
2274
|
if (this.hasColumnsInUse(cols))
|
|
2240
2275
|
throw "Can't add same columns to different groups/aggregates";
|
|
2241
|
-
this.groups.push(
|
|
2276
|
+
this.groups.push(aggr_settings_assign({ columns: cols }, settings));
|
|
2242
2277
|
return this;
|
|
2243
2278
|
};
|
|
2244
2279
|
AggregationSettings.prototype.addAggregateColumn = function (colIndexOrId, funcId) {
|
|
@@ -2263,7 +2298,7 @@ var AggregationSettings = /** @class */ (function () {
|
|
|
2263
2298
|
var cols = [];
|
|
2264
2299
|
var mappedGrops = this.groups.map(function (grp) {
|
|
2265
2300
|
cols = cols.concat(grp.columns);
|
|
2266
|
-
return
|
|
2301
|
+
return aggr_settings_assign(aggr_settings_assign({}, grp), { columns: Array.from(cols), aggregates: Array.from(_this.aggregates) });
|
|
2267
2302
|
});
|
|
2268
2303
|
return mappedGrops;
|
|
2269
2304
|
};
|
|
@@ -2355,10 +2390,35 @@ var AggregationSettings = /** @class */ (function () {
|
|
|
2355
2390
|
}
|
|
2356
2391
|
}
|
|
2357
2392
|
};
|
|
2393
|
+
AggregationSettings.prototype.buildGroupKey = function (group, row) {
|
|
2394
|
+
var caseInsensitive = !this.caseSensitiveGroups;
|
|
2395
|
+
var result = {};
|
|
2396
|
+
if (group) {
|
|
2397
|
+
for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
|
|
2398
|
+
var colId = _a[_i];
|
|
2399
|
+
var keyVal = row.getValue(colId);
|
|
2400
|
+
if (caseInsensitive && typeof (keyVal) === 'string') {
|
|
2401
|
+
keyVal = keyVal.toLowerCase();
|
|
2402
|
+
}
|
|
2403
|
+
result[colId] = keyVal;
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2406
|
+
return result;
|
|
2407
|
+
};
|
|
2408
|
+
//returns true if value1 == value2
|
|
2409
|
+
AggregationSettings.prototype.strictCompare = function (value1, value2) {
|
|
2410
|
+
return value1 === value2;
|
|
2411
|
+
};
|
|
2412
|
+
//makes a case insensative comparision of two values and return true if there are equal
|
|
2413
|
+
AggregationSettings.prototype.caseInsensitiveCompare = function (value1, value2) {
|
|
2414
|
+
var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
|
|
2415
|
+
var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
|
|
2416
|
+
return val1 === val2;
|
|
2417
|
+
};
|
|
2358
2418
|
return AggregationSettings;
|
|
2359
2419
|
}());
|
|
2360
2420
|
|
|
2361
|
-
//# sourceMappingURL=
|
|
2421
|
+
//# sourceMappingURL=aggr_settings.js.map
|
|
2362
2422
|
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/data_column.js
|
|
2363
2423
|
|
|
2364
2424
|
|
|
@@ -2386,6 +2446,7 @@ var data_column_DataColumn = /** @class */ (function () {
|
|
|
2386
2446
|
this.groupFooterColumnTemplate = desc.gfct;
|
|
2387
2447
|
this.style = desc.style || {};
|
|
2388
2448
|
this.description = desc.description;
|
|
2449
|
+
this.calculatedWidth = 0;
|
|
2389
2450
|
}
|
|
2390
2451
|
return DataColumn;
|
|
2391
2452
|
}());
|
|
@@ -2425,9 +2486,10 @@ var data_column_DataColumnList = /** @class */ (function () {
|
|
|
2425
2486
|
.map(function (col, index) { return index; });
|
|
2426
2487
|
};
|
|
2427
2488
|
DataColumnList.prototype.put = function (index, col) {
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2489
|
+
if (index >= 0 && index < this.count) {
|
|
2490
|
+
this.items[index] = col;
|
|
2491
|
+
this.updateDateColumnIdx();
|
|
2492
|
+
}
|
|
2431
2493
|
};
|
|
2432
2494
|
DataColumnList.prototype.move = function (col, newIndex) {
|
|
2433
2495
|
var oldIndex = this.items.indexOf(col);
|
|
@@ -2437,8 +2499,12 @@ var data_column_DataColumnList = /** @class */ (function () {
|
|
|
2437
2499
|
}
|
|
2438
2500
|
};
|
|
2439
2501
|
DataColumnList.prototype.get = function (index) {
|
|
2440
|
-
|
|
2441
|
-
|
|
2502
|
+
if (index >= 0 && index < this.count) {
|
|
2503
|
+
return this.items[index];
|
|
2504
|
+
}
|
|
2505
|
+
else {
|
|
2506
|
+
return null;
|
|
2507
|
+
}
|
|
2442
2508
|
};
|
|
2443
2509
|
DataColumnList.prototype.getIndex = function (id) {
|
|
2444
2510
|
return this.mapper[id];
|
|
@@ -2522,16 +2588,23 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2522
2588
|
function EasyDataTable(options) {
|
|
2523
2589
|
this._chunkSize = 1000;
|
|
2524
2590
|
this._elasticChunks = false;
|
|
2525
|
-
|
|
2526
|
-
this.chunkMap = {};
|
|
2591
|
+
this.cachedRows = [];
|
|
2527
2592
|
this.total = 0;
|
|
2528
2593
|
this.loader = null;
|
|
2529
2594
|
this.needTotal = true;
|
|
2595
|
+
this.isInMemory = false;
|
|
2530
2596
|
options = options || {};
|
|
2531
2597
|
this._chunkSize = options.chunkSize || this._chunkSize;
|
|
2532
2598
|
this._elasticChunks = options.elasticChunks || this._elasticChunks;
|
|
2533
2599
|
this.loader = options.loader;
|
|
2600
|
+
if (typeof options.inMemory !== 'undefined') {
|
|
2601
|
+
this.isInMemory = options.inMemory;
|
|
2602
|
+
}
|
|
2603
|
+
if (this.isInMemory) {
|
|
2604
|
+
this.needTotal = false;
|
|
2605
|
+
}
|
|
2534
2606
|
this._columns = new data_column_DataColumnList();
|
|
2607
|
+
this.onUpdate = options.onUpdate;
|
|
2535
2608
|
if (options.columns) {
|
|
2536
2609
|
for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {
|
|
2537
2610
|
var colDesc = _a[_i];
|
|
@@ -2562,7 +2635,7 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2562
2635
|
this._chunkSize = value;
|
|
2563
2636
|
this.total = 0;
|
|
2564
2637
|
this.needTotal = !this.elasticChunks;
|
|
2565
|
-
this.
|
|
2638
|
+
this.cachedRows = [];
|
|
2566
2639
|
},
|
|
2567
2640
|
enumerable: true,
|
|
2568
2641
|
configurable: true
|
|
@@ -2575,7 +2648,7 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2575
2648
|
this._elasticChunks = value;
|
|
2576
2649
|
this.total = 0;
|
|
2577
2650
|
this.needTotal = !this.elasticChunks;
|
|
2578
|
-
this.
|
|
2651
|
+
this.cachedRows = [];
|
|
2579
2652
|
},
|
|
2580
2653
|
enumerable: true,
|
|
2581
2654
|
configurable: true
|
|
@@ -2603,22 +2676,12 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2603
2676
|
endIndex = this.total;
|
|
2604
2677
|
}
|
|
2605
2678
|
}
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
var allChunksCached = true;
|
|
2609
|
-
for (var i = lbChunk; i <= ubChunk; i++) {
|
|
2610
|
-
if (!this.chunkMap[i]) {
|
|
2611
|
-
allChunksCached = false;
|
|
2612
|
-
break;
|
|
2613
|
-
}
|
|
2679
|
+
if (this.isInMemory && endIndex > this.cachedRows.length) {
|
|
2680
|
+
endIndex = this.cachedRows.length;
|
|
2614
2681
|
}
|
|
2682
|
+
var allChunksCached = endIndex <= this.cachedRows.length;
|
|
2615
2683
|
if (allChunksCached) {
|
|
2616
|
-
|
|
2617
|
-
for (var i = lbChunk; i <= ubChunk; i++) {
|
|
2618
|
-
resultArr = resultArr.concat(this.chunkMap[i].rows);
|
|
2619
|
-
}
|
|
2620
|
-
var firstChunkOffset = this.chunkMap[lbChunk].offset;
|
|
2621
|
-
return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));
|
|
2684
|
+
return Promise.resolve(this.cachedRows.slice(fromIndex, endIndex));
|
|
2622
2685
|
}
|
|
2623
2686
|
//if loader is not defined
|
|
2624
2687
|
if (!this.loader) {
|
|
@@ -2629,53 +2692,34 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2629
2692
|
if (this.needTotal) {
|
|
2630
2693
|
this.needTotal = false;
|
|
2631
2694
|
}
|
|
2632
|
-
var
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2695
|
+
var offset = this.cachedRows.length;
|
|
2696
|
+
var limit = endIndex - offset;
|
|
2697
|
+
if (limit < this._chunkSize) {
|
|
2698
|
+
limit = this._chunkSize;
|
|
2699
|
+
}
|
|
2700
|
+
var resultPromise = this.loader.loadChunk({
|
|
2701
|
+
offset: offset,
|
|
2637
2702
|
limit: limit,
|
|
2638
2703
|
needTotal: needTotal
|
|
2639
2704
|
})
|
|
2640
2705
|
.then(function (result) {
|
|
2641
|
-
var chunks = result.table.getCachedChunks();
|
|
2642
2706
|
if (needTotal) {
|
|
2643
2707
|
_this.total = result.total;
|
|
2644
|
-
if (endIndex > _this.total) {
|
|
2645
|
-
endIndex = _this.total;
|
|
2646
|
-
}
|
|
2647
2708
|
}
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
_this.chunkMap[index] = {
|
|
2652
|
-
offset: index * _this._chunkSize,
|
|
2653
|
-
rows: chunk.rows
|
|
2654
|
-
};
|
|
2655
|
-
index++;
|
|
2709
|
+
Array.prototype.push.apply(_this.cachedRows, result.table.getCachedRows());
|
|
2710
|
+
if (endIndex > _this.cachedRows.length) {
|
|
2711
|
+
endIndex = _this.cachedRows.length;
|
|
2656
2712
|
}
|
|
2657
2713
|
if (_this.elasticChunks) {
|
|
2658
2714
|
var count_1 = result.table.getCachedCount();
|
|
2659
|
-
if (count_1
|
|
2660
|
-
|
|
2661
|
-
if (count_1 === limit) {
|
|
2662
|
-
chunk.rows.splice(chunk.rows.length - 1, 1);
|
|
2663
|
-
if (chunk.rows.length == 0) {
|
|
2664
|
-
delete _this.chunkMap[index - 1];
|
|
2665
|
-
}
|
|
2666
|
-
}
|
|
2667
|
-
if (count_1 < limit) {
|
|
2668
|
-
_this.total = _this.getCachedCount();
|
|
2669
|
-
}
|
|
2715
|
+
if (count_1 < limit) {
|
|
2716
|
+
_this.total = _this.cachedRows.length;
|
|
2670
2717
|
}
|
|
2671
2718
|
}
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
resultArr = resultArr.concat(_this.chunkMap[i].rows);
|
|
2675
|
-
}
|
|
2676
|
-
var firstChunkOffset = _this.chunkMap[lbChunk].offset;
|
|
2677
|
-
return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);
|
|
2719
|
+
_this.fireUpdated();
|
|
2720
|
+
return _this.cachedRows.slice(fromIndex, endIndex);
|
|
2678
2721
|
});
|
|
2722
|
+
return resultPromise;
|
|
2679
2723
|
};
|
|
2680
2724
|
EasyDataTable.prototype.getRow = function (index) {
|
|
2681
2725
|
return this.getRows({ offset: index, limit: 1 })
|
|
@@ -2687,14 +2731,13 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2687
2731
|
EasyDataTable.prototype.setTotal = function (total) {
|
|
2688
2732
|
this.total = total;
|
|
2689
2733
|
this.needTotal = false;
|
|
2690
|
-
this.chunkMap = {};
|
|
2691
2734
|
};
|
|
2692
2735
|
EasyDataTable.prototype.getCachedCount = function () {
|
|
2693
|
-
return this.
|
|
2736
|
+
return this.cachedRows.length;
|
|
2694
2737
|
};
|
|
2695
2738
|
EasyDataTable.prototype.clear = function () {
|
|
2696
2739
|
this.columns.clear();
|
|
2697
|
-
this.
|
|
2740
|
+
this.cachedRows = [];
|
|
2698
2741
|
this.total = 0;
|
|
2699
2742
|
this.needTotal = !this._elasticChunks;
|
|
2700
2743
|
};
|
|
@@ -2727,60 +2770,33 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2727
2770
|
}
|
|
2728
2771
|
return null;
|
|
2729
2772
|
};
|
|
2730
|
-
EasyDataTable.prototype.addRow = function (
|
|
2773
|
+
EasyDataTable.prototype.addRow = function (rowOrValues) {
|
|
2731
2774
|
var newRow;
|
|
2732
|
-
if (Array.isArray(
|
|
2775
|
+
if (Array.isArray(rowOrValues)) {
|
|
2776
|
+
var values = rowOrValues;
|
|
2733
2777
|
var dateIdx = this._columns.getDateColumnIndexes();
|
|
2734
2778
|
if (dateIdx.length > 0) {
|
|
2735
2779
|
for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {
|
|
2736
2780
|
var idx = dateIdx_1[_i];
|
|
2737
|
-
if (
|
|
2738
|
-
|
|
2781
|
+
if (values[idx]) {
|
|
2782
|
+
values[idx] = this.mapDate(values[idx], this._columns.get(idx).type);
|
|
2739
2783
|
}
|
|
2740
2784
|
}
|
|
2741
2785
|
}
|
|
2742
|
-
newRow = new DataRow(this._columns,
|
|
2786
|
+
newRow = new DataRow(this._columns, values);
|
|
2743
2787
|
}
|
|
2744
2788
|
else {
|
|
2745
|
-
newRow = this.createRow(
|
|
2746
|
-
}
|
|
2747
|
-
var lastChunk = this.getLastChunk();
|
|
2748
|
-
if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {
|
|
2749
|
-
lastChunk = this.createChunk();
|
|
2789
|
+
newRow = this.createRow(rowOrValues);
|
|
2750
2790
|
}
|
|
2751
|
-
|
|
2791
|
+
this.cachedRows.push(newRow);
|
|
2752
2792
|
var cachedTotal = this.getCachedCount();
|
|
2753
2793
|
if (cachedTotal > this.total) {
|
|
2754
2794
|
this.total = cachedTotal;
|
|
2755
2795
|
}
|
|
2756
2796
|
return newRow;
|
|
2757
2797
|
};
|
|
2758
|
-
EasyDataTable.prototype.createChunk = function (index) {
|
|
2759
|
-
if (typeof index == 'undefined') {
|
|
2760
|
-
index = this.getLastChunkIndex() + 1;
|
|
2761
|
-
}
|
|
2762
|
-
var chunk = { offset: index * this._chunkSize, rows: [] };
|
|
2763
|
-
this.chunkMap[index] = chunk;
|
|
2764
|
-
return chunk;
|
|
2765
|
-
};
|
|
2766
|
-
EasyDataTable.prototype.getLastChunkIndex = function () {
|
|
2767
|
-
var keys = Object.keys(this.chunkMap);
|
|
2768
|
-
return keys.length > 0
|
|
2769
|
-
? parseInt(keys[keys.length - 1])
|
|
2770
|
-
: -1;
|
|
2771
|
-
};
|
|
2772
|
-
EasyDataTable.prototype.getLastChunk = function () {
|
|
2773
|
-
var index = this.getLastChunkIndex();
|
|
2774
|
-
return index > -1
|
|
2775
|
-
? this.chunkMap[index]
|
|
2776
|
-
: null;
|
|
2777
|
-
};
|
|
2778
2798
|
EasyDataTable.prototype.getCachedRows = function () {
|
|
2779
|
-
return this.
|
|
2780
|
-
.reduce(function (acc, v) { return acc.concat(v.rows); }, []);
|
|
2781
|
-
};
|
|
2782
|
-
EasyDataTable.prototype.getCachedChunks = function () {
|
|
2783
|
-
return Object.values(this.chunkMap);
|
|
2799
|
+
return this.cachedRows;
|
|
2784
2800
|
};
|
|
2785
2801
|
EasyDataTable.prototype.totalIsKnown = function () {
|
|
2786
2802
|
if (this.elasticChunks) {
|
|
@@ -2789,6 +2805,11 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
|
|
|
2789
2805
|
}
|
|
2790
2806
|
return !this.needTotal;
|
|
2791
2807
|
};
|
|
2808
|
+
EasyDataTable.prototype.fireUpdated = function () {
|
|
2809
|
+
if (this.onUpdate) {
|
|
2810
|
+
this.onUpdate(this);
|
|
2811
|
+
}
|
|
2812
|
+
};
|
|
2792
2813
|
return EasyDataTable;
|
|
2793
2814
|
}());
|
|
2794
2815
|
|
|
@@ -2973,7 +2994,6 @@ i18n_i18n.resetLocales();
|
|
|
2973
2994
|
|
|
2974
2995
|
|
|
2975
2996
|
|
|
2976
|
-
//data
|
|
2977
2997
|
|
|
2978
2998
|
|
|
2979
2999
|
|
|
@@ -3347,6 +3367,13 @@ var dom_elem_builder_extends = (undefined && undefined.__extends) || (function (
|
|
|
3347
3367
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
3348
3368
|
};
|
|
3349
3369
|
})();
|
|
3370
|
+
var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
|
|
3371
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
3372
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
3373
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
3374
|
+
r[k] = a[j];
|
|
3375
|
+
return r;
|
|
3376
|
+
};
|
|
3350
3377
|
|
|
3351
3378
|
var DomElementBuilder = /** @class */ (function () {
|
|
3352
3379
|
function DomElementBuilder(tag, parent) {
|
|
@@ -3417,7 +3444,7 @@ var DomElementBuilder = /** @class */ (function () {
|
|
|
3417
3444
|
classNames[_i - 1] = arguments[_i];
|
|
3418
3445
|
}
|
|
3419
3446
|
if (className) {
|
|
3420
|
-
var fullList = className.trim().split(" ")
|
|
3447
|
+
var fullList = __spreadArrays(className.trim().split(" "), classNames);
|
|
3421
3448
|
for (var i = 0; i < fullList.length; i++)
|
|
3422
3449
|
this.element.classList.add(fullList[i]);
|
|
3423
3450
|
}
|
|
@@ -3429,7 +3456,7 @@ var DomElementBuilder = /** @class */ (function () {
|
|
|
3429
3456
|
classNames[_i - 1] = arguments[_i];
|
|
3430
3457
|
}
|
|
3431
3458
|
if (className) {
|
|
3432
|
-
var fullList = className.trim().split(" ")
|
|
3459
|
+
var fullList = __spreadArrays(className.trim().split(" "), classNames);
|
|
3433
3460
|
for (var i = 0; i < fullList.length; i++)
|
|
3434
3461
|
this.element.classList.remove(fullList[i]);
|
|
3435
3462
|
}
|
|
@@ -3996,6 +4023,14 @@ var drag_manager_DragManager = /** @class */ (function () {
|
|
|
3996
4023
|
//global variable
|
|
3997
4024
|
var eqDragManager = new drag_manager_DragManager();
|
|
3998
4025
|
//# sourceMappingURL=drag_manager.js.map
|
|
4026
|
+
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_options.js
|
|
4027
|
+
var AutoResizeColumns;
|
|
4028
|
+
(function (AutoResizeColumns) {
|
|
4029
|
+
AutoResizeColumns[AutoResizeColumns["Always"] = 0] = "Always";
|
|
4030
|
+
AutoResizeColumns[AutoResizeColumns["Once"] = 1] = "Once";
|
|
4031
|
+
AutoResizeColumns[AutoResizeColumns["Never"] = 2] = "Never";
|
|
4032
|
+
})(AutoResizeColumns || (AutoResizeColumns = {}));
|
|
4033
|
+
//# sourceMappingURL=easy_grid_options.js.map
|
|
3999
4034
|
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_cell_renderer.js
|
|
4000
4035
|
|
|
4001
4036
|
|
|
@@ -4147,13 +4182,7 @@ var easy_grid_cell_renderer_GridCellRendererStore = /** @class */ (function () {
|
|
|
4147
4182
|
// CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_columns.js
|
|
4148
4183
|
|
|
4149
4184
|
|
|
4150
|
-
var DEFAULT_WIDTH = 150;
|
|
4151
|
-
var DEFAULT_WIDTH_NUMBER = 120;
|
|
4152
|
-
var DEFAULT_WIDTH_DATE = 200;
|
|
4153
|
-
var DEFAULT_WIDTH_BOOL = 80;
|
|
4154
4185
|
var DEFAULT_WIDTH_STRING = 250;
|
|
4155
|
-
var MIN_WIDTH_STRING = 100;
|
|
4156
|
-
var MAX_WIDTH_STRING = 500;
|
|
4157
4186
|
var ROW_NUM_WIDTH = 60;
|
|
4158
4187
|
var GridColumnAlign;
|
|
4159
4188
|
(function (GridColumnAlign) {
|
|
@@ -4185,31 +4214,18 @@ var easy_grid_columns_GridColumn = /** @class */ (function () {
|
|
|
4185
4214
|
this.isRowNum = false;
|
|
4186
4215
|
this.dataColumn = column;
|
|
4187
4216
|
this.grid = grid;
|
|
4217
|
+
var widthOptions = grid.options.columnWidths || {};
|
|
4188
4218
|
if (column) {
|
|
4189
4219
|
if (column.style.alignment) {
|
|
4190
4220
|
this.align = MapAlignment(column.style.alignment);
|
|
4191
4221
|
}
|
|
4192
|
-
|
|
4193
|
-
var cellType = this.grid.cellRendererStore.getCellType(coltype);
|
|
4194
|
-
switch (cellType) {
|
|
4195
|
-
case CellRendererType.NUMBER:
|
|
4196
|
-
this.width = DEFAULT_WIDTH_NUMBER;
|
|
4197
|
-
break;
|
|
4198
|
-
case CellRendererType.DATETIME:
|
|
4199
|
-
this.width = DEFAULT_WIDTH_DATE;
|
|
4200
|
-
break;
|
|
4201
|
-
case CellRendererType.BOOL:
|
|
4202
|
-
this.width = DEFAULT_WIDTH_BOOL;
|
|
4203
|
-
break;
|
|
4204
|
-
default:
|
|
4205
|
-
this.width = DEFAULT_WIDTH_STRING;
|
|
4206
|
-
}
|
|
4222
|
+
this.width = (widthOptions && widthOptions[this.type]) ? widthOptions[this.type].default : DEFAULT_WIDTH_STRING;
|
|
4207
4223
|
this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);
|
|
4208
4224
|
this._description = column.description;
|
|
4209
4225
|
}
|
|
4210
4226
|
else if (isRowNum) {
|
|
4211
4227
|
this.isRowNum = true;
|
|
4212
|
-
this.width = ROW_NUM_WIDTH;
|
|
4228
|
+
this.width = (widthOptions && widthOptions.rowNumColumn) ? widthOptions.rowNumColumn.default : ROW_NUM_WIDTH;
|
|
4213
4229
|
this._label = '';
|
|
4214
4230
|
this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(CellRendererType.NUMBER);
|
|
4215
4231
|
}
|
|
@@ -4255,9 +4271,10 @@ var easy_grid_columns_GridColumnList = /** @class */ (function () {
|
|
|
4255
4271
|
GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {
|
|
4256
4272
|
if (hasRowNumCol === void 0) { hasRowNumCol = true; }
|
|
4257
4273
|
this.clear();
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4274
|
+
var rowNumCol = new easy_grid_columns_GridColumn(null, this.grid, true);
|
|
4275
|
+
this.add(rowNumCol);
|
|
4276
|
+
if (!hasRowNumCol) {
|
|
4277
|
+
rowNumCol.isVisible = false;
|
|
4261
4278
|
}
|
|
4262
4279
|
if (columnList) {
|
|
4263
4280
|
for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {
|
|
@@ -4331,6 +4348,14 @@ var easy_grid_assign = (undefined && undefined.__assign) || function () {
|
|
|
4331
4348
|
};
|
|
4332
4349
|
return easy_grid_assign.apply(this, arguments);
|
|
4333
4350
|
};
|
|
4351
|
+
var easy_grid_spreadArrays = (undefined && undefined.__spreadArrays) || function () {
|
|
4352
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
4353
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
4354
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
4355
|
+
r[k] = a[j];
|
|
4356
|
+
return r;
|
|
4357
|
+
};
|
|
4358
|
+
|
|
4334
4359
|
|
|
4335
4360
|
|
|
4336
4361
|
|
|
@@ -4363,6 +4388,35 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4363
4388
|
pageSize: 30,
|
|
4364
4389
|
pageSizeItems: [20, 30, 50, 100, 200]
|
|
4365
4390
|
},
|
|
4391
|
+
columnWidths: {
|
|
4392
|
+
autoResize: AutoResizeColumns.Once,
|
|
4393
|
+
stringColumns: {
|
|
4394
|
+
min: 100,
|
|
4395
|
+
max: 500,
|
|
4396
|
+
default: 250
|
|
4397
|
+
},
|
|
4398
|
+
numberColumns: {
|
|
4399
|
+
min: 60,
|
|
4400
|
+
default: 120
|
|
4401
|
+
},
|
|
4402
|
+
boolColumns: {
|
|
4403
|
+
min: 50,
|
|
4404
|
+
default: 80
|
|
4405
|
+
},
|
|
4406
|
+
dateColumns: {
|
|
4407
|
+
min: 80,
|
|
4408
|
+
default: 200
|
|
4409
|
+
},
|
|
4410
|
+
otherColumns: {
|
|
4411
|
+
min: 100,
|
|
4412
|
+
max: 500,
|
|
4413
|
+
default: 250
|
|
4414
|
+
},
|
|
4415
|
+
rowNumColumn: {
|
|
4416
|
+
min: 40,
|
|
4417
|
+
default: 60
|
|
4418
|
+
}
|
|
4419
|
+
},
|
|
4366
4420
|
addColumns: false,
|
|
4367
4421
|
viewportRowsCount: null,
|
|
4368
4422
|
showActiveRow: true
|
|
@@ -4370,7 +4424,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4370
4424
|
this.rowsOnPagePromise = null;
|
|
4371
4425
|
this.containerInitialHeight = 0;
|
|
4372
4426
|
this.firstRender = true;
|
|
4373
|
-
this.compareValues = this.strictCompare;
|
|
4374
4427
|
this.prevRowTotals = null;
|
|
4375
4428
|
this.landingIndex = -1;
|
|
4376
4429
|
this.landingSlot = domel('div')
|
|
@@ -4382,7 +4435,8 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4382
4435
|
if (options && options.paging) {
|
|
4383
4436
|
options.paging = utils_utils.assign(this.defaultDataGridOptions.paging, options.paging);
|
|
4384
4437
|
}
|
|
4385
|
-
this.options =
|
|
4438
|
+
this.options = this.mergeOptions(options);
|
|
4439
|
+
this.processColumnWidthsOptions();
|
|
4386
4440
|
if (!this.options.slot)
|
|
4387
4441
|
throw Error('"slot" parameter is required to initialize EasyDataGrid');
|
|
4388
4442
|
if (!this.options.dataTable)
|
|
@@ -4394,6 +4448,42 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4394
4448
|
this.setSlot(this.options.slot);
|
|
4395
4449
|
this.init(this.options);
|
|
4396
4450
|
}
|
|
4451
|
+
EasyGrid.prototype.mergeOptions = function (options) {
|
|
4452
|
+
var colWidthOptions = utils_utils.assignDeep({}, this.defaultDataGridOptions.columnWidths, options.columnWidths);
|
|
4453
|
+
var pagingOptions = utils_utils.assignDeep({}, this.defaultDataGridOptions.paging, options.paging);
|
|
4454
|
+
var result = utils_utils.assign({}, this.defaultDataGridOptions, options);
|
|
4455
|
+
result.columnWidths = colWidthOptions;
|
|
4456
|
+
result.paging = pagingOptions;
|
|
4457
|
+
return result;
|
|
4458
|
+
};
|
|
4459
|
+
EasyGrid.prototype.processColumnWidthsOptions = function () {
|
|
4460
|
+
var widthOptions = this.options.columnWidths;
|
|
4461
|
+
if (!widthOptions)
|
|
4462
|
+
return;
|
|
4463
|
+
//string columns
|
|
4464
|
+
utils_utils.getStringDataTypes().forEach(function (dataType) {
|
|
4465
|
+
widthOptions[dataType] = easy_grid_assign(easy_grid_assign({}, widthOptions.stringColumns), widthOptions[dataType]);
|
|
4466
|
+
});
|
|
4467
|
+
//numeric columns
|
|
4468
|
+
utils_utils.getNumericDataTypes().forEach(function (dataType) {
|
|
4469
|
+
widthOptions[dataType] = easy_grid_assign(easy_grid_assign({}, widthOptions.numberColumns), widthOptions[dataType]);
|
|
4470
|
+
});
|
|
4471
|
+
//bool columns
|
|
4472
|
+
widthOptions[DataType.Bool] = easy_grid_assign(easy_grid_assign({}, widthOptions.boolColumns), widthOptions[DataType.Bool]);
|
|
4473
|
+
//date columns
|
|
4474
|
+
utils_utils.getDateDataTypes().forEach(function (dataType) {
|
|
4475
|
+
widthOptions[dataType] = easy_grid_assign(easy_grid_assign({}, widthOptions.dateColumns), widthOptions[dataType]);
|
|
4476
|
+
});
|
|
4477
|
+
//other columns
|
|
4478
|
+
var knownTypes = easy_grid_spreadArrays(utils_utils.getStringDataTypes(), utils_utils.getNumericDataTypes(), utils_utils.getDateDataTypes(), [
|
|
4479
|
+
DataType.Bool
|
|
4480
|
+
]);
|
|
4481
|
+
utils_utils.getAllDataTypes().forEach(function (dataType) {
|
|
4482
|
+
if (!(dataType in knownTypes)) {
|
|
4483
|
+
widthOptions[dataType] = easy_grid_assign(easy_grid_assign({}, widthOptions.otherColumns), widthOptions[dataType]);
|
|
4484
|
+
}
|
|
4485
|
+
});
|
|
4486
|
+
};
|
|
4397
4487
|
EasyGrid.prototype.setSlot = function (slot) {
|
|
4398
4488
|
if (typeof slot === 'string') {
|
|
4399
4489
|
if (slot.length) {
|
|
@@ -4530,18 +4620,27 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4530
4620
|
gridContainer.classList.add(this.cssPrefix + "-container");
|
|
4531
4621
|
gridContainer.appendChild(this.rootDiv);
|
|
4532
4622
|
this.slot.appendChild(gridContainer);
|
|
4623
|
+
var needAutoResize = this.options.columnWidths.autoResize !== AutoResizeColumns.Never;
|
|
4533
4624
|
if (this.rowsOnPagePromise) {
|
|
4534
4625
|
this.rowsOnPagePromise
|
|
4535
4626
|
.then(function () { return _this.updateHeight(); })
|
|
4536
4627
|
.then(function () {
|
|
4537
4628
|
_this.firstRender = false;
|
|
4538
4629
|
_this.rowsOnPagePromise = null;
|
|
4630
|
+
if (needAutoResize) {
|
|
4631
|
+
_this.resizeColumns();
|
|
4632
|
+
}
|
|
4539
4633
|
});
|
|
4540
4634
|
}
|
|
4541
4635
|
else {
|
|
4542
4636
|
setTimeout(function () {
|
|
4543
|
-
_this.updateHeight()
|
|
4544
|
-
|
|
4637
|
+
_this.updateHeight()
|
|
4638
|
+
.then(function () {
|
|
4639
|
+
_this.firstRender = false;
|
|
4640
|
+
if (needAutoResize) {
|
|
4641
|
+
_this.resizeColumns();
|
|
4642
|
+
}
|
|
4643
|
+
});
|
|
4545
4644
|
}, 100);
|
|
4546
4645
|
}
|
|
4547
4646
|
};
|
|
@@ -4620,7 +4719,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4620
4719
|
var _this = this;
|
|
4621
4720
|
var colBuilder = domel('div')
|
|
4622
4721
|
.addClass(this.cssPrefix + "-header-cell")
|
|
4623
|
-
.data('col-idx', "" +
|
|
4722
|
+
.data('col-idx', "" + index)
|
|
4624
4723
|
.setStyle('width', column.width + "px");
|
|
4625
4724
|
if (column.dataColumn) {
|
|
4626
4725
|
colBuilder
|
|
@@ -4658,14 +4757,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4658
4757
|
}
|
|
4659
4758
|
return colDiv;
|
|
4660
4759
|
};
|
|
4661
|
-
EasyGrid.prototype.strictCompare = function (value1, value2) {
|
|
4662
|
-
return value1 !== value2;
|
|
4663
|
-
};
|
|
4664
|
-
EasyGrid.prototype.caseInsensitiveCompare = function (value1, value2) {
|
|
4665
|
-
var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
|
|
4666
|
-
var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
|
|
4667
|
-
return val1 !== val2;
|
|
4668
|
-
};
|
|
4669
4760
|
EasyGrid.prototype.renderBody = function () {
|
|
4670
4761
|
var _this = this;
|
|
4671
4762
|
this.bodyDiv = domel('div')
|
|
@@ -4679,10 +4770,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4679
4770
|
.addClass(this.cssPrefix + "-cell-container")
|
|
4680
4771
|
.toDOM();
|
|
4681
4772
|
var showAggrs = this.canShowAggregates();
|
|
4682
|
-
this.compareValues = this.caseInsensitiveCompare;
|
|
4683
|
-
if (showAggrs && this.options.aggregates.settings.caseSensitiveGroups) {
|
|
4684
|
-
this.compareValues = this.strictCompare;
|
|
4685
|
-
}
|
|
4686
4773
|
if (this.dataTable) {
|
|
4687
4774
|
this.showProgress();
|
|
4688
4775
|
this.rowsOnPagePromise = this.getRowsToRender()
|
|
@@ -4692,15 +4779,22 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4692
4779
|
//prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)
|
|
4693
4780
|
_this.bodyCellContainerDiv.innerHTML = '';
|
|
4694
4781
|
_this.prevRowTotals = null;
|
|
4782
|
+
var rowsToRender = 0;
|
|
4695
4783
|
if (rows.length) {
|
|
4696
4784
|
var groups_1 = showAggrs
|
|
4697
4785
|
? _this.options.aggregates.settings.getGroups()
|
|
4698
4786
|
: [];
|
|
4787
|
+
rowsToRender = (rows.length < _this.pagination.pageSize)
|
|
4788
|
+
? rows.length
|
|
4789
|
+
: _this.pagination.pageSize;
|
|
4699
4790
|
rows.forEach(function (row, index) {
|
|
4700
4791
|
if (showAggrs)
|
|
4701
4792
|
_this.updateTotalsState(groups_1, row);
|
|
4702
|
-
|
|
4703
|
-
|
|
4793
|
+
//we don't actually render the last row
|
|
4794
|
+
if (index < rowsToRender) {
|
|
4795
|
+
var tr = _this.renderRow(row, index);
|
|
4796
|
+
_this.bodyCellContainerDiv.appendChild(tr);
|
|
4797
|
+
}
|
|
4704
4798
|
});
|
|
4705
4799
|
var showGrandTotalsOnEachPage = _this.options.aggregates && _this.options.aggregates.showGrandTotalsOnEachPage;
|
|
4706
4800
|
if (showAggrs && (_this.isLastPage() || showGrandTotalsOnEachPage)) {
|
|
@@ -4711,7 +4805,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4711
4805
|
var containerWidth = _this.getContainerWidth();
|
|
4712
4806
|
domel(_this.bodyCellContainerDiv)
|
|
4713
4807
|
.setStyle('width', containerWidth + "px");
|
|
4714
|
-
return
|
|
4808
|
+
return rowsToRender;
|
|
4715
4809
|
})
|
|
4716
4810
|
.catch(function (error) { console.error(error); return 0; });
|
|
4717
4811
|
}
|
|
@@ -4719,7 +4813,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4719
4813
|
domel(_this.headerViewportDiv)
|
|
4720
4814
|
.setStyle('margin-left', "-" + _this.bodyViewportDiv.scrollLeft + "px");
|
|
4721
4815
|
});
|
|
4722
|
-
this.bodyViewportDiv.addEventListener('keydown', this.
|
|
4816
|
+
this.bodyViewportDiv.addEventListener('keydown', this.onViewportKeydown.bind(this));
|
|
4723
4817
|
};
|
|
4724
4818
|
EasyGrid.prototype.isLastPage = function () {
|
|
4725
4819
|
if (this.dataTable.elasticChunks) {
|
|
@@ -4745,7 +4839,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4745
4839
|
var group = groups[level - 1];
|
|
4746
4840
|
for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
|
|
4747
4841
|
var col = _a[_i];
|
|
4748
|
-
if (
|
|
4842
|
+
if (!aggrSettings.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
|
|
4749
4843
|
changeLevel = level;
|
|
4750
4844
|
break;
|
|
4751
4845
|
}
|
|
@@ -4806,8 +4900,8 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4806
4900
|
});
|
|
4807
4901
|
var aggrContainer = this.options.aggregates.calculator.getAggrContainer();
|
|
4808
4902
|
var aggrCols = aggrSettings.getAggregates().map(function (c) { return c.colId; });
|
|
4809
|
-
var key =
|
|
4810
|
-
aggrContainer.
|
|
4903
|
+
var key = aggrSettings.buildGroupKey(group, row);
|
|
4904
|
+
aggrContainer.getAggregateData(level, key)
|
|
4811
4905
|
.then(function (values) {
|
|
4812
4906
|
for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
|
|
4813
4907
|
var aggrColId = aggrCols_1[_i];
|
|
@@ -4848,34 +4942,20 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4848
4942
|
}
|
|
4849
4943
|
}
|
|
4850
4944
|
if (groupFooterTemplate) {
|
|
4851
|
-
var cellDiv_1 = _this.renderCell(column,
|
|
4945
|
+
var cellDiv_1 = _this.renderCell(column, index, val, rowElement);
|
|
4852
4946
|
var innerCell = cellDiv_1.firstChild;
|
|
4853
4947
|
val = innerCell.innerHTML;
|
|
4854
4948
|
val = _this.applyGroupColumnTemplate(groupFooterTemplate, val, values[aggrSettings.COUNT_FIELD_NAME]);
|
|
4855
4949
|
}
|
|
4856
4950
|
}
|
|
4857
|
-
var cellDiv = _this.renderCell(column,
|
|
4951
|
+
var cellDiv = _this.renderCell(column, index, val, rowElement);
|
|
4858
4952
|
rowElement.appendChild(cellDiv);
|
|
4859
4953
|
});
|
|
4860
4954
|
})
|
|
4861
4955
|
.catch(function (error) { return console.error(error); });
|
|
4862
4956
|
return rowElement;
|
|
4863
4957
|
};
|
|
4864
|
-
EasyGrid.prototype.
|
|
4865
|
-
var aggrSettings = this.options.aggregates.settings;
|
|
4866
|
-
var caseInsensitive = aggrSettings && !aggrSettings.caseSensitiveGroups;
|
|
4867
|
-
var result = {};
|
|
4868
|
-
for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
|
|
4869
|
-
var colId = _a[_i];
|
|
4870
|
-
var keyVal = row.getValue(colId);
|
|
4871
|
-
if (caseInsensitive && typeof (keyVal) === 'string') {
|
|
4872
|
-
keyVal = keyVal.toLowerCase();
|
|
4873
|
-
}
|
|
4874
|
-
result[colId] = keyVal;
|
|
4875
|
-
}
|
|
4876
|
-
return result;
|
|
4877
|
-
};
|
|
4878
|
-
EasyGrid.prototype.onVieportKeydown = function (ev) {
|
|
4958
|
+
EasyGrid.prototype.onViewportKeydown = function (ev) {
|
|
4879
4959
|
if (this.options.showActiveRow) {
|
|
4880
4960
|
var rowCount = this.bodyCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-row").length;
|
|
4881
4961
|
var newValue = void 0;
|
|
@@ -4929,13 +5009,17 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
4929
5009
|
}
|
|
4930
5010
|
}
|
|
4931
5011
|
};
|
|
5012
|
+
/** Returns a promise with the list of the rows to render on one page.
|
|
5013
|
+
* The list contains pageSize+1 row to make it possible
|
|
5014
|
+
* to render the totals row (if it appears to be on the edge between pages)
|
|
5015
|
+
*/
|
|
4932
5016
|
EasyGrid.prototype.getRowsToRender = function () {
|
|
4933
5017
|
if (this.options.paging.enabled === false) {
|
|
4934
5018
|
return Promise.resolve(this.dataTable.getCachedRows());
|
|
4935
5019
|
}
|
|
4936
5020
|
return this.dataTable.getRows({
|
|
4937
|
-
|
|
4938
|
-
|
|
5021
|
+
offset: (this.pagination.page - 1) * this.pagination.pageSize,
|
|
5022
|
+
limit: this.pagination.pageSize + 1
|
|
4939
5023
|
})
|
|
4940
5024
|
.catch(function (error) {
|
|
4941
5025
|
console.error(error);
|
|
@@ -5031,13 +5115,13 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
5031
5115
|
if (this.options.showActiveRow && index == this.activeRowIndex) {
|
|
5032
5116
|
rowBuilder.addClass(this.cssPrefix + "-row-active");
|
|
5033
5117
|
}
|
|
5034
|
-
this.columns.getItems().forEach(function (column) {
|
|
5118
|
+
this.columns.getItems().forEach(function (column, index) {
|
|
5035
5119
|
if (!column.isVisible) {
|
|
5036
5120
|
return;
|
|
5037
5121
|
}
|
|
5038
5122
|
var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);
|
|
5039
5123
|
var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);
|
|
5040
|
-
rowElement.appendChild(_this.renderCell(column,
|
|
5124
|
+
rowElement.appendChild(_this.renderCell(column, index, val, rowElement));
|
|
5041
5125
|
});
|
|
5042
5126
|
return rowElement;
|
|
5043
5127
|
};
|
|
@@ -5309,6 +5393,97 @@ var easy_grid_EasyGrid = /** @class */ (function () {
|
|
|
5309
5393
|
EasyGrid.prototype.focus = function () {
|
|
5310
5394
|
this.bodyViewportDiv.focus();
|
|
5311
5395
|
};
|
|
5396
|
+
EasyGrid.prototype.resizeColumns = function () {
|
|
5397
|
+
if (this.options.columnWidths.autoResize === AutoResizeColumns.Never)
|
|
5398
|
+
return;
|
|
5399
|
+
var containerWidth = this.bodyCellContainerDiv.style.width;
|
|
5400
|
+
this.bodyCellContainerDiv.style.visibility = 'hidden';
|
|
5401
|
+
this.bodyCellContainerDiv.style.width = '1px';
|
|
5402
|
+
//this.headerRowDiv.style.visibility = 'hidden';
|
|
5403
|
+
this.headerRowDiv.style.width = '1px';
|
|
5404
|
+
var sumWidth = 0;
|
|
5405
|
+
var columns = this.columns.getItems();
|
|
5406
|
+
var headerCells = this.headerCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-header-cell");
|
|
5407
|
+
var headerIdx = 0;
|
|
5408
|
+
var _loop_1 = function (idx) {
|
|
5409
|
+
var column = columns[idx];
|
|
5410
|
+
if (!column.isVisible)
|
|
5411
|
+
return "continue";
|
|
5412
|
+
var calculatedWidth = this_1.options.columnWidths.autoResize !== AutoResizeColumns.Always && column.dataColumn
|
|
5413
|
+
? column.dataColumn.calculatedWidth
|
|
5414
|
+
: 0;
|
|
5415
|
+
var cellValues = this_1.bodyCellContainerDiv.querySelectorAll("." + this_1.cssPrefix + "-cell[data-col-idx=\"" + idx + "\"] > ." + this_1.cssPrefix + "-cell-value");
|
|
5416
|
+
var maxWidth = 0;
|
|
5417
|
+
if (calculatedWidth > 0) {
|
|
5418
|
+
sumWidth += calculatedWidth;
|
|
5419
|
+
column.width = calculatedWidth;
|
|
5420
|
+
cellValues.forEach(function (value) {
|
|
5421
|
+
value.parentElement.style.width = calculatedWidth + "px";
|
|
5422
|
+
});
|
|
5423
|
+
headerCells[headerIdx].style.width = calculatedWidth + "px";
|
|
5424
|
+
}
|
|
5425
|
+
else {
|
|
5426
|
+
if (cellValues.length == 0) {
|
|
5427
|
+
headerCells[headerIdx].style.width = null;
|
|
5428
|
+
headerCells[headerIdx].style.whiteSpace = 'nowrap';
|
|
5429
|
+
}
|
|
5430
|
+
maxWidth = headerCells[headerIdx].offsetWidth;
|
|
5431
|
+
if (cellValues.length > 0) {
|
|
5432
|
+
cellValues.forEach(function (value) {
|
|
5433
|
+
value.parentElement.style.width = null;
|
|
5434
|
+
var width = value.parentElement.offsetWidth;
|
|
5435
|
+
if (width > maxWidth) {
|
|
5436
|
+
maxWidth = width;
|
|
5437
|
+
}
|
|
5438
|
+
});
|
|
5439
|
+
maxWidth += 3;
|
|
5440
|
+
var maxOption = column.isRowNum
|
|
5441
|
+
? this_1.options.columnWidths.rowNumColumn.max || 500
|
|
5442
|
+
: this_1.options.columnWidths[column.dataColumn.type].max || 2000;
|
|
5443
|
+
var minOption = column.isRowNum
|
|
5444
|
+
? this_1.options.columnWidths.rowNumColumn.min || 0
|
|
5445
|
+
: this_1.options.columnWidths[column.dataColumn.type].min || 20;
|
|
5446
|
+
if (maxWidth > maxOption) {
|
|
5447
|
+
maxWidth = maxOption;
|
|
5448
|
+
}
|
|
5449
|
+
if (maxWidth < minOption) {
|
|
5450
|
+
maxWidth = minOption;
|
|
5451
|
+
}
|
|
5452
|
+
if (utils_utils.isNumericType(column.type)) {
|
|
5453
|
+
//increase the calculated width in 1.3 times for numeric columns
|
|
5454
|
+
maxWidth = Math.round(maxWidth * 1.3);
|
|
5455
|
+
}
|
|
5456
|
+
sumWidth += maxWidth;
|
|
5457
|
+
column.width = maxWidth;
|
|
5458
|
+
cellValues.forEach(function (value) {
|
|
5459
|
+
value.parentElement.style.width = maxWidth + "px";
|
|
5460
|
+
});
|
|
5461
|
+
headerCells[headerIdx].style.width = maxWidth + "px";
|
|
5462
|
+
if (column.dataColumn) {
|
|
5463
|
+
column.dataColumn.calculatedWidth = maxWidth;
|
|
5464
|
+
}
|
|
5465
|
+
}
|
|
5466
|
+
else {
|
|
5467
|
+
sumWidth += maxWidth;
|
|
5468
|
+
}
|
|
5469
|
+
}
|
|
5470
|
+
headerIdx++;
|
|
5471
|
+
};
|
|
5472
|
+
var this_1 = this;
|
|
5473
|
+
for (var idx = 0; idx < this.columns.count; idx++) {
|
|
5474
|
+
_loop_1(idx);
|
|
5475
|
+
}
|
|
5476
|
+
if (sumWidth > 0) {
|
|
5477
|
+
this.bodyCellContainerDiv.style.width = sumWidth + "px";
|
|
5478
|
+
this.headerCellContainerDiv.style.width = sumWidth + "px";
|
|
5479
|
+
}
|
|
5480
|
+
else {
|
|
5481
|
+
this.bodyCellContainerDiv.style.width = containerWidth;
|
|
5482
|
+
this.headerCellContainerDiv.style.width = containerWidth;
|
|
5483
|
+
}
|
|
5484
|
+
this.bodyCellContainerDiv.style.visibility = null;
|
|
5485
|
+
this.headerRowDiv.removeAttribute('style');
|
|
5486
|
+
};
|
|
5312
5487
|
return EasyGrid;
|
|
5313
5488
|
}());
|
|
5314
5489
|
|
|
@@ -6495,6 +6670,7 @@ addEasyDataUITexts();
|
|
|
6495
6670
|
|
|
6496
6671
|
|
|
6497
6672
|
|
|
6673
|
+
|
|
6498
6674
|
//datetimepicker
|
|
6499
6675
|
|
|
6500
6676
|
|
|
@@ -7107,167 +7283,168 @@ var model_ex_DataModelEx = /** @class */ (function (_super) {
|
|
|
7107
7283
|
}(external_easyqueryCore_["DataModel"]));
|
|
7108
7284
|
|
|
7109
7285
|
|
|
7110
|
-
// CONCATENATED MODULE: ./src/data/
|
|
7111
|
-
var eqs_aggr_calculator_assign = (undefined && undefined.__assign) || function () {
|
|
7112
|
-
eqs_aggr_calculator_assign = Object.assign || function(t) {
|
|
7113
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
7114
|
-
s = arguments[i];
|
|
7115
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7116
|
-
t[p] = s[p];
|
|
7117
|
-
}
|
|
7118
|
-
return t;
|
|
7119
|
-
};
|
|
7120
|
-
return eqs_aggr_calculator_assign.apply(this, arguments);
|
|
7121
|
-
};
|
|
7122
|
-
|
|
7286
|
+
// CONCATENATED MODULE: ./src/data/data_table_aggr_calculator.ts
|
|
7123
7287
|
|
|
7124
|
-
var
|
|
7125
|
-
function
|
|
7288
|
+
var data_table_aggr_calculator_DataTableAggregatesCalculator = /** @class */ (function () {
|
|
7289
|
+
function DataTableAggregatesCalculator(context) {
|
|
7126
7290
|
this.context = context;
|
|
7291
|
+
//stores current totals by level (group) number
|
|
7292
|
+
this.levelsTotals = [];
|
|
7293
|
+
this.prevRow = null;
|
|
7127
7294
|
this.aggrContainer = new external_easyqueryCore_["EqAggregatesContainer"](context);
|
|
7128
7295
|
}
|
|
7129
|
-
|
|
7296
|
+
DataTableAggregatesCalculator.prototype.getAggrContainer = function () {
|
|
7130
7297
|
return this.aggrContainer;
|
|
7131
7298
|
};
|
|
7132
|
-
|
|
7299
|
+
DataTableAggregatesCalculator.prototype.initObjects = function () {
|
|
7300
|
+
var _this = this;
|
|
7301
|
+
this.aggrSettings = this.context.getQuery().getAggregationSettings();
|
|
7302
|
+
this.groups = this.aggrSettings.getGroups();
|
|
7303
|
+
this.aggregates = this.aggrSettings.getAggregates();
|
|
7304
|
+
this.aggrColIds = this.aggrSettings.getAggregates().map(function (a) { return a.colId; });
|
|
7305
|
+
this.aggrCols = this.context.resultTable.columns.getItems()
|
|
7306
|
+
.filter(function (col) { return _this.aggrColIds.indexOf(col.id) >= 0; });
|
|
7307
|
+
this.levelsTotals = [];
|
|
7308
|
+
this.prevRow = null;
|
|
7309
|
+
};
|
|
7310
|
+
DataTableAggregatesCalculator.prototype.createColumnAggregatesObject = function () {
|
|
7311
|
+
return {
|
|
7312
|
+
sum: 0,
|
|
7313
|
+
min: Number.MAX_VALUE,
|
|
7314
|
+
max: Number.MIN_VALUE
|
|
7315
|
+
};
|
|
7316
|
+
};
|
|
7317
|
+
DataTableAggregatesCalculator.prototype.calculate = function (options) {
|
|
7318
|
+
this.initObjects();
|
|
7133
7319
|
this.aggrContainer.clear();
|
|
7134
7320
|
options = options || {};
|
|
7135
7321
|
options.maxLevel = options.maxLevel >= 0
|
|
7136
7322
|
? options.maxLevel : 0;
|
|
7137
|
-
var
|
|
7138
|
-
var
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
var aggrColIds = settings.getAggregates().map(function (a) { return a.colId; });
|
|
7143
|
-
var aggrCols = query.getColumns()
|
|
7144
|
-
.filter(function (col) { return aggrColIds.indexOf(col.id) >= 0; });
|
|
7145
|
-
var _loop_1 = function (col) {
|
|
7146
|
-
query.changeColumnType(col, external_easyqueryCore_["ExprTag"].AggregateFunction, { funcId: aggregates.filter(function (a) { return a.colId == col.id; })[0].funcId });
|
|
7147
|
-
};
|
|
7148
|
-
for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
|
|
7149
|
-
var col = aggrCols_1[_i];
|
|
7150
|
-
_loop_1(col);
|
|
7323
|
+
var levelNumber = this.groups.length + 1; //number of groups plus grand totals
|
|
7324
|
+
for (var levelIndex = 0; levelIndex < levelNumber; levelIndex++) {
|
|
7325
|
+
var levelTotals = { count: 0, columns: {} };
|
|
7326
|
+
this.resetLevelTotals(levelTotals);
|
|
7327
|
+
this.levelsTotals.push(levelTotals);
|
|
7151
7328
|
}
|
|
7152
|
-
|
|
7153
|
-
var
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
var col = queryCols_1[_a];
|
|
7157
|
-
col.setHidden(true);
|
|
7329
|
+
var allRows = this.context.resultTable.getCachedRows();
|
|
7330
|
+
for (var _i = 0, allRows_1 = allRows; _i < allRows_1.length; _i++) {
|
|
7331
|
+
var row = allRows_1[_i];
|
|
7332
|
+
this.processDataRow(row);
|
|
7158
7333
|
}
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7162
|
-
col['_id'] = settings.COUNT_FIELD_NAME;
|
|
7163
|
-
var sqlText = 'COUNT(*)';
|
|
7164
|
-
var customSqlExpr = new external_easyqueryCore_["Expression"](col);
|
|
7165
|
-
customSqlExpr.tag = external_easyqueryCore_["ExprTag"].CustomSql;
|
|
7166
|
-
customSqlExpr.sql = sqlText;
|
|
7167
|
-
customSqlExpr.baseAttrId = null;
|
|
7168
|
-
col.expr = customSqlExpr;
|
|
7169
|
-
query.getColumns().push(col);
|
|
7170
|
-
}
|
|
7171
|
-
if (settings.hasGrandTotals()) {
|
|
7172
|
-
levelPromises.push(this.processLevel({
|
|
7173
|
-
query: query,
|
|
7174
|
-
level: 0,
|
|
7175
|
-
groupName: 'Grand Totals',
|
|
7176
|
-
resultObtainedCallback: options.resultObtained,
|
|
7177
|
-
errorOccurredCallback: options.errorOccurred
|
|
7178
|
-
}));
|
|
7334
|
+
//flusing the totals for all group levels
|
|
7335
|
+
for (var levelIndex = 1; levelIndex < levelNumber; levelIndex++) {
|
|
7336
|
+
this.flushLevelTotals(levelIndex);
|
|
7179
7337
|
}
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
for (var _b = 0, queryCols_2 = queryCols; _b < queryCols_2.length; _b++) {
|
|
7184
|
-
var col = queryCols_2[_b];
|
|
7185
|
-
col.setHidden(group.columns.indexOf(col.id) < 0);
|
|
7186
|
-
}
|
|
7187
|
-
levelPromises.push(this.processLevel({
|
|
7188
|
-
query: query,
|
|
7189
|
-
level: level,
|
|
7190
|
-
groupName: group.name,
|
|
7191
|
-
resultObtainedCallback: options.resultObtained,
|
|
7192
|
-
errorOccurredCallback: options.errorOccurred
|
|
7193
|
-
}));
|
|
7338
|
+
//flusing the grand totals (if they are turned on)
|
|
7339
|
+
if (this.aggrSettings.hasGrandTotals()) {
|
|
7340
|
+
this.flushLevelTotals(0);
|
|
7194
7341
|
}
|
|
7195
|
-
return Promise.
|
|
7196
|
-
.then(function () { return; })
|
|
7197
|
-
.catch(function (error) { return console.error(error); });
|
|
7342
|
+
return Promise.resolve();
|
|
7198
7343
|
};
|
|
7199
|
-
|
|
7200
|
-
var
|
|
7201
|
-
|
|
7202
|
-
.
|
|
7203
|
-
var fetchOptions = {
|
|
7204
|
-
aux: true,
|
|
7205
|
-
query: options.query
|
|
7206
|
-
};
|
|
7207
|
-
if (this.context.debugMode) {
|
|
7208
|
-
fetchOptions.debug = "Fetching group data. Group: '" + options.groupName + "', level: " + options.level;
|
|
7344
|
+
DataTableAggregatesCalculator.prototype.resetLevelTotals = function (rowTotals) {
|
|
7345
|
+
for (var _i = 0, _a = this.aggrCols; _i < _a.length; _i++) {
|
|
7346
|
+
var aggrCol = _a[_i];
|
|
7347
|
+
rowTotals.columns[aggrCol.id] = this.createColumnAggregatesObject();
|
|
7209
7348
|
}
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
var
|
|
7216
|
-
|
|
7217
|
-
var col = _a[_i];
|
|
7218
|
-
dataTable.columns.add(col);
|
|
7219
|
-
}
|
|
7220
|
-
for (var _b = 0, _c = resultSet.rows; _b < _c.length; _b++) {
|
|
7221
|
-
var row = _c[_b];
|
|
7222
|
-
dataTable.addRow(row);
|
|
7223
|
-
}
|
|
7224
|
-
var levelData = _this.buildLevelData(options.level, dataTable);
|
|
7225
|
-
_this.aggrContainer.setAggregates(options.level, levelData);
|
|
7226
|
-
if (options.resultObtainedCallback) {
|
|
7227
|
-
options.resultObtainedCallback(result, options.level);
|
|
7349
|
+
rowTotals.count = 0;
|
|
7350
|
+
};
|
|
7351
|
+
DataTableAggregatesCalculator.prototype.processDataRow = function (row) {
|
|
7352
|
+
var levelIndexChanged = this.checkLevelChange(row);
|
|
7353
|
+
if (levelIndexChanged >= 0) {
|
|
7354
|
+
for (var levelIndex_1 = levelIndexChanged; levelIndex_1 < this.levelsTotals.length; levelIndex_1++) {
|
|
7355
|
+
this.flushLevelTotals(levelIndex_1);
|
|
7228
7356
|
}
|
|
7229
|
-
}
|
|
7230
|
-
|
|
7231
|
-
|
|
7232
|
-
|
|
7357
|
+
}
|
|
7358
|
+
if (this.aggrSettings.hasGrandTotals()) {
|
|
7359
|
+
this.updateLevelTotals(0, row);
|
|
7360
|
+
}
|
|
7361
|
+
var levelIndex = 1;
|
|
7362
|
+
for (var _i = 0, _a = this.groups; _i < _a.length; _i++) {
|
|
7363
|
+
var group = _a[_i];
|
|
7364
|
+
this.updateLevelTotals(levelIndex, row);
|
|
7365
|
+
levelIndex++;
|
|
7366
|
+
}
|
|
7367
|
+
this.prevRow = row;
|
|
7368
|
+
};
|
|
7369
|
+
/** Checks if the values in group columns were changed
|
|
7370
|
+
and return the level number they were */
|
|
7371
|
+
DataTableAggregatesCalculator.prototype.checkLevelChange = function (row) {
|
|
7372
|
+
if (this.prevRow == null)
|
|
7373
|
+
return -1;
|
|
7374
|
+
for (var groupIndex = 0; groupIndex < this.groups.length; groupIndex++) {
|
|
7375
|
+
var group = this.groups[groupIndex];
|
|
7376
|
+
for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
|
|
7377
|
+
var colId = _a[_i];
|
|
7378
|
+
var value = row.getValue(colId);
|
|
7379
|
+
var prevValue = this.prevRow.getValue(colId);
|
|
7380
|
+
if (!this.aggrSettings.compareValues(prevValue, value)) {
|
|
7381
|
+
return groupIndex + 1;
|
|
7382
|
+
}
|
|
7233
7383
|
}
|
|
7234
|
-
}
|
|
7235
|
-
return
|
|
7384
|
+
}
|
|
7385
|
+
return -1;
|
|
7236
7386
|
};
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
var
|
|
7243
|
-
|
|
7244
|
-
|
|
7387
|
+
/** Saves the current values in levelData for the specified level to AggregateContainer
|
|
7388
|
+
and then reset the data row for that level
|
|
7389
|
+
*/
|
|
7390
|
+
DataTableAggregatesCalculator.prototype.flushLevelTotals = function (levelIndex) {
|
|
7391
|
+
var levelTotals = this.levelsTotals[levelIndex];
|
|
7392
|
+
var group = levelIndex > 0 ? this.groups[levelIndex - 1] : null;
|
|
7393
|
+
var groupKey = this.aggrSettings.buildGroupKey(group, this.prevRow);
|
|
7394
|
+
var groupTotals = {};
|
|
7395
|
+
for (var _i = 0, _a = this.aggregates; _i < _a.length; _i++) {
|
|
7396
|
+
var aggr = _a[_i];
|
|
7397
|
+
var columnTotals = levelTotals.columns[aggr.colId];
|
|
7398
|
+
switch (aggr.funcId) {
|
|
7399
|
+
case "SUM":
|
|
7400
|
+
groupTotals[aggr.colId] = columnTotals.sum;
|
|
7401
|
+
break;
|
|
7402
|
+
case "AVG":
|
|
7403
|
+
groupTotals[aggr.colId] = columnTotals.sum / levelTotals.count;
|
|
7404
|
+
break;
|
|
7405
|
+
case "COUNT":
|
|
7406
|
+
case "CNTDST":
|
|
7407
|
+
groupTotals[aggr.colId] = levelTotals.count;
|
|
7408
|
+
break;
|
|
7409
|
+
case "MIN":
|
|
7410
|
+
groupTotals[aggr.colId] = columnTotals.min;
|
|
7411
|
+
break;
|
|
7412
|
+
case "MAX":
|
|
7413
|
+
groupTotals[aggr.colId] = columnTotals.max;
|
|
7414
|
+
break;
|
|
7415
|
+
}
|
|
7245
7416
|
}
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
|
|
7255
|
-
|
|
7256
|
-
|
|
7257
|
-
|
|
7258
|
-
|
|
7259
|
-
|
|
7260
|
-
|
|
7417
|
+
if (this.aggrSettings.hasRecordCount()) {
|
|
7418
|
+
groupTotals[this.aggrSettings.COUNT_FIELD_NAME] = levelTotals.count;
|
|
7419
|
+
}
|
|
7420
|
+
this.aggrContainer.updateAggregateData(levelIndex, groupKey, groupTotals);
|
|
7421
|
+
this.resetLevelTotals(levelTotals);
|
|
7422
|
+
};
|
|
7423
|
+
/** Updates the totals by values in the current DataRow
|
|
7424
|
+
* and according to the specified aggregate
|
|
7425
|
+
*/
|
|
7426
|
+
DataTableAggregatesCalculator.prototype.updateLevelTotals = function (levelIndex, row) {
|
|
7427
|
+
var levelTotals = this.levelsTotals[levelIndex];
|
|
7428
|
+
levelTotals.count += 1;
|
|
7429
|
+
for (var _i = 0, _a = this.aggregates; _i < _a.length; _i++) {
|
|
7430
|
+
var aggr = _a[_i];
|
|
7431
|
+
var value = row.getValue(aggr.colId);
|
|
7432
|
+
var columnTotals = levelTotals.columns[aggr.colId];
|
|
7433
|
+
columnTotals.sum += value;
|
|
7434
|
+
if (value < columnTotals.min) {
|
|
7435
|
+
columnTotals.min = value;
|
|
7261
7436
|
}
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
value[valueCol] = row.getValue(valueCol);
|
|
7437
|
+
if (value > columnTotals.max) {
|
|
7438
|
+
columnTotals.max = value;
|
|
7265
7439
|
}
|
|
7266
|
-
data.set(JSON.stringify(key), value);
|
|
7267
7440
|
}
|
|
7268
|
-
return data;
|
|
7269
7441
|
};
|
|
7270
|
-
|
|
7442
|
+
DataTableAggregatesCalculator.prototype.needRecalculation = function () {
|
|
7443
|
+
return true;
|
|
7444
|
+
};
|
|
7445
|
+
DataTableAggregatesCalculator.prototype.reset = function () {
|
|
7446
|
+
};
|
|
7447
|
+
return DataTableAggregatesCalculator;
|
|
7271
7448
|
}());
|
|
7272
7449
|
|
|
7273
7450
|
|
|
@@ -7293,7 +7470,7 @@ external_easyqueryCore_["EqContext"].prototype.useEnterprise = function (keyOrIn
|
|
|
7293
7470
|
services.registerDataModelResolver(function (context) { return new model_ex_DataModelEx(); });
|
|
7294
7471
|
services.registerQueryResolver(function (context) { return new query_ex_QueryEx(context.getModel()); });
|
|
7295
7472
|
services.registerQueryStorageResolver(function (context) { return new EqServerQueryStorage(context); });
|
|
7296
|
-
services.registerAggregatesCalculator(function (context) { return new
|
|
7473
|
+
services.registerAggregatesCalculator(function (context) { return new data_table_aggr_calculator_DataTableAggregatesCalculator(context); });
|
|
7297
7474
|
if (lcv.__kt === 2) {
|
|
7298
7475
|
console.warn('EasyQuery.JS is working in the TRIAL MODE!\n'
|
|
7299
7476
|
+ 'Please order a license (https://korzh.com/eq) to get a proper product key.');
|
|
@@ -7422,13 +7599,182 @@ function hideTrialWM() {
|
|
|
7422
7599
|
}
|
|
7423
7600
|
}
|
|
7424
7601
|
|
|
7602
|
+
// CONCATENATED MODULE: ./src/data/eqs_aggr_calculator.ts
|
|
7603
|
+
var eqs_aggr_calculator_assign = (undefined && undefined.__assign) || function () {
|
|
7604
|
+
eqs_aggr_calculator_assign = Object.assign || function(t) {
|
|
7605
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
7606
|
+
s = arguments[i];
|
|
7607
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7608
|
+
t[p] = s[p];
|
|
7609
|
+
}
|
|
7610
|
+
return t;
|
|
7611
|
+
};
|
|
7612
|
+
return eqs_aggr_calculator_assign.apply(this, arguments);
|
|
7613
|
+
};
|
|
7614
|
+
|
|
7615
|
+
|
|
7616
|
+
var eqs_aggr_calculator_EqServerAggregatesCalculator = /** @class */ (function () {
|
|
7617
|
+
function EqServerAggregatesCalculator(context) {
|
|
7618
|
+
this.context = context;
|
|
7619
|
+
this._needRecalculation = true;
|
|
7620
|
+
this.aggrContainer = new external_easyqueryCore_["EqAggregatesContainer"](context);
|
|
7621
|
+
}
|
|
7622
|
+
EqServerAggregatesCalculator.prototype.getAggrContainer = function () {
|
|
7623
|
+
return this.aggrContainer;
|
|
7624
|
+
};
|
|
7625
|
+
EqServerAggregatesCalculator.prototype.calculate = function (options) {
|
|
7626
|
+
this._needRecalculation = false;
|
|
7627
|
+
this.aggrContainer.clear();
|
|
7628
|
+
options = options || {};
|
|
7629
|
+
options.maxLevel = options.maxLevel >= 0
|
|
7630
|
+
? options.maxLevel : 0;
|
|
7631
|
+
var levelPromises = [];
|
|
7632
|
+
var query = this.context.createQuery();
|
|
7633
|
+
query.loadFromData(this.context.getQuery().toJSONData());
|
|
7634
|
+
var settings = this.context.getQuery().getAggregationSettings();
|
|
7635
|
+
var aggregates = settings.getAggregates();
|
|
7636
|
+
var aggrColIds = settings.getAggregates().map(function (a) { return a.colId; });
|
|
7637
|
+
var aggrCols = query.getColumns()
|
|
7638
|
+
.filter(function (col) { return aggrColIds.indexOf(col.id) >= 0; });
|
|
7639
|
+
var _loop_1 = function (col) {
|
|
7640
|
+
query.changeColumnType(col, external_easyqueryCore_["ExprTag"].AggregateFunction, { funcId: aggregates.filter(function (a) { return a.colId == col.id; })[0].funcId });
|
|
7641
|
+
};
|
|
7642
|
+
for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
|
|
7643
|
+
var col = aggrCols_1[_i];
|
|
7644
|
+
_loop_1(col);
|
|
7645
|
+
}
|
|
7646
|
+
//get all non-aggregate columns
|
|
7647
|
+
var queryCols = query.getColumns()
|
|
7648
|
+
.filter(function (c) { return c.expr.tag !== external_easyqueryCore_["ExprTag"].AggregateFunction; });
|
|
7649
|
+
for (var _a = 0, queryCols_1 = queryCols; _a < queryCols_1.length; _a++) {
|
|
7650
|
+
var col = queryCols_1[_a];
|
|
7651
|
+
col.setHidden(true);
|
|
7652
|
+
}
|
|
7653
|
+
if (settings.hasRecordCount()) {
|
|
7654
|
+
var col = query.createColumn();
|
|
7655
|
+
col.caption = settings.COUNT_FIELD_NAME;
|
|
7656
|
+
col['_id'] = settings.COUNT_FIELD_NAME;
|
|
7657
|
+
var sqlText = 'COUNT(*)';
|
|
7658
|
+
var customSqlExpr = new external_easyqueryCore_["Expression"](col);
|
|
7659
|
+
customSqlExpr.tag = external_easyqueryCore_["ExprTag"].CustomSql;
|
|
7660
|
+
customSqlExpr.sql = sqlText;
|
|
7661
|
+
customSqlExpr.baseAttrId = null;
|
|
7662
|
+
col.expr = customSqlExpr;
|
|
7663
|
+
query.getColumns().push(col);
|
|
7664
|
+
}
|
|
7665
|
+
if (settings.hasGrandTotals()) {
|
|
7666
|
+
levelPromises.push(this.processLevel({
|
|
7667
|
+
query: query,
|
|
7668
|
+
level: 0,
|
|
7669
|
+
groupName: 'Grand Totals',
|
|
7670
|
+
resultObtainedCallback: options.resultObtained,
|
|
7671
|
+
errorOccurredCallback: options.errorOccurred
|
|
7672
|
+
}));
|
|
7673
|
+
}
|
|
7674
|
+
var groups = settings.getGroups();
|
|
7675
|
+
for (var level = 1; level <= groups.length; level++) {
|
|
7676
|
+
var group = groups[level - 1];
|
|
7677
|
+
for (var _b = 0, queryCols_2 = queryCols; _b < queryCols_2.length; _b++) {
|
|
7678
|
+
var col = queryCols_2[_b];
|
|
7679
|
+
col.setHidden(group.columns.indexOf(col.id) < 0);
|
|
7680
|
+
}
|
|
7681
|
+
levelPromises.push(this.processLevel({
|
|
7682
|
+
query: query,
|
|
7683
|
+
level: level,
|
|
7684
|
+
groupName: group.name,
|
|
7685
|
+
resultObtainedCallback: options.resultObtained,
|
|
7686
|
+
errorOccurredCallback: options.errorOccurred
|
|
7687
|
+
}));
|
|
7688
|
+
}
|
|
7689
|
+
return Promise.all(levelPromises)
|
|
7690
|
+
.then(function () {
|
|
7691
|
+
return;
|
|
7692
|
+
})
|
|
7693
|
+
.catch(function (error) { return console.error(error); });
|
|
7694
|
+
};
|
|
7695
|
+
EqServerAggregatesCalculator.prototype.processLevel = function (options) {
|
|
7696
|
+
var _this = this;
|
|
7697
|
+
var fetcher = this.context.getServices()
|
|
7698
|
+
.getDataFetcher();
|
|
7699
|
+
var fetchOptions = {
|
|
7700
|
+
aux: true,
|
|
7701
|
+
query: options.query
|
|
7702
|
+
};
|
|
7703
|
+
if (this.context.debugMode) {
|
|
7704
|
+
fetchOptions.debug = "Fetching group data. Group: '" + options.groupName + "', level: " + options.level;
|
|
7705
|
+
}
|
|
7706
|
+
var resultPromise = fetcher.fetchData(fetchOptions)
|
|
7707
|
+
.then(function (result) {
|
|
7708
|
+
var dataTable = new easy_data_table_EasyDataTable({
|
|
7709
|
+
elasticChunks: true
|
|
7710
|
+
});
|
|
7711
|
+
var resultSet = result.resultSet;
|
|
7712
|
+
for (var _i = 0, _a = resultSet.cols; _i < _a.length; _i++) {
|
|
7713
|
+
var col = _a[_i];
|
|
7714
|
+
dataTable.columns.add(col);
|
|
7715
|
+
}
|
|
7716
|
+
for (var _b = 0, _c = resultSet.rows; _b < _c.length; _b++) {
|
|
7717
|
+
var row = _c[_b];
|
|
7718
|
+
dataTable.addRow(row);
|
|
7719
|
+
}
|
|
7720
|
+
var levelData = _this.buildLevelData(options.level, dataTable);
|
|
7721
|
+
console.log('Level', options.level, levelData);
|
|
7722
|
+
_this.aggrContainer.setAggregateData(options.level, levelData);
|
|
7723
|
+
if (options.resultObtainedCallback) {
|
|
7724
|
+
options.resultObtainedCallback(result, options.level);
|
|
7725
|
+
}
|
|
7726
|
+
})
|
|
7727
|
+
.catch(function (error) {
|
|
7728
|
+
if (options.errorOccurredCallback) {
|
|
7729
|
+
options.errorOccurredCallback(eqs_aggr_calculator_assign(eqs_aggr_calculator_assign({}, error), { level: options.level }));
|
|
7730
|
+
}
|
|
7731
|
+
});
|
|
7732
|
+
return resultPromise;
|
|
7733
|
+
};
|
|
7734
|
+
EqServerAggregatesCalculator.prototype.buildLevelData = function (level, dataTable) {
|
|
7735
|
+
var aggrSettings = this.context.getQuery().getAggregationSettings();
|
|
7736
|
+
var keyColumns = level > 0
|
|
7737
|
+
? aggrSettings.getGroups()[level - 1].columns
|
|
7738
|
+
: [];
|
|
7739
|
+
var valueColumns = aggrSettings.getAggregates().map(function (a) { return a.colId; });
|
|
7740
|
+
if (aggrSettings.hasRecordCount()) {
|
|
7741
|
+
valueColumns.push(aggrSettings.COUNT_FIELD_NAME);
|
|
7742
|
+
}
|
|
7743
|
+
var data = new Map();
|
|
7744
|
+
for (var _i = 0, _a = dataTable.getCachedRows(); _i < _a.length; _i++) {
|
|
7745
|
+
var row = _a[_i];
|
|
7746
|
+
var key = {};
|
|
7747
|
+
var value = {};
|
|
7748
|
+
for (var _b = 0, keyColumns_1 = keyColumns; _b < keyColumns_1.length; _b++) {
|
|
7749
|
+
var keyCol = keyColumns_1[_b];
|
|
7750
|
+
var colIdx = dataTable.columns.getIndex(keyCol);
|
|
7751
|
+
if (colIdx >= 0) {
|
|
7752
|
+
var keyVal = row.getValue(keyCol);
|
|
7753
|
+
if (!aggrSettings.caseSensitiveGroups && typeof (keyVal) === 'string') {
|
|
7754
|
+
keyVal = keyVal.toLowerCase();
|
|
7755
|
+
}
|
|
7756
|
+
key[keyCol] = keyVal;
|
|
7757
|
+
}
|
|
7758
|
+
}
|
|
7759
|
+
for (var _c = 0, valueColumns_1 = valueColumns; _c < valueColumns_1.length; _c++) {
|
|
7760
|
+
var valueCol = valueColumns_1[_c];
|
|
7761
|
+
value[valueCol] = row.getValue(valueCol);
|
|
7762
|
+
}
|
|
7763
|
+
data.set(JSON.stringify(key), value);
|
|
7764
|
+
}
|
|
7765
|
+
return data;
|
|
7766
|
+
};
|
|
7767
|
+
EqServerAggregatesCalculator.prototype.needRecalculation = function () {
|
|
7768
|
+
return this._needRecalculation;
|
|
7769
|
+
};
|
|
7770
|
+
EqServerAggregatesCalculator.prototype.reset = function () {
|
|
7771
|
+
this._needRecalculation = true;
|
|
7772
|
+
};
|
|
7773
|
+
return EqServerAggregatesCalculator;
|
|
7774
|
+
}());
|
|
7775
|
+
|
|
7776
|
+
|
|
7425
7777
|
// CONCATENATED MODULE: ./src/public_api.ts
|
|
7426
|
-
/* concated harmony reexport EqAggregatesCalculator */__webpack_require__.d(__webpack_exports__, "EqAggregatesCalculator", function() { return eqs_aggr_calculator_EqAggregatesCalculator; });
|
|
7427
|
-
/* concated harmony reexport QueryEx */__webpack_require__.d(__webpack_exports__, "QueryEx", function() { return query_ex_QueryEx; });
|
|
7428
|
-
/* concated harmony reexport QueryColumnEx */__webpack_require__.d(__webpack_exports__, "QueryColumnEx", function() { return query_column_ex_QueryColumnEx; });
|
|
7429
|
-
/* concated harmony reexport ConditionEx */__webpack_require__.d(__webpack_exports__, "ConditionEx", function() { return condition_ex_ConditionEx; });
|
|
7430
|
-
/* concated harmony reexport DataModelEx */__webpack_require__.d(__webpack_exports__, "DataModelEx", function() { return model_ex_DataModelEx; });
|
|
7431
|
-
/* concated harmony reexport EqServerQueryStorage */__webpack_require__.d(__webpack_exports__, "EqServerQueryStorage", function() { return EqServerQueryStorage; });
|
|
7432
7778
|
|
|
7433
7779
|
|
|
7434
7780
|
|