@easydata/crud 1.3.6-rc01 → 1.4.0-beta01

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.
@@ -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 = 32);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 33);
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);
@@ -154,7 +155,7 @@ var http_method = __webpack_require__(11);
154
155
  var http_request = __webpack_require__(15);
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__(22);
158
+ var http_client = __webpack_require__(23);
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);
@@ -1016,7 +1017,7 @@ var data_column = __webpack_require__(16);
1016
1017
  var data_row = __webpack_require__(14);
1017
1018
 
1018
1019
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/data/easy_data_table.js
1019
- var easy_data_table = __webpack_require__(26);
1020
+ var easy_data_table = __webpack_require__(27);
1020
1021
 
1021
1022
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/easy_guid.js
1022
1023
  /**
@@ -1168,6 +1169,22 @@ var event_emitter_EventEmitter = /** @class */ (function () {
1168
1169
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/string_utils.js
1169
1170
  var string_utils = __webpack_require__(13);
1170
1171
 
1172
+ // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/utils/liquid.js
1173
+ var liquid;
1174
+ (function (liquid) {
1175
+ function renderLiquidTemplate(template, vars) {
1176
+ var result = template;
1177
+ if (vars) {
1178
+ for (var v in vars) {
1179
+ var liquidVarRegexp = new RegExp('\{\{' + v + '\}\}', 'g');
1180
+ result = result.replace(liquidVarRegexp, vars[v]);
1181
+ }
1182
+ }
1183
+ return result;
1184
+ }
1185
+ liquid.renderLiquidTemplate = renderLiquidTemplate;
1186
+ })(liquid || (liquid = {}));
1187
+ //# sourceMappingURL=liquid.js.map
1171
1188
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/i18n/load_default_locale_settings.js
1172
1189
 
1173
1190
  i18n["a" /* i18n */].resetLocales();
@@ -1199,6 +1216,7 @@ i18n["a" /* i18n */].resetLocales();
1199
1216
 
1200
1217
 
1201
1218
 
1219
+
1202
1220
  if (typeof Object.values !== 'function') {
1203
1221
  Object.values = function (obj) {
1204
1222
  return Object.keys(obj).map(function (key) { return obj[key]; });
@@ -1629,11 +1647,13 @@ __webpack_require__.d(__webpack_exports__, "eqCssPrefix", function() { return /*
1629
1647
  __webpack_require__.d(__webpack_exports__, "eqCssMobile", function() { return /* reexport */ ui_utils["d" /* eqCssMobile */]; });
1630
1648
  __webpack_require__.d(__webpack_exports__, "DefaultDialogService", function() { return /* reexport */ default_dialog_service["b" /* DefaultDialogService */]; });
1631
1649
  __webpack_require__.d(__webpack_exports__, "DefaultDialog", function() { return /* reexport */ default_dialog_service["a" /* DefaultDialog */]; });
1632
- __webpack_require__.d(__webpack_exports__, "DefaultProgressDialog", function() { return /* reexport */ default_dialog_service["c" /* DefaultProgressDialog */]; });
1650
+ __webpack_require__.d(__webpack_exports__, "DefaultProgressDialog", function() { return /* reexport */ default_dialog_service["d" /* DefaultProgressDialog */]; });
1651
+ __webpack_require__.d(__webpack_exports__, "DefaultDialogSet", function() { return /* reexport */ default_dialog_service["c" /* DefaultDialogSet */]; });
1652
+ __webpack_require__.d(__webpack_exports__, "DialogFooterAlignment", function() { return /* reexport */ dialog_service["a" /* DialogFooterAlignment */]; });
1633
1653
  __webpack_require__.d(__webpack_exports__, "dialogs", function() { return /* binding */ dialogs; });
1634
1654
 
1635
1655
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid.js
1636
- var easy_grid = __webpack_require__(27);
1656
+ var easy_grid = __webpack_require__(28);
1637
1657
 
1638
1658
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/grid/easy_grid_columns.js
1639
1659
  var easy_grid_columns = __webpack_require__(8);
@@ -1783,7 +1803,7 @@ var date_time_picker_DateTimePicker = /** @class */ (function () {
1783
1803
  }());
1784
1804
 
1785
1805
  //# sourceMappingURL=date_time_picker.js.map
1786
- // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 9 modules
1806
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 10 modules
1787
1807
  var public_api = __webpack_require__(0);
1788
1808
 
1789
1809
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/utils/dom_elem_builder.js
@@ -2303,6 +2323,9 @@ var mask = __webpack_require__(18);
2303
2323
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/default_dialog_service.js
2304
2324
  var default_dialog_service = __webpack_require__(19);
2305
2325
 
2326
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/dialogs/dialog_service.js
2327
+ var dialog_service = __webpack_require__(20);
2328
+
2306
2329
  // CONCATENATED MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/i18n/text_resources.js
2307
2330
 
2308
2331
  function addEasyDataUITexts() {
@@ -2340,6 +2363,7 @@ addEasyDataUITexts();
2340
2363
 
2341
2364
 
2342
2365
 
2366
+
2343
2367
  // export dialogs to use outside of context as global
2344
2368
  var dialogs = new default_dialog_service["b" /* DefaultDialogService */]();
2345
2369
 
@@ -3677,6 +3701,7 @@ var GridColumn = /** @class */ (function () {
3677
3701
  function GridColumn(column, grid, isRowNum) {
3678
3702
  if (isRowNum === void 0) { isRowNum = false; }
3679
3703
  this._label = null;
3704
+ this._description = null;
3680
3705
  //public left: number;
3681
3706
  this.align = GridColumnAlign.NONE;
3682
3707
  this.isVisible = true;
@@ -3703,6 +3728,7 @@ var GridColumn = /** @class */ (function () {
3703
3728
  this.width = DEFAULT_WIDTH_STRING;
3704
3729
  }
3705
3730
  this.cellRenderer = this.grid.cellRendererStore.getDefaultRenderer(column.type);
3731
+ this._description = column.description;
3706
3732
  }
3707
3733
  else if (isRowNum) {
3708
3734
  this.isRowNum = true;
@@ -3725,6 +3751,14 @@ var GridColumn = /** @class */ (function () {
3725
3751
  configurable: true
3726
3752
  });
3727
3753
  ;
3754
+ Object.defineProperty(GridColumn.prototype, "description", {
3755
+ /** Get column description. */
3756
+ get: function () {
3757
+ return this._description;
3758
+ },
3759
+ enumerable: true,
3760
+ configurable: true
3761
+ });
3728
3762
  Object.defineProperty(GridColumn.prototype, "type", {
3729
3763
  get: function () {
3730
3764
  return this.dataColumn ? this.dataColumn.type : null;
@@ -4572,6 +4606,7 @@ var DataColumn = /** @class */ (function () {
4572
4606
  this.displayFormat = desc.dfmt;
4573
4607
  this.groupFooterColumnTemplate = desc.gfct;
4574
4608
  this.style = desc.style || {};
4609
+ this.description = desc.description;
4575
4610
  }
4576
4611
  return DataColumn;
4577
4612
  }());
@@ -4839,9 +4874,11 @@ function mask(input, maskPattern) {
4839
4874
  "use strict";
4840
4875
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DefaultDialogService; });
4841
4876
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DefaultDialog; });
4842
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DefaultProgressDialog; });
4877
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DefaultProgressDialog; });
4878
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DefaultDialogSet; });
4843
4879
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4844
- /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
4880
+ /* harmony import */ var _dialog_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
4881
+ /* harmony import */ var _utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);
4845
4882
  var __extends = (undefined && undefined.__extends) || (function () {
4846
4883
  var extendStatics = function (d, b) {
4847
4884
  extendStatics = Object.setPrototypeOf ||
@@ -4857,6 +4894,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
4857
4894
  })();
4858
4895
 
4859
4896
 
4897
+
4860
4898
  var cssPrefix = "kdlg";
4861
4899
  var DefaultDialogService = /** @class */ (function () {
4862
4900
  function DefaultDialogService() {
@@ -4940,17 +4978,20 @@ var DefaultDialogService = /** @class */ (function () {
4940
4978
  _this.open(options);
4941
4979
  });
4942
4980
  };
4943
- DefaultDialogService.prototype.open = function (options) {
4981
+ DefaultDialogService.prototype.open = function (options, data) {
4944
4982
  var _this = this;
4983
+ var dialog = new DefaultDialog(options, data);
4945
4984
  var onDestroy = options.onDestroy;
4946
- options.onDestroy = function () {
4985
+ options.onDestroy = function (dlg) {
4947
4986
  _this.untrack(dlg);
4948
- onDestroy && onDestroy();
4987
+ onDestroy && onDestroy(dlg);
4949
4988
  };
4950
- var dlg = new DefaultDialog(options);
4951
- dlg.open();
4952
- this.track(dlg);
4953
- return dlg;
4989
+ dialog.open();
4990
+ this.track(dialog);
4991
+ return dialog;
4992
+ };
4993
+ DefaultDialogService.prototype.createSet = function (options) {
4994
+ return new DefaultDialogSet(options, this);
4954
4995
  };
4955
4996
  DefaultDialogService.prototype.untrack = function (dlg) {
4956
4997
  var index = DefaultDialogService.openDialogs.indexOf(dlg);
@@ -4963,15 +5004,15 @@ var DefaultDialogService = /** @class */ (function () {
4963
5004
  };
4964
5005
  DefaultDialogService.prototype.openProgress = function (options) {
4965
5006
  var _this = this;
5007
+ var dialog = new DefaultProgressDialog(options);
4966
5008
  var onDestroy = options.onDestroy;
4967
- options.onDestroy = function () {
5009
+ options.onDestroy = function (dlg) {
4968
5010
  _this.untrack(dlg);
4969
- onDestroy && onDestroy();
5011
+ onDestroy && onDestroy(dlg);
4970
5012
  };
4971
- var dlg = new DefaultProgressDialog(options);
4972
- dlg.open();
4973
- this.track(dlg);
4974
- return dlg;
5013
+ dialog.open();
5014
+ this.track(dialog);
5015
+ return dialog;
4975
5016
  };
4976
5017
  DefaultDialogService.prototype.getAllDialogs = function () {
4977
5018
  return Array.from(DefaultDialogService.openDialogs);
@@ -4987,11 +5028,11 @@ var DefaultDialogService = /** @class */ (function () {
4987
5028
  }());
4988
5029
 
4989
5030
  var DefaultDialog = /** @class */ (function () {
4990
- function DefaultDialog(options) {
5031
+ function DefaultDialog(options, data) {
4991
5032
  var _this = this;
4992
5033
  this.options = options;
4993
- this.submitHandler = function () {
4994
- if (_this.options.onSubmit && _this.options.onSubmit() === false) {
5034
+ this.submitHandler = function (token) {
5035
+ if (_this.options.onSubmit && _this.options.onSubmit(_this, token) === false) {
4995
5036
  return false;
4996
5037
  }
4997
5038
  _this.destroy();
@@ -4999,7 +5040,7 @@ var DefaultDialog = /** @class */ (function () {
4999
5040
  };
5000
5041
  this.cancelHandler = function () {
5001
5042
  if (_this.options.onCancel) {
5002
- _this.options.onCancel();
5043
+ _this.options.onCancel(_this);
5003
5044
  }
5004
5045
  _this.destroy();
5005
5046
  };
@@ -5014,11 +5055,12 @@ var DefaultDialog = /** @class */ (function () {
5014
5055
  }
5015
5056
  return true;
5016
5057
  };
5017
- var id = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].generateId('dlg');
5058
+ this.dialogId = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["utils"].generateId('dlg');
5059
+ this.data = data;
5018
5060
  this.slot =
5019
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])('div', document.body)
5061
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', document.body)
5020
5062
  .attr('tab-index', '-1')
5021
- .data('dialog-id', id)
5063
+ .data('dialog-id', this.dialogId)
5022
5064
  .addClass(cssPrefix + "-modal", 'is-active')
5023
5065
  .focus()
5024
5066
  .addChild('div', function (b) { return b
@@ -5039,36 +5081,68 @@ var DefaultDialog = /** @class */ (function () {
5039
5081
  _this.cancelHandler();
5040
5082
  })
5041
5083
  .focus(); });
5084
+ })
5085
+ .addChild('div', function (b) {
5086
+ b.addClass(cssPrefix + "-alert-container");
5087
+ _this.alertElement = b.toDOM();
5042
5088
  })
5043
5089
  .addChild('section', function (b) {
5044
5090
  _this.bodyElement = b
5045
5091
  .addClass(cssPrefix + "-body")
5046
5092
  .toDOM();
5047
5093
  if (typeof options.body === 'string') {
5048
- b.addHtml(options.body);
5094
+ var html = _easydata_core__WEBPACK_IMPORTED_MODULE_0__["liquid"].renderLiquidTemplate(options.body, data);
5095
+ b.addHtml(html);
5049
5096
  }
5050
5097
  else {
5051
5098
  b.addChildElement(options.body);
5052
5099
  }
5053
5100
  })
5054
- .addChild('div', function (b) { return _this.alertElement = b
5055
- .addClass(cssPrefix + "-alert-container")
5056
- .toDOM(); })
5057
5101
  .addChild('footer', function (b) {
5102
+ var alignClass = null;
5103
+ if (options.footerAlignment && options.footerAlignment == _dialog_service__WEBPACK_IMPORTED_MODULE_1__[/* DialogFooterAlignment */ "a"].Center) {
5104
+ alignClass = 'align-center';
5105
+ }
5106
+ else {
5107
+ alignClass = 'align-right';
5108
+ }
5058
5109
  _this.footerElement = b
5059
- .addClass(cssPrefix + "-footer", 'align-right')
5110
+ .addClass(cssPrefix + "-footer")
5060
5111
  .toDOM();
5112
+ b.addClass(alignClass);
5061
5113
  if (options.submitable === false)
5062
5114
  return;
5063
- b.addChild('button', function (b) { return b
5064
- .addClass('kfrm-button', 'is-info')
5065
- .addText(options.submitButtonText || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getText('ButtonOK'))
5066
- .on('click', function (e) {
5067
- _this.submitHandler();
5068
- })
5069
- .focus(); });
5115
+ b.addChild('button', function (bb) {
5116
+ bb.id(_this.dialogId + '-btn-submit')
5117
+ .addClass('kfrm-button', 'is-info')
5118
+ .addText(options.submitButtonText || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getText('ButtonOK'));
5119
+ if (options.recaptchaSiteKey) {
5120
+ bb.data('sitekey', options.recaptchaSiteKey);
5121
+ bb.addClass('g-recaptcha');
5122
+ bb.on('click', function (e) {
5123
+ if (grecaptcha) {
5124
+ grecaptcha.ready(function () {
5125
+ grecaptcha.execute(options.recaptchaSiteKey, { action: 'submit' })
5126
+ .then(function (token) {
5127
+ _this.submitHandler(token);
5128
+ });
5129
+ });
5130
+ }
5131
+ else {
5132
+ _this.submitHandler();
5133
+ }
5134
+ });
5135
+ }
5136
+ else {
5137
+ bb.on('click', function (e) {
5138
+ _this.submitHandler();
5139
+ });
5140
+ }
5141
+ bb.focus();
5142
+ });
5070
5143
  if (options.cancelable !== false)
5071
- b.addChild('button', function (builder) { return builder
5144
+ b.addChild('button', function (bb) { return bb
5145
+ .id(_this.dialogId + '-btn-cancel')
5072
5146
  .addClass('kfrm-button')
5073
5147
  .addText(options.cancelButtonText || _easydata_core__WEBPACK_IMPORTED_MODULE_0__["i18n"].getText('ButtonCancel'))
5074
5148
  .on('click', function (e) {
@@ -5078,14 +5152,24 @@ var DefaultDialog = /** @class */ (function () {
5078
5152
  .toDOM(); })
5079
5153
  .toDOM();
5080
5154
  }
5155
+ DefaultDialog.prototype.getData = function () {
5156
+ return this.data;
5157
+ };
5081
5158
  DefaultDialog.prototype.getRootElement = function () {
5082
5159
  return this.slot;
5083
5160
  };
5161
+ DefaultDialog.prototype.getSubmitButtonElement = function () {
5162
+ return document.getElementById(this.dialogId + '-btn-submit');
5163
+ };
5164
+ DefaultDialog.prototype.getCancelButtonElement = function () {
5165
+ return document.getElementById(this.dialogId + '-btn-cancel');
5166
+ };
5084
5167
  DefaultDialog.prototype.open = function () {
5168
+ var _this = this;
5085
5169
  if (this.options.beforeOpen) {
5086
- this.options.beforeOpen();
5170
+ this.options.beforeOpen(this);
5087
5171
  }
5088
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])(this.slot).show();
5172
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(this.slot).show();
5089
5173
  if (this.options.arrangeParents) {
5090
5174
  this.arrangeParents(true);
5091
5175
  }
@@ -5104,6 +5188,19 @@ var DefaultDialog = /** @class */ (function () {
5104
5188
  if (this.options.submitOnEnter) {
5105
5189
  window.addEventListener('keydown', this.keydownHandler, false);
5106
5190
  }
5191
+ //clear alert on change in any input element
5192
+ this.slot.querySelectorAll('input')
5193
+ .forEach(function (element) {
5194
+ return element.addEventListener('input', function () {
5195
+ _this.clearAlert();
5196
+ if (_this.options.onInput) {
5197
+ _this.options.onInput(_this);
5198
+ }
5199
+ });
5200
+ });
5201
+ if (this.options.onShow) {
5202
+ this.options.onShow(this);
5203
+ }
5107
5204
  };
5108
5205
  DefaultDialog.prototype.submit = function () {
5109
5206
  this.submitHandler();
@@ -5123,7 +5220,7 @@ var DefaultDialog = /** @class */ (function () {
5123
5220
  buttons.forEach(function (button) { return button.disabled = false; });
5124
5221
  };
5125
5222
  DefaultDialog.prototype.showAlert = function (text, reason, replace) {
5126
- var alert = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])('div')
5223
+ var alert = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
5127
5224
  .addClass(cssPrefix + "-alert " + (reason || ''))
5128
5225
  .addChild('span', function (b) { return b
5129
5226
  .addClass(cssPrefix + "-alert-closebtn")
@@ -5143,6 +5240,9 @@ var DefaultDialog = /** @class */ (function () {
5143
5240
  this.alertElement.innerHTML = '';
5144
5241
  };
5145
5242
  DefaultDialog.prototype.destroy = function () {
5243
+ var elem = document.querySelectorAll("[data-dialog-id=\"" + this.dialogId + "\"]");
5244
+ if (elem.length <= 0)
5245
+ return;
5146
5246
  if (this.options.arrangeParents) {
5147
5247
  this.arrangeParents(false);
5148
5248
  }
@@ -5151,7 +5251,7 @@ var DefaultDialog = /** @class */ (function () {
5151
5251
  window.removeEventListener('keydown', this.keydownHandler, false);
5152
5252
  }
5153
5253
  if (this.options.onDestroy) {
5154
- this.options.onDestroy();
5254
+ this.options.onDestroy(this);
5155
5255
  }
5156
5256
  };
5157
5257
  DefaultDialog.prototype.isActiveDialog = function () {
@@ -5163,12 +5263,12 @@ var DefaultDialog = /** @class */ (function () {
5163
5263
  for (var i = 0; i < windowDivs.length - 1; i++) {
5164
5264
  if (turnOn) {
5165
5265
  var offset = i == 0 ? 20 : i * 40 + 20;
5166
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])(windowDivs[i])
5266
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(windowDivs[i])
5167
5267
  .setStyle('margin-top', offset + "px")
5168
5268
  .setStyle('margin-left', offset + "px");
5169
5269
  }
5170
5270
  else {
5171
- Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])(windowDivs[i])
5271
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(windowDivs[i])
5172
5272
  .removeStyle('margin-top')
5173
5273
  .removeStyle('margin-left');
5174
5274
  }
@@ -5179,11 +5279,11 @@ var DefaultDialog = /** @class */ (function () {
5179
5279
 
5180
5280
  var DefaultProgressDialog = /** @class */ (function (_super) {
5181
5281
  __extends(DefaultProgressDialog, _super);
5182
- function DefaultProgressDialog(options) {
5282
+ function DefaultProgressDialog(options, data) {
5183
5283
  var _this = this;
5184
5284
  var contentElement;
5185
5285
  var progressElement;
5186
- var body = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_1__[/* domel */ "e"])('div')
5286
+ var body = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
5187
5287
  .addChild('div', function (b) { return contentElement = b
5188
5288
  .text(options.content || '')
5189
5289
  .toDOM(); })
@@ -5214,7 +5314,7 @@ var DefaultProgressDialog = /** @class */ (function (_super) {
5214
5314
  cancelable: false,
5215
5315
  closable: false,
5216
5316
  onDestroy: options.onDestroy
5217
- }) || this;
5317
+ }, data) || this;
5218
5318
  _this.contentElement = contentElement;
5219
5319
  _this.progressElement = progressElement;
5220
5320
  return _this;
@@ -5243,13 +5343,74 @@ var DefaultProgressDialog = /** @class */ (function (_super) {
5243
5343
  return DefaultProgressDialog;
5244
5344
  }(DefaultDialog));
5245
5345
 
5346
+ var DefaultDialogSet = /** @class */ (function () {
5347
+ function DefaultDialogSet(options, dialogService) {
5348
+ this.options = options;
5349
+ this.dialogService = dialogService;
5350
+ this.currentDialog = null;
5351
+ this.currentIndex = 0;
5352
+ this.options = options;
5353
+ this.dialogService = dialogService;
5354
+ }
5355
+ DefaultDialogSet.prototype.getCurrent = function () {
5356
+ return this.currentDialog;
5357
+ };
5358
+ DefaultDialogSet.prototype.openNext = function (data) {
5359
+ return this.open(this.currentIndex + 1, data);
5360
+ };
5361
+ DefaultDialogSet.prototype.openPrev = function (data) {
5362
+ return this.open(this.currentIndex - 1, data);
5363
+ };
5364
+ DefaultDialogSet.prototype.open = function (page, data) {
5365
+ if (page < 0) {
5366
+ this.currentIndex = 0;
5367
+ }
5368
+ else if (page >= this.options.length) {
5369
+ this.currentIndex = this.options.length - 1;
5370
+ }
5371
+ else {
5372
+ this.currentIndex = page;
5373
+ }
5374
+ if (this.currentDialog) {
5375
+ try {
5376
+ this.currentDialog.close();
5377
+ }
5378
+ catch (e) { }
5379
+ }
5380
+ var dlgOptions = this.options[this.currentIndex];
5381
+ this.currentDialog = this.dialogService.open(dlgOptions, data);
5382
+ return this.currentDialog;
5383
+ };
5384
+ DefaultDialogSet.prototype.close = function () {
5385
+ if (this.currentDialog) {
5386
+ this.currentDialog.close();
5387
+ this.currentDialog = null;
5388
+ }
5389
+ };
5390
+ return DefaultDialogSet;
5391
+ }());
5392
+
5246
5393
  //# sourceMappingURL=default_dialog_service.js.map
5247
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(28)))
5394
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
5248
5395
 
5249
5396
  /***/ }),
5250
5397
  /* 20 */
5251
5398
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5252
5399
 
5400
+ "use strict";
5401
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DialogFooterAlignment; });
5402
+ var DialogFooterAlignment;
5403
+ (function (DialogFooterAlignment) {
5404
+ DialogFooterAlignment[DialogFooterAlignment["Left"] = 1] = "Left";
5405
+ DialogFooterAlignment[DialogFooterAlignment["Center"] = 2] = "Center";
5406
+ DialogFooterAlignment[DialogFooterAlignment["Right"] = 3] = "Right";
5407
+ })(DialogFooterAlignment || (DialogFooterAlignment = {}));
5408
+ //# sourceMappingURL=dialog_service.js.map
5409
+
5410
+ /***/ }),
5411
+ /* 21 */
5412
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5413
+
5253
5414
  "use strict";
5254
5415
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TextDataFilter; });
5255
5416
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
@@ -5377,10 +5538,10 @@ var TextDataFilter = /** @class */ (function () {
5377
5538
  }());
5378
5539
 
5379
5540
  //# sourceMappingURL=text_data_filter.js.map
5380
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
5541
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5381
5542
 
5382
5543
  /***/ }),
5383
- /* 21 */
5544
+ /* 22 */
5384
5545
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5385
5546
 
5386
5547
  "use strict";
@@ -5388,7 +5549,7 @@ var TextDataFilter = /** @class */ (function () {
5388
5549
  /* harmony import */ var _easydata_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
5389
5550
  /* harmony import */ var _easydata_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
5390
5551
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
5391
- /* harmony import */ var _validators_datetime_validator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31);
5552
+ /* harmony import */ var _validators_datetime_validator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32);
5392
5553
 
5393
5554
 
5394
5555
 
@@ -5523,17 +5684,17 @@ var EntityEditForm = /** @class */ (function () {
5523
5684
  }());
5524
5685
 
5525
5686
  //# sourceMappingURL=entity_edit_form.js.map
5526
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
5687
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
5527
5688
 
5528
5689
  /***/ }),
5529
- /* 22 */
5690
+ /* 23 */
5530
5691
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5531
5692
 
5532
5693
  "use strict";
5533
5694
  /* WEBPACK VAR INJECTION */(function(Promise) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return HttpResponseError; });
5534
5695
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HttpClient; });
5535
5696
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
5536
- /* harmony import */ var _http_action_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30);
5697
+ /* harmony import */ var _http_action_result__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
5537
5698
  /* harmony import */ var _http_method__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
5538
5699
  /* harmony import */ var _http_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
5539
5700
  var __extends = (undefined && undefined.__extends) || (function () {
@@ -5635,7 +5796,7 @@ var HttpClient = /** @class */ (function () {
5635
5796
  }
5636
5797
  var responseContentType = xhr.getResponseHeader('Content-Type') || '';
5637
5798
  var status = xhr.status;
5638
- if (status >= 300 || status < 200) {
5799
+ if (status >= 400) {
5639
5800
  var rtPromise = (xhr.responseType === 'arraybuffer'
5640
5801
  || xhr.responseType === 'blob')
5641
5802
  ? HttpClient.decodeArrayBuffer(xhr.response)
@@ -5677,10 +5838,10 @@ var HttpClient = /** @class */ (function () {
5677
5838
  }());
5678
5839
 
5679
5840
  //# sourceMappingURL=http_client.js.map
5680
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))
5841
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
5681
5842
 
5682
5843
  /***/ }),
5683
- /* 23 */
5844
+ /* 24 */
5684
5845
  /***/ (function(module, exports, __webpack_require__) {
5685
5846
 
5686
5847
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -6857,10 +7018,10 @@ return Promise$1;
6857
7018
 
6858
7019
  //# sourceMappingURL=es6-promise.map
6859
7020
 
6860
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24), __webpack_require__(25)))
7021
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
6861
7022
 
6862
7023
  /***/ }),
6863
- /* 24 */
7024
+ /* 25 */
6864
7025
  /***/ (function(module, exports) {
6865
7026
 
6866
7027
  // shim for using process in browser
@@ -7050,7 +7211,7 @@ process.umask = function() { return 0; };
7050
7211
 
7051
7212
 
7052
7213
  /***/ }),
7053
- /* 25 */
7214
+ /* 26 */
7054
7215
  /***/ (function(module, exports) {
7055
7216
 
7056
7217
  var g;
@@ -7076,7 +7237,7 @@ module.exports = g;
7076
7237
 
7077
7238
 
7078
7239
  /***/ }),
7079
- /* 26 */
7240
+ /* 27 */
7080
7241
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7081
7242
 
7082
7243
  "use strict";
@@ -7364,10 +7525,10 @@ var EasyDataTable = /** @class */ (function () {
7364
7525
  }());
7365
7526
 
7366
7527
  //# sourceMappingURL=easy_data_table.js.map
7367
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)))
7528
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)))
7368
7529
 
7369
7530
  /***/ }),
