@easydata/crud 1.4.0-beta01 → 1.4.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 (33) hide show
  1. package/dist/browser/easydata.css +1 -1
  2. package/dist/browser/easydata.css.map +1 -1
  3. package/dist/browser/easydata.js +735 -545
  4. package/dist/browser/easydata.js.map +1 -1
  5. package/dist/browser/easydata.min.css +1 -1
  6. package/dist/browser/easydata.min.js +1 -1
  7. package/dist/browser/easydata.min.js.LICENSE.txt +0 -2
  8. package/dist/browser/easydata.min.js.map +1 -1
  9. package/dist/bundles/easydata.crud.js +449 -270
  10. package/dist/bundles/easydata.crud.js.map +1 -1
  11. package/dist/bundles/easydata.crud.min.js +1 -1
  12. package/dist/bundles/easydata.crud.min.js.LICENSE.txt +0 -2
  13. package/dist/bundles/easydata.crud.min.js.map +1 -1
  14. package/dist/lib/filter/text_data_filter.d.ts +2 -2
  15. package/dist/lib/filter/text_data_filter.js +18 -19
  16. package/dist/lib/filter/text_data_filter.js.map +1 -1
  17. package/dist/lib/form/entity_edit_form.js.map +1 -1
  18. package/dist/lib/form/entity_form_builder.js +36 -25
  19. package/dist/lib/form/entity_form_builder.js.map +1 -1
  20. package/dist/lib/i18n/text_resources.js +1 -1
  21. package/dist/lib/i18n/text_resources.js.map +1 -1
  22. package/dist/lib/main/data_context.d.ts +12 -8
  23. package/dist/lib/main/data_context.js +37 -27
  24. package/dist/lib/main/data_context.js.map +1 -1
  25. package/dist/lib/main/easy_data_server_loader.js +2 -2
  26. package/dist/lib/main/easy_data_server_loader.js.map +1 -1
  27. package/dist/lib/views/easy_data_view_dispatcher.js +1 -0
  28. package/dist/lib/views/easy_data_view_dispatcher.js.map +1 -1
  29. package/dist/lib/views/entity_data_view.js +15 -13
  30. package/dist/lib/views/entity_data_view.js.map +1 -1
  31. package/dist/lib/views/options.d.ts +2 -0
  32. package/dist/lib/widgets/text_filter_widget.js.map +1 -1
  33. package/package.json +4 -4
@@ -82,7 +82,7 @@ window["easydata"] =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 33);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 34);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ([
@@ -149,13 +149,13 @@ var EditorTag = {
149
149
  };
150
150
  //# sourceMappingURL=editor_tag.js.map
151
151
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_method.js
152
- var http_method = __webpack_require__(11);
152
+ var http_method = __webpack_require__(10);
153
153
 
154
154
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_request.js
155
- var http_request = __webpack_require__(15);
155
+ var http_request = __webpack_require__(16);
156
156
 
157
157
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_client.js
158
- var http_client = __webpack_require__(23);
158
+ var http_client = __webpack_require__(24);
159
159
 
160
160
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/i18n/i18n.js
161
161
  var i18n = __webpack_require__(5);
@@ -239,6 +239,12 @@ var MetaEntity = /** @class */ (function () {
239
239
  };
240
240
  internalProcessEntity(this);
241
241
  };
242
+ MetaEntity.prototype.getFirstPrimaryAttr = function () {
243
+ return this.getPrimaryAttrs()[0];
244
+ };
245
+ MetaEntity.prototype.getPrimaryAttrs = function () {
246
+ return this.attributes.filter(function (attr) { return attr.isPrimaryKey; });
247
+ };
242
248
  return MetaEntity;
243
249
  }());
244
250
 
@@ -857,7 +863,7 @@ var meta_data_MetaData = /** @class */ (function () {
857
863
  }());
858
864
 
859
865
  //# sourceMappingURL=meta_data.js.map
