@easyquery/ui 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.
Files changed (50) hide show
  1. package/dist/browser/eq.community.css.map +1 -1
  2. package/dist/browser/eq.community.js +932 -761
  3. package/dist/browser/eq.community.js.map +1 -1
  4. package/dist/browser/eq.community.min.js +2 -2
  5. package/dist/browser/eq.community.min.js.LICENSE.txt +0 -2
  6. package/dist/browser/eq.community.min.js.map +1 -1
  7. package/dist/browser/eq.core.css +4 -4
  8. package/dist/browser/eq.core.min.css +2 -2
  9. package/dist/browser/eq.view.css +1 -1
  10. package/dist/browser/eq.view.min.css +1 -1
  11. package/dist/bundles/easyquery.ui.js +393 -251
  12. package/dist/bundles/easyquery.ui.js.map +1 -1
  13. package/dist/bundles/easyquery.ui.min.js +1 -1
  14. package/dist/bundles/easyquery.ui.min.js.LICENSE.txt +0 -2
  15. package/dist/bundles/easyquery.ui.min.js.map +1 -1
  16. package/dist/lib/facets/result_facet.d.ts +0 -1
  17. package/dist/lib/facets/result_facet.js +21 -54
  18. package/dist/lib/facets/result_facet.js.map +1 -1
  19. package/dist/lib/utils/popup_menu.d.ts +3 -3
  20. package/dist/lib/widgets/aggregation_bar.d.ts +1 -1
  21. package/dist/lib/widgets/charts/chart_widget.d.ts +1 -1
  22. package/dist/lib/widgets/columns_bar.d.ts +1 -1
  23. package/dist/lib/widgets/columns_panel.d.ts +1 -1
  24. package/dist/lib/widgets/columns_panel.js +4 -3
  25. package/dist/lib/widgets/columns_panel.js.map +1 -1
  26. package/dist/lib/widgets/easy_grid_widget.js +1 -1
  27. package/dist/lib/widgets/easy_grid_widget.js.map +1 -1
  28. package/dist/lib/widgets/entities_panel.d.ts +1 -1
  29. package/dist/lib/widgets/filter_bar.d.ts +1 -1
  30. package/dist/lib/widgets/query_panel.d.ts +1 -1
  31. package/dist/lib/widgets/query_panel.js +4 -3
  32. package/dist/lib/widgets/query_panel.js.map +1 -1
  33. package/dist/lib/widgets/queryname_widget.d.ts +1 -1
  34. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.d.ts +1 -1
  35. package/dist/lib/widgets/renderers/aggr_settings/aggr_settings_renderer.js.map +1 -1
  36. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.d.ts +1 -1
  37. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js +1 -2
  38. package/dist/lib/widgets/renderers/columnsbar/column_renderer_cb.js.map +1 -1
  39. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.d.ts +1 -1
  40. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js +10 -3
  41. package/dist/lib/widgets/renderers/columnspanel/column_renderer_cp.js.map +1 -1
  42. package/dist/lib/widgets/renderers/querypanel/addrow_renderer.d.ts +1 -1
  43. package/dist/lib/widgets/renderers/querypanel/condition_renderer.d.ts +1 -1
  44. package/dist/lib/widgets/renderers/querypanel/expression_renderer.d.ts +1 -1
  45. package/dist/lib/widgets/renderers/querypanel/operator_renderer.d.ts +1 -1
  46. package/dist/lib/widgets/renderers/querypanel/text_renderer.d.ts +1 -1
  47. package/dist/lib/widgets/renderers/sortingbar/column_renderer_sp.d.ts +1 -1
  48. package/dist/lib/widgets/result_facets_panel.d.ts +1 -1
  49. package/dist/lib/widgets/sorting_bar.d.ts +1 -1
  50. package/package.json +6 -8
@@ -763,7 +763,7 @@ var i18n_i18n;
763
763
  var utils_utils;