7370
- /* 27 */
7531
+ /* 28 */
7371
7532
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7372
7533
 
7373
7534
  "use strict";
@@ -7636,6 +7797,12 @@ var EasyGrid = /** @class */ (function () {
7636
7797
  }
7637
7798
  });
7638
7799
  };
7800
+ EasyGrid.prototype.getContainerWidth = function () {
7801
+ return this.columns.getItems()
7802
+ .filter(function (col) { return col.isVisible; })
7803
+ .map(function (col) { return col.width; })
7804
+ .reduce(function (sum, current) { return sum + current; });
7805
+ };
7639
7806
  EasyGrid.prototype.renderHeader = function () {
7640
7807
  var _this = this;
7641
7808
  this.headerDiv = Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div')
@@ -7661,7 +7828,7 @@ var EasyGrid = /** @class */ (function () {
7661
7828
  .addChildElement(_this.renderAddColumnButton());
7662
7829
  }
7663
7830
  });
7664
- var containerWidth = this.columns.getItems().map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });
7831
+ var containerWidth = this.getContainerWidth();
7665
7832
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(this.headerCellContainerDiv)
7666
7833
  .setStyle('width', containerWidth + "px");
7667
7834
  };
@@ -7686,6 +7853,11 @@ var EasyGrid = /** @class */ (function () {
7686
7853
  .addClass(this.cssPrefix + "-header-cell-label")
7687
7854
  .text(column.label);
7688
7855
  }
7856
+ if (column.description) {
7857
+ Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])('div', colDiv)
7858
+ .addClass('question-mark')
7859
+ .title(column.description);
7860
+ }
7689
7861
  if (this.options.allowDragDrop) {
7690
7862
  _utils_drag_manager__WEBPACK_IMPORTED_MODULE_1__[/* eqDragManager */ "d"].registerDraggableItem({
7691
7863
  element: colDiv,
@@ -7755,8 +7927,7 @@ var EasyGrid = /** @class */ (function () {
7755
7927
  _this.updateTotalsState(groups_1, row, true);
7756
7928
  }
7757
7929
  }
7758
- var containerWidth = _this.columns.getItems()
7759
- .map(function (column) { return column.width; }).reduce(function (sum, current) { return sum + current; });
7930
+ var containerWidth = _this.getContainerWidth();
7760
7931
  Object(_utils_dom_elem_builder__WEBPACK_IMPORTED_MODULE_2__[/* domel */ "e"])(_this.bodyCellContainerDiv)
7761
7932
  .setStyle('width', containerWidth + "px");
7762
7933
  return rows.length;
@@ -7916,7 +8087,7 @@ var EasyGrid = /** @class */ (function () {
7916
8087
  for (var _i = 0, _a = group.columns; _i < _a.length; _i++) {
7917
8088
  var colId = _a[_i];
7918
8089
  var keyVal = row.getValue(colId);
7919
- if (caseInsensitive) {
8090
+ if (caseInsensitive && typeof (keyVal) === 'string') {
7920
8091
  keyVal = keyVal.toLowerCase();
7921
8092
  }
7922
8093
  result[colId] = keyVal;
@@ -8361,10 +8532,10 @@ var EasyGrid = /** @class */ (function () {
8361
8532
  }());
8362
8533
 
8363
8534
  //# sourceMappingURL=easy_grid.js.map
8364
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(28)))
8535
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29)))
8365
8536
 
8366
8537
  /***/ }),