860
- // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/aggr_calculator.js
866
+ // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/aggr_settings.js
861
867
  var __assign = (undefined && undefined.__assign) || function () {
862
868
  __assign = Object.assign || function(t) {
863
869
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -880,16 +886,32 @@ var AggregationSettings = /** @class */ (function () {
880
886
  this.groups = [];
881
887
  this.useGrandTotals = false;
882
888
  this.useRecordCount = false;
883
- this.caseSensitiveGroups = false;
889
+ this._caseSensitiveGroups = false;
884
890
  this.COUNT_FIELD_NAME = 'GRPRECCNT';
885
891
  }
892
+ Object.defineProperty(AggregationSettings.prototype, "caseSensitiveGroups", {
893
+ get: function () {
894
+ return this._caseSensitiveGroups;
895
+ },
896
+ set: function (value) {
897
+ this._caseSensitiveGroups = value;
898
+ this.updateCompareProc();
899
+ },
900
+ enumerable: true,
901
+ configurable: true
902
+ });
903
+ AggregationSettings.prototype.updateCompareProc = function () {
904
+ this.compareValues = this._caseSensitiveGroups
905
+ ? this.strictCompare
906
+ : this.caseInsensitiveCompare;
907
+ };
886
908
  AggregationSettings.prototype.addGroup = function (settings) {
887
909
  var cols = settings.columns || this.colStore.getColumnIds(settings.from, settings.to);
888
910
  if (!this.colStore.validateColumns(cols))
889
911
  throw "Invalid columns: " + cols;
890
912
  if (this.hasColumnsInUse(cols))
891
913
  throw "Can't add same columns to different groups/aggregates";
892
- this.groups.push(__assign({ columns: cols, aggregates: null }, settings));
914
+ this.groups.push(__assign({ columns: cols }, settings));
893
915
  return this;
894
916
  };
895
917
  AggregationSettings.prototype.addAggregateColumn = function (colIndexOrId, funcId) {
@@ -914,7 +936,7 @@ var AggregationSettings = /** @class */ (function () {
914
936
  var cols = [];
915
937
  var mappedGrops = this.groups.map(function (grp) {
916
938
  cols = cols.concat(grp.columns);
917
- return __assign({}, grp, { columns: Array.from(cols), aggregates: Array.from(_this.aggregates) });
939
+ return __assign(__assign({}, grp), { columns: Array.from(cols), aggregates: Array.from(_this.aggregates) });
918
940
  });
919
941
  return mappedGrops;
920
942
  };
@@ -1006,18 +1028,43 @@ var AggregationSettings = /** @class */ (function () {
1006
1028
  }
1007
1029
  }
1008
1030
  };
1031
+ AggregationSettings.prototype.buildGroupKey = function (group, row) {
1032
+ var caseInsensitive = !this.caseSensitiveGroups;
1033
+ var result = {};
1034
+ if (group) {
1035
+ for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
1036
+ var colId = _a[_i];
1037
+ var keyVal = row.getValue(colId);
1038
+ if (caseInsensitive && typeof (keyVal) === 'string') {
1039
+ keyVal = keyVal.toLowerCase();
1040
+ }
1041
+ result[colId] = keyVal;
1042
+ }
1043
+ }
1044
+ return result;
1045
+ };
1046
+ //returns true if value1 == value2
1047
+ AggregationSettings.prototype.strictCompare = function (value1, value2) {
1048
+ return value1 === value2;
1049
+ };
1050
+ //makes a case insensative comparision of two values and return true if there are equal
1051
+ AggregationSettings.prototype.caseInsensitiveCompare = function (value1, value2) {
1052
+ var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
1053
+ var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
1054
+ return val1 === val2;
1055
+ };
1009
1056
  return AggregationSettings;
1010
1057
  }());
1011
1058
 
1012
- //# sourceMappingURL=aggr_calculator.js.map
1059
+ //# sourceMappingURL=aggr_settings.js.map
1013
1060
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/data_column.js
1014
- var data_column = __webpack_require__(16);
1061
+ var data_column = __webpack_require__(17);
1015
1062
 
1016
1063
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/data_row.js
1017
- var data_row = __webpack_require__(14);
1064
+ var data_row = __webpack_require__(15);
1018
1065
 
1019
1066
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/easy_data_table.js
1020
- var easy_data_table = __webpack_require__(27);
1067
+ var easy_data_table = __webpack_require__(28);
1021
1068
 
1022
1069
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/easy_guid.js
1023
1070
  /**
@@ -1167,7 +1214,7 @@ var event_emitter_EventEmitter = /** @class */ (function () {
1167
1214
 
1168
1215
  //# sourceMappingURL=event_emitter.js.map
1169
1216
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/string_utils.js
1170
- var string_utils = __webpack_require__(13);
1217
+ var string_utils = __webpack_require__(14);
1171
1218
 
1172
1219
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/liquid.js
1173
1220
  var liquid;
@@ -1202,7 +1249,6 @@ i18n["a" /* i18n */].resetLocales();
1202
1249
 
1203
1250
 
1204
1251
 
1205
- //data
1206
1252
 
1207
1253
 
1208
1254
 
@@ -1245,7 +1291,7 @@ if (typeof Math.trunc !== 'function') {
1245
1291
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DomInputElementBuilder; });
1246
1292
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DomSelectElementBuilder; });
1247
1293
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return domel; });
1248
- /* harmony import */ var _mask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
1294
+ /* harmony import */ var _mask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
1249
1295
  var __extends = (undefined && undefined.__extends) || (function () {
1250
1296
  var extendStatics = function (d, b) {
1251
1297
  extendStatics = Object.setPrototypeOf ||
@@ -1259,6 +1305,13 @@ var __extends = (undefined && undefined.__extends) || (function () {
1259
1305
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1260
1306
  };
1261
1307
  })();
1308
+ var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
1309
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
1310
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
1311
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
1312
+ r[k] = a[j];
1313
+ return r;
1314
+ };
1262
1315
 
1263
1316
  var DomElementBuilder = /** @class */ (function () {
1264
1317
  function DomElementBuilder(tag, parent) {
@@ -1329,7 +1382,7 @@ var DomElementBuilder = /** @class */ (function () {
1329
1382
  classNames[_i - 1] = arguments[_i];
1330
1383
  }
1331
1384
  if (className) {
1332
- var fullList = className.trim().split(" ").concat(classNames);
1385
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
1333
1386
  for (var i = 0; i < fullList.length; i++)
1334
1387
  this.element.classList.add(fullList[i]);
1335
1388
  }
@@ -1341,7 +1394,7 @@ var DomElementBuilder = /** @class */ (function () {
1341
1394
  classNames[_i - 1] = arguments[_i];
1342
1395
  }
1343
1396
  if (className) {
1344
- var fullList = className.trim().split(" ").concat(classNames);
1397
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
1345
1398
  for (var i = 0; i < fullList.length; i++)
1346
1399
  this.element.classList.remove(fullList[i]);
1347
1400
  }
@@ -1605,6 +1658,7 @@ __webpack_require__.r(__webpack_exports__);
1605
1658
 
1606
1659
  // EXPORTS
1607
1660
  __webpack_require__.d(__webpack_exports__, "EasyGrid", function() { return /* reexport */ easy_grid["a" /* EasyGrid */]; });
1661
+ __webpack_require__.d(__webpack_exports__, "AutoResizeColumns", function() { return /* reexport */ easy_grid_options["a" /* AutoResizeColumns */]; });
1608
1662
  __webpack_require__.d(__webpack_exports__, "GridColumnAlign", function() { return /* reexport */ easy_grid_columns["b" /* GridColumnAlign */]; });
1609
1663
  __webpack_require__.d(__webpack_exports__, "GridColumn", function() { return /* reexport */ easy_grid_columns["a" /* GridColumn */]; });
1610
1664
  __webpack_require__.d(__webpack_exports__, "GridColumnList", function() { return /* reexport */ easy_grid_columns["c" /* GridColumnList */]; });
@@ -1653,13 +1707,16 @@ __webpack_require__.d(__webpack_exports__, "DialogFooterAlignment", function() {
1653
1707
  __webpack_require__.d(__webpack_exports__, "dialogs", function() { return /* binding */ dialogs; });
1654
1708
 
1655
1709
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid.js
1656
- var easy_grid = __webpack_require__(28);
1710
+ var easy_grid = __webpack_require__(29);
1711
+
1712
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_options.js
1713
+ var easy_grid_options = __webpack_require__(12);
1657
1714
 
1658
1715
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_columns.js
1659
1716
  var easy_grid_columns = __webpack_require__(8);
1660
1717
 
1661
1718
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_cell_renderer.js
1662
- var easy_grid_cell_renderer = __webpack_require__(9);
1719
+ var easy_grid_cell_renderer = __webpack_require__(13);
1663
1720
 
1664
1721
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/datetimepicker/calendar.js
1665
1722
  var Calendar = /** @class */ (function () {
@@ -2312,19 +2369,19 @@ var default_date_time_picker_DefaultDateTimePicker = /** @class */ (function (_s
2312
2369
 
2313
2370
  //# sourceMappingURL=default_date_time_picker.js.map
2314
2371
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/browser_utils.js
2315
- var browser_utils = __webpack_require__(17);
2372
+ var browser_utils = __webpack_require__(18);
2316
2373
 
2317
2374
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/drag_manager.js
2318
- var drag_manager = __webpack_require__(12);
2375
+ var drag_manager = __webpack_require__(11);
2319
2376
 
2320
2377
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/mask.js
2321
- var mask = __webpack_require__(18);
2378
+ var mask = __webpack_require__(19);
2322
2379
 
2323
2380
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/default_dialog_service.js
2324
- var default_dialog_service = __webpack_require__(19);
2381
+ var default_dialog_service = __webpack_require__(20);
2325
2382
 
2326
2383
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/dialog_service.js
2327
- var dialog_service = __webpack_require__(20);
2384
+ var dialog_service = __webpack_require__(21);
2328
2385
 
2329
2386
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/i18n/text_resources.js
2330
2387
 
@@ -2346,6 +2403,7 @@ addEasyDataUITexts();
2346
2403
 
2347
2404
 
2348
2405
 
2406
+
2349
2407
  //datetimepicker
2350
2408
 
2351
2409
 
@@ -2375,7 +2433,7 @@ var dialogs = new default_dialog_service["b" /* DefaultDialogService */]();
2375
2433
 
2376
2434
  "use strict";
2377
2435
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return utils; });
2378
- /* harmony import */ var _string_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
2436
+ /* harmony import */ var _string_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
2379
2437
  /* harmony import */ var _types_data_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
2380
2438
  /* harmony import */ var _i18n_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
2381
2439
 
@@ -2384,7 +2442,7 @@ var dialogs = new default_dialog_service["b" /* DefaultDialogService */]();
2384
2442
  var utils;
2385
2443
  (function (utils) {
2386
2444
  function getAllDataTypes() {
2387
- return Object.values(_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"]);
2445
+ return Object.values(_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"]).filter(function (item) { return typeof item === "number"; });
2388
2446
  }
2389
2447
  utils.getAllDataTypes = getAllDataTypes;
2390
2448
  function getDateDataTypes() {
@@ -2392,12 +2450,16 @@ var utils;
2392
2450
  }
2393
2451
  utils.getDateDataTypes = getDateDataTypes;
2394
2452
  function getStringDataTypes() {
2395
- return [_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].String, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Memo];
2453
+ return [_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].String, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Memo, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].FixedChar];
2396
2454
  }
2397
2455
  utils.getStringDataTypes = getStringDataTypes;
2398
2456
  var _numericTypes = [_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Byte, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Word, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int32,
2399
- _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int64, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Float, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Currency];
2400
- var _intTypes = [_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Byte, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Word, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int32, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int64];
2457
+ _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int64, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Float, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Currency, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Autoinc];
2458
+ function getNumericDataTypes() {
2459
+ return _numericTypes;
2460
+ }
2461
+ utils.getNumericDataTypes = getNumericDataTypes;
2462
+ var _intTypes = [_types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Byte, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Word, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int32, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Int64, _types_data_type__WEBPACK_IMPORTED_MODULE_1__[/* DataType */ "a"].Autoinc];
2401
2463
  //-------------- object functions -------------------
2402
2464
  /**
2403
2465
  * Copy the content of all objests passed in `args` parameters into `target`
@@ -2462,7 +2524,7 @@ var utils;
2462
2524
  hashSet.set(sourceVal, target[key]);
2463
2525
  }
2464
2526
  else {
2465
- if (typeof target[key] == 'undefined') {
2527
+ if (typeof target[key] == 'undefined' || target[key] == null) {
2466
2528
  target[key] = Object.create(Object.getPrototypeOf(sourceVal));
2467
2529
  }
2468
2530
  hashSet.set(sourceVal, target[key]);
@@ -3394,7 +3456,7 @@ var i18n;
3394
3456
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return slideUp; });
3395
3457
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return eqCssPrefix; });
3396
3458
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return eqCssMobile; });
3397
- /* harmony import */ var _browser_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
3459
+ /* harmony import */ var _browser_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
3398
3460
 
3399
3461
  /**
3400
3462
  * Wraps all the elements inside "parent" by "wrapper" element
@@ -3667,16 +3729,10 @@ var setLocation = function (path) {
3667
3729
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GridColumn; });
3668
3730
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GridColumnList; });
3669
3731
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
3670
- /* harmony import */ var _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
3732
+ /* harmony import */ var _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
3671
3733
 
3672
3734
 
3673
- var DEFAULT_WIDTH = 150;
3674
- var DEFAULT_WIDTH_NUMBER = 120;
3675
- var DEFAULT_WIDTH_DATE = 200;
3676
- var DEFAULT_WIDTH_BOOL = 80;
3677
3735
  var DEFAULT_WIDTH_STRING = 250;
3678
- var MIN_WIDTH_STRING = 100;
3679
- var MAX_WIDTH_STRING = 500;
3680
3736
  var ROW_NUM_WIDTH = 60;
3681
3737
  var GridColumnAlign;
3682
3738
  (function (GridColumnAlign) {
@@ -3708,31 +3764,18 @@ var GridColumn = /** @class */ (function () {
3708
3764
  this.isRowNum = false;
3709
3765
  this.dataColumn = column;
3710
3766
  this.grid = grid;
3767
+ var widthOptions = grid.options.columnWidths || {};
3711
3768
  if (column) {
3712
3769
  if (column.style.alignment) {
3713
3770
  this.align = MapAlignment(column.style.alignment);
3714
3771
  }
3715
- var coltype = column.type;
3716
- var cellType = this.grid.cellRendererStore.getCellType(coltype);
3717
- switch (cellType) {
3718
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].NUMBER:
3719
- this.width = DEFAULT_WIDTH_NUMBER;
3720
- break;
3721
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].DATETIME:
3722
- this.width = DEFAULT_WIDTH_DATE;
3723
- break;
3724
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].BOOL:
3725
- this.width = DEFAULT_WIDTH_BOOL;
3726
- break;
3727
- default:
3728
- this.width = DEFAULT_WIDTH_STRING;
3729
- }
3772
+ this.width = (widthOptions && widthOptions[this.type]) ? widthOptions[this.type].default : DEFAULT_WIDTH_STRING;
3730
3773
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);
3731
3774
  this._description = column.description;
3732
3775
  }
3733
3776
  else if (isRowNum) {
3734
3777
  this.isRowNum = true;
3735
- this.width = ROW_NUM_WIDTH;
3778
+ this.width = (widthOptions && widthOptions.rowNumColumn) ? widthOptions.rowNumColumn.default : ROW_NUM_WIDTH;
3736
3779
  this._label = '';
3737
3780
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(_easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].NUMBER);
3738
3781
  }
@@ -3778,9 +3821,10 @@ var GridColumnList = /** @class */ (function () {
3778
3821
  GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {
3779
3822
  if (hasRowNumCol === void 0) { hasRowNumCol = true; }
3780
3823
  this.clear();
3781
- if (hasRowNumCol) {
3782
- var rowNumCol = new GridColumn(null, this.grid, true);
3783
- this.add(rowNumCol);
3824
+ var rowNumCol = new GridColumn(null, this.grid, true);
3825
+ this.add(rowNumCol);
3826
+ if (!hasRowNumCol) {
3827
+ rowNumCol.isVisible = false;
3784
3828
  }
3785
3829
  if (columnList) {
3786
3830
  for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {
@@ -3847,165 +3891,6 @@ var GridColumnList = /** @class */ (function () {
3847
3891
  /* 9 */
3848
3892
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3849
3893
 
3850
- "use strict";
3851
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DFMT_REGEX; });
3852
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CellRendererType; });
3853
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GridCellRendererStore; });
3854
- /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
3855
- /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
3856
- /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
3857
-
3858
-
3859
-
3860
- var cssPrefix = "keg";
3861
- var DFMT_REGEX = /{0:(.*?)}/g;
3862
- var CellRendererType;
3863
- (function (CellRendererType) {
3864
- CellRendererType[CellRendererType["STRING"] = 1] = "STRING";
3865
- CellRendererType[CellRendererType["NUMBER"] = 2] = "NUMBER";
3866
- CellRendererType[CellRendererType["DATETIME"] = 3] = "DATETIME";
3867
- CellRendererType[CellRendererType["BOOL"] = 4] = "BOOL";
3868
- })(CellRendererType || (CellRendererType = {}));
3869
- var StringCellRendererDefault = function (value, column, cellElement, rowElement) {
3870
- var text = value ? value.toString().replace(/\n/g, '\u21B5 ') : '';
3871
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3872
- .addClass(cssPrefix + "-cell-value")
3873
- .addHtml(text)
3874
- .title(value || '');
3875
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3876
- builder.addClass(cssPrefix + "-cell-value-align-left");
3877
- }
3878
- };
3879
- var NumberCellRendererDefault = function (value, column, cellElement, rowElement) {
3880
- var strValue = (value || '').toString();
3881
- if (typeof value == 'number') {
3882
- if (column.dataColumn && column.dataColumn.displayFormat
3883
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3884
- strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3885
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].numberToStr(value, $1);
3886
- });
3887
- }
3888
- else {
3889
- strValue = value.toLocaleString();
3890
- }
3891
- }
3892
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3893
- .addClass(cssPrefix + "-cell-value")
3894
- .addHtml(strValue)
3895
- .title(strValue);
3896
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3897
- builder.addClass(cssPrefix + "-cell-value-align-right");
3898
- }
3899
- };
3900
- var DateTimeCellRendererDefault = function (value, column, cellElement, rowElement) {
3901
- var isDate = Object.prototype.toString.call(value) === '[object Date]';
3902
- var strValue = (value || '').toString();
3903
- if (isDate) {
3904
- if (column.dataColumn && column.dataColumn.displayFormat
3905
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3906
- strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3907
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].dateTimeToStr(value, column.type, $1);
3908
- });
3909
- }
3910
- else {
3911
- var locale = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getCurrentLocale();
3912
- var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };
3913
- switch (column.type) {
3914
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
3915
- strValue = value.toLocaleDateString(locale);
3916
- break;
3917
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
3918
- strValue = value.toLocaleTimeString(locale, timeOptions);
3919
- break;
3920
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
3921
- strValue = value.toLocaleDateString(locale) + " " + value.toLocaleTimeString(locale, timeOptions);
3922
- break;
3923
- }
3924
- }
3925
- }
3926
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3927
- .addClass(cssPrefix + "-cell-value")
3928
- .addHtml(strValue)
3929
- .title(strValue);
3930
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3931
- builder.addClass(cssPrefix + "-cell-value-align-right");
3932
- }
3933
- };
3934
- var BoolCellRendererDefault = function (value, column, cellElement, rowElement) {
3935
- if (column.dataColumn && column.dataColumn.displayFormat
3936
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3937
- var strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3938
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].booleanToStr(value, $1);
3939
- });
3940
- return StringCellRendererDefault(strValue, column, cellElement, rowElement);
3941
- }
3942
- else {
3943
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3944
- .addClass(cssPrefix + "-cell-value")
3945
- .addClass(cssPrefix + "-cell-value-bool")
3946
- .addClass(cssPrefix + "-" + (value ? 'cell-value-true' : 'cell-value-false'));
3947
- }
3948
- };
3949
- var GridCellRendererStore = /** @class */ (function () {
3950
- function GridCellRendererStore(options) {
3951
- this.renderers = {};
3952
- this.defaultRenderers = {};
3953
- this.registerRenderer('StringDefault', StringCellRendererDefault);
3954
- this.setDefaultRenderer(CellRendererType.STRING, StringCellRendererDefault);
3955
- this.registerRenderer('NumberDefault', NumberCellRendererDefault);
3956
- this.setDefaultRenderer(CellRendererType.NUMBER, NumberCellRendererDefault);
3957
- this.registerRenderer('DateTimeDefault', DateTimeCellRendererDefault);
3958
- this.setDefaultRenderer(CellRendererType.DATETIME, DateTimeCellRendererDefault);
3959
- this.registerRenderer('BoolDefault', BoolCellRendererDefault);
3960
- this.setDefaultRenderer(CellRendererType.BOOL, BoolCellRendererDefault);
3961
- }
3962
- GridCellRendererStore.prototype.getDefaultRenderer = function (columnType) {
3963
- var cellType = this.getCellType(columnType);
3964
- return this.defaultRenderers[CellRendererType[cellType]];
3965
- };
3966
- GridCellRendererStore.prototype.getDefaultRendererByType = function (rendererType) {
3967
- return this.defaultRenderers[CellRendererType[rendererType]];
3968
- };
3969
- GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {
3970
- if (renderer) {
3971
- this.defaultRenderers[CellRendererType[cellType]] = renderer;
3972
- }
3973
- };
3974
- GridCellRendererStore.prototype.getRenderer = function (name) {
3975
- return this.renderers[name];
3976
- };
3977
- GridCellRendererStore.prototype.registerRenderer = function (name, renderer) {
3978
- this.renderers[name] = renderer;
3979
- };
3980
- GridCellRendererStore.prototype.getCellType = function (dataType) {
3981
- switch (dataType) {
3982
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Autoinc:
3983
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Byte:
3984
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Word:
3985
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Currency:
3986
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Float:
3987
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int32:
3988
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int64:
3989
- return CellRendererType.NUMBER;
3990
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
3991
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
3992
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
3993
- return CellRendererType.DATETIME;
3994
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool:
3995
- return CellRendererType.BOOL;
3996
- default:
3997
- return CellRendererType.STRING;
3998
- }
3999
- };
4000
- return GridCellRendererStore;
4001
- }());
4002
-
4003
- //# sourceMappingURL=easy_grid_cell_renderer.js.map
4004
-
4005
- /***/ }),
4006
- /* 10 */
4007
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
4008
-
4009
3894
  "use strict";
4010
3895
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Validator; });
4011
3896
  var Validator = /** @class */ (function () {
@@ -4017,7 +3902,7 @@ var Validator = /** @class */ (function () {
4017
3902
  //# sourceMappingURL=validator.js.map
4018
3903
 
4019
3904
  /***/ }),
4020
- /* 11 */
3905
+ /* 10 */
4021
3906
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4022
3907
 
4023
3908
  "use strict";
@@ -4034,7 +3919,7 @@ var HttpMethod;
4034
3919
  //# sourceMappingURL=http_method.js.map
4035
3920
 
4036
3921
  /***/ }),
4037
- /* 12 */
3922
+ /* 11 */
4038
3923
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4039
3924
 
4040
3925
  "use strict";
@@ -4367,53 +4252,226 @@ var DragManager = /** @class */ (function () {
4367
4252
  }
4368
4253
  }
4369
4254
  };