764
764
  (function (utils) {
765
765
  function getAllDataTypes() {
766
- return Object.values(DataType);
766
+ return Object.values(DataType).filter(function (item) { return typeof item === "number"; });
767
767
  }
768
768
  utils.getAllDataTypes = getAllDataTypes;
769
769
  function getDateDataTypes() {
@@ -771,12 +771,16 @@ var utils_utils;
771
771
  }
772
772
  utils.getDateDataTypes = getDateDataTypes;
773
773
  function getStringDataTypes() {
774
- return [DataType.String, DataType.Memo];
774
+ return [DataType.String, DataType.Memo, DataType.FixedChar];
775
775
  }
776
776
  utils.getStringDataTypes = getStringDataTypes;
777
777
  var _numericTypes = [DataType.Byte, DataType.Word, DataType.Int32,
778
- DataType.Int64, DataType.Float, DataType.Currency];
779
- var _intTypes = [DataType.Byte, DataType.Word, DataType.Int32, DataType.Int64];
778
+ DataType.Int64, DataType.Float, DataType.Currency, DataType.Autoinc];
779
+ function getNumericDataTypes() {
780
+ return _numericTypes;
781
+ }
782
+ utils.getNumericDataTypes = getNumericDataTypes;
783
+ var _intTypes = [DataType.Byte, DataType.Word, DataType.Int32, DataType.Int64, DataType.Autoinc];
780
784
  //-------------- object functions -------------------
781
785
  /**
782
786
  * Copy the content of all objests passed in `args` parameters into `target`
@@ -841,7 +845,7 @@ var utils_utils;
841
845
  hashSet.set(sourceVal, target[key]);
842
846
  }
843
847
  else {
844
- if (typeof target[key] == 'undefined') {
848
+ if (typeof target[key] == 'undefined' || target[key] == null) {
845
849
  target[key] = Object.create(Object.getPrototypeOf(sourceVal));
846
850
  }
847
851
  hashSet.set(sourceVal, target[key]);
@@ -1370,7 +1374,7 @@ var http_client_HttpClient = /** @class */ (function () {
1370
1374
  var desc = {
1371
1375
  method: method,
1372
1376
  url: url,
1373
- headers: __assign({}, this.defaultHeaders, options.headers || {}),
1377
+ headers: __assign(__assign({}, this.defaultHeaders), options.headers || {}),
1374
1378
  queryParams: options.queryParams || {},
1375
1379
  data: data
1376
1380
  };
@@ -1516,6 +1520,12 @@ var MetaEntity = /** @class */ (function () {
1516
1520
  };
1517
1521
  internalProcessEntity(this);
1518
1522
  };
1523
+ MetaEntity.prototype.getFirstPrimaryAttr = function () {
1524
+ return this.getPrimaryAttrs()[0];
1525
+ };
1526
+ MetaEntity.prototype.getPrimaryAttrs = function () {
1527
+ return this.attributes.filter(function (attr) { return attr.isPrimaryKey; });
1528
+ };
1519
1529
  return MetaEntity;
1520
1530
  }());
1521
1531
 
@@ -2134,9 +2144,9 @@ var meta_data_MetaData = /** @class */ (function () {
2134
2144
  }());
2135
2145
 
2136
2146
  //# sourceMappingURL=meta_data.js.map
2137
- // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/aggr_calculator.js
2138
- var aggr_calculator_assign = (undefined && undefined.__assign) || function () {
2139
- aggr_calculator_assign = Object.assign || function(t) {
2147
+ // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/aggr_settings.js
2148
+ var aggr_settings_assign = (undefined && undefined.__assign) || function () {
2149
+ aggr_settings_assign = Object.assign || function(t) {
2140
2150
  for (var s, i = 1, n = arguments.length; i < n; i++) {
2141
2151
  s = arguments[i];
2142
2152
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
@@ -2144,7 +2154,7 @@ var aggr_calculator_assign = (undefined && undefined.__assign) || function () {
2144
2154
  }
2145
2155
  return t;
2146
2156
  };
2147
- return aggr_calculator_assign.apply(this, arguments);
2157
+ return aggr_settings_assign.apply(this, arguments);
2148
2158
  };
2149
2159
  /**
2150
2160
  * Defines aggregations settings for the current context.
@@ -2157,16 +2167,32 @@ var AggregationSettings = /** @class */ (function () {
2157
2167
  this.groups = [];
2158
2168
  this.useGrandTotals = false;
2159
2169
  this.useRecordCount = false;
2160
- this.caseSensitiveGroups = false;
2170
+ this._caseSensitiveGroups = false;
2161
2171
  this.COUNT_FIELD_NAME = 'GRPRECCNT';
2162
2172
  }
2173
+ Object.defineProperty(AggregationSettings.prototype, "caseSensitiveGroups", {
2174
+ get: function () {
2175
+ return this._caseSensitiveGroups;
2176
+ },
2177
+ set: function (value) {
2178
+ this._caseSensitiveGroups = value;
2179
+ this.updateCompareProc();
2180
+ },
2181
+ enumerable: true,
2182
+ configurable: true
2183
+ });
2184
+ AggregationSettings.prototype.updateCompareProc = function () {
2185
+ this.compareValues = this._caseSensitiveGroups
2186
+ ? this.strictCompare
2187
+ : this.caseInsensitiveCompare;
2188
+ };
2163
2189
  AggregationSettings.prototype.addGroup = function (settings) {
2164
2190
  var cols = settings.columns || this.colStore.getColumnIds(settings.from, settings.to);
2165
2191
  if (!this.colStore.validateColumns(cols))
2166
2192
  throw "Invalid columns: " + cols;
2167
2193
  if (this.hasColumnsInUse(cols))
2168
2194
  throw "Can't add same columns to different groups/aggregates";
2169
- this.groups.push(aggr_calculator_assign({ columns: cols, aggregates: null }, settings));
2195
+ this.groups.push(aggr_settings_assign({ columns: cols }, settings));
2170
2196
  return this;
2171
2197
  };
2172
2198
  AggregationSettings.prototype.addAggregateColumn = function (colIndexOrId, funcId) {
@@ -2191,7 +2217,7 @@ var AggregationSettings = /** @class */ (function () {
2191
2217
  var cols = [];
2192
2218
  var mappedGrops = this.groups.map(function (grp) {
2193
2219
  cols = cols.concat(grp.columns);
2194
- return aggr_calculator_assign({}, grp, { columns: Array.from(cols), aggregates: Array.from(_this.aggregates) });
2220
+ return aggr_settings_assign(aggr_settings_assign({}, grp), { columns: Array.from(cols), aggregates: Array.from(_this.aggregates) });
2195
2221
  });
2196
2222
  return mappedGrops;
2197
2223
  };
@@ -2283,10 +2309,35 @@ var AggregationSettings = /** @class */ (function () {
2283
2309
  }
2284
2310
  }
2285
2311
  };
2312
+ AggregationSettings.prototype.buildGroupKey = function (group, row) {
2313
+ var caseInsensitive = !this.caseSensitiveGroups;
2314
+ var result = {};
2315
+ if (group) {
2316
+ for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
2317
+ var colId = _a[_i];
2318
+ var keyVal = row.getValue(colId);
2319
+ if (caseInsensitive && typeof (keyVal) === 'string') {
2320
+ keyVal = keyVal.toLowerCase();
2321
+ }
2322
+ result[colId] = keyVal;
2323
+ }
2324
+ }
2325
+ return result;
2326
+ };
2327
+ //returns true if value1 == value2
2328
+ AggregationSettings.prototype.strictCompare = function (value1, value2) {
2329
+ return value1 === value2;
2330
+ };
2331
+ //makes a case insensative comparision of two values and return true if there are equal
2332
+ AggregationSettings.prototype.caseInsensitiveCompare = function (value1, value2) {
2333
+ var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
2334
+ var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
2335
+ return val1 === val2;
2336
+ };
2286
2337
  return AggregationSettings;
2287
2338
  }());
2288
2339
 
2289
- //# sourceMappingURL=aggr_calculator.js.map
2340
+ //# sourceMappingURL=aggr_settings.js.map
2290
2341
  // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/data/data_column.js
2291
2342
 
2292
2343
 
@@ -2314,6 +2365,7 @@ var data_column_DataColumn = /** @class */ (function () {
2314
2365
  this.groupFooterColumnTemplate = desc.gfct;
2315
2366
  this.style = desc.style || {};
2316
2367
  this.description = desc.description;
2368
+ this.calculatedWidth = 0;
2317
2369
  }
2318
2370
  return DataColumn;
2319
2371
  }());
@@ -2353,9 +2405,10 @@ var data_column_DataColumnList = /** @class */ (function () {
2353
2405
  .map(function (col, index) { return index; });
2354
2406
  };
2355
2407
  DataColumnList.prototype.put = function (index, col) {
2356
- //!!!!!!!!!check on "out of index"
2357
- this.items[index] = col;
2358
- this.updateDateColumnIdx();
2408
+ if (index >= 0 && index < this.count) {
2409
+ this.items[index] = col;
2410
+ this.updateDateColumnIdx();
2411
+ }
2359
2412
  };
2360
2413
  DataColumnList.prototype.move = function (col, newIndex) {
2361
2414
  var oldIndex = this.items.indexOf(col);
@@ -2365,8 +2418,12 @@ var data_column_DataColumnList = /** @class */ (function () {
2365
2418
  }
2366
2419
  };
2367
2420
  DataColumnList.prototype.get = function (index) {
2368
- //!!!!!!!!!check on "out of index"
2369
- return this.items[index];
2421
+ if (index >= 0 && index < this.count) {
2422
+ return this.items[index];
2423
+ }
2424
+ else {
2425
+ return null;
2426
+ }
2370
2427
  };
2371
2428
  DataColumnList.prototype.getIndex = function (id) {
2372
2429
  return this.mapper[id];
@@ -2450,16 +2507,23 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2450
2507
  function EasyDataTable(options) {
2451
2508
  this._chunkSize = 1000;
2452
2509
  this._elasticChunks = false;
2453
- // object keeps number keys sorted
2454
- this.chunkMap = {};
2510
+ this.cachedRows = [];
2455
2511
  this.total = 0;
2456
2512
  this.loader = null;
2457
2513
  this.needTotal = true;
2514
+ this.isInMemory = false;
2458
2515
  options = options || {};
2459
2516
  this._chunkSize = options.chunkSize || this._chunkSize;
2460
2517
  this._elasticChunks = options.elasticChunks || this._elasticChunks;
2461
2518
  this.loader = options.loader;
2519
+ if (typeof options.inMemory !== 'undefined') {
2520
+ this.isInMemory = options.inMemory;
2521
+ }
2522
+ if (this.isInMemory) {
2523
+ this.needTotal = false;
2524
+ }
2462
2525
  this._columns = new data_column_DataColumnList();
2526
+ this.onUpdate = options.onUpdate;
2463
2527
  if (options.columns) {
2464
2528
  for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {
2465
2529
  var colDesc = _a[_i];
@@ -2490,7 +2554,7 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2490
2554
  this._chunkSize = value;
2491
2555
  this.total = 0;
2492
2556
  this.needTotal = !this.elasticChunks;
2493
- this.chunkMap = {};
2557
+ this.cachedRows = [];
2494
2558
  },
2495
2559
  enumerable: true,
2496
2560
  configurable: true
@@ -2503,7 +2567,7 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2503
2567
  this._elasticChunks = value;
2504
2568
  this.total = 0;
2505
2569
  this.needTotal = !this.elasticChunks;
2506
- this.chunkMap = {};
2570
+ this.cachedRows = [];
2507
2571
  },
2508
2572
  enumerable: true,
2509
2573
  configurable: true
@@ -2531,22 +2595,12 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2531
2595
  endIndex = this.total;
2532
2596
  }
2533
2597
  }
2534
- var lbChunk = Math.trunc(fromIndex / this._chunkSize);
2535
- var ubChunk = Math.trunc((endIndex - 1) / this._chunkSize);
2536
- var allChunksCached = true;
2537
- for (var i = lbChunk; i <= ubChunk; i++) {
2538
- if (!this.chunkMap[i]) {
2539
- allChunksCached = false;
2540
- break;
2541
- }
2598
+ if (this.isInMemory && endIndex > this.cachedRows.length) {
2599
+ endIndex = this.cachedRows.length;
2542
2600
  }
2601
+ var allChunksCached = endIndex <= this.cachedRows.length;
2543
2602
  if (allChunksCached) {
2544
- var resultArr = [];
2545
- for (var i = lbChunk; i <= ubChunk; i++) {
2546
- resultArr = resultArr.concat(this.chunkMap[i].rows);
2547
- }
2548
- var firstChunkOffset = this.chunkMap[lbChunk].offset;
2549
- return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));
2603
+ return Promise.resolve(this.cachedRows.slice(fromIndex, endIndex));
2550
2604
  }
2551
2605
  //if loader is not defined
2552
2606
  if (!this.loader) {
@@ -2557,53 +2611,34 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2557
2611
  if (this.needTotal) {
2558
2612
  this.needTotal = false;
2559
2613
  }
2560
- var limit = this._chunkSize * (ubChunk - lbChunk + 1);
2561
- if (this.elasticChunks)
2562
- limit++;
2563
- return this.loader.loadChunk({
2564
- offset: lbChunk * this._chunkSize,
2614
+ var offset = this.cachedRows.length;
2615
+ var limit = endIndex - offset;
2616
+ if (limit < this._chunkSize) {
2617
+ limit = this._chunkSize;
2618
+ }
2619
+ var resultPromise = this.loader.loadChunk({
2620
+ offset: offset,
2565
2621
  limit: limit,
2566
2622
  needTotal: needTotal
2567
2623
  })
2568
2624
  .then(function (result) {
2569
- var chunks = result.table.getCachedChunks();
2570
2625
  if (needTotal) {
2571
2626
  _this.total = result.total;
2572
- if (endIndex > _this.total) {
2573
- endIndex = _this.total;
2574
- }
2575
2627
  }
2576
- var index = lbChunk;
2577
- for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {
2578
- var chunk = chunks_1[_i];
2579
- _this.chunkMap[index] = {
2580
- offset: index * _this._chunkSize,
2581
- rows: chunk.rows
2582
- };
2583
- index++;
2628
+ Array.prototype.push.apply(_this.cachedRows, result.table.getCachedRows());
2629
+ if (endIndex > _this.cachedRows.length) {
2630
+ endIndex = _this.cachedRows.length;
2584
2631
  }
2585
2632
  if (_this.elasticChunks) {
2586
2633
  var count_1 = result.table.getCachedCount();
2587
- if (count_1 > 0) {
2588
- var chunk = _this.chunkMap[index - 1];
2589
- if (count_1 === limit) {
2590
- chunk.rows.splice(chunk.rows.length - 1, 1);
2591
- if (chunk.rows.length == 0) {
2592
- delete _this.chunkMap[index - 1];
2593
- }
2594
- }
2595
- if (count_1 < limit) {
2596
- _this.total = _this.getCachedCount();
2597
- }
2634
+ if (count_1 < limit) {
2635
+ _this.total = _this.cachedRows.length;
2598
2636
  }
2599
2637
  }
2600
- var resultArr = [];
2601
- for (var i = lbChunk; i <= ubChunk; i++) {
2602
- resultArr = resultArr.concat(_this.chunkMap[i].rows);
2603
- }
2604
- var firstChunkOffset = _this.chunkMap[lbChunk].offset;
2605
- return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);
2638
+ _this.fireUpdated();
2639
+ return _this.cachedRows.slice(fromIndex, endIndex);
2606
2640
  });
2641
+ return resultPromise;
2607
2642
  };
2608
2643
  EasyDataTable.prototype.getRow = function (index) {
2609
2644
  return this.getRows({ offset: index, limit: 1 })
@@ -2615,14 +2650,13 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2615
2650
  EasyDataTable.prototype.setTotal = function (total) {
2616
2651
  this.total = total;
2617
2652
  this.needTotal = false;
2618
- this.chunkMap = {};
2619
2653
  };
2620
2654
  EasyDataTable.prototype.getCachedCount = function () {
2621
- return this.getCachedRows().length;
2655
+ return this.cachedRows.length;
2622
2656
  };
2623
2657
  EasyDataTable.prototype.clear = function () {
2624
2658
  this.columns.clear();
2625
- this.chunkMap = {};
2659
+ this.cachedRows = [];
2626
2660
  this.total = 0;
2627
2661
  this.needTotal = !this._elasticChunks;
2628
2662
  };
@@ -2655,60 +2689,33 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2655
2689
  }
2656
2690
  return null;
2657
2691
  };
2658
- EasyDataTable.prototype.addRow = function (rowOrValue) {
2692
+ EasyDataTable.prototype.addRow = function (rowOrValues) {
2659
2693
  var newRow;
2660
- if (Array.isArray(rowOrValue)) {
2694
+ if (Array.isArray(rowOrValues)) {
2695
+ var values = rowOrValues;
2661
2696
  var dateIdx = this._columns.getDateColumnIndexes();
2662
2697
  if (dateIdx.length > 0) {
2663
2698
  for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {
2664
2699
  var idx = dateIdx_1[_i];
2665
- if (rowOrValue[idx]) {
2666
- rowOrValue[idx] = this.mapDate(rowOrValue[idx], this._columns.get(idx).type);
2700
+ if (values[idx]) {
2701
+ values[idx] = this.mapDate(values[idx], this._columns.get(idx).type);
2667
2702
  }
2668
2703
  }
2669
2704
  }
2670
- newRow = new DataRow(this._columns, rowOrValue);
2705
+ newRow = new DataRow(this._columns, values);
2671
2706
  }
2672
2707
  else {
2673
- newRow = this.createRow(rowOrValue);
2708
+ newRow = this.createRow(rowOrValues);
2674
2709
  }
2675
- var lastChunk = this.getLastChunk();
2676
- if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {
2677
- lastChunk = this.createChunk();
2678
- }
2679
- lastChunk.rows.push(newRow);
2710
+ this.cachedRows.push(newRow);
2680
2711
  var cachedTotal = this.getCachedCount();
2681
2712
  if (cachedTotal > this.total) {
2682
2713
  this.total = cachedTotal;
2683
2714
  }
2684
2715
  return newRow;
2685
2716
  };
2686
- EasyDataTable.prototype.createChunk = function (index) {
2687
- if (typeof index == 'undefined') {
2688
- index = this.getLastChunkIndex() + 1;
2689
- }
2690
- var chunk = { offset: index * this._chunkSize, rows: [] };
2691
- this.chunkMap[index] = chunk;
2692
- return chunk;
2693
- };
2694
- EasyDataTable.prototype.getLastChunkIndex = function () {
2695
- var keys = Object.keys(this.chunkMap);
2696
- return keys.length > 0
2697
- ? parseInt(keys[keys.length - 1])
2698
- : -1;
2699
- };
2700
- EasyDataTable.prototype.getLastChunk = function () {
2701
- var index = this.getLastChunkIndex();
2702
- return index > -1
2703
- ? this.chunkMap[index]
2704
- : null;
2705
- };
2706
2717
  EasyDataTable.prototype.getCachedRows = function () {
2707
- return this.getCachedChunks()
2708
- .reduce(function (acc, v) { return acc.concat(v.rows); }, []);
2709
- };
2710
- EasyDataTable.prototype.getCachedChunks = function () {
2711
- return Object.values(this.chunkMap);
2718
+ return this.cachedRows;
2712
2719
  };
2713
2720
  EasyDataTable.prototype.totalIsKnown = function () {
2714
2721
  if (this.elasticChunks) {
@@ -2717,6 +2724,11 @@ var easy_data_table_EasyDataTable = /** @class */ (function () {
2717
2724
  }
2718
2725
  return !this.needTotal;
2719
2726
  };
2727
+ EasyDataTable.prototype.fireUpdated = function () {
2728
+ if (this.onUpdate) {
2729
+ this.onUpdate(this);
2730
+ }
2731
+ };
2720
2732
  return EasyDataTable;
2721
2733
  }());
2722
2734
 
@@ -2901,7 +2913,6 @@ i18n_i18n.resetLocales();
2901
2913
 
2902
2914
 
2903
2915
 
2904
- //data
2905
2916
 
2906
2917
 
2907
2918
 
@@ -2962,7 +2973,7 @@ __webpack_require__.d(__webpack_exports__, "r", function() { return /* reexport
2962
2973
  __webpack_require__.d(__webpack_exports__, "s", function() { return /* reexport */ slideUp; });
2963
2974
  __webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ DefaultDialogService; });
2964
2975
 
2965
- // UNUSED EXPORTS: GridColumnAlign, GridColumn, GridColumnList, DFMT_REGEX, CellRendererType, GridCellRendererStore, Calendar, DateTimePicker, DefaultCalendar, DefaultTimePicker, TimePicker, browserUtils, DomTextAreaElementBuilder, DomInputElementBuilder, DomSelectElementBuilder, EqDragEvent, DragManager, mask, wrapInner, getDocSize, eqCssPrefix, eqCssMobile, DefaultDialog, DefaultProgressDialog, DefaultDialogSet, DialogFooterAlignment, dialogs
2976
+ // UNUSED EXPORTS: AutoResizeColumns, GridColumnAlign, GridColumn, GridColumnList, DFMT_REGEX, CellRendererType, GridCellRendererStore, Calendar, DateTimePicker, DefaultCalendar, DefaultTimePicker, TimePicker, browserUtils, DomTextAreaElementBuilder, DomInputElementBuilder, DomSelectElementBuilder, EqDragEvent, DragManager, mask, wrapInner, getDocSize, eqCssPrefix, eqCssMobile, DefaultDialog, DefaultProgressDialog, DefaultDialogSet, DialogFooterAlignment, dialogs
2966
2977
 
2967
2978
  // EXTERNAL MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/core/dist/lib/public_api.js + 21 modules
2968
2979
  var public_api = __webpack_require__(0);
@@ -3309,6 +3320,13 @@ var __extends = (undefined && undefined.__extends) || (function () {
3309
3320
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
3310
3321
  };
3311
3322
  })();
3323
+ var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
3324
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
3325
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
3326
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
3327
+ r[k] = a[j];
3328
+ return r;
3329
+ };
3312
3330
 
3313
3331
  var DomElementBuilder = /** @class */ (function () {
3314
3332
  function DomElementBuilder(tag, parent) {
@@ -3379,7 +3397,7 @@ var DomElementBuilder = /** @class */ (function () {
3379
3397
  classNames[_i - 1] = arguments[_i];
3380
3398
  }
3381
3399
  if (className) {
3382
- var fullList = className.trim().split(" ").concat(classNames);
3400
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
3383
3401
  for (var i = 0; i < fullList.length; i++)
3384
3402
  this.element.classList.add(fullList[i]);
3385
3403
  }
@@ -3391,7 +3409,7 @@ var DomElementBuilder = /** @class */ (function () {
3391
3409
  classNames[_i - 1] = arguments[_i];
3392
3410
  }
3393
3411
  if (className) {
3394
- var fullList = className.trim().split(" ").concat(classNames);
3412
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
3395
3413
  for (var i = 0; i < fullList.length; i++)
3396
3414
  this.element.classList.remove(fullList[i]);
3397
3415
  }
@@ -3958,6 +3976,14 @@ var drag_manager_DragManager = /** @class */ (function () {
3958
3976
  //global variable
3959
3977
  var eqDragManager = new drag_manager_DragManager();
3960
3978
  //# sourceMappingURL=drag_manager.js.map
3979
+ // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_options.js
3980
+ var AutoResizeColumns;
3981
+ (function (AutoResizeColumns) {
3982
+ AutoResizeColumns[AutoResizeColumns["Always"] = 0] = "Always";
3983
+ AutoResizeColumns[AutoResizeColumns["Once"] = 1] = "Once";
3984
+ AutoResizeColumns[AutoResizeColumns["Never"] = 2] = "Never";
3985
+ })(AutoResizeColumns || (AutoResizeColumns = {}));
3986
+ //# sourceMappingURL=easy_grid_options.js.map
3961
3987
  // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_cell_renderer.js
3962
3988
 
3963
3989
 
@@ -4109,13 +4135,7 @@ var easy_grid_cell_renderer_GridCellRendererStore = /** @class */ (function () {
4109
4135
  // CONCATENATED MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_columns.js
4110
4136
 
4111
4137
 
4112
- var DEFAULT_WIDTH = 150;
4113
- var DEFAULT_WIDTH_NUMBER = 120;
4114
- var DEFAULT_WIDTH_DATE = 200;
4115
- var DEFAULT_WIDTH_BOOL = 80;
4116
4138
  var DEFAULT_WIDTH_STRING = 250;
4117
- var MIN_WIDTH_STRING = 100;
4118
- var MAX_WIDTH_STRING = 500;
4119
4139
  var ROW_NUM_WIDTH = 60;
4120
4140
  var GridColumnAlign;
4121
4141
  (function (GridColumnAlign) {
@@ -4147,31 +4167,18 @@ var easy_grid_columns_GridColumn = /** @class */ (function () {
4147
4167
  this.isRowNum = false;
4148
4168
  this.dataColumn = column;
4149
4169
  this.grid = grid;
4170
+ var widthOptions = grid.options.columnWidths || {};
4150
4171
  if (column) {
4151
4172
  if (column.style.alignment) {
4152
4173
  this.align = MapAlignment(column.style.alignment);
4153
4174
  }
4154
- var coltype = column.type;
4155
- var cellType = this.grid.cellRendererStore.getCellType(coltype);
4156
- switch (cellType) {
4157
- case CellRendererType.NUMBER:
4158
- this.width = DEFAULT_WIDTH_NUMBER;
4159
- break;
4160
- case CellRendererType.DATETIME:
4161
- this.width = DEFAULT_WIDTH_DATE;
4162
- break;
4163
- case CellRendererType.BOOL:
4164
- this.width = DEFAULT_WIDTH_BOOL;
4165
- break;
4166
- default:
4167
- this.width = DEFAULT_WIDTH_STRING;
4168
- }
4175
+ this.width = (widthOptions && widthOptions[this.type]) ? widthOptions[this.type].default : DEFAULT_WIDTH_STRING;
4169
4176
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);
4170
4177
  this._description = column.description;
4171
4178
  }
4172
4179
  else if (isRowNum) {
4173
4180
  this.isRowNum = true;
4174
- this.width = ROW_NUM_WIDTH;
4181
+ this.width = (widthOptions && widthOptions.rowNumColumn) ? widthOptions.rowNumColumn.default : ROW_NUM_WIDTH;
4175
4182
  this._label = '';
4176
4183
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(CellRendererType.NUMBER);
4177
4184
  }
@@ -4217,9 +4224,10 @@ var easy_grid_columns_GridColumnList = /** @class */ (function () {
4217
4224
  GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {
4218
4225
  if (hasRowNumCol === void 0) { hasRowNumCol = true; }
4219
4226
  this.clear();
4220
- if (hasRowNumCol) {
4221
- var rowNumCol = new easy_grid_columns_GridColumn(null, this.grid, true);
4222
- this.add(rowNumCol);
4227
+ var rowNumCol = new easy_grid_columns_GridColumn(null, this.grid, true);
4228
+ this.add(rowNumCol);
4229
+ if (!hasRowNumCol) {
4230
+ rowNumCol.isVisible = false;
4223
4231
  }
4224
4232
  if (columnList) {
4225
4233
  for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {
@@ -4293,6 +4301,14 @@ var __assign = (undefined && undefined.__assign) || function () {
4293
4301
  };
4294
4302
  return __assign.apply(this, arguments);
4295
4303
  };
4304
+ var easy_grid_spreadArrays = (undefined && undefined.__spreadArrays) || function () {
4305
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4306
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
4307
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
4308
+ r[k] = a[j];
4309
+ return r;
4310
+ };
4311
+
4296
4312
 
4297
4313
 
4298
4314
 
@@ -4325,6 +4341,35 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4325
4341
  pageSize: 30,
4326
4342
  pageSizeItems: [20, 30, 50, 100, 200]
4327
4343
  },
4344
+ columnWidths: {
4345
+ autoResize: AutoResizeColumns.Once,
4346
+ stringColumns: {
4347
+ min: 100,
4348
+ max: 500,
4349
+ default: 250
4350
+ },
4351
+ numberColumns: {
4352
+ min: 60,
4353
+ default: 120
4354
+ },
4355
+ boolColumns: {
4356
+ min: 50,
4357
+ default: 80
4358
+ },
4359
+ dateColumns: {
4360
+ min: 80,
4361
+ default: 200
4362
+ },
4363
+ otherColumns: {
4364
+ min: 100,
4365
+ max: 500,
4366
+ default: 250
4367
+ },
4368
+ rowNumColumn: {
4369
+ min: 40,
4370
+ default: 60
4371
+ }
4372
+ },
4328
4373
  addColumns: false,
4329
4374
  viewportRowsCount: null,
4330
4375
  showActiveRow: true
@@ -4332,7 +4377,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4332
4377
  this.rowsOnPagePromise = null;
4333
4378
  this.containerInitialHeight = 0;
4334
4379
  this.firstRender = true;
4335
- this.compareValues = this.strictCompare;
4336
4380
  this.prevRowTotals = null;
4337
4381
  this.landingIndex = -1;
4338
4382
  this.landingSlot = domel('div')
@@ -4344,7 +4388,8 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4344
4388
  if (options && options.paging) {
4345
4389
  options.paging = public_api["i" /* utils */].assign(this.defaultDataGridOptions.paging, options.paging);
4346
4390
  }
4347
- this.options = __assign({}, this.defaultDataGridOptions, options);
4391
+ this.options = this.mergeOptions(options);
4392
+ this.processColumnWidthsOptions();
4348
4393
  if (!this.options.slot)
4349
4394
  throw Error('"slot" parameter is required to initialize EasyDataGrid');
4350
4395
  if (!this.options.dataTable)
@@ -4356,6 +4401,42 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4356
4401
  this.setSlot(this.options.slot);
4357
4402
  this.init(this.options);
4358
4403
  }
4404
+ EasyGrid.prototype.mergeOptions = function (options) {
4405
+ var colWidthOptions = public_api["i" /* utils */].assignDeep({}, this.defaultDataGridOptions.columnWidths, options.columnWidths);
4406
+ var pagingOptions = public_api["i" /* utils */].assignDeep({}, this.defaultDataGridOptions.paging, options.paging);
4407
+ var result = public_api["i" /* utils */].assign({}, this.defaultDataGridOptions, options);
4408
+ result.columnWidths = colWidthOptions;
4409
+ result.paging = pagingOptions;
4410
+ return result;
4411
+ };
4412
+ EasyGrid.prototype.processColumnWidthsOptions = function () {
4413
+ var widthOptions = this.options.columnWidths;
4414
+ if (!widthOptions)
4415
+ return;
4416
+ //string columns
4417
+ public_api["i" /* utils */].getStringDataTypes().forEach(function (dataType) {
4418
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.stringColumns), widthOptions[dataType]);
4419
+ });
4420
+ //numeric columns
4421
+ public_api["i" /* utils */].getNumericDataTypes().forEach(function (dataType) {
4422
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.numberColumns), widthOptions[dataType]);
4423
+ });
4424
+ //bool columns
4425
+ widthOptions[public_api["d" /* DataType */].Bool] = __assign(__assign({}, widthOptions.boolColumns), widthOptions[public_api["d" /* DataType */].Bool]);
4426
+ //date columns
4427
+ public_api["i" /* utils */].getDateDataTypes().forEach(function (dataType) {
4428
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.dateColumns), widthOptions[dataType]);
4429
+ });
4430
+ //other columns
4431
+ var knownTypes = easy_grid_spreadArrays(public_api["i" /* utils */].getStringDataTypes(), public_api["i" /* utils */].getNumericDataTypes(), public_api["i" /* utils */].getDateDataTypes(), [
4432
+ public_api["d" /* DataType */].Bool
4433
+ ]);
4434
+ public_api["i" /* utils */].getAllDataTypes().forEach(function (dataType) {
4435
+ if (!(dataType in knownTypes)) {
4436
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.otherColumns), widthOptions[dataType]);
4437
+ }
4438
+ });
4439
+ };
4359
4440
  EasyGrid.prototype.setSlot = function (slot) {
4360
4441
  if (typeof slot === 'string') {
4361
4442
  if (slot.length) {
@@ -4492,18 +4573,27 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4492
4573
  gridContainer.classList.add(this.cssPrefix + "-container");
4493
4574
  gridContainer.appendChild(this.rootDiv);
4494
4575
  this.slot.appendChild(gridContainer);
4576
+ var needAutoResize = this.options.columnWidths.autoResize !== AutoResizeColumns.Never;
4495
4577
  if (this.rowsOnPagePromise) {
4496
4578
  this.rowsOnPagePromise
4497
4579
  .then(function () { return _this.updateHeight(); })
4498
4580
  .then(function () {
4499
4581
  _this.firstRender = false;
4500
4582
  _this.rowsOnPagePromise = null;
4583
+ if (needAutoResize) {
4584
+ _this.resizeColumns();
4585
+ }
4501
4586
  });
4502
4587
  }
4503
4588
  else {
4504
4589
  setTimeout(function () {
4505
- _this.updateHeight();
4506
- _this.firstRender = false;
4590
+ _this.updateHeight()
4591
+ .then(function () {
4592
+ _this.firstRender = false;
4593
+ if (needAutoResize) {
4594
+ _this.resizeColumns();
4595
+ }
4596
+ });
4507
4597
  }, 100);
4508
4598
  }
4509
4599
  };
@@ -4582,7 +4672,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4582
4672
  var _this = this;
4583
4673
  var colBuilder = domel('div')
4584
4674
  .addClass(this.cssPrefix + "-header-cell")
4585
- .data('col-idx', "" + (index + 1))
4675
+ .data('col-idx', "" + index)
4586
4676
  .setStyle('width', column.width + "px");
4587
4677
  if (column.dataColumn) {
4588
4678
  colBuilder
@@ -4620,14 +4710,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4620
4710
  }
4621
4711
  return colDiv;
4622
4712
  };
4623
- EasyGrid.prototype.strictCompare = function (value1, value2) {
4624
- return value1 !== value2;
4625
- };
4626
- EasyGrid.prototype.caseInsensitiveCompare = function (value1, value2) {
4627
- var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
4628
- var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
4629
- return val1 !== val2;
4630
- };
4631
4713
  EasyGrid.prototype.renderBody = function () {
4632
4714
  var _this = this;
4633
4715
  this.bodyDiv = domel('div')
@@ -4641,10 +4723,6 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4641
4723
  .addClass(this.cssPrefix + "-cell-container")
4642
4724
  .toDOM();
4643
4725
  var showAggrs = this.canShowAggregates();
4644
- this.compareValues = this.caseInsensitiveCompare;
4645
- if (showAggrs && this.options.aggregates.settings.caseSensitiveGroups) {
4646
- this.compareValues = this.strictCompare;
4647
- }
4648
4726
  if (this.dataTable) {
4649
4727
  this.showProgress();
4650
4728
  this.rowsOnPagePromise = this.getRowsToRender()
@@ -4654,15 +4732,22 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4654
4732
  //prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)
4655
4733
  _this.bodyCellContainerDiv.innerHTML = '';
4656
4734
  _this.prevRowTotals = null;
4735
+ var rowsToRender = 0;
4657
4736
  if (rows.length) {
4658
4737
  var groups_1 = showAggrs
4659
4738
  ? _this.options.aggregates.settings.getGroups()
4660
4739
  : [];
4740
+ rowsToRender = (rows.length < _this.pagination.pageSize)
4741
+ ? rows.length
4742
+ : _this.pagination.pageSize;
4661
4743
  rows.forEach(function (row, index) {
4662
4744
  if (showAggrs)
4663
4745
  _this.updateTotalsState(groups_1, row);
4664
- var tr = _this.renderRow(row, index);
4665
- _this.bodyCellContainerDiv.appendChild(tr);
4746
+ //we don't actually render the last row
4747
+ if (index < rowsToRender) {
4748
+ var tr = _this.renderRow(row, index);
4749
+ _this.bodyCellContainerDiv.appendChild(tr);
4750
+ }
4666
4751
  });
4667
4752
  var showGrandTotalsOnEachPage = _this.options.aggregates && _this.options.aggregates.showGrandTotalsOnEachPage;
4668
4753
  if (showAggrs && (_this.isLastPage() || showGrandTotalsOnEachPage)) {
@@ -4673,7 +4758,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4673
4758
  var containerWidth = _this.getContainerWidth();
4674
4759
  domel(_this.bodyCellContainerDiv)
4675
4760
  .setStyle('width', containerWidth + "px");
4676
- return rows.length;
4761
+ return rowsToRender;
4677
4762
  })
4678
4763
  .catch(function (error) { console.error(error); return 0; });
4679
4764
  }
@@ -4681,7 +4766,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4681
4766
  domel(_this.headerViewportDiv)
4682
4767
  .setStyle('margin-left', "-" + _this.bodyViewportDiv.scrollLeft + "px");
4683
4768
  });
4684
- this.bodyViewportDiv.addEventListener('keydown', this.onVieportKeydown.bind(this));
4769
+ this.bodyViewportDiv.addEventListener('keydown', this.onViewportKeydown.bind(this));
4685
4770
  };
4686
4771
  EasyGrid.prototype.isLastPage = function () {
4687
4772
  if (this.dataTable.elasticChunks) {
@@ -4707,7 +4792,7 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4707
4792
  var group = groups[level - 1];
4708
4793
  for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
4709
4794
  var col = _a[_i];
4710
- if (this.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
4795
+ if (!aggrSettings.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
4711
4796
  changeLevel = level;
4712
4797
  break;
4713
4798
  }
@@ -4768,8 +4853,8 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4768
4853
  });
4769
4854
  var aggrContainer = this.options.aggregates.calculator.getAggrContainer();
4770
4855
  var aggrCols = aggrSettings.getAggregates().map(function (c) { return c.colId; });
4771
- var key = this.buildGroupKey(group, row);
4772
- aggrContainer.getAggregates(level, key)
4856
+ var key = aggrSettings.buildGroupKey(group, row);
4857
+ aggrContainer.getAggregateData(level, key)
4773
4858
  .then(function (values) {
4774
4859
  for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
4775
4860
  var aggrColId = aggrCols_1[_i];
@@ -4810,34 +4895,20 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4810
4895
  }
4811
4896
  }
4812
4897
  if (groupFooterTemplate) {
4813
- var cellDiv_1 = _this.renderCell(column, colIndex, val, rowElement);
4898
+ var cellDiv_1 = _this.renderCell(column, index, val, rowElement);
4814
4899
  var innerCell = cellDiv_1.firstChild;
4815
4900
  val = innerCell.innerHTML;
4816
4901
  val = _this.applyGroupColumnTemplate(groupFooterTemplate, val, values[aggrSettings.COUNT_FIELD_NAME]);
4817
4902
  }
4818
4903
  }
4819
- var cellDiv = _this.renderCell(column, colIndex, val, rowElement);
4904
+ var cellDiv = _this.renderCell(column, index, val, rowElement);
4820
4905
  rowElement.appendChild(cellDiv);
4821
4906
  });
4822
4907
  })
4823
4908
  .catch(function (error) { return console.error(error); });
4824
4909
  return rowElement;
4825
4910
  };
4826
- EasyGrid.prototype.buildGroupKey = function (group, row) {
4827
- var aggrSettings = this.options.aggregates.settings;
4828
- var caseInsensitive = aggrSettings && !aggrSettings.caseSensitiveGroups;
4829
- var result = {};
4830
- for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
4831
- var colId = _a[_i];
4832
- var keyVal = row.getValue(colId);
4833
- if (caseInsensitive && typeof (keyVal) === 'string') {
4834
- keyVal = keyVal.toLowerCase();
4835
- }
4836
- result[colId] = keyVal;
4837
- }
4838
- return result;
4839
- };
4840
- EasyGrid.prototype.onVieportKeydown = function (ev) {
4911
+ EasyGrid.prototype.onViewportKeydown = function (ev) {
4841
4912
  if (this.options.showActiveRow) {
4842
4913
  var rowCount = this.bodyCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-row").length;
4843
4914
  var newValue = void 0;
@@ -4891,13 +4962,17 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4891
4962
  }
4892
4963
  }
4893
4964
  };
4965
+ /** Returns a promise with the list of the rows to render on one page.
4966
+ * The list contains pageSize+1 row to make it possible
4967
+ * to render the totals row (if it appears to be on the edge between pages)
4968
+ */
4894
4969
  EasyGrid.prototype.getRowsToRender = function () {
4895
4970
  if (this.options.paging.enabled === false) {
4896
4971
  return Promise.resolve(this.dataTable.getCachedRows());
4897
4972
  }
4898
4973
  return this.dataTable.getRows({
4899
- page: this.pagination.page,
4900
- pageSize: this.pagination.pageSize
4974
+ offset: (this.pagination.page - 1) * this.pagination.pageSize,
4975
+ limit: this.pagination.pageSize + 1
4901
4976
  })
4902
4977
  .catch(function (error) {
4903
4978
  console.error(error);
@@ -4993,13 +5068,13 @@ var easy_grid_EasyGrid = /** @class */ (function () {
4993
5068
  if (this.options.showActiveRow && index == this.activeRowIndex) {
4994
5069
  rowBuilder.addClass(this.cssPrefix + "-row-active");
4995
5070
  }
4996
- this.columns.getItems().forEach(function (column) {
5071
+ this.columns.getItems().forEach(function (column, index) {
4997
5072
  if (!column.isVisible) {
4998
5073
  return;
4999
5074
  }
5000
5075
  var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);
5001
5076
  var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);
5002
- rowElement.appendChild(_this.renderCell(column, colindex, val, rowElement));
5077
+ rowElement.appendChild(_this.renderCell(column, index, val, rowElement));
5003
5078
  });
5004
5079
  return rowElement;
5005
5080
  };
@@ -5271,6 +5346,97 @@ var easy_grid_EasyGrid = /** @class */ (function () {
5271
5346
  EasyGrid.prototype.focus = function () {
5272
5347
  this.bodyViewportDiv.focus();
5273
5348
  };
5349
+ EasyGrid.prototype.resizeColumns = function () {
5350
+ if (this.options.columnWidths.autoResize === AutoResizeColumns.Never)
5351
+ return;
5352
+ var containerWidth = this.bodyCellContainerDiv.style.width;
5353
+ this.bodyCellContainerDiv.style.visibility = 'hidden';
5354
+ this.bodyCellContainerDiv.style.width = '1px';
5355
+ //this.headerRowDiv.style.visibility = 'hidden';
5356
+ this.headerRowDiv.style.width = '1px';
5357
+ var sumWidth = 0;
5358
+ var columns = this.columns.getItems();
5359
+ var headerCells = this.headerCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-header-cell");
5360
+ var headerIdx = 0;
5361
+ var _loop_1 = function (idx) {
5362
+ var column = columns[idx];
5363
+ if (!column.isVisible)
5364
+ return "continue";
5365
+ var calculatedWidth = this_1.options.columnWidths.autoResize !== AutoResizeColumns.Always && column.dataColumn
5366
+ ? column.dataColumn.calculatedWidth
5367
+ : 0;
5368
+ var cellValues = this_1.bodyCellContainerDiv.querySelectorAll("." + this_1.cssPrefix + "-cell[data-col-idx=\"" + idx + "\"] > ." + this_1.cssPrefix + "-cell-value");
5369
+ var maxWidth = 0;
5370
+ if (calculatedWidth > 0) {
5371
+ sumWidth += calculatedWidth;
5372
+ column.width = calculatedWidth;
5373
+ cellValues.forEach(function (value) {
5374
+ value.parentElement.style.width = calculatedWidth + "px";
5375
+ });
5376
+ headerCells[headerIdx].style.width = calculatedWidth + "px";
5377
+ }
5378
+ else {
5379
+ if (cellValues.length == 0) {
5380
+ headerCells[headerIdx].style.width = null;
5381
+ headerCells[headerIdx].style.whiteSpace = 'nowrap';
5382
+ }
5383
+ maxWidth = headerCells[headerIdx].offsetWidth;
5384
+ if (cellValues.length > 0) {
5385
+ cellValues.forEach(function (value) {
5386
+ value.parentElement.style.width = null;
5387
+ var width = value.parentElement.offsetWidth;
5388
+ if (width > maxWidth) {
5389
+ maxWidth = width;
5390
+ }
5391
+ });
5392
+ maxWidth += 3;
5393
+ var maxOption = column.isRowNum
5394
+ ? this_1.options.columnWidths.rowNumColumn.max || 500
5395
+ : this_1.options.columnWidths[column.dataColumn.type].max || 2000;
5396
+ var minOption = column.isRowNum
5397
+ ? this_1.options.columnWidths.rowNumColumn.min || 0
5398
+ : this_1.options.columnWidths[column.dataColumn.type].min || 20;
5399
+ if (maxWidth > maxOption) {
5400
+ maxWidth = maxOption;
5401
+ }
5402
+ if (maxWidth < minOption) {
5403
+ maxWidth = minOption;
5404
+ }
5405
+ if (public_api["i" /* utils */].isNumericType(column.type)) {
5406
+ //increase the calculated width in 1.3 times for numeric columns
5407
+ maxWidth = Math.round(maxWidth * 1.3);
5408
+ }
5409
+ sumWidth += maxWidth;
5410
+ column.width = maxWidth;
5411
+ cellValues.forEach(function (value) {
5412
+ value.parentElement.style.width = maxWidth + "px";
5413
+ });
5414
+ headerCells[headerIdx].style.width = maxWidth + "px";
5415
+ if (column.dataColumn) {
5416
+ column.dataColumn.calculatedWidth = maxWidth;
5417
+ }
5418
+ }
5419
+ else {
5420
+ sumWidth += maxWidth;
5421
+ }
5422
+ }
5423
+ headerIdx++;
5424
+ };
5425
+ var this_1 = this;
5426
+ for (var idx = 0; idx < this.columns.count; idx++) {
5427
+ _loop_1(idx);
5428
+ }
5429
+ if (sumWidth > 0) {
5430
+ this.bodyCellContainerDiv.style.width = sumWidth + "px";
5431
+ this.headerCellContainerDiv.style.width = sumWidth + "px";
5432
+ }
5433
+ else {
5434
+ this.bodyCellContainerDiv.style.width = containerWidth;
5435
+ this.headerCellContainerDiv.style.width = containerWidth;
5436
+ }
5437
+ this.bodyCellContainerDiv.style.visibility = null;
5438
+ this.headerRowDiv.removeAttribute('style');
5439
+ };
5274
5440
  return EasyGrid;
5275
5441
  }());
5276
5442
 
@@ -6457,6 +6623,7 @@ addEasyDataUITexts();
6457
6623
 
6458
6624
 
6459
6625
 
6626
+
6460
6627
  //datetimepicker
6461
6628
 
6462
6629
 
@@ -6773,7 +6940,7 @@ var public_api = __webpack_require__(0);
6773
6940
  // EXTERNAL MODULE: external "easyqueryCore"
6774
6941
  var external_easyqueryCore_ = __webpack_require__(2);
6775
6942
 
6776
- // EXTERNAL MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/public_api.js + 16 modules
6943
+ // EXTERNAL MODULE: c:/azuredevops-agents/korzhdev/_work/1/s/easydata/easydata.js/packs/ui/dist/lib/public_api.js + 17 modules
6777
6944
  var lib_public_api = __webpack_require__(1);
6778
6945
 
6779
6946
  // EXTERNAL MODULE: ./src/utils/utils.ts
@@ -8730,6 +8897,13 @@ var DisplayFormatParser = /** @class */ (function () {
8730
8897
 
8731
8898
 
8732
8899
  // CONCATENATED MODULE: ./src/widgets/renderers/columnspanel/column_renderer_cp.ts
8900
+ var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
8901
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
8902
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
8903
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
8904
+ r[k] = a[j];
8905
+ return r;
8906
+ };
8733
8907
 
8734
8908
 
8735
8909
 
@@ -9128,7 +9302,7 @@ var column_renderer_cp_ColumnRendererCP = /** @class */ (function () {
9128
9302
  };
9129
9303
  ColumnRendererCP.prototype.renderColumnTypeButton = function () {
9130
9304
  var _this = this;
9131
- return (this.isEditable() && this.panel.options.allowAggrColumns !== false && !this.column.getQuery().enableAggregation)
9305
+ return (this.isEditable() && this.panel.options.allowAggrColumns !== false)
9132
9306
  ? Object(lib_public_api["i" /* domel */])('div')
9133
9307
  .addClass(utils["b" /* eqCssPrefix */] + "-button-placeholder", this.cssPrefix + "-button-placeholder", this.cssPrefix + "-typebutton-placeholder", this.cssPrefix + "-button-active")
9134
9308
  .data("btnplaceholder", "")
@@ -9470,7 +9644,7 @@ var column_renderer_cp_ColumnRendererCP = /** @class */ (function () {
9470
9644
  text: ' ',
9471
9645
  items: common
9472
9646
  });
9473
- var sortItems = this.panel.options.allowSorting ? this.panel.getSortMenuList().concat(this.panel.getMoveMenuList()) :
9647
+ var sortItems = this.panel.options.allowSorting ? __spreadArrays(this.panel.getSortMenuList(), this.panel.getMoveMenuList()) :
9474
9648
  this.panel.getMoveMenuList();
9475
9649
  items.push({
9476
9650
  id: '__group',
@@ -9479,7 +9653,7 @@ var column_renderer_cp_ColumnRendererCP = /** @class */ (function () {
9479
9653
  });
9480
9654
  var extra = this.getExtraButtonMenuItems();
9481
9655
  if (extra && Array.isArray(extra)) {
9482
- items = items.concat(extra);
9656
+ items = __spreadArrays(items, extra);
9483
9657
  }
9484
9658
  var formatItems = this.getFormatsMenuItems();
9485
9659
  if (formatItems.length > 1) {
@@ -10493,11 +10667,12 @@ var columns_panel_ColumnsPanel = /** @class */ (function (_super) {
10493
10667
  this.columnsBlock.appendChild(this.renderColumn(column));
10494
10668
  }
10495
10669
  }
10496
- catch (e) {
10670
+ catch (err) {
10671
+ var error = err;
10497
10672
  this.context.throwError({
10498
10673
  action: "ColumnsPanel rendering",
10499
- text: e.message,
10500
- sourceError: e
10674
+ text: error.message,
10675
+ sourceError: error
10501
10676
  });
10502
10677
  }
10503
10678
  };
@@ -11218,8 +11393,7 @@ var column_renderer_cb_ColumnRendererCB = /** @class */ (function () {
11218
11393
  };
11219
11394
  ColumnRendererCB.prototype.renderColumnTypeButton = function () {
11220
11395
  var _this = this;
11221
- if (!this.isEditable() || this.bar.options.allowAggrColumns === false
11222
- || this.column.getQuery().enableAggregation) {
11396
+ if (!this.isEditable() || this.bar.options.allowAggrColumns === false) {
11223
11397
  return null;
11224
11398
  }
11225
11399
  return Object(lib_public_api["i" /* domel */])('div')
@@ -15280,11 +15454,12 @@ var query_panel_QueryPanel = /** @class */ (function (_super) {
15280
15454
  addrowRenderer.render();
15281
15455
  }
15282
15456
  }
15283
- catch (e) {
15457
+ catch (err) {
15458
+ var error = err;
15284
15459
  this.context.throwError({
15285
15460
  action: "QueryPanel rendering",
15286
- text: e.message,
15287
- sourceError: e
15461
+ text: error.message,
15462
+ sourceError: error
15288
15463
  });
15289
15464
  }
15290
15465
  };
@@ -16225,7 +16400,7 @@ var easy_grid_widget_EasyGridWidget = /** @class */ (function (_super) {
16225
16400
  EasyGridWidget.prototype.init = function (context, options) {
16226
16401
  var _this = this;
16227
16402
  _super.prototype.init.call(this, context, options);
16228
- var gridOptions = __assign({}, options, { slot: this.slot, dataTable: context.resultTable });
16403
+ var gridOptions = __assign(__assign({}, options), { slot: this.slot, dataTable: context.resultTable });
16229
16404
  this.options = public_api["i" /* utils */].assign(this.options, options);
16230
16405
  gridOptions.onAddColumnClick = function (ev) { return _this.addColumnClickHandler(ev); };
16231
16406
  gridOptions.onColumnMoved = function (ev) { return _this.columnMovedHandler(ev); };
@@ -16753,10 +16928,11 @@ var export_dialog_ExportDialog = /** @class */ (function () {
16753
16928
 
16754
16929
  // CONCATENATED MODULE: ./src/facets/result_facet.ts
16755
16930
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
16931
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16756
16932
  return new (P || (P = Promise))(function (resolve, reject) {
16757
16933
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16758
16934
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16759
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
16935
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16760
16936
  step((generator = generator.apply(thisArg, _arguments || [])).next());
16761
16937
  });
16762
16938
  };
@@ -16802,7 +16978,7 @@ var result_facet_ResultFacet = /** @class */ (function () {
16802
16978
  this.downloadAllClickHandler = function () {
16803
16979
  var resultTable = _this.getContext().resultTable;
16804
16980
  if (!resultTable.elasticChunks) {
16805
- var chunksToLoad = _this.getChunksForLoading();
16981
+ var nextChunkStart_1 = resultTable.getCachedRows().length;
16806
16982
  var recordsToLoad_1 = resultTable.getTotal() - resultTable.getCachedCount();
16807
16983
  var ds = _this.getDialogService();
16808
16984
  var dlg_1 = ds.openProgress({
@@ -16814,27 +16990,21 @@ var result_facet_ResultFacet = /** @class */ (function () {
16814
16990
  determinated: true
16815
16991
  });
16816
16992
  var loadedRecords_1 = 0;
16817
- var _loop_1 = function (chunk) {
16818
- setTimeout(function () {
16819
- resultTable.getRows({ offset: chunk.offset, limit: resultTable.chunkSize })
16820
- .then(function (_) {
16821
- loadedRecords_1 += _.length;
16822
- var progress = loadedRecords_1 / recordsToLoad_1;
16823
- dlg_1.updateContent(public_api["g" /* i18n */].getText('Facets', 'LoadDataDlgContent')
16824
- .replace('{loadedRecs}', "" + loadedRecords_1)
16825
- .replace('{totalRecs}', "" + recordsToLoad_1));
16826
- dlg_1.updateProgress(progress);
16827
- })
16828
- .catch(function (error) {
16829
- dlg_1.submit();
16830
- _this.getContext().throwError(error);
16831
- });
16832
- }, 10);
16833
- };
16834
- for (var _i = 0, chunksToLoad_1 = chunksToLoad; _i < chunksToLoad_1.length; _i++) {
16835
- var chunk = chunksToLoad_1[_i];
16836
- _loop_1(chunk);
16837
- }
16993
+ setTimeout(function () {
16994
+ resultTable.getRows({ offset: nextChunkStart_1, limit: recordsToLoad_1 })
16995
+ .then(function (_) {
16996
+ loadedRecords_1 += _.length;
16997
+ var progress = loadedRecords_1 / recordsToLoad_1;
16998
+ dlg_1.updateContent(public_api["g" /* i18n */].getText('Facets', 'LoadDataDlgContent')
16999
+ .replace('{loadedRecs}', "" + loadedRecords_1)
17000
+ .replace('{totalRecs}', "" + recordsToLoad_1));
17001
+ dlg_1.updateProgress(progress);
17002
+ })
17003
+ .catch(function (error) {
17004
+ dlg_1.submit();
17005
+ _this.getContext().throwError(error);
17006
+ });
17007
+ }, 10);
16838
17008
  }
16839
17009
  else {
16840
17010
  var ds = _this.getDialogService();
@@ -16978,14 +17148,13 @@ var result_facet_ResultFacet = /** @class */ (function () {
16978
17148
  };
16979
17149
  ResultFacet.prototype.loadElasticChunk = function () {
16980
17150
  return __awaiter(this, void 0, void 0, function () {
16981
- var resultTable, chunks, lastChunk;
17151
+ var resultTable, nextChunkStart;
16982
17152
  var _this = this;
16983
17153
  return __generator(this, function (_a) {
16984
17154
  resultTable = this.getContext().resultTable;
16985
- chunks = resultTable.getCachedChunks();
16986
- lastChunk = chunks[chunks.length - 1];
17155
+ nextChunkStart = resultTable.getCachedRows().length;
16987
17156
  //next chunk
16988
- return [2 /*return*/, resultTable.getRows({ offset: lastChunk.offset + resultTable.chunkSize, limit: resultTable.chunkSize })
17157
+ return [2 /*return*/, resultTable.getRows({ offset: nextChunkStart, limit: resultTable.chunkSize })
16989
17158
  .then(function (_) {
16990
17159
  return resultTable.totalIsKnown()
16991
17160
  ? Promise.resolve()
@@ -16994,33 +17163,6 @@ var result_facet_ResultFacet = /** @class */ (function () {
16994
17163
  });
16995
17164
  });
16996
17165
  };
16997
- ResultFacet.prototype.getChunksForLoading = function () {
16998
- var resultTable = this.getContext().resultTable;
16999
- var chunkSize = resultTable.chunkSize;
17000
- var cachedChunks = resultTable.getCachedChunks();
17001
- var chunksToLoad = [];
17002
- if (cachedChunks[0].offset != 0) {
17003
- chunksToLoad.push({ offset: 0 });
17004
- }
17005
- for (var i = 1; i < cachedChunks.length; i++) {
17006
- var diffOffset = cachedChunks[i].offset - cachedChunks[i - 1].offset - chunkSize;
17007
- if (diffOffset >= chunkSize) {
17008
- var numbOfChunks = diffOffset / chunkSize;
17009
- for (var j = 1; j <= numbOfChunks; j++) {
17010
- chunksToLoad.push({ offset: cachedChunks[i - 1].offset + j * chunkSize });
17011
- }
17012
- }
17013
- }
17014
- var lastChunk = cachedChunks[cachedChunks.length - 1];
17015
- var diff = resultTable.getTotal() - lastChunk.offset;
17016
- if (diff >= chunkSize) {
17017
- var numbOfChunks = diff / chunkSize;
17018
- for (var j = 1; j <= numbOfChunks; j++) {
17019
- chunksToLoad.push({ offset: lastChunk.offset + j * chunkSize });
17020
- }
17021
- }
17022
- return chunksToLoad;
17023
- };
17024
17166
  ResultFacet.prototype.onResize = function () {
17025
17167
  };
17026
17168
  return ResultFacet;