@easydata/crud 1.3.6-rc02 → 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 +55 -49
  2. package/dist/browser/easydata.css.map +1 -1
  3. package/dist/browser/easydata.js +811 -565
  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 +522 -288
  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 +47 -28
  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
  /******/ ([
@@ -119,6 +119,7 @@ __webpack_require__.d(__webpack_exports__, "reverseString", function() { return
119
119
  __webpack_require__.d(__webpack_exports__, "strEndsWith", function() { return /* reexport */ string_utils["d" /* strEndsWith */]; });
120
120
  __webpack_require__.d(__webpack_exports__, "combinePath", function() { return /* reexport */ string_utils["a" /* combinePath */]; });
121
121
  __webpack_require__.d(__webpack_exports__, "utils", function() { return /* reexport */ utils["a" /* utils */]; });
122
+ __webpack_require__.d(__webpack_exports__, "liquid", function() { return /* reexport */ liquid; });
122
123
 
123
124
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/types/data_type.js
124
125
  var data_type = __webpack_require__(2);
@@ -148,13 +149,13 @@ var EditorTag = {
148
149
  };
149
150
  //# sourceMappingURL=editor_tag.js.map
150
151
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_method.js
151
- var http_method = __webpack_require__(11);
152
+ var http_method = __webpack_require__(10);
152
153
 
153
154
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_request.js
154
- var http_request = __webpack_require__(15);
155
+ var http_request = __webpack_require__(16);
155
156
 
156
157
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/http/http_client.js
157
- var http_client = __webpack_require__(23);
158
+ var http_client = __webpack_require__(24);
158
159
 
159
160
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/i18n/i18n.js
160
161
  var i18n = __webpack_require__(5);
@@ -238,6 +239,12 @@ var MetaEntity = /** @class */ (function () {
238
239
  };
239
240
  internalProcessEntity(this);
240
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
+ };
241
248
  return MetaEntity;
242
249
  }());
243
250
 
@@ -856,7 +863,7 @@ var meta_data_MetaData = /** @class */ (function () {
856
863
  }());
857
864
 
858
865
  //# sourceMappingURL=meta_data.js.map
859
- // 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
860
867
  var __assign = (undefined && undefined.__assign) || function () {
861
868
  __assign = Object.assign || function(t) {
862
869
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -879,16 +886,32 @@ var AggregationSettings = /** @class */ (function () {
879
886
  this.groups = [];
880
887
  this.useGrandTotals = false;
881
888
  this.useRecordCount = false;
882
- this.caseSensitiveGroups = false;
889
+ this._caseSensitiveGroups = false;
883
890
  this.COUNT_FIELD_NAME = 'GRPRECCNT';
884
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
+ };
885
908
  AggregationSettings.prototype.addGroup = function (settings) {
886
909
  var cols = settings.columns || this.colStore.getColumnIds(settings.from, settings.to);
887
910
  if (!this.colStore.validateColumns(cols))
888
911
  throw "Invalid columns: " + cols;
889
912
  if (this.hasColumnsInUse(cols))
890
913
  throw "Can't add same columns to different groups/aggregates";
891
- this.groups.push(__assign({ columns: cols, aggregates: null }, settings));
914
+ this.groups.push(__assign({ columns: cols }, settings));
892
915
  return this;
893
916
  };
894
917
  AggregationSettings.prototype.addAggregateColumn = function (colIndexOrId, funcId) {
@@ -913,7 +936,7 @@ var AggregationSettings = /** @class */ (function () {
913
936
  var cols = [];
914
937
  var mappedGrops = this.groups.map(function (grp) {
915
938
  cols = cols.concat(grp.columns);
916
- 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) });
917
940
  });
918
941
  return mappedGrops;
919
942
  };
@@ -1005,18 +1028,43 @@ var AggregationSettings = /** @class */ (function () {
1005
1028
  }
1006
1029
  }
1007
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
+ };
1008
1056
  return AggregationSettings;
1009
1057
  }());
1010
1058
 
1011
- //# sourceMappingURL=aggr_calculator.js.map
1059
+ //# sourceMappingURL=aggr_settings.js.map
1012
1060
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/data_column.js
1013
- var data_column = __webpack_require__(16);
1061
+ var data_column = __webpack_require__(17);
1014
1062
 
1015
1063
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/data_row.js
1016
- var data_row = __webpack_require__(14);
1064
+ var data_row = __webpack_require__(15);
1017
1065
 
1018
1066
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/easy_data_table.js
1019
- var easy_data_table = __webpack_require__(27);
1067
+ var easy_data_table = __webpack_require__(28);
1020
1068
 
1021
1069
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/easy_guid.js
1022
1070
  /**
@@ -1166,8 +1214,24 @@ var event_emitter_EventEmitter = /** @class */ (function () {
1166
1214
 
1167
1215
  //# sourceMappingURL=event_emitter.js.map
1168
1216
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/string_utils.js
1169
- var string_utils = __webpack_require__(13);
1217
+ var string_utils = __webpack_require__(14);
1170
1218
 
1219
+ // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/liquid.js
1220
+ var liquid;
1221
+ (function (liquid) {
1222
+ function renderLiquidTemplate(template, vars) {
1223
+ var result = template;
1224
+ if (vars) {
1225
+ for (var v in vars) {
1226
+ var liquidVarRegexp = new RegExp('\{\{' + v + '\}\}', 'g');
1227
+ result = result.replace(liquidVarRegexp, vars[v]);
1228
+ }
1229
+ }
1230
+ return result;
1231
+ }
1232
+ liquid.renderLiquidTemplate = renderLiquidTemplate;
1233
+ })(liquid || (liquid = {}));
1234
+ //# sourceMappingURL=liquid.js.map
1171
1235
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/i18n/load_default_locale_settings.js
1172
1236
 
1173
1237
  i18n["a" /* i18n */].resetLocales();
@@ -1185,7 +1249,6 @@ i18n["a" /* i18n */].resetLocales();
1185
1249
 
1186
1250
 
1187
1251
 
1188
- //data
1189
1252
 
1190
1253
 
1191
1254
 
@@ -1199,6 +1262,7 @@ i18n["a" /* i18n */].resetLocales();
1199
1262
 
1200
1263
 
1201
1264
 
1265
+
1202
1266
  if (typeof Object.values !== 'function') {
1203
1267
  Object.values = function (obj) {
1204
1268
  return Object.keys(obj).map(function (key) { return obj[key]; });
@@ -1227,7 +1291,7 @@ if (typeof Math.trunc !== 'function') {
1227
1291
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DomInputElementBuilder; });
1228
1292
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DomSelectElementBuilder; });
1229
1293
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return domel; });
1230
- /* harmony import */ var _mask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18);
1294
+ /* harmony import */ var _mask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
1231
1295
  var __extends = (undefined && undefined.__extends) || (function () {
1232
1296
  var extendStatics = function (d, b) {
1233
1297
  extendStatics = Object.setPrototypeOf ||
@@ -1241,6 +1305,13 @@ var __extends = (undefined && undefined.__extends) || (function () {
1241
1305
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1242
1306
  };
1243
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
+ };
1244
1315
 
1245
1316
  var DomElementBuilder = /** @class */ (function () {
1246
1317
  function DomElementBuilder(tag, parent) {
@@ -1311,7 +1382,7 @@ var DomElementBuilder = /** @class */ (function () {
1311
1382
  classNames[_i - 1] = arguments[_i];
1312
1383
  }
1313
1384
  if (className) {
1314
- var fullList = className.trim().split(" ").concat(classNames);
1385
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
1315
1386
  for (var i = 0; i < fullList.length; i++)
1316
1387
  this.element.classList.add(fullList[i]);
1317
1388
  }
@@ -1323,7 +1394,7 @@ var DomElementBuilder = /** @class */ (function () {
1323
1394
  classNames[_i - 1] = arguments[_i];
1324
1395
  }
1325
1396
  if (className) {
1326
- var fullList = className.trim().split(" ").concat(classNames);
1397
+ var fullList = __spreadArrays(className.trim().split(" "), classNames);
1327
1398
  for (var i = 0; i < fullList.length; i++)
1328
1399
  this.element.classList.remove(fullList[i]);
1329
1400
  }
@@ -1587,6 +1658,7 @@ __webpack_require__.r(__webpack_exports__);
1587
1658
 
1588
1659
  // EXPORTS
1589
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 */]; });
1590
1662
  __webpack_require__.d(__webpack_exports__, "GridColumnAlign", function() { return /* reexport */ easy_grid_columns["b" /* GridColumnAlign */]; });
1591
1663
  __webpack_require__.d(__webpack_exports__, "GridColumn", function() { return /* reexport */ easy_grid_columns["a" /* GridColumn */]; });
1592
1664
  __webpack_require__.d(__webpack_exports__, "GridColumnList", function() { return /* reexport */ easy_grid_columns["c" /* GridColumnList */]; });
@@ -1635,13 +1707,16 @@ __webpack_require__.d(__webpack_exports__, "DialogFooterAlignment", function() {
1635
1707
  __webpack_require__.d(__webpack_exports__, "dialogs", function() { return /* binding */ dialogs; });
1636
1708
 
1637
1709
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid.js
1638
- 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);
1639
1714
 
1640
1715
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_columns.js
1641
1716
  var easy_grid_columns = __webpack_require__(8);
1642
1717
 
1643
1718
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_cell_renderer.js
1644
- var easy_grid_cell_renderer = __webpack_require__(9);
1719
+ var easy_grid_cell_renderer = __webpack_require__(13);
1645
1720
 
1646
1721
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/datetimepicker/calendar.js
1647
1722
  var Calendar = /** @class */ (function () {
@@ -1785,7 +1860,7 @@ var date_time_picker_DateTimePicker = /** @class */ (function () {
1785
1860
  }());
1786
1861
 
1787
1862
  //# sourceMappingURL=date_time_picker.js.map
1788
- // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 9 modules
1863
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 10 modules
1789
1864
  var public_api = __webpack_require__(0);
1790
1865
 
1791
1866
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/dom_elem_builder.js
@@ -2294,19 +2369,19 @@ var default_date_time_picker_DefaultDateTimePicker = /** @class */ (function (_s
2294
2369
 
2295
2370
  //# sourceMappingURL=default_date_time_picker.js.map
2296
2371
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/browser_utils.js
2297
- var browser_utils = __webpack_require__(17);
2372
+ var browser_utils = __webpack_require__(18);
2298
2373
 
2299
2374
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/drag_manager.js
2300
- var drag_manager = __webpack_require__(12);
2375
+ var drag_manager = __webpack_require__(11);
2301
2376
 
2302
2377
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/mask.js
2303
- var mask = __webpack_require__(18);
2378
+ var mask = __webpack_require__(19);
2304
2379
 
2305
2380
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/default_dialog_service.js
2306
- var default_dialog_service = __webpack_require__(19);
2381
+ var default_dialog_service = __webpack_require__(20);
2307
2382
 
2308
2383
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/dialog_service.js
2309
- var dialog_service = __webpack_require__(20);
2384
+ var dialog_service = __webpack_require__(21);
2310
2385
 
2311
2386
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/i18n/text_resources.js
2312
2387
 
@@ -2328,6 +2403,7 @@ addEasyDataUITexts();
2328
2403
 
2329
2404
 
2330
2405
 
2406
+
2331
2407
  //datetimepicker
2332
2408
 
2333
2409
 
@@ -2357,7 +2433,7 @@ var dialogs = new default_dialog_service["b" /* DefaultDialogService */]();
2357
2433
 
2358
2434
  "use strict";
2359
2435
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return utils; });
2360
- /* 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);
2361
2437
  /* harmony import */ var _types_data_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
2362
2438
  /* harmony import */ var _i18n_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
2363
2439
 
@@ -2366,7 +2442,7 @@ var dialogs = new default_dialog_service["b" /* DefaultDialogService */]();
2366
2442
  var utils;
2367
2443
  (function (utils) {
2368
2444
  function getAllDataTypes() {
2369
- 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"; });
2370
2446
  }
2371
2447
  utils.getAllDataTypes = getAllDataTypes;
2372
2448
  function getDateDataTypes() {
@@ -2374,12 +2450,16 @@ var utils;
2374
2450
  }
2375
2451
  utils.getDateDataTypes = getDateDataTypes;
2376
2452
  function getStringDataTypes() {
2377
- 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];
2378
2454
  }
2379
2455
  utils.getStringDataTypes = getStringDataTypes;
2380
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,
2381
- _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];
2382
- 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];
2383
2463
  //-------------- object functions -------------------
2384
2464
  /**
2385
2465
  * Copy the content of all objests passed in `args` parameters into `target`
@@ -2444,7 +2524,7 @@ var utils;
2444
2524
  hashSet.set(sourceVal, target[key]);
2445
2525
  }
2446
2526
  else {
2447
- if (typeof target[key] == 'undefined') {
2527
+ if (typeof target[key] == 'undefined' || target[key] == null) {
2448
2528
  target[key] = Object.create(Object.getPrototypeOf(sourceVal));
2449
2529
  }
2450
2530
  hashSet.set(sourceVal, target[key]);
@@ -3376,7 +3456,7 @@ var i18n;
3376
3456
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return slideUp; });
3377
3457
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return eqCssPrefix; });
3378
3458
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return eqCssMobile; });
3379
- /* 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);
3380
3460
 
3381
3461
  /**
3382
3462
  * Wraps all the elements inside "parent" by "wrapper" element
@@ -3649,16 +3729,10 @@ var setLocation = function (path) {
3649
3729
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GridColumn; });
3650
3730
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GridColumnList; });
3651
3731
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
3652
- /* 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);
3653
3733
 
3654
3734
 
3655
- var DEFAULT_WIDTH = 150;
3656
- var DEFAULT_WIDTH_NUMBER = 120;
3657
- var DEFAULT_WIDTH_DATE = 200;
3658
- var DEFAULT_WIDTH_BOOL = 80;
3659
3735
  var DEFAULT_WIDTH_STRING = 250;
3660
- var MIN_WIDTH_STRING = 100;
3661
- var MAX_WIDTH_STRING = 500;
3662
3736
  var ROW_NUM_WIDTH = 60;
3663
3737
  var GridColumnAlign;
3664
3738
  (function (GridColumnAlign) {
@@ -3683,36 +3757,25 @@ var GridColumn = /** @class */ (function () {
3683
3757
  function GridColumn(column, grid, isRowNum) {
3684
3758
  if (isRowNum === void 0) { isRowNum = false; }
3685
3759
  this._label = null;
3760
+ this._description = null;
3686
3761
  //public left: number;
3687
3762
  this.align = GridColumnAlign.NONE;
3688
3763
  this.isVisible = true;
3689
3764
  this.isRowNum = false;
3690
3765
  this.dataColumn = column;
3691
3766
  this.grid = grid;
3767
+ var widthOptions = grid.options.columnWidths || {};
3692
3768
  if (column) {
3693
3769
  if (column.style.alignment) {
3694
3770
  this.align = MapAlignment(column.style.alignment);
3695
3771
  }
3696
- var coltype = column.type;
3697
- var cellType = this.grid.cellRendererStore.getCellType(coltype);
3698
- switch (cellType) {
3699
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].NUMBER:
3700
- this.width = DEFAULT_WIDTH_NUMBER;
3701
- break;
3702
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].DATETIME:
3703
- this.width = DEFAULT_WIDTH_DATE;
3704
- break;
3705
- case _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].BOOL:
3706
- this.width = DEFAULT_WIDTH_BOOL;
3707
- break;
3708
- default:
3709
- this.width = DEFAULT_WIDTH_STRING;
3710
- }
3772
+ this.width = (widthOptions && widthOptions[this.type]) ? widthOptions[this.type].default : DEFAULT_WIDTH_STRING;
3711
3773
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);
3774
+ this._description = column.description;
3712
3775
  }
3713
3776
  else if (isRowNum) {
3714
3777
  this.isRowNum = true;
3715
- this.width = ROW_NUM_WIDTH;
3778
+ this.width = (widthOptions && widthOptions.rowNumColumn) ? widthOptions.rowNumColumn.default : ROW_NUM_WIDTH;
3716
3779
  this._label = '';
3717
3780
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRendererByType(_easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_1__[/* CellRendererType */ "a"].NUMBER);
3718
3781
  }
@@ -3731,6 +3794,14 @@ var GridColumn = /** @class */ (function () {
3731
3794
  configurable: true
3732
3795
  });
3733
3796
  ;
3797
+ Object.defineProperty(GridColumn.prototype, "description", {
3798
+ /** Get column description. */
3799
+ get: function () {
3800
+ return this._description;
3801
+ },
3802
+ enumerable: true,
3803
+ configurable: true
3804
+ });
3734
3805
  Object.defineProperty(GridColumn.prototype, "type", {
3735
3806
  get: function () {
3736
3807
  return this.dataColumn ? this.dataColumn.type : null;
@@ -3750,9 +3821,10 @@ var GridColumnList = /** @class */ (function () {
3750
3821
  GridColumnList.prototype.sync = function (columnList, hasRowNumCol) {
3751
3822
  if (hasRowNumCol === void 0) { hasRowNumCol = true; }
3752
3823
  this.clear();
3753
- if (hasRowNumCol) {
3754
- var rowNumCol = new GridColumn(null, this.grid, true);
3755
- this.add(rowNumCol);
3824
+ var rowNumCol = new GridColumn(null, this.grid, true);
3825
+ this.add(rowNumCol);
3826
+ if (!hasRowNumCol) {
3827
+ rowNumCol.isVisible = false;
3756
3828
  }
3757
3829
  if (columnList) {
3758
3830
  for (var _i = 0, _a = columnList.getItems(); _i < _a.length; _i++) {
@@ -3819,165 +3891,6 @@ var GridColumnList = /** @class */ (function () {
3819
3891
  /* 9 */
3820
3892
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3821
3893
 
3822
- "use strict";
3823
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DFMT_REGEX; });
3824
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CellRendererType; });
3825
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GridCellRendererStore; });
3826
- /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
3827
- /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
3828
- /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
3829
-
3830
-
3831
-
3832
- var cssPrefix = "keg";
3833
- var DFMT_REGEX = /{0:(.*?)}/g;
3834
- var CellRendererType;
3835
- (function (CellRendererType) {
3836
- CellRendererType[CellRendererType["STRING"] = 1] = "STRING";
3837
- CellRendererType[CellRendererType["NUMBER"] = 2] = "NUMBER";
3838
- CellRendererType[CellRendererType["DATETIME"] = 3] = "DATETIME";
3839
- CellRendererType[CellRendererType["BOOL"] = 4] = "BOOL";
3840
- })(CellRendererType || (CellRendererType = {}));
3841
- var StringCellRendererDefault = function (value, column, cellElement, rowElement) {
3842
- var text = value ? value.toString().replace(/\n/g, '\u21B5 ') : '';
3843
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3844
- .addClass(cssPrefix + "-cell-value")
3845
- .addHtml(text)
3846
- .title(value || '');
3847
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3848
- builder.addClass(cssPrefix + "-cell-value-align-left");
3849
- }
3850
- };
3851
- var NumberCellRendererDefault = function (value, column, cellElement, rowElement) {
3852
- var strValue = (value || '').toString();
3853
- if (typeof value == 'number') {
3854
- if (column.dataColumn && column.dataColumn.displayFormat
3855
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3856
- strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3857
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].numberToStr(value, $1);
3858
- });
3859
- }
3860
- else {
3861
- strValue = value.toLocaleString();
3862
- }
3863
- }
3864
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3865
- .addClass(cssPrefix + "-cell-value")
3866
- .addHtml(strValue)
3867
- .title(strValue);
3868
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3869
- builder.addClass(cssPrefix + "-cell-value-align-right");
3870
- }
3871
- };
3872
- var DateTimeCellRendererDefault = function (value, column, cellElement, rowElement) {
3873
- var isDate = Object.prototype.toString.call(value) === '[object Date]';
3874
- var strValue = (value || '').toString();
3875
- if (isDate) {
3876
- if (column.dataColumn && column.dataColumn.displayFormat
3877
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3878
- strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3879
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].dateTimeToStr(value, column.type, $1);
3880
- });
3881
- }
3882
- else {
3883
- var locale = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getCurrentLocale();
3884
- var timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };
3885
- switch (column.type) {
3886
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
3887
- strValue = value.toLocaleDateString(locale);
3888
- break;
3889
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
3890
- strValue = value.toLocaleTimeString(locale, timeOptions);
3891
- break;
3892
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
3893
- strValue = value.toLocaleDateString(locale) + " " + value.toLocaleTimeString(locale, timeOptions);
3894
- break;
3895
- }
3896
- }
3897
- }
3898
- var builder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3899
- .addClass(cssPrefix + "-cell-value")
3900
- .addHtml(strValue)
3901
- .title(strValue);
3902
- if (column.align == _easy_grid_columns__WEBPACK_IMPORTED_MODULE_1__[/* GridColumnAlign */ "b"].NONE) {
3903
- builder.addClass(cssPrefix + "-cell-value-align-right");
3904
- }
3905
- };
3906
- var BoolCellRendererDefault = function (value, column, cellElement, rowElement) {
3907
- if (column.dataColumn && column.dataColumn.displayFormat
3908
- && DFMT_REGEX.test(column.dataColumn.displayFormat)) {
3909
- var strValue = column.dataColumn.displayFormat.replace(DFMT_REGEX, function (_, $1) {
3910
- return _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].booleanToStr(value, $1);
3911
- });
3912
- return StringCellRendererDefault(strValue, column, cellElement, rowElement);
3913
- }
3914
- else {
3915
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', cellElement)
3916
- .addClass(cssPrefix + "-cell-value")
3917
- .addClass(cssPrefix + "-cell-value-bool")
3918
- .addClass(cssPrefix + "-" + (value ? 'cell-value-true' : 'cell-value-false'));
3919
- }
3920
- };
3921
- var GridCellRendererStore = /** @class */ (function () {
3922
- function GridCellRendererStore(options) {
3923
- this.renderers = {};
3924
- this.defaultRenderers = {};
3925
- this.registerRenderer('StringDefault', StringCellRendererDefault);
3926
- this.setDefaultRenderer(CellRendererType.STRING, StringCellRendererDefault);
3927
- this.registerRenderer('NumberDefault', NumberCellRendererDefault);
3928
- this.setDefaultRenderer(CellRendererType.NUMBER, NumberCellRendererDefault);
3929
- this.registerRenderer('DateTimeDefault', DateTimeCellRendererDefault);
3930
- this.setDefaultRenderer(CellRendererType.DATETIME, DateTimeCellRendererDefault);
3931
- this.registerRenderer('BoolDefault', BoolCellRendererDefault);
3932
- this.setDefaultRenderer(CellRendererType.BOOL, BoolCellRendererDefault);
3933
- }
3934
- GridCellRendererStore.prototype.getDefaultRenderer = function (columnType) {
3935
- var cellType = this.getCellType(columnType);
3936
- return this.defaultRenderers[CellRendererType[cellType]];
3937
- };
3938
- GridCellRendererStore.prototype.getDefaultRendererByType = function (rendererType) {
3939
- return this.defaultRenderers[CellRendererType[rendererType]];
3940
- };
3941
- GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {
3942
- if (renderer) {
3943
- this.defaultRenderers[CellRendererType[cellType]] = renderer;
3944
- }
3945
- };
3946
- GridCellRendererStore.prototype.getRenderer = function (name) {
3947
- return this.renderers[name];
3948
- };
3949
- GridCellRendererStore.prototype.registerRenderer = function (name, renderer) {
3950
- this.renderers[name] = renderer;
3951
- };
3952
- GridCellRendererStore.prototype.getCellType = function (dataType) {
3953
- switch (dataType) {
3954
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Autoinc:
3955
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Byte:
3956
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Word:
3957
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Currency:
3958
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Float:
3959
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int32:
3960
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Int64:
3961
- return CellRendererType.NUMBER;
3962
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Date:
3963
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].DateTime:
3964
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Time:
3965
- return CellRendererType.DATETIME;
3966
- case _easydata_core__WEBPACK_IMPORTED_MODULE_0__["DataType"].Bool:
3967
- return CellRendererType.BOOL;
3968
- default:
3969
- return CellRendererType.STRING;
3970
- }
3971
- };
3972
- return GridCellRendererStore;
3973
- }());
3974
-
3975
- //# sourceMappingURL=easy_grid_cell_renderer.js.map
3976
-
3977
- /***/ }),
3978
- /* 10 */
3979
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
3980
-
3981
3894
  "use strict";