4370
- DragManager.prototype.dragLeaveEvent = function (ev) {
4371
- var descriptor = this.containerDescriptors[this.containerDescriptorIndex];
4372
- var container = {
4373
- element: descriptor.element,
4374
- scopes: descriptor.scopes,
4375
- data: descriptor.data
4376
- };
4377
- if (container.scopes.indexOf(this.draggableItem.scope) >= 0) {
4378
- var event_5 = new EqDragEvent(this.draggableItem, this.dragImage, ev);
4379
- event_5.dropEffect = DropEffect.None;
4380
- if (descriptor.onDragLeave) {
4381
- descriptor.onDragLeave(container, event_5);
4382
- }
4383
- this.dropEffect = event_5.dropEffect;
4384
- this.updateCusror(this.dropEffect);
4385
- this.updateImageClass(this.dropEffect);
4386
- }
4255
+ DragManager.prototype.dragLeaveEvent = function (ev) {
4256
+ var descriptor = this.containerDescriptors[this.containerDescriptorIndex];
4257
+ var container = {
4258
+ element: descriptor.element,
4259
+ scopes: descriptor.scopes,
4260
+ data: descriptor.data
4261
+ };
4262
+ if (container.scopes.indexOf(this.draggableItem.scope) >= 0) {
4263
+ var event_5 = new EqDragEvent(this.draggableItem, this.dragImage, ev);
4264
+ event_5.dropEffect = DropEffect.None;
4265
+ if (descriptor.onDragLeave) {
4266
+ descriptor.onDragLeave(container, event_5);
4267
+ }
4268
+ this.dropEffect = event_5.dropEffect;
4269
+ this.updateCusror(this.dropEffect);
4270
+ this.updateImageClass(this.dropEffect);
4271
+ }
4272
+ };
4273
+ DragManager.prototype.detectDragEnterEvent = function (container, ev) {
4274
+ var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4275
+ var pos = new Position(ev);
4276
+ if (pos.y < containerPos.y || pos.y > containerPos.y + container.offsetHeight) {
4277
+ return false;
4278
+ }
4279
+ if (pos.x < containerPos.x || pos.x > containerPos.x + container.offsetWidth) {
4280
+ return false;
4281
+ }
4282
+ return true;
4283
+ };
4284
+ DragManager.prototype.detectDragLeaveEvent = function (container, ev) {
4285
+ var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4286
+ var pos = new Position(ev);
4287
+ if (pos.y > containerPos.y && pos.y < containerPos.y + container.offsetHeight
4288
+ && pos.x > containerPos.x && pos.x < containerPos.x + container.offsetWidth) {
4289
+ return false;
4290
+ }
4291
+ return true;
4292
+ };
4293
+ return DragManager;
4294
+ }());
4295
+
4296
+ //global variable
4297
+ var eqDragManager = new DragManager();
4298
+ //# sourceMappingURL=drag_manager.js.map
4299
+
4300
+ /***/ }),
4301
+ /* 12 */
4302
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
4303
+
4304
+ "use strict";
4305
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AutoResizeColumns; });
4306
+ var AutoResizeColumns;
4307
+ (function (AutoResizeColumns) {
4308
+ AutoResizeColumns[AutoResizeColumns["Always"] = 0] = "Always";
4309
+ AutoResizeColumns[AutoResizeColumns["Once"] = 1] = "Once";
4310
+ AutoResizeColumns[AutoResizeColumns["Never"] = 2] = "Never";
4311
+ })(AutoResizeColumns || (AutoResizeColumns = {}));
4312
+ //# sourceMappingURL=easy_grid_options.js.map
4313
+
4314
+ /***/ }),
4315
+ /* 13 */
4316
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
4317
+
4318
+ "use strict";
4319
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DFMT_REGEX; });
4320
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CellRendererType; });
4321
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GridCellRendererStore; });
4322
+ /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4323
+ /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
4324
+ /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
4325
+
4326
+
4327
+
4328
+ var cssPrefix = "keg";
4329
+ var DFMT_REGEX = /{0:(.*?)}/g;
4330
+ var CellRendererType;
4331
+ (function (CellRendererType) {
4332
+ CellRendererType[CellRendererType["STRING"] = 1] = "STRING";
4333
+ CellRendererType[CellRendererType["NUMBER"] = 2] = "NUMBER";
4334
+ CellRendererType[CellRendererType["DATETIME"] = 3] = "DATETIME";
4335
+ CellRendererType[CellRendererType["BOOL"] = 4] = "BOOL";
4336
+ })(CellRendererType || (CellRendererType = {}));
4337
+ var StringCellRendererDefault = function (value, column, cellElement, rowElement) {
4338
+ var text = value ? value.toString().replace(/\n/g, '\u21B5 ') : '';
4339
+ var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
4340
+ .addClass(cssPrefix + "-cell-value")
4341
+ .addHtml(text)
4342
+ .title(value || '');
4343
+ if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
4344
+ builder.addClass(cssPrefix + "-cell-value-align-left");
4345
+ }
4346
+ };
4347
+ var NumberCellRendererDefault = function (value, column, cellElement, rowElement) {
4348
+ var strValue = (value || '').toString();
4349
+ if (typeof value == 'number') {
4350
+ if (column.dataColumn && column.dataColumn.displayFormat
4351
+ && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
4352
+ strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
4353
+ return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].numberToStr(value, $1);
4354
+ });
4355
+ }
4356
+ else {
4357
+ strValue = value.toLocaleString();
4358
+ }
4359
+ }
4360
+ var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
4361
+ .addClass(cssPrefix + "-cell-value")
4362
+ .addHtml(strValue)
4363
+ .title(strValue);
4364
+ if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
4365
+ builder.addClass(cssPrefix + "-cell-value-align-right");
4366
+ }
4367
+ };
4368
+ var DateTimeCellRendererDefault = function (value, column, cellElement, rowElement) {
4369
+ var isDate = Object.prototype.toString.call(value) === '[object Date]';
4370
+ var strValue = (value || '').toString();
4371
+ if (isDate) {
4372
+ if (column.dataColumn && column.dataColumn.displayFormat
4373
+ && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
4374
+ strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
4375
+ return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].dateTimeToStr(value, column.type, $1);
4376
+ });
4377
+ }
4378
+ else {
4379
+ var locale = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getCurrentLocale();
4380
+ var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };
4381
+ switch (column.type) {
4382
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
4383
+ strValue = value.toLocaleDateString(locale);
4384
+ break;
4385
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
4386
+ strValue = value.toLocaleTimeString(locale, timeOptions);
4387
+ break;
4388
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
4389
+ strValue = value.toLocaleDateString(locale) + " " + value.toLocaleTimeString(locale, timeOptions);
4390
+ break;
4391
+ }
4392
+ }
4393
+ }
4394
+ var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
4395
+ .addClass(cssPrefix + "-cell-value")
4396
+ .addHtml(strValue)
4397
+ .title(strValue);
4398
+ if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
4399
+ builder.addClass(cssPrefix + "-cell-value-align-right");
4400
+ }
4401
+ };
4402
+ var BoolCellRendererDefault = function (value, column, cellElement, rowElement) {
4403
+ if (column.dataColumn && column.dataColumn.displayFormat
4404
+ && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
4405
+ var strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
4406
+ return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].booleanToStr(value, $1);
4407
+ });
4408
+ return StringCellRendererDefault(strValue, column, cellElement, rowElement);
4409
+ }
4410
+ else {
4411
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
4412
+ .addClass(cssPrefix + "-cell-value")
4413
+ .addClass(cssPrefix + "-cell-value-bool")
4414
+ .addClass(cssPrefix + "-" + (value ? 'cell-value-true' : 'cell-value-false'));
4415
+ }
4416
+ };
4417
+ var GridCellRendererStore = /** @class */ (function () {
4418
+ function GridCellRendererStore(options) {
4419
+ this.renderers = {};
4420
+ this.defaultRenderers = {};
4421
+ this.registerRenderer('StringDefault', StringCellRendererDefault);
4422
+ this.setDefaultRenderer(CellRendererType.STRING, StringCellRendererDefault);
4423
+ this.registerRenderer('NumberDefault', NumberCellRendererDefault);
4424
+ this.setDefaultRenderer(CellRendererType.NUMBER, NumberCellRendererDefault);
4425
+ this.registerRenderer('DateTimeDefault', DateTimeCellRendererDefault);
4426
+ this.setDefaultRenderer(CellRendererType.DATETIME, DateTimeCellRendererDefault);
4427
+ this.registerRenderer('BoolDefault', BoolCellRendererDefault);
4428
+ this.setDefaultRenderer(CellRendererType.BOOL, BoolCellRendererDefault);
4429
+ }
4430
+ GridCellRendererStore.prototype.getDefaultRenderer = function (columnType) {
4431
+ var cellType = this.getCellType(columnType);
4432
+ return this.defaultRenderers[CellRendererType[cellType]];
4433
+ };
4434
+ GridCellRendererStore.prototype.getDefaultRendererByType = function (rendererType) {
4435
+ return this.defaultRenderers[CellRendererType[rendererType]];
4387
4436
  };
4388
- DragManager.prototype.detectDragEnterEvent = function (container, ev) {
4389
- var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4390
- var pos = new Position(ev);
4391
- if (pos.y < containerPos.y || pos.y > containerPos.y + container.offsetHeight) {
4392
- return false;
4393
- }
4394
- if (pos.x < containerPos.x || pos.x > containerPos.x + container.offsetWidth) {
4395
- return false;
4437
+ GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {
4438
+ if (renderer) {
4439
+ this.defaultRenderers[CellRendererType[cellType]] = renderer;
4396
4440
  }
4397
- return true;
4398
4441
  };
4399
- DragManager.prototype.detectDragLeaveEvent = function (container, ev) {
4400
- var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4401
- var pos = new Position(ev);
4402
- if (pos.y > containerPos.y && pos.y < containerPos.y + container.offsetHeight
4403
- && pos.x > containerPos.x && pos.x < containerPos.x + container.offsetWidth) {
4404
- return false;
4442
+ GridCellRendererStore.prototype.getRenderer = function (name) {
4443
+ return this.renderers[name];
4444
+ };
4445
+ GridCellRendererStore.prototype.registerRenderer = function (name, renderer) {
4446
+ this.renderers[name] = renderer;
4447
+ };
4448
+ GridCellRendererStore.prototype.getCellType = function (dataType) {
4449
+ switch (dataType) {
4450
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Autoinc:
4451
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Byte:
4452
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Word:
4453
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Currency:
4454
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Float:
4455
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int32:
4456
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int64:
4457
+ return CellRendererType.NUMBER;
4458
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
4459
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
4460
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
4461
+ return CellRendererType.DATETIME;
4462
+ case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool:
4463
+ return CellRendererType.BOOL;
4464
+ default:
4465
+ return CellRendererType.STRING;
4405
4466
  }
4406
- return true;
4407
4467
  };
4408
- return DragManager;
4468
+ return GridCellRendererStore;
4409
4469
  }());
4410
4470
 
4411
- //global variable
4412
- var eqDragManager = new DragManager();
4413
- //# sourceMappingURL=drag_manager.js.map
4471
+ //# sourceMappingURL=easy_grid_cell_renderer.js.map
4414
4472
 
4415
4473
  /***/ }),
4416
- /* 13 */
4474
+ /* 14 */
4417
4475
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4418
4476
 
4419
4477
  "use strict";
@@ -4455,7 +4513,7 @@ function combinePath(path1, path2) {
4455
4513
  //# sourceMappingURL=string_utils.js.map
4456
4514
 
4457
4515
  /***/ }),
4458
- /* 14 */
4516
+ /* 15 */
4459
4517
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4460
4518
 
4461
4519
  "use strict";
@@ -4507,7 +4565,7 @@ var DataRow = /** @class */ (function () {
4507
4565
  //# sourceMappingURL=data_row.js.map
4508
4566
 
4509
4567
  /***/ }),
4510
- /* 15 */
4568
+ /* 16 */
4511
4569
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4512
4570
 
4513
4571
  "use strict";
@@ -4572,7 +4630,7 @@ var HttpRequest = /** @class */ (function () {
4572
4630
  //# sourceMappingURL=http_request.js.map
4573
4631
 
4574
4632
  /***/ }),
4575
- /* 16 */
4633
+ /* 17 */
4576
4634
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4577
4635
 
4578
4636
  "use strict";
@@ -4607,6 +4665,7 @@ var DataColumn = /** @class */ (function () {
4607
4665
  this.groupFooterColumnTemplate = desc.gfct;
4608
4666
  this.style = desc.style || {};
4609
4667
  this.description = desc.description;
4668
+ this.calculatedWidth = 0;
4610
4669
  }
4611
4670
  return DataColumn;
4612
4671
  }());
@@ -4646,9 +4705,10 @@ var DataColumnList = /** @class */ (function () {
4646
4705
  .map(function (col, index) { return index; });
4647
4706
  };
4648
4707
  DataColumnList.prototype.put = function (index, col) {
4649
- //!!!!!!!!!check on "out of index"
4650
- this.items[index] = col;
4651
- this.updateDateColumnIdx();
4708
+ if (index >= 0 && index < this.count) {
4709
+ this.items[index] = col;
4710
+ this.updateDateColumnIdx();
4711
+ }
4652
4712
  };
4653
4713
  DataColumnList.prototype.move = function (col, newIndex) {
4654
4714
  var oldIndex = this.items.indexOf(col);
@@ -4658,8 +4718,12 @@ var DataColumnList = /** @class */ (function () {
4658
4718
  }
4659
4719
  };
4660
4720
  DataColumnList.prototype.get = function (index) {
4661
- //!!!!!!!!!check on "out of index"
4662
- return this.items[index];
4721
+ if (index >= 0 && index < this.count) {
4722
+ return this.items[index];
4723
+ }
4724
+ else {
4725
+ return null;
4726
+ }
4663
4727
  };
4664
4728
  DataColumnList.prototype.getIndex = function (id) {
4665
4729
  return this.mapper[id];
@@ -4690,7 +4754,7 @@ var DataColumnList = /** @class */ (function () {
4690
4754
  //# sourceMappingURL=data_column.js.map
4691
4755
 
4692
4756
  /***/ }),
4693
- /* 17 */
4757
+ /* 18 */
4694
4758
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4695
4759
 
4696
4760
  "use strict";
@@ -4765,7 +4829,7 @@ var browserUtils;
4765
4829
  //# sourceMappingURL=browser_utils.js.map
4766
4830
 
4767
4831
  /***/ }),
4768
- /* 18 */
4832
+ /* 19 */
4769
4833
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4770
4834
 
4771
4835
  "use strict";
@@ -4868,7 +4932,7 @@ function mask(input, maskPattern) {
4868
4932
  //# sourceMappingURL=mask.js.map
4869
4933
 
4870
4934
  /***/ }),
4871
- /* 19 */
4935
+ /* 20 */
4872
4936
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4873
4937
 
4874
4938
  "use strict";