8367
- /* 28 */
8538
+ /* 29 */
8368
8539
  /***/ (function(module, exports, __webpack_require__) {
8369
8540
 
8370
8541
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -9541,10 +9712,10 @@ return Promise$1;
9541
9712
 
9542
9713
  //# sourceMappingURL=es6-promise.map
9543
9714
 
9544
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24), __webpack_require__(25)))
9715
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(26)))
9545
9716
 
9546
9717
  /***/ }),
9547
- /* 29 */
9718
+ /* 30 */
9548
9719
  /***/ (function(module, exports, __webpack_require__) {
9549
9720
 
9550
9721
  /* WEBPACK VAR INJECTION */(function(process, global) {/*!
@@ -10721,10 +10892,10 @@ return Promise$1;
10721
10892
 
10722
10893
  //# sourceMappingURL=es6-promise.map
10723
10894
 
10724
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(38), __webpack_require__(39)))
10895
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(39), __webpack_require__(40)))
10725
10896
 
10726
10897
  /***/ }),
10727
- /* 30 */
10898
+ /* 31 */
10728
10899
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10729
10900
 
10730
10901
  "use strict";
@@ -10755,7 +10926,7 @@ var HttpActionResult = /** @class */ (function () {
10755
10926
  //# sourceMappingURL=http_action_result.js.map
10756
10927
 
10757
10928
  /***/ }),
10758
- /* 31 */
10929
+ /* 32 */
10759
10930
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10760
10931
 
10761
10932
  "use strict";
@@ -10809,48 +10980,48 @@ var DateTimeValidator = /** @class */ (function (_super) {
10809
10980
  //# sourceMappingURL=datetime_validator.js.map
10810
10981
 
10811
10982
  /***/ }),
10812
- /* 32 */
10983
+ /* 33 */
10813
10984
  /***/ (function(module, exports, __webpack_require__) {
10814
10985
 
10815
- __webpack_require__(33);
10816
- module.exports = __webpack_require__(40);
10986
+ __webpack_require__(34);
10987
+ module.exports = __webpack_require__(41);
10817
10988
 
10818
10989
 
10819
10990
  /***/ }),
10820
- /* 33 */
10991
+ /* 34 */
10821
10992
  /***/ (function(module, exports, __webpack_require__) {
10822
10993
 
10823
- __webpack_require__(34);
10824
10994
  __webpack_require__(35);
10825
10995
  __webpack_require__(36);
10826
- __webpack_require__(37);
10996
+ __webpack_require__(37);
10997
+ __webpack_require__(38);
10827
10998
 
10828
10999
  /***/ }),
10829
- /* 34 */
11000
+ /* 35 */
10830
11001
  /***/ (function(module, exports, __webpack_require__) {
10831
11002
 
10832
11003
  // extracted by mini-css-extract-plugin
10833
11004
 
10834
11005
  /***/ }),
10835
- /* 35 */
11006
+ /* 36 */
10836
11007
  /***/ (function(module, exports, __webpack_require__) {
10837
11008
 
10838
11009
  // extracted by mini-css-extract-plugin
10839
11010
 
10840
11011
  /***/ }),
10841
- /* 36 */
11012
+ /* 37 */
10842
11013
  /***/ (function(module, exports, __webpack_require__) {
10843
11014
 
10844
11015
  // extracted by mini-css-extract-plugin
10845
11016
 
10846
11017
  /***/ }),
10847
- /* 37 */
11018
+ /* 38 */
10848
11019
  /***/ (function(module, exports, __webpack_require__) {
10849
11020
 
10850
11021
  // extracted by mini-css-extract-plugin
10851
11022
 
10852
11023
  /***/ }),
10853
- /* 38 */
11024
+ /* 39 */
10854
11025
  /***/ (function(module, exports) {
10855
11026
 
10856
11027
  // shim for using process in browser
@@ -11040,7 +11211,7 @@ process.umask = function() { return 0; };
11040
11211
 
11041
11212
 
11042
11213
  /***/ }),
11043
- /* 39 */
11214
+ /* 40 */
11044
11215
  /***/ (function(module, exports) {
11045
11216
 
11046
11217
  var g;
@@ -11066,7 +11237,7 @@ module.exports = g;
11066
11237
 
11067
11238
 
11068
11239
  /***/ }),
11069
- /* 40 */
11240
+ /* 41 */
11070
11241
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
11071
11242
 
11072
11243
  "use strict";
@@ -11095,17 +11266,17 @@ __webpack_require__.d(public_api_namespaceObject, "EasyDataViewDispatcher", func
11095
11266
  __webpack_require__.d(public_api_namespaceObject, "RootDataView", function() { return root_data_view_RootDataView; });
11096
11267
  __webpack_require__.d(public_api_namespaceObject, "EntityDataView", function() { return entity_data_view_EntityDataView; });
11097
11268
 
11098
- // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 9 modules
11269
+ // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/core/dist/lib/public_api.js + 10 modules
11099
11270
  var public_api = __webpack_require__(0);
11100
11271
 
11101
11272
  // EXTERNAL MODULE: d:/a/easydata/easydata/easydata.js/packs/ui/dist/lib/public_api.js + 7 modules
11102
11273
  var lib_public_api = __webpack_require__(3);
11103
11274
 
11104
11275
  // EXTERNAL MODULE: ./dist/lib/filter/text_data_filter.js
11105
- var text_data_filter = __webpack_require__(20);
11276
+ var text_data_filter = __webpack_require__(21);
11106
11277
 
11107
11278
  // EXTERNAL MODULE: ./dist/lib/form/entity_edit_form.js
11108
- var entity_edit_form = __webpack_require__(21);
11279
+ var entity_edit_form = __webpack_require__(22);
11109
11280
 
11110
11281
  // EXTERNAL MODULE: ./dist/lib/utils/utils.js
11111
11282
  var utils = __webpack_require__(7);
@@ -11649,9 +11820,17 @@ var entity_form_builder_EntityEditFormBuilder = /** @class */ (function () {
11649
11820
  .toDOM();
11650
11821
  }
11651
11822
  Object(lib_public_api["domel"])(parent)
11652
- .addChild('label', function (b) { return b
11653
- .attr('for', attr.id)
11654
- .addHtml(attr.caption + " " + (required ? '<sup style="color: red">*</sup>' : '') + ": "); });
11823
+ .addChild('label', function (b) {
11824
+ b.attr('for', attr.id);
11825
+ b.addHtml(attr.caption + " " + (required ? '<sup style="color: red">*</sup>' : '') + ": ");
11826
+ if (attr.description) {
11827
+ b.addChild('div', function (b) { return b
11828
+ .attr('title', attr.description)
11829
+ .addClass('question-mark')
11830
+ .setStyle('vertical-align', 'middle')
11831
+ .setStyle('display', 'inline-block'); });
11832
+ }
11833
+ });
11655
11834
  if (attr.kind === public_api["EntityAttrKind"].Lookup) {
11656
11835
  this.setupLookupField(parent, attr, readOnly, value);
11657
11836
  return;