@churchillliving/se-ui-toolkit 6.53.422 → 6.53.424

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.
@@ -2399,7 +2399,6 @@
2399
2399
  item.validations[i].type == exports.EGridValidator.MAXOPTIONS) {
2400
2400
  var options = 1;
2401
2401
  var value = row[item.field];
2402
- console.log(row[item.field], 'item.value');
2403
2402
  for (var x = 0; x < value.length - 1; x++) {
2404
2403
  if (value[x] == ';') {
2405
2404
  options++;
@@ -2523,11 +2522,11 @@
2523
2522
  * @param param
2524
2523
  * Receives lazy event and returns sort array
2525
2524
  */
2526
- GridService.prototype.getGridSorts = function (_g, columns) {
2525
+ GridService.prototype.getGridSorts = function (_h, columns) {
2527
2526
  var _this = this;
2528
- var multiSortMeta = _g.multiSortMeta;
2529
- return (multiSortMeta || []).map(function (_g, i) {
2530
- var field = _g.field, order = _g.order;
2527
+ var multiSortMeta = _h.multiSortMeta;
2528
+ return (multiSortMeta || []).map(function (_h, i) {
2529
+ var field = _h.field, order = _h.order;
2531
2530
  return ({
2532
2531
  field: field,
2533
2532
  direction: order > 0 ? exports.EGridSortDirection.ASC : exports.EGridSortDirection.DESC,
@@ -2544,11 +2543,11 @@
2544
2543
  GridService.prototype.mapFilters = function (event, columns) {
2545
2544
  var _this = this;
2546
2545
  var filters = [];
2547
- Object.entries(event.filters).forEach(function (_g) {
2548
- var _h = __read(_g, 2), field = _h[0], value = _h[1];
2546
+ Object.entries(event.filters).forEach(function (_h) {
2547
+ var _j = __read(_h, 2), field = _j[0], value = _j[1];
2549
2548
  if (Array.isArray(value)) {
2550
- value.forEach(function (_g) {
2551
- var matchMode = _g.matchMode, operator = _g.operator, filter = _g.value;
2549
+ value.forEach(function (_h) {
2550
+ var matchMode = _h.matchMode, operator = _h.operator, filter = _h.value;
2552
2551
  if (filter !== null) {
2553
2552
  filters.push({
2554
2553
  field: field,
@@ -2936,9 +2935,8 @@
2936
2935
  this.requestService
2937
2936
  .get('/Data/Fetch', { uniqueKey: uniqueKey, filters: filters })
2938
2937
  .subscribe(function (response) {
2939
- var _g;
2938
+ var _h;
2940
2939
  var _a;
2941
- // console.log('get response', response, 'search was', search)
2942
2940
  if (search) {
2943
2941
  var existInRecord = (_a = response.records) === null || _a === void 0 ? void 0 : _a.some(function (record) {
2944
2942
  var _a, _b;
@@ -2947,7 +2945,7 @@
2947
2945
  (search === null || search === void 0 ? void 0 : search.toLowerCase());
2948
2946
  });
2949
2947
  if (!existInRecord) {
2950
- response.records.unshift((_g = {}, _g[column.displayField] = search, _g));
2948
+ response.records.unshift((_h = {}, _h[column.displayField] = search, _h));
2951
2949
  }
2952
2950
  }
2953
2951
  column.data = _this.setDataFields(response.records);
@@ -2957,11 +2955,10 @@
2957
2955
  var _a, _b;
2958
2956
  return __awaiter(this, void 0, void 0, function () {
2959
2957
  var newValue, i;
2960
- return __generator(this, function (_g) {
2958
+ return __generator(this, function (_h) {
2961
2959
  newValue = {};
2962
2960
  for (i = 0; i < uniqueKey.values.length; i++) {
2963
2961
  if (uniqueKey.values[i].name.toLowerCase() == ((_a = column.field) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || uniqueKey.values[i].name.toLowerCase() == ((_b = column.displayField) === null || _b === void 0 ? void 0 : _b.toLowerCase())) {
2964
- // console.log('matching Name', column.field, column.displayField, uniqueKey.values[i].name.toLowerCase())
2965
2962
  newValue[uniqueKey.values[i].name] = value;
2966
2963
  }
2967
2964
  else {
@@ -2971,8 +2968,8 @@
2971
2968
  this.requestService
2972
2969
  .get('/Data/Save', { uniqueKey: uniqueKey.name, values: newValue })
2973
2970
  .subscribe(function (response) {
2974
- (function (_g) {
2975
- var error = _g.error;
2971
+ (function (_h) {
2972
+ var error = _h.error;
2976
2973
  return error;
2977
2974
  });
2978
2975
  return 'success';
@@ -3183,8 +3180,8 @@
3183
3180
  : res[field.toLowerCase()];
3184
3181
  }
3185
3182
  }
3186
- }, function (_g) {
3187
- var error = _g.error;
3183
+ }, function (_h) {
3184
+ var error = _h.error;
3188
3185
  _this.alertService.apiError(error);
3189
3186
  });
3190
3187
  }
@@ -3400,8 +3397,8 @@
3400
3397
  var _a, _b, _c;
3401
3398
  if (((_a = Object.keys(x !== null && x !== void 0 ? x : {})) === null || _a === void 0 ? void 0 : _a.length) > 0) {
3402
3399
  var result = (_b = Object.keys(x)) === null || _b === void 0 ? void 0 : _b.reduce(function (prev, current) {
3403
- var _g;
3404
- return (Object.assign(Object.assign({}, prev), (_g = {}, _g[current.toLowerCase()] = x[current], _g)));
3400
+ var _h;
3401
+ return (Object.assign(Object.assign({}, prev), (_h = {}, _h[current.toLowerCase()] = x[current], _h)));
3405
3402
  }, {});
3406
3403
  if (dataKey &&
3407
3404
  dataKey.length > 0 &&
@@ -3512,21 +3509,32 @@
3512
3509
  GridService.prototype.setGridRowPropValue = function (row, props, columns) {
3513
3510
  if (columns === void 0) { columns = []; }
3514
3511
  props === null || props === void 0 ? void 0 : props.forEach(function (prop) {
3515
- var _g, _h, _j;
3516
- var _a, _b, _c, _d;
3512
+ var _h, _j, _k, _l, _m;
3513
+ var _a, _b, _c, _d, _e, _f, _g;
3517
3514
  if (prop.propName && (prop.propValue || prop.propValue === false || prop.propValue === '')) {
3518
3515
  if (prop.field) {
3519
3516
  var fieldName = (_a = Object.keys(row)) === null || _a === void 0 ? void 0 : _a.find(function (key) { var _a; return (key === null || key === void 0 ? void 0 : key.toLowerCase()) === ((_a = prop === null || prop === void 0 ? void 0 : prop.field) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
3517
+ var fieldNameObj = fieldName + '_obj';
3520
3518
  if (fieldName) {
3521
- if ((_b = row[fieldName]) === null || _b === void 0 ? void 0 : _b.action) {
3522
- row[fieldName].action = Object.assign((_c = row[fieldName]) === null || _c === void 0 ? void 0 : _c.action, (_g = {}, _g[prop.propName] = prop.propValue, _g));
3519
+ if (((_b = Object.keys(row)) === null || _b === void 0 ? void 0 : _b.includes(fieldNameObj)) && !((_c = row[fieldNameObj]) === null || _c === void 0 ? void 0 : _c.action)) {
3520
+ row[fieldNameObj] = Object.assign(Object.assign({}, row[fieldNameObj]), { text: row[fieldName], action: (_h = {}, _h[prop.propName] = prop.propValue, _h) });
3521
+ }
3522
+ else if ((_d = row[fieldNameObj]) === null || _d === void 0 ? void 0 : _d.action) {
3523
+ row[fieldNameObj].action = Object.assign((_e = row[fieldNameObj]) === null || _e === void 0 ? void 0 : _e.action, (_j = {}, _j[prop.propName] = prop.propValue, _j));
3523
3524
  }
3524
3525
  else {
3525
- row[fieldName] = { text: row[fieldName], action: (_h = {}, _h[prop.propName] = prop.propValue, _h.field = fieldName, _h) };
3526
+ row[fieldNameObj] = { text: row[fieldName], action: (_k = {}, _k[prop.propName] = prop.propValue, _k) };
3526
3527
  }
3527
3528
  }
3528
3529
  else if (columns === null || columns === void 0 ? void 0 : columns.some(function (column) { var _a, _b; return ((_a = column.field) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_b = prop === null || prop === void 0 ? void 0 : prop.field) === null || _b === void 0 ? void 0 : _b.toLowerCase()); })) {
3529
- row[(_d = prop.field) === null || _d === void 0 ? void 0 : _d.toLowerCase()] = { text: row[prop.field], extraField: true, action: (_j = {}, _j[prop.propName] = prop.propValue, _j.field = prop.field, _j) };
3530
+ var propField = (_f = prop.field) === null || _f === void 0 ? void 0 : _f.toLowerCase();
3531
+ var propFieldObj = propField + '_obj';
3532
+ if ((_g = Object.keys(row)) === null || _g === void 0 ? void 0 : _g.includes(fieldNameObj)) {
3533
+ row[propFieldObj] = Object.assign(Object.assign({}, row[propFieldObj]), { text: row[prop.field], extraField: true, action: (_l = {}, _l[prop.propName] = prop.propValue, _l) });
3534
+ }
3535
+ else {
3536
+ row[propFieldObj] = { text: row[prop.field], extraField: true, action: (_m = {}, _m[prop.propName] = prop.propValue, _m) };
3537
+ }
3530
3538
  }
3531
3539
  ;
3532
3540
  }
@@ -4203,8 +4211,8 @@
4203
4211
  else if (!column.minutesInterval) {
4204
4212
  _this.rowsData.forEach(function (row) {
4205
4213
  var _a;
4206
- if (row[column.field] && row[column.field].action) {
4207
- row[column.field].text = new Date((_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.text);
4214
+ if (row[column.field + '_obj'] && row[column.field + '_obj'].action) {
4215
+ row[column.field] = new Date((_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.text);
4208
4216
  }
4209
4217
  else if (row[column.field]) {
4210
4218
  row[column.field] = new Date(row[column.field]);
@@ -4235,7 +4243,6 @@
4235
4243
  searchFilters = JSON.parse(localStorage.getItem('SetFilters-' + ((_d = _this.componentTableRef) === null || _d === void 0 ? void 0 : _d.id) + currentUrl()));
4236
4244
  }
4237
4245
  else if ((_e = _this.componentTableRef) === null || _e === void 0 ? void 0 : _e.id) {
4238
- //console.log("this.gridService.softCachingFilters",this.gridService.softCachingFilters);
4239
4246
  searchFilters = _this.gridService.softCachingFilters[((_f = _this.componentTableRef) === null || _f === void 0 ? void 0 : _f.id) + currentUrl()];
4240
4247
  }
4241
4248
  if (!_this.hideFilter &&
@@ -4401,14 +4408,14 @@
4401
4408
  GridComponent.prototype.setNumericFormat = function (column, row) {
4402
4409
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
4403
4410
  row = objConvertToLower(row);
4404
- var value = ((_b = (_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.displayText)
4405
- ? (_d = (_c = row[column.field]) === null || _c === void 0 ? void 0 : _c.action) === null || _d === void 0 ? void 0 : _d.displayText
4406
- : ((_g = (_f = (_e = row[column.field]) === null || _e === void 0 ? void 0 : _e.action) === null || _f === void 0 ? void 0 : _f.displayField) === null || _g === void 0 ? void 0 : _g.toLowerCase())
4407
- ? row[(_k = (_j = (_h = row[column.field]) === null || _h === void 0 ? void 0 : _h.action) === null || _j === void 0 ? void 0 : _j.displayField) === null || _k === void 0 ? void 0 : _k.toLowerCase()]
4411
+ var value = ((_b = (_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.displayText)
4412
+ ? (_d = (_c = row[column.field + '_obj']) === null || _c === void 0 ? void 0 : _c.action) === null || _d === void 0 ? void 0 : _d.displayText
4413
+ : ((_g = (_f = (_e = row[column.field + '_obj']) === null || _e === void 0 ? void 0 : _e.action) === null || _f === void 0 ? void 0 : _f.displayField) === null || _g === void 0 ? void 0 : _g.toLowerCase())
4414
+ ? row[(_k = (_j = (_h = row[column.field + '_obj']) === null || _h === void 0 ? void 0 : _h.action) === null || _j === void 0 ? void 0 : _j.displayField) === null || _k === void 0 ? void 0 : _k.toLowerCase()]
4408
4415
  : row[(_l = column.displayField) === null || _l === void 0 ? void 0 : _l.toLowerCase()]
4409
4416
  ? row[column.displayField.toLowerCase()]
4410
- : (((_o = row[(_m = column.field) === null || _m === void 0 ? void 0 : _m.toLowerCase()]) === null || _o === void 0 ? void 0 : _o.text) || ((_q = row[(_p = column.field) === null || _p === void 0 ? void 0 : _p.toLowerCase()]) === null || _q === void 0 ? void 0 : _q.text) === 0 || ((_s = row[(_r = column.field) === null || _r === void 0 ? void 0 : _r.toLowerCase()]) === null || _s === void 0 ? void 0 : _s.text) === null)
4411
- ? (_t = row[column.field.toLowerCase()]) === null || _t === void 0 ? void 0 : _t.text : row[column.field.toLowerCase()];
4417
+ : (((_o = row[((_m = column.field) === null || _m === void 0 ? void 0 : _m.toLowerCase()) + '_obj']) === null || _o === void 0 ? void 0 : _o.text) || ((_q = row[((_p = column.field) === null || _p === void 0 ? void 0 : _p.toLowerCase()) + '_obj']) === null || _q === void 0 ? void 0 : _q.text) === 0 || ((_s = row[((_r = column.field) === null || _r === void 0 ? void 0 : _r.toLowerCase()) + '_obj']) === null || _s === void 0 ? void 0 : _s.text) === null)
4418
+ ? (_t = row[column.field.toLowerCase() + '_obj']) === null || _t === void 0 ? void 0 : _t.text : row[column.field.toLowerCase()];
4412
4419
  if (this.typeOf(value) === 'number' && value === 0) {
4413
4420
  value = value.toString();
4414
4421
  }
@@ -4607,7 +4614,7 @@
4607
4614
  var _a;
4608
4615
  var isDisabled = column.disabled
4609
4616
  ? true
4610
- : ((_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) && row[column.field].action.disabled
4617
+ : ((_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) && row[column.field + '_obj'].action.disabled
4611
4618
  ? true
4612
4619
  : false;
4613
4620
  this.onClickEvent(column, row);
@@ -4656,6 +4663,26 @@
4656
4663
  }
4657
4664
  return selectedValue;
4658
4665
  };
4666
+ GridComponent.prototype.setTextBoxReadOnlyValue = function (row, column) {
4667
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
4668
+ var value;
4669
+ if (column.displayText) {
4670
+ value = column.displayText;
4671
+ }
4672
+ else if ((_b = (_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.displayText) {
4673
+ value = (_d = (_c = row[column.field + '_obj']) === null || _c === void 0 ? void 0 : _c.action) === null || _d === void 0 ? void 0 : _d.displayText;
4674
+ }
4675
+ else if ((_f = (_e = row[column.field + '_obj']) === null || _e === void 0 ? void 0 : _e.action) === null || _f === void 0 ? void 0 : _f.displayField) {
4676
+ value = row[(_j = (_h = (_g = row[column.field + '_obj']) === null || _g === void 0 ? void 0 : _g.action) === null || _h === void 0 ? void 0 : _h.displayField) === null || _j === void 0 ? void 0 : _j.toLowerCase()];
4677
+ }
4678
+ else if (column.displayField) {
4679
+ value = row[(_k = column.displayField) === null || _k === void 0 ? void 0 : _k.toLowerCase()];
4680
+ }
4681
+ else {
4682
+ value = row[column.field];
4683
+ }
4684
+ return value;
4685
+ };
4659
4686
  /**
4660
4687
  * return conditional base value and title
4661
4688
  */
@@ -4665,12 +4692,12 @@
4665
4692
  var value;
4666
4693
  if (column.type == exports.EGridColumnType.DATE) {
4667
4694
  var newValue = void 0;
4668
- if (typeof (row[column.field]) === "object" && ((_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action)) {
4669
- newValue = ((_c = (_b = row[column.field]) === null || _b === void 0 ? void 0 : _b.action) === null || _c === void 0 ? void 0 : _c.displayText)
4670
- ? (_e = (_d = row[column.field]) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.displayText
4671
- : ((_h = (_g = (_f = row[column.field]) === null || _f === void 0 ? void 0 : _f.action) === null || _g === void 0 ? void 0 : _g.displayField) === null || _h === void 0 ? void 0 : _h.toLowerCase())
4672
- ? row[(_l = (_k = (_j = row[column.field]) === null || _j === void 0 ? void 0 : _j.action) === null || _k === void 0 ? void 0 : _k.displayField) === null || _l === void 0 ? void 0 : _l.toLowerCase()]
4673
- : (_o = row[(_m = column.field) === null || _m === void 0 ? void 0 : _m.toLowerCase()]) === null || _o === void 0 ? void 0 : _o.text;
4695
+ if (typeof (row[column.field + '_obj']) === "object" && ((_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action)) {
4696
+ newValue = ((_c = (_b = row[column.field + '_obj']) === null || _b === void 0 ? void 0 : _b.action) === null || _c === void 0 ? void 0 : _c.displayText)
4697
+ ? (_e = (_d = row[column.field + '_obj']) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.displayText
4698
+ : ((_h = (_g = (_f = row[column.field + '_obj']) === null || _f === void 0 ? void 0 : _f.action) === null || _g === void 0 ? void 0 : _g.displayField) === null || _h === void 0 ? void 0 : _h.toLowerCase())
4699
+ ? row[(_l = (_k = (_j = row[column.field + '_obj']) === null || _j === void 0 ? void 0 : _j.action) === null || _k === void 0 ? void 0 : _k.displayField) === null || _l === void 0 ? void 0 : _l.toLowerCase()]
4700
+ : (_o = row[((_m = column.field) === null || _m === void 0 ? void 0 : _m.toLowerCase()) + '_obj']) === null || _o === void 0 ? void 0 : _o.text;
4674
4701
  }
4675
4702
  else {
4676
4703
  newValue = row[column.field];
@@ -4686,10 +4713,10 @@
4686
4713
  }
4687
4714
  }
4688
4715
  else {
4689
- value = ((_q = (_p = row[column.field]) === null || _p === void 0 ? void 0 : _p.action) === null || _q === void 0 ? void 0 : _q.displayText)
4690
- ? (_s = (_r = row[column.field]) === null || _r === void 0 ? void 0 : _r.action) === null || _s === void 0 ? void 0 : _s.displayText
4691
- : ((_v = (_u = (_t = row[column.field]) === null || _t === void 0 ? void 0 : _t.action) === null || _u === void 0 ? void 0 : _u.displayField) === null || _v === void 0 ? void 0 : _v.toLowerCase())
4692
- ? row[(_y = (_x = (_w = row[column.field]) === null || _w === void 0 ? void 0 : _w.action) === null || _x === void 0 ? void 0 : _x.displayField) === null || _y === void 0 ? void 0 : _y.toLowerCase()]
4716
+ value = ((_q = (_p = row[column.field + '_obj']) === null || _p === void 0 ? void 0 : _p.action) === null || _q === void 0 ? void 0 : _q.displayText)
4717
+ ? (_s = (_r = row[column.field + '_obj']) === null || _r === void 0 ? void 0 : _r.action) === null || _s === void 0 ? void 0 : _s.displayText
4718
+ : ((_v = (_u = (_t = row[column.field + '_obj']) === null || _t === void 0 ? void 0 : _t.action) === null || _u === void 0 ? void 0 : _u.displayField) === null || _v === void 0 ? void 0 : _v.toLowerCase())
4719
+ ? row[(_y = (_x = (_w = row[column.field + '_obj']) === null || _w === void 0 ? void 0 : _w.action) === null || _x === void 0 ? void 0 : _x.displayField) === null || _y === void 0 ? void 0 : _y.toLowerCase()]
4693
4720
  : row[(_z = column.displayField) === null || _z === void 0 ? void 0 : _z.toLowerCase()]
4694
4721
  ? row[(_0 = column.displayField) === null || _0 === void 0 ? void 0 : _0.toLowerCase()]
4695
4722
  : row[column.field + '_obj'] &&
@@ -4916,8 +4943,8 @@
4916
4943
  col.type === exports.EGridColumnType.DATE) {
4917
4944
  value = (value === null || value === void 0 ? void 0 : value.action) ? value.text : value;
4918
4945
  if (row[col.field] !== null) {
4919
- if (((_h = row[key]) === null || _h === void 0 ? void 0 : _h.action) && ((_k = Object.keys((_j = row[key]) === null || _j === void 0 ? void 0 : _j.action)) === null || _k === void 0 ? void 0 : _k.length) > 0) {
4920
- row[key].text = new Date(value);
4946
+ if (((_h = row[key + '_obj']) === null || _h === void 0 ? void 0 : _h.action) && ((_k = Object.keys((_j = row[key + '_obj']) === null || _j === void 0 ? void 0 : _j.action)) === null || _k === void 0 ? void 0 : _k.length) > 0) {
4947
+ row[key + '_obj'].text = new Date(value);
4921
4948
  }
4922
4949
  else {
4923
4950
  row[key] = new Date(value);
@@ -5012,16 +5039,12 @@
5012
5039
  var automCompleteTempData = [];
5013
5040
  var lookupInfo = {};
5014
5041
  this.selectedColumns.forEach(function (column) {
5015
- var _45, _46;
5016
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
5042
+ var _45;
5043
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
5017
5044
  delete selectedRow[column.field + '-data'];
5018
5045
  delete selectedRow[column.field + '_secondType'];
5019
- if (column.type === exports.EGridColumnType.LOOKUP_INPUT &&
5020
- column.displayField &&
5021
- _this.lookupObject &&
5022
- !_this.editAllRows) {
5023
- lookupInfo = (_45 = {}, _45[column.field] = Object.assign({}, _this.lookupObject), _45);
5024
- selectedRow[column.field] = _this.lookupObject.value;
5046
+ if (column.type === exports.EGridColumnType.LOOKUP_INPUT && ((_a = selectedRow[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.text)) {
5047
+ lookupInfo[column.field] = selectedRow[column.field + '_obj'].text;
5025
5048
  }
5026
5049
  if (column.formatter) {
5027
5050
  var value = selectedRow[column.field];
@@ -5031,7 +5054,7 @@
5031
5054
  else if (column.formatter === 'numeric') {
5032
5055
  value = value === true ? '1' : '0';
5033
5056
  }
5034
- selectedRow = Object.assign(Object.assign({}, selectedRow), (_46 = {}, _46[column.field] = value, _46));
5057
+ selectedRow = Object.assign(Object.assign({}, selectedRow), (_45 = {}, _45[column.field] = value, _45));
5035
5058
  }
5036
5059
  //convert date into time format
5037
5060
  if (column.type === exports.EGridColumnType.DATE) {
@@ -5047,11 +5070,11 @@
5047
5070
  }
5048
5071
  // if allowCalculate=true, divide the percent by 100
5049
5072
  if (column.type === exports.EGridColumnType.NUMERIC) {
5050
- var digitsInfo = (_b = (_a = column === null || column === void 0 ? void 0 : column.format) === null || _a === void 0 ? void 0 : _a.formatParams) === null || _b === void 0 ? void 0 : _b.digitsInfo;
5051
- if (((_c = column.format) === null || _c === void 0 ? void 0 : _c.type) === 'percent') {
5052
- if ((_e = (_d = column.format) === null || _d === void 0 ? void 0 : _d.formatParams) === null || _e === void 0 ? void 0 : _e.allowCalculate) {
5073
+ var digitsInfo = (_c = (_b = column === null || column === void 0 ? void 0 : column.format) === null || _b === void 0 ? void 0 : _b.formatParams) === null || _c === void 0 ? void 0 : _c.digitsInfo;
5074
+ if (((_d = column.format) === null || _d === void 0 ? void 0 : _d.type) === 'percent') {
5075
+ if ((_f = (_e = column.format) === null || _e === void 0 ? void 0 : _e.formatParams) === null || _f === void 0 ? void 0 : _f.allowCalculate) {
5053
5076
  if (digitsInfo) {
5054
- selectedRow[column.field] = parseFloat((_f = (selectedRow[column.field] / 100)) === null || _f === void 0 ? void 0 : _f.toString()).toFixed(digitsInfo);
5077
+ selectedRow[column.field] = parseFloat((_g = (selectedRow[column.field] / 100)) === null || _g === void 0 ? void 0 : _g.toString()).toFixed(digitsInfo);
5055
5078
  }
5056
5079
  else {
5057
5080
  selectedRow[column.field] = selectedRow[column.field] / 100;
@@ -5061,27 +5084,24 @@
5061
5084
  }
5062
5085
  //convert multiselect array into string
5063
5086
  if (column.type === exports.EGridColumnType.MULTISELECT && selectedRow[column.field]) {
5064
- selectedRow[column.field] = (_g = selectedRow[column.field]) === null || _g === void 0 ? void 0 : _g.toString();
5087
+ selectedRow[column.field] = (_h = selectedRow[column.field]) === null || _h === void 0 ? void 0 : _h.toString();
5065
5088
  }
5066
5089
  // Saving AutoComplete Data
5067
5090
  if (column.type === exports.EGridColumnType.AUTOCOMPLETE &&
5068
5091
  column.displayField &&
5069
- ((_h = selectedRow[column.field]) === null || _h === void 0 ? void 0 : _h.length) > 0) {
5092
+ ((_j = selectedRow[column.field]) === null || _j === void 0 ? void 0 : _j.length) > 0) {
5070
5093
  automCompleteTempData = __spreadArray([], __read(selectedRow[column.field]));
5071
- selectedRow[column.field] = (_l = (_k = (_j = selectedRow[column.field]) === null || _j === void 0 ? void 0 : _j.map(function (row) {
5094
+ selectedRow[column.field] = (_m = (_l = (_k = selectedRow[column.field]) === null || _k === void 0 ? void 0 : _k.map(function (row) {
5072
5095
  var _a, _b, _c;
5073
5096
  return (column === null || column === void 0 ? void 0 : column.optionValue) && row[(_a = column.optionValue) === null || _a === void 0 ? void 0 : _a.toLowerCase()] ?
5074
5097
  row[(_b = column.optionValue) === null || _b === void 0 ? void 0 : _b.toLowerCase()] : row[(_c = column.field) === null || _c === void 0 ? void 0 : _c.toLowerCase()];
5075
- })) === null || _k === void 0 ? void 0 : _k.toString()) === null || _l === void 0 ? void 0 : _l.replaceAll(',', ';');
5098
+ })) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.replaceAll(',', ';');
5076
5099
  }
5077
5100
  });
5078
5101
  var row = Object.assign({}, selectedRow);
5079
5102
  var keys = Object.keys(row);
5080
5103
  keys.forEach(function (key) {
5081
5104
  var _45;
5082
- if (_this.lookupObject && _this.lookupObject.field) {
5083
- row[_this.lookupObject.field] = _this.lookupObject.value;
5084
- }
5085
5105
  if (key.includes('_obj')) {
5086
5106
  if (_this.checkAction === false) {
5087
5107
  row = Object.assign(Object.assign({}, row), (_45 = {}, _45[key.split('_')[0]] = row[key].displayText, _45));
@@ -5102,29 +5122,11 @@
5102
5122
  row = this.gridService.setRowValue(row);
5103
5123
  var obj = {};
5104
5124
  this.columns.forEach(function (column) {
5105
- var _45, _46, _47;
5106
- var _a, _b, _c, _d, _e, _f;
5107
- if (column.type === exports.EGridColumnType.LOOKUP_INPUT &&
5108
- column.field) {
5109
- if (row[column.field] && (typeof row[column.field] === 'object')) {
5110
- lookupInfo = (_45 = {}, _45[column.field] = Object.assign({}, row[column.field]), _45);
5111
- var newRow = Object.assign({}, row);
5112
- newRow[column.field] = (_a = newRow[column.field]) === null || _a === void 0 ? void 0 : _a.value;
5113
- row = Object.assign({}, newRow);
5114
- }
5115
- else {
5116
- if (lookupInfo && ((_b = Object.keys(lookupInfo)) === null || _b === void 0 ? void 0 : _b.length) > 0) {
5117
- lookupInfo = Object.assign(lookupInfo, (_46 = {}, _46[column.field] = row[column.field], _46));
5118
- }
5119
- else {
5120
- lookupInfo = (_47 = {}, _47[column.field] = row[column.field], _47);
5121
- }
5122
- }
5123
- }
5125
+ var _a, _b, _c, _d;
5124
5126
  if ((column.allowSave === true || column.allowSave === undefined || _this.saveAllData)) {
5125
5127
  obj[column.field] = row[column.field];
5126
5128
  if (column.type === exports.EGridColumnType.DIALOG &&
5127
- ((_c = column.filter) === null || _c === void 0 ? void 0 : _c.type) === 'calendar') {
5129
+ ((_a = column.filter) === null || _a === void 0 ? void 0 : _a.type) === 'calendar') {
5128
5130
  obj[column.field] = _this.datePipe.transform(obj[column.field], 'yyyy-MM-ddT00:00:00.000Z');
5129
5131
  }
5130
5132
  //Set Decimal Fraction Value
@@ -5134,8 +5136,8 @@
5134
5136
  !row[column.field].toString().includes('.')) {
5135
5137
  var digitsInfo = '.00';
5136
5138
  var zero = '0';
5137
- var formatParams = (_d = column.format) === null || _d === void 0 ? void 0 : _d.formatParams;
5138
- var fracDigits = (_f = (_e = column === null || column === void 0 ? void 0 : column.format) === null || _e === void 0 ? void 0 : _e.formatParams) === null || _f === void 0 ? void 0 : _f.digitsInfo;
5139
+ var formatParams = (_b = column.format) === null || _b === void 0 ? void 0 : _b.formatParams;
5140
+ var fracDigits = (_d = (_c = column === null || column === void 0 ? void 0 : column.format) === null || _c === void 0 ? void 0 : _c.formatParams) === null || _d === void 0 ? void 0 : _d.digitsInfo;
5139
5141
  if (fracDigits) {
5140
5142
  for (var i = 1; i < fracDigits; i++) {
5141
5143
  zero = zero + '0';
@@ -5221,7 +5223,9 @@
5221
5223
  else if (column.type === exports.EGridColumnType.LOOKUP_INPUT &&
5222
5224
  selectedRow[column.field]) {
5223
5225
  // set LOOKUP_INPUT data after save row
5224
- selectedRow[column.field] = lookupInfo[column.field];
5226
+ if (lookupInfo[column.field]) {
5227
+ selectedRow[column.field] = lookupInfo[column.field];
5228
+ }
5225
5229
  }
5226
5230
  else if (column.type === exports.EGridColumnType.DROPDOWN &&
5227
5231
  column.optionLabel &&
@@ -5366,9 +5370,9 @@
5366
5370
  GridComponent.prototype.allowDisabled = function (column, row) {
5367
5371
  var _a, _b, _c, _d, _e;
5368
5372
  var value = false;
5369
- if (typeof (row[column.field]) === 'object' && ((_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action)) {
5370
- if (((_b = row[column.field]) === null || _b === void 0 ? void 0 : _b.action) &&
5371
- ((_c = Object.keys(row[column.field].action)) === null || _c === void 0 ? void 0 : _c.includes('disabled')) && ((_e = (_d = row[column.field]) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.disabled) === true) {
5373
+ if (typeof (row[column.field + '_obj']) === 'object' && ((_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action)) {
5374
+ if (((_b = row[column.field + '_obj']) === null || _b === void 0 ? void 0 : _b.action) &&
5375
+ ((_c = Object.keys(row[column.field + '_obj'].action)) === null || _c === void 0 ? void 0 : _c.includes('disabled')) && ((_e = (_d = row[column.field + '_obj']) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.disabled) === true) {
5372
5376
  value = true;
5373
5377
  }
5374
5378
  }
@@ -5606,15 +5610,12 @@
5606
5610
  selection = row[column.field];
5607
5611
  }
5608
5612
  if (column.field && typeof row[column.field] === 'object') {
5609
- // console.log('bef newrow')
5610
5613
  var newRow = Object.assign({}, row);
5611
5614
  newRow[column.field] = (_a = newRow[column.field]) === null || _a === void 0 ? void 0 : _a.value;
5612
5615
  row = Object.assign({}, newRow);
5613
5616
  }
5614
5617
  if (column.type === exports.EGridColumnType.LOOKUP_INPUT && data) {
5615
- // console.log('in lookup input')
5616
5618
  var obj = autoSetLookupData(data, row);
5617
- // console.log('obj', row[column.field], 'data', data)
5618
5619
  row[column.field + '-data'] = obj;
5619
5620
  }
5620
5621
  return {
@@ -5628,7 +5629,6 @@
5628
5629
  */
5629
5630
  GridComponent.prototype.openLookupHyperlink = function (column, row) {
5630
5631
  var _a;
5631
- console.log('openLookupHyperlink: ', row);
5632
5632
  if (column.editLink === true && column.component) {
5633
5633
  var obj = this.setLookupDialogConfig(row, column, (_a = column.data) === null || _a === void 0 ? void 0 : _a.data);
5634
5634
  obj['component'] = column.component;
@@ -5648,30 +5648,15 @@
5648
5648
  if (row === void 0) { row = {}; }
5649
5649
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44;
5650
5650
  var columnData = ((_b = (_a = column.column) === null || _a === void 0 ? void 0 : _a.lookupControl) === null || _b === void 0 ? void 0 : _b.data) ? column.column.lookupControl.data : column.column.data;
5651
- // if(actionHeader){
5652
- // //columnData.header = actionHeader;
5653
- // }
5654
- if ((_e = (_d = row[(_c = column.column.field) === null || _c === void 0 ? void 0 : _c.toLowerCase()]) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.lookupControl) {
5655
- ((_k = (_j = (_h = (_g = row[(_f = column.column.field) === null || _f === void 0 ? void 0 : _f.toLowerCase()]) === null || _g === void 0 ? void 0 : _g.action) === null || _h === void 0 ? void 0 : _h.lookupControl) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.header) ? columnData.header = (_q = (_p = (_o = (_m = row[(_l = column.column.field) === null || _l === void 0 ? void 0 : _l.toLowerCase()]) === null || _m === void 0 ? void 0 : _m.action) === null || _o === void 0 ? void 0 : _o.lookupControl) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.header : '';
5656
- ((_v = (_u = (_t = (_s = row[(_r = column.column.field) === null || _r === void 0 ? void 0 : _r.toLowerCase()]) === null || _s === void 0 ? void 0 : _s.action) === null || _t === void 0 ? void 0 : _t.lookupControl) === null || _u === void 0 ? void 0 : _u.data) === null || _v === void 0 ? void 0 : _v.width) ? columnData.width = (_0 = (_z = (_y = (_x = row[(_w = column.column.field) === null || _w === void 0 ? void 0 : _w.toLowerCase()]) === null || _x === void 0 ? void 0 : _x.action) === null || _y === void 0 ? void 0 : _y.lookupControl) === null || _z === void 0 ? void 0 : _z.data) === null || _0 === void 0 ? void 0 : _0.width : '';
5657
- ((_5 = (_4 = (_3 = (_2 = row[(_1 = column.column.field) === null || _1 === void 0 ? void 0 : _1.toLowerCase()]) === null || _2 === void 0 ? void 0 : _2.action) === null || _3 === void 0 ? void 0 : _3.lookupControl) === null || _4 === void 0 ? void 0 : _4.data) === null || _5 === void 0 ? void 0 : _5.height) ? columnData.height = (_10 = (_9 = (_8 = (_7 = row[(_6 = column.column.field) === null || _6 === void 0 ? void 0 : _6.toLowerCase()]) === null || _7 === void 0 ? void 0 : _7.action) === null || _8 === void 0 ? void 0 : _8.lookupControl) === null || _9 === void 0 ? void 0 : _9.data) === null || _10 === void 0 ? void 0 : _10.height : '';
5658
- ((_15 = (_14 = (_13 = (_12 = row[(_11 = column.column.field) === null || _11 === void 0 ? void 0 : _11.toLowerCase()]) === null || _12 === void 0 ? void 0 : _12.action) === null || _13 === void 0 ? void 0 : _13.lookupControl) === null || _14 === void 0 ? void 0 : _14.data) === null || _15 === void 0 ? void 0 : _15.valueProp) ? columnData.valueProp = (_20 = (_19 = (_18 = (_17 = row[(_16 = column.column.field) === null || _16 === void 0 ? void 0 : _16.toLowerCase()]) === null || _17 === void 0 ? void 0 : _17.action) === null || _18 === void 0 ? void 0 : _18.lookupControl) === null || _19 === void 0 ? void 0 : _19.data) === null || _20 === void 0 ? void 0 : _20.valueProp : "";
5659
- ((_25 = (_24 = (_23 = (_22 = row[(_21 = column.column.field) === null || _21 === void 0 ? void 0 : _21.toLowerCase()]) === null || _22 === void 0 ? void 0 : _22.action) === null || _23 === void 0 ? void 0 : _23.lookupControl) === null || _24 === void 0 ? void 0 : _24.data) === null || _25 === void 0 ? void 0 : _25.labelProp) ? columnData.labelProp = (_30 = (_29 = (_28 = (_27 = row[(_26 = column.column.field) === null || _26 === void 0 ? void 0 : _26.toLowerCase()]) === null || _27 === void 0 ? void 0 : _27.action) === null || _28 === void 0 ? void 0 : _28.lookupControl) === null || _29 === void 0 ? void 0 : _29.data) === null || _30 === void 0 ? void 0 : _30.labelProp : "";
5660
- ((_35 = (_34 = (_33 = (_32 = row[(_31 = column.column.field) === null || _31 === void 0 ? void 0 : _31.toLowerCase()]) === null || _32 === void 0 ? void 0 : _32.action) === null || _33 === void 0 ? void 0 : _33.lookupControl) === null || _34 === void 0 ? void 0 : _34.data) === null || _35 === void 0 ? void 0 : _35.data) ? columnData.data = (_40 = (_39 = (_38 = (_37 = row[(_36 = column.column.field) === null || _36 === void 0 ? void 0 : _36.toLowerCase()]) === null || _37 === void 0 ? void 0 : _37.action) === null || _38 === void 0 ? void 0 : _38.lookupControl) === null || _39 === void 0 ? void 0 : _39.data) === null || _40 === void 0 ? void 0 : _40.data : '';
5661
- // columnData.lookupControl=row[column.column.field?.toLowerCase()]?.action?.lookupControl
5662
- }
5663
- //console.log('column data2', columnData)
5651
+ if ((_e = (_d = row[((_c = column.column.field) === null || _c === void 0 ? void 0 : _c.toLowerCase()) + '_obj']) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.lookupControl) {
5652
+ ((_k = (_j = (_h = (_g = row[((_f = column.column.field) === null || _f === void 0 ? void 0 : _f.toLowerCase()) + '_obj']) === null || _g === void 0 ? void 0 : _g.action) === null || _h === void 0 ? void 0 : _h.lookupControl) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.header) ? columnData.header = (_q = (_p = (_o = (_m = row[((_l = column.column.field) === null || _l === void 0 ? void 0 : _l.toLowerCase()) + '_obj']) === null || _m === void 0 ? void 0 : _m.action) === null || _o === void 0 ? void 0 : _o.lookupControl) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.header : '';
5653
+ ((_v = (_u = (_t = (_s = row[((_r = column.column.field) === null || _r === void 0 ? void 0 : _r.toLowerCase()) + '_obj']) === null || _s === void 0 ? void 0 : _s.action) === null || _t === void 0 ? void 0 : _t.lookupControl) === null || _u === void 0 ? void 0 : _u.data) === null || _v === void 0 ? void 0 : _v.width) ? columnData.width = (_0 = (_z = (_y = (_x = row[((_w = column.column.field) === null || _w === void 0 ? void 0 : _w.toLowerCase()) + '_obj']) === null || _x === void 0 ? void 0 : _x.action) === null || _y === void 0 ? void 0 : _y.lookupControl) === null || _z === void 0 ? void 0 : _z.data) === null || _0 === void 0 ? void 0 : _0.width : '';
5654
+ ((_5 = (_4 = (_3 = (_2 = row[((_1 = column.column.field) === null || _1 === void 0 ? void 0 : _1.toLowerCase()) + '_obj']) === null || _2 === void 0 ? void 0 : _2.action) === null || _3 === void 0 ? void 0 : _3.lookupControl) === null || _4 === void 0 ? void 0 : _4.data) === null || _5 === void 0 ? void 0 : _5.height) ? columnData.height = (_10 = (_9 = (_8 = (_7 = row[((_6 = column.column.field) === null || _6 === void 0 ? void 0 : _6.toLowerCase()) + '_obj']) === null || _7 === void 0 ? void 0 : _7.action) === null || _8 === void 0 ? void 0 : _8.lookupControl) === null || _9 === void 0 ? void 0 : _9.data) === null || _10 === void 0 ? void 0 : _10.height : '';
5655
+ ((_15 = (_14 = (_13 = (_12 = row[((_11 = column.column.field) === null || _11 === void 0 ? void 0 : _11.toLowerCase()) + '_obj']) === null || _12 === void 0 ? void 0 : _12.action) === null || _13 === void 0 ? void 0 : _13.lookupControl) === null || _14 === void 0 ? void 0 : _14.data) === null || _15 === void 0 ? void 0 : _15.valueProp) ? columnData.valueProp = (_20 = (_19 = (_18 = (_17 = row[((_16 = column.column.field) === null || _16 === void 0 ? void 0 : _16.toLowerCase()) + '_obj']) === null || _17 === void 0 ? void 0 : _17.action) === null || _18 === void 0 ? void 0 : _18.lookupControl) === null || _19 === void 0 ? void 0 : _19.data) === null || _20 === void 0 ? void 0 : _20.valueProp : "";
5656
+ ((_25 = (_24 = (_23 = (_22 = row[((_21 = column.column.field) === null || _21 === void 0 ? void 0 : _21.toLowerCase()) + '_obj']) === null || _22 === void 0 ? void 0 : _22.action) === null || _23 === void 0 ? void 0 : _23.lookupControl) === null || _24 === void 0 ? void 0 : _24.data) === null || _25 === void 0 ? void 0 : _25.labelProp) ? columnData.labelProp = (_30 = (_29 = (_28 = (_27 = row[((_26 = column.column.field) === null || _26 === void 0 ? void 0 : _26.toLowerCase()) + '_obj']) === null || _27 === void 0 ? void 0 : _27.action) === null || _28 === void 0 ? void 0 : _28.lookupControl) === null || _29 === void 0 ? void 0 : _29.data) === null || _30 === void 0 ? void 0 : _30.labelProp : "";
5657
+ ((_35 = (_34 = (_33 = (_32 = row[((_31 = column.column.field) === null || _31 === void 0 ? void 0 : _31.toLowerCase()) + '_obj']) === null || _32 === void 0 ? void 0 : _32.action) === null || _33 === void 0 ? void 0 : _33.lookupControl) === null || _34 === void 0 ? void 0 : _34.data) === null || _35 === void 0 ? void 0 : _35.data) ? columnData.data = (_40 = (_39 = (_38 = (_37 = row[((_36 = column.column.field) === null || _36 === void 0 ? void 0 : _36.toLowerCase()) + '_obj']) === null || _37 === void 0 ? void 0 : _37.action) === null || _38 === void 0 ? void 0 : _38.lookupControl) === null || _39 === void 0 ? void 0 : _39.data) === null || _40 === void 0 ? void 0 : _40.data : '';
5658
+ }
5664
5659
  var ref = this.dialogService.open(column.component, Object.assign(Object.assign({}, columnData), { data: Object.assign({ selection: column.selection, field: column.column.field, labelProp: (_42 = (_41 = column.column.lookupControl) === null || _41 === void 0 ? void 0 : _41.data) === null || _42 === void 0 ? void 0 : _42.labelProp }, column.rowData) }));
5665
- // const rowData = row[column.field]?.lookupControl?.data ? row[column.field]?.lookupControl?.data : row[column.field].data
5666
- // const ref = this.dialogService.open(row[column.field].component, {
5667
- // ...rowData,
5668
- // data: {
5669
- // selection: row[column.field].selection,
5670
- // field: row[column.field],
5671
- // labelProp : row[column.field].lookupControl?.data?.labelProp ,
5672
- // ... row[column.field].rowData,
5673
- // },
5674
- // });
5675
5660
  var componentName = (_43 = row[column.column.field]) === null || _43 === void 0 ? void 0 : _43.name;
5676
5661
  if (componentName) {
5677
5662
  this.pageLoggerService.savePageLoggerInfo((_44 = this.router.url) === null || _44 === void 0 ? void 0 : _44.substring(1), componentName);
@@ -5683,21 +5668,11 @@
5683
5668
  */
5684
5669
  GridComponent.prototype.selectLookupField = function (column, row) {
5685
5670
  var _this = this;
5686
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
5671
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
5687
5672
  this.onClickEvent(column, row);
5688
- this.lookupObject = { text: '', value: '', field: '' };
5689
- // if (column.lookupControl) {
5690
- // let obj: any = this.setLookupDialogConfig(
5691
- // row,
5692
- // column,
5693
- // column.lookupControl.data?.data
5694
- // );
5695
- // obj['component'] = column.lookupControl.component;
5696
- // const ref = this.openLookupDialog(obj);
5697
- // if (row[column.field].action?.lookupControl) {
5698
- var obj = this.setLookupDialogConfig(row, column, ((_d = (_c = (_b = (_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.lookupControl) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.data)
5699
- ? (_h = (_g = (_f = (_e = row[column.field]) === null || _e === void 0 ? void 0 : _e.action) === null || _f === void 0 ? void 0 : _f.lookupControl) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.data : (_j = column.lookupControl.data) === null || _j === void 0 ? void 0 : _j.data);
5700
- obj['component'] = ((_m = (_l = (_k = row[column.field]) === null || _k === void 0 ? void 0 : _k.action) === null || _l === void 0 ? void 0 : _l.lookupControl) === null || _m === void 0 ? void 0 : _m.component) ? (_q = (_p = (_o = row[column.field]) === null || _o === void 0 ? void 0 : _o.action) === null || _p === void 0 ? void 0 : _p.lookupControl) === null || _q === void 0 ? void 0 : _q.component : column.lookupControl.component;
5673
+ var obj = this.setLookupDialogConfig(row, column, ((_d = (_c = (_b = (_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.lookupControl) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.data)
5674
+ ? (_h = (_g = (_f = (_e = row[column.field + '_obj']) === null || _e === void 0 ? void 0 : _e.action) === null || _f === void 0 ? void 0 : _f.lookupControl) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.data : (_k = (_j = column === null || column === void 0 ? void 0 : column.lookupControl) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.data);
5675
+ obj['component'] = ((_o = (_m = (_l = row[column.field + '_obj']) === null || _l === void 0 ? void 0 : _l.action) === null || _m === void 0 ? void 0 : _m.lookupControl) === null || _o === void 0 ? void 0 : _o.component) ? (_r = (_q = (_p = row[column.field + '_obj']) === null || _p === void 0 ? void 0 : _p.action) === null || _q === void 0 ? void 0 : _q.lookupControl) === null || _r === void 0 ? void 0 : _r.component : (_s = column.lookupControl) === null || _s === void 0 ? void 0 : _s.component;
5701
5676
  var ref = this.openLookupDialog(obj, row);
5702
5677
  draggableDialog((column === null || column === void 0 ? void 0 : column.field) ? column === null || column === void 0 ? void 0 : column.field : column === null || column === void 0 ? void 0 : column.header);
5703
5678
  ref.onClose.subscribe(function (res) {
@@ -5713,7 +5688,7 @@
5713
5688
  text: res[labelProp ? labelProp : column.displayField.toLowerCase()],
5714
5689
  value: res[valueProp ? valueProp : columnField],
5715
5690
  };
5716
- _this.lookupObject = row[columnField];
5691
+ row[column.displayField] = row[columnField];
5717
5692
  }
5718
5693
  else if (value && value.value) {
5719
5694
  value['field'] = columnField;
@@ -5739,18 +5714,15 @@
5739
5714
  }
5740
5715
  }
5741
5716
  }
5742
- var lookupRow = Object.assign({}, row);
5743
- if (typeof (lookupRow[column.field]) === "object") {
5744
- lookupRow[column.field] = (_h = lookupRow[column.field]) === null || _h === void 0 ? void 0 : _h.value;
5717
+ if (typeof (row[column.field]) === "object") {
5718
+ row[column.field + '_obj'] = Object.assign(Object.assign({}, row[column.field + '_obj']), { text: row[column.field] });
5719
+ row[column.field] = (_h = row[column.field]) === null || _h === void 0 ? void 0 : _h.value;
5745
5720
  }
5746
- else if (typeof (row[column.field]) !== "object" && res) {
5747
- row[column.field] = {
5748
- text: res[(_j = column.field) === null || _j === void 0 ? void 0 : _j.toLowerCase()],
5749
- value: res[(_k = column.field) === null || _k === void 0 ? void 0 : _k.toLowerCase()],
5750
- };
5721
+ else {
5722
+ row[column.field + '_obj'] = Object.assign(Object.assign({}, row[column.field + '_obj']), { text: { text: res[(_j = column.field) === null || _j === void 0 ? void 0 : _j.toLowerCase()], value: res[(_k = column.field) === null || _k === void 0 ? void 0 : _k.toLowerCase()] } });
5751
5723
  }
5752
5724
  if (column.onReturn) {
5753
- column.onReturn(res, lookupRow, row);
5725
+ column.onReturn(res, row);
5754
5726
  }
5755
5727
  if (row[column.field] !== obj.selection) {
5756
5728
  _this.browserCloseEvent(true);
@@ -5762,11 +5734,30 @@
5762
5734
  var error = _45.error;
5763
5735
  _this.alertService.apiError(error);
5764
5736
  });
5765
- // }
5766
5737
  };
5767
5738
  GridComponent.prototype.setFilterLookup = function (column) {
5768
5739
  this.gridService.setLookUpFilter(column, this.dialogService);
5769
5740
  };
5741
+ // set lookup value that display in readOnlyMode
5742
+ GridComponent.prototype.setLookupReadOnlyValue = function (row, column) {
5743
+ var _a, _b, _c;
5744
+ var value = '';
5745
+ if ((_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.text) {
5746
+ value = (_b = row[column.field + '_obj']) === null || _b === void 0 ? void 0 : _b.text.text;
5747
+ }
5748
+ else if (row[column.displayField]) {
5749
+ if (typeof (row[column.displayField]) === "object") {
5750
+ value = (_c = row[column.displayField]) === null || _c === void 0 ? void 0 : _c.text;
5751
+ }
5752
+ else {
5753
+ value = row[column.displayField];
5754
+ }
5755
+ }
5756
+ else {
5757
+ value = row[column.field];
5758
+ }
5759
+ return value;
5760
+ };
5770
5761
  // Check calender value is changed or not
5771
5762
  GridComponent.prototype.calenderChangeEvent = function (column, row) {
5772
5763
  var valueChange = false;
@@ -5945,13 +5936,12 @@
5945
5936
  GridComponent.prototype.onClickEvent = function (column, row) {
5946
5937
  var _a, _b, _c, _d, _e;
5947
5938
  if (column.type === exports.EGridColumnType.LINK && (column.editLink === false || column.editLink === undefined) && column.editable !== true && column.disabled !== true) {
5948
- if (column && column.onClick && column.disabled !== true && ((_b = (_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.disabled) !== true) {
5939
+ if (column && column.onClick && column.disabled !== true && ((_b = (_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.disabled) !== true) {
5949
5940
  column.onClick(row);
5950
5941
  }
5951
5942
  else {
5952
5943
  var a = document.createElement('a');
5953
5944
  a.href = (_c = row[column.field + '_obj']) === null || _c === void 0 ? void 0 : _c.hyperlink;
5954
- // a.target = "_blank";
5955
5945
  a.target = column.target ? column.target : '_blank',
5956
5946
  a.click();
5957
5947
  }
@@ -5965,18 +5955,19 @@
5965
5955
  column.minutesInterval) {
5966
5956
  this.defaultDate = new Date(setMinutesInterval(new Date()));
5967
5957
  }
5968
- if (column && column.onClick && column.disabled !== true && ((_e = (_d = row[column.field]) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.disabled) !== true) {
5958
+ if (column && column.onClick && column.disabled !== true && ((_e = (_d = row[column.field + '_obj']) === null || _d === void 0 ? void 0 : _d.action) === null || _e === void 0 ? void 0 : _e.disabled) !== true) {
5969
5959
  column.onClick(row);
5970
5960
  }
5971
5961
  };
5972
5962
  // set the select value of multi-select
5973
5963
  GridComponent.prototype.showOption = function (column, row) {
5964
+ var _a, _b, _c, _d;
5974
5965
  if (row[column.field]) {
5975
- if (typeof (row[column.field]) === "string" && !row[column.field].includes(',')) {
5966
+ if (typeof (row[column.field]) === "string" && !((_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.includes(','))) {
5976
5967
  row[column.field] = [row[column.field]];
5977
5968
  }
5978
- else if (row[column.field].includes(',')) {
5979
- row[column.field] = row[column.field].split(',');
5969
+ else if ((_c = (_b = row[column.field]) === null || _b === void 0 ? void 0 : _b.toString()) === null || _c === void 0 ? void 0 : _c.includes(',')) {
5970
+ row[column.field] = (_d = row[column.field]) === null || _d === void 0 ? void 0 : _d.split(',');
5980
5971
  }
5981
5972
  }
5982
5973
  };
@@ -6268,7 +6259,7 @@
6268
6259
  ((_a = column === null || column === void 0 ? void 0 : column.filter) === null || _a === void 0 ? void 0 : _a.type) === 'checkbox' && column.filtering != false) {
6269
6260
  this.rowsData.forEach(function (row) {
6270
6261
  var _a, _b;
6271
- if (((_b = (_a = row[column.field]) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.disabled) !== true && !column.disabled) {
6262
+ if (((_b = (_a = row[column.field + '_obj']) === null || _a === void 0 ? void 0 : _a.action) === null || _b === void 0 ? void 0 : _b.disabled) !== true && !column.disabled) {
6272
6263
  row[column.field] = column.filterValue;
6273
6264
  }
6274
6265
  });
@@ -6301,8 +6292,8 @@
6301
6292
  GridComponent.decorators = [
6302
6293
  { type: i0.Component, args: [{
6303
6294
  selector: 'se-grid',
6304
- template: "<div class=\"grid-component-wrapper\">\n<p-confirmDialog [style]=\"{ width: '50vw' }\" *ngIf=\"useInlineCRUD\" key=\"handleInlineCRUD\"></p-confirmDialog>\n<p-confirmDialog class=\"grid-component-confirm-dialog\" *ngIf=\"columnActions.length > 0\"\n key=\"handlecolumnActions\"></p-confirmDialog>\n<div class=\"p-mb-2 p-d-flex p-ai-center\">\n <!-- used to be in div class=\"p-mb-2 p-d-flex p-ai-center\" -->\n <!-- *ngIf=\"\n allowColumnToggle ||\n rowActions.length > 0 ||\n useInlineCRUD ||\n allowExportToExcel ||\n allowExportToPdf ||\n clearGridFilter\n\" -->\n<!-- test -->\n\n <!-- button for apply value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton type=\"button\" icon=\"pi pi-search\" (click)=\"applyGirdFilterBtn()\"\n [class]=\"\n searchGridFilter ? 'p-button-success' : 'hide-clear-filter-button'\n \"></button>\n\n <!-- button for clear value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton id=\"clearGridFilterValuesButton\" type=\"button\"\n icon=\"pi pi-replay\" (click)=\"cleargridFiltersValue()\" [class]=\"\n clearGridFilter ? '' : 'hide-clear-filter-button'\n \" class='global-refresh global-btn p-mr-2 p-ml-2'\n ></button>\n\n <!-- button for edit all grid at once -->\n <!-- <button\n pButton\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\n id=\"editBtnGlobalvalues\"\n type=\"button\"\n [label]=\"'Edit'\"\n class=\"p-mr-2 ui-button-info\"\n icon=\"pi pi-pencil\"\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\n (click)=\"editAllRowsAtOnce()\"\n ></button> -->\n\n <!-- button for save all grid at once -->\n <button pButton *ngIf=\"editAllRows && editRowPermission\" id=\"saveAllGridValues\"\n icon=\"pi pi-check\" [label]=\"'Save'\"\n [class]=\"hideGridSaveButton ? 'hide-clear-filter-button' : 'p-mr-2 p-ml-2 ui-button-info'\" type=\"button\"\n (click)=\"saveAllRowsAtOnce()\"></button>\n\n <!-- button for cancel all grid at once -->\n <button pButton *ngIf=\"editAllRows && !hideGridCancelButton\" id=\"editBtnGlobalvalues\" type=\"button\" [label]=\"'Cancel'\"\n icon=\"pi pi-times\" class=\"p-mr-2 ui-button-info\" (click)=\"cancelAllRowsAtOnce()\"></button>\n\n <!-- header Button for multiSelect on Grid -->\n <span *ngIf=\"allowColumnToggle\">\n <p-multiSelect [showToggleAll]=\"false\" [options]=\"columns\" [(ngModel)]=\"selectedColumns\" optionLabel=\"header\"\n selectedItemsLabel=\"{0} columns selected\" class=\"grid-component-multiselect-header-button p-mr-2 p-ml-2\" placeholder=\"Choose Columns\">\n </p-multiSelect>\n </span>\n\n <!-- <button\n pButton\n *ngIf=\"showRefreshBtn\"\n type=\"button\"\n [label]=\"'Refresh'\"\n icon=\"pi pi-refresh\"\n (click)=\"refresh()\"\n class=\"ui-button-info p-mr-2\"\n></button> -->\n\n <!-- header Button for Adding new Row on Grid -->\n <button pButton *ngIf=\"useInlineCRUD && addRowPermission && !hideAddBtn\" type=\"button\" [label]=\"'Add'\" pAddRow\n [table]=\"componentTableRef\" [newRow]=\"newGridRow\" [id]=\"dataKey\" pTooltip=\"Add New Row\" tooltipPosition=\"bottom\"\n icon=\"pi pi-plus\" class=\"ui-button-info global-add-btn p-ml-3\" (click)=\"addNewRow(newGridRow, true)\" pRipple></button>\n\n <div *ngFor=\"let reportButton of reportButtons\" class=\"ui-button-info p-mr-2 p-ml-2\">\n <se-generate-report-btn *ngIf =\"!reportButton.hidden\"[repId]=\"reportButton.reportId\" [label]=\"reportButton.label\" [params]=\"reportButton.params\"\n [showDialog]=\"reportButton.showDialog\"></se-generate-report-btn>\n </div>\n\n <!-- header Button for Excel File on Grid -->\n <button *ngIf=\"allowExportToExcel\" type=\"button\" pButton icon=\"pi pi-file-excel\" (click)=\"exportExcel()\"\n class=\"p-button-success p-mt-0 p-mr-2 p-ml-2\" pTooltip=\"Export to Excel\" tooltipPosition=\"bottom\" pRipple></button>\n\n <!-- header Button for PDF File on Grid -->\n <button *ngIf=\"allowExportToPdf\" type=\"button\" pButton icon=\"pi pi-file-pdf\" (click)=\"exportPdf()\"\n class=\"p-button-warning p-mr-2 p-ml-2\" pTooltip=\"Export to Pdf\" tooltipPosition=\"bottom\" pRipple></button>\n <ng-content></ng-content>\n</div>\n\n<p-table *ngIf=\"!isGridHidden\" id=\"my-table\" [value]=\"rowsData\" [columns]=\"selectedColumns\" sortMode=\"multiple\"\n [lazy]=\"useServerSideEvents\" [paginator]=\"pagination\" [alwaysShowPaginator]=\"false\" [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\n class=\"grid-component-main-table\"\n [rows]=\"defaultRows\" [totalRecords]=\"totalRecords\" [rowsPerPageOptions]=\"setPaginationLength\"\n [showCurrentPageReport]=\"showCurrentPageReport\" currentPageReportTemplate=\"Showing {first} to {last} of {{\n totalRecords\n }} entries\" [loading]=\"autoLoadData && !setGridRefreshTime ? loading : false\"\n (onSort)=\"sortDisabled ?? handleSortChange($event)\" (onFilter)=\"handleFilterChange($event)\"\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\" (onPage)=\"handleServerSidePagination($event)\" #dt\n [dataKey]=\"dataKey\" [(selection)]=\"selectedRows\" selectionMode=\"multiple\" [scrollable]=\"scrollable\" [scrollHeight]=\"scrollHeight\"\n editMode=\"row\" [editingRowKeys]=\"editingRowKeys\" [autoLayout]=\"true\" [rowHover]=\"rowHover\"\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\">\n <!-- header Button for Action on Grid -->\n <div *ngIf=\"rowActions.length > 0 && rowActions.length > 0\" class=\"p-d-flex p-jc-end\">\n <span *ngFor=\"let rowAction of rowActions\">\n <button pButton type=\"button\" [label]=\"rowAction.title\" [class]=\"rowAction.class\"\n (click)=\"rowAction.onClick(selectedRows)\"></button>\n </span>\n </div>\n\n <!-- header columns on Grid -->\n <ng-template pTemplate=\"header\" let-cols>\n <tr>\n <th *ngIf=\"allowSelection && selectionType === 'multiple'\" class=\"grid-component-selection\">\n <div class=\"grid-component-table-header-inner-div-2\n table-header-inner-div div-last-inner-html-is-icon\">\n <span class=\"flex-grow-1\"> {{allowSelectionHeader}} </span>\n <p-tableHeaderCheckbox *ngIf=\"selectionType === 'multiple'\" binary=\"true\"\n (click)=\"multiCheckBoxOnclick(rowsData, $event)\"></p-tableHeaderCheckbox>\n </div>\n </th>\n <th *ngIf=\"allowSelection && selectionType === 'single'\" \n class=\"grid-component-selection\">\n Select\n </th>\n <th\n *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n Actions\n </th>\n <th *ngFor=\"let column of cols\" [pSortableColumn]=\"column.field\"\n [class]=\"column.type === 'boolean' ? 'checkbox-th' : ''\"\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\n class=\"column?.type === 'multiple' ? 'grid-component-select-th-column-type-multiple' : ''\">\n <div class=\"grid-component-table-header-inner-div-1 table-header-inner-div div-last-inner-html-is-icon\"> \n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\" class=\"grid-component required-star\">*</span>\n <p-sortIcon *ngIf=\"column.sorting !== false && column?.type !== 'multiple'\"\n [field]=\"column.field\"></p-sortIcon>\n </div>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\n </tr>\n <tr *ngIf=\"filtering && !hideFilter\">\n <th *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n <th *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n </th>\n <th *ngFor=\"let column of cols\" [ngSwitch]=\"column?.filter?.type\" [style]=\"column.style\"\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\">\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\n <!-- Text input on Header For Filter-->\n <p-columnFilter [type]=\"'text'\" [field]=\"column.field\" *ngSwitchCase=\"'input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <input type=\"text\" [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\" pInputText />\n </ng-template>\n </p-columnFilter>\n\n <!-- Numeric input on Header For Filter-->\n <p-columnFilter [type]=\"'numeric'\" [field]=\"column.field\" *ngSwitchCase=\"'numeric_input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-inputNumber [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"></p-inputNumber>\n </ng-template>\n </p-columnFilter>\n\n <!-- lookup input on Header For Filter-->\n <p-columnFilter\n [type]=\"'text'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'lookup_input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <div class=\"close-icon-wrapper grid-component lookup-filter-wrapper\">\n <input\n id=\"lookUp_filter\"\n class=\"grid-component lookup-filter\"\n autocomplete=\"off\"\n type=\"text\"\n [(ngModel)]=\"column.filterValue\"\n (click)=\"setFilterLookup(column)\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"\n pInputText\n />\n <div><button\n *ngIf=\"column.filterValue\"\n icon=\"pi pi-times\"\n pButton\n type=\"button\"\n (click)=\"lookupClearValue(column)\"\n ></button></div>\n </div>\n </ng-template>\n </p-columnFilter>\n\n <!-- checkbox on Header For Filter-->\n <p-columnFilter type=\"boolean\" [field]=\"column.field\" *ngSwitchCase=\"'checkbox'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-checkbox [binary]=\"true\" [disabled]=\"column.disabled\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onChange)=\"setFilterFocusOut(column, filter, $event)\" (click)=\"clickCheckBoxFilter(column)\"\n (keydown)=\"backspaceEvent($event, column)\">\n </p-checkbox>\n </ng-template>\n </p-columnFilter>\n\n <!-- multiSelect on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'multi-select'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-multiSelect [ngModel]=\"column.filterValue\" [options]=\"column.filter.data || []\" (onChange)=\"filter($event.value)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n placeholder=\"Any\" optionLabel=\"label\">\n </p-multiSelect>\n </ng-template>\n </p-columnFilter>\n\n <!-- dropdown on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'dropdown'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-dropdown [showClear]=\"true\" [placeholder]=\"'Select'\" [filter]=\"column.allowSearch\"\n [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"></p-dropdown>\n </ng-template>\n </p-columnFilter>\n\n <!-- calendar on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'calendar'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-calendar [placeholder]=\"'Select-Date'\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\" appendTo=\"body\" (onSelect)=\"selectDate(column)\"\n [inputId]=\"column.field\" hourFormat=\"12\" (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\n [showButtonBar]=\"true\" (onClose)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\" (onClearClick)=\"backspaceEvent($event, column)\">\n </p-calendar>\n </ng-template>\n </p-columnFilter>\n\n <!-- Default Filter For Header -->\n <p-columnFilter [type]=\"\n column.type && column.type !== 'link' ? column.type : 'text'\n \" [field]=\"column.field\" display=\"menu\" *ngSwitchDefault>\n </p-columnFilter>\n </span>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n </tr>\n </ng-template>\n\n <!-- Body columns on Grid -->\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [ngClass]=\"row?.highlightrow ? 'highlighted-row' : ''\"\n [class]=\"wordWrap ? 'p-selectable-row' : 'noWrap p-selectable-row'\" (click)=\"!editing && handleRowClick(row)\"\n [pEditableRow]=\"row\" #gridRow [id]=\"row[dataKey]\">\n <td *ngIf=\"allowSelection\" class=\"grid-component-selection\">\n <p-tableRadioButton [value]=\"row\" *ngIf=\"selectionType === 'single'\"\n (click)=\"multiCheckBoxOnclick(row , $event, true)\"></p-tableRadioButton>\n <p-tableCheckbox [value]=\"row\" *ngIf=\"selectionType === 'multiple'\"\n (click)=\"multiCheckBoxOnclick(row, $event)\"></p-tableCheckbox>\n </td>\n\n <!-- first actions column -->\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class=\"setActionColumnWidth\">\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n\n <!-- Grid Rows Data Bindings Start -->\n <td *ngFor=\"let column of selectedColumns\" [ngSwitch]=\"column.type\" >\n\n <!-- Boolean column on Grid -->\n <span *ngSwitchCase=\"'boolean'\">\n <td *ngIf=\"!editing\">\n <p-checkbox [disabled]=\"!column.allowEdit ?? true\" [binary]=\"true\" (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\" (blur)=\"onFocusOutEvent(column, row)\" \n [(ngModel)]=\" \n row[column.field] &&\n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y'||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? Checked\n : unChecked\n \">\n </p-checkbox>\n </td>\n <td *ngIf=\"editing\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for edit checkBox -->\n <p-checkbox (click)=\"onClickEvent(column, row)\" (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n [disabled]=\"allowDisabled(column,row)\" [binary]=\"true\" [(ngModel)]=\"\n row[column.field] && \n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y' ||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? editModeChecked\n : editModeunCkecked\n \" (blur)=\"onFocusOutEvent(column, row)\"></p-checkbox>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ row[column.field] }}\n </ng-template>\n </p-cellEditor>\n </td>\n </span>\n\n <!-- link column on Grid -->\n <span *ngSwitchCase=\"'link'\">\n <!-- link column for HyperLink Case -->\n <span *ngIf=\"column.allowSave === false\">\n <span *ngIf=\"column.target !== '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\" class=\"custom-link\"\n [class]=\"allowDisabled(column,row) ? 'disable-link' : ''\">\n\n <a *ngIf=\"!column.disabled; else disabled\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n <i *ngIf=\"column.icon &&!row[column.field]?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n <ng-template #disabled >\n <i *ngIf=\"column.icon &&!row[column.field]?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </ng-template>\n </span>\n <span *ngIf=\"column.target === '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"class=\"custom-link\"\n [class]=\" allowDisabled(column,row) ? 'disable-link' : ''\">\n\n <a *ngIf=\"!column.disabled; else disabled\" [href]=\"row[column.field + '_obj']?.hyperlink\">\n <i *ngIf=\"column.icon &&!row[column.field]?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n <ng-template #disabled >\n <i *ngIf=\"column.icon &&!row[column.field]?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </ng-template>\n </span>\n </span>\n <!-- link column for Edit Case -->\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"(column.editable === true || column.editable === undefined) && (column.editLink === true || column.editLink === undefined)\">\n <input *ngIf=\"!row.isNew\" pInputText (click)=\"onClickEvent(column, row)\" type=\"text\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.hideFieldValue?'':row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n <input pInputText *ngIf=\"row.isNew\" type=\"text\" (click)=\"onClickEvent(column, row)\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n </span>\n <span *ngIf=\"column.editable === false\" >\n <a class=\"custom-link\" (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" [target]='column.target'\n [class]=\"allowDisabled(column,row) ? 'disable-link' : ''\">\n <i *ngIf=\"column.icon && !row[column.field]?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n \n </a>\n </span>\n <span *ngIf=\"column.editLink === false\">\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disable-link' : ''\">\n <i *ngIf=\"column.icon && !row[column.field]?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n \n </a>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span class=\"custom-link\" [class]=\"column.editable === false || allowDisabled(column,row) ? 'disable-link' : ''\">\n <a *ngIf=\"!column.disabled; else disabled\" (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target\"\n >\n <i *ngIf=\"column.icon&& !row[column.field]?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n <ng-template #disabled>\n\n <i *ngIf=\"column.icon&& !row[column.field]?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field]?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n\n </ng-template>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n\n <!-- Iframe column on Grid -->\n <span *ngSwitchCase=\"'iframe'\">\n <span class=\"custom-link\" (click)=\"gridIFrame(column, row[column.field + '_obj']?.hyperlink, row)\" [title]=\"\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : row[column.field]\n\n \"\n > \n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText ? column.displayText : row[column.field]\n }}\n </ng-template>\n </span>\n </span>\n\n <!-- dialog column on Grid -->\n <span *ngSwitchCase=\"'dialog'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\" \n [title]=\"setConditionBaseValue(row, column) \"\n >\n <span *ngIf=\"column.editable === true\">\n <input\n readonly\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n type=\"text\"\n pInputText\n (click)=\"selectLookupField(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.hideFieldValue?'':row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [name]=\"row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\"\n />\n </span>\n <span\n *ngIf=\"column.editable === false || column.editable === undefined\n \" class=\"custom-link\"\n [class]=\"\n allowDisabled(column,row) ? 'disable-link' : ''\n \" (click)=\"openGridDialog(column, row)\">\n\n <i *ngIf=\"column.icon && !row[column.field]?.action?.hideFieldValue ; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ (!column.displayText && row.isNew )||row[column.field]?.action?.hideFieldValue? '' : setConditionBaseValue(row, column)\n }}</ng-template>\n\n\n </span>\n </span>\n\n <span *ngIf=\"row[column.field + '_secondType'] === 'date'\" [title]=\"\n row[column.field]\n | date: (column.format ? column.format : 'MM/dd/YY')\n \">\n <p-calendar [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [showTime]=\"column.showTime\" (click)=\"onClickEvent(column, row)\"\n [timeOnly]=\"column.timeOnly\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"></p-calendar>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span class=\"custom-link\"\n [class]=\"row.disabled || column.editable === false || allowDisabled(column,row) ? 'disable-link' : ''\"\n (click)=\"openGridDialog(column, row)\" *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column)\">\n <i *ngIf=\"column.icon && !row[column.field]?.action?.hideFieldValue ; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{row[column.field]?.action?.hideFieldValue?'': setConditionBaseValue(row, column) }}</ng-template>\n\n <!-- {{ setConditionBaseValue(row, column) }} -->\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- lookup Input column on Grid -->\n <span *ngSwitchCase=\"'lookup_input'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"close-icon-wrapper\">\n <input readonly type=\"text\" pInputText\n [(ngModel)]=\"(column.disabled || column.editable === false) && column.displayField ? row[column.displayField] : typeOf(row[column.field]) === 'object' ?\n row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"row[column.field]\"\n\n (keyup.tab)=\"selectLookupField(column, row)\" [disabled]=\"allowDisabled(column,row)\"\n (click)=\"selectLookupField(column, row)\" [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\" (blur)=\"onFocusOutEvent(column, row)\" />\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\n ? row[column.field].text\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\"\n (click)=\"lookupClearValue(column,row)\"></button></div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"column.linkId\">\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\">\n {{\n row[column.field]?.action ? row[column.field]?.text :\n typeOf(row[column.field]) === 'object' ? row[column.field]?.text : row[column.displayField]\n ? typeOf(row[column.displayField]) === 'object' ? row[column.displayField]?.text : row[column.displayField] : row[column.field]\n }}\n </a>\n </span>\n <span *ngIf=\"!column.linkId\" [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\n (click)=\"openLookupHyperlink(column, row)\">\n {{\n row[column.field]?.action ? row[column.field]?.text :\n typeOf(row[column.field]) === 'object' ? row[column.field]?.text : row[column.displayField]\n ? typeOf(row[column.displayField]) === 'object' ? row[column.displayField]?.text : row[column.displayField] : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Numeric Input column on Grid -->\n <span *ngSwitchCase=\"'numeric'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for Currency && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" [class]=\"\n column.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [showButtons]=\"!column.format ? true : false\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [name]=\"column.field\"\n [disabled]=\"allowDisabled(column,row)\" (ngModelChange)=\"onChangeEvent(column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" [mode]=\"\n column.format &&\n column.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.currency\n ? column.format.formatParams.currency\n : 'USD'\n \" [locale]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.locale\n ? column.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\" [suffix]=\"\n column.format &&\n column.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"setNumericFormat(column, row)\">\n {{\n setNumericFormat(column, row)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Button column on Grid -->\n <span>\n <div *ngSwitchCase=\"'add_button'\">\n <button *ngIf=\"!row.hidegridbtn\" pButton type=\"button\"\n [icon]=\"row[column.field]?.action?.icon ? row[column.field]?.action?.icon : column.icon\"\n [name]=\"column.header\" class=\"merge-btn\" [disabled]=\"allowDisabled(column,row)\"\n [label]=\"row[column.field]?.action?.displayText ? row[column.field]?.action?.displayText : column.value\"\n class=\"grid-component-grid-add-btn\" (click)=\"onClickButton(column, row)\"></button>\n </div>\n </span>\n\n <!-- Date column on Grid -->\n <span *ngSwitchCase=\"'date'\" [title]=\"setConditionBaseValue(row,column)\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-calendar\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [defaultDate]=\"defaultDate\"\n [stepMinute]=\"column.minutesInterval ? column.minutesInterval : 1\" [showTime]=\"column.showTime\"\n [timeOnly]=\"column.timeOnly\" [dateFormat]=\"column.format ? column.format.type : calendarFormat\"\n (keyup)=\"calenderInputValue(column, row)\" (onShow)=\"onClickEvent(column, row)\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [showButtonBar]=\"!column.timeOnly\"></p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ setConditionBaseValue(row,column) }}\n </ng-template>\n </p-cellEditor>\n </span>\n <span *ngSwitchDefault>\n <span [ngSwitch]=\"column.type\">\n <!-- Dropdown column on Grid -->\n <span *ngSwitchCase=\"'dropdown'\" [class]=\"dropdownInput ? '' : 'output-dropdown'\" [title]=\"\n setDropdwonReadOnlyValue(row, column)\n \">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown *ngIf=\"!row[column.field]?.action?.hidden\" [options]=\"\n row[column.field+'_data']\n ? row[column.field+'_data']\n : column.data\n \"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\" [placeholder]=\"row[column.displayField]\n ? row[column.displayField]\n : row[column.field] ? row[column.field] : 'Select'\" [showClear]=\"row[column.field] ? true : false\"\n [optionLabel]=\"column.optionLabel\" (click)=\"onClickEvent(column, row)\"\n [optionValue]=\"column.optionValue\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (blur)=\"onFocusOutEvent(column, row)\"\n (onChange)=\"onChangeEvent(column, row)\" [filter]=\"column.allowSearch\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"!row[column.field]?.action?.hidden\">\n {{\n setDropdwonReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- MultiSelect column on Grid -->\n <span *ngSwitchCase=\"'multi-select'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-multiSelect [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" type=\"text\"\n [(ngModel)]=\"typeOf(row[column.field]) === 'object' && row[column.field]?.action ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [options]=\"column.data\" [optionLabel]=\"column.optionLabel\" [optionValue]=\"column.optionValue\"\n (onChange)=\"onChangeEvent(column, row)\" (onPanelShow)=\"showOption(column, row)\"\n (click)=\"onClickEvent(column, row)\" [appendTo]=\"'body'\" (blur)=\"onFocusOutEvent(column, row)\">\n </p-multiSelect>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"\n row[column.displayField]\n ? row[column.displayField]\n : setMultiSelectData(column, row[column.field])\n \">\n {{\n row[column.displayField]\n ? row[column.displayField] :\n setMultiSelectData(column, row[column.field])\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngSwitchCase=\"'AutoComplete'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-autoComplete \n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" \n [name]=\"column.header\"\n [suggestions]=\"column.data\" \n (onSelect)=\"autoCompleteSelectedValue(row, column, $event)\"\n [field]=\"column.optionLabel ? column.optionLabel?.toLowerCase() : column.displayField ? column.displayField?.toLowerCase() : column.field?.toLowerCase()\"\n [(ngModel)]=\"row[column.field]?.action && row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] :\n typeOf(row[column.field]) === 'object' && row[column.field]?.text ?\n row[column.field]?.text :\n row[column.field]\"\n [dropdown]=\"column.showOption\" \n (ngModelChange)=\"onChangeEvent(column, row)\"\n (click)=\"onClickEvent(column, row)\" \n (completeMethod)=\"autoSearch($event, column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" \n [disabled]=\"allowDisabled(column,row)\" \n [multiple]=\"true\"\n (keydown.enter)=\"onAutoCompleteFocusOut($event, column, row)\">\n </p-autoComplete>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\n </span>\n </span>\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.field] && !column.displayField\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.field] : value[column.field] + ';' : value[column.field] }}\n </span>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngSwitchCase=\"'report'\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n <ng-template pTemplate=\"input\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <span *ngSwitchDefault>\n <!-- Input column on Grid -->\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [(ngModel)]=\"row.undefined||row[column.field]?.action?.hideFieldValue? '' : allowDisabled(column,row) && row[column.displayField] ? row[column.displayField] : typeOf(row[column.field]) === 'object' && (row[column.field]?.action || row[column.field]?.text) ? row[column.field]?.action?.displayField?.toLowerCase() ?\n row[row[column.field]?.action?.displayField.toLowerCase()] : row[column.field]?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\" (change)=\"onChangeEvent(column, row)\"\n (click)=\"onClickButton(column, row)\" *ngIf=\"column.field !== dataKey; else locked_field\" />\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span (click)=\"onClickEvent(column, row)\" [title]=\"\n column.displayText ? column.displayText : \n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n \"> \n {{\n row[column.field]?.action?.hideFieldValue?'':\n row[column.field]?.action ? row[column.field]?.text : column.displayText ? column.displayText :\n row[column.displayField]\n ? row[column.displayField]\n : row[column.field]\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n </span>\n </td>\n <!-- Grid Rows Data Bindings End -->\n\n <!-- Action column on Grid -->\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class='setActionColumnWidth'>\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n </tr>\n </ng-template>\n\n <!-- Footer columns on Grid -->\n <ng-template pTemplate=\"footer\">\n <tr *ngIf=\"aggregateFooter\">\n <td\n *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngFor=\"let outerColumn of selectedColumns\" class=\"grid-component-outer-column\">\n <div *ngFor=\"let innerColumn of selectedColumns\">\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\n <div\n *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field?.toLowerCase() === outerColumn.field?.toLowerCase()) || aggr.displayField && aggr.displayField?.toLowerCase() === outerColumn.field?.toLowerCase())\">\n <div [innerHTML]=\"aggr.aggrValue\">\n </div>\n </div>\n </div>\n </div>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\"></td>\n </tr>\n </ng-template>\n\n <!-- Footer for Empty Message columns on Grid -->\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"grid-component no-records-found\">\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>\n</div>",
6305
- styles: [":host ::ng-deep .p-calendar .p-inputtext{width:100%!important}:host ::ng-deep .p-column-filter-clear-button{display:none}:host ::ng-deep .hide-table-filter .pi-filter:before{display:none}:host ::ng-deep .hide-filter-icon .p-column-filter-menu-button{display:none}.disable-link{opacity:.5}.custom-link{color:#205dcf;font-size:12px}.custom-link:not(.disable-link){cursor:pointer}.mr-2{margin-right:10px;display:block}.highlighted-row{background-color:#dee2e6!important}.hide-clear-filter-button{display:none!important}\n"]
6295
+ template: "<div class=\"grid-component-wrapper\">\n<p-confirmDialog [style]=\"{ width: '50vw' }\" *ngIf=\"useInlineCRUD\" key=\"handleInlineCRUD\"></p-confirmDialog>\n<p-confirmDialog class=\"grid-component-confirm-dialog\" *ngIf=\"columnActions.length > 0\"\n key=\"handlecolumnActions\"></p-confirmDialog>\n<div class=\"p-mb-2 p-d-flex p-ai-center\">\n <!-- used to be in div class=\"p-mb-2 p-d-flex p-ai-center\" -->\n <!-- *ngIf=\"\n allowColumnToggle ||\n rowActions.length > 0 ||\n useInlineCRUD ||\n allowExportToExcel ||\n allowExportToPdf ||\n clearGridFilter\n\" -->\n<!-- test -->\n\n <!-- button for apply value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton type=\"button\" icon=\"pi pi-search\" (click)=\"applyGirdFilterBtn()\"\n [class]=\"\n searchGridFilter ? 'p-button-success' : 'hide-clear-filter-button'\n \"></button>\n\n <!-- button for clear value on Grid -->\n <button *ngIf=\"filtering && !hideFilter\" pButton id=\"clearGridFilterValuesButton\" type=\"button\"\n icon=\"pi pi-replay\" (click)=\"cleargridFiltersValue()\" [class]=\"\n clearGridFilter ? '' : 'hide-clear-filter-button'\n \" class='global-refresh global-btn p-mr-2 p-ml-2'\n ></button>\n\n <!-- button for edit all grid at once -->\n <!-- <button\n pButton\n *ngIf=\"hideEditAllRowsBtn && editAllRows\"\n id=\"editBtnGlobalvalues\"\n type=\"button\"\n [label]=\"'Edit'\"\n class=\"p-mr-2 ui-button-info\"\n icon=\"pi pi-pencil\"\n [class]=\"editRowPermission ? '' : 'p-disabled'\"\n (click)=\"editAllRowsAtOnce()\"\n ></button> -->\n\n <!-- button for save all grid at once -->\n <button pButton *ngIf=\"editAllRows && editRowPermission\" id=\"saveAllGridValues\"\n icon=\"pi pi-check\" [label]=\"'Save'\"\n [class]=\"hideGridSaveButton ? 'hide-clear-filter-button' : 'p-mr-2 p-ml-2 ui-button-info'\" type=\"button\"\n (click)=\"saveAllRowsAtOnce()\"></button>\n\n <!-- button for cancel all grid at once -->\n <button pButton *ngIf=\"editAllRows && !hideGridCancelButton\" id=\"editBtnGlobalvalues\" type=\"button\" [label]=\"'Cancel'\"\n icon=\"pi pi-times\" class=\"p-mr-2 ui-button-info\" (click)=\"cancelAllRowsAtOnce()\"></button>\n\n <!-- header Button for multiSelect on Grid -->\n <span *ngIf=\"allowColumnToggle\">\n <p-multiSelect [showToggleAll]=\"false\" [options]=\"columns\" [(ngModel)]=\"selectedColumns\" optionLabel=\"header\"\n selectedItemsLabel=\"{0} columns selected\" class=\"grid-component-multiselect-header-button p-mr-2 p-ml-2\" placeholder=\"Choose Columns\">\n </p-multiSelect>\n </span>\n\n <!-- <button\n pButton\n *ngIf=\"showRefreshBtn\"\n type=\"button\"\n [label]=\"'Refresh'\"\n icon=\"pi pi-refresh\"\n (click)=\"refresh()\"\n class=\"ui-button-info p-mr-2\"\n></button> -->\n\n <!-- header Button for Adding new Row on Grid -->\n <button pButton *ngIf=\"useInlineCRUD && addRowPermission && !hideAddBtn\" type=\"button\" [label]=\"'Add'\" pAddRow\n [table]=\"componentTableRef\" [newRow]=\"newGridRow\" [id]=\"dataKey\" pTooltip=\"Add New Row\" tooltipPosition=\"bottom\"\n icon=\"pi pi-plus\" class=\"ui-button-info global-add-btn p-ml-3\" (click)=\"addNewRow(newGridRow, true)\" pRipple></button>\n\n <div *ngFor=\"let reportButton of reportButtons\" class=\"ui-button-info p-mr-2 p-ml-2\">\n <se-generate-report-btn *ngIf =\"!reportButton.hidden\"[repId]=\"reportButton.reportId\" [label]=\"reportButton.label\" [params]=\"reportButton.params\"\n [showDialog]=\"reportButton.showDialog\"></se-generate-report-btn>\n </div>\n\n <!-- header Button for Excel File on Grid -->\n <button *ngIf=\"allowExportToExcel\" type=\"button\" pButton icon=\"pi pi-file-excel\" (click)=\"exportExcel()\"\n class=\"p-button-success p-mt-0 p-mr-2 p-ml-2\" pTooltip=\"Export to Excel\" tooltipPosition=\"bottom\" pRipple></button>\n\n <!-- header Button for PDF File on Grid -->\n <button *ngIf=\"allowExportToPdf\" type=\"button\" pButton icon=\"pi pi-file-pdf\" (click)=\"exportPdf()\"\n class=\"p-button-warning p-mr-2 p-ml-2\" pTooltip=\"Export to Pdf\" tooltipPosition=\"bottom\" pRipple></button>\n <ng-content></ng-content>\n</div>\n\n<p-table *ngIf=\"!isGridHidden\" id=\"my-table\" [value]=\"rowsData\" [columns]=\"selectedColumns\" sortMode=\"multiple\"\n [lazy]=\"useServerSideEvents\" [paginator]=\"pagination\" [alwaysShowPaginator]=\"false\" [class]=\"pagination || !rowsData.length ? 'pagination' : ''\"\n class=\"grid-component-main-table\"\n [rows]=\"defaultRows\" [totalRecords]=\"totalRecords\" [rowsPerPageOptions]=\"setPaginationLength\"\n [showCurrentPageReport]=\"showCurrentPageReport\" currentPageReportTemplate=\"Showing {first} to {last} of {{\n totalRecords\n }} entries\" [loading]=\"autoLoadData && !setGridRefreshTime ? loading : false\"\n (onSort)=\"sortDisabled ?? handleSortChange($event)\" (onFilter)=\"handleFilterChange($event)\"\n (onLazyLoad)=\"autoLoadData ? handleServerSideEvents($event) : ''\" (onPage)=\"handleServerSidePagination($event)\" #dt\n [dataKey]=\"dataKey\" [(selection)]=\"selectedRows\" selectionMode=\"multiple\" [scrollable]=\"scrollable\" [scrollHeight]=\"scrollHeight\"\n editMode=\"row\" [editingRowKeys]=\"editingRowKeys\" [autoLayout]=\"true\" [rowHover]=\"rowHover\"\n [ngClass]=\"{'horizontal-scroll': horizontalScroll === true ? true : false}\">\n <!-- header Button for Action on Grid -->\n <div *ngIf=\"rowActions.length > 0 && rowActions.length > 0\" class=\"p-d-flex p-jc-end\">\n <span *ngFor=\"let rowAction of rowActions\">\n <button pButton type=\"button\" [label]=\"rowAction.title\" [class]=\"rowAction.class\"\n (click)=\"rowAction.onClick(selectedRows)\"></button>\n </span>\n </div>\n\n <!-- header columns on Grid -->\n <ng-template pTemplate=\"header\" let-cols>\n <tr>\n <th *ngIf=\"allowSelection && selectionType === 'multiple'\" class=\"grid-component-selection\">\n <div class=\"grid-component-table-header-inner-div-2\n table-header-inner-div div-last-inner-html-is-icon\">\n <span class=\"flex-grow-1\"> {{allowSelectionHeader}} </span>\n <p-tableHeaderCheckbox *ngIf=\"selectionType === 'multiple'\" binary=\"true\"\n (click)=\"multiCheckBoxOnclick(rowsData, $event)\"></p-tableHeaderCheckbox>\n </div>\n </th>\n <th *ngIf=\"allowSelection && selectionType === 'single'\" \n class=\"grid-component-selection\">\n Select\n </th>\n <th\n *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n Actions\n </th>\n <th *ngFor=\"let column of cols\" [pSortableColumn]=\"column.field\"\n [class]=\"column.type === 'boolean' ? 'checkbox-th' : ''\"\n [pSortableColumnDisabled]=\"sortDisabled && useServerSideEvents ? true : column.sorting === false\"\n class=\"column?.type === 'multiple' ? 'grid-component-select-th-column-type-multiple' : ''\">\n <div class=\"grid-component-table-header-inner-div-1 table-header-inner-div div-last-inner-html-is-icon\"> \n <span [class]=\"'flex-grow-1'\">{{ column.header }}</span>\n <span *ngIf=\"column.isRequired\" class=\"grid-component required-star\">*</span>\n <p-sortIcon *ngIf=\"column.sorting !== false && column?.type !== 'multiple'\"\n [field]=\"column.field\"></p-sortIcon>\n </div>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">Actions</th>\n </tr>\n <tr *ngIf=\"filtering && !hideFilter\">\n <th *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n <th *ngIf=\"setActionColumnAsFirst && !disabledSaveBtn\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n </th>\n <th *ngFor=\"let column of cols\" [ngSwitch]=\"column?.filter?.type\" [style]=\"column.style\"\n [class]=\"hideFilterOptions ? 'hide-table-filter' : ''\">\n <span *ngIf=\"column.filtering !== false\" [class]=\"column.filter?.showFilter ? '' : 'hide-filter-icon'\">\n <!-- Text input on Header For Filter-->\n <p-columnFilter [type]=\"'text'\" [field]=\"column.field\" *ngSwitchCase=\"'input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <input type=\"text\" [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\" pInputText />\n </ng-template>\n </p-columnFilter>\n\n <!-- Numeric input on Header For Filter-->\n <p-columnFilter [type]=\"'numeric'\" [field]=\"column.field\" *ngSwitchCase=\"'numeric_input'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-inputNumber [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onBlur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"></p-inputNumber>\n </ng-template>\n </p-columnFilter>\n\n <!-- lookup input on Header For Filter-->\n <p-columnFilter\n [type]=\"'text'\"\n [field]=\"column.field\"\n *ngSwitchCase=\"'lookup_input'\"\n >\n <ng-template\n pTemplate=\"filter\"\n let-value\n let-filter=\"filterCallback\"\n >\n <div class=\"close-icon-wrapper grid-component lookup-filter-wrapper\">\n <input\n id=\"lookUp_filter\"\n class=\"grid-component lookup-filter\"\n autocomplete=\"off\"\n type=\"text\"\n [(ngModel)]=\"column.filterValue\"\n (click)=\"setFilterLookup(column)\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\"\n (keyup)=\"removingFilters($event, column)\"\n pInputText\n />\n <div><button\n *ngIf=\"column.filterValue\"\n icon=\"pi pi-times\"\n pButton\n type=\"button\"\n (click)=\"lookupClearValue(column)\"\n ></button></div>\n </div>\n </ng-template>\n </p-columnFilter>\n\n <!-- checkbox on Header For Filter-->\n <p-columnFilter type=\"boolean\" [field]=\"column.field\" *ngSwitchCase=\"'checkbox'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-checkbox [binary]=\"true\" [disabled]=\"column.disabled\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\"\n (onChange)=\"setFilterFocusOut(column, filter, $event)\" (click)=\"clickCheckBoxFilter(column)\"\n (keydown)=\"backspaceEvent($event, column)\">\n </p-checkbox>\n </ng-template>\n </p-columnFilter>\n\n <!-- multiSelect on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'multi-select'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-multiSelect [ngModel]=\"column.filterValue\" [options]=\"column.filter.data || []\" (onChange)=\"filter($event.value)\"\n (blur)=\"setFilterFocusOut(column, filter, $event)\" (keydown)=\"backspaceEvent($event, column)\"\n placeholder=\"Any\" optionLabel=\"label\">\n </p-multiSelect>\n </ng-template>\n </p-columnFilter>\n\n <!-- dropdown on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'dropdown'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-dropdown [showClear]=\"true\" [placeholder]=\"'Select'\" [filter]=\"column.allowSearch\"\n [(ngModel)]=\"column.filterValue\" (keyup.enter)=\"applyDropdownFilter(filter, $event)\"\n [options]=\"column.filter.data || []\"\n (onChange)=\"searchDropdownFilter(filter, $event, column)\"></p-dropdown>\n </ng-template>\n </p-columnFilter>\n\n <!-- calendar on Header For Filter-->\n <p-columnFilter [field]=\"column.field\" matchMode=\"in\" [showMenu]=\"false\" *ngSwitchCase=\"'calendar'\">\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n <p-calendar [placeholder]=\"'Select-Date'\" [(ngModel)]=\"column.filterValue\"\n (keyup.enter)=\"applyEnterEvent(filter, $event, column)\" appendTo=\"body\" (onSelect)=\"selectDate(column)\"\n [inputId]=\"column.field\" hourFormat=\"12\" (keyup.backspace)=\"removeNullCalendar(column, filter, $event)\"\n [showButtonBar]=\"true\" (onClose)=\"setFilterFocusOut(column, filter, $event)\"\n (keydown)=\"backspaceEvent($event, column)\" (onClearClick)=\"backspaceEvent($event, column)\">\n </p-calendar>\n </ng-template>\n </p-columnFilter>\n\n <!-- Default Filter For Header -->\n <p-columnFilter [type]=\"\n column.type && column.type !== 'link' ? column.type : 'text'\n \" [field]=\"column.field\" display=\"menu\" *ngSwitchDefault>\n </p-columnFilter>\n </span>\n </th>\n <th\n *ngIf=\"!setActionColumnAsFirst && !disabledSaveBtn && columns?.length > 0 && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></th>\n </tr>\n </ng-template>\n\n <!-- Body columns on Grid -->\n <ng-template pTemplate=\"body\" let-row let-editing=\"editing\" let-ri=\"rowIndex\">\n <tr [ngClass]=\"row?.highlightrow ? 'highlighted-row' : ''\"\n [class]=\"wordWrap ? 'p-selectable-row' : 'noWrap p-selectable-row'\" (click)=\"!editing && handleRowClick(row)\"\n [pEditableRow]=\"row\" #gridRow [id]=\"row[dataKey]\">\n <td *ngIf=\"allowSelection\" class=\"grid-component-selection\">\n <p-tableRadioButton [value]=\"row\" *ngIf=\"selectionType === 'single'\"\n (click)=\"multiCheckBoxOnclick(row , $event, true)\"></p-tableRadioButton>\n <p-tableCheckbox [value]=\"row\" *ngIf=\"selectionType === 'multiple'\"\n (click)=\"multiCheckBoxOnclick(row, $event)\"></p-tableCheckbox>\n </td>\n\n <!-- first actions column -->\n <td *ngIf=\"setActionColumnAsFirst && columnActions.length > 0\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td *ngIf=\"setActionColumnAsFirst && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class=\"setActionColumnWidth\">\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n\n <!-- Grid Rows Data Bindings Start -->\n <td *ngFor=\"let column of selectedColumns\" [ngSwitch]=\"column.type\" >\n\n <!-- Boolean column on Grid -->\n <span *ngSwitchCase=\"'boolean'\">\n <td *ngIf=\"!editing\">\n <p-checkbox [disabled]=\"!column.allowEdit ?? true\" [binary]=\"true\" (click)=\"onClickEvent(column, row)\"\n (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\" (blur)=\"onFocusOutEvent(column, row)\" \n [(ngModel)]=\" \n row[column.field] &&\n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y'||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? Checked\n : unChecked\n \">\n </p-checkbox>\n </td>\n <td *ngIf=\"editing\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for edit checkBox -->\n <p-checkbox (click)=\"onClickEvent(column, row)\" (ngModelChange)=\"checkBoxChangeEvent($event, column, row)\"\n [disabled]=\"allowDisabled(column,row)\" [binary]=\"true\" [(ngModel)]=\"\n row[column.field] && \n (row[column.field].toString() === '1' ||\n row[column.field].toString().toLowerCase() === 'true' ||\n row[column.field].toString().toLowerCase() === 'y' ||\n ( row[column.field].text && (row[column.field]?.text?.toString() === '1' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'true' ||\n row[column.field]?.text?.toString()?.toLowerCase() === 'y')))\n ? editModeChecked\n : editModeunCkecked\n \" (blur)=\"onFocusOutEvent(column, row)\"></p-checkbox>\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ row[column.field] }}\n </ng-template>\n </p-cellEditor>\n </td>\n </span>\n\n <!-- link column on Grid -->\n <span *ngSwitchCase=\"'link'\">\n <!-- link column for HyperLink Case -->\n <span *ngIf=\"column.allowSave === false\">\n <span *ngIf=\"column.target !== '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\" class=\"custom-link\"\n [class]=\"allowDisabled(column,row) ? 'disabled-link' : ''\">\n\n <a [href]=\"column.disabled?'':row[column.field + '_obj']?.hyperlink\" target=\"_blank\">\n <i *ngIf=\"column.icon &&!row[column.field+'_obj']?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field+'_obj']?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n \n </span>\n <span *ngIf=\"column.target === '_self'\" (click)=\"onClickEvent(column, row)\"\n [title]=\"setConditionBaseValue(row, column)\"class=\"custom-link\"\n [class]=\" allowDisabled(column,row) ? 'disabled-link' : ''\">\n\n <a [href]=\"column.disabled?'':row[column.field + '_obj']?.hyperlink\" [target]='column.target'>\n <i *ngIf=\"column.icon &&!row[column.field+'_obj']?.action?.hideFieldValue; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field+'_obj']?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n\n </span>\n </span>\n <!-- link column for Edit Case -->\n <span *ngIf=\"column.allowSave || column.allowSave === undefined\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"(column.editable === true || column.editable === undefined) && (column.editLink === true || column.editLink === undefined)\">\n <input *ngIf=\"!row.isNew\" pInputText (click)=\"onClickEvent(column, row)\" type=\"text\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field+'_obj']) === 'object' && row[column.field+'_obj']?.action ? row[column.field+'_obj']?.action?.hideFieldValue?'':row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field+'_obj']?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n <input pInputText *ngIf=\"row.isNew\" type=\"text\" (click)=\"onClickEvent(column, row)\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [(ngModel)]=\"typeOf(row[column.field+'_obj']) === 'object' ? row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field+'_obj']?.text : row[column.field]\" (blur)=\"onFocusOutEvent(column, row)\"\n (change)=\"onChangeEvent(column, row)\" />\n </span>\n <span *ngIf=\"column.editable === false\" >\n <a class=\"custom-link\" (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" [target]='column.target'\n [class]=\"allowDisabled(column,row) ? 'disabled-link' : ''\">\n <i *ngIf=\"column.icon && !row[column.field+'_obj']?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field+'_obj']?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n \n </a>\n </span>\n <span *ngIf=\"column.editLink === false\">\n <a (click)=\"onClickEvent(column, row)\" [href]=\"row[column.field + '_obj']?.hyperlink\" target=\"_blank\"\n [class]=\"column.editable === false ? '' : allowDisabled(column,row) ? 'disabled-link' : ''\">\n <i *ngIf=\"column.icon && !row[column.field+'_obj']?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field+'_obj']?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n \n </a>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span class=\"custom-link\" [class]=\"column.editable === false || allowDisabled(column,row) ? 'disabled-link' : ''\">\n <a (click)=\"onClickEvent(column, row)\" [href]=\"column.disabled?'':row[column.field + '_obj']?.hyperlink\" [target]=\"column.target\"\n >\n <i *ngIf=\"column.icon&& !row[column.field+'_obj']?.action?.hideFieldValue; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field+'_obj']?.action?.hideFieldValue?'':\n setConditionBaseValue(row, column)\n }}\n </ng-template>\n </a>\n\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n\n <!-- Iframe column on Grid -->\n <span *ngSwitchCase=\"'iframe'\">\n <span class=\"custom-link\" (click)=\"gridIFrame(column, row[column.field + '_obj']?.hyperlink, row)\" [title]=\"\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText\n ? column.displayText\n : row[column.field]\n\n \"\n > \n <i *ngIf=\"column.icon; else noIcon\"[class]=\"column.icon\"></i>\n <ng-template #noIcon>\n {{\n row[column.field + '_obj'] &&\n (row[column.field + '_obj'].displayText === null || row[column.field + '_obj'].displayText === '')\n ? row[column.field] : row[column.field + '_obj']?.displayText\n ? row[column.field + '_obj'].displayText\n : column.displayText ? column.displayText : row[column.field]\n }}\n </ng-template>\n </span>\n </span>\n\n <!-- dialog column on Grid -->\n <span *ngSwitchCase=\"'dialog'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <span\n *ngIf=\"row[column.field + '_secondType'] !== 'date' && !row.hidegridbtn\" \n [title]=\"setConditionBaseValue(row, column) \"\n >\n <span *ngIf=\"column.editable === true && !row[column.field+'_obj']?.action?.hideFieldValue\">\n <input\n readonly\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n type=\"text\"\n pInputText\n (click)=\"selectLookupField(column, row)\"\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField ?\n row[row[column.field+'_obj']?.action?.displayField?.toLowerCase()] : \n row[column.field]\"\n [name]=\"row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\"\n />\n </span>\n <span\n *ngIf=\"column.editable === false || column.editable === undefined\n \" class=\"custom-link\"\n [class]=\"\n allowDisabled(column,row) ? 'disabled-link' : ''\n \" (click)=\"openGridDialog(column, row)\">\n\n <i *ngIf=\"column.icon && !row[column.field+'_obj']?.action?.hideFieldValue ; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{ (!column.displayText && row.isNew ) || row[column.field+'_obj']?.action?.hideFieldValue ? '' : setConditionBaseValue(row, column)\n }}</ng-template>\n\n\n </span>\n </span>\n\n <span *ngIf=\"row[column.field + '_secondType'] === 'date'\" [title]=\"\n row[column.field]\n | date: (column.format ? column.format : 'MM/dd/YY')\n \">\n <p-calendar [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [showTime]=\"column.showTime\" (click)=\"onClickEvent(column, row)\"\n [timeOnly]=\"column.timeOnly\"\n [(ngModel)]=\"typeOf(row[column.field+'_obj']) === 'object' ? row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field+'_obj']?.text : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"></p-calendar>\n </span>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span class=\"custom-link\"\n [class]=\"row.disabled || column.editable === false || allowDisabled(column,row) ? 'disabled-link' : ''\"\n (click)=\"openGridDialog(column, row)\" *ngIf=\"!row[column.field + '_secondType'] && !row.hidegridbtn\"\n [title]=\"setConditionBaseValue(row, column)\">\n <i *ngIf=\"column.icon && !row[column.field+'_obj']?.action?.hideFieldValue ; else noIcon\" [class]=\"column.icon\"></i>\n <ng-template #noIcon>{{row[column.field+'_obj']?.action?.hideFieldValue?'': setConditionBaseValue(row, column) }}</ng-template>\n\n <!-- {{ setConditionBaseValue(row, column) }} -->\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- lookup Input column on Grid -->\n <span *ngSwitchCase=\"'lookup_input'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"close-icon-wrapper\">\n <input readonly type=\"text\" pInputText\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField ?\n row[row[column.field+'_obj']?.action?.displayField?.toLowerCase()] : column.displayField ? typeOf(row[column.displayField]) === 'object' ?\n row[column.displayField].text : row[column.displayField] :\n typeOf(row[column.field+'_obj']) === 'object' && row[column.field+'_obj']?.text.text ? row[column.field+'_obj']?.text.text : row[column.field]\"\n (keyup.tab)=\"selectLookupField(column, row)\" [disabled]=\"allowDisabled(column,row)\"\n (click)=\"selectLookupField(column, row)\" [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\" (blur)=\"onFocusOutEvent(column, row)\" />\n <div *ngIf=\"!allowDisabled(column,row)\"><button *ngIf=\"row[column.field] && typeOf(row[column.field]) === 'object'\n ? row[column.field].text\n : row[column.field] && !column.disabled\" icon=\"pi pi-times\" pButton type=\"button\"\n (click)=\"lookupClearValue(column,row)\"></button></div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"column.linkId\">\n <a [href]=\"row[column.field + '_obj']?.hyperlink\" [target]=\"column.target === '_self' ? '' : '_blank'\">\n {{\n setLookupReadOnlyValue(row, column)\n }}\n </a>\n </span>\n <span *ngIf=\"!column.linkId\" [class]=\"column.component && column.editLink === true ? 'custom-link' : ''\"\n (click)=\"openLookupHyperlink(column, row)\">\n {{\n setLookupReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Numeric Input column on Grid -->\n <span *ngSwitchCase=\"'numeric'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <!-- for Currency && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" [class]=\"\n column.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [showButtons]=\"!column.format ? true : false\"\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField ?\n row[row[column.field+'_obj']?.action?.displayField?.toLowerCase()] : row[column.field]\" [name]=\"column.field\"\n [disabled]=\"allowDisabled(column,row)\" (ngModelChange)=\"onChangeEvent(column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" [mode]=\"\n column.format &&\n column.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.currency\n ? column.format.formatParams.currency\n : 'USD'\n \" [locale]=\"\n column.format &&\n column.format.type === 'currency' &&\n column.format.formatParams &&\n column.format.formatParams.locale\n ? column.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\"\n [maxFractionDigits]=\"column.format ? setNumericMinMxFraction(column) : '0'\" [suffix]=\"\n column.format &&\n column.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"setNumericFormat(column, row)\">\n {{\n setNumericFormat(column, row)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- Button column on Grid -->\n <span>\n <div *ngSwitchCase=\"'add_button'\">\n <button *ngIf=\"!row.hidegridbtn\" pButton type=\"button\"\n [icon]=\"row[column.field+'_obj']?.action?.icon ? row[column.field+'_obj']?.action?.icon : column.icon\"\n [name]=\"column.header\" class=\"merge-btn\" [disabled]=\"allowDisabled(column,row)\"\n [label]=\"row[column.field+'_obj']?.action?.displayText ? row[column.field+'_obj']?.action?.displayText : column.value\"\n class=\"grid-component-grid-add-btn\" (click)=\"onClickButton(column, row)\"></button>\n </div>\n </span>\n\n <!-- Date column on Grid -->\n <span *ngSwitchCase=\"'date'\" [title]=\"setConditionBaseValue(row,column)\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-calendar\n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty ' + column.field + row[dataKey] : column.field + row[dataKey]\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (onClose)=\"onFocusOutEvent(column, row)\"\n [appendTo]=\"'body'\" hourFormat=\"12\" [defaultDate]=\"defaultDate\"\n [stepMinute]=\"column.minutesInterval ? column.minutesInterval : 1\" [showTime]=\"column.showTime\"\n [timeOnly]=\"column.timeOnly\" [dateFormat]=\"column.format ? column.format.type : calendarFormat\"\n (keyup)=\"calenderInputValue(column, row)\" (onShow)=\"onClickEvent(column, row)\"\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [showButtonBar]=\"!column.timeOnly\"></p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n </ng-template>\n <ng-template pTemplate=\"output\">\n {{ setConditionBaseValue(row,column) }}\n </ng-template>\n </p-cellEditor>\n </span>\n <span *ngSwitchDefault>\n <span [ngSwitch]=\"column.type\">\n <!-- Dropdown column on Grid -->\n <span *ngSwitchCase=\"'dropdown'\" [class]=\"dropdownInput ? '' : 'output-dropdown'\" [title]=\"\n setDropdwonReadOnlyValue(row, column)\n \">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-dropdown *ngIf=\"!row[column.field+'_obj']?.action?.hidden\" [options]=\"\n row[column.field+'_data']\n ? row[column.field+'_data']\n : column.data\n \"\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\" [placeholder]=\"row[column.displayField]\n ? row[column.displayField]\n : row[column.field] ? row[column.field] : 'Select'\" [showClear]=\"row[column.field] ? true : false\"\n [optionLabel]=\"column.optionLabel\" (click)=\"onClickEvent(column, row)\"\n [optionValue]=\"column.optionValue\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" (blur)=\"onFocusOutEvent(column, row)\"\n (onChange)=\"onChangeEvent(column, row)\" [filter]=\"column.allowSearch\"></p-dropdown>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"!row[column.field+'_obj']?.action?.hidden\">\n {{\n setDropdwonReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- MultiSelect column on Grid -->\n <span *ngSwitchCase=\"'multi-select'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-multiSelect [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" type=\"text\"\n [(ngModel)]=\"typeOf(row[column.field+'_obj']) === 'object' && row[column.field+'_obj']?.action ? row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] : row[column.field+'_obj']?.text : row[column.field]\" [disabled]=\"allowDisabled(column,row)\"\n [options]=\"column.data\" [optionLabel]=\"column.optionLabel\" [optionValue]=\"column.optionValue\"\n (onChange)=\"onChangeEvent(column, row)\" (onPanelShow)=\"showOption(column, row)\"\n (click)=\"onClickEvent(column, row)\" [appendTo]=\"'body'\" (blur)=\"onFocusOutEvent(column, row)\">\n </p-multiSelect>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span [title]=\"\n row[column.displayField]\n ? row[column.displayField]\n : setMultiSelectData(column, row[column.field])\n \">\n {{\n row[column.displayField]\n ? row[column.displayField] :\n setMultiSelectData(column, row[column.field])\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngSwitchCase=\"'AutoComplete'\">\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <p-autoComplete \n [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\" \n [name]=\"column.header\"\n [suggestions]=\"column.data\" \n (onSelect)=\"autoCompleteSelectedValue(row, column, $event)\"\n [field]=\"column.optionLabel ? column.optionLabel?.toLowerCase() : column.displayField ? column.displayField?.toLowerCase() : column.field?.toLowerCase()\"\n [(ngModel)]=\"row[column.field+'_obj']?.action && row[column.field+'_obj']?.action?.displayField?.toLowerCase() ?\n row[row[column.field+'_obj']?.action?.displayField.toLowerCase()] :\n typeOf(row[column.field]) === 'object' && row[column.field]?.text ?\n row[column.field]?.text :\n row[column.field]\"\n [dropdown]=\"column.showOption\" \n (ngModelChange)=\"onChangeEvent(column, row)\"\n (click)=\"onClickEvent(column, row)\" \n (completeMethod)=\"autoSearch($event, column, row)\"\n (onBlur)=\"onFocusOutEvent(column, row)\" \n [disabled]=\"allowDisabled(column,row)\" \n [multiple]=\"true\"\n (keydown.enter)=\"onAutoCompleteFocusOut($event, column, row)\">\n </p-autoComplete>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.displayField]\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.displayField] : value[column.displayField] + ';' : value[column.displayField] }}\n </span>\n </span>\n <span *ngIf=\"row[column.field] && row[column.field][0] && row[column.field][0][column.field] && !column.displayField\">\n <span *ngFor=\"let value of row[column.field]; let i = index\">\n {{ row[column.field] && row[column.field].length > 1 ? row[column.field].length -1 === i ?\n value[column.field] : value[column.field] + ';' : value[column.field] }}\n </span>\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngSwitchCase=\"'report'\">\n <p-cellEditor>\n <ng-template pTemplate=\"output\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n <ng-template pTemplate=\"input\">\n <se-generate-report-btn [repId]=\"column.reportId\" [label]=\"column.label\" [params]=\"column.params\"\n [showDialog]=\"column.showDialog\"></se-generate-report-btn>\n </ng-template>\n </p-cellEditor>\n </span>\n\n <span *ngSwitchDefault>\n <!-- Input column on Grid -->\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <input pInputText type=\"text\" [class]=\"column.errorMessage ? 'ng-invalid ng-dirty' : ''\"\n [id]=\"allowDisabled(column,row) ? 'hide-border' : ''\"\n [(ngModel)]=\"row.undefined ? '' : allowDisabled(column,row) && row[column.displayField] ? row[column.displayField] : row[column.field]\"\n [disabled]=\"allowDisabled(column,row)\"\n (blur)=\"onFocusOutEvent(column, row)\" (change)=\"onChangeEvent(column, row)\"\n (click)=\"onClickButton(column, row)\" *ngIf=\"column.field !== dataKey; else locked_field\" />\n <ng-template #locked_field><span *ngIf=\"!row.isNew\" [title]=\"row[column.field]\">\n {{ row[column.field] }}\n </span></ng-template>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <span (click)=\"onClickEvent(column, row)\" [title]=\"\n setTextBoxReadOnlyValue(row, column)\n \">\n {{\n setTextBoxReadOnlyValue(row, column)\n }}\n </span>\n </ng-template>\n </p-cellEditor>\n </span>\n </span>\n </span>\n </td>\n <!-- Grid Rows Data Bindings End -->\n\n <!-- Action column on Grid -->\n <td *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && columnActions.length > 0\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\">\n <span class=\"action-btn\" *ngFor=\"let action of columnActions\">\n <i [title]=\"action.tooltip\" [class]=\"action.icon\" (click)=\"handleActionClick($event, action, row)\"></i>\n </span>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\">\n <span class='setActionColumnWidth'>\n <se-grid-row-actions [editing]=\"editing\" [editRowPermission]=\"editRowPermission\"\n [deleteRowPermission]=\"deleteRowPermission\" [hideDeleteBtn]=\"hideDeleteBtn\" [hideEditBtn]=\"hideEditBtn\"\n [row]=\"row\" (onRowEditInitBtn)=\"onRowEditInit($event)\" (deleteRecordBtn)=\"deleteRecord($event)\"\n (onRowEditSaveBtn)=\"onRowEditSave($event)\" (onRowEditCancelBtn)=\"onRowEditCancel($event, ri)\"\n [editAllRows]=\"editAllRows\">\n </se-grid-row-actions>\n </span>\n </td>\n </tr>\n </ng-template>\n\n <!-- Footer columns on Grid -->\n <ng-template pTemplate=\"footer\">\n <tr *ngIf=\"aggregateFooter\">\n <td\n *ngIf=\"setActionColumnAsFirst && (columnActions.length > 0 || (useInlineCRUD && (deleteRowPermission || editRowPermission)))\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngIf=\"allowSelection\" [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"></td>\n <td *ngFor=\"let outerColumn of selectedColumns\" class=\"grid-component-outer-column\">\n <div *ngFor=\"let innerColumn of selectedColumns\">\n <div *ngFor=\"let aggr of innerColumn?.aggregate\">\n <div\n *ngIf=\"aggr.aggrValue?.length && ((!aggr.displayField && innerColumn.field?.toLowerCase() === outerColumn.field?.toLowerCase()) || aggr.displayField && aggr.displayField?.toLowerCase() === outerColumn.field?.toLowerCase())\">\n <div [innerHTML]=\"aggr.aggrValue\">\n </div>\n </div>\n </div>\n </div>\n </td>\n <td\n *ngIf=\"!setActionColumnAsFirst && columns?.length > 0 && useInlineCRUD && (deleteRowPermission || editRowPermission)\"\n [class]=\"inEditMode ? 'three-action-btn' : 'two-action-btn'\"\n [ngClass]=\"disabledSaveBtn ? 'hide-clear-filter-button' : ''\"></td>\n </tr>\n </ng-template>\n\n <!-- Footer for Empty Message columns on Grid -->\n <ng-template pTemplate=\"emptymessage\">\n <tr class=\"grid-component no-records-found\">\n <td [attr.colspan]=\"selectedColumns?.length + 1\">No records found.</td>\n </tr>\n </ng-template>\n</p-table>\n</div>",
6296
+ styles: [":host ::ng-deep .p-calendar .p-inputtext{width:100%}:host ::ng-deep .p-column-filter-clear-button{display:none}:host ::ng-deep .hide-table-filter .pi-filter:before{display:none}:host ::ng-deep .hide-filter-icon .p-column-filter-menu-button{display:none}.disabled-link,.disabled-link a,.disabled-link label,.disabled-link span,.disabled-link div,.disable-label-control,.disabled-link.custom-link,.disabled-link.custom-link a,.disabled-link.custom-link label,.disabled-link.custom-link span,.disabled-link.custom-link div,.disable-label-control.custom-link{pointer-events:none;color:#83baf8}.custom-link{color:#205dcf;font-size:12px}.custom-link:not(.disabled-link){cursor:pointer}.mr-2{margin-right:10px;display:block}.highlighted-row{background-color:#dee2e6!important}.hide-clear-filter-button{display:none!important}\n"]
6306
6297
  },] }
6307
6298
  ];
6308
6299
  /** @nocollapse */
@@ -8024,8 +8015,8 @@
8024
8015
  FormComponent.decorators = [
8025
8016
  { type: i0.Component, args: [{
8026
8017
  selector: 'se-form',
8027
- template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\"></p-confirmDialog>\n<form *ngIf=\"!isFormHidden && form\">\n <div *ngIf=\"loading\">\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\n </div>\n <div class=\"p-flex-wrap\">\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\n <span (click)=\"clickedSection(formSection)\">\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\n <div [class]=\"formSection.hidden ? 'hidden' : formSection.class\">\n <p-accordion>\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\n [disabled]=\"formSection.accordionDisabled\"\n [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\n <p-header>\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\n }}</span>\n </p-header>\n\n <div class=\"p-d-flex p-ai-center p-col form-component accordion-header-wrapper\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"accordionHeaderName p-d-flex p-ai-center\">\n <i [class]=\"formSection.icon\" class=\"\"></i>\n <div> {{ formSection.name }} </div>\n </label>\n\n <div *ngFor=\"let link of formSection.links\" >\n <label class=\"p-mr-3 custom-link\" [class]=\"link.name &&!formSection.disabled&&!link.disabled ? 'custom-link' : 'disabled-link'\" (click)=\"onLinkClick(link, formSection)\">\n {{ link.name }}\n </label>\n </div>\n </div>\n\n <div class=\"p-d-flex p-flex-wrap form-component form-body-wrapper\">\n <div [class]=\"formField.column\n ? 'p-col-' + formField.column + setClassName(formField)\n : form.column\n ? 'p-col-' + form.column + setClassName(formField)\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\n [ngClass]=\"formField.control === 'break_line' ? 'break-line' : ''\"\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\">\n <!-- labelControl Hyperlink on Lookup Control Field-->\n <div *ngIf=\"formField.label?.labelControl\">\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\n [class]=\"formField.disabledText ? 'disable-label-control' : '' \"\n [href]=\"formField.label.labelControl?.hyperlink?.link\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadLabelControlIFrame(formField)\" \n [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\">\n <a tabindex=\"-1\" [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\n (click)=\"selectLookupLabel(formField)\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n <div [ngSwitch]=\"formField.control\">\n\n <!-- Spacer Control -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.SPACER\">\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\n </div>\n </span>\n\n <!-- Input TextArea -->\n <span *ngIf=\"!formField.hidden\">\n\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <textarea [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" pInputTextarea [rows]=\"formField.row ? formField.row : 1 \"\n (change)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n [(ngModel)]=\"formField.value\" [name]=\"formField.field\" [disabled]=\"formField.disabled\"\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\n (blur)=\"onFocusOutEvent(formField)\"></textarea>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.INPUT\">\n <span [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n <span *ngIf=\"formField.isPassword\">&nbsp;\n <i *ngIf=\"formField.textType=='password';else hideButton\" class=\"pi pi-eye\"\n (click)=\"changePasswordType(formField)\"></i>\n <ng-template #hideButton>\n <i class=\"pi pi-eye-slash\" (click)=\"changePasswordType(formField)\"></i>\n </ng-template>\n </span>\n </label>\n </span>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\" [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\n [type]=\"formField.textType ? formField.textType : 'text'\" pInputText [(ngModel)]=\"\n formField.value &&\n typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\n \" (change)=\"onChangeEvent(formField)\"\n [name]=\"formField.field ? formField.field : formField.label\"\n (click)=\"handleClickEvent(formField)\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label [class]=\"\n formField.label.onClick ? 'custom-link' : ''\n \" (click)=\"\n formField.label.onClick &&\n formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <!-- for Currency && number && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [name]=\"formField.field\"\n (ngModelChange)=\"onChangeEvent(formField)\" (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\" [mode]=\"\n formField.format &&\n formField.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.currency\n ? formField.format.formatParams.currency\n : 'USD'\n \" [locale]=\"formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.locale\n ? formField.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"\n formField.format &&\n formField.format.formatParams &&\n formField.format.formatParams.digitsInfo\n ? formField.format.formatParams.digitsInfo\n : formField.format &&\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\n ? '2'\n : '0'\n \" [suffix]=\"\n formField.format &&\n formField.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Password Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" type=\"password\" (click)=\"handleClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\" pInputText [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Checkbox -->\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">{{\n formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-checkbox class=\"p-d-flex p-ai-center\" [binary]=\"true\" [name]=\"formField.field\"\n (click)=\"onClickEvent(formField)\" (change)=\"onChangeEvent(formField)\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (onChange)=\"onFocusOutEvent(formField)\">\n </p-checkbox>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <p-calendar [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty ' + formField.field\n : 'form-control '+ formField.field\n \" [showButtonBar]=\"!formField.timeOnly\" [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" [disabled]=\"formField.disabled\" hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute]=\"formField.minutesInterval ? formField.minutesInterval : 1\"\n [showTime]=\"formField.showTime\" (onShow)=\"setCalenderDate(formField)\"\n [timeOnly]=\"formField.timeOnly\" [view]=\"formField.monthOnly ? 'month' : 'date' \"\n (click)=\"handleClickEvent(formField)\"\n [dateFormat]=\"formField?.format?.type ? formField.format?.type : calendarFormat\"\n (ngModelChange)=\"calendarChangeValue(formField)\" (onInput)=\"calenderInputValue(formField)\"\n (onClose)=\"onFocusOutEvent(formField)\">\n </p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Dropdown -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\" class=\"required-star\">*</span>\n </label>\n <p-dropdown [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" autocomplete=\"off\" [styleClass]='formField.field' [placeholder]=\"formField.value\"\n [options]=\"formField.data\" [filter]=\"formField.allowSearch\" [(ngModel)]=\"formField.value\"\n [optionLabel]=\"formField.optionLabel\" [optionValue]=\"formField.optionValue\"\n [name]=\"formField.field\" (keyup.Tab)=\"tabFocusEvent(formField)\"\n (click)=\"clearDropdownValue(formField)\" [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\" [showClear]=\"formField.value ? true : false\"\n (onChange)=\"onClearValue(formField, $event)\"\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\">\n </p-dropdown>\n <span *ngIf=\"\n !formField?.isValid &&\n !formField.hidden\n \" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <span class=\"p-fluid\">\n <p-autoComplete [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [suggestions]=\"formField.data\" [(ngModel)]=\"formField.value\"\n (onChange)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n (completeMethod)=\"autoSearch($event, formField)\" [dropdown]=\"formField.showOption\"\n [field]=\"formField.displayField\" [name]=\"formField.label\" [multiple]=\"true\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\">\n </p-autoComplete>\n </span>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-multiSelect [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [options]=\"formField.data\" optionLabel=\"label\"\n optionValue=\"value\" [appendTo]=\"'body'\" [name]=\"formField.field\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"formField.onClick ? formField.onClick() : ''\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\">\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Hyperlink-->\n <span *ngIf=\"!formField.hidden\">\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" [title]=\"formField.label\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.component\n \" (click)=\"hyperlinkDialog(formField)\">\n {{ formField.label }}\n </div>\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target !== '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" [href]=\"sanitizeUrl(formField.hyperlink?.link)\" \n [target]=\"formField.hyperlink?.target\" (click)=\"handleClickEvent(formField)\"\n [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target === '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n </span>\n\n <!-- Lookup Control Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\n <span [class]=\"formField.disabled ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"formField.label.onClick && formField.label.onClick()\n \" [title]=\"typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n\n <span class=\"p-input-icon-right\">\n <i class=\"pi pi-chevron-right lookup-input-icon\"></i>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" \n class=\"form-component lookup-input\"\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\" autocomplete=\"off\" [id]=\"formField.field\" [name]=\"formField.field\"\n (click)=\"selectLookupField(formField)\" [disabled]=\"formField.disabled\"\n (keyup.Tab)=\"selectLookupField(formField)\" readonly\n (keydown)=\"$event.preventDefault()\" />\n </span>\n <div>\n <button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton\n class=\"lookup-clear-icon-button\"\n type=\"button\" (click)=\"lookupClearValue(formField)\"></button>\n \n </div>\n </div>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- File Upload Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <se-file-upload [allowMultiple]=\"formField.selectMultipleFiles\"\n [acceptFileTypes]=\"formField.SetfileTypes\" [fields]=\"formField\"\n (fileUrl)=\"setFileUrls($event)\"\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"></se-file-upload>\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Display Card field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CARD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n\n <se-card [card]=\"formField.card\" [setCardData]=\"setCardData\"\n (selectedCard)=\"selectedCardClickEvent($event)\"></se-card>\n\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Note Detail Field -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\n <div [class]=\"formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \">\n <span class=\"pl-2\" (click)=\"\n !formField.disabled\n ? handleNoteFieldDialog(formField)\n : ''\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">{{formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label}}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </span>\n </div>\n </div>\n </span>\n\n <!-- Dynamic Component Container-->\n <span [class]=\"formField.hidden ? 'hidden' : ''\">\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\" #dynamicComponentContainer\n *ngSwitchCase=\"dynamicCase.COMPONENT\"></div>\n </span>\n\n <!-- Header component-->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\n <label [class]=\"formField.class\">\n <b> {{ formField.label }} </b>\n </label>\n </div>\n </span>\n\n <!-- Add OnClick Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\n <button pButton type=\"button\" [icon]=\"formField.icon\" [label]=\"formField.label\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\n (click)=\"onClickEvent(formField)\"></button>\n </div>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.REPORT\">\n <se-generate-report-btn [repId]=\"formField.reportId\" [label]=\"formField.label\"\n [params]=\"formField.params\" [showDialog]=\"formField.showDialog\" [form]=\"form\"></se-generate-report-btn>\n </div>\n </span>\n\n\n <!-- Add Input Switch -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\n <div>\n <label [title]=\"formField.label\">\n {{ formField.label }}\n </label>\n </div>\n <p-inputSwitch [name]=\"formField.label ? formField.label: 'switch'\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (click)=\"onClickEvent(formField)\"></p-inputSwitch>\n </div>\n </span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </span>\n </div>\n </span>\n\n <!-- save and close buttons -->\n <div class=\"p-col-12 p-d-flex p-jc-end\" [ngClass]=\"{ sticky: stickyActions }\">\n <div class=\"inner-sticky form-component actions-buttons-wrapper-div\">\n <!-- save button -->\n <button *ngIf=\"!hideSaveButton\" [disabled]=\"isFormDisabled\" pButton type=\"button\" icon=\"pi pi-check\"\n label=\"Save\" class=\"p-button-success\" (click)=\"onSaveForm()\"></button>\n <!-- close button -->\n <button *ngIf=\"!hideCancelButton\" [disabled]=\"isFormDisabled\" (click)=\"onCancelForm()\" pButton type=\"button\"\n icon=\"pi pi-times\" label=\"Cancel\" class=\"p-button-danger p-ml-3\"></button> \n <!-- dynamic buttons -->\n <ng-container *ngFor=\"let button of formButtons\">\n <button *ngIf=\"!button.hidden\" pButton type=\"button\" [label]=\"button.label\" [icon]=\"button.icon ? button.icon : ''\"\n class=\"p-button-success p-ml-3\" (click)=\"onNewButtonClick(button)\" [disabled]=\"button.disabled?button.disabled:false\">\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</form>",
8028
- styles: [".custom-link{color:#4e87f1;text-decoration:none}.custom-link:not(.disabled-link){cursor:pointer}.break-line{width:100%}:host ::ng-deep .hide-accordian .p-accordion-header{display:none}:host ::ng-deep .hide-today-btn{visibility:hidden}.error{color:red}.hidden{display:none!important}.disabled-link label{opacity:.9}.disabled-link a,.disabled-link span,.disabled-link div{opacity:.5}.disabled-link{opacity:.5}.disable-label-control{pointer-events:none;opacity:.5}.progress-spinner{z-index:999}.progress-spinner:before{content:\"\"}\n"]
8018
+ template: "<p-confirmDialog [style]=\"{ width: '50vw' }\" key=\"cancelButton\"></p-confirmDialog>\n<form *ngIf=\"!isFormHidden && form\">\n <div *ngIf=\"loading\">\n <p-progressSpinner class=\"progress-spinner p-progress-spinner-circle custom-spinner\"></p-progressSpinner>\n </div>\n <div class=\"p-flex-wrap\">\n <span [ngClass]=\"{ 'fixed-height': stickyActions }\">\n <div *ngFor=\"let formSection of form.formSections\" [class]=\"!formSection.hidden ? 'card w-100' : ''\">\n <span (click)=\"clickedSection(formSection)\">\n <div *ngIf=\"!formSection ? '' : sectionDisabled(formSection)\">\n <div [class]=\"formSection.hidden ? 'hidden' : formSection.class\">\n <p-accordion>\n <p-accordionTab [selected]=\"formSection.expanded === false ? false : true\"\n [disabled]=\"formSection.accordionDisabled\"\n [ngClass]=\"!formSection.showAccordion ? 'hide-accordian' : ''\">\n <p-header>\n <i [class]=\"formSection.icon\" class=\"p-mr-1 p-pl-2\"></i><span class=\"p-pl-4\">{{ formSection.name\n }}</span>\n </p-header>\n\n <div class=\"p-d-flex p-ai-center p-col form-component accordion-header-wrapper\">\n <label *ngIf=\"!formSection.showAccordion\" for=\"name\" class=\"accordionHeaderName p-d-flex p-ai-center\">\n <i [class]=\"formSection.icon\" class=\"\"></i>\n <div> {{ formSection.name }} </div>\n </label>\n\n <div *ngFor=\"let link of formSection.links\" >\n <label class=\"p-mr-3 custom-link\" [class]=\"link.name &&!formSection.disabled&&!link.disabled ? 'custom-link' : 'disabled-link'\" (click)=\"onLinkClick(link, formSection)\">\n {{ link.name }}\n </label>\n </div>\n </div>\n\n <div class=\"p-d-flex p-flex-wrap form-component form-body-wrapper\">\n <div [class]=\"formField.column\n ? 'p-col-' + formField.column + setClassName(formField)\n : form.column\n ? 'p-col-' + form.column + setClassName(formField)\n : 'p-col-12 p-md-3 p-d-flex p-flex-column' + setClassName(formField)\"\n [ngClass]=\"formField.control === 'break_line' ? 'break-line' : ''\"\n *ngFor=\"let formField of formSection.fields; let formFieldIndex = index\">\n <!-- labelControl Hyperlink on Lookup Control Field-->\n <div *ngIf=\"formField.label?.labelControl\">\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target !== '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"formField.onClick ? onClickEvent(formField) : '' \"\n [target]=\"formField.label.labelControl?.hyperlink?.target\"\n [class]=\"formField.disabledText ? 'disable-label-control' : '' \"\n [href]=\"formField.label.labelControl?.hyperlink?.link\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label?.labelControl.hyperlink && formField.label?.labelControl.hyperlink.target === '_iframe'\">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadLabelControlIFrame(formField)\" \n [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <!-- labelControl on addTextbox -->\n <div class=\"link-label custom-link\"\n *ngIf=\"formField.label && formField.label.labelControl && formField.label.labelControl.lookupControl\">\n <a tabindex=\"-1\" [class]=\"formField.label.disabled ? 'disable-label-control' : 'pl-2'\"\n (click)=\"selectLookupLabel(formField)\" [title]=\"formField.label.name\">\n {{ formField.label.name }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n <div [ngSwitch]=\"formField.control\">\n\n <!-- Spacer Control -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.SPACER\">\n <span [class]=\"formField.column? 'p-col-' +formField.column : ''\"></span>\n </div>\n </span>\n\n <!-- Input TextArea -->\n <span *ngIf=\"!formField.hidden\">\n\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.TEXTAREA\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <textarea [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" pInputTextarea [rows]=\"formField.row ? formField.row : 1 \"\n (change)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n [(ngModel)]=\"formField.value\" [name]=\"formField.field\" [disabled]=\"formField.disabled\"\n [ngStyle]=\"{height: formField.height ? formField.height : ''}\"\n (blur)=\"onFocusOutEvent(formField)\"></textarea>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.INPUT\">\n <span [class]=\"formField.disabled && !formField.showBottomBorder ? 'disabled-link' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n formField.label && typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n <span *ngIf=\"formField.isPassword\">&nbsp;\n <i *ngIf=\"formField.textType=='password';else hideButton\" class=\"pi pi-eye\"\n (click)=\"changePasswordType(formField)\"></i>\n <ng-template #hideButton>\n <i class=\"pi pi-eye-slash\" (click)=\"changePasswordType(formField)\"></i>\n </ng-template>\n </span>\n </label>\n </span>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\" [id]=\"formField.showBottomBorder ? 'remove-boder' : ''\"\n [type]=\"formField.textType ? formField.textType : 'text'\" pInputText [(ngModel)]=\"\n formField.value &&\n typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\n \" (change)=\"onChangeEvent(formField)\"\n [name]=\"formField.field ? formField.field : formField.label\"\n (click)=\"handleClickEvent(formField)\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label [class]=\"\n formField.label.onClick ? 'custom-link' : ''\n \" (click)=\"\n formField.label.onClick &&\n formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <!-- for Currency && number && Decimal && Percent -->\n <span class=\"input-number\">\n <p-inputNumber [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [name]=\"formField.field\"\n (ngModelChange)=\"onChangeEvent(formField)\" (click)=\"selectLookupField(formField)\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\" [mode]=\"\n formField.format &&\n formField.format.type === 'currency'\n ? 'currency'\n : 'decimal'\n \" [currency]=\"\n formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.currency\n ? formField.format.formatParams.currency\n : 'USD'\n \" [locale]=\"formField.format &&\n formField.format.type === 'currency' &&\n formField.format.formatParams &&\n formField.format.formatParams.locale\n ? formField.format.formatParams.locale\n : 'en-US'\n \" [minFractionDigits]=\"\n formField.format &&\n formField.format.formatParams &&\n formField.format.formatParams.digitsInfo\n ? formField.format.formatParams.digitsInfo\n : formField.format &&\n (formField.format.type === 'decimal' || formField.format.type === 'currency')\n ? '2'\n : '0'\n \" [suffix]=\"\n formField.format &&\n formField.format.type === 'percent' && \n '%'\n \n \">\n </p-inputNumber>\n </span>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Password Input -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.PASSWORD\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" type=\"password\" (click)=\"handleClickEvent(formField)\"\n (change)=\"onChangeEvent(formField)\" pInputText [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" (blur)=\"onFocusOutEvent(formField)\" />\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n <span *ngIf=\"formField.required\"> * </span>\n </div>\n </span>\n\n <!-- Checkbox -->\n <span [class]=\"formField.class\" *ngIf=\"!formField.hidden\">\n <div class=\"p-0 p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">{{\n formField.label &&\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-checkbox class=\"p-d-flex p-ai-center\" [binary]=\"true\" [name]=\"formField.field\"\n (click)=\"onClickEvent(formField)\" (change)=\"onChangeEvent(formField)\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (onChange)=\"onFocusOutEvent(formField)\">\n </p-checkbox>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <span [class]=\"formField.disabled ? 'disabled-calendar-header-span' : ''\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <p-calendar [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty ' + formField.field\n : 'form-control '+ formField.field\n \" [showButtonBar]=\"!formField.timeOnly\" [(ngModel)]=\"formField.value\"\n [name]=\"formField.field\" [disabled]=\"formField.disabled\" hourFormat=\"12\"\n [defaultDate]=\"defaultDate\"\n [stepMinute]=\"formField.minutesInterval ? formField.minutesInterval : 1\"\n [showTime]=\"formField.showTime\" (onShow)=\"setCalenderDate(formField)\"\n [timeOnly]=\"formField.timeOnly\" [view]=\"formField.monthOnly ? 'month' : 'date' \"\n (click)=\"handleClickEvent(formField)\"\n [dateFormat]=\"formField?.format?.type ? formField.format?.type : calendarFormat\"\n (ngModelChange)=\"calendarChangeValue(formField)\" (onInput)=\"calenderInputValue(formField)\"\n (onClose)=\"onFocusOutEvent(formField)\">\n </p-calendar>\n <!-- [todayButtonStyleClass]=\"column.timeOnly ? 'hide-today-btn' : 'show-today-btn'\" -->\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- Dropdown -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.DROPDOWN\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField && !formField.label?.labelControl\" class=\"required-star\">*</span>\n </label>\n <p-dropdown [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" autocomplete=\"off\" [styleClass]='formField.field' [placeholder]=\"formField.value\"\n [options]=\"formField.data\" [filter]=\"formField.allowSearch\" [(ngModel)]=\"formField.value\"\n [optionLabel]=\"formField.optionLabel\" [optionValue]=\"formField.optionValue\"\n [name]=\"formField.field\" (keyup.Tab)=\"tabFocusEvent(formField)\"\n (click)=\"clearDropdownValue(formField)\" [disabled]=\"formField.disabled\"\n (onBlur)=\"onFocusOutEvent(formField)\" [showClear]=\"formField.value ? true : false\"\n (onChange)=\"onClearValue(formField, $event)\"\n [autoDisplayFirst]=\"formField.value > 0 ? true : false\">\n </p-dropdown>\n <span *ngIf=\"\n !formField?.isValid &&\n !formField.hidden\n \" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- AutoComplete Search -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.AUTOCOMPLETE\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\"\n (click)=\"formField.label.onClick && formField.label.onClick()\" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <span class=\"p-fluid\">\n <p-autoComplete [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [suggestions]=\"formField.data\" [(ngModel)]=\"formField.value\"\n (onChange)=\"onChangeEvent(formField)\" (click)=\"handleClickEvent(formField)\"\n (completeMethod)=\"autoSearch($event, formField)\" [dropdown]=\"formField.showOption\"\n [field]=\"formField.displayField\" [name]=\"formField.label\" [multiple]=\"true\"\n [disabled]=\"formField.disabled\" (onBlur)=\"onFocusOutEvent(formField)\">\n </p-autoComplete>\n </span>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"\n formField.label.onClick && formField.label.onClick()\n \" [title]=\"formField.label.onClick\n ? formField.label.name\n : formField.label\">\n {{\n formField.label.onClick\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n <p-multiSelect [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" [(ngModel)]=\"formField.value\" [options]=\"formField.data\" optionLabel=\"label\"\n optionValue=\"value\" [appendTo]=\"'body'\" [name]=\"formField.field\"\n (onChange)=\"onChangeEvent(formField)\"\n (click)=\"formField.onClick ? formField.onClick() : ''\" [disabled]=\"formField.disabled\"\n (blur)=\"onFocusOutEvent(formField)\">\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Hyperlink-->\n <span *ngIf=\"!formField.hidden\">\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" [title]=\"formField.label\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.component\n \" (click)=\"hyperlinkDialog(formField)\">\n {{ formField.label }}\n </div>\n <div [class]=\"\n formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \" *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target !== '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" [href]=\"formField.disabled?'':sanitizeUrl(formField.hyperlink?.link)\" \n [target]=\"formField.hyperlink?.target\" (click)=\"handleClickEvent(formField)\"\n [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n <div *ngIf=\"\n formField.hyperlink &&\n formField.hyperlink.target === '_iframe' &&\n !formField.hyperlink.component\n \">\n <a class=\"pl-2\" tabindex=\"-1\" (click)=\"loadIFrame(formField)\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </a>\n </div>\n </div>\n </span>\n\n <!-- Lookup Control Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.LOOKUP_INPUT\">\n <span [class]=\"formField.disabled ? 'disabled-lookup-header' : ''\">\n <label *ngIf=\"!formField.label.labelControl\"\n [class]=\"formField.label.onClick ? 'custom-link' : ''\" (click)=\"formField.label.onClick && formField.label.onClick()\n \" [title]=\"typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\">\n {{\n typeOf(formField.label) === 'object'\n ? formField.label.name\n : formField.label\n }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <div class=\"close-icon-wrapper\">\n\n <span class=\"p-input-icon-right\">\n <i class=\"pi pi-chevron-right lookup-input-icon\"></i>\n <input [class]=\"\n formField.errorMessage\n ? 'ng-invalid ng-dirty'\n : 'form-control'\n \" \n class=\"form-component lookup-input\"\n type=\"text\" pInputText [(ngModel)]=\"formField.value && typeOf(formField.value) === 'object'\n ? formField.value.text\n : formField.value\" autocomplete=\"off\" [id]=\"formField.field\" [name]=\"formField.field\"\n (click)=\"selectLookupField(formField)\" [disabled]=\"formField.disabled\"\n (keyup.Tab)=\"selectLookupField(formField)\" readonly\n (keydown)=\"$event.preventDefault()\" />\n </span>\n <div>\n <button *ngIf=\"formField.value && !formField.disabled\" icon=\"pi pi-times\" pButton\n class=\"lookup-clear-icon-button\"\n type=\"button\" (click)=\"lookupClearValue(formField)\"></button>\n \n </div>\n </div>\n <span *ngIf=\"!formField?.isValid\" class=\"error\">{{ formField.errorMessage }}</span>\n </div>\n </span>\n\n <!-- File Upload Field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.FILE_UPLOAD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n <se-file-upload [allowMultiple]=\"formField.selectMultipleFiles\"\n [acceptFileTypes]=\"formField.SetfileTypes\" [fields]=\"formField\"\n (fileUrl)=\"setFileUrls($event)\"\n (uploadFileOnReturn)=\"fileOnchangeEvent()\"></se-file-upload>\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Display Card field -->\n <span *ngIf=\"!formField.hidden\">\n <div class=\"p-d-flex p-flex-column\" *ngSwitchCase=\"dynamicCase.CARD\">\n <span [class]=\"\n formField.disabled ? 'disabled-link' : ''\n \">\n <label [title]=\"formField.label\">\n {{ formField.label }}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </label>\n </span>\n\n <se-card [card]=\"formField.card\" [setCardData]=\"setCardData\"\n (selectedCard)=\"selectedCardClickEvent($event)\"></se-card>\n\n <span *ngIf=\"showfileUploadError\" class=\"error\">{{\n formField.errorMessage\n }}</span>\n </div>\n </span>\n\n <!-- Note Detail Field -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.NOTE_FIELD\">\n <div [class]=\"formField.disabled\n ? 'disabled-link'\n : 'link-label custom-link'\n \">\n <span class=\"pl-2\" (click)=\"\n !formField.disabled\n ? handleNoteFieldDialog(formField)\n : ''\n \" [title]=\"formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label\">{{formField.label.labelControl\n ? ''\n : formField.label.onClick\n ? formField.label.name\n : formField.label}}\n <span *ngIf=\"formField.requiredField\" class=\"required-star\">*</span>\n </span>\n </div>\n </div>\n </span>\n\n <!-- Dynamic Component Container-->\n <span [class]=\"formField.hidden ? 'hidden' : ''\">\n <div id=\"{{formSection.name}}-{{formFieldIndex}}\" #dynamicComponentContainer\n *ngSwitchCase=\"dynamicCase.COMPONENT\"></div>\n </span>\n\n <!-- Header component-->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SECTION_HEADER\">\n <label [class]=\"formField.class\">\n <b> {{ formField.label }} </b>\n </label>\n </div>\n </span>\n\n <!-- Add OnClick Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.ADD_BUTTON\">\n <button pButton type=\"button\" [icon]=\"formField.icon\" [label]=\"formField.label\"\n [disabled]=\"formField.disabled\"\n [ngStyle]=\"{background: formField.color ? formField.color : ''}\"\n (click)=\"onClickEvent(formField)\"></button>\n </div>\n </span>\n <!-- Add Generate Report Button -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.REPORT\">\n <se-generate-report-btn [repId]=\"formField.reportId\" [label]=\"formField.label\"\n [params]=\"formField.params\" [showDialog]=\"formField.showDialog\" [form]=\"form\"></se-generate-report-btn>\n </div>\n </span>\n\n\n <!-- Add Input Switch -->\n <span *ngIf=\"!formField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.SWITCH\">\n <div>\n <label [title]=\"formField.label\">\n {{ formField.label }}\n </label>\n </div>\n <p-inputSwitch [name]=\"formField.label ? formField.label: 'switch'\"\n [(ngModel)]=\"formField.value\" [disabled]=\"formField.disabled\"\n (click)=\"onClickEvent(formField)\"></p-inputSwitch>\n </div>\n </span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n </span>\n </div>\n </span>\n\n <!-- save and close buttons -->\n <div class=\"p-col-12 p-d-flex p-jc-end\" [ngClass]=\"{ sticky: stickyActions }\">\n <div class=\"inner-sticky form-component actions-buttons-wrapper-div\">\n <!-- save button -->\n <button *ngIf=\"!hideSaveButton\" [disabled]=\"isFormDisabled\" pButton type=\"button\" icon=\"pi pi-check\"\n label=\"Save\" class=\"p-button-success\" (click)=\"onSaveForm()\"></button>\n <!-- close button -->\n <button *ngIf=\"!hideCancelButton\" [disabled]=\"isFormDisabled\" (click)=\"onCancelForm()\" pButton type=\"button\"\n icon=\"pi pi-times\" label=\"Cancel\" class=\"p-button-danger p-ml-3\"></button> \n <!-- dynamic buttons -->\n <ng-container *ngFor=\"let button of formButtons\">\n <button *ngIf=\"!button.hidden\" pButton type=\"button\" [label]=\"button.label\" [icon]=\"button.icon ? button.icon : ''\"\n class=\"p-button-success p-ml-3\" (click)=\"onNewButtonClick(button)\" [disabled]=\"button.disabled?button.disabled:false\">\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n</form>",
8019
+ styles: [".custom-link{color:#4e87f1;text-decoration:none}.custom-link:not(.disabled-link){cursor:pointer}.break-line{width:100%}:host ::ng-deep .hide-accordian .p-accordion-header{display:none}:host ::ng-deep .hide-today-btn{visibility:hidden}.error{color:red}.hidden{display:none!important}.disabled-link,.disabled-link a,.disabled-link label,.disabled-link span,.disabled-link div,.disable-label-control,.disabled-link.custom-link,.disabled-link.custom-link a,.disabled-link.custom-link label,.disabled-link.custom-link span,.disabled-link.custom-link div,.disable-label-control.custom-link{pointer-events:none;color:#83baf8}.progress-spinner{z-index:999}.progress-spinner:before{content:\"\"}\n"]
8029
8020
  },] }
8030
8021
  ];
8031
8022
  /** @nocollapse */