@@ -4877,7 +4941,7 @@ function mask(input, maskPattern) {
4877
4941
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DefaultProgressDialog; });
4878
4942
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DefaultDialogSet; });
4879
4943
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4880
- /* harmony import */ var _dialog_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
4944
+ /* harmony import */ var _dialog_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21);
4881
4945
  /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
4882
4946
  var __extends = (undefined && undefined.__extends) || (function () {
4883
4947
  var extendStatics = function (d, b) {
@@ -5391,10 +5455,10 @@ var DefaultDialogSet = /** @class */ (function () {
5391
5455
  }());
5392
5456
 
5393
5457
  //# sourceMappingURL=default_dialog_service.js.map
5394
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
5458
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5395
5459
 
5396
5460
  /***/ }),
5397
- /* 20 */
5461
+ /* 21 */
5398
5462
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5399
5463
 
5400
5464
  "use strict";
@@ -5408,7 +5472,7 @@ var DialogFooterAlignment;
5408
5472
  //# sourceMappingURL=dialog_service.js.map
5409
5473
 
5410
5474
  /***/ }),
5411
- /* 21 */
5475
+ /* 22 */
5412
5476
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5413
5477
 
5414
5478
  "use strict";
@@ -5427,11 +5491,11 @@ var __assign = (undefined && undefined.__assign) || function () {
5427
5491
  };
5428
5492
 
5429
5493
  var TextDataFilter = /** @class */ (function () {
5430
- function TextDataFilter(loader, sourceTable, entityId, isLookup) {
5494
+ function TextDataFilter(loader, sourceTable, sourceId, isLookup) {
5431
5495
  if (isLookup === void 0) { isLookup = false; }
5432
5496
  this.loader = loader;
5433
5497
  this.sourceTable = sourceTable;
5434
- this.entityId = entityId;
5498
+ this.sourceId = sourceId;
5435
5499
  this.isLookup = isLookup;
5436
5500
  this.filterValue = '';
5437
5501
  //turns off client-side search
@@ -5468,7 +5532,7 @@ var TextDataFilter = /** @class */ (function () {
5468
5532
  limit: this.sourceTable.chunkSize,
5469
5533
  needTotal: true,
5470
5534
  filters: filters_1,
5471
- entityId: this.entityId,
5535
+ sourceId: this.sourceId,
5472
5536
  lookup: this.isLookup
5473
5537
  })
5474
5538
  .then(function (data) {
@@ -5476,7 +5540,7 @@ var TextDataFilter = /** @class */ (function () {
5476
5540
  chunkSize: _this.sourceTable.chunkSize,
5477
5541
  loader: {
5478
5542
  loadChunk: function (params) { return _this.loader
5479
- .loadChunk(__assign({}, params, { filters: filters_1, entityId: _this.entityId, lookup: _this.isLookup })); }
5543
+ .loadChunk(__assign(__assign({}, params), { filters: filters_1, sourceId: _this.sourceId, lookup: _this.isLookup })); }
5480
5544
  }
5481
5545
  });
5482
5546
  for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
@@ -5497,26 +5561,26 @@ var TextDataFilter = /** @class */ (function () {
5497
5561
  return new Promise(function (resolve, reject) {
5498
5562
  var filteredTable = new _easydata_core__WEBPACK_IMPORTED_MODULE_0__["EasyDataTable"]({
5499
5563
  chunkSize: _this.sourceTable.chunkSize,
5564
+ inMemory: true
5500
5565
  });
5501
5566
  for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
5502
5567
  var col = _a[_i];
5503
5568
  filteredTable.columns.add(col);
5504
5569
  }
5505
5570
  var words = _this.filterValue.split('||').map(function (w) { return w.trim().toLowerCase(); });
5571
+ var suitableColumns = _this.sourceTable.columns.getItems()
5572
+ .filter(function (col) { return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].isIntType(col.type)
5573
+ || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getStringDataTypes().indexOf(col.type) >= 0; });
5506
5574
  var hasEnterance = function (row) {
5507
- for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
5508
- var col = _a[_i];
5509
- if (_easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].isIntType(col.type)
5510
- || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getStringDataTypes().indexOf(col.type) >= 0) {
5511
- var value = row.getValue(col.id);
5512
- if (value) {
5513
- var normalized = value.toString()
5514
- .toLowerCase();
5515
- for (var _b = 0, words_1 = words; _b < words_1.length; _b++) {
5516
- var word = words_1[_b];
5517
- if (normalized.indexOf(word) >= 0) {
5518
- return true;
5519
- }
5575
+ for (var _i = 0, suitableColumns_1 = suitableColumns; _i < suitableColumns_1.length; _i++) {
5576
+ var col = suitableColumns_1[_i];
5577
+ var value = row.getValue(col.id);
5578
+ if (value) {
5579
+ var normalized = value.toString().toLowerCase();
5580
+ for (var _a = 0, words_1 = words; _a < words_1.length; _a++) {
5581
+ var word = words_1[_a];
5582
+ if (normalized.indexOf(word) >= 0) {
5583
+ return true;
5520
5584
  }
5521
5585
  }
5522
5586
  }
@@ -5529,8 +5593,7 @@ var TextDataFilter = /** @class */ (function () {
5529
5593
  filteredTable.addRow(row);
5530
5594
  }
5531
5595
  }
5532
- if (filteredTable.getCachedCount() == 0)
5533
- filteredTable.setTotal(0);
5596
+ filteredTable.setTotal(filteredTable.getCachedCount());
5534
5597
  resolve(filteredTable);
5535
5598
  });
5536
5599
  };
@@ -5538,10 +5601,10 @@ var TextDataFilter = /** @class */ (function () {
5538
5601
  }());
5539
5602
 
5540
5603
  //# sourceMappingURL=text_data_filter.js.map
5541
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5604
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31)))
5542
5605
 
5543
5606
  /***/ }),
5544
- /* 22 */
5607
+ /* 23 */
5545
5608
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5546
5609
 
5547
5610
  "use strict";
@@ -5549,7 +5612,7 @@ var TextDataFilter = /** @class */ (function () {
5549
5612
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
5550
5613
  /* harmony import */ var _easydata_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
5551
5614
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
5552
- /* harmony import */ var _validators_datetime_validator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32);
5615
+ /* harmony import */ var _validators_datetime_validator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
5553
5616
 
5554
5617
 
5555
5618
 
@@ -5684,19 +5747,19 @@ var EntityEditForm = /** @class */ (function () {
5684
5747
  }());
5685
5748
 
5686
5749
  //# sourceMappingURL=entity_edit_form.js.map
5687
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5750
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31)))
5688
5751
 
5689
5752
  /***/ }),
5690
- /* 23 */
5753
+ /* 24 */
5691
5754
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5692
5755
 
5693
5756
  "use strict";
5694
5757
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return HttpResponseError; });
5695
5758
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HttpClient; });
5696
5759
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
5697
- /* harmony import */ var _http_action_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
5698
- /* harmony import */ var _http_method__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
5699
- /* harmony import */ var _http_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
5760
+ /* harmony import */ var _http_action_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
5761
+ /* harmony import */ var _http_method__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);
5762
+ /* harmony import */ var _http_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
5700
5763
  var __extends = (undefined && undefined.__extends) || (function () {
5701
5764
  var extendStatics = function (d, b) {
5702
5765
  extendStatics = Object.setPrototypeOf ||
@@ -5768,7 +5831,7 @@ var HttpClient = /** @class */ (function () {
5768
5831
  var desc = {
5769
5832
  method: method,
5770
5833
  url: url,
5771
- headers: __assign({}, this.defaultHeaders, options.headers || {}),
5834
+ headers: __assign(__assign({}, this.defaultHeaders), options.headers || {}),
5772
5835
  queryParams: options.queryParams || {},
5773
5836
  data: data
5774
5837
  };
@@ -5838,10 +5901,10 @@ var HttpClient = /** @class */ (function () {
5838
5901
  }());
5839
5902
 
5840
5903
  //# sourceMappingURL=http_client.js.map
5841
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
5904
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))
5842
5905
 
5843
5906
  /***/ }),
5844
- /* 24 */
5907
+ /* 25 */
5845
5908
  /***/ (function(module, exports, __webpack_require__) {
5846
5909
 
5847
5910
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -7018,10 +7081,10 @@ return Promise$1;
7018
7081
 
7019
7082
  //# sourceMappingURL=es6-promise.map
7020
7083
 
7021
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
7084
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(26), __webpack_require__(27)))
7022
7085
 
7023
7086
  /***/ }),
7024
- /* 25 */
7087
+ /* 26 */
7025
7088
  /***/ (function(module, exports) {
7026
7089
 
7027
7090
  // shim for using process in browser
@@ -7211,7 +7274,7 @@ process.umask = function() { return 0; };
7211
7274
 
7212
7275
 
7213
7276
  /***/ }),
7214
- /* 26 */
7277
+ /* 27 */
7215
7278
  /***/ (function(module, exports) {
7216
7279
 
7217
7280
  var g;
@@ -7237,13 +7300,13 @@ module.exports = g;
7237
7300
 
7238
7301
 
7239
7302
  /***/ }),
7240
- /* 27 */
7303
+ /* 28 */
7241
7304
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7242
7305
 
7243
7306
  "use strict";
7244
7307
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EasyDataTable; });
7245
- /* harmony import */ var _data_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
7246
- /* harmony import */ var _data_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
7308
+ /* harmony import */ var _data_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
7309
+ /* harmony import */ var _data_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
7247
7310
  /* harmony import */ var _types_data_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
7248
7311
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
7249
7312
 