3982
3895
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Validator; });
3983
3896
  var Validator = /** @class */ (function () {
@@ -3989,7 +3902,7 @@ var Validator = /** @class */ (function () {
3989
3902
  //# sourceMappingURL=validator.js.map
3990
3903
 
3991
3904
  /***/ }),
3992
- /* 11 */
3905
+ /* 10 */
3993
3906
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
3994
3907
 
3995
3908
  "use strict";
@@ -4006,7 +3919,7 @@ var HttpMethod;
4006
3919
  //# sourceMappingURL=http_method.js.map
4007
3920
 
4008
3921
  /***/ }),
4009
- /* 12 */
3922
+ /* 11 */
4010
3923
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4011
3924
 
4012
3925
  "use strict";
@@ -4339,53 +4252,226 @@ var DragManager = /** @class */ (function () {
4339
4252
  }
4340
4253
  }
4341
4254
  };
4342
- DragManager.prototype.dragLeaveEvent = function (ev) {
4343
- var descriptor = this.containerDescriptors[this.containerDescriptorIndex];
4344
- var container = {
4345
- element: descriptor.element,
4346
- scopes: descriptor.scopes,
4347
- data: descriptor.data
4348
- };
4349
- if (container.scopes.indexOf(this.draggableItem.scope) >= 0) {
4350
- var event_5 = new EqDragEvent(this.draggableItem, this.dragImage, ev);
4351
- event_5.dropEffect = DropEffect.None;
4352
- if (descriptor.onDragLeave) {
4353
- descriptor.onDragLeave(container, event_5);
4354
- }
4355
- this.dropEffect = event_5.dropEffect;
4356
- this.updateCusror(this.dropEffect);
4357
- this.updateImageClass(this.dropEffect);
4358
- }
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]];
4359
4436
  };
4360
- DragManager.prototype.detectDragEnterEvent = function (container, ev) {
4361
- var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4362
- var pos = new Position(ev);
4363
- if (pos.y < containerPos.y || pos.y > containerPos.y + container.offsetHeight) {
4364
- return false;
4365
- }
4366
- if (pos.x < containerPos.x || pos.x > containerPos.x + container.offsetWidth) {
4367
- return false;
4437
+ GridCellRendererStore.prototype.setDefaultRenderer = function (cellType, renderer) {
4438
+ if (renderer) {
4439
+ this.defaultRenderers[CellRendererType[cellType]] = renderer;
4368
4440
  }
4369
- return true;
4370
4441
  };
4371
- DragManager.prototype.detectDragLeaveEvent = function (container, ev) {
4372
- var containerPos = Object(_ui_utils__WEBPACK_IMPORTED_MODULE_1__[/* getElementAbsolutePos */ "g"])(container);
4373
- var pos = new Position(ev);
4374
- if (pos.y > containerPos.y && pos.y < containerPos.y + container.offsetHeight
4375
- && pos.x > containerPos.x && pos.x < containerPos.x + container.offsetWidth) {
4376
- 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;
4377
4466
  }
4378
- return true;
4379
4467
  };
4380
- return DragManager;
4468
+ return GridCellRendererStore;
4381
4469
  }());
4382
4470
 
4383
- //global variable
4384
- var eqDragManager = new DragManager();
4385
- //# sourceMappingURL=drag_manager.js.map
4471
+ //# sourceMappingURL=easy_grid_cell_renderer.js.map
4386
4472
 
4387
4473
  /***/ }),
4388
- /* 13 */
4474
+ /* 14 */
4389
4475
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4390
4476
 
4391
4477
  "use strict";
@@ -4427,7 +4513,7 @@ function combinePath(path1, path2) {
4427
4513
  //# sourceMappingURL=string_utils.js.map
4428
4514
 
4429
4515
  /***/ }),
4430
- /* 14 */
4516
+ /* 15 */
4431
4517
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4432
4518
 
4433
4519
  "use strict";
@@ -4479,7 +4565,7 @@ var DataRow = /** @class */ (function () {
4479
4565
  //# sourceMappingURL=data_row.js.map
4480
4566
 
4481
4567
  /***/ }),
4482
- /* 15 */
4568
+ /* 16 */
4483
4569
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4484
4570
 
4485
4571
  "use strict";
@@ -4544,7 +4630,7 @@ var HttpRequest = /** @class */ (function () {
4544
4630
  //# sourceMappingURL=http_request.js.map
4545
4631
 
4546
4632
  /***/ }),
4547
- /* 16 */
4633
+ /* 17 */
4548
4634
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4549
4635
 
4550
4636
  "use strict";
@@ -4578,6 +4664,8 @@ var DataColumn = /** @class */ (function () {
4578
4664
  this.displayFormat = desc.dfmt;
4579
4665
  this.groupFooterColumnTemplate = desc.gfct;
4580
4666
  this.style = desc.style || {};
4667
+ this.description = desc.description;
4668
+ this.calculatedWidth = 0;
4581
4669
  }
4582
4670
  return DataColumn;
4583
4671
  }());
@@ -4617,9 +4705,10 @@ var DataColumnList = /** @class */ (function () {
4617
4705
  .map(function (col, index) { return index; });
4618
4706
  };
4619
4707
  DataColumnList.prototype.put = function (index, col) {
4620
- //!!!!!!!!!check on "out of index"
4621
- this.items[index] = col;
4622
- this.updateDateColumnIdx();
4708
+ if (index >= 0 && index < this.count) {
4709
+ this.items[index] = col;
4710
+ this.updateDateColumnIdx();
4711
+ }
4623
4712
  };
4624
4713
  DataColumnList.prototype.move = function (col, newIndex) {
4625
4714
  var oldIndex = this.items.indexOf(col);
@@ -4629,8 +4718,12 @@ var DataColumnList = /** @class */ (function () {
4629
4718
  }
4630
4719
  };
4631
4720
  DataColumnList.prototype.get = function (index) {
4632
- //!!!!!!!!!check on "out of index"
4633
- return this.items[index];
4721
+ if (index >= 0 && index < this.count) {
4722
+ return this.items[index];
4723
+ }
4724
+ else {
4725
+ return null;
4726
+ }
4634
4727
  };
4635
4728
  DataColumnList.prototype.getIndex = function (id) {
4636
4729
  return this.mapper[id];
@@ -4661,7 +4754,7 @@ var DataColumnList = /** @class */ (function () {
4661
4754
  //# sourceMappingURL=data_column.js.map
4662
4755
 
4663
4756
  /***/ }),
4664
- /* 17 */
4757
+ /* 18 */
4665
4758
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4666
4759
 
4667
4760
  "use strict";
@@ -4736,7 +4829,7 @@ var browserUtils;
4736
4829
  //# sourceMappingURL=browser_utils.js.map
4737
4830
 
4738
4831
  /***/ }),
4739
- /* 18 */
4832
+ /* 19 */
4740
4833
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4741
4834
 
4742
4835
  "use strict";
@@ -4839,7 +4932,7 @@ function mask(input, maskPattern) {
4839
4932
  //# sourceMappingURL=mask.js.map
4840
4933
 
4841
4934
  /***/ }),
4842
- /* 19 */
4935
+ /* 20 */
4843
4936
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4844
4937
 
4845
4938
  "use strict";
@@ -4848,7 +4941,7 @@ function mask(input, maskPattern) {
4848
4941
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DefaultProgressDialog; });
4849
4942
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DefaultDialogSet; });
4850
4943
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4851
- /* 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);
4852
4945
  /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
4853
4946
  var __extends = (undefined && undefined.__extends) || (function () {
4854
4947
  var extendStatics = function (d, b) {
@@ -4949,9 +5042,9 @@ var DefaultDialogService = /** @class */ (function () {
4949
5042
  _this.open(options);
4950
5043
  });
4951
5044
  };