@@ -7254,16 +7317,23 @@ var EasyDataTable = /** @class */ (function () {
7254
7317
  function EasyDataTable(options) {
7255
7318
  this._chunkSize = 1000;
7256
7319
  this._elasticChunks = false;
7257
- // object keeps number keys sorted
7258
- this.chunkMap = {};
7320
+ this.cachedRows = [];
7259
7321
  this.total = 0;
7260
7322
  this.loader = null;
7261
7323
  this.needTotal = true;
7324
+ this.isInMemory = false;
7262
7325
  options = options || {};
7263
7326
  this._chunkSize = options.chunkSize || this._chunkSize;
7264
7327
  this._elasticChunks = options.elasticChunks || this._elasticChunks;
7265
7328
  this.loader = options.loader;
7329
+ if (typeof options.inMemory !== 'undefined') {
7330
+ this.isInMemory = options.inMemory;
7331
+ }
7332
+ if (this.isInMemory) {
7333
+ this.needTotal = false;
7334
+ }
7266
7335
  this._columns = new _data_column__WEBPACK_IMPORTED_MODULE_0__[/* DataColumnList */ "c"]();
7336
+ this.onUpdate = options.onUpdate;
7267
7337
  if (options.columns) {
7268
7338
  for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {
7269
7339
  var colDesc = _a[_i];
@@ -7294,7 +7364,7 @@ var EasyDataTable = /** @class */ (function () {
7294
7364
  this._chunkSize = value;
7295
7365
  this.total = 0;
7296
7366
  this.needTotal = !this.elasticChunks;
7297
- this.chunkMap = {};
7367
+ this.cachedRows = [];
7298
7368
  },
7299
7369
  enumerable: true,
7300
7370
  configurable: true
@@ -7307,7 +7377,7 @@ var EasyDataTable = /** @class */ (function () {
7307
7377
  this._elasticChunks = value;
7308
7378
  this.total = 0;
7309
7379
  this.needTotal = !this.elasticChunks;
7310
- this.chunkMap = {};
7380
+ this.cachedRows = [];
7311
7381
  },
7312
7382
  enumerable: true,
7313
7383
  configurable: true
@@ -7335,22 +7405,12 @@ var EasyDataTable = /** @class */ (function () {
7335
7405
  endIndex = this.total;
7336
7406
  }
7337
7407
  }
7338
- var lbChunk = Math.trunc(fromIndex / this._chunkSize);
7339
- var ubChunk = Math.trunc((endIndex - 1) / this._chunkSize);
7340
- var allChunksCached = true;
7341
- for (var i = lbChunk; i <= ubChunk; i++) {
7342
- if (!this.chunkMap[i]) {
7343
- allChunksCached = false;
7344
- break;
7345
- }
7408
+ if (this.isInMemory && endIndex > this.cachedRows.length) {
7409
+ endIndex = this.cachedRows.length;
7346
7410
  }
7411
+ var allChunksCached = endIndex <= this.cachedRows.length;
7347
7412
  if (allChunksCached) {
7348
- var resultArr = [];
7349
- for (var i = lbChunk; i <= ubChunk; i++) {
7350
- resultArr = resultArr.concat(this.chunkMap[i].rows);
7351
- }
7352
- var firstChunkOffset = this.chunkMap[lbChunk].offset;
7353
- return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));
7413
+ return Promise.resolve(this.cachedRows.slice(fromIndex, endIndex));
7354
7414
  }
7355
7415
  //if loader is not defined
7356
7416
  if (!this.loader) {
@@ -7361,53 +7421,34 @@ var EasyDataTable = /** @class */ (function () {
7361
7421
  if (this.needTotal) {
7362
7422
  this.needTotal = false;
7363
7423
  }
7364
- var limit = this._chunkSize * (ubChunk - lbChunk + 1);
7365
- if (this.elasticChunks)
7366
- limit++;
7367
- return this.loader.loadChunk({
7368
- offset: lbChunk * this._chunkSize,
7424
+ var offset = this.cachedRows.length;
7425
+ var limit = endIndex - offset;
7426
+ if (limit < this._chunkSize) {
7427
+ limit = this._chunkSize;
7428
+ }
7429
+ var resultPromise = this.loader.loadChunk({
7430
+ offset: offset,
7369
7431
  limit: limit,
7370
7432
  needTotal: needTotal
7371
7433
  })
7372
7434
  .then(function (result) {
7373
- var chunks = result.table.getCachedChunks();
7374
7435
  if (needTotal) {
7375
7436
  _this.total = result.total;
7376
- if (endIndex > _this.total) {
7377
- endIndex = _this.total;
7378
- }
7379
7437
  }
7380
- var index = lbChunk;
7381
- for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {
7382
- var chunk = chunks_1[_i];
7383
- _this.chunkMap[index] = {
7384
- offset: index * _this._chunkSize,
7385
- rows: chunk.rows
7386
- };
7387
- index++;
7438
+ Array.prototype.push.apply(_this.cachedRows, result.table.getCachedRows());
7439
+ if (endIndex > _this.cachedRows.length) {
7440
+ endIndex = _this.cachedRows.length;
7388
7441
  }
7389
7442
  if (_this.elasticChunks) {
7390
7443
  var count_1 = result.table.getCachedCount();
7391
- if (count_1 > 0) {
7392
- var chunk = _this.chunkMap[index - 1];
7393
- if (count_1 === limit) {
7394
- chunk.rows.splice(chunk.rows.length - 1, 1);
7395
- if (chunk.rows.length == 0) {
7396
- delete _this.chunkMap[index - 1];
7397
- }
7398
- }
7399
- if (count_1 < limit) {
7400
- _this.total = _this.getCachedCount();
7401
- }
7444
+ if (count_1 < limit) {
7445
+ _this.total = _this.cachedRows.length;
7402
7446
  }
7403
7447
  }
7404
- var resultArr = [];
7405
- for (var i = lbChunk; i <= ubChunk; i++) {
7406
- resultArr = resultArr.concat(_this.chunkMap[i].rows);
7407
- }
7408
- var firstChunkOffset = _this.chunkMap[lbChunk].offset;
7409
- return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);
7448
+ _this.fireUpdated();
7449
+ return _this.cachedRows.slice(fromIndex, endIndex);
7410
7450
  });
7451
+ return resultPromise;
7411
7452
  };
7412
7453
  EasyDataTable.prototype.getRow = function (index) {
7413
7454
  return this.getRows({ offset: index, limit: 1 })
@@ -7419,14 +7460,13 @@ var EasyDataTable = /** @class */ (function () {
7419
7460
  EasyDataTable.prototype.setTotal = function (total) {
7420
7461
  this.total = total;
7421
7462
  this.needTotal = false;
7422
- this.chunkMap = {};
7423
7463
  };
7424
7464
  EasyDataTable.prototype.getCachedCount = function () {
7425
- return this.getCachedRows().length;
7465
+ return this.cachedRows.length;
7426
7466
  };
7427
7467
  EasyDataTable.prototype.clear = function () {
7428
7468
  this.columns.clear();
7429
- this.chunkMap = {};
7469
+ this.cachedRows = [];
7430
7470
  this.total = 0;
7431
7471
  this.needTotal = !this._elasticChunks;
7432
7472
  };
@@ -7459,60 +7499,33 @@ var EasyDataTable = /** @class */ (function () {
7459
7499
  }
7460
7500
  return null;
7461
7501
  };
7462
- EasyDataTable.prototype.addRow = function (rowOrValue) {
7502
+ EasyDataTable.prototype.addRow = function (rowOrValues) {
7463
7503
  var newRow;
7464
- if (Array.isArray(rowOrValue)) {
7504
+ if (Array.isArray(rowOrValues)) {
7505
+ var values = rowOrValues;
7465
7506
  var dateIdx = this._columns.getDateColumnIndexes();
7466
7507
  if (dateIdx.length > 0) {
7467
7508
  for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {
7468
7509
  var idx = dateIdx_1[_i];
7469
- if (rowOrValue[idx]) {
7470
- rowOrValue[idx] = this.mapDate(rowOrValue[idx], this._columns.get(idx).type);
7510
+ if (values[idx]) {
7511
+ values[idx] = this.mapDate(values[idx], this._columns.get(idx).type);
7471
7512
  }
7472
7513
  }
7473
7514
  }
7474
- newRow = new _data_row__WEBPACK_IMPORTED_MODULE_1__[/* DataRow */ "a"](this._columns, rowOrValue);
7515
+ newRow = new _data_row__WEBPACK_IMPORTED_MODULE_1__[/* DataRow */ "a"](this._columns, values);
7475
7516
  }
7476
7517
  else {
7477
- newRow = this.createRow(rowOrValue);
7478
- }
7479
- var lastChunk = this.getLastChunk();
7480
- if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {
7481
- lastChunk = this.createChunk();
7518
+ newRow = this.createRow(rowOrValues);
7482
7519
  }
7483
- lastChunk.rows.push(newRow);
7520
+ this.cachedRows.push(newRow);
7484
7521
  var cachedTotal = this.getCachedCount();
7485
7522
  if (cachedTotal > this.total) {
7486
7523
  this.total = cachedTotal;
7487
7524
  }
7488
7525
  return newRow;
7489
7526
  };
7490
- EasyDataTable.prototype.createChunk = function (index) {
7491
- if (typeof index == 'undefined') {
7492
- index = this.getLastChunkIndex() + 1;
7493
- }
7494
- var chunk = { offset: index * this._chunkSize, rows: [] };
7495
- this.chunkMap[index] = chunk;
7496
- return chunk;
7497
- };
7498
- EasyDataTable.prototype.getLastChunkIndex = function () {
7499
- var keys = Object.keys(this.chunkMap);
7500
- return keys.length > 0
7501
- ? parseInt(keys[keys.length - 1])
7502
- : -1;
7503
- };
7504
- EasyDataTable.prototype.getLastChunk = function () {
7505
- var index = this.getLastChunkIndex();
7506
- return index > -1
7507
- ? this.chunkMap[index]
7508
- : null;
7509
- };
7510
7527
  EasyDataTable.prototype.getCachedRows = function () {
7511
- return this.getCachedChunks()
7512
- .reduce(function (acc, v) { return acc.concat(v.rows); }, []);
7513
- };
7514
- EasyDataTable.prototype.getCachedChunks = function () {
7515
- return Object.values(this.chunkMap);
7528
+ return this.cachedRows;
7516
7529
  };
7517
7530
  EasyDataTable.prototype.totalIsKnown = function () {
7518
7531
  if (this.elasticChunks) {
@@ -7521,24 +7534,30 @@ var EasyDataTable = /** @class */ (function () {
7521
7534
  }
7522
7535
  return !this.needTotal;
7523
7536
  };
7537
+ EasyDataTable.prototype.fireUpdated = function () {
7538
+ if (this.onUpdate) {
7539
+ this.onUpdate(this);
7540
+ }
7541
+ };
7524
7542
  return EasyDataTable;
7525
7543
  }());
7526
7544
 
7527
7545
  //# sourceMappingURL=easy_data_table.js.map
7528
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
7546
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))
7529
7547
 
7530
7548
  /***/ }),
7531
- /* 28 */
7549
+ /* 29 */
7532
7550
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7533
7551
 
7534
7552
  "use strict";
7535
7553
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EasyGrid; });
7536
7554
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
7537
- /* harmony import */ var _utils_drag_manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
7555
+ /* harmony import */ var _utils_drag_manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
7538
7556
  /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
7539
7557
  /* harmony import */ var _utils_ui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
7540
- /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
7541
- /* harmony import */ var _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9);
7558
+ /* harmony import */ var _easy_grid_options__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12);
7559
+ /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8);
7560
+ /* harmony import */ var _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13);
7542
7561
  var __assign = (undefined && undefined.__assign) || function () {
7543
7562
  __assign = Object.assign || function(t) {
7544
7563
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -7550,6 +7569,14 @@ var __assign = (undefined && undefined.__assign) || function () {
7550
7569
  };
7551
7570
  return __assign.apply(this, arguments);
7552
7571
  };
7572
+ var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
7573
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
7574
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
7575
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
7576
+ r[k] = a[j];
7577
+ return r;
7578
+ };
7579
+
7553
7580
 
7554
7581
 
7555
7582
 
@@ -7582,6 +7609,35 @@ var EasyGrid = /** @class */ (function () {
7582
7609
  pageSize: 30,
7583
7610
  pageSizeItems: [20, 30, 50, 100, 200]
7584
7611
  },
7612
+ columnWidths: {
7613
+ autoResize: _easy_grid_options__WEBPACK_IMPORTED_MODULE_4__[/* AutoResizeColumns */ "a"].Once,
7614
+ stringColumns: {
7615
+ min: 100,
7616
+ max: 500,
7617
+ default: 250
7618
+ },
7619
+ numberColumns: {
7620
+ min: 60,
7621
+ default: 120
7622
+ },
7623
+ boolColumns: {
7624
+ min: 50,
7625
+ default: 80
7626
+ },
7627
+ dateColumns: {
7628
+ min: 80,
7629
+ default: 200
7630
+ },
7631
+ otherColumns: {
7632
+ min: 100,
7633
+ max: 500,
7634
+ default: 250
7635
+ },
7636
+ rowNumColumn: {
7637
+ min: 40,
7638
+ default: 60
7639
+ }
7640
+ },
7585
7641
  addColumns: false,
7586
7642
  viewportRowsCount: null,
7587
7643
  showActiveRow: true
@@ -7589,7 +7645,6 @@ var EasyGrid = /** @class */ (function () {
7589
7645
  this.rowsOnPagePromise = null;
7590
7646
  this.containerInitialHeight = 0;
7591
7647
  this.firstRender = true;
7592
- this.compareValues = this.strictCompare;
7593
7648
  this.prevRowTotals = null;
7594
7649
  this.landingIndex = -1;
7595
7650
  this.landingSlot = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7601,18 +7656,55 @@ var EasyGrid = /** @class */ (function () {
7601
7656
  if (options && options.paging) {
7602
7657
  options.paging = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].assign(this.defaultDataGridOptions.paging, options.paging);
7603
7658
  }
7604
- this.options = __assign({}, this.defaultDataGridOptions, options);
7659
+ this.options = this.mergeOptions(options);
7660
+ this.processColumnWidthsOptions();
7605
7661
  if (!this.options.slot)
7606
7662
  throw Error('"slot" parameter is required to initialize EasyDataGrid');
7607
7663
  if (!this.options.dataTable)
7608
7664
  throw Error('"dataTable" parameter is required to initialize EasyDataGrid');
7609
7665
  this.dataTable = options.dataTable;
7610
7666
  this.eventEmitter = new _easydata_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](this);
7611
- this.cellRendererStore = new _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_5__[/* GridCellRendererStore */ "c"](options);
7612
- this.columns = new _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__[/* GridColumnList */ "c"](this.dataTable.columns, this);
7667
+ this.cellRendererStore = new _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_6__[/* GridCellRendererStore */ "c"](options);
7668
+ this.columns = new _easy_grid_columns__WEBPACK_IMPORTED_MODULE_5__[/* GridColumnList */ "c"](this.dataTable.columns, this);
7613
7669
  this.setSlot(this.options.slot);
7614
7670
  this.init(this.options);
7615
7671
  }
7672
+ EasyGrid.prototype.mergeOptions = function (options) {
7673
+ var colWidthOptions = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].assignDeep({}, this.defaultDataGridOptions.columnWidths, options.columnWidths);
7674
+ var pagingOptions = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].assignDeep({}, this.defaultDataGridOptions.paging, options.paging);
7675
+ var result = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].assign({}, this.defaultDataGridOptions, options);
7676
+ result.columnWidths = colWidthOptions;
7677
+ result.paging = pagingOptions;
7678
+ return result;
7679
+ };
7680
+ EasyGrid.prototype.processColumnWidthsOptions = function () {
7681
+ var widthOptions = this.options.columnWidths;
7682
+ if (!widthOptions)
7683
+ return;
7684
+ //string columns
7685
+ _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getStringDataTypes().forEach(function (dataType) {
7686
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.stringColumns), widthOptions[dataType]);
7687
+ });
7688
+ //numeric columns
7689
+ _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getNumericDataTypes().forEach(function (dataType) {
7690
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.numberColumns), widthOptions[dataType]);
7691
+ });
7692
+ //bool columns
7693
+ widthOptions[_easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool] = __assign(__assign({}, widthOptions.boolColumns), widthOptions[_easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool]);
7694
+ //date columns
7695
+ _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getDateDataTypes().forEach(function (dataType) {
7696
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.dateColumns), widthOptions[dataType]);
7697
+ });
7698
+ //other columns
7699
+ var knownTypes = __spreadArrays(_easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getStringDataTypes(), _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getNumericDataTypes(), _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getDateDataTypes(), [
7700
+ _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool
7701
+ ]);
7702
+ _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getAllDataTypes().forEach(function (dataType) {
7703
+ if (!(dataType in knownTypes)) {
7704
+ widthOptions[dataType] = __assign(__assign({}, widthOptions.otherColumns), widthOptions[dataType]);
7705
+ }
7706
+ });
7707
+ };
7616
7708
  EasyGrid.prototype.setSlot = function (slot) {
7617
7709
  if (typeof slot === 'string') {
7618
7710
  if (slot.length) {
@@ -7759,10 +7851,20 @@ var EasyGrid = /** @class */ (function () {
7759
7851
  }
7760
7852
  else {
7761
7853
  setTimeout(function () {
7762
- _this.updateHeight();
7763
- _this.firstRender = false;
7854
+ _this.updateHeight()
7855
+ .then(function () {
7856
+ _this.firstRender = false;
7857
+ });
7764
7858
  }, 100);
7765
7859
  }
7860
+ var needAutoResize = this.options.columnWidths.autoResize !== _easy_grid_options__WEBPACK_IMPORTED_MODULE_4__[/* AutoResizeColumns */ "a"].Never;
7861
+ if (needAutoResize) {
7862
+ this.bodyCellContainerDiv.style.visibility = 'hidden';
7863
+ setTimeout(function () {
7864
+ _this.resizeColumns();
7865
+ _this.bodyCellContainerDiv.style.visibility = null;
7866
+ }, 20);
7867
+ }
7766
7868
  };
7767
7869
  EasyGrid.prototype.updateHeight = function () {
7768
7870
  var _this = this;
@@ -7839,7 +7941,7 @@ var EasyGrid = /** @class */ (function () {
7839
7941
  var _this = this;
7840
7942
  var colBuilder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
7841
7943
  .addClass(this.cssPrefix + "-header-cell")
7842
- .data('col-idx', "" + (index + 1))
7944
+ .data('col-idx', "" + index)
7843
7945
  .setStyle('width', column.width + "px");
7844
7946
  if (column.dataColumn) {
7845
7947
  colBuilder
@@ -7877,14 +7979,6 @@ var EasyGrid = /** @class */ (function () {
7877
7979
  }
7878
7980
  return colDiv;
7879
7981
  };
7880
- EasyGrid.prototype.strictCompare = function (value1, value2) {
7881
- return value1 !== value2;
7882
- };
7883
- EasyGrid.prototype.caseInsensitiveCompare = function (value1, value2) {
7884
- var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
7885
- var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
7886
- return val1 !== val2;
7887
- };
7888
7982
  EasyGrid.prototype.renderBody = function () {
7889
7983
  var _this = this;
7890
7984
  this.bodyDiv = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7898,10 +7992,6 @@ var EasyGrid = /** @class */ (function () {
7898
7992
  .addClass(this.cssPrefix + "-cell-container")
7899
7993
  .toDOM();
7900
7994
  var showAggrs = this.canShowAggregates();
7901
- this.compareValues = this.caseInsensitiveCompare;
7902
- if (showAggrs && this.options.aggregates.settings.caseSensitiveGroups) {
7903
- this.compareValues = this.strictCompare;
7904
- }
7905
7995
  if (this.dataTable) {
7906
7996
  this.showProgress();
7907
7997
  this.rowsOnPagePromise = this.getRowsToRender()
@@ -7911,15 +8001,22 @@ var EasyGrid = /** @class */ (function () {
7911
8001
  //prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)
7912
8002
  _this.bodyCellContainerDiv.innerHTML = '';
7913
8003
  _this.prevRowTotals = null;
8004
+ var rowsToRender = 0;
7914
8005
  if (rows.length) {
7915
8006
  var groups_1 = showAggrs
7916
8007
  ? _this.options.aggregates.settings.getGroups()
7917
8008
  : [];
8009
+ rowsToRender = (rows.length < _this.pagination.pageSize)
8010
+ ? rows.length
8011
+ : _this.pagination.pageSize;
7918
8012
  rows.forEach(function (row, index) {
7919
8013
  if (showAggrs)
7920
8014
  _this.updateTotalsState(groups_1, row);
7921
- var tr = _this.renderRow(row, index);
7922
- _this.bodyCellContainerDiv.appendChild(tr);
8015
+ //we don't actually render the last row
8016
+ if (index < rowsToRender) {
8017
+ var tr = _this.renderRow(row, index);
8018
+ _this.bodyCellContainerDiv.appendChild(tr);
8019
+ }
7923
8020
  });
7924
8021
  var showGrandTotalsOnEachPage = _this.options.aggregates && _this.options.aggregates.showGrandTotalsOnEachPage;
7925
8022
  if (showAggrs && (_this.isLastPage() || showGrandTotalsOnEachPage)) {
@@ -7930,7 +8027,7 @@ var EasyGrid = /** @class */ (function () {
7930
8027
  var containerWidth = _this.getContainerWidth();
7931
8028
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(_this.bodyCellContainerDiv)
7932
8029
  .setStyle('width', containerWidth + "px");
7933
- return rows.length;
8030
+ return rowsToRender;
7934
8031
  })
7935
8032
  .catch(function (error) { console.error(error); return 0; });
7936
8033
  }
@@ -7938,7 +8035,7 @@ var EasyGrid = /** @class */ (function () {
7938
8035
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(_this.headerViewportDiv)
7939
8036
  .setStyle('margin-left', "-" + _this.bodyViewportDiv.scrollLeft + "px");
7940
8037
  });
7941
- this.bodyViewportDiv.addEventListener('keydown', this.onVieportKeydown.bind(this));
8038
+ this.bodyViewportDiv.addEventListener('keydown', this.onViewportKeydown.bind(this));
7942
8039
  };
7943
8040
  EasyGrid.prototype.isLastPage = function () {
7944
8041
  if (this.dataTable.elasticChunks) {
@@ -7964,7 +8061,7 @@ var EasyGrid = /** @class */ (function () {
7964
8061
  var group = groups[level - 1];
7965
8062
  for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
7966
8063
  var col = _a[_i];
7967
- if (this.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
8064
+ if (!aggrSettings.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
7968
8065
  changeLevel = level;
7969
8066
  break;
7970
8067
  }
@@ -8025,8 +8122,8 @@ var EasyGrid = /** @class */ (function () {
8025
8122
  });
8026
8123
  var aggrContainer = this.options.aggregates.calculator.getAggrContainer();
8027
8124
  var aggrCols = aggrSettings.getAggregates().map(function (c) { return c.colId; });
8028
- var key = this.buildGroupKey(group, row);
8029
- aggrContainer.getAggregates(level, key)
8125
+ var key = aggrSettings.buildGroupKey(group, row);
8126
+ aggrContainer.getAggregateData(level, key)
8030
8127
  .then(function (values) {
8031
8128
  for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
8032
8129
  var aggrColId = aggrCols_1[_i];
@@ -8067,34 +8164,20 @@ var EasyGrid = /** @class */ (function () {
8067
8164
  }
8068
8165
  }
8069
8166
  if (groupFooterTemplate) {
8070
- var cellDiv_1 = _this.renderCell(column, colIndex, val, rowElement);
8167
+ var cellDiv_1 = _this.renderCell(column, index, val, rowElement);
8071
8168
  var innerCell = cellDiv_1.firstChild;
8072
8169
  val = innerCell.innerHTML;
8073
8170
  val = _this.applyGroupColumnTemplate(groupFooterTemplate, val, values[aggrSettings.COUNT_FIELD_NAME]);
8074
8171
  }
8075
8172
  }
8076
- var cellDiv = _this.renderCell(column, colIndex, val, rowElement);
8173
+ var cellDiv = _this.renderCell(column, index, val, rowElement);
8077
8174
  rowElement.appendChild(cellDiv);
8078
8175
  });
8079
8176
  })
8080
8177
  .catch(function (error) { return console.error(error); });
8081
8178
  return rowElement;
8082
8179
  };
8083
- EasyGrid.prototype.buildGroupKey = function (group, row) {
8084
- var aggrSettings = this.options.aggregates.settings;
8085
- var caseInsensitive = aggrSettings && !aggrSettings.caseSensitiveGroups;
8086
- var result = {};
8087
- for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
8088
- var colId = _a[_i];
8089
- var keyVal = row.getValue(colId);
8090
- if (caseInsensitive && typeof (keyVal) === 'string') {
8091
- keyVal = keyVal.toLowerCase();
8092
- }
8093
- result[colId] = keyVal;
8094
- }
8095
- return result;
8096
- };
8097
- EasyGrid.prototype.onVieportKeydown = function (ev) {
8180
+ EasyGrid.prototype.onViewportKeydown = function (ev) {
8098
8181
  if (this.options.showActiveRow) {
8099
8182
  var rowCount = this.bodyCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-row").length;
8100
8183
  var newValue = void 0;
@@ -8148,13 +8231,17 @@ var EasyGrid = /** @class */ (function () {
8148
8231
  }
8149
8232
  }
8150
8233
  };
8234
+ /** Returns a promise with the list of the rows to render on one page.
8235
+ * The list contains pageSize+1 row to make it possible
8236
+ * to render the totals row (if it appears to be on the edge between pages)
8237
+ */
8151
8238
  EasyGrid.prototype.getRowsToRender = function () {
8152
8239
  if (this.options.paging.enabled === false) {
8153
8240
  return Promise.resolve(this.dataTable.getCachedRows());
8154
8241
  }
8155
8242
  return this.dataTable.getRows({
8156
- page: this.pagination.page,
8157
- pageSize: this.pagination.pageSize
8243
+ offset: (this.pagination.page - 1) * this.pagination.pageSize,
8244
+ limit: this.pagination.pageSize + 1
8158
8245
  })
8159
8246
  .catch(function (error) {
8160
8247
  console.error(error);
@@ -8250,13 +8337,13 @@ var EasyGrid = /** @class */ (function () {
8250
8337
  if (this.options.showActiveRow && index == this.activeRowIndex) {
8251
8338
  rowBuilder.addClass(this.cssPrefix + "-row-active");
8252
8339
  }
8253
- this.columns.getItems().forEach(function (column) {
8340
+ this.columns.getItems().forEach(function (column, index) {
8254
8341
  if (!column.isVisible) {
8255
8342
  return;
8256
8343
  }
8257
8344
  var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);
8258
8345
  var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);
8259
- rowElement.appendChild(_this.renderCell(column, colindex, val, rowElement));
8346
+ rowElement.appendChild(_this.renderCell(column, index, val, rowElement));
8260
8347
  });
8261
8348
  return rowElement;
8262
8349
  };
@@ -8266,13 +8353,13 @@ var EasyGrid = /** @class */ (function () {
8266
8353
  .data('col-idx', "" + colIndex)
8267
8354
  .attr('tabindex', '-1')
8268
8355
  .setStyle('width', column.width + "px");
8269
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__[/* GridColumnAlign */ "b"].LEFT) {
8356
+ if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_5__[/* GridColumnAlign */ "b"].LEFT) {
8270
8357
  builder.addClass(this.cssPrefix + "-cell-align-left");
8271
8358
  }
8272
- else if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__[/* GridColumnAlign */ "b"].RIGHT) {
8359
+ else if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_5__[/* GridColumnAlign */ "b"].RIGHT) {
8273
8360
  builder.addClass(this.cssPrefix + "-cell-align-right");
8274
8361
  }
8275
- else if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__[/* GridColumnAlign */ "b"].CENTER) {
8362
+ else if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_5__[/* GridColumnAlign */ "b"].CENTER) {
8276
8363
  builder.addClass(this.cssPrefix + "-cell-align-center");
8277
8364
  }
8278
8365
  if (column.cellRenderer) {
@@ -8528,14 +8615,93 @@ var EasyGrid = /** @class */ (function () {
8528
8615
  EasyGrid.prototype.focus = function () {
8529
8616
  this.bodyViewportDiv.focus();
8530
8617
  };
8618
+ EasyGrid.prototype.resizeColumns = function () {
8619
+ if (this.options.columnWidths.autoResize === _easy_grid_options__WEBPACK_IMPORTED_MODULE_4__[/* AutoResizeColumns */ "a"].Never)
8620
+ return;
8621
+ var containerWidth = this.bodyCellContainerDiv.style.width;
8622
+ this.bodyCellContainerDiv.style.visibility = 'hidden';
8623
+ this.bodyCellContainerDiv.style.width = '1px';
8624
+ var sumWidth = 0;
8625
+ var columns = this.columns.getItems();
8626
+ var headerCells = this.headerCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-header-cell");
8627
+ var headerIdx = 0;
8628
+ var _loop_1 = function (idx) {
8629
+ var column = columns[idx];
8630
+ if (!column.isVisible)
8631
+ return "continue";
8632
+ var calculatedWidth = this_1.options.columnWidths.autoResize !== _easy_grid_options__WEBPACK_IMPORTED_MODULE_4__[/* AutoResizeColumns */ "a"].Always && column.dataColumn
8633
+ ? column.dataColumn.calculatedWidth
8634
+ : 0;
8635
+ var cellValues = this_1.bodyCellContainerDiv.querySelectorAll("." + this_1.cssPrefix + "-cell[data-col-idx=\"" + idx + "\"] > ." + this_1.cssPrefix + "-cell-value");
8636
+ var maxWidth = 0;
8637
+ if (calculatedWidth > 0) {
8638
+ sumWidth += calculatedWidth;
8639
+ column.width = calculatedWidth;
8640
+ cellValues.forEach(function (value) {
8641
+ value.parentElement.style.width = calculatedWidth + "px";
8642
+ });
8643
+ headerCells[headerIdx].style.width = calculatedWidth + "px";
8644
+ headerIdx++;
8645
+ }
8646
+ else if (cellValues.length > 0) {
8647
+ cellValues.forEach(function (value) {
8648
+ value.parentElement.style.width = null;
8649
+ var width = value.parentElement.offsetWidth;
8650
+ if (width > maxWidth) {
8651
+ maxWidth = width;
8652
+ }
8653
+ });
8654
+ maxWidth += 3;
8655
+ var maxOption = column.isRowNum
8656
+ ? this_1.options.columnWidths.rowNumColumn.max || 500
8657
+ : this_1.options.columnWidths[column.dataColumn.type].max || 2000;
8658
+ var minOption = column.isRowNum
8659
+ ? this_1.options.columnWidths.rowNumColumn.min || 0
8660
+ : this_1.options.columnWidths[column.dataColumn.type].min || 20;
8661
+ if (maxWidth > maxOption) {
8662
+ maxWidth = maxOption;
8663
+ }
8664
+ if (maxWidth < minOption) {
8665
+ maxWidth = minOption;
8666
+ }
8667
+ if (_easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].isNumericType(column.type)) {
8668
+ //increase the calculated width in 1.3 times for numeric columns
8669
+ maxWidth = Math.round(maxWidth * 1.3);
8670
+ }
8671
+ sumWidth += maxWidth;
8672
+ column.width = maxWidth;
8673
+ cellValues.forEach(function (value) {
8674
+ value.parentElement.style.width = maxWidth + "px";
8675
+ });
8676
+ headerCells[headerIdx].style.width = maxWidth + "px";
8677
+ headerIdx++;
8678
+ if (column.dataColumn) {
8679
+ column.dataColumn.calculatedWidth = maxWidth;
8680
+ }
8681
+ }
8682
+ };
8683
+ var this_1 = this;
8684
+ for (var idx = 0; idx < this.columns.count; idx++) {
8685
+ _loop_1(idx);
8686
+ }
8687
+ if (sumWidth > 0) {
8688
+ this.bodyCellContainerDiv.style.width = sumWidth + "px";
8689
+ this.headerCellContainerDiv.style.width = sumWidth + "px";
8690
+ }
8691
+ else {
8692
+ this.bodyCellContainerDiv.style.width = containerWidth;
8693
+ this.headerCellContainerDiv.style.width = containerWidth;
8694
+ }
8695
+ this.bodyCellContainerDiv.style.visibility = null;
8696
+ };
8531
8697
  return EasyGrid;
8532
8698
  }());
8533
8699
 
8534
8700
  //# sourceMappingURL=easy_grid.js.map
8535
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
8701
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
8536
8702
 
8537
8703
  /***/ }),
8538
- /* 29 */
8704
+ /* 30 */
8539
8705
  /***/ (function(module, exports, __webpack_require__) {
8540
8706
 
8541
8707
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -9712,10 +9878,10 @@ return Promise$1;
9712
9878
 
9713
9879
  //# sourceMappingURL=es6-promise.map
9714
9880
 
9715
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
9881
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(26), __webpack_require__(27)))
9716
9882
 
9717
9883
  /***/ }),
9718
- /* 30 */
9884
+ /* 31 */
9719
9885
  /***/ (function(module, exports, __webpack_require__) {
9720
9886
 
9721
9887
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -10892,10 +11058,10 @@ return Promise$1;
10892
11058
 
10893
11059
  //# sourceMappingURL=es6-promise.map
10894
11060
 
10895
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(39), __webpack_require__(40)))
11061
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40), __webpack_require__(41)))
10896
11062
 
10897
11063
  /***/ }),
10898
- /* 31 */
11064
+ /* 32 */
10899
11065
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10900
11066
 
10901
11067
  "use strict";
@@ -10926,13 +11092,13 @@ var HttpActionResult = /** @class */ (function () {
10926
11092
  //# sourceMappingURL=http_action_result.js.map
10927
11093
 
10928
11094
  /***/ }),
10929
- /* 32 */
11095
+ /* 33 */
10930
11096
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10931
11097
 
10932
11098
  "use strict";
10933
11099
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DateTimeValidator; });
10934
11100
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
10935
- /* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
11101
+ /* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
10936
11102
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
10937
11103
  var __extends = (undefined && undefined.__extends) || (function () {
10938
11104
  var extendStatics = function (d, b) {
@@ -10980,48 +11146,48 @@ var DateTimeValidator = /** @class */ (function (_super) {
10980
11146
  //# sourceMappingURL=datetime_validator.js.map
10981
11147
 
10982
11148
  /***/ }),
10983
- /* 33 */
11149
+ /* 34 */
10984
11150
  /***/ (function(module, exports, __webpack_require__) {
10985
11151
 
10986
- __webpack_require__(34);
10987
- module.exports = __webpack_require__(41);
11152
+ __webpack_require__(35);
11153
+ module.exports = __webpack_require__(42);
10988
11154
 
10989
11155
 
10990
11156
  /***/ }),
10991
- /* 34 */
11157
+ /* 35 */
10992
11158
  /***/ (function(module, exports, __webpack_require__) {
10993
11159
 
10994
- __webpack_require__(35);
10995
11160
  __webpack_require__(36);
10996
11161
  __webpack_require__(37);
10997
- __webpack_require__(38);
11162
+ __webpack_require__(38);
11163
+ __webpack_require__(39);
10998
11164
 
10999
11165
  /***/ }),
11000
- /* 35 */
11166
+ /* 36 */
11001
11167
  /***/ (function(module, exports, __webpack_require__) {
11002
11168
 
11003
11169
  // extracted by mini-css-extract-plugin
11004
11170
 
11005
11171
  /***/ }),
11006
- /* 36 */
11172
+ /* 37 */
11007
11173
  /***/ (function(module, exports, __webpack_require__) {
11008
11174
 
11009
11175
  // extracted by mini-css-extract-plugin
11010
11176
 
11011
11177
  /***/ }),
11012
- /* 37 */
11178
+ /* 38 */
11013
11179
  /***/ (function(module, exports, __webpack_require__) {
11014
11180
 
11015
11181
  // extracted by mini-css-extract-plugin
11016
11182
 
11017
11183
  /***/ }),
11018
- /* 38 */
11184
+ /* 39 */
11019
11185
  /***/ (function(module, exports, __webpack_require__) {
11020
11186
 
11021
11187
  // extracted by mini-css-extract-plugin
11022
11188
 
11023
11189
  /***/ }),
11024
- /* 39 */
11190
+ /* 40 */
11025
11191
  /***/ (function(module, exports) {
11026
11192
 
11027
11193
  // shim for using process in browser
@@ -11211,7 +11377,7 @@ process.umask = function() { return 0; };
11211
11377
 
11212
11378
 
11213
11379
  /***/ }),
11214
- /* 40 */
11380
+ /* 41 */
11215
11381
  /***/ (function(module, exports) {
11216
11382
 
11217
11383
  var g;
@@ -11237,7 +11403,7 @@ module.exports = g;
11237
11403
 
11238
11404
 
11239
11405
  /***/ }),
11240
- /* 41 */
11406
+ /* 42 */
11241
11407
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11242
11408
 
11243
11409
  "use strict";
@@ -11273,10 +11439,10 @@ var public_api = __webpack_require__(0);
11273
11439
  var lib_public_api = __webpack_require__(3);
11274
11440
 
11275
11441
  // EXTERNAL MODULE: ./dist/lib/filter/text_data_filter.js
11276
- var text_data_filter = __webpack_require__(21);
11442
+ var text_data_filter = __webpack_require__(22);
11277
11443
 
11278
11444
  // EXTERNAL MODULE: ./dist/lib/form/entity_edit_form.js
11279
- var entity_edit_form = __webpack_require__(22);
11445
+ var entity_edit_form = __webpack_require__(23);
11280
11446
 
11281
11447
  // EXTERNAL MODULE: ./dist/lib/utils/utils.js
11282
11448
  var utils = __webpack_require__(7);
@@ -11550,12 +11716,13 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11550
11716
  var lookupTable = new public_api["EasyDataTable"]({
11551
11717
  loader: {
11552
11718
  loadChunk: function (chunkParams) { return _this.context.getDataLoader()
11553
- .loadChunk(__assign({}, chunkParams, { id: lookupEntity.id })); }
11719
+ .loadChunk(__assign(__assign({}, chunkParams), { id: lookupEntity.id })); }
11554
11720
  }
11555
11721
  });
11556
11722
  _this.context.getDataLoader()
11557
- .loadChunk({ offset: 0, limit: 1000, needTotal: true, entityId: lookupEntity.id })
11723
+ .loadChunk({ offset: 0, limit: 1000, needTotal: true, sourceId: lookupEntity.id })
11558
11724
  .then(function (data) {
11725
+ var _a;
11559
11726
  var _loop_1 = function (col) {
11560
11727
  var attrs = lookupEntity.attributes.filter(function (attr) {
11561
11728
  return attr.id == col.id && (attr.isPrimaryKey || attr.showInLookup);
@@ -11564,13 +11731,13 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11564
11731
  lookupTable.columns.add(col);
11565
11732
  }
11566
11733
  };
11567
- for (var _i = 0, _a = data.table.columns.getItems(); _i < _a.length; _i++) {
11568
- var col = _a[_i];
11734
+ for (var _i = 0, _b = data.table.columns.getItems(); _i < _b.length; _i++) {
11735
+ var col = _b[_i];
11569
11736
  _loop_1(col);
11570
11737
  }
11571
11738
  lookupTable.setTotal(data.total);
11572
- for (var _b = 0, _c = data.table.getCachedRows(); _b < _c.length; _b++) {
11573
- var row = _c[_b];
11739
+ for (var _c = 0, _d = data.table.getCachedRows(); _c < _d.length; _c++) {
11740
+ var row = _d[_c];
11574
11741
  lookupTable.addRow(row);
11575
11742
  }
11576
11743
  var ds = new lib_public_api["DefaultDialogService"]();
@@ -11609,7 +11776,9 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11609
11776
  .join(', ');
11610
11777
  };
11611
11778
  if (selectedValue) {
11612
- _this.context.getEntity(selectedValue, lookupEntity.id)
11779
+ var attr_1 = lookupEntity.getFirstPrimaryAttr();
11780
+ var key = attr_1.id.substring(attr_1.id.lastIndexOf('.') + 1);
11781
+ _this.context.fetchRecord((_a = {}, _a[key] = selectedValue, _a), lookupEntity.id)
11613
11782
  .then(function (data) {
11614
11783
  if (data.entity) {
11615
11784
  updateSelectedValue(data.entity);
@@ -11657,7 +11826,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11657
11826
  }); });
11658
11827
  });
11659
11828
  };
11660
- EntityEditFormBuilder.prototype.setupDateTimeField = function (parent, attr, readOnly, value) {
11829
+ EntityEditFormBuilder.prototype.setupDateTimeField = function (parent, attr, value, readOnly, hidden) {
11661
11830
  var _this = this;
11662
11831
  var horizClass = isIE
11663
11832
  ? 'kfrm-fields-ie is-horizontal'
@@ -11678,6 +11847,8 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11678
11847
  .addClass(horizClass)
11679
11848
  .addChild('input', function (b) {
11680
11849
  inputEl = b.toDOM();
11850
+ b.name(attr.id);
11851
+ b.type(hidden ? 'hidden' : _this.resolveInputType(attr.dataType));
11681
11852
  if (readOnly) {
11682
11853
  b.attr('readonly', '');
11683
11854
  }
@@ -11701,8 +11872,6 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11701
11872
  }
11702
11873
  });
11703
11874
  }
11704
- b.name(attr.id);
11705
- b.type(_this.resolveInputType(attr.dataType));
11706
11875
  b.value((public_api["utils"].IsDefinedAndNotNull(value)
11707
11876
  ? public_api["utils"].dateTimeToStr(value, editFormat)
11708
11877
  : ''));
@@ -11744,7 +11913,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11744
11913
  }).toDOM(); });
11745
11914
  });
11746
11915
  };