4952
- DefaultDialogService.prototype.open = function (options) {
5045
+ DefaultDialogService.prototype.open = function (options, data) {
4953
5046
  var _this = this;
4954
- var dialog = new DefaultDialog(options);
5047
+ var dialog = new DefaultDialog(options, data);
4955
5048
  var onDestroy = options.onDestroy;
4956
5049
  options.onDestroy = function (dlg) {
4957
5050
  _this.untrack(dlg);
@@ -4999,7 +5092,7 @@ var DefaultDialogService = /** @class */ (function () {
4999
5092
  }());
5000
5093
 
5001
5094
  var DefaultDialog = /** @class */ (function () {
5002
- function DefaultDialog(options) {
5095
+ function DefaultDialog(options, data) {
5003
5096
  var _this = this;
5004
5097
  this.options = options;
5005
5098
  this.submitHandler = function (token) {
@@ -5027,6 +5120,7 @@ var DefaultDialog = /** @class */ (function () {
5027
5120
  return true;
5028
5121
  };
5029
5122
  this.dialogId = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].generateId('dlg');
5123
+ this.data = data;
5030
5124
  this.slot =
5031
5125
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', document.body)
5032
5126
  .attr('tab-index', '-1')
@@ -5061,7 +5155,8 @@ var DefaultDialog = /** @class */ (function () {
5061
5155
  .addClass(cssPrefix + "-body")
5062
5156
  .toDOM();
5063
5157
  if (typeof options.body === 'string') {
5064
- b.addHtml(options.body);
5158
+ var html = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["liquid"].renderLiquidTemplate(options.body, data);
5159
+ b.addHtml(html);
5065
5160
  }
5066
5161
  else {
5067
5162
  b.addChildElement(options.body);
@@ -5121,6 +5216,9 @@ var DefaultDialog = /** @class */ (function () {
5121
5216
  .toDOM(); })
5122
5217
  .toDOM();
5123
5218
  }
5219
+ DefaultDialog.prototype.getData = function () {
5220
+ return this.data;
5221
+ };
5124
5222
  DefaultDialog.prototype.getRootElement = function () {
5125
5223
  return this.slot;
5126
5224
  };
@@ -5159,6 +5257,9 @@ var DefaultDialog = /** @class */ (function () {
5159
5257
  .forEach(function (element) {
5160
5258
  return element.addEventListener('input', function () {
5161
5259
  _this.clearAlert();
5260
+ if (_this.options.onInput) {
5261
+ _this.options.onInput(_this);
5262
+ }
5162
5263
  });
5163
5264
  });
5164
5265
  if (this.options.onShow) {
@@ -5242,7 +5343,7 @@ var DefaultDialog = /** @class */ (function () {
5242
5343
 
5243
5344
  var DefaultProgressDialog = /** @class */ (function (_super) {
5244
5345
  __extends(DefaultProgressDialog, _super);
5245
- function DefaultProgressDialog(options) {
5346
+ function DefaultProgressDialog(options, data) {
5246
5347
  var _this = this;
5247
5348
  var contentElement;
5248
5349
  var progressElement;
@@ -5277,7 +5378,7 @@ var DefaultProgressDialog = /** @class */ (function (_super) {
5277
5378
  cancelable: false,
5278
5379
  closable: false,
5279
5380
  onDestroy: options.onDestroy
5280
- }) || this;
5381
+ }, data) || this;
5281
5382
  _this.contentElement = contentElement;
5282
5383
  _this.progressElement = progressElement;
5283
5384
  return _this;
@@ -5318,13 +5419,13 @@ var DefaultDialogSet = /** @class */ (function () {
5318
5419
  DefaultDialogSet.prototype.getCurrent = function () {
5319
5420
  return this.currentDialog;
5320
5421
  };
5321
- DefaultDialogSet.prototype.openNext = function () {
5322
- return this.open(this.currentIndex + 1);
5422
+ DefaultDialogSet.prototype.openNext = function (data) {
5423
+ return this.open(this.currentIndex + 1, data);
5323
5424
  };
5324
- DefaultDialogSet.prototype.openPrev = function () {
5325
- return this.open(this.currentIndex - 1);
5425
+ DefaultDialogSet.prototype.openPrev = function (data) {
5426
+ return this.open(this.currentIndex - 1, data);
5326
5427
  };
5327
- DefaultDialogSet.prototype.open = function (page) {
5428
+ DefaultDialogSet.prototype.open = function (page, data) {
5328
5429
  if (page < 0) {
5329
5430
  this.currentIndex = 0;
5330
5431
  }
@@ -5340,7 +5441,8 @@ var DefaultDialogSet = /** @class */ (function () {
5340
5441
  }
5341
5442
  catch (e) { }
5342
5443
  }
5343
- this.currentDialog = this.dialogService.open(this.options[this.currentIndex]);
5444
+ var dlgOptions = this.options[this.currentIndex];
5445
+ this.currentDialog = this.dialogService.open(dlgOptions, data);
5344
5446
  return this.currentDialog;
5345
5447
  };
5346
5448
  DefaultDialogSet.prototype.close = function () {
@@ -5353,10 +5455,10 @@ var DefaultDialogSet = /** @class */ (function () {
5353
5455
  }());
5354
5456
 
5355
5457
  //# sourceMappingURL=default_dialog_service.js.map
5356
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
5458
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5357
5459
 
5358
5460
  /***/ }),
5359
- /* 20 */
5461
+ /* 21 */
5360
5462
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5361
5463
 
5362
5464
  "use strict";
@@ -5370,7 +5472,7 @@ var DialogFooterAlignment;
5370
5472
  //# sourceMappingURL=dialog_service.js.map
5371
5473
 
5372
5474
  /***/ }),
5373
- /* 21 */
5475
+ /* 22 */
5374
5476
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5375
5477
 
5376
5478
  "use strict";
@@ -5389,11 +5491,11 @@ var __assign = (undefined && undefined.__assign) || function () {
5389
5491
  };
5390
5492
 
5391
5493
  var TextDataFilter = /** @class */ (function () {
5392
- function TextDataFilter(loader, sourceTable, entityId, isLookup) {
5494
+ function TextDataFilter(loader, sourceTable, sourceId, isLookup) {
5393
5495
  if (isLookup === void 0) { isLookup = false; }
5394
5496
  this.loader = loader;
5395
5497
  this.sourceTable = sourceTable;
5396
- this.entityId = entityId;
5498
+ this.sourceId = sourceId;
5397
5499
  this.isLookup = isLookup;
5398
5500
  this.filterValue = '';
5399
5501
  //turns off client-side search
@@ -5430,7 +5532,7 @@ var TextDataFilter = /** @class */ (function () {
5430
5532
  limit: this.sourceTable.chunkSize,
5431
5533
  needTotal: true,
5432
5534
  filters: filters_1,
5433
- entityId: this.entityId,
5535
+ sourceId: this.sourceId,
5434
5536
  lookup: this.isLookup
5435
5537
  })
5436
5538
  .then(function (data) {
@@ -5438,7 +5540,7 @@ var TextDataFilter = /** @class */ (function () {
5438
5540
  chunkSize: _this.sourceTable.chunkSize,
5439
5541
  loader: {
5440
5542
  loadChunk: function (params) { return _this.loader
5441
- .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 })); }
5442
5544
  }
5443
5545
  });
5444
5546
  for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
@@ -5459,26 +5561,26 @@ var TextDataFilter = /** @class */ (function () {
5459
5561
  return new Promise(function (resolve, reject) {
5460
5562
  var filteredTable = new _easydata_core__WEBPACK_IMPORTED_MODULE_0__["EasyDataTable"]({
5461
5563
  chunkSize: _this.sourceTable.chunkSize,
5564
+ inMemory: true
5462
5565
  });
5463
5566
  for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
5464
5567
  var col = _a[_i];
5465
5568
  filteredTable.columns.add(col);
5466
5569
  }
5467
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; });
5468
5574
  var hasEnterance = function (row) {
5469
- for (var _i = 0, _a = _this.sourceTable.columns.getItems(); _i < _a.length; _i++) {
5470
- var col = _a[_i];
5471
- if (_easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].isIntType(col.type)
5472
- || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].getStringDataTypes().indexOf(col.type) >= 0) {
5473
- var value = row.getValue(col.id);
5474
- if (value) {
5475
- var normalized = value.toString()
5476
- .toLowerCase();
5477
- for (var _b = 0, words_1 = words; _b < words_1.length; _b++) {
5478
- var word = words_1[_b];
5479
- if (normalized.indexOf(word) >= 0) {
5480
- return true;
5481
- }
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;
5482
5584
  }
5483
5585
  }
5484
5586
  }
@@ -5491,8 +5593,7 @@ var TextDataFilter = /** @class */ (function () {
5491
5593
  filteredTable.addRow(row);
5492
5594
  }
5493
5595
  }
5494
- if (filteredTable.getCachedCount() == 0)
5495
- filteredTable.setTotal(0);
5596
+ filteredTable.setTotal(filteredTable.getCachedCount());
5496
5597
  resolve(filteredTable);
5497
5598
  });
5498
5599
  };
@@ -5500,10 +5601,10 @@ var TextDataFilter = /** @class */ (function () {
5500
5601
  }());
5501
5602
 
5502
5603
  //# sourceMappingURL=text_data_filter.js.map
5503
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5604
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31)))
5504
5605
 
5505
5606
  /***/ }),
5506
- /* 22 */
5607
+ /* 23 */
5507
5608
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5508
5609
 
5509
5610
  "use strict";
@@ -5511,7 +5612,7 @@ var TextDataFilter = /** @class */ (function () {
5511
5612
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
5512
5613
  /* harmony import */ var _easydata_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
5513
5614
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
5514
- /* 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);
5515
5616
 
5516
5617
 
5517
5618
 
@@ -5646,19 +5747,19 @@ var EntityEditForm = /** @class */ (function () {
5646
5747
  }());
5647
5748
 
5648
5749
  //# sourceMappingURL=entity_edit_form.js.map
5649
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5750
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(31)))
5650
5751
 
5651
5752
  /***/ }),
5652
- /* 23 */
5753
+ /* 24 */
5653
5754
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5654
5755
 
5655
5756
  "use strict";
5656
5757
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return HttpResponseError; });
5657
5758
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HttpClient; });
5658
5759
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
5659
- /* harmony import */ var _http_action_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
5660
- /* harmony import */ var _http_method__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
5661
- /* 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);
5662
5763
  var __extends = (undefined && undefined.__extends) || (function () {
5663
5764
  var extendStatics = function (d, b) {
5664
5765
  extendStatics = Object.setPrototypeOf ||
@@ -5730,7 +5831,7 @@ var HttpClient = /** @class */ (function () {
5730
5831
  var desc = {
5731
5832
  method: method,
5732
5833
  url: url,
5733
- headers: __assign({}, this.defaultHeaders, options.headers || {}),
5834
+ headers: __assign(__assign({}, this.defaultHeaders), options.headers || {}),
5734
5835
  queryParams: options.queryParams || {},
5735
5836
  data: data
5736
5837
  };
@@ -5800,10 +5901,10 @@ var HttpClient = /** @class */ (function () {
5800
5901
  }());
5801
5902
 
5802
5903
  //# sourceMappingURL=http_client.js.map
5803
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
5904
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))
5804
5905
 
5805
5906
  /***/ }),
5806
- /* 24 */
5907
+ /* 25 */
5807
5908
  /***/ (function(module, exports, __webpack_require__) {
5808
5909
 
5809
5910
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -6980,10 +7081,10 @@ return Promise$1;
6980
7081
 
6981
7082
  //# sourceMappingURL=es6-promise.map
6982
7083
 
6983
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
7084
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(26), __webpack_require__(27)))
6984
7085
 
6985
7086
  /***/ }),
6986
- /* 25 */
7087
+ /* 26 */
6987
7088
  /***/ (function(module, exports) {
6988
7089
 
6989
7090
  // shim for using process in browser
@@ -7173,7 +7274,7 @@ process.umask = function() { return 0; };
7173
7274
 
7174
7275
 
7175
7276
  /***/ }),
7176
- /* 26 */
7277
+ /* 27 */
7177
7278
  /***/ (function(module, exports) {
7178
7279
 
7179
7280
  var g;
@@ -7199,13 +7300,13 @@ module.exports = g;
7199
7300
 
7200
7301
 
7201
7302
  /***/ }),
7202
- /* 27 */
7303
+ /* 28 */
7203
7304
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7204
7305
 
7205
7306
  "use strict";
7206
7307
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EasyDataTable; });
7207
- /* harmony import */ var _data_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
7208
- /* 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);
7209
7310
  /* harmony import */ var _types_data_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
7210
7311
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
7211
7312
 
@@ -7216,16 +7317,23 @@ var EasyDataTable = /** @class */ (function () {
7216
7317
  function EasyDataTable(options) {
7217
7318
  this._chunkSize = 1000;
7218
7319
  this._elasticChunks = false;
7219
- // object keeps number keys sorted
7220
- this.chunkMap = {};
7320
+ this.cachedRows = [];
7221
7321
  this.total = 0;
7222
7322
  this.loader = null;
7223
7323
  this.needTotal = true;
7324
+ this.isInMemory = false;
7224
7325
  options = options || {};
7225
7326
  this._chunkSize = options.chunkSize || this._chunkSize;
7226
7327
  this._elasticChunks = options.elasticChunks || this._elasticChunks;
7227
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
+ }
7228
7335
  this._columns = new _data_column__WEBPACK_IMPORTED_MODULE_0__[/* DataColumnList */ "c"]();
7336
+ this.onUpdate = options.onUpdate;
7229
7337
  if (options.columns) {
7230
7338
  for (var _i = 0, _a = options.columns; _i < _a.length; _i++) {
7231
7339
  var colDesc = _a[_i];
@@ -7256,7 +7364,7 @@ var EasyDataTable = /** @class */ (function () {
7256
7364
  this._chunkSize = value;
7257
7365
  this.total = 0;
7258
7366
  this.needTotal = !this.elasticChunks;
7259
- this.chunkMap = {};
7367
+ this.cachedRows = [];
7260
7368
  },
7261
7369
  enumerable: true,
7262
7370
  configurable: true
@@ -7269,7 +7377,7 @@ var EasyDataTable = /** @class */ (function () {
7269
7377
  this._elasticChunks = value;
7270
7378
  this.total = 0;
7271
7379
  this.needTotal = !this.elasticChunks;
7272
- this.chunkMap = {};
7380
+ this.cachedRows = [];
7273
7381
  },
7274
7382
  enumerable: true,
7275
7383
  configurable: true
@@ -7297,22 +7405,12 @@ var EasyDataTable = /** @class */ (function () {
7297
7405
  endIndex = this.total;
7298
7406
  }
7299
7407
  }
7300
- var lbChunk = Math.trunc(fromIndex / this._chunkSize);
7301
- var ubChunk = Math.trunc((endIndex - 1) / this._chunkSize);
7302
- var allChunksCached = true;
7303
- for (var i = lbChunk; i <= ubChunk; i++) {
7304
- if (!this.chunkMap[i]) {
7305
- allChunksCached = false;
7306
- break;
7307
- }
7408
+ if (this.isInMemory && endIndex > this.cachedRows.length) {
7409
+ endIndex = this.cachedRows.length;
7308
7410
  }
7411
+ var allChunksCached = endIndex <= this.cachedRows.length;
7309
7412
  if (allChunksCached) {
7310
- var resultArr = [];
7311
- for (var i = lbChunk; i <= ubChunk; i++) {
7312
- resultArr = resultArr.concat(this.chunkMap[i].rows);
7313
- }
7314
- var firstChunkOffset = this.chunkMap[lbChunk].offset;
7315
- return Promise.resolve(resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset));
7413
+ return Promise.resolve(this.cachedRows.slice(fromIndex, endIndex));
7316
7414
  }
7317
7415
  //if loader is not defined
7318
7416
  if (!this.loader) {
@@ -7323,53 +7421,34 @@ var EasyDataTable = /** @class */ (function () {
7323
7421
  if (this.needTotal) {
7324
7422
  this.needTotal = false;
7325
7423
  }
7326
- var limit = this._chunkSize * (ubChunk - lbChunk + 1);
7327
- if (this.elasticChunks)
7328
- limit++;
7329
- return this.loader.loadChunk({
7330
- 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,
7331
7431
  limit: limit,
7332
7432
  needTotal: needTotal
7333
7433
  })
7334
7434
  .then(function (result) {
7335
- var chunks = result.table.getCachedChunks();
7336
7435
  if (needTotal) {
7337
7436
  _this.total = result.total;
7338
- if (endIndex > _this.total) {
7339
- endIndex = _this.total;
7340
- }
7341
7437
  }
7342
- var index = lbChunk;
7343
- for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {
7344
- var chunk = chunks_1[_i];
7345
- _this.chunkMap[index] = {
7346
- offset: index * _this._chunkSize,
7347
- rows: chunk.rows
7348
- };
7349
- index++;
7438
+ Array.prototype.push.apply(_this.cachedRows, result.table.getCachedRows());
7439
+ if (endIndex > _this.cachedRows.length) {
7440
+ endIndex = _this.cachedRows.length;
7350
7441
  }
7351
7442
  if (_this.elasticChunks) {
7352
7443
  var count_1 = result.table.getCachedCount();
7353
- if (count_1 > 0) {
7354
- var chunk = _this.chunkMap[index - 1];
7355
- if (count_1 === limit) {
7356
- chunk.rows.splice(chunk.rows.length - 1, 1);
7357
- if (chunk.rows.length == 0) {
7358
- delete _this.chunkMap[index - 1];
7359
- }
7360
- }
7361
- if (count_1 < limit) {
7362
- _this.total = _this.getCachedCount();
7363
- }
7444
+ if (count_1 < limit) {
7445
+ _this.total = _this.cachedRows.length;
7364
7446
  }
7365
7447
  }
7366
- var resultArr = [];
7367
- for (var i = lbChunk; i <= ubChunk; i++) {
7368
- resultArr = resultArr.concat(_this.chunkMap[i].rows);
7369
- }
7370
- var firstChunkOffset = _this.chunkMap[lbChunk].offset;
7371
- return resultArr.slice(fromIndex - firstChunkOffset, endIndex - firstChunkOffset);
7448
+ _this.fireUpdated();
7449
+ return _this.cachedRows.slice(fromIndex, endIndex);
7372
7450
  });
7451
+ return resultPromise;
7373
7452
  };
7374
7453
  EasyDataTable.prototype.getRow = function (index) {
7375
7454
  return this.getRows({ offset: index, limit: 1 })
@@ -7381,14 +7460,13 @@ var EasyDataTable = /** @class */ (function () {
7381
7460
  EasyDataTable.prototype.setTotal = function (total) {
7382
7461
  this.total = total;
7383
7462
  this.needTotal = false;
7384
- this.chunkMap = {};
7385
7463
  };
7386
7464
  EasyDataTable.prototype.getCachedCount = function () {
7387
- return this.getCachedRows().length;
7465
+ return this.cachedRows.length;
7388
7466
  };
7389
7467
  EasyDataTable.prototype.clear = function () {
7390
7468
  this.columns.clear();
7391
- this.chunkMap = {};
7469
+ this.cachedRows = [];
7392
7470
  this.total = 0;
7393
7471
  this.needTotal = !this._elasticChunks;
7394
7472
  };
@@ -7421,60 +7499,33 @@ var EasyDataTable = /** @class */ (function () {
7421
7499
  }
7422
7500
  return null;
7423
7501
  };
7424
- EasyDataTable.prototype.addRow = function (rowOrValue) {
7502
+ EasyDataTable.prototype.addRow = function (rowOrValues) {
7425
7503
  var newRow;
7426
- if (Array.isArray(rowOrValue)) {
7504
+ if (Array.isArray(rowOrValues)) {
7505
+ var values = rowOrValues;
7427
7506
  var dateIdx = this._columns.getDateColumnIndexes();
7428
7507
  if (dateIdx.length > 0) {
7429
7508
  for (var _i = 0, dateIdx_1 = dateIdx; _i < dateIdx_1.length; _i++) {
7430
7509
  var idx = dateIdx_1[_i];
7431
- if (rowOrValue[idx]) {
7432
- 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);
7433
7512
  }
7434
7513
  }
7435
7514
  }
7436
- 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);
7437
7516
  }
7438
7517
  else {
7439
- newRow = this.createRow(rowOrValue);
7518
+ newRow = this.createRow(rowOrValues);
7440
7519
  }
7441
- var lastChunk = this.getLastChunk();
7442
- if (!lastChunk || lastChunk.rows.length >= this._chunkSize) {
7443
- lastChunk = this.createChunk();
7444
- }
7445
- lastChunk.rows.push(newRow);
7520
+ this.cachedRows.push(newRow);
7446
7521
  var cachedTotal = this.getCachedCount();
7447
7522
  if (cachedTotal > this.total) {
7448
7523
  this.total = cachedTotal;
7449
7524
  }
7450
7525
  return newRow;
7451
7526
  };
7452
- EasyDataTable.prototype.createChunk = function (index) {
7453
- if (typeof index == 'undefined') {
7454
- index = this.getLastChunkIndex() + 1;
7455
- }
7456
- var chunk = { offset: index * this._chunkSize, rows: [] };
7457
- this.chunkMap[index] = chunk;
7458
- return chunk;
7459
- };
7460
- EasyDataTable.prototype.getLastChunkIndex = function () {
7461
- var keys = Object.keys(this.chunkMap);
7462
- return keys.length > 0
7463
- ? parseInt(keys[keys.length - 1])
7464
- : -1;
7465
- };
7466
- EasyDataTable.prototype.getLastChunk = function () {
7467
- var index = this.getLastChunkIndex();
7468
- return index > -1
7469
- ? this.chunkMap[index]
7470
- : null;
7471
- };
7472
7527
  EasyDataTable.prototype.getCachedRows = function () {
7473
- return this.getCachedChunks()
7474
- .reduce(function (acc, v) { return acc.concat(v.rows); }, []);
7475
- };
7476
- EasyDataTable.prototype.getCachedChunks = function () {
7477
- return Object.values(this.chunkMap);
7528
+ return this.cachedRows;
7478
7529
  };
7479
7530
  EasyDataTable.prototype.totalIsKnown = function () {
7480
7531
  if (this.elasticChunks) {
@@ -7483,24 +7534,30 @@ var EasyDataTable = /** @class */ (function () {
7483
7534
  }
7484
7535
  return !this.needTotal;
7485
7536
  };
7537
+ EasyDataTable.prototype.fireUpdated = function () {
7538
+ if (this.onUpdate) {
7539
+ this.onUpdate(this);
7540
+ }
7541
+ };
7486
7542
  return EasyDataTable;
7487
7543
  }());
7488
7544
 
7489
7545
  //# sourceMappingURL=easy_data_table.js.map
7490
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
7546
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25)))
7491
7547
 
7492
7548
  /***/ }),
7493
- /* 28 */
7549
+ /* 29 */
7494
7550
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7495
7551
 
7496
7552
  "use strict";
7497
7553
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EasyGrid; });
7498
7554
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
7499
- /* 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);
7500
7556
  /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
7501
7557
  /* harmony import */ var _utils_ui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
7502
- /* harmony import */ var _easy_grid_columns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
7503
- /* 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);
7504
7561
  var __assign = (undefined && undefined.__assign) || function () {
7505
7562
  __assign = Object.assign || function(t) {
7506
7563
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -7512,6 +7569,14 @@ var __assign = (undefined && undefined.__assign) || function () {
7512
7569
  };
7513
7570
  return __assign.apply(this, arguments);
7514
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
+
7515
7580
 
7516
7581
 
7517
7582
 
@@ -7544,6 +7609,35 @@ var EasyGrid = /** @class */ (function () {
7544
7609
  pageSize: 30,
7545
7610
  pageSizeItems: [20, 30, 50, 100, 200]
7546
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
+ },
7547
7641
  addColumns: false,
7548
7642
  viewportRowsCount: null,
7549
7643
  showActiveRow: true
@@ -7551,7 +7645,6 @@ var EasyGrid = /** @class */ (function () {
7551
7645
  this.rowsOnPagePromise = null;
7552
7646
  this.containerInitialHeight = 0;
7553
7647
  this.firstRender = true;
7554
- this.compareValues = this.strictCompare;
7555
7648
  this.prevRowTotals = null;
7556
7649
  this.landingIndex = -1;
7557
7650
  this.landingSlot = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7563,18 +7656,55 @@ var EasyGrid = /** @class */ (function () {
7563
7656
  if (options && options.paging) {
7564
7657
  options.paging = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].assign(this.defaultDataGridOptions.paging, options.paging);
7565
7658
  }
7566
- this.options = __assign({}, this.defaultDataGridOptions, options);
7659
+ this.options = this.mergeOptions(options);
7660
+ this.processColumnWidthsOptions();
7567
7661
  if (!this.options.slot)
7568
7662
  throw Error('"slot" parameter is required to initialize EasyDataGrid');
7569
7663
  if (!this.options.dataTable)
7570
7664
  throw Error('"dataTable" parameter is required to initialize EasyDataGrid');
7571
7665
  this.dataTable = options.dataTable;
7572
7666
  this.eventEmitter = new _easydata_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](this);
7573
- this.cellRendererStore = new _easy_grid_cell_renderer__WEBPACK_IMPORTED_MODULE_5__[/* GridCellRendererStore */ "c"](options);
7574
- 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);
7575
7669
  this.setSlot(this.options.slot);
7576
7670
  this.init(this.options);
7577
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
+ };
7578
7708
  EasyGrid.prototype.setSlot = function (slot) {
7579
7709
  if (typeof slot === 'string') {
7580
7710
  if (slot.length) {
@@ -7721,10 +7851,20 @@ var EasyGrid = /** @class */ (function () {
7721
7851
  }
7722
7852
  else {
7723
7853
  setTimeout(function () {
7724
- _this.updateHeight();
7725
- _this.firstRender = false;
7854
+ _this.updateHeight()
7855
+ .then(function () {
7856
+ _this.firstRender = false;
7857
+ });
7726
7858
  }, 100);
7727
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
+ }
7728
7868
  };
7729
7869
  EasyGrid.prototype.updateHeight = function () {
7730
7870
  var _this = this;
@@ -7759,6 +7899,12 @@ var EasyGrid = /** @class */ (function () {
7759
7899
  }
7760
7900
  });
7761
7901
  };
7902
+ EasyGrid.prototype.getContainerWidth = function () {
7903
+ return this.columns.getItems()
7904
+ .filter(function (col) { return col.isVisible; })
7905
+ .map(function (col) { return col.width; })
7906
+ .reduce(function (sum, current) { return sum + current; });
7907
+ };
7762
7908
  EasyGrid.prototype.renderHeader = function () {
7763
7909
  var _this = this;
7764
7910
  this.headerDiv = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7784,7 +7930,7 @@ var EasyGrid = /** @class */ (function () {
7784
7930
  .addChildElement(_this.renderAddColumnButton());
7785
7931
  }
7786
7932
  });
7787
- var containerWidth = this.columns.getItems().map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });
7933
+ var containerWidth = this.getContainerWidth();
7788
7934
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(this.headerCellContainerDiv)
7789
7935
  .setStyle('width', containerWidth + "px");
7790
7936
  };
@@ -7795,7 +7941,7 @@ var EasyGrid = /** @class */ (function () {
7795
7941
  var _this = this;
7796
7942
  var colBuilder = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
7797
7943
  .addClass(this.cssPrefix + "-header-cell")
7798
- .data('col-idx', "" + (index + 1))
7944
+ .data('col-idx', "" + index)
7799
7945
  .setStyle('width', column.width + "px");
7800
7946
  if (column.dataColumn) {
7801
7947
  colBuilder
@@ -7809,6 +7955,11 @@ var EasyGrid = /** @class */ (function () {
7809
7955
  .addClass(this.cssPrefix + "-header-cell-label")
7810
7956
  .text(column.label);
7811
7957
  }
7958
+ if (column.description) {
7959
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', colDiv)
7960
+ .addClass('question-mark')
7961
+ .title(column.description);
7962
+ }
7812
7963
  if (this.options.allowDragDrop) {
7813
7964
  _utils_drag_manager__WEBPACK_IMPORTED_MODULE_1__[/* eqDragManager */ "d"].registerDraggableItem({
7814
7965
  element: colDiv,
@@ -7828,14 +7979,6 @@ var EasyGrid = /** @class */ (function () {
7828
7979
  }
7829
7980
  return colDiv;
7830
7981
  };
7831
- EasyGrid.prototype.strictCompare = function (value1, value2) {
7832
- return value1 !== value2;
7833
- };
7834
- EasyGrid.prototype.caseInsensitiveCompare = function (value1, value2) {
7835
- var val1 = (typeof value1 === 'string') ? value1.toLowerCase() : value1;
7836
- var val2 = (typeof value2 === 'string') ? value2.toLowerCase() : value2;
7837
- return val1 !== val2;
7838
- };
7839
7982
  EasyGrid.prototype.renderBody = function () {
7840
7983
  var _this = this;
7841
7984
  this.bodyDiv = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7849,10 +7992,6 @@ var EasyGrid = /** @class */ (function () {
7849
7992
  .addClass(this.cssPrefix + "-cell-container")
7850
7993
  .toDOM();
7851
7994
  var showAggrs = this.canShowAggregates();
7852
- this.compareValues = this.caseInsensitiveCompare;
7853
- if (showAggrs && this.options.aggregates.settings.caseSensitiveGroups) {
7854
- this.compareValues = this.strictCompare;
7855
- }
7856
7995
  if (this.dataTable) {
7857
7996
  this.showProgress();
7858
7997
  this.rowsOnPagePromise = this.getRowsToRender()
@@ -7862,15 +8001,22 @@ var EasyGrid = /** @class */ (function () {
7862
8001
  //prevent double rendering (bad solution, we have to figure out how to avoid this behavior properly)
7863
8002
  _this.bodyCellContainerDiv.innerHTML = '';
7864
8003
  _this.prevRowTotals = null;
8004
+ var rowsToRender = 0;
7865
8005
  if (rows.length) {
7866
8006
  var groups_1 = showAggrs
7867
8007
  ? _this.options.aggregates.settings.getGroups()
7868
8008
  : [];
8009
+ rowsToRender = (rows.length < _this.pagination.pageSize)
8010
+ ? rows.length
8011
+ : _this.pagination.pageSize;
7869
8012
  rows.forEach(function (row, index) {
7870
8013
  if (showAggrs)
7871
8014
  _this.updateTotalsState(groups_1, row);
7872
- var tr = _this.renderRow(row, index);
7873
- _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
+ }
7874
8020
  });
7875
8021
  var showGrandTotalsOnEachPage = _this.options.aggregates && _this.options.aggregates.showGrandTotalsOnEachPage;
7876
8022
  if (showAggrs && (_this.isLastPage() || showGrandTotalsOnEachPage)) {
@@ -7878,11 +8024,10 @@ var EasyGrid = /** @class */ (function () {
7878
8024
  _this.updateTotalsState(groups_1, row, true);
7879
8025
  }
7880
8026
  }
7881
- var containerWidth = _this.columns.getItems()
7882
- .map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });
8027
+ var containerWidth = _this.getContainerWidth();
7883
8028
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(_this.bodyCellContainerDiv)
7884
8029
  .setStyle('width', containerWidth + "px");
7885
- return rows.length;
8030
+ return rowsToRender;
7886
8031
  })
7887
8032
  .catch(function (error) { console.error(error); return 0; });
7888
8033
  }
@@ -7890,7 +8035,7 @@ var EasyGrid = /** @class */ (function () {
7890
8035
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(_this.headerViewportDiv)
7891
8036
  .setStyle('margin-left', "-" + _this.bodyViewportDiv.scrollLeft + "px");
7892
8037
  });
7893
- this.bodyViewportDiv.addEventListener('keydown', this.onVieportKeydown.bind(this));
8038
+ this.bodyViewportDiv.addEventListener('keydown', this.onViewportKeydown.bind(this));
7894
8039
  };
7895
8040
  EasyGrid.prototype.isLastPage = function () {
7896
8041
  if (this.dataTable.elasticChunks) {
@@ -7916,7 +8061,7 @@ var EasyGrid = /** @class */ (function () {
7916
8061
  var group = groups[level - 1];
7917
8062
  for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
7918
8063
  var col = _a[_i];
7919
- if (this.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
8064
+ if (!aggrSettings.compareValues(this.prevRowTotals.getValue(col), newRow.getValue(col))) {
7920
8065
  changeLevel = level;
7921
8066
  break;
7922
8067
  }
@@ -7977,8 +8122,8 @@ var EasyGrid = /** @class */ (function () {
7977
8122
  });
7978
8123
  var aggrContainer = this.options.aggregates.calculator.getAggrContainer();
7979
8124
  var aggrCols = aggrSettings.getAggregates().map(function (c) { return c.colId; });
7980
- var key = this.buildGroupKey(group, row);
7981
- aggrContainer.getAggregates(level, key)
8125
+ var key = aggrSettings.buildGroupKey(group, row);
8126
+ aggrContainer.getAggregateData(level, key)
7982
8127
  .then(function (values) {
7983
8128
  for (var _i = 0, aggrCols_1 = aggrCols; _i < aggrCols_1.length; _i++) {
7984
8129
  var aggrColId = aggrCols_1[_i];
@@ -8019,34 +8164,20 @@ var EasyGrid = /** @class */ (function () {
8019
8164
  }
8020
8165
  }
8021
8166
  if (groupFooterTemplate) {
8022
- var cellDiv_1 = _this.renderCell(column, colIndex, val, rowElement);
8167
+ var cellDiv_1 = _this.renderCell(column, index, val, rowElement);
8023
8168
  var innerCell = cellDiv_1.firstChild;
8024
8169
  val = innerCell.innerHTML;
8025
8170
  val = _this.applyGroupColumnTemplate(groupFooterTemplate, val, values[aggrSettings.COUNT_FIELD_NAME]);
8026
8171
  }
8027
8172
  }
8028
- var cellDiv = _this.renderCell(column, colIndex, val, rowElement);
8173
+ var cellDiv = _this.renderCell(column, index, val, rowElement);
8029
8174
  rowElement.appendChild(cellDiv);
8030
8175
  });
8031
8176
  })
8032
8177
  .catch(function (error) { return console.error(error); });
8033
8178
  return rowElement;
8034
8179
  };
8035
- EasyGrid.prototype.buildGroupKey = function (group, row) {
8036
- var aggrSettings = this.options.aggregates.settings;
8037
- var caseInsensitive = aggrSettings && !aggrSettings.caseSensitiveGroups;
8038
- var result = {};
8039
- for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
8040
- var colId = _a[_i];
8041
- var keyVal = row.getValue(colId);
8042
- if (caseInsensitive) {
8043
- keyVal = keyVal.toLowerCase();
8044
- }
8045
- result[colId] = keyVal;
8046
- }
8047
- return result;
8048
- };
8049
- EasyGrid.prototype.onVieportKeydown = function (ev) {
8180
+ EasyGrid.prototype.onViewportKeydown = function (ev) {
8050
8181
  if (this.options.showActiveRow) {
8051
8182
  var rowCount = this.bodyCellContainerDiv.querySelectorAll("." + this.cssPrefix + "-row").length;
8052
8183
  var newValue = void 0;
@@ -8100,13 +8231,17 @@ var EasyGrid = /** @class */ (function () {
8100
8231
  }
8101
8232
  }
8102
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
+ */
8103
8238
  EasyGrid.prototype.getRowsToRender = function () {
8104
8239
  if (this.options.paging.enabled === false) {
8105
8240
  return Promise.resolve(this.dataTable.getCachedRows());
8106
8241
  }
8107
8242
  return this.dataTable.getRows({
8108
- page: this.pagination.page,
8109
- pageSize: this.pagination.pageSize
8243
+ offset: (this.pagination.page - 1) * this.pagination.pageSize,
8244
+ limit: this.pagination.pageSize + 1
8110
8245
  })
8111
8246
  .catch(function (error) {
8112
8247
  console.error(error);
@@ -8202,13 +8337,13 @@ var EasyGrid = /** @class */ (function () {
8202
8337
  if (this.options.showActiveRow && index == this.activeRowIndex) {
8203
8338
  rowBuilder.addClass(this.cssPrefix + "-row-active");
8204
8339
  }
8205
- this.columns.getItems().forEach(function (column) {
8340
+ this.columns.getItems().forEach(function (column, index) {
8206
8341
  if (!column.isVisible) {
8207
8342
  return;
8208
8343
  }
8209
8344
  var colindex = column.isRowNum ? -1 : _this.dataTable.columns.getIndex(column.dataColumn.id);
8210
8345
  var val = column.isRowNum ? indexGlobal + 1 : row.getValue(colindex);
8211
- rowElement.appendChild(_this.renderCell(column, colindex, val, rowElement));
8346
+ rowElement.appendChild(_this.renderCell(column, index, val, rowElement));
8212
8347
  });
8213
8348
  return rowElement;
8214
8349
  };
@@ -8218,13 +8353,13 @@ var EasyGrid = /** @class */ (function () {
8218
8353
  .data('col-idx', "" + colIndex)
8219
8354
  .attr('tabindex', '-1')
8220
8355
  .setStyle('width', column.width + "px");
8221
- 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) {
8222
8357
  builder.addClass(this.cssPrefix + "-cell-align-left");
8223
8358
  }
8224
- 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) {
8225
8360
  builder.addClass(this.cssPrefix + "-cell-align-right");
8226
8361
  }
8227
- 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) {
8228
8363
  builder.addClass(this.cssPrefix + "-cell-align-center");
8229
8364
  }
8230
8365
  if (column.cellRenderer) {
@@ -8480,14 +8615,93 @@ var EasyGrid = /** @class */ (function () {
8480
8615
  EasyGrid.prototype.focus = function () {
8481
8616
  this.bodyViewportDiv.focus();
8482
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
+ };
8483
8697
  return EasyGrid;
8484
8698
  }());
8485
8699
 
8486
8700
  //# sourceMappingURL=easy_grid.js.map
8487
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
8701
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
8488
8702
 
8489
8703
  /***/ }),
8490
- /* 29 */
8704
+ /* 30 */
8491
8705
  /***/ (function(module, exports, __webpack_require__) {
8492
8706
 
8493
8707
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -9664,10 +9878,10 @@ return Promise$1;
9664
9878
 
9665
9879
  //# sourceMappingURL=es6-promise.map
9666
9880
 
9667
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
9881
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(26), __webpack_require__(27)))
9668
9882
 
9669
9883
  /***/ }),
9670
- /* 30 */
9884
+ /* 31 */
9671
9885
  /***/ (function(module, exports, __webpack_require__) {
9672
9886
 
9673
9887
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -10844,10 +11058,10 @@ return Promise$1;
10844
11058
 
10845
11059
  //# sourceMappingURL=es6-promise.map
10846
11060
 
10847
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(39), __webpack_require__(40)))
11061
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(40), __webpack_require__(41)))
10848
11062
 
10849
11063
  /***/ }),
10850
- /* 31 */
11064
+ /* 32 */
10851
11065
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10852
11066
 
10853
11067
  "use strict";
@@ -10878,13 +11092,13 @@ var HttpActionResult = /** @class */ (function () {
10878
11092
  //# sourceMappingURL=http_action_result.js.map
10879
11093
 
10880
11094
  /***/ }),
10881
- /* 32 */
11095
+ /* 33 */
10882
11096
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10883
11097
 
10884
11098
  "use strict";
10885
11099
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DateTimeValidator; });
10886
11100
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
10887
- /* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
11101
+ /* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
10888
11102
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
10889
11103
  var __extends = (undefined && undefined.__extends) || (function () {
10890
11104
  var extendStatics = function (d, b) {
@@ -10932,48 +11146,48 @@ var DateTimeValidator = /** @class */ (function (_super) {
10932
11146
  //# sourceMappingURL=datetime_validator.js.map
10933
11147
 
10934
11148
  /***/ }),
10935
- /* 33 */
11149
+ /* 34 */
10936
11150
  /***/ (function(module, exports, __webpack_require__) {
10937
11151
 
10938
- __webpack_require__(34);
10939
- module.exports = __webpack_require__(41);
11152
+ __webpack_require__(35);
11153
+ module.exports = __webpack_require__(42);
10940
11154
 
10941
11155
 
10942
11156
  /***/ }),
10943
- /* 34 */
11157
+ /* 35 */
10944
11158
  /***/ (function(module, exports, __webpack_require__) {
10945
11159
 
10946
- __webpack_require__(35);
10947
11160
  __webpack_require__(36);
10948
11161
  __webpack_require__(37);
10949
- __webpack_require__(38);
11162
+ __webpack_require__(38);
11163
+ __webpack_require__(39);
10950
11164
 
10951
11165
  /***/ }),
10952
- /* 35 */
11166
+ /* 36 */
10953
11167
  /***/ (function(module, exports, __webpack_require__) {
10954
11168
 
10955
11169
  // extracted by mini-css-extract-plugin
10956
11170
 
10957
11171
  /***/ }),
10958
- /* 36 */
11172
+ /* 37 */
10959
11173
  /***/ (function(module, exports, __webpack_require__) {
10960
11174
 
10961
11175
  // extracted by mini-css-extract-plugin
10962
11176
 
10963
11177
  /***/ }),
10964
- /* 37 */
11178
+ /* 38 */
10965
11179
  /***/ (function(module, exports, __webpack_require__) {
10966
11180
 
10967
11181
  // extracted by mini-css-extract-plugin
10968
11182
 
10969
11183
  /***/ }),
10970
- /* 38 */
11184
+ /* 39 */
10971
11185
  /***/ (function(module, exports, __webpack_require__) {
10972
11186
 
10973
11187
  // extracted by mini-css-extract-plugin
10974
11188
 
10975
11189
  /***/ }),
10976
- /* 39 */
11190
+ /* 40 */
10977
11191
  /***/ (function(module, exports) {
10978
11192
 
10979
11193
  // shim for using process in browser
@@ -11163,7 +11377,7 @@ process.umask = function() { return 0; };
11163
11377
 
11164
11378
 
11165
11379
  /***/ }),
11166
- /* 40 */
11380
+ /* 41 */
11167
11381
  /***/ (function(module, exports) {
11168
11382
 
11169
11383
  var g;
@@ -11189,7 +11403,7 @@ module.exports = g;
11189
11403
 
11190
11404
 
11191
11405
  /***/ }),
11192
- /* 41 */
11406
+ /* 42 */
11193
11407
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11194
11408
 
11195
11409
  "use strict";
@@ -11218,17 +11432,17 @@ __webpack_require__.d(public_api_namespaceObject, "EasyDataViewDispatcher", func
11218
11432
  __webpack_require__.d(public_api_namespaceObject, "RootDataView", function() { return root_data_view_RootDataView; });
11219
11433
  __webpack_require__.d(public_api_namespaceObject, "EntityDataView", function() { return entity_data_view_EntityDataView; });
11220
11434
 
11221
- // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 9 modules
11435
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 10 modules
11222
11436
  var public_api = __webpack_require__(0);
11223
11437
 
11224
11438
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/public_api.js + 7 modules
11225
11439
  var lib_public_api = __webpack_require__(3);
11226
11440
 
11227
11441
  // EXTERNAL MODULE: ./dist/lib/filter/text_data_filter.js
11228
- var text_data_filter = __webpack_require__(21);
11442
+ var text_data_filter = __webpack_require__(22);
11229
11443
 
11230
11444
  // EXTERNAL MODULE: ./dist/lib/form/entity_edit_form.js
11231
- var entity_edit_form = __webpack_require__(22);
11445
+ var entity_edit_form = __webpack_require__(23);
11232
11446
 
11233
11447
  // EXTERNAL MODULE: ./dist/lib/utils/utils.js
11234
11448
  var utils = __webpack_require__(7);
@@ -11502,12 +11716,13 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11502
11716
  var lookupTable = new public_api["EasyDataTable"]({
11503
11717
  loader: {
11504
11718
  loadChunk: function (chunkParams) { return _this.context.getDataLoader()
11505
- .loadChunk(__assign({}, chunkParams, { id: lookupEntity.id })); }
11719
+ .loadChunk(__assign(__assign({}, chunkParams), { id: lookupEntity.id })); }
11506
11720
  }
11507
11721
  });
11508
11722
  _this.context.getDataLoader()
11509
- .loadChunk({ offset: 0, limit: 1000, needTotal: true, entityId: lookupEntity.id })
11723
+ .loadChunk({ offset: 0, limit: 1000, needTotal: true, sourceId: lookupEntity.id })
11510
11724
  .then(function (data) {
11725
+ var _a;
11511
11726
  var _loop_1 = function (col) {
11512
11727
  var attrs = lookupEntity.attributes.filter(function (attr) {
11513
11728
  return attr.id == col.id && (attr.isPrimaryKey || attr.showInLookup);
@@ -11516,13 +11731,13 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11516
11731
  lookupTable.columns.add(col);
11517
11732
  }
11518
11733
  };
11519
- for (var _i = 0, _a = data.table.columns.getItems(); _i < _a.length; _i++) {
11520
- var col = _a[_i];
11734
+ for (var _i = 0, _b = data.table.columns.getItems(); _i < _b.length; _i++) {
11735
+ var col = _b[_i];
11521
11736
  _loop_1(col);
11522
11737
  }
11523
11738
  lookupTable.setTotal(data.total);
11524
- for (var _b = 0, _c = data.table.getCachedRows(); _b < _c.length; _b++) {
11525
- var row = _c[_b];
11739
+ for (var _c = 0, _d = data.table.getCachedRows(); _c < _d.length; _c++) {
11740
+ var row = _d[_c];
11526
11741
  lookupTable.addRow(row);
11527
11742
  }
11528
11743
  var ds = new lib_public_api["DefaultDialogService"]();
@@ -11561,7 +11776,9 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11561
11776
  .join(', ');
11562
11777
  };
11563
11778
  if (selectedValue) {
11564
- _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)
11565
11782
  .then(function (data) {
11566
11783
  if (data.entity) {
11567
11784
  updateSelectedValue(data.entity);
@@ -11609,7 +11826,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11609
11826
  }); });
11610
11827
  });
11611
11828
  };
11612
- EntityEditFormBuilder.prototype.setupDateTimeField = function (parent, attr, readOnly, value) {
11829
+ EntityEditFormBuilder.prototype.setupDateTimeField = function (parent, attr, value, readOnly, hidden) {
11613
11830
  var _this = this;
11614
11831
  var horizClass = isIE
11615
11832
  ? 'kfrm-fields-ie is-horizontal'
@@ -11630,6 +11847,8 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11630
11847
  .addClass(horizClass)
11631
11848
  .addChild('input', function (b) {
11632
11849
  inputEl = b.toDOM();
11850
+ b.name(attr.id);
11851
+ b.type(hidden ? 'hidden' : _this.resolveInputType(attr.dataType));
11633
11852
  if (readOnly) {
11634
11853
  b.attr('readonly', '');
11635
11854
  }
@@ -11653,8 +11872,6 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11653
11872
  }
11654
11873
  });
11655
11874
  }
11656
- b.name(attr.id);
11657
- b.type(_this.resolveInputType(attr.dataType));
11658
11875
  b.value((public_api["utils"].IsDefinedAndNotNull(value)
11659
11876
  ? public_api["utils"].dateTimeToStr(value, editFormat)
11660
11877
  : ''));
@@ -11696,7 +11913,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11696
11913
  }).toDOM(); });
11697
11914
  });
11698
11915
  };
11699
- EntityEditFormBuilder.prototype.setupListField = function (parent, attr, readOnly, values, value) {
11916
+ EntityEditFormBuilder.prototype.setupListField = function (parent, attr, value, values, readOnly) {
11700
11917
  var _this = this;
11701
11918
  Object(lib_public_api["domel"])(parent)
11702
11919
  .addChild('div', function (b) { return b
@@ -11729,12 +11946,14 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11729
11946
  b.attr('accept', accept);
11730
11947
  });
11731
11948
  };
11732
- EntityEditFormBuilder.prototype.setupTextField = function (parent, attr, readOnly, value) {
11949
+ EntityEditFormBuilder.prototype.setupTextField = function (parent, attr, value, readOnly, hidden) {
11733
11950
  var _this = this;
11734
11951
  Object(lib_public_api["domel"])(parent)
11735
11952
  .addChild('input', function (b) {
11736
- if (readOnly)
11953
+ if (readOnly) {
11737
11954
  b.attr('readonly', '');
11955
+ }
11956
+ b.type(hidden ? 'hidden' : _this.resolveInputType(attr.dataType));
11738
11957
  b.name(attr.id)
11739
11958
  .type(_this.resolveInputType(attr.dataType));
11740
11959
  if (attr.dataType == public_api["DataType"].Bool) {
@@ -11749,7 +11968,7 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11749
11968
  }
11750
11969
  });
11751
11970
  };
11752
- EntityEditFormBuilder.prototype.setupTextArea = function (parent, attr, readOnly, value) {
11971
+ EntityEditFormBuilder.prototype.setupTextArea = function (parent, attr, value, readOnly) {
11753
11972
  // feature: modify size in value editor ??
11754
11973
  Object(lib_public_api["domel"])(parent)
11755
11974
  .addChild('textarea', function (b) {
@@ -11757,6 +11976,9 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11757
11976
  b.attr('readonly', '');
11758
11977
  b.attr('name', attr.id);
11759
11978
  b.setStyle('height', "120px");
11979
+ b.value(public_api["utils"].IsDefinedAndNotNull(value)
11980
+ ? value.toString()
11981
+ : '');
11760
11982
  });
11761
11983
  };
11762
11984
  EntityEditFormBuilder.prototype.addFormField = function (parent, attr) {
@@ -11772,19 +11994,28 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11772
11994
  .toDOM();
11773
11995
  }
11774
11996
  Object(lib_public_api["domel"])(parent)
11775
- .addChild('label', function (b) { return b
11776
- .attr('for', attr.id)
11777
- .addHtml(attr.caption + " " + (required ? '<sup style="color: red">*</sup>' : '') + ": "); });
11997
+ .addChild('label', function (b) {
11998
+ b.attr('for', attr.id);
11999
+ b.addHtml(attr.caption + " " + (required ? '<sup style="color: red">*</sup>' : '') + ": ");
12000
+ if (attr.description) {
12001
+ b.addChild('div', function (b) { return b
12002
+ .attr('title', attr.description)
12003
+ .addClass('question-mark')
12004
+ .setStyle('vertical-align', 'middle')
12005
+ .setStyle('display', 'inline-block'); });
12006
+ }
12007
+ });
12008
+ var hidden = attr.isPrimaryKey;
11778
12009
  if (attr.kind === public_api["EntityAttrKind"].Lookup) {
11779
12010
  this.setupLookupField(parent, attr, readOnly, value);
11780
12011
  return;
11781
12012
  }
11782
12013
  switch (editor.tag) {
11783
12014
  case public_api["EditorTag"].DateTime:
11784
- this.setupDateTimeField(parent, attr, readOnly, value);
12015
+ this.setupDateTimeField(parent, attr, value, readOnly, hidden);
11785
12016
  break;
11786
12017
  case public_api["EditorTag"].List:
11787
- this.setupListField(parent, attr, readOnly, editor.values, value);
12018
+ this.setupListField(parent, attr, value, editor.values, readOnly);
11788
12019
  break;
11789
12020
  case public_api["EditorTag"].File:
11790
12021
  this.setupFileField(parent, attr, readOnly, editor.accept);
@@ -11792,10 +12023,10 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11792
12023
  case public_api["EditorTag"].Edit:
11793
12024
  default:
11794
12025
  if (editor.multiline) {
11795
- this.setupTextArea(parent, attr, readOnly, value);
12026
+ this.setupTextArea(parent, attr, value, readOnly);
11796
12027
  }
11797
12028
  else {
11798
- this.setupTextField(parent, attr, readOnly, value);
12029
+ this.setupTextField(parent, attr, value, readOnly, hidden);
11799
12030
  }
11800
12031
  break;
11801
12032
  }
@@ -11847,13 +12078,15 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11847
12078
  this.form['setHtmlInt'](formHtml);
11848
12079
  for (var _i = 0, _a = this.context.getActiveEntity().attributes; _i < _a.length; _i++) {
11849
12080
  var attr = _a[_i];
11850
- if (this.params.isEditForm) {
11851
- if (!attr.showOnEdit)
11852
- continue;
11853
- }
11854
- else {
11855
- if (!attr.showOnCreate)
11856
- 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
+ }
11857
12090
  }
11858
12091
  this.addFormField(fb.toDOM(), attr);
11859
12092
  }
@@ -11888,8 +12121,8 @@ var easy_data_server_loader_EasyDataServerLoader = /** @class */ (function () {
11888
12121
  }
11889
12122
  EasyDataServerLoader.prototype.loadChunk = function (params) {
11890
12123
  var _this = this;
11891
- var url = this.context.resolveEndpoint('GetEntities', { entityId: params.entityId || this.context.getActiveEntity().id });
11892
- delete params.entityId;
12124
+ var url = this.context.resolveEndpoint('FetchDataset', { sourceId: params.sourceId || this.context.getActiveEntity().id });
12125
+ delete params.sourceId;
11893
12126
  this.context.startProcess();
11894
12127
  var http = this.context.getHttpClient();
11895
12128
  return http.post(url, params)
@@ -11926,6 +12159,17 @@ var easy_data_server_loader_EasyDataServerLoader = /** @class */ (function () {
11926
12159
 
11927
12160
  //# sourceMappingURL=easy_data_server_loader.js.map
11928
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
+ };
11929
12173
 
11930
12174
 
11931
12175
 
@@ -11938,9 +12182,8 @@ var data_context_DataContext = /** @class */ (function () {
11938
12182
  this.model = new public_api["MetaData"]();
11939
12183
  this.model.id = options.metaDataId || '__default';
11940
12184
  this.dataLoader = new easy_data_server_loader_EasyDataServerLoader(this);
11941
- this.data = new public_api["EasyDataTable"]({
11942
- loader: this.dataLoader
11943
- });
12185
+ var dataTableOptions = data_context_assign({ loader: this.dataLoader }, options.dataTable);
12186
+ this.data = new public_api["EasyDataTable"](dataTableOptions);
11944
12187
  this.setDefaultEndpoints(this.options.endpoint || '/api/easydata');
11945
12188
  }
11946
12189
  DataContext.prototype.getActiveEntity = function () {
@@ -11959,8 +12202,8 @@ var data_context_DataContext = /** @class */ (function () {
11959
12202
  DataContext.prototype.getDataLoader = function () {
11960
12203
  return this.dataLoader;
11961
12204
  };
11962
- DataContext.prototype.createFilter = function (entityId, data, isLookup) {
11963
- 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);
11964
12207
  };
11965
12208
  DataContext.prototype.loadMetaData = function () {
11966
12209
  var _this = this;
@@ -11984,7 +12227,7 @@ var data_context_DataContext = /** @class */ (function () {
11984
12227
  DataContext.prototype.getHttpClient = function () {
11985
12228
  return this.http;
11986
12229
  };
11987
- DataContext.prototype.getEntities = function () {
12230
+ DataContext.prototype.fetchDataset = function () {
11988
12231
  var _this = this;
11989
12232
  this.data.clear();
11990
12233
  return this.dataLoader.loadChunk({ offset: 0, limit: this.data.chunkSize, needTotal: true })
@@ -12001,33 +12244,33 @@ var data_context_DataContext = /** @class */ (function () {
12001
12244
  return _this.data;
12002
12245
  });
12003
12246
  };
12004
- DataContext.prototype.getEntity = function (id, entityId) {
12247
+ DataContext.prototype.fetchRecord = function (keys, sourceId) {
12005
12248
  var _this = this;
12006
- var url = this.resolveEndpoint('GetEntity', { id: id,
12007
- entityId: entityId || this.activeEntity.id });
12249
+ var url = this.resolveEndpoint('FetchRecord', { sourceId: sourceId || this.activeEntity.id });
12008
12250
  this.startProcess();
12009
- return this.http.get(url).getPromise()
12251
+ return this.http.get(url, { queryParams: keys })
12010
12252
  .finally(function () { return _this.endProcess(); });
12011
12253
  };
12012
- DataContext.prototype.createEntity = function (obj, entityId) {
12254
+ DataContext.prototype.createRecord = function (obj, sourceId) {
12013
12255
  var _this = this;
12014
- var url = this.resolveEndpoint('CreateEntity', { entityId: entityId || this.activeEntity.id });
12256
+ var url = this.resolveEndpoint('CreateRecord', { sourceId: sourceId || this.activeEntity.id });
12015
12257
  this.startProcess();
12016
- 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(); });
12017
12260
  };
12018
- DataContext.prototype.updateEntity = function (id, obj, entityId) {
12261
+ DataContext.prototype.updateRecord = function (obj, sourceId) {
12019
12262
  var _this = this;
12020
- var url = this.resolveEndpoint('UpdateEntity', { id: id,
12021
- entityId: entityId || this.activeEntity.id });
12263
+ var url = this.resolveEndpoint('UpdateRecord', { sourceId: sourceId || this.activeEntity.id });
12022
12264
  this.startProcess();
12023
- 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(); });
12024
12267
  };
12025
- DataContext.prototype.deleteEntity = function (id, entityId) {
12268
+ DataContext.prototype.deleteRecord = function (obj, sourceId) {
12026
12269
  var _this = this;
12027
- var url = this.resolveEndpoint('DeleteEntity', { id: id,
12028
- entityId: entityId || this.activeEntity.id });
12270
+ var url = this.resolveEndpoint('DeleteRecord', { sourceId: sourceId || this.activeEntity.id });
12029
12271
  this.startProcess();
12030
- 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(); });
12031
12274
  };
12032
12275
  DataContext.prototype.setEndpoint = function (key, value) {
12033
12276
  this.endpoints.set(key, value);
@@ -12052,7 +12295,7 @@ var data_context_DataContext = /** @class */ (function () {
12052
12295
  if (opt == 'modelId') {
12053
12296
  optVal = this.model.getId();
12054
12297
  }
12055
- else if (opt == 'entityId') {
12298
+ else if (opt == 'sourceId') {
12056
12299
  optVal = this.activeEntity.id;
12057
12300
  }
12058
12301
  else {
@@ -12074,18 +12317,18 @@ var data_context_DataContext = /** @class */ (function () {
12074
12317
  };
12075
12318
  DataContext.prototype.setDefaultEndpoints = function (endpointBase) {
12076
12319
  this.setEnpointIfNotExist('GetMetaData', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}'));
12077
- this.setEnpointIfNotExist('GetEntities', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/fetch'));
12078
- this.setEnpointIfNotExist('GetEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/fetch/{id}'));
12079
- this.setEnpointIfNotExist('CreateEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/create'));
12080
- this.setEnpointIfNotExist('UpdateEntity', Object(public_api["combinePath"])(endpointBase, 'models/{modelId}/crud/{entityId}/update/{id}'));
12081
- 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'));
12082
12325
  };
12083
12326
  return DataContext;
12084
12327
  }());
12085
12328
 
12086
12329
  //# sourceMappingURL=data_context.js.map
12087
12330
  // EXTERNAL MODULE: ./dist/lib/validators/validator.js
12088
- var validator = __webpack_require__(10);
12331
+ var validator = __webpack_require__(9);
12089
12332
 
12090
12333
  // CONCATENATED MODULE: ./dist/lib/validators/type_validator.js
12091
12334
  var __extends = (undefined && undefined.__extends) || (function () {
@@ -12214,7 +12457,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12214
12457
  };
12215
12458
  EntityDataView.prototype.renderGrid = function () {
12216
12459
  var _this = this;
12217
- this.context.getEntities()
12460
+ this.context.fetchDataset()
12218
12461
  .then(function (result) {
12219
12462
  var gridSlot = document.createElement('div');
12220
12463
  _this.slot.appendChild(gridSlot);
@@ -12227,7 +12470,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12227
12470
  allowPageSizeChange: true,
12228
12471
  pageSizeItems: [15, 30, 50, 100, 200]
12229
12472
  },
12230
- addColumns: true,
12473
+ addColumns: _this.context.getActiveEntity().isEditable,
12231
12474
  addColumnsTitle: public_api["i18n"].getText('AddBtnTitle'),
12232
12475
  showActiveRow: false,
12233
12476
  onAddColumnClick: _this.addClickHandler.bind(_this),
@@ -12285,7 +12528,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12285
12528
  if (!form.validate())
12286
12529
  return false;
12287
12530
  form.getData()
12288
- .then(function (obj) { return _this.context.createEntity(obj); })
12531
+ .then(function (obj) { return _this.context.createRecord(obj); })
12289
12532
  .then(function () {
12290
12533
  return _this.refreshData();
12291
12534
  })
@@ -12316,12 +12559,10 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12316
12559
  .replace('{entity}', activeEntity.caption),
12317
12560
  body: form.getHtml(),
12318
12561
  onSubmit: function () {
12319
- var keyAttrs = activeEntity.attributes.filter(function (attr) { return attr.isPrimaryKey; });
12320
- var keys = keyAttrs.map(function (attr) { return row.getValue(attr.id); });
12321
12562
  if (!form.validate())
12322
12563
  return false;
12323
12564
  form.getData()
12324
- .then(function (obj) { return _this.context.updateEntity(keys.join(':'), obj); })
12565
+ .then(function (obj) { return _this.context.updateRecord(obj); })
12325
12566
  .then(function () {
12326
12567
  return _this.refreshData();
12327
12568
  })
@@ -12342,16 +12583,20 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12342
12583
  .then(function (row) {
12343
12584
  if (row) {
12344
12585
  var activeEntity = _this.context.getActiveEntity();
12345
- var keyAttrs = activeEntity.attributes.filter(function (attr) { return attr.isPrimaryKey; });
12346
- var keys_1 = keyAttrs.map(function (attr) { return row.getValue(attr.id); });
12347
- 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
+ }, {});
12348
12593
  _this.dlg.openConfirm(public_api["i18n"].getText('DeleteDlgCaption')
12349
12594
  .replace('{entity}', activeEntity.caption), public_api["i18n"].getText('DeleteDlgMessage')
12350
- .replace('{entityId}', entityId))
12595
+ .replace('{recordId}', Object.keys(keys_1)
12596
+ .map(function (key) { return key + ":" + keys_1[key]; }).join(';')))
12351
12597
  .then(function (result) {
12352
12598
  if (result) {
12353
- //pass entityId in future
12354
- _this.context.deleteEntity(keys_1.join(':'))
12599
+ _this.context.deleteRecord(keys_1)
12355
12600
  .then(function () {
12356
12601
  return _this.refreshData();
12357
12602
  })
@@ -12373,7 +12618,7 @@ var entity_data_view_EntityDataView = /** @class */ (function () {
12373
12618
  };
12374
12619
  EntityDataView.prototype.refreshData = function () {
12375
12620
  var _this = this;
12376
- return this.context.getEntities()
12621
+ return this.context.fetchDataset()
12377
12622
  .then(function () {
12378
12623
  _this.grid.refresh();
12379
12624
  });
@@ -12459,6 +12704,7 @@ var easy_data_view_dispatcher_EasyDataViewDispatcher = /** @class */ (function (
12459
12704
  parent.insertBefore(progressBarSlot, parent.firstElementChild);
12460
12705
  this.context = new data_context_DataContext({
12461
12706
  endpoint: options.endpoint,
12707
+ dataTable: options.dataTable,
12462
12708
  onProcessStart: function () { return bar.show(); },
12463
12709
  onProcessEnd: function () { return bar.hide(); }
12464
12710
  });
@@ -12559,7 +12805,7 @@ function addEasyDataCRUDTexts() {
12559
12805
  AddDlgCaption: 'Create {entity}',
12560
12806
  EditDlgCaption: 'Edit {entity}',
12561
12807
  DeleteDlgCaption: 'Delete {entity}',
12562
- DeleteDlgMessage: 'Are you shure about removing this entity: [{entityId}]?',
12808
+ DeleteDlgMessage: 'Are you sure you want to remove this record: {{recordId}}?',
12563
12809
  EntityMenuDesc: 'Click on an entity to view/edit its content',
12564
12810
  BackToEntities: 'Back to entities',
12565
12811
  SearchBtn: 'Search',