11747
- EntityEditFormBuilder.prototype.setupListField = function (parent, attr, readOnly, values, value) {
11916
+ EntityEditFormBuilder.prototype.setupListField = function (parent, attr, value, values, readOnly) {
11748
11917
  var _this = this;
11749
11918
  Object(lib_public_api["domel"])(parent)
11750
11919
  .addChild('div', function (b) { return b
@@ -11777,12 +11946,14 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11777
11946
  b.attr('accept', accept);
11778
11947
  });
11779
11948
  };
11780
- EntityEditFormBuilder.prototype.setupTextField = function (parent, attr, readOnly, value) {
11949
+ EntityEditFormBuilder.prototype.setupTextField = function (parent, attr, value, readOnly, hidden) {
11781
11950
  var _this = this;
11782
11951
  Object(lib_public_api["domel"])(parent)
11783
11952
  .addChild('input', function (b) {
11784
- if (readOnly)
11953
+ if (readOnly) {
11785
11954
  b.attr('readonly', '');
11955
+ }
11956
+ b.type(hidden ? 'hidden' : _this.resolveInputType(attr.dataType));
11786
11957
  b.name(attr.id)
11787
11958
  .type(_this.resolveInputType(attr.dataType));
11788
11959
  if (attr.dataType == public_api["DataType"].Bool) {
@@ -11797,7 +11968,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11797
11968
  }
11798
11969
  });
11799
11970
  };
11800
- EntityEditFormBuilder.prototype.setupTextArea = function (parent, attr, readOnly, value) {
11971
+ EntityEditFormBuilder.prototype.setupTextArea = function (parent, attr, value, readOnly) {
11801
11972
  // feature: modify size in value editor ??
11802
11973
  Object(lib_public_api["domel"])(parent)
11803
11974
  .addChild('textarea', function (b) {
@@ -11805,6 +11976,9 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11805
11976
  b.attr('readonly', '');
11806
11977
  b.attr('name', attr.id);
11807
11978
  b.setStyle('height', "120px");
11979
+ b.value(public_api["utils"].IsDefinedAndNotNull(value)
11980
+ ? value.toString()
11981
+ : '');
11808
11982
  });
11809
11983
  };
11810
11984
  EntityEditFormBuilder.prototype.addFormField = function (parent, attr) {
@@ -11831,16 +12005,17 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11831
12005
  .setStyle('display', 'inline-block'); });
11832
12006
  }
11833
12007
  });
12008
+ var hidden = attr.isPrimaryKey;
11834
12009
  if (attr.kind === public_api["EntityAttrKind"].Lookup) {
11835
12010
  this.setupLookupField(parent, attr, readOnly, value);
11836
12011
  return;
11837
12012
  }
11838
12013
  switch (editor.tag) {
11839
12014
  case public_api["EditorTag"].DateTime:
11840
- this.setupDateTimeField(parent, attr, readOnly, value);
12015
+ this.setupDateTimeField(parent, attr, value, readOnly, hidden);
11841
12016
  break;
11842
12017
  case public_api["EditorTag"].List:
11843
- this.setupListField(parent, attr, readOnly, editor.values, value);
12018
+ this.setupListField(parent, attr, value, editor.values, readOnly);
11844
12019
  break;
11845
12020
  case public_api["EditorTag"].File:
11846
12021
  this.setupFileField(parent, attr, readOnly, editor.accept);
@@ -11848,10 +12023,10 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11848
12023
  case public_api["EditorTag"].Edit:
11849
12024
  default:
11850
12025
  if (editor.multiline) {
11851
- this.setupTextArea(parent, attr, readOnly, value);
12026
+ this.setupTextArea(parent, attr, value, readOnly);
11852
12027
  }
11853
12028
  else {
11854
- this.setupTextField(parent, attr, readOnly, value);
12029
+ this.setupTextField(parent, attr, value, readOnly, hidden);
11855
12030
  }
11856
12031
  break;
11857
12032
  }
@@ -11903,13 +12078,15 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11903
12078
  this.form['setHtmlInt'](formHtml);
11904
12079
  for (var _i = 0, _a = this.context.getActiveEntity().attributes; _i < _a.length; _i++) {
11905
12080
  var attr = _a[_i];
11906
- if (this.params.isEditForm) {
11907
- if (!attr.showOnEdit)
11908
- continue;
11909
- }
11910
- else {
11911
- if (!attr.showOnCreate)
11912
- continue;
12081
+ if (!attr.isPrimaryKey) {
12082
+ if (this.params.isEditForm) {
12083
+ if (!attr.showOnEdit)
12084
+ continue;
12085
+ }
12086
+ else {
12087
+ if (!attr.showOnCreate)
12088
+ continue;
12089
+ }
11913
12090
  }
11914
12091
  this.addFormField(fb.toDOM(), attr);
11915
12092
  }
@@ -11944,8 +12121,8 @@ var easy_data_server_loader_EasyDataServerLoader = /** @class */ (function () {
11944
12121
  }
11945
12122
  EasyDataServerLoader.prototype.loadChunk = function (params) {
11946
12123
  var _this = this;
11947
- var url = this.context.resolveEndpoint('GetEntities', { entityId: params.entityId || this.context.getActiveEntity().id });
11948
- delete params.entityId;
12124
+ var url = this.context.resolveEndpoint('FetchDataset', { sourceId: params.sourceId || this.context.getActiveEntity().id });
12125
+ delete params.sourceId;
11949
12126
  this.context.startProcess();
11950
12127
  var http = this.context.getHttpClient();
11951
12128
  return http.post(url, params)
@@ -11982,6 +12159,17 @@ var easy_data_server_loader_EasyDataServerLoader = /** @class */ (function () {
11982
12159
 
11983
12160
  //# sourceMappingURL=easy_data_server_loader.js.map
11984
12161
  // CONCATENATED MODULE: ./dist/lib/main/data_context.js
12162
+ var data_context_assign = (undefined && undefined.__assign) || function () {
12163
+ data_context_assign = Object.assign || function(t) {
12164
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
12165
+ s = arguments[i];
12166
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12167
+ t[p] = s[p];
12168
+ }
12169
+ return t;
12170
+ };
12171
+ return data_context_assign.apply(this, arguments);
12172
+ };
11985
12173
 
11986
12174
 
11987
12175
 
@@ -11994,9 +12182,8 @@ var data_context_DataContext = /** @class */ (function () {
11994
12182
  this.model = new public_api["MetaData"]();
11995
12183
  this.model.id = options.metaDataId || '__default';
11996
12184
  this.dataLoader = new easy_data_server_loader_EasyDataServerLoader(this);
11997
- this.data = new public_api["EasyDataTable"]({
11998
- loader: this.dataLoader
11999
- });
12185
+ var dataTableOptions = data_context_assign({ loader: this.dataLoader }, options.dataTable);
12186
+ this.data = new public_api["EasyDataTable"](dataTableOptions);
12000
12187
  this.setDefaultEndpoints(this.options.endpoint || '/api/easydata');
12001
12188
  }
12002
12189
  DataContext.prototype.getActiveEntity = function () {
@@ -12015,8 +12202,8 @@ var data_context_DataContext = /** @class */ (function () {
12015
12202
  DataContext.prototype.getDataLoader = function () {
12016
12203
  return this.dataLoader;
12017
12204
  };
12018
- DataContext.prototype.createFilter = function (entityId, data, isLookup) {
12019
- return new text_data_filter["a" /* TextDataFilter */](this.dataLoader, data || this.getData(), entityId || this.activeEntity.id, isLookup);
12205
+ DataContext.prototype.createFilter = function (sourceId, data, isLookup) {
12206
+ return new text_data_filter["a" /* TextDataFilter */](this.dataLoader, data || this.getData(), sourceId || this.activeEntity.id, isLookup);
12020
12207
  };
12021
12208
  DataContext.prototype.loadMetaData = function () {
12022
12209
  var _this = this;
@@ -12040,7 +12227,7 @@ var data_context_DataContext = /** @class */ (function () {
12040
12227
  DataContext.prototype.getHttpClient = function () {
12041
12228
  return this.http;
12042
12229
  };
12043
- DataContext.prototype.getEntities = function () {
12230
+ DataContext.prototype.fetchDataset = function () {
12044
12231
  var _this = this;
12045
12232
  this.data.clear();
12046
12233
  return this.dataLoader.loadChunk({ offset: 0, limit: this.data.chunkSize, needTotal: true })
@@ -12057,33 +12244,33 @@ var data_context_DataContext = /** @class */ (function () {
12057
12244
  return _this.data;
12058
12245
  });
12059
12246
  };
12060
- DataContext.prototype.getEntity = function (id, entityId) {
12247
+ DataContext.prototype.fetchRecord = function (keys, sourceId) {
12061
12248
  var _this = this;
12062
- var url = this.resolveEndpoint('GetEntity', { id: id,
12063
- entityId: entityId || this.activeEntity.id });
12249
+ var url = this.resolveEndpoint('FetchRecord', { sourceId: sourceId || this.activeEntity.id });
12064
12250
  this.startProcess();
12065
- return this.http.get(url).getPromise()
12251
+ return this.http.get(url, { queryParams: keys })
12066
12252
  .finally(function () { return _this.endProcess(); });
12067
12253
  };
12068
- DataContext.prototype.createEntity = function (obj, entityId) {
12254
+ DataContext.prototype.createRecord = function (obj, sourceId) {
12069
12255
  var _this = this;
12070
- var url = this.resolveEndpoint('CreateEntity', { entityId: entityId || this.activeEntity.id });
12256
+ var url = this.resolveEndpoint('CreateRecord', { sourceId: sourceId || this.activeEntity.id });
12071
12257
  this.startProcess();
12072
- return this.http.post(url, obj, { dataType: 'json' }).getPromise().finally(function () { return _this.endProcess(); });
12258
+ return this.http.post(url, obj, { dataType: 'json' })
12259
+ .finally(function () { return _this.endProcess(); });
12073
12260
  };
12074
- DataContext.prototype.updateEntity = function (id, obj, entityId) {
12261
+ DataContext.prototype.updateRecord = function (obj, sourceId) {
12075
12262
  var _this = this;
12076
- var url = this.resolveEndpoint('UpdateEntity', { id: id,
12077
- entityId: entityId || this.activeEntity.id });
12263
+ var url = this.resolveEndpoint('UpdateRecord', { sourceId: sourceId || this.activeEntity.id });
12078
12264
  this.startProcess();
12079
- return this.http.post(url, obj, { dataType: 'json' }).getPromise().finally(function () { return _this.endProcess(); });
12265
+ return this.http.post(url, obj, { dataType: 'json' })
12266
+ .finally(function () { return _this.endProcess(); });
12080
12267
  };
12081
- DataContext.prototype.deleteEntity = function (id, entityId) {
12268
+ DataContext.prototype.deleteRecord = function (obj, sourceId) {
12082
12269
  var _this = this;
12083
- var url = this.resolveEndpoint('DeleteEntity', { id: id,
12084
- entityId: entityId || this.activeEntity.id });
12270
+ var url = this.resolveEndpoint('DeleteRecord', { sourceId: sourceId || this.activeEntity.id });
12085
12271
  this.startProcess();
12086
- return this.http.post(url, null).getPromise().finally(function () { return _this.endProcess(); });
12272
+ return this.http.post(url, obj, { dataType: 'json' })
12273
+ .finally(function () { return _this.endProcess(); });
12087
12274
  };
12088
12275
  DataContext.prototype.setEndpoint = function (key, value) {
12089
12276
  this.endpoints.set(key, value);
@@ -12108,7 +12295,7 @@ var data_context_DataContext = /** @class */ (function () {
12108
12295
  if (opt == 'modelId') {
12109
12296
  optVal = this.model.getId();
12110
12297
  }
12111
- else if (opt == 'entityId') {
12298
+ else if (opt == 'sourceId') {
12112
12299
  optVal = this.activeEntity.id;
12113
12300
  }
12114
12301
  else {
@@ -12130,18 +12317,18 @@ var data_context_DataContext = /** @class */ (function () {
12130
12317
  };
12131
12318
  DataContext.prototype.setDefaultEndpoints = function (endpointBase) {
12132
12319
  this.setEnpointIfNotExist('GetMetaData', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}'));
12133
- this.setEnpointIfNotExist('GetEntities', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/fetch'));
12134
- this.setEnpointIfNotExist('GetEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/fetch/{id}'));
12135
- this.setEnpointIfNotExist('CreateEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/create'));
12136
- this.setEnpointIfNotExist('UpdateEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/update/{id}'));
12137
- this.setEnpointIfNotExist('DeleteEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/delete/{id}'));
12320
+ this.setEnpointIfNotExist('FetchDataset', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/sources/{sourceId}/fetch'));
12321
+ this.setEnpointIfNotExist('FetchRecord', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/sources/{sourceId}/fetch'));
12322
+ this.setEnpointIfNotExist('CreateRecord', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/sources/{sourceId}/create'));
12323
+ this.setEnpointIfNotExist('UpdateRecord', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/sources/{sourceId}/update'));
12324
+ this.setEnpointIfNotExist('DeleteRecord', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/sources/{sourceId}/delete'));
12138
12325
  };
12139
12326
  return DataContext;
12140
12327
  }());
12141
12328
 
12142
12329
  //# sourceMappingURL=data_context.js.map
12143
12330
  // EXTERNAL MODULE: ./dist/lib/validators/validator.js
12144
- var validator = __webpack_require__(10);
12331
+ var validator = __webpack_require__(9);
12145
12332
 
12146
12333
  // CONCATENATED MODULE: ./dist/lib/validators/type_validator.js
12147
12334
  var __extends = (undefined && undefined.__extends) || (function () {
@@ -12270,7 +12457,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12270
12457
  };
12271
12458
  EntityDataView.prototype.renderGrid = function () {
12272
12459
  var _this = this;
12273
- this.context.getEntities()
12460
+ this.context.fetchDataset()
12274
12461
  .then(function (result) {
12275
12462
  var gridSlot = document.createElement('div');
12276
12463
  _this.slot.appendChild(gridSlot);
@@ -12283,7 +12470,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12283
12470
  allowPageSizeChange: true,
12284
12471
  pageSizeItems: [15, 30, 50, 100, 200]
12285
12472
  },
12286
- addColumns: true,
12473
+ addColumns: _this.context.getActiveEntity().isEditable,
12287
12474
  addColumnsTitle: public_api["i18n"].getText('AddBtnTitle'),
12288
12475
  showActiveRow: false,
12289
12476
  onAddColumnClick: _this.addClickHandler.bind(_this),
@@ -12341,7 +12528,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12341
12528
  if (!form.validate())
12342
12529
  return false;
12343
12530
  form.getData()
12344
- .then(function (obj) { return _this.context.createEntity(obj); })
12531
+ .then(function (obj) { return _this.context.createRecord(obj); })
12345
12532
  .then(function () {
12346
12533
  return _this.refreshData();
12347
12534
  })
@@ -12372,12 +12559,10 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12372
12559
  .replace('{entity}', activeEntity.caption),
12373
12560
  body: form.getHtml(),
12374
12561
  onSubmit: function () {
12375
- var keyAttrs = activeEntity.attributes.filter(function (attr) { return attr.isPrimaryKey; });
12376
- var keys = keyAttrs.map(function (attr) { return row.getValue(attr.id); });
12377
12562
  if (!form.validate())
12378
12563
  return false;
12379
12564
  form.getData()
12380
- .then(function (obj) { return _this.context.updateEntity(keys.join(':'), obj); })
12565
+ .then(function (obj) { return _this.context.updateRecord(obj); })
12381
12566
  .then(function () {
12382
12567
  return _this.refreshData();
12383
12568
  })
@@ -12398,16 +12583,20 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12398
12583
  .then(function (row) {
12399
12584
  if (row) {
12400
12585
  var activeEntity = _this.context.getActiveEntity();
12401
- var keyAttrs = activeEntity.attributes.filter(function (attr) { return attr.isPrimaryKey; });
12402
- var keys_1 = keyAttrs.map(function (attr) { return row.getValue(attr.id); });
12403
- var entityId = keyAttrs.map(function (attr, index) { return attr.id + ":" + keys_1[index]; }).join(';');
12586
+ var keyAttrs = activeEntity.getPrimaryAttrs();
12587
+ var keyVals_1 = keyAttrs.map(function (attr) { return row.getValue(attr.id); });
12588
+ var keys_1 = keyAttrs.reduce(function (val, attr, index) {
12589
+ var property = attr.id.substring(attr.id.lastIndexOf('.') + 1);
12590
+ val[property] = keyVals_1[index];
12591
+ return val;
12592
+ }, {});
12404
12593
  _this.dlg.openConfirm(public_api["i18n"].getText('DeleteDlgCaption')
12405
12594
  .replace('{entity}', activeEntity.caption), public_api["i18n"].getText('DeleteDlgMessage')
12406
- .replace('{entityId}', entityId))
12595
+ .replace('{recordId}', Object.keys(keys_1)
12596
+ .map(function (key) { return key + ":" + keys_1[key]; }).join(';')))
12407
12597
  .then(function (result) {
12408
12598
  if (result) {
12409
- //pass entityId in future
12410
- _this.context.deleteEntity(keys_1.join(':'))
12599
+ _this.context.deleteRecord(keys_1)
12411
12600
  .then(function () {
12412
12601
  return _this.refreshData();
12413
12602
  })
@@ -12429,7 +12618,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12429
12618
  };
12430
12619
  EntityDataView.prototype.refreshData = function () {
12431
12620
  var _this = this;
12432
- return this.context.getEntities()
12621
+ return this.context.fetchDataset()
12433
12622
  .then(function () {
12434
12623
  _this.grid.refresh();
12435
12624
  });
@@ -12515,6 +12704,7 @@ var easy_data_view_dispatcher_EasyDataViewDispatcher = /** @class */ (function (
12515
12704
  parent.insertBefore(progressBarSlot, parent.firstElementChild);
12516
12705
  this.context = new data_context_DataContext({
12517
12706
  endpoint: options.endpoint,
12707
+ dataTable: options.dataTable,
12518
12708
  onProcessStart: function () { return bar.show(); },
12519
12709
  onProcessEnd: function () { return bar.hide(); }
12520
12710
  });
@@ -12615,7 +12805,7 @@ function addEasyDataCRUDTexts() {
12615
12805
  AddDlgCaption: 'Create {entity}',
12616
12806
  EditDlgCaption: 'Edit {entity}',
12617
12807
  DeleteDlgCaption: 'Delete {entity}',
12618
- DeleteDlgMessage: 'Are you shure about removing this entity: [{entityId}]?',
12808
+ DeleteDlgMessage: 'Are you sure you want to remove this record: {{recordId}}?',
12619
12809
  EntityMenuDesc: 'Click on an entity to view/edit its content',
12620
12810
  BackToEntities: 'Back to entities',
12621
12811
  SearchBtn: 'Search',