cats-data-grid 1.0.0 → 1.0.1

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.
@@ -7,10 +7,10 @@ import { FormsModule } from '@angular/forms';
7
7
 
8
8
  class CatsDataGridService {
9
9
  constructor() { }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CatsDataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CatsDataGridService, providedIn: 'root' });
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CatsDataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CatsDataGridService, providedIn: 'root' });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CatsDataGridService, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CatsDataGridService, decorators: [{
14
14
  type: Injectable,
15
15
  args: [{
16
16
  providedIn: 'root'
@@ -24,10 +24,10 @@ class AddClassPipe {
24
24
  }
25
25
  return '';
26
26
  }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: AddClassPipe, isStandalone: true, name: "addClass" });
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AddClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: AddClassPipe, isStandalone: true, name: "addClass" });
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddClassPipe, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: AddClassPipe, decorators: [{
31
31
  type: Pipe,
32
32
  args: [{
33
33
  name: 'addClass'
@@ -51,10 +51,10 @@ class OutsideClickDirective {
51
51
  this.clickOutside.emit(event);
52
52
  }
53
53
  }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
55
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: OutsideClickDirective, isStandalone: true, selector: "[appOutsideClick]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
55
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: OutsideClickDirective, isStandalone: true, selector: "[appOutsideClick]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: OutsideClickDirective, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: OutsideClickDirective, decorators: [{
58
58
  type: Directive,
59
59
  args: [{
60
60
  selector: '[appOutsideClick]',
@@ -109,10 +109,10 @@ class RendererParserDirective {
109
109
  this.er.nativeElement.appendChild(toltipDiv);
110
110
  }
111
111
  }
112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RendererParserDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
113
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: RendererParserDirective, isStandalone: true, selector: "[appRendererParser]", inputs: { rowParam: "rowParam", col: "col", api: "api", currentValue: "currentValue" }, ngImport: i0 });
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RendererParserDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
113
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: RendererParserDirective, isStandalone: true, selector: "[appRendererParser]", inputs: { rowParam: "rowParam", col: "col", api: "api", currentValue: "currentValue" }, ngImport: i0 });
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RendererParserDirective, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RendererParserDirective, decorators: [{
116
116
  type: Directive,
117
117
  args: [{
118
118
  selector: '[appRendererParser]',
@@ -131,16 +131,17 @@ class CatsDataGridComponent {
131
131
  cd;
132
132
  tableOptions;
133
133
  totalRecords = 0;
134
- sortingRequired = false;
134
+ sortingRequired = true;
135
135
  checkBoxSelection = false;
136
136
  checkboxSelectionType = 'multiple';
137
137
  rowData = [];
138
138
  colDefs = [];
139
139
  paginationRequired = true;
140
140
  selectedRowEmpty = false;
141
- filterRequired = false;
142
- threeDotsMenuRequired = false;
141
+ filterRequired = true;
142
+ threeDotsMenuRequired = true;
143
143
  height = 300;
144
+ groupBy = [];
144
145
  onPaginationChange = new EventEmitter();
145
146
  onCheckboxSelection = new EventEmitter();
146
147
  onScrollEmitter = new EventEmitter();
@@ -171,12 +172,18 @@ class CatsDataGridComponent {
171
172
  menuVisible = [];
172
173
  menuPosition = [];
173
174
  activeFilters = new Set();
175
+ resizingColumnIndex = null;
176
+ startX = 0;
177
+ startWidth = 0;
178
+ isResizing = false;
179
+ groupedResult = [];
174
180
  constructor(cd) {
175
181
  this.cd = cd;
176
182
  }
177
183
  ngOnInit() {
178
184
  this.originalRowData = structuredClone(this.rowData);
179
185
  this.filteredRowData = structuredClone(this.rowData);
186
+ this.originalColDefs = [...this.colDefs];
180
187
  }
181
188
  ngOnChanges(changes) {
182
189
  if (changes['colDefs']?.currentValue) {
@@ -195,6 +202,7 @@ class CatsDataGridComponent {
195
202
  [...this.selectedRow, row];
196
203
  return row;
197
204
  });
205
+ this.getGroupedData();
198
206
  }
199
207
  }
200
208
  /**
@@ -205,21 +213,24 @@ class CatsDataGridComponent {
205
213
  */
206
214
  getUpdatedColDefs(colDefs) {
207
215
  return colDefs.map((col) => {
208
- // Default dataType
209
- if (!col.dataType) {
210
- col.dataType = 'text';
216
+ // Default filterType
217
+ if (col.fieldName === 'action') {
218
+ col.isAction = true;
219
+ }
220
+ if (!col.filterType && !col.isAction) {
221
+ col.filterType = 'text';
211
222
  }
212
223
  col.textLogic = 'AND';
213
224
  col.numberLogic = 'AND';
214
225
  let updatedCol = {
215
226
  ...col,
216
- filter: col.filter ?? true,
217
- menu: col.menu ?? true,
227
+ filter: col.filterable ?? true,
228
+ menu: col.columnAction ?? true,
218
229
  };
219
230
  if (!updatedCol.filter) {
220
231
  return updatedCol;
221
232
  }
222
- switch (col.dataType) {
233
+ switch (col.filterType) {
223
234
  case 'text':
224
235
  updatedCol = {
225
236
  ...updatedCol,
@@ -264,7 +275,9 @@ class CatsDataGridComponent {
264
275
  break;
265
276
  case 'set':
266
277
  const options = [
267
- ...new Set(this.rowData.map((r) => r[col.fieldName])),
278
+ ...new Set(this.rowData.flatMap((r) => {
279
+ return this.normalizeSetFilterType(r[col.fieldName], col?.cellRendererParams?.tagKey)?.filter(Boolean);
280
+ })),
268
281
  ];
269
282
  updatedCol = {
270
283
  ...updatedCol,
@@ -277,6 +290,32 @@ class CatsDataGridComponent {
277
290
  return updatedCol;
278
291
  });
279
292
  }
293
+ normalizeSetFilterType(value, key) {
294
+ if (!value)
295
+ return;
296
+ if (Array.isArray(value) && typeof value[0] === 'string') {
297
+ return value;
298
+ }
299
+ if (Array.isArray(value) && typeof value[0] === 'object') {
300
+ return (value = value.map((val) => val[key]));
301
+ }
302
+ if (typeof value === 'string') {
303
+ return [value];
304
+ }
305
+ if (typeof value === 'object') {
306
+ return [value[key]];
307
+ }
308
+ return [];
309
+ }
310
+ /**
311
+ * @description - Evaluates a text-based filter condition on a given field value.
312
+ * @author Anand Pandey
313
+ * @param {string} type - The type of text filter to apply ('contains' | 'doesNotContain' | 'equals' etc).
314
+ * @param {string} fieldValue - The actual value from the data row being evaluated.
315
+ * @param {string} value - The user-entered filter value to compare against.
316
+ * @returns {boolean} `true` if the fieldValue satisfies the specified filter condition,
317
+ * otherwise `false`.
318
+ */
280
319
  evaluateTextFilterCondition(type, fieldValue, value) {
281
320
  switch (type) {
282
321
  case 'contains':
@@ -295,6 +334,14 @@ class CatsDataGridComponent {
295
334
  return true;
296
335
  }
297
336
  }
337
+ /**
338
+ * @description - Evaluates number/date filter conditions.
339
+ * @author Anand
340
+ * @param {string} type - Comparison operator ('=' | '>' | '<' | '>=' | '<=').
341
+ * @param {number|string} fieldValue - Actual value from the row (number or timestamp).
342
+ * @param {number|string} value - User-entered value for comparison.
343
+ * @returns {boolean} True if the condition matches, otherwise false.
344
+ */
298
345
  evaluateNumDateFilterCondition(type, fieldValue, value) {
299
346
  switch (type) {
300
347
  case '=':
@@ -312,7 +359,7 @@ class CatsDataGridComponent {
312
359
  }
313
360
  }
314
361
  /**
315
- * @description Method to filter data according to dataType and comparator selection
362
+ * @description Method to filter data according to filterType and comparator selection
316
363
  * @author Anand Pandey
317
364
  * @param {}
318
365
  * @returns void
@@ -322,7 +369,7 @@ class CatsDataGridComponent {
322
369
  this.colDefs.forEach((col) => {
323
370
  const field = col.fieldName;
324
371
  // *********** TEXT FILTER ***********
325
- if (col.dataType === 'text') {
372
+ if (col.filterType === 'text') {
326
373
  const [c1, c2] = col.textFilters;
327
374
  const textVal1 = c1.filterValue?.toLowerCase().trim();
328
375
  const textVal2 = c2.filterValue?.toLowerCase().trim();
@@ -343,61 +390,63 @@ class CatsDataGridComponent {
343
390
  });
344
391
  }
345
392
  // *********** NUMBER FILTER ***********
346
- if (col.dataType === 'number') {
347
- if (col.numberValue.trim()) {
348
- const [c1, c2] = col.numberFilters;
349
- const numValue1 = Number(c1.numberValue);
350
- const numValue2 = Number(c2.numberValue);
351
- const num = Number(col.numberValue);
352
- if (!numValue1 && !numValue2) {
353
- this.activeFilters.delete(col.fieldName);
354
- return;
355
- }
356
- this.activeFilters.add(col.fieldName);
357
- result = result.filter((r) => {
358
- const fieldVal = Number(r[field]);
359
- const cond1 = numValue1
360
- ? this.evaluateNumDateFilterCondition(c1.filterType, fieldVal, numValue1)
361
- : false;
362
- const cond2 = numValue2
363
- ? this.evaluateNumDateFilterCondition(c2.filterType, fieldVal, numValue2)
364
- : false;
365
- return col.textLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
366
- });
393
+ if (col.filterType === 'number') {
394
+ const [c1, c2] = col.numberFilters;
395
+ const numValue1 = Number(c1.numberValue.trim());
396
+ const numValue2 = Number(c2.numberValue.trim());
397
+ if (!numValue1 && !numValue2) {
398
+ this.activeFilters.delete(col.fieldName);
399
+ return;
367
400
  }
401
+ this.activeFilters.add(col.fieldName);
402
+ result = result.filter((r) => {
403
+ const fieldVal = Number(r[field]);
404
+ const cond1 = numValue1
405
+ ? this.evaluateNumDateFilterCondition(c1.filterType, fieldVal, numValue1)
406
+ : false;
407
+ const cond2 = numValue2
408
+ ? this.evaluateNumDateFilterCondition(c2.filterType, fieldVal, numValue2)
409
+ : false;
410
+ return col.textLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
411
+ });
368
412
  }
369
413
  // *********** DATE FILTER ***********
370
- if (col.dataType === 'date') {
371
- if (col.dateValue) {
372
- const selected = this.normalizeDate(col.dateValue);
373
- this.activeFilters.add(col.fieldName);
374
- result = result.filter((r) => {
375
- const valueDate = this.normalizeDate(r[field]);
376
- switch (col.numberCondition) {
377
- case '=':
378
- return valueDate === selected;
379
- case '>':
380
- return valueDate > selected;
381
- case '<':
382
- return valueDate < selected;
383
- case '>=':
384
- return valueDate >= selected;
385
- case '<=':
386
- return valueDate <= selected;
387
- default:
388
- return true; // keep row
389
- }
390
- });
391
- }
392
- else {
414
+ if (col.filterType === 'date') {
415
+ const [c1, c2] = col.dateFilters;
416
+ const selected1 = this.normalizeDate(c1.dateValue);
417
+ const selected2 = this.normalizeDate(c2.dateValue);
418
+ if (!selected1 && !selected2) {
393
419
  this.activeFilters.delete(col.fieldName);
420
+ return;
394
421
  }
422
+ this.activeFilters.add(col.fieldName);
423
+ result = result.filter((r) => {
424
+ const fieldVal = this.normalizeDate(r[field]);
425
+ const cond1 = selected1
426
+ ? this.evaluateNumDateFilterCondition(c1.filterType, fieldVal ?? r[field], selected1)
427
+ : false;
428
+ const cond2 = selected2
429
+ ? this.evaluateNumDateFilterCondition(c2.filterType, fieldVal ?? r[field], selected2)
430
+ : false;
431
+ return col.textLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
432
+ });
395
433
  }
396
434
  // *********** SET FILTER ***********
397
- if (col.dataType === 'set') {
435
+ if (col.filterType === 'set') {
398
436
  if (col.selectedValues.size >= 0 &&
399
437
  col.selectedValues.size !== col.options.length) {
400
- result = result.filter((r) => col.selectedValues.has(r[field]));
438
+ result = result.filter((r) => {
439
+ const value = r[field];
440
+ if (Array.isArray(value) &&
441
+ value.every((val) => typeof val !== 'object')) {
442
+ return value.some((m) => col.selectedValues.has(m));
443
+ }
444
+ if (Array.isArray(value) &&
445
+ value.every((val) => typeof val === 'object')) {
446
+ return value.some((m) => col.selectedValues.has(m[col?.cellRendererParams?.tagKey]));
447
+ }
448
+ return col.selectedValues.has(r[field]);
449
+ });
401
450
  this.activeFilters.add(col.fieldName);
402
451
  }
403
452
  else {
@@ -406,6 +455,8 @@ class CatsDataGridComponent {
406
455
  }
407
456
  });
408
457
  this.filteredData = result;
458
+ this.rowData = this.filteredData;
459
+ this.getGroupedData();
409
460
  this.filter.emit(this.filteredData);
410
461
  }
411
462
  /**
@@ -416,6 +467,8 @@ class CatsDataGridComponent {
416
467
  */
417
468
  normalizeDate(dateStr) {
418
469
  const d = new Date(dateStr);
470
+ if (isNaN(d.getTime()))
471
+ return null;
419
472
  return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())).getTime();
420
473
  }
421
474
  /**
@@ -521,8 +574,156 @@ class CatsDataGridComponent {
521
574
  else {
522
575
  this.descendingOrder(fieldName);
523
576
  }
577
+ this.getGroupedData();
524
578
  this.menuVisible[this.currentIndex] = false;
525
579
  }
580
+ /**
581
+ * @description Generates grouped data based on the selected `groupBy` columns..
582
+ * @author Anand Pandey
583
+ * @returns void
584
+ */
585
+ getGroupedData() {
586
+ if (this.groupBy && this.groupBy.length > 0) {
587
+ this.groupedResult = this.groupData(this.rowData, this.groupBy) || [];
588
+ }
589
+ }
590
+ /**
591
+ * @description Initializes column resize operation when the user presses the mouse on the resize handle.
592
+ * @author Anand Pandey
593
+ * @param {MouseEvent} event - The mousedown event triggered on the resize handle.
594
+ * @param {number} index - Index of the column being resized.
595
+ * @returns {void}
596
+ */
597
+ startResize(event, index) {
598
+ event.preventDefault();
599
+ this.isResizing = true;
600
+ this.resizingColumnIndex = index;
601
+ this.startX = event.clientX;
602
+ this.startWidth = this.colDefs[index].width;
603
+ document.addEventListener('mousemove', this.onMouseMove);
604
+ document.addEventListener('mouseup', this.stopResize);
605
+ }
606
+ /**
607
+ * @description Handles column resizing as the mouse moves.
608
+ * @author Anand Pandey
609
+ * @param {MouseEvent} event - Mouse movement event during resizing.
610
+ * @returns {void}
611
+ */
612
+ onMouseMove = (event) => {
613
+ if (this.resizingColumnIndex === null ||
614
+ this.resizingColumnIndex === undefined)
615
+ return;
616
+ const movement = event.clientX - this.startX;
617
+ const newWidth = this.startWidth + movement;
618
+ if (newWidth > 50) {
619
+ this.colDefs[this.resizingColumnIndex].width = newWidth;
620
+ }
621
+ };
622
+ /**
623
+ * @description Stops the column resizing operation.
624
+ * Clears resizing state and removes mouse event listeners.
625
+ * @author Anand Pandey
626
+ * @param {MouseEvent} event - Mouse up event ending the resize action.
627
+ * @returns {void}
628
+ */
629
+ stopResize = (event) => {
630
+ event.stopPropagation();
631
+ this.resizingColumnIndex = null;
632
+ this.isResizing = false;
633
+ document.removeEventListener('mousemove', this.onMouseMove);
634
+ document.removeEventListener('mouseup', this.stopResize);
635
+ };
636
+ /**
637
+ * @description Recursively groups row data into a hierarchical structure based on the provided group keys.
638
+ * @author Anand Pandey
639
+ * @param {any[]} data - The row data to be grouped.
640
+ * @param {string[]} groupKeys - Ordered list of column keys to group by.
641
+ * @returns {any[]} A hierarchical grouped structure containing nested group nodes.
642
+ */
643
+ groupData(data, groupKeys) {
644
+ if (groupKeys.length === 0)
645
+ return data;
646
+ const [currentKey, ...restKeys] = groupKeys;
647
+ const groups = {};
648
+ for (const row of data) {
649
+ const key = row[currentKey] ?? '';
650
+ if (!groups[key])
651
+ groups[key] = [];
652
+ groups[key].push(row);
653
+ }
654
+ // recursively group child arrays
655
+ let result = [];
656
+ for (const key of Object.keys(groups)) {
657
+ result.push({
658
+ key,
659
+ field: currentKey,
660
+ expanded: false,
661
+ children: this.groupData(groups[key], restKeys),
662
+ });
663
+ }
664
+ return result;
665
+ }
666
+ /**
667
+ * @description Toggles the expand/collapse state of a group node.
668
+ * @author Anand Pandey
669
+ * @param {any} node - The group node whose expanded state needs to be toggled.
670
+ * @returns {void}
671
+ */
672
+ toggleGroup(node) {
673
+ node.expanded = !node.expanded;
674
+ }
675
+ /**
676
+ * @description Pin column on the left side.
677
+ * @author Anand Pandey
678
+ * @param {any} col - The selected column details from table on clicking pin or unpin from three dots menu.
679
+ * @param {number} index - The index of column from table on clicking pin or unpin from three dots menu.
680
+ * @returns {void}
681
+ */
682
+ pinColumn(col, index) {
683
+ col.pinned = !col.pinned;
684
+ if (col.pinned) {
685
+ this.colDefs.splice(index, 1);
686
+ // const pinnedCount = this.colDefs.filter((col) => col.pinned).length;
687
+ // this.colDefs.splice(pinnedCount, 0, col);
688
+ this.colDefs = [col, ...this.colDefs];
689
+ }
690
+ else {
691
+ const indx = this.originalColDefs.findIndex((dt) => dt.fieldName === col.fieldName);
692
+ if (indx > 0) {
693
+ this.colDefs.splice(index, 1);
694
+ this.colDefs.splice(indx, 0, col);
695
+ }
696
+ }
697
+ this.colDefs.forEach((dt, indx) => {
698
+ if (indx > 0 && dt.pinned) {
699
+ dt.pinned = false;
700
+ const id = this.originalColDefs.findIndex((colDt) => colDt.fieldName === dt.fieldName);
701
+ if (id > 0) {
702
+ this.colDefs.splice(indx, 1);
703
+ this.colDefs.splice(id, 0, dt);
704
+ }
705
+ }
706
+ });
707
+ this.updatePinnedOffsets();
708
+ this.onClickOutside();
709
+ }
710
+ /**
711
+ * @description Updates the horizontal left offsets of pinned columns by assigning cumulative widths to each pinned column and resetting non-pinned columns.
712
+ * @author Anand
713
+ * @returns void
714
+ */
715
+ updatePinnedOffsets() {
716
+ let leftOffset = 0;
717
+ this.colDefs.forEach((col) => {
718
+ if (col.pinned) {
719
+ col.left = leftOffset;
720
+ leftOffset += col.width || 120;
721
+ }
722
+ else {
723
+ col.left = null;
724
+ }
725
+ });
726
+ }
526
727
  /**
527
728
  * @description Method to parse column value from rowdata object
528
729
  * according to given field value in column Defination
@@ -643,10 +844,12 @@ class CatsDataGridComponent {
643
844
  * @description method to sort data according to type and column
644
845
  * @author Tarun Kumar
645
846
  * @param sortingColumIndex
646
- * @param fieldName
847
+ * @param col
647
848
  * @param sortingType
648
849
  */
649
- onSortingRowData(sortingColumIndex, fieldName) {
850
+ onSortingRowData(sortingColumIndex, col) {
851
+ if (!col.sortable)
852
+ return;
650
853
  this.sortingColumnIndex = sortingColumIndex;
651
854
  this.sortingType = !this.sortingType
652
855
  ? 'asc'
@@ -654,11 +857,12 @@ class CatsDataGridComponent {
654
857
  ? 'dsc'
655
858
  : 'asc';
656
859
  if (this.sortingType == 'asc' || this.sortingType == '') {
657
- this.ascendingOrder(fieldName);
860
+ this.ascendingOrder(col?.fieldName);
658
861
  }
659
862
  else {
660
- this.descendingOrder(fieldName);
863
+ this.descendingOrder(col?.fieldName);
661
864
  }
865
+ this.getGroupedData();
662
866
  }
663
867
  /**
664
868
  * @description method to sort table in ascending order according to given field
@@ -744,7 +948,28 @@ class CatsDataGridComponent {
744
948
  * @returns {object}
745
949
  */
746
950
  getStyle(col) {
747
- return { width: `${col.width}px` };
951
+ const style = {
952
+ width: `${col.width ?? 150}px`,
953
+ minWidth: `${col.minWidth ?? 50}px`,
954
+ };
955
+ if (col.isAction) {
956
+ style.position = 'sticky';
957
+ style.right = '0px';
958
+ style.zIndex = 20;
959
+ style.background = '#fff';
960
+ style.width = '30px';
961
+ style.minWidth = '30px';
962
+ }
963
+ else if (col.pinned) {
964
+ style.position = 'sticky';
965
+ style.left = col.left + 'px';
966
+ style.zIndex = 12;
967
+ style.background = '#fff';
968
+ }
969
+ else {
970
+ style.position = '';
971
+ }
972
+ return style;
748
973
  }
749
974
  onClickOutside() {
750
975
  this.showPageSizeList = false;
@@ -782,6 +1007,10 @@ class CatsDataGridComponent {
782
1007
  * @returns {void}
783
1008
  */
784
1009
  onDragStart(event, index) {
1010
+ if (this.isResizing) {
1011
+ event.preventDefault();
1012
+ return;
1013
+ }
785
1014
  this.draggedIndex = index;
786
1015
  event.dataTransfer?.setData('text/plain', index.toString());
787
1016
  }
@@ -793,6 +1022,7 @@ class CatsDataGridComponent {
793
1022
  */
794
1023
  onDragOver(event, index) {
795
1024
  event.preventDefault();
1025
+ this.isResizing = false;
796
1026
  if (this.dragOverIndex !== index) {
797
1027
  this.dragOverIndex = index;
798
1028
  }
@@ -828,10 +1058,10 @@ class CatsDataGridComponent {
828
1058
  this.activeFilterIndex = this.activeFilterIndex === index ? null : index;
829
1059
  this.menuVisible = this.menuVisible.map(() => false);
830
1060
  }
831
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CatsDataGridComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
832
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: CatsDataGridComponent, isStandalone: true, selector: "cats-data-grid", inputs: { tableOptions: "tableOptions", totalRecords: "totalRecords", sortingRequired: "sortingRequired", checkBoxSelection: "checkBoxSelection", checkboxSelectionType: "checkboxSelectionType", rowData: "rowData", colDefs: "colDefs", paginationRequired: "paginationRequired", selectedRowEmpty: "selectedRowEmpty", filterRequired: "filterRequired", threeDotsMenuRequired: "threeDotsMenuRequired", height: "height", pageSizeList: "pageSizeList" }, outputs: { onPaginationChange: "onPaginationChange", onCheckboxSelection: "onCheckboxSelection", onScrollEmitter: "onScrollEmitter", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tableArea\">\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"container_scroll\"\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n >\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span\r\n ><input\r\n class=\"form-check-input cursor-pointer\"\r\n type=\"checkbox\"\r\n name=\"\"\r\n id=\"\"\r\n [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\"\r\n (change)=\"onHeaderCheckboxChange($event)\"\r\n /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\"\r\n draggable=\"true\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"flex-center\"\r\n [ngStyle]=\"getStyle(col)\"\r\n (click)=\"onSortingRowData($index, col?.fieldName)\"\r\n >\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n @if (sortingRequired && sortingColumnIndex == $index) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n @if(sortingType){\r\n <li class=\"cursor-pointer\">\r\n <img\r\n src=\"images/sort_up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/sort_down.svg\"\r\n class=\"sorting_down\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n\r\n }\r\n </ul>\r\n </span>\r\n\r\n }\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <!-- Column Filters Logic-->\r\n @if(filterRequired && col.filter){\r\n <div\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n <img\r\n src=\"images/filter-icon.svg\"\r\n class=\"filter-icon\"\r\n [ngClass]=\"\r\n activeFilters.has(col.fieldName)\r\n ? 'filter-icon-active'\r\n : 'filter-icon'\r\n \"\r\n />\r\n\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n class=\"filter-popup\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <!-- Text Filter -->\r\n @if(col.dataType === 'text'){\r\n <select [(ngModel)]=\"col.textFilters[0].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.textFilters[0].filterValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.textFilters[1].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- Number Filter -->\r\n @if(col.dataType === 'number'){\r\n <select [(ngModel)]=\"col.numberFilters[0].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.numberFilters[0].numberValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.numberFilters[0].numberValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.numberFilters[1].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.numberFilters[1].numberValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- DATE FILTER -->\r\n <ng-container *ngIf=\"col.dataType === 'date'\">\r\n <select [(ngModel)]=\"col.numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n </ng-container>\r\n\r\n <!-- SET FILTER (CHECKBOX LIST) -->\r\n <ng-container *ngIf=\"col.dataType === 'set'\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n\r\n <div class=\"set-options\">\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllSelected(col)\"\r\n (change)=\"toggleSelectAll(col, $event)\"\r\n />\r\n (Select All)\r\n </label>\r\n\r\n <label *ngFor=\"let opt of col.filteredOptions\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"toggleSetOption(col, opt, $event)\"\r\n />\r\n {{ opt }}\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n @if(threeDotsMenuRequired && col.menu){\r\n\r\n <div class=\"three-dots\" (click)=\"openMenu($event, col, $index)\">\r\n <img src=\"images/more-vertical.svg\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- popup open -->\r\n <div\r\n class=\"column-menu\"\r\n *ngIf=\"menuVisible[$index]\"\r\n [ngStyle]=\"menuPosition[$index]\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <ul>\r\n @if(sortingType === 'dsc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'asc')\">\r\n <img src=\"images/arrow-up.svg\" class=\"sorting_up\" />\r\n Sort Ascending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'dsc')\">\r\n <img src=\"images/arrow-down.svg\" class=\"sorting_up\" />\r\n Sort Descending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === 'dsc'){\r\n <li (click)=\"onSort(col?.fieldName, '')\">\r\n <span>\r\n <img src=\"images/chevron-up.svg\" class=\"sorting_up\" />\r\n <img src=\"images/chevron-down.svg\" class=\"sorting_up\" />\r\n </span>\r\n Clear Sort\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span\r\n ><input\r\n type=\"checkbox\"\r\n class=\"form-check-input pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input\r\n type=\"radio\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"col?.addClass ? col.addClass(data) : ''\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div\r\n [rowParam]=\"data\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"\r\n ></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div\r\n class=\"pagination_select\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div\r\n class=\"select_dropdown pointer\"\r\n (click)=\"showPageSizeList = !showPageSizeList\"\r\n >\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span\r\n class=\"pointer\"\r\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\r\n >{{ option }}</span\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span\r\n >Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span\r\n >\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button\r\n class=\"outlined_btn prev_btn\"\r\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\r\n type=\"button\"\r\n (click)=\"onBtPrevClick()\"\r\n >\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style right\"\r\n type=\"number\"\r\n [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\"\r\n name=\"\"\r\n id=\"\"\r\n />\r\n </div>\r\n <button\r\n class=\"outlined_btn next_btn\"\r\n type=\"button\"\r\n [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n", styles: [":root{--white: #fff;--white-creame: #ebf3ff;--border: #dae3f8;--scrollbar: var(--border);--textPrimary: #0b1c33;--textPrimary70: #0b1c33b3;--textSecondary: #556171;--textSecondary50: #55617180;--textSecondary70: #556171b3;--pink-10: #f9fbfe;--ice-blue: #67adcf;--primaryBlue: #017db9;--primaryBlue70: #017db9be;--blue-10: #edf4fe;--blue-40: #e3f3fc;--blue-50: #f2f5fa;--blue-5050: #f2f5fa80;--blue-100: #c8e2ff;--blue-200: #a4cfff;--blue-300: #2680ea;--blue-500: #3788e5;--blue-700: #007aff;--yellow-50: #ffeedf;--yellow-100: #fed18f;--yellow-200: #ffbca6;--yellow-300: #f08a2b26;--yellow-400: #e58900;--primaryOrange: #f05a2b;--primaryOrange50: #f05a2b80;--primaryOrange70: #f05a2bb3;--orange-10: #fcf5eb;--orange-200: #f7ac94;--orange-300: #fb9676;--theadBg: var(--blue-50);--pagination-bg: #f7fafe;--blue-200: var(--border);--neutral-200: #dadbdc;--neutral-600: #040d17;--toastShadow: #0000001f;--dropdown-shadow: #00000014;--green-50: #eaf8f1;--green-100: #bde8d3;--green-600: #27a468;--red-10: #fcebef;--red-20: #ca0000;--red-30: #F7C1CE;--error-red: #d03258;--tableBorder: var(--border);--grey-50: #a5b0bf;--grey-100: #333333;--grey-200: #222A3D;--capture-border: #9badca;--captcha-bg: #f3f3f3;--neutral-400: #81858a}html{font-size:12px}.row_div{min-height:calc(4.5rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .col_div{width:50%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .label{width:calc(16.6666666667rem / var(--scale));min-width:calc(16.6666666667rem / var(--scale));padding:0 calc(2rem / var(--scale));color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:500;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.25rem / var(--scale))}.row_div .label sup{top:calc(-.1666666667rem / var(--scale))}.row_div .field{padding:calc(.6666666667rem / var(--scale)) calc(2rem / var(--scale));flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:\"\";color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.row_div .field li{list-style:disc;line-height:calc(2.6666666667rem / var(--scale));margin-left:calc(1.5rem / var(--scale))}textarea,input,.ordered_textarea{color:var(--textPrimary)}.errorField{flex-direction:column;align-items:start}.errorField .error{max-width:calc(37.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:0}.errorField .error i-feather[name=info]{padding-right:calc(.3333333333rem / var(--scale));display:flex;stroke:var(--error-red);width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.errorField textarea,.errorField input,.errorField .ordered_textarea{color:var(--textPrimary);border:calc(.0833333333rem / var(--scale)) solid var(--error-red)}.errorField .error{padding-top:calc(.6666666667rem / var(--scale));color:var(--error-red);font-size:var(--fs-12);line-height:140%;font-weight:400}sup{color:var(--error-red)}input::placeholder,textarea::placeholder{color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:400}textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;min-height:calc(9rem / var(--scale));resize:none}input{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale))}input.disable{background-color:var(--blue-50);pointer-events:none}.ordered_textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;list-style:disc;min-height:calc(9rem / var(--scale))}.ordered_textarea ul{padding-left:calc(2.6666666667rem / var(--scale));outline:none}.ordered_textarea ul.editable-div{min-height:calc(6rem / var(--scale));max-height:calc(9.3333333333rem / var(--scale));overflow:auto}.ordered_textarea ul li{margin-left:calc(1.75rem / var(--scale));list-style:disc;color:var(--textPrimary);font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:400}.custom_radio{display:inline-flex;align-items:center;min-width:calc(18.5833333333rem / var(--scale))}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-16);line-height:140%;font-weight:400}.custom_radio.disabled .name{color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--border);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.dob_age_field{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:0 calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale));background-color:var(--blue-50);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.dob_age_field .dob,.dob_age_field .age{font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textSecondary)}.dob_age_field .age{padding-left:calc(.8333333333rem / var(--scale))}.dob_age_field .dob{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:50%;height:100%;padding-right:calc(.8333333333rem / var(--scale));border-right:calc(.0833333333rem / var(--scale)) solid var(--border)}.dob_age_field .dob img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.date{position:relative;width:100%}.date img{position:absolute;right:calc(1.3333333333rem / var(--scale));top:calc(1.25rem / var(--scale))}input[type=checkbox]{margin-right:calc(.6666666667rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));border-radius:calc(.3333333333rem / var(--scale))}ol li{list-style:auto!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:Rethink}body{font-size:100%}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}h1,h2,h3,h4,h5,h6,ul,ol,p{margin:0;padding:0;text-wrap:pretty}ul[role=list],ol[role=list],ul{list-style:none}img,picture{max-width:100%;display:block}input,select,textarea{outline:none;box-shadow:none}:root{--fs-6: 6px;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-30: 30px;--fs-32: 32px;--fs-42: 42px;--fs-48: 48px;--img-w: 28px;--scale: 1}@media only screen and (min-width: 1024px) and (max-width: 1280px){:root{--scale: 1.5;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1360px) and (max-width: 1440px){:root{--scale: 1.33;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1536px) and (max-width: 1919px){:root{--scale: 1.25;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale))}.none{display:none}.tableArea .table_wrapper table{border-collapse:collapse;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}thead .checkbox_section{min-width:calc(3.8333333333rem / var(--scale))!important;width:calc(3.8333333333rem / var(--scale))}tbody{background-color:var(--white)}tbody tr{overflow:visible}tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}tbody td{overflow:visible;position:relative;font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textPrimary);min-width:calc(11.6666666667rem / var(--scale));max-width:calc(29.1666666667rem / var(--scale));padding-block:calc(.5rem / var(--scale))}tbody td .tooltip_container{max-width:calc(100% - 2.5rem / var(--scale));height:auto;position:absolute;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);z-index:100;display:none;border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));white-space:normal;word-wrap:break-word;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}tbody td:hover .tooltip_container{display:block}tbody td:last-child ::ng-deep .see_more_data{right:0!important}.tableArea .table_wrapper table thead tr{height:calc(4.5rem / var(--scale));color:var(--textPrimary)}.tableArea .table_wrapper table thead tr img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table thead tr .theading{height:calc(2.25rem / var(--scale))}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0}.tableArea .table_wrapper table thead tr .three_dot{flex-grow:1;margin:0 calc(.3333333333rem / var(--scale)) 0 0;display:flex;flex-direction:row;justify-content:end;align-items:center;flex-wrap:nowrap;gap:0}.tableArea .table_wrapper table thead tr .three_dot img{cursor:pointer}.tableArea .table_wrapper table thead tr th{flex-shrink:0;background-color:var(--theadBg)}.tableArea .table_wrapper table thead tr th:hover .none{display:block}.tableArea .table_wrapper table thead tr th:hover .up,.tableArea .table_wrapper table thead tr th:hover .down{display:none}.tableArea .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:400;border-top:calc(.0833333333rem / var(--scale)) solid var(--tableBorder);transition:all .3s ease-in-out}.tableArea .table_wrapper table tbody tr.urgent{background-color:var(--red-10)}.tableArea .table_wrapper table tbody tr.important{background-color:var(--orange-10)}.tableArea .table_wrapper table tbody tr.disable{opacity:.4;pointer-events:none}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover{background-color:var(--pink-10)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td.action:hover{border-left:calc(.0833333333rem / var(--scale)) solid var(--blue-700);border-right:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td .ellipsis{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(25rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr.td_80{height:calc(6.6666666667rem / var(--scale))}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{text-align:left;padding-left:calc(1.1666666667rem / var(--scale));line-height:1}.thead-img{position:relative}.swap-img{position:absolute;left:calc(.6666666667rem / var(--scale));width:calc(2rem / var(--scale));height:calc(2rem / var(--scale))}.header-content{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0}.header-content .filtering_container{width:calc(20rem / var(--scale));max-height:calc(23.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);position:absolute;z-index:2;right:0;top:calc(2.3333333333rem / var(--scale));border-radius:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;flex-wrap:nowrap;gap:\"\"}.header-content .filtering_container .filter{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-900);padding:calc(.6666666667rem / var(--scale)) calc(1rem / var(--scale));border:none;width:100%;background-color:var(--white);display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2rem / var(--scale));font-weight:400}.header-content .filtering_container .filter.top_border{border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-100)}.tableArea .table_wrapper .headerName ul,.tableArea .table_wrapper .headerName-icon ul{display:flex}.tableArea .table_wrapper table ul{list-style-type:none;padding:0;margin-bottom:0}.tableArea .table_wrapper table ul li{height:calc(.3333333333rem / var(--scale));font-size:var(--fs-14);list-style-type:none}.tableArea .table_wrapper table .sorting_up,.tableArea .table_wrapper table .sorting_down{width:calc(.5833333333rem / var(--scale));height:calc(.3333333333rem / var(--scale))}.tableArea .table_wrapper .headerName,.tableArea .table_wrapper .headerName-icon{margin-left:calc(.5rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:500;color:var(--textPrimary70);height:-webkit-fill-available}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(5.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale))}.pagination_main .pagination_form i-feather{font-weight:600;color:var(--neutral-600)}.pagination_main span{color:var(--textSecondary);font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.pagination_main i-feather{display:flex;width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));color:var(--neutral-600)}.pagination_main .input_style{width:calc(4rem / var(--scale));height:calc(1.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));color:var(--neutral-600);text-align:center;margin:0 calc(.5rem / var(--scale));outline:none}.pagination_main .input_style option{font-size:1rem}.pagination_main .input_style.right{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;margin:0;color:var(--textPrimary);padding:0}.pagination_main .input_style.left{background-color:var(--pagination-bg);color:var(--blue-700);border:none}.pagination_main .outlined_btn{background:transparent;border:solid calc(.0833333333rem / var(--scale)) var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);color:var(--btn-outline)}.pagination_main .prev_btn,.pagination_main .next_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(1.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .disable_btn{background-color:var(--blue-200);pointer-events:none;color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--blue-200)}.pagination_main .disable_btn i-feather{color:var(--white)}.table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border-top-left-radius:calc(1.3333333333rem / var(--scale));border-top-right-radius:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--tableBorder)}.data-table-td .td_wrapper{height:100%;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1rem / var(--scale))}.pagination_main .input_style.left{appearance:none;padding-right:calc(1rem / var(--scale));background-position:80% 50%;width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border-radius:calc(.6666666667rem / var(--scale))}.data-table-td{background-color:var(--blue-50);font-size:var(--fs-16)}.data-table-td i-feather{background-color:var(--white);border-radius:calc(.25rem / var(--scale));box-shadow:0 calc(.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) 0 #00000014;color:var(--neutral-500)}.data-table-td span{vertical-align:middle}.setting-options{position:absolute;right:0;background:var(--white);z-index:2;box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);max-height:calc(37.3333333333rem / var(--scale));width:calc(20.8333333333rem / var(--scale));overflow:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.column-item,.column-header{margin-bottom:calc(1.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.column-item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.column-item input[type=checkbox]{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));margin:0;border-radius:var(--fs-6)}.column-item:last-child{margin-bottom:0}.disabled_col{pointer-events:none;background-color:var(--neutral-50)}.entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .table_wrapper table th:not(:last-child) .right .line{display:block;border-left:calc(.1666666667rem / var(--scale)) solid var(--grey-50);height:calc(2rem / var(--scale))}.sticky-top{top:calc(-.0833333333rem / var(--scale))}.thead-img .theading .left{gap:calc(.6666666667rem / var(--scale))}.ms-1.headerName-icon{min-width:calc(1.5rem / var(--scale))}.custom_radio{display:inline-flex;align-items:center;min-width:calc(1.6666666667rem / var(--scale))!important}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-20);line-height:calc(2rem / var(--scale));font-weight:400}.custom_radio.disabled{pointer-events:none}.custom_radio.disabled .radio_mark{background-color:var(--neutral-100);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.custom_radio.disabled .name{color:var(--neutral-300)}.custom_radio .name{padding-right:calc(1.9166666667rem / var(--scale))}.custom_radio input[type=radio]{display:none}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--blue-700);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.custom_radio input[type=radio]:checked+.radio_mark{background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.custom_radio input[type=radio]:checked+.radio_mark:after{opacity:1}.pagination_form{gap:calc(1.3333333333rem / var(--scale))}.pagination_select{position:relative}.select_dropdown{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-50);border-radius:calc(.6666666667rem / var(--scale));margin:0 calc(.5rem / var(--scale))}.select_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--blue-700)}.select_option{position:absolute;top:auto;bottom:100%;display:flex;flex-direction:column;background-color:var(--white);box-shadow:0 calc(-.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) calc(0rem / var(--scale)) var(--dropdown-shadow);border-radius:calc(.6666666667rem / var(--scale));left:calc(.5rem / var(--scale));z-index:10;padding:calc(.1666666667rem / var(--scale)) 0;margin:calc(.3333333333rem / var(--scale)) 0}.select_option span{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--textSecondary);padding-left:calc(1rem / var(--scale))}.chevron_img{color:var(--neutral-600);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.chevron_img img{width:calc(.8333333333rem / var(--scale))}.moving_column{width:calc(15.1666666667rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.5rem / var(--scale));background-color:var(--white);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.0833333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) calc(.0833333333rem / var(--scale)) var(--filter-shadow);padding-left:calc(1rem / var(--scale));position:absolute;top:69%;left:10%;cursor:grab}.moving_column .column_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.openClose_dropdown{background-color:var(--neutral-50);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));display:flex}.openClose_dropdown i-feather{transform-origin:center;transition:.3s;display:flex;stroke:var(--neutral-600)}.openClose_dropdown i-feather.rotate{transform:rotate(90deg)}.cell-value{line-height:140%}.ellipsis.more_data_wrapper{position:relative;cursor:default}.ellipsis.more_data_wrapper:hover+.see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;width:calc(19.0833333333rem / var(--scale));height:\"\";background-color:var(--blue-50);border-radius:calc(1rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--border);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--dropdown-shadow);padding:calc(.6666666667rem / var(--scale)) 0;display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:10;top:calc(3.3333333333rem / var(--scale))}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--grey-100);font-size:var(--fs-16);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-all}.cell-value.ellipsis:hover .see_more_data{display:flex}.flex-center{display:flex;align-items:center}.cursor-pointer{cursor:pointer}.d-none{display:none}.sort_icons{display:flex;flex-direction:column;gap:calc(.4166666667rem / var(--scale))}.filters{position:relative;display:inline-block;margin-left:6px;cursor:pointer}.filter-icon{width:14px;opacity:.6}.filter-icon-active{background-color:#0ff}.filter-icon:hover{opacity:1}.filter-popup{position:absolute;top:20px;left:0;width:160px;background:#fff;border:1px solid #ddd;padding:8px;box-shadow:0 3px 8px #00000026;border-radius:4px;z-index:99}.filter-popup select,.filter-popup input{width:100%;margin-bottom:8px;padding:4px;font-size:13px}.reset-btn{width:100%;padding:4px;font-size:12px}.set-options{max-height:180px;overflow-y:auto;padding:6px 8px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px}.set-options label{display:flex;align-items:center;gap:6px;padding:6px 4px;cursor:pointer;border-radius:4px}.set-options label:hover{background:#f3f3f3}.set-options input[type=checkbox]{width:14px;height:14px;cursor:pointer}.set-options label:first-child{font-weight:600;border-bottom:1px solid #e5e5e5;margin-bottom:6px;padding-bottom:8px}.th_wraper{display:flex;justify-content:space-between;height:32px;align-items:center;padding:0 12px}.three-dots{cursor:pointer;padding:2px 4px;font-size:13px;-webkit-user-select:none;user-select:none}.three-dots:hover{background:#eee;border-radius:4px}.column-menu{position:absolute;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:9999;padding:6px 0;min-width:160px}.column-menu ul{margin:0;padding:0;list-style:none}.column-menu li{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:14px}.column-menu li:hover{background:#f3f3f3}.column-menu hr{border:none;border-top:1px solid #eee;margin:4px 0}.filter_three_dot_wrapper{display:flex;justify-content:space-between;align-items:center}.logic-row{display:flex;align-items:center;gap:16px;margin:8px 0 6px 4px}.logic-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#444}.logic-item input[type=radio]{width:14px;height:14px;accent-color:#2b7cff;cursor:pointer}.logic-item span{cursor:pointer;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: RendererParserDirective, selector: "[appRendererParser]", inputs: ["rowParam", "col", "api", "currentValue"] }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
1061
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CatsDataGridComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1062
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: CatsDataGridComponent, isStandalone: true, selector: "cats-data-grid", inputs: { tableOptions: "tableOptions", totalRecords: "totalRecords", sortingRequired: "sortingRequired", checkBoxSelection: "checkBoxSelection", checkboxSelectionType: "checkboxSelectionType", rowData: "rowData", colDefs: "colDefs", paginationRequired: "paginationRequired", selectedRowEmpty: "selectedRowEmpty", filterRequired: "filterRequired", threeDotsMenuRequired: "threeDotsMenuRequired", height: "height", groupBy: "groupBy", pageSizeList: "pageSizeList" }, outputs: { onPaginationChange: "onPaginationChange", onCheckboxSelection: "onCheckboxSelection", onScrollEmitter: "onScrollEmitter", filter: "filter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tableArea\">\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"container_scroll\"\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n >\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span\r\n ><input\r\n class=\"form-check-input cursor-pointer\"\r\n type=\"checkbox\"\r\n name=\"\"\r\n id=\"\"\r\n [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\"\r\n (change)=\"onHeaderCheckboxChange($event)\"\r\n /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\"\r\n [draggable]=\"!isResizing\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"flex-center\"\r\n [ngStyle]=\"getStyle(col)\"\r\n (click)=\"onSortingRowData($index, col)\"\r\n >\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n\r\n @if (sortingRequired && sortingColumnIndex == $index &&\r\n col?.sortable) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n @if(sortingType){\r\n <li class=\"cursor-pointer\">\r\n <img\r\n src=\"images/sort_up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/sort_down.svg\"\r\n class=\"sorting_down\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n\r\n }\r\n </ul>\r\n </span>\r\n\r\n }\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <!-- Column Filters Logic-->\r\n @if(filterRequired && col.filterable){\r\n <div\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n <img\r\n src=\"images/filter-icon.svg\"\r\n class=\"filter-icon\"\r\n [ngClass]=\"\r\n activeFilters.has(col.fieldName)\r\n ? 'filter-icon-active'\r\n : 'filter-icon'\r\n \"\r\n />\r\n\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n class=\"filter-popup\"\r\n id=\"filter-popup-{{ $index }}\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <!-- Text Filter -->\r\n @if(col.filterType === 'text'){\r\n <select [(ngModel)]=\"col.textFilters[0].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.textFilters[0].filterValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.textFilters[1].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- Number Filter -->\r\n @if(col.filterType === 'number'){\r\n <select [(ngModel)]=\"col.numberFilters[0].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.numberFilters[0].numberValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.numberFilters[0].numberValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.numberFilters[1].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.numberFilters[1].numberValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- DATE FILTER -->\r\n @if(col.filterType === 'date'){\r\n <select [(ngModel)]=\"col.dateFilters[0].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateFilters[0].dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.dateFilters[0].dateValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n <select [(ngModel)]=\"col.dateFilters[1].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateFilters[1].dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- SET FILTER (CHECKBOX LIST) -->\r\n @if(col.filterType === 'set'){\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n\r\n <div class=\"set-options\">\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllSelected(col)\"\r\n (change)=\"toggleSelectAll(col, $event)\"\r\n />\r\n (Select All)\r\n </label>\r\n\r\n @for(opt of col.filteredOptions; track $index){\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"toggleSetOption(col, opt, $event)\"\r\n />\r\n {{ opt }}\r\n </label>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n @if(threeDotsMenuRequired && col.columnAction){\r\n\r\n <div class=\"three-dots\" (click)=\"openMenu($event, col, $index)\">\r\n <img src=\"images/more-vertical.svg\" />\r\n </div>\r\n } @if(!col.isAction){\r\n <span\r\n class=\"resize-handle\"\r\n (mousedown)=\"startResize($event, $index)\"\r\n >\r\n |\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- popup open -->\r\n @if(menuVisible[$index]){\r\n <div\r\n class=\"column-menu\"\r\n [ngStyle]=\"menuPosition[$index]\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <ul>\r\n @if(sortingType === 'dsc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'asc')\">\r\n <img src=\"images/arrow-up.svg\" class=\"sorting_up\" />\r\n Sort Ascending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'dsc')\">\r\n <img src=\"images/arrow-down.svg\" class=\"sorting_up\" />\r\n Sort Descending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === 'dsc'){\r\n <li (click)=\"onSort(col?.fieldName, '')\">\r\n <span>\r\n <img src=\"images/chevron-up.svg\" class=\"sorting_up\" />\r\n <img src=\"images/chevron-down.svg\" class=\"sorting_up\" />\r\n </span>\r\n Clear Sort\r\n </li>\r\n }\r\n <li (click)=\"pinColumn(col, $index)\">\r\n <img src=\"images/pin.svg\" class=\"sorting_up\" />\r\n {{ col.pinned ? \"Unpin Column\" : \"Pin Column\" }}\r\n </li>\r\n </ul>\r\n </div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if(groupedResult && groupedResult.length > 0){ @for(group of\r\n groupedResult; track group.key){\r\n <tr (click)=\"toggleGroup(group)\">\r\n <td\r\n class=\"group-cell\"\r\n [attr.colspan]=\"colDefs.length + (checkBoxSelection ? 1 : 0)\"\r\n >\r\n <span class=\"group-toggle\">\r\n <img\r\n src=\"images/{{\r\n group.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\r\n }}\"\r\n />\r\n {{ group.key }} ({{ group.children.length }})\r\n </span>\r\n </td>\r\n </tr>\r\n\r\n @if(group.expanded){\r\n <!-- CASE 1: CHILDREN ARE MORE GROUPS -->\r\n @if (group.children[0]?.children) { @for (child of group.children; track\r\n child.key) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: child,\r\n colDefs: colDefs,\r\n checkBoxSelection: checkBoxSelection,\r\n level: 1\r\n }\"\r\n ></ng-container>\r\n } }\r\n\r\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\r\n @if (!group.children[0]?.children) { @for (row of group.children; track\r\n row.rowId) {\r\n <tr [ngClass]=\"row | addClass : tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\" />\r\n </td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track $index) {\r\n <td [ngStyle]=\"getStyle(col)\">\r\n {{ row[col.fieldName] }}\r\n </td>\r\n }\r\n </tr>\r\n } } } } } @else{ @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span\r\n ><input\r\n type=\"checkbox\"\r\n class=\"form-check-input pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input\r\n type=\"radio\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(data) : '',\r\n col.pinned ? 'pinned' : ''\r\n ]\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div\r\n [rowParam]=\"data\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"\r\n ></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n } }\r\n </tbody>\r\n\r\n <ng-template\r\n #groupTemplate\r\n let-node\r\n let-colDefs=\"colDefs\"\r\n let-checkBoxSelection=\"checkBoxSelection\"\r\n let-level=\"level\"\r\n >\r\n <!-- GROUP HEADER -->\r\n <tr (click)=\"toggleGroup(node)\">\r\n <td\r\n [attr.colspan]=\"colDefs.length + (checkBoxSelection ? 1 : 0)\"\r\n [style.paddingLeft.px]=\"level * 20\"\r\n class=\"group-cell\"\r\n >\r\n <span class=\"group-toggle\">\r\n <img\r\n src=\"images/{{\r\n node.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\r\n }}\"\r\n />\r\n {{ node.key }} ({{ node.children.length }})\r\n </span>\r\n </td>\r\n </tr>\r\n\r\n <!-- CHILDREN -->\r\n @if (node.expanded) {\r\n\r\n <!-- CASE: more groups -->\r\n @if (node.children[0]?.children) { @for (child of node.children; track\r\n child.key) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: child,\r\n colDefs: colDefs,\r\n checkBoxSelection: checkBoxSelection,\r\n level: level + 1\r\n }\"\r\n >\r\n </ng-container>\r\n } }\r\n\r\n <!-- CASE: final rows -->\r\n @if (!node.children[0]?.children) { @for (row of node.children; track\r\n row.rowId) {\r\n <tr>\r\n @if (checkBoxSelection) {\r\n <td><input type=\"checkbox\" [checked]=\"row.isSelected\" /></td>\r\n } @for (col of colDefs; track $index) {\r\n <td>{{ row[col.fieldName] }}</td>\r\n }\r\n </tr>\r\n } } }\r\n </ng-template>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div\r\n class=\"pagination_select\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div\r\n class=\"select_dropdown pointer\"\r\n (click)=\"showPageSizeList = !showPageSizeList\"\r\n >\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span\r\n class=\"pointer\"\r\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\r\n >{{ option }}</span\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span\r\n >Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span\r\n >\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button\r\n class=\"outlined_btn prev_btn\"\r\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\r\n type=\"button\"\r\n (click)=\"onBtPrevClick()\"\r\n >\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style right\"\r\n type=\"number\"\r\n [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\"\r\n name=\"\"\r\n id=\"\"\r\n />\r\n </div>\r\n <button\r\n class=\"outlined_btn next_btn\"\r\n type=\"button\"\r\n [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n", styles: [":root{--white: #fff;--white-creame: #ebf3ff;--border: #dae3f8;--scrollbar: var(--border);--textPrimary: #0b1c33;--textPrimary70: #0b1c33b3;--textSecondary: #556171;--textSecondary50: #55617180;--textSecondary70: #556171b3;--pink-10: #f9fbfe;--ice-blue: #67adcf;--primaryBlue: #017db9;--primaryBlue70: #017db9be;--blue-10: #edf4fe;--blue-40: #e3f3fc;--blue-50: #f2f5fa;--blue-5050: #f2f5fa80;--blue-100: #c8e2ff;--blue-200: #a4cfff;--blue-300: #2680ea;--blue-500: #3788e5;--blue-700: #007aff;--yellow-50: #ffeedf;--yellow-100: #fed18f;--yellow-200: #ffbca6;--yellow-300: #f08a2b26;--yellow-400: #e58900;--primaryOrange: #f05a2b;--primaryOrange50: #f05a2b80;--primaryOrange70: #f05a2bb3;--orange-10: #fcf5eb;--orange-200: #f7ac94;--orange-300: #fb9676;--theadBg: var(--blue-50);--pagination-bg: #f7fafe;--blue-200: var(--border);--neutral-200: #dadbdc;--neutral-600: #040d17;--toastShadow: #0000001f;--dropdown-shadow: #00000014;--green-50: #eaf8f1;--green-100: #bde8d3;--green-600: #27a468;--red-10: #fcebef;--red-20: #ca0000;--red-30: #F7C1CE;--error-red: #d03258;--tableBorder: var(--border);--grey-50: #a5b0bf;--grey-100: #333333;--grey-200: #222A3D;--capture-border: #9badca;--captcha-bg: #f3f3f3;--neutral-400: #81858a}html{font-size:12px}.row_div{min-height:calc(4.5rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .col_div{width:50%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .label{width:calc(16.6666666667rem / var(--scale));min-width:calc(16.6666666667rem / var(--scale));padding:0 calc(2rem / var(--scale));color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:500;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.25rem / var(--scale))}.row_div .label sup{top:calc(-.1666666667rem / var(--scale))}.row_div .field{padding:calc(.6666666667rem / var(--scale)) calc(2rem / var(--scale));flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:\"\";color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.row_div .field li{list-style:disc;line-height:calc(2.6666666667rem / var(--scale));margin-left:calc(1.5rem / var(--scale))}textarea,input,.ordered_textarea{color:var(--textPrimary)}.errorField{flex-direction:column;align-items:start}.errorField .error{max-width:calc(37.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:0}.errorField .error i-feather[name=info]{padding-right:calc(.3333333333rem / var(--scale));display:flex;stroke:var(--error-red);width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.errorField textarea,.errorField input,.errorField .ordered_textarea{color:var(--textPrimary);border:calc(.0833333333rem / var(--scale)) solid var(--error-red)}.errorField .error{padding-top:calc(.6666666667rem / var(--scale));color:var(--error-red);font-size:var(--fs-12);line-height:140%;font-weight:400}sup{color:var(--error-red)}input::placeholder,textarea::placeholder{color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:400}textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;min-height:calc(9rem / var(--scale));resize:none}input{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale))}input.disable{background-color:var(--blue-50);pointer-events:none}.ordered_textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;list-style:disc;min-height:calc(9rem / var(--scale))}.ordered_textarea ul{padding-left:calc(2.6666666667rem / var(--scale));outline:none}.ordered_textarea ul.editable-div{min-height:calc(6rem / var(--scale));max-height:calc(9.3333333333rem / var(--scale));overflow:auto}.ordered_textarea ul li{margin-left:calc(1.75rem / var(--scale));list-style:disc;color:var(--textPrimary);font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:400}.custom_radio{display:inline-flex;align-items:center;min-width:calc(18.5833333333rem / var(--scale))}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-16);line-height:140%;font-weight:400}.custom_radio.disabled .name{color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--border);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.dob_age_field{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:0 calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale));background-color:var(--blue-50);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.dob_age_field .dob,.dob_age_field .age{font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textSecondary)}.dob_age_field .age{padding-left:calc(.8333333333rem / var(--scale))}.dob_age_field .dob{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:50%;height:100%;padding-right:calc(.8333333333rem / var(--scale));border-right:calc(.0833333333rem / var(--scale)) solid var(--border)}.dob_age_field .dob img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.date{position:relative;width:100%}.date img{position:absolute;right:calc(1.3333333333rem / var(--scale));top:calc(1.25rem / var(--scale))}input[type=checkbox]{margin-right:calc(.6666666667rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));border-radius:calc(.3333333333rem / var(--scale))}ol li{list-style:auto!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:Rethink}body{font-size:100%}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}h1,h2,h3,h4,h5,h6,ul,ol,p{margin:0;padding:0;text-wrap:pretty}ul[role=list],ol[role=list],ul{list-style:none}img,picture{max-width:100%;display:block}input,select,textarea{outline:none;box-shadow:none}:root{--fs-6: 6px;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-30: 30px;--fs-32: 32px;--fs-42: 42px;--fs-48: 48px;--img-w: 28px;--scale: 1}@media only screen and (min-width: 1024px) and (max-width: 1280px){:root{--scale: 1.5;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1360px) and (max-width: 1440px){:root{--scale: 1.33;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1536px) and (max-width: 1919px){:root{--scale: 1.25;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale))}.none{display:none}.tableArea .table_wrapper table{border-collapse:collapse;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:2;background-color:var(--white)}thead .checkbox_section{min-width:calc(3.8333333333rem / var(--scale))!important;width:calc(3.8333333333rem / var(--scale))}tbody{background-color:var(--white)}tbody tr{overflow:visible}tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}tbody td{overflow:visible;position:relative;font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textPrimary);min-width:calc(11.6666666667rem / var(--scale));max-width:calc(29.1666666667rem / var(--scale));padding-block:calc(.5rem / var(--scale))}tbody td .tooltip_container{max-width:calc(100% - 2.5rem / var(--scale));height:auto;position:absolute;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);z-index:100;display:none;border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));white-space:normal;word-wrap:break-word;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}tbody td:hover .tooltip_container{display:block}tbody td:last-child ::ng-deep .see_more_data{right:0!important}.tableArea .table_wrapper table thead tr{height:calc(4.5rem / var(--scale));color:var(--textPrimary)}.tableArea .table_wrapper table thead tr img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table thead tr .theading{height:calc(2.25rem / var(--scale))}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0}.tableArea .table_wrapper table thead tr .three_dot{flex-grow:1;margin:0 calc(.3333333333rem / var(--scale)) 0 0;display:flex;flex-direction:row;justify-content:end;align-items:center;flex-wrap:nowrap;gap:0}.tableArea .table_wrapper table thead tr .three_dot img{cursor:pointer}.tableArea .table_wrapper table thead tr th{flex-shrink:0;background-color:var(--theadBg)}.tableArea .table_wrapper table thead tr th:hover .none{display:block}.tableArea .table_wrapper table thead tr th:hover .up,.tableArea .table_wrapper table thead tr th:hover .down{display:none}.tableArea .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:400;border-top:calc(.0833333333rem / var(--scale)) solid var(--tableBorder);transition:all .3s ease-in-out}.tableArea .table_wrapper table tbody tr.urgent{background-color:var(--red-10)}.tableArea .table_wrapper table tbody tr.important{background-color:var(--orange-10)}.tableArea .table_wrapper table tbody tr.disable{opacity:.4;pointer-events:none}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover{background-color:var(--pink-10)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td.action:hover{border-left:calc(.0833333333rem / var(--scale)) solid var(--blue-700);border-right:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td .ellipsis{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(25rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr.td_80{height:calc(6.6666666667rem / var(--scale))}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{text-align:left;padding-left:calc(1.1666666667rem / var(--scale));line-height:1}.thead-img{position:relative}.swap-img{position:absolute;left:calc(.6666666667rem / var(--scale));width:calc(2rem / var(--scale));height:calc(2rem / var(--scale))}.header-content{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0}.header-content .filtering_container{width:calc(20rem / var(--scale));max-height:calc(23.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);position:fixed;z-index:2;right:0;top:calc(2.3333333333rem / var(--scale));border-radius:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;flex-wrap:nowrap;gap:\"\"}.header-content .filtering_container .filter{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-900);padding:calc(.6666666667rem / var(--scale)) calc(1rem / var(--scale));border:none;width:100%;background-color:var(--white);display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2rem / var(--scale));font-weight:400}.header-content .filtering_container .filter.top_border{border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-100)}.tableArea .table_wrapper .headerName ul,.tableArea .table_wrapper .headerName-icon ul{display:flex}.tableArea .table_wrapper table ul{list-style-type:none;padding:0;margin-bottom:0}.tableArea .table_wrapper table ul li{height:calc(.3333333333rem / var(--scale));font-size:var(--fs-14);list-style-type:none}.tableArea .table_wrapper table .sorting_up,.tableArea .table_wrapper table .sorting_down{width:calc(.5833333333rem / var(--scale));height:calc(.3333333333rem / var(--scale))}.tableArea .table_wrapper .headerName,.tableArea .table_wrapper .headerName-icon{margin-left:calc(.5rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:500;color:var(--textPrimary70);height:-webkit-fill-available}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(5.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale))}.pagination_main .pagination_form i-feather{font-weight:600;color:var(--neutral-600)}.pagination_main span{color:var(--textSecondary);font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.pagination_main i-feather{display:flex;width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));color:var(--neutral-600)}.pagination_main .input_style{width:calc(4rem / var(--scale));height:calc(1.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));color:var(--neutral-600);text-align:center;margin:0 calc(.5rem / var(--scale));outline:none}.pagination_main .input_style option{font-size:1rem}.pagination_main .input_style.right{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;margin:0;color:var(--textPrimary);padding:0}.pagination_main .input_style.left{background-color:var(--pagination-bg);color:var(--blue-700);border:none}.pagination_main .outlined_btn{background:transparent;border:solid calc(.0833333333rem / var(--scale)) var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);color:var(--btn-outline)}.pagination_main .prev_btn,.pagination_main .next_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(1.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .disable_btn{background-color:var(--blue-200);pointer-events:none;color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--blue-200)}.pagination_main .disable_btn i-feather{color:var(--white)}.table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border-top-left-radius:calc(1.3333333333rem / var(--scale));border-top-right-radius:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--tableBorder)}.data-table-td .td_wrapper{height:100%;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1rem / var(--scale))}.pagination_main .input_style.left{appearance:none;padding-right:calc(1rem / var(--scale));background-position:80% 50%;width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border-radius:calc(.6666666667rem / var(--scale))}.data-table-td{background-color:var(--blue-50);font-size:var(--fs-16)}.data-table-td i-feather{background-color:var(--white);border-radius:calc(.25rem / var(--scale));box-shadow:0 calc(.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) 0 #00000014;color:var(--neutral-500)}.data-table-td span{vertical-align:middle}.setting-options{position:absolute;right:0;background:var(--white);z-index:2;box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);max-height:calc(37.3333333333rem / var(--scale));width:calc(20.8333333333rem / var(--scale));overflow:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.column-item,.column-header{margin-bottom:calc(1.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.column-item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.column-item input[type=checkbox]{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));margin:0;border-radius:var(--fs-6)}.column-item:last-child{margin-bottom:0}.disabled_col{pointer-events:none;background-color:var(--neutral-50)}.entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .table_wrapper table th:not(:last-child) .right .line{display:block;border-left:calc(.1666666667rem / var(--scale)) solid var(--grey-50);height:calc(2rem / var(--scale))}.sticky-top{top:calc(-.0833333333rem / var(--scale))}.thead-img .theading .left{gap:calc(.6666666667rem / var(--scale))}.ms-1.headerName-icon{min-width:calc(1.5rem / var(--scale))}.custom_radio{display:inline-flex;align-items:center;min-width:calc(1.6666666667rem / var(--scale))!important}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-20);line-height:calc(2rem / var(--scale));font-weight:400}.custom_radio.disabled{pointer-events:none}.custom_radio.disabled .radio_mark{background-color:var(--neutral-100);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.custom_radio.disabled .name{color:var(--neutral-300)}.custom_radio .name{padding-right:calc(1.9166666667rem / var(--scale))}.custom_radio input[type=radio]{display:none}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--blue-700);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.custom_radio input[type=radio]:checked+.radio_mark{background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.custom_radio input[type=radio]:checked+.radio_mark:after{opacity:1}.pagination_form{gap:calc(1.3333333333rem / var(--scale))}.pagination_select{position:relative}.select_dropdown{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-50);border-radius:calc(.6666666667rem / var(--scale));margin:0 calc(.5rem / var(--scale))}.select_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--blue-700)}.select_option{position:absolute;top:auto;bottom:100%;display:flex;flex-direction:column;background-color:var(--white);box-shadow:0 calc(-.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) calc(0rem / var(--scale)) var(--dropdown-shadow);border-radius:calc(.6666666667rem / var(--scale));left:calc(.5rem / var(--scale));z-index:10;padding:calc(.1666666667rem / var(--scale)) 0;margin:calc(.3333333333rem / var(--scale)) 0}.select_option span{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--textSecondary);padding-left:calc(1rem / var(--scale))}.chevron_img{color:var(--neutral-600);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.chevron_img img{width:calc(.8333333333rem / var(--scale))}.moving_column{width:calc(15.1666666667rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.5rem / var(--scale));background-color:var(--white);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.0833333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) calc(.0833333333rem / var(--scale)) var(--filter-shadow);padding-left:calc(1rem / var(--scale));position:absolute;top:69%;left:10%;cursor:grab}.moving_column .column_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.openClose_dropdown{background-color:var(--neutral-50);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));display:flex}.openClose_dropdown i-feather{transform-origin:center;transition:.3s;display:flex;stroke:var(--neutral-600)}.openClose_dropdown i-feather.rotate{transform:rotate(90deg)}.cell-value{line-height:140%}.ellipsis.more_data_wrapper{position:relative;cursor:default}.ellipsis.more_data_wrapper:hover+.see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;width:calc(19.0833333333rem / var(--scale));height:\"\";background-color:var(--blue-50);border-radius:calc(1rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--border);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--dropdown-shadow);padding:calc(.6666666667rem / var(--scale)) 0;display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:10;top:calc(3.3333333333rem / var(--scale))}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--grey-100);font-size:var(--fs-16);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-all}.cell-value.ellipsis:hover .see_more_data{display:flex}.flex-center{display:flex;align-items:center}.cursor-pointer{cursor:pointer}.d-none{display:none}.sort_icons{display:flex;flex-direction:column;gap:calc(.4166666667rem / var(--scale))}.filters{position:relative;display:inline-block;margin-left:6px;cursor:pointer}.filter-icon{width:14px;opacity:.6}.filter-icon-active{background-color:#0ff}.filter-icon:hover{opacity:1}.filter-popup{position:absolute;top:20px;left:0;width:160px;background:#fff;border:1px solid #ddd;padding:8px;box-shadow:0 3px 8px #00000026;border-radius:4px;z-index:99}.filter-popup select,.filter-popup input{width:100%;margin-bottom:8px;padding:4px;font-size:13px}.reset-btn{width:100%;padding:4px;font-size:12px}.set-options{max-height:180px;overflow-y:auto;padding:6px 8px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px}.set-options label{display:flex;align-items:center;gap:6px;padding:6px 4px;cursor:pointer;border-radius:4px}.set-options label:hover{background:#f3f3f3}.set-options input[type=checkbox]{width:14px;height:14px;cursor:pointer}.set-options label:first-child{font-weight:600;border-bottom:1px solid #e5e5e5;margin-bottom:6px;padding-bottom:8px}.th_wraper{position:relative;display:flex;justify-content:space-between;height:32px;align-items:center;padding:0 12px}.three-dots{cursor:pointer;padding:2px 4px;font-size:13px;-webkit-user-select:none;user-select:none}.three-dots:hover{background:#eee;border-radius:4px}.column-menu{position:fixed;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:9999;padding:6px 0;min-width:160px}.column-menu ul{margin:0;padding:0;list-style:none}.column-menu li{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:14px}.column-menu li:hover{background:#f3f3f3}.column-menu hr{border:none;border-top:1px solid #eee;margin:4px 0}.filter_three_dot_wrapper{display:flex;justify-content:space-between;align-items:center}.logic-row{display:flex;align-items:center;gap:16px;margin:8px 0 6px 4px}.logic-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#444}.logic-item input[type=radio]{width:14px;height:14px;accent-color:#2b7cff;cursor:pointer}.logic-item span{cursor:pointer;font-weight:500}.resizable-header{position:relative;white-space:nowrap;-webkit-user-select:none;user-select:none}.resize-handle{position:absolute;right:0;top:30%;width:6px;height:100%;color:gray;font-size:larger;cursor:w-resize}.group-cell{padding:8px 12px}.group-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.group-toggle img{width:14px;height:14px}.pinned{z-index:11!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: RendererParserDirective, selector: "[appRendererParser]", inputs: ["rowParam", "col", "api", "currentValue"] }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
833
1063
  }
834
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CatsDataGridComponent, decorators: [{
1064
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: CatsDataGridComponent, decorators: [{
835
1065
  type: Component,
836
1066
  args: [{ selector: 'cats-data-grid', imports: [
837
1067
  CommonModule,
@@ -839,7 +1069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
839
1069
  OutsideClickDirective,
840
1070
  RendererParserDirective,
841
1071
  AddClassPipe,
842
- ], template: "<div class=\"tableArea\">\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"container_scroll\"\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n >\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span\r\n ><input\r\n class=\"form-check-input cursor-pointer\"\r\n type=\"checkbox\"\r\n name=\"\"\r\n id=\"\"\r\n [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\"\r\n (change)=\"onHeaderCheckboxChange($event)\"\r\n /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\"\r\n draggable=\"true\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"flex-center\"\r\n [ngStyle]=\"getStyle(col)\"\r\n (click)=\"onSortingRowData($index, col?.fieldName)\"\r\n >\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n @if (sortingRequired && sortingColumnIndex == $index) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n @if(sortingType){\r\n <li class=\"cursor-pointer\">\r\n <img\r\n src=\"images/sort_up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/sort_down.svg\"\r\n class=\"sorting_down\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n\r\n }\r\n </ul>\r\n </span>\r\n\r\n }\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <!-- Column Filters Logic-->\r\n @if(filterRequired && col.filter){\r\n <div\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n <img\r\n src=\"images/filter-icon.svg\"\r\n class=\"filter-icon\"\r\n [ngClass]=\"\r\n activeFilters.has(col.fieldName)\r\n ? 'filter-icon-active'\r\n : 'filter-icon'\r\n \"\r\n />\r\n\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n class=\"filter-popup\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <!-- Text Filter -->\r\n @if(col.dataType === 'text'){\r\n <select [(ngModel)]=\"col.textFilters[0].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.textFilters[0].filterValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.textFilters[1].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- Number Filter -->\r\n @if(col.dataType === 'number'){\r\n <select [(ngModel)]=\"col.numberFilters[0].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.numberFilters[0].numberValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.numberFilters[0].numberValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.numberFilters[1].numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.numberFilters[1].numberValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- DATE FILTER -->\r\n <ng-container *ngIf=\"col.dataType === 'date'\">\r\n <select [(ngModel)]=\"col.numberCondition\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n </ng-container>\r\n\r\n <!-- SET FILTER (CHECKBOX LIST) -->\r\n <ng-container *ngIf=\"col.dataType === 'set'\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n\r\n <div class=\"set-options\">\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllSelected(col)\"\r\n (change)=\"toggleSelectAll(col, $event)\"\r\n />\r\n (Select All)\r\n </label>\r\n\r\n <label *ngFor=\"let opt of col.filteredOptions\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"toggleSetOption(col, opt, $event)\"\r\n />\r\n {{ opt }}\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n @if(threeDotsMenuRequired && col.menu){\r\n\r\n <div class=\"three-dots\" (click)=\"openMenu($event, col, $index)\">\r\n <img src=\"images/more-vertical.svg\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- popup open -->\r\n <div\r\n class=\"column-menu\"\r\n *ngIf=\"menuVisible[$index]\"\r\n [ngStyle]=\"menuPosition[$index]\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <ul>\r\n @if(sortingType === 'dsc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'asc')\">\r\n <img src=\"images/arrow-up.svg\" class=\"sorting_up\" />\r\n Sort Ascending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'dsc')\">\r\n <img src=\"images/arrow-down.svg\" class=\"sorting_up\" />\r\n Sort Descending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === 'dsc'){\r\n <li (click)=\"onSort(col?.fieldName, '')\">\r\n <span>\r\n <img src=\"images/chevron-up.svg\" class=\"sorting_up\" />\r\n <img src=\"images/chevron-down.svg\" class=\"sorting_up\" />\r\n </span>\r\n Clear Sort\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span\r\n ><input\r\n type=\"checkbox\"\r\n class=\"form-check-input pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input\r\n type=\"radio\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"col?.addClass ? col.addClass(data) : ''\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div\r\n [rowParam]=\"data\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"\r\n ></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div\r\n class=\"pagination_select\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div\r\n class=\"select_dropdown pointer\"\r\n (click)=\"showPageSizeList = !showPageSizeList\"\r\n >\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span\r\n class=\"pointer\"\r\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\r\n >{{ option }}</span\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span\r\n >Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span\r\n >\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button\r\n class=\"outlined_btn prev_btn\"\r\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\r\n type=\"button\"\r\n (click)=\"onBtPrevClick()\"\r\n >\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style right\"\r\n type=\"number\"\r\n [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\"\r\n name=\"\"\r\n id=\"\"\r\n />\r\n </div>\r\n <button\r\n class=\"outlined_btn next_btn\"\r\n type=\"button\"\r\n [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n", styles: [":root{--white: #fff;--white-creame: #ebf3ff;--border: #dae3f8;--scrollbar: var(--border);--textPrimary: #0b1c33;--textPrimary70: #0b1c33b3;--textSecondary: #556171;--textSecondary50: #55617180;--textSecondary70: #556171b3;--pink-10: #f9fbfe;--ice-blue: #67adcf;--primaryBlue: #017db9;--primaryBlue70: #017db9be;--blue-10: #edf4fe;--blue-40: #e3f3fc;--blue-50: #f2f5fa;--blue-5050: #f2f5fa80;--blue-100: #c8e2ff;--blue-200: #a4cfff;--blue-300: #2680ea;--blue-500: #3788e5;--blue-700: #007aff;--yellow-50: #ffeedf;--yellow-100: #fed18f;--yellow-200: #ffbca6;--yellow-300: #f08a2b26;--yellow-400: #e58900;--primaryOrange: #f05a2b;--primaryOrange50: #f05a2b80;--primaryOrange70: #f05a2bb3;--orange-10: #fcf5eb;--orange-200: #f7ac94;--orange-300: #fb9676;--theadBg: var(--blue-50);--pagination-bg: #f7fafe;--blue-200: var(--border);--neutral-200: #dadbdc;--neutral-600: #040d17;--toastShadow: #0000001f;--dropdown-shadow: #00000014;--green-50: #eaf8f1;--green-100: #bde8d3;--green-600: #27a468;--red-10: #fcebef;--red-20: #ca0000;--red-30: #F7C1CE;--error-red: #d03258;--tableBorder: var(--border);--grey-50: #a5b0bf;--grey-100: #333333;--grey-200: #222A3D;--capture-border: #9badca;--captcha-bg: #f3f3f3;--neutral-400: #81858a}html{font-size:12px}.row_div{min-height:calc(4.5rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .col_div{width:50%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .label{width:calc(16.6666666667rem / var(--scale));min-width:calc(16.6666666667rem / var(--scale));padding:0 calc(2rem / var(--scale));color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:500;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.25rem / var(--scale))}.row_div .label sup{top:calc(-.1666666667rem / var(--scale))}.row_div .field{padding:calc(.6666666667rem / var(--scale)) calc(2rem / var(--scale));flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:\"\";color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.row_div .field li{list-style:disc;line-height:calc(2.6666666667rem / var(--scale));margin-left:calc(1.5rem / var(--scale))}textarea,input,.ordered_textarea{color:var(--textPrimary)}.errorField{flex-direction:column;align-items:start}.errorField .error{max-width:calc(37.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:0}.errorField .error i-feather[name=info]{padding-right:calc(.3333333333rem / var(--scale));display:flex;stroke:var(--error-red);width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.errorField textarea,.errorField input,.errorField .ordered_textarea{color:var(--textPrimary);border:calc(.0833333333rem / var(--scale)) solid var(--error-red)}.errorField .error{padding-top:calc(.6666666667rem / var(--scale));color:var(--error-red);font-size:var(--fs-12);line-height:140%;font-weight:400}sup{color:var(--error-red)}input::placeholder,textarea::placeholder{color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:400}textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;min-height:calc(9rem / var(--scale));resize:none}input{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale))}input.disable{background-color:var(--blue-50);pointer-events:none}.ordered_textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;list-style:disc;min-height:calc(9rem / var(--scale))}.ordered_textarea ul{padding-left:calc(2.6666666667rem / var(--scale));outline:none}.ordered_textarea ul.editable-div{min-height:calc(6rem / var(--scale));max-height:calc(9.3333333333rem / var(--scale));overflow:auto}.ordered_textarea ul li{margin-left:calc(1.75rem / var(--scale));list-style:disc;color:var(--textPrimary);font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:400}.custom_radio{display:inline-flex;align-items:center;min-width:calc(18.5833333333rem / var(--scale))}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-16);line-height:140%;font-weight:400}.custom_radio.disabled .name{color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--border);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.dob_age_field{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:0 calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale));background-color:var(--blue-50);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.dob_age_field .dob,.dob_age_field .age{font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textSecondary)}.dob_age_field .age{padding-left:calc(.8333333333rem / var(--scale))}.dob_age_field .dob{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:50%;height:100%;padding-right:calc(.8333333333rem / var(--scale));border-right:calc(.0833333333rem / var(--scale)) solid var(--border)}.dob_age_field .dob img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.date{position:relative;width:100%}.date img{position:absolute;right:calc(1.3333333333rem / var(--scale));top:calc(1.25rem / var(--scale))}input[type=checkbox]{margin-right:calc(.6666666667rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));border-radius:calc(.3333333333rem / var(--scale))}ol li{list-style:auto!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:Rethink}body{font-size:100%}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}h1,h2,h3,h4,h5,h6,ul,ol,p{margin:0;padding:0;text-wrap:pretty}ul[role=list],ol[role=list],ul{list-style:none}img,picture{max-width:100%;display:block}input,select,textarea{outline:none;box-shadow:none}:root{--fs-6: 6px;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-30: 30px;--fs-32: 32px;--fs-42: 42px;--fs-48: 48px;--img-w: 28px;--scale: 1}@media only screen and (min-width: 1024px) and (max-width: 1280px){:root{--scale: 1.5;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1360px) and (max-width: 1440px){:root{--scale: 1.33;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1536px) and (max-width: 1919px){:root{--scale: 1.25;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale))}.none{display:none}.tableArea .table_wrapper table{border-collapse:collapse;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}thead .checkbox_section{min-width:calc(3.8333333333rem / var(--scale))!important;width:calc(3.8333333333rem / var(--scale))}tbody{background-color:var(--white)}tbody tr{overflow:visible}tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}tbody td{overflow:visible;position:relative;font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textPrimary);min-width:calc(11.6666666667rem / var(--scale));max-width:calc(29.1666666667rem / var(--scale));padding-block:calc(.5rem / var(--scale))}tbody td .tooltip_container{max-width:calc(100% - 2.5rem / var(--scale));height:auto;position:absolute;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);z-index:100;display:none;border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));white-space:normal;word-wrap:break-word;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}tbody td:hover .tooltip_container{display:block}tbody td:last-child ::ng-deep .see_more_data{right:0!important}.tableArea .table_wrapper table thead tr{height:calc(4.5rem / var(--scale));color:var(--textPrimary)}.tableArea .table_wrapper table thead tr img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table thead tr .theading{height:calc(2.25rem / var(--scale))}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0}.tableArea .table_wrapper table thead tr .three_dot{flex-grow:1;margin:0 calc(.3333333333rem / var(--scale)) 0 0;display:flex;flex-direction:row;justify-content:end;align-items:center;flex-wrap:nowrap;gap:0}.tableArea .table_wrapper table thead tr .three_dot img{cursor:pointer}.tableArea .table_wrapper table thead tr th{flex-shrink:0;background-color:var(--theadBg)}.tableArea .table_wrapper table thead tr th:hover .none{display:block}.tableArea .table_wrapper table thead tr th:hover .up,.tableArea .table_wrapper table thead tr th:hover .down{display:none}.tableArea .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:400;border-top:calc(.0833333333rem / var(--scale)) solid var(--tableBorder);transition:all .3s ease-in-out}.tableArea .table_wrapper table tbody tr.urgent{background-color:var(--red-10)}.tableArea .table_wrapper table tbody tr.important{background-color:var(--orange-10)}.tableArea .table_wrapper table tbody tr.disable{opacity:.4;pointer-events:none}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover{background-color:var(--pink-10)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td.action:hover{border-left:calc(.0833333333rem / var(--scale)) solid var(--blue-700);border-right:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td .ellipsis{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(25rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr.td_80{height:calc(6.6666666667rem / var(--scale))}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{text-align:left;padding-left:calc(1.1666666667rem / var(--scale));line-height:1}.thead-img{position:relative}.swap-img{position:absolute;left:calc(.6666666667rem / var(--scale));width:calc(2rem / var(--scale));height:calc(2rem / var(--scale))}.header-content{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0}.header-content .filtering_container{width:calc(20rem / var(--scale));max-height:calc(23.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);position:absolute;z-index:2;right:0;top:calc(2.3333333333rem / var(--scale));border-radius:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;flex-wrap:nowrap;gap:\"\"}.header-content .filtering_container .filter{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-900);padding:calc(.6666666667rem / var(--scale)) calc(1rem / var(--scale));border:none;width:100%;background-color:var(--white);display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2rem / var(--scale));font-weight:400}.header-content .filtering_container .filter.top_border{border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-100)}.tableArea .table_wrapper .headerName ul,.tableArea .table_wrapper .headerName-icon ul{display:flex}.tableArea .table_wrapper table ul{list-style-type:none;padding:0;margin-bottom:0}.tableArea .table_wrapper table ul li{height:calc(.3333333333rem / var(--scale));font-size:var(--fs-14);list-style-type:none}.tableArea .table_wrapper table .sorting_up,.tableArea .table_wrapper table .sorting_down{width:calc(.5833333333rem / var(--scale));height:calc(.3333333333rem / var(--scale))}.tableArea .table_wrapper .headerName,.tableArea .table_wrapper .headerName-icon{margin-left:calc(.5rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:500;color:var(--textPrimary70);height:-webkit-fill-available}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(5.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale))}.pagination_main .pagination_form i-feather{font-weight:600;color:var(--neutral-600)}.pagination_main span{color:var(--textSecondary);font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.pagination_main i-feather{display:flex;width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));color:var(--neutral-600)}.pagination_main .input_style{width:calc(4rem / var(--scale));height:calc(1.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));color:var(--neutral-600);text-align:center;margin:0 calc(.5rem / var(--scale));outline:none}.pagination_main .input_style option{font-size:1rem}.pagination_main .input_style.right{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;margin:0;color:var(--textPrimary);padding:0}.pagination_main .input_style.left{background-color:var(--pagination-bg);color:var(--blue-700);border:none}.pagination_main .outlined_btn{background:transparent;border:solid calc(.0833333333rem / var(--scale)) var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);color:var(--btn-outline)}.pagination_main .prev_btn,.pagination_main .next_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(1.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .disable_btn{background-color:var(--blue-200);pointer-events:none;color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--blue-200)}.pagination_main .disable_btn i-feather{color:var(--white)}.table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border-top-left-radius:calc(1.3333333333rem / var(--scale));border-top-right-radius:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--tableBorder)}.data-table-td .td_wrapper{height:100%;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1rem / var(--scale))}.pagination_main .input_style.left{appearance:none;padding-right:calc(1rem / var(--scale));background-position:80% 50%;width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border-radius:calc(.6666666667rem / var(--scale))}.data-table-td{background-color:var(--blue-50);font-size:var(--fs-16)}.data-table-td i-feather{background-color:var(--white);border-radius:calc(.25rem / var(--scale));box-shadow:0 calc(.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) 0 #00000014;color:var(--neutral-500)}.data-table-td span{vertical-align:middle}.setting-options{position:absolute;right:0;background:var(--white);z-index:2;box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);max-height:calc(37.3333333333rem / var(--scale));width:calc(20.8333333333rem / var(--scale));overflow:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.column-item,.column-header{margin-bottom:calc(1.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.column-item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.column-item input[type=checkbox]{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));margin:0;border-radius:var(--fs-6)}.column-item:last-child{margin-bottom:0}.disabled_col{pointer-events:none;background-color:var(--neutral-50)}.entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .table_wrapper table th:not(:last-child) .right .line{display:block;border-left:calc(.1666666667rem / var(--scale)) solid var(--grey-50);height:calc(2rem / var(--scale))}.sticky-top{top:calc(-.0833333333rem / var(--scale))}.thead-img .theading .left{gap:calc(.6666666667rem / var(--scale))}.ms-1.headerName-icon{min-width:calc(1.5rem / var(--scale))}.custom_radio{display:inline-flex;align-items:center;min-width:calc(1.6666666667rem / var(--scale))!important}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-20);line-height:calc(2rem / var(--scale));font-weight:400}.custom_radio.disabled{pointer-events:none}.custom_radio.disabled .radio_mark{background-color:var(--neutral-100);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.custom_radio.disabled .name{color:var(--neutral-300)}.custom_radio .name{padding-right:calc(1.9166666667rem / var(--scale))}.custom_radio input[type=radio]{display:none}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--blue-700);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.custom_radio input[type=radio]:checked+.radio_mark{background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.custom_radio input[type=radio]:checked+.radio_mark:after{opacity:1}.pagination_form{gap:calc(1.3333333333rem / var(--scale))}.pagination_select{position:relative}.select_dropdown{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-50);border-radius:calc(.6666666667rem / var(--scale));margin:0 calc(.5rem / var(--scale))}.select_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--blue-700)}.select_option{position:absolute;top:auto;bottom:100%;display:flex;flex-direction:column;background-color:var(--white);box-shadow:0 calc(-.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) calc(0rem / var(--scale)) var(--dropdown-shadow);border-radius:calc(.6666666667rem / var(--scale));left:calc(.5rem / var(--scale));z-index:10;padding:calc(.1666666667rem / var(--scale)) 0;margin:calc(.3333333333rem / var(--scale)) 0}.select_option span{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--textSecondary);padding-left:calc(1rem / var(--scale))}.chevron_img{color:var(--neutral-600);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.chevron_img img{width:calc(.8333333333rem / var(--scale))}.moving_column{width:calc(15.1666666667rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.5rem / var(--scale));background-color:var(--white);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.0833333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) calc(.0833333333rem / var(--scale)) var(--filter-shadow);padding-left:calc(1rem / var(--scale));position:absolute;top:69%;left:10%;cursor:grab}.moving_column .column_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.openClose_dropdown{background-color:var(--neutral-50);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));display:flex}.openClose_dropdown i-feather{transform-origin:center;transition:.3s;display:flex;stroke:var(--neutral-600)}.openClose_dropdown i-feather.rotate{transform:rotate(90deg)}.cell-value{line-height:140%}.ellipsis.more_data_wrapper{position:relative;cursor:default}.ellipsis.more_data_wrapper:hover+.see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;width:calc(19.0833333333rem / var(--scale));height:\"\";background-color:var(--blue-50);border-radius:calc(1rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--border);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--dropdown-shadow);padding:calc(.6666666667rem / var(--scale)) 0;display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:10;top:calc(3.3333333333rem / var(--scale))}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--grey-100);font-size:var(--fs-16);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-all}.cell-value.ellipsis:hover .see_more_data{display:flex}.flex-center{display:flex;align-items:center}.cursor-pointer{cursor:pointer}.d-none{display:none}.sort_icons{display:flex;flex-direction:column;gap:calc(.4166666667rem / var(--scale))}.filters{position:relative;display:inline-block;margin-left:6px;cursor:pointer}.filter-icon{width:14px;opacity:.6}.filter-icon-active{background-color:#0ff}.filter-icon:hover{opacity:1}.filter-popup{position:absolute;top:20px;left:0;width:160px;background:#fff;border:1px solid #ddd;padding:8px;box-shadow:0 3px 8px #00000026;border-radius:4px;z-index:99}.filter-popup select,.filter-popup input{width:100%;margin-bottom:8px;padding:4px;font-size:13px}.reset-btn{width:100%;padding:4px;font-size:12px}.set-options{max-height:180px;overflow-y:auto;padding:6px 8px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px}.set-options label{display:flex;align-items:center;gap:6px;padding:6px 4px;cursor:pointer;border-radius:4px}.set-options label:hover{background:#f3f3f3}.set-options input[type=checkbox]{width:14px;height:14px;cursor:pointer}.set-options label:first-child{font-weight:600;border-bottom:1px solid #e5e5e5;margin-bottom:6px;padding-bottom:8px}.th_wraper{display:flex;justify-content:space-between;height:32px;align-items:center;padding:0 12px}.three-dots{cursor:pointer;padding:2px 4px;font-size:13px;-webkit-user-select:none;user-select:none}.three-dots:hover{background:#eee;border-radius:4px}.column-menu{position:absolute;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:9999;padding:6px 0;min-width:160px}.column-menu ul{margin:0;padding:0;list-style:none}.column-menu li{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:14px}.column-menu li:hover{background:#f3f3f3}.column-menu hr{border:none;border-top:1px solid #eee;margin:4px 0}.filter_three_dot_wrapper{display:flex;justify-content:space-between;align-items:center}.logic-row{display:flex;align-items:center;gap:16px;margin:8px 0 6px 4px}.logic-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#444}.logic-item input[type=radio]{width:14px;height:14px;accent-color:#2b7cff;cursor:pointer}.logic-item span{cursor:pointer;font-weight:500}\n"] }]
1072
+ ], template: "<div class=\"tableArea\">\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"container_scroll\"\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n >\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span\r\n ><input\r\n class=\"form-check-input cursor-pointer\"\r\n type=\"checkbox\"\r\n name=\"\"\r\n id=\"\"\r\n [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\"\r\n (change)=\"onHeaderCheckboxChange($event)\"\r\n /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\"\r\n [draggable]=\"!isResizing\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"flex-center\"\r\n [ngStyle]=\"getStyle(col)\"\r\n (click)=\"onSortingRowData($index, col)\"\r\n >\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n\r\n @if (sortingRequired && sortingColumnIndex == $index &&\r\n col?.sortable) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n @if(sortingType){\r\n <li class=\"cursor-pointer\">\r\n <img\r\n src=\"images/sort_up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/sort_down.svg\"\r\n class=\"sorting_down\"\r\n [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \"\r\n />\r\n </li>\r\n\r\n }\r\n </ul>\r\n </span>\r\n\r\n }\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <!-- Column Filters Logic-->\r\n @if(filterRequired && col.filterable){\r\n <div\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n <img\r\n src=\"images/filter-icon.svg\"\r\n class=\"filter-icon\"\r\n [ngClass]=\"\r\n activeFilters.has(col.fieldName)\r\n ? 'filter-icon-active'\r\n : 'filter-icon'\r\n \"\r\n />\r\n\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n class=\"filter-popup\"\r\n id=\"filter-popup-{{ $index }}\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <!-- Text Filter -->\r\n @if(col.filterType === 'text'){\r\n <select [(ngModel)]=\"col.textFilters[0].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.textFilters[0].filterValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.textFilters[1].filterType\">\r\n <option value=\"contains\">Contains</option>\r\n <option value=\"doesNotContain\">Does Not Contain</option>\r\n <option value=\"equals\">Equals</option>\r\n <option value=\"doesNotEqual\">Does Not Equal</option>\r\n <option value=\"startsWith\">Starts With</option>\r\n <option value=\"endsWith\">Ends With</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.textFilters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- Number Filter -->\r\n @if(col.filterType === 'number'){\r\n <select [(ngModel)]=\"col.numberFilters[0].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.numberFilters[0].numberValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.numberFilters[0].numberValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n\r\n <select [(ngModel)]=\"col.numberFilters[1].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.numberFilters[1].numberValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- DATE FILTER -->\r\n @if(col.filterType === 'date'){\r\n <select [(ngModel)]=\"col.dateFilters[0].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateFilters[0].dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n\r\n @if(col.dateFilters[0].dateValue){\r\n <div class=\"logic-row\">\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"AND\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n AND\r\n </label>\r\n\r\n <label class=\"logic-item\">\r\n <input\r\n type=\"radio\"\r\n name=\"textLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.textLogic\"\r\n value=\"OR\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n OR\r\n </label>\r\n </div>\r\n <select [(ngModel)]=\"col.dateFilters[1].filterType\">\r\n <option value=\"=\">Equals</option>\r\n <option value=\">\">Greater Than</option>\r\n <option value=\"<\">Less Than</option>\r\n <option value=\">=\">>=</option>\r\n <option value=\"<=\"><=</option>\r\n </select>\r\n <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.dateFilters[1].dateValue\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n } }\r\n\r\n <!-- SET FILTER (CHECKBOX LIST) -->\r\n @if(col.filterType === 'set'){\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n\r\n <div class=\"set-options\">\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllSelected(col)\"\r\n (change)=\"toggleSelectAll(col, $event)\"\r\n />\r\n (Select All)\r\n </label>\r\n\r\n @for(opt of col.filteredOptions; track $index){\r\n <label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"toggleSetOption(col, opt, $event)\"\r\n />\r\n {{ opt }}\r\n </label>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n @if(threeDotsMenuRequired && col.columnAction){\r\n\r\n <div class=\"three-dots\" (click)=\"openMenu($event, col, $index)\">\r\n <img src=\"images/more-vertical.svg\" />\r\n </div>\r\n } @if(!col.isAction){\r\n <span\r\n class=\"resize-handle\"\r\n (mousedown)=\"startResize($event, $index)\"\r\n >\r\n |\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- popup open -->\r\n @if(menuVisible[$index]){\r\n <div\r\n class=\"column-menu\"\r\n [ngStyle]=\"menuPosition[$index]\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <ul>\r\n @if(sortingType === 'dsc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'asc')\">\r\n <img src=\"images/arrow-up.svg\" class=\"sorting_up\" />\r\n Sort Ascending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === ''){\r\n <li (click)=\"onSort(col?.fieldName, 'dsc')\">\r\n <img src=\"images/arrow-down.svg\" class=\"sorting_up\" />\r\n Sort Descending\r\n </li>\r\n } @if(sortingType === 'asc' || sortingType === 'dsc'){\r\n <li (click)=\"onSort(col?.fieldName, '')\">\r\n <span>\r\n <img src=\"images/chevron-up.svg\" class=\"sorting_up\" />\r\n <img src=\"images/chevron-down.svg\" class=\"sorting_up\" />\r\n </span>\r\n Clear Sort\r\n </li>\r\n }\r\n <li (click)=\"pinColumn(col, $index)\">\r\n <img src=\"images/pin.svg\" class=\"sorting_up\" />\r\n {{ col.pinned ? \"Unpin Column\" : \"Pin Column\" }}\r\n </li>\r\n </ul>\r\n </div>\r\n }\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if(groupedResult && groupedResult.length > 0){ @for(group of\r\n groupedResult; track group.key){\r\n <tr (click)=\"toggleGroup(group)\">\r\n <td\r\n class=\"group-cell\"\r\n [attr.colspan]=\"colDefs.length + (checkBoxSelection ? 1 : 0)\"\r\n >\r\n <span class=\"group-toggle\">\r\n <img\r\n src=\"images/{{\r\n group.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\r\n }}\"\r\n />\r\n {{ group.key }} ({{ group.children.length }})\r\n </span>\r\n </td>\r\n </tr>\r\n\r\n @if(group.expanded){\r\n <!-- CASE 1: CHILDREN ARE MORE GROUPS -->\r\n @if (group.children[0]?.children) { @for (child of group.children; track\r\n child.key) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: child,\r\n colDefs: colDefs,\r\n checkBoxSelection: checkBoxSelection,\r\n level: 1\r\n }\"\r\n ></ng-container>\r\n } }\r\n\r\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\r\n @if (!group.children[0]?.children) { @for (row of group.children; track\r\n row.rowId) {\r\n <tr [ngClass]=\"row | addClass : tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\" />\r\n </td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track $index) {\r\n <td [ngStyle]=\"getStyle(col)\">\r\n {{ row[col.fieldName] }}\r\n </td>\r\n }\r\n </tr>\r\n } } } } } @else{ @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span\r\n ><input\r\n type=\"checkbox\"\r\n class=\"form-check-input pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input\r\n type=\"radio\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(data) : '',\r\n col.pinned ? 'pinned' : ''\r\n ]\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div\r\n [rowParam]=\"data\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"\r\n ></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n } }\r\n </tbody>\r\n\r\n <ng-template\r\n #groupTemplate\r\n let-node\r\n let-colDefs=\"colDefs\"\r\n let-checkBoxSelection=\"checkBoxSelection\"\r\n let-level=\"level\"\r\n >\r\n <!-- GROUP HEADER -->\r\n <tr (click)=\"toggleGroup(node)\">\r\n <td\r\n [attr.colspan]=\"colDefs.length + (checkBoxSelection ? 1 : 0)\"\r\n [style.paddingLeft.px]=\"level * 20\"\r\n class=\"group-cell\"\r\n >\r\n <span class=\"group-toggle\">\r\n <img\r\n src=\"images/{{\r\n node.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\r\n }}\"\r\n />\r\n {{ node.key }} ({{ node.children.length }})\r\n </span>\r\n </td>\r\n </tr>\r\n\r\n <!-- CHILDREN -->\r\n @if (node.expanded) {\r\n\r\n <!-- CASE: more groups -->\r\n @if (node.children[0]?.children) { @for (child of node.children; track\r\n child.key) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: child,\r\n colDefs: colDefs,\r\n checkBoxSelection: checkBoxSelection,\r\n level: level + 1\r\n }\"\r\n >\r\n </ng-container>\r\n } }\r\n\r\n <!-- CASE: final rows -->\r\n @if (!node.children[0]?.children) { @for (row of node.children; track\r\n row.rowId) {\r\n <tr>\r\n @if (checkBoxSelection) {\r\n <td><input type=\"checkbox\" [checked]=\"row.isSelected\" /></td>\r\n } @for (col of colDefs; track $index) {\r\n <td>{{ row[col.fieldName] }}</td>\r\n }\r\n </tr>\r\n } } }\r\n </ng-template>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div\r\n class=\"pagination_select\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div\r\n class=\"select_dropdown pointer\"\r\n (click)=\"showPageSizeList = !showPageSizeList\"\r\n >\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span\r\n class=\"pointer\"\r\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\r\n >{{ option }}</span\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span\r\n >Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span\r\n >\r\n </div>\r\n <div class=\"pagination_form flex-center\">\r\n <span>Page</span>\r\n\r\n <button\r\n class=\"outlined_btn prev_btn\"\r\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\r\n type=\"button\"\r\n (click)=\"onBtPrevClick()\"\r\n >\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style right\"\r\n type=\"number\"\r\n [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\"\r\n name=\"\"\r\n id=\"\"\r\n />\r\n </div>\r\n <button\r\n class=\"outlined_btn next_btn\"\r\n type=\"button\"\r\n [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n", styles: [":root{--white: #fff;--white-creame: #ebf3ff;--border: #dae3f8;--scrollbar: var(--border);--textPrimary: #0b1c33;--textPrimary70: #0b1c33b3;--textSecondary: #556171;--textSecondary50: #55617180;--textSecondary70: #556171b3;--pink-10: #f9fbfe;--ice-blue: #67adcf;--primaryBlue: #017db9;--primaryBlue70: #017db9be;--blue-10: #edf4fe;--blue-40: #e3f3fc;--blue-50: #f2f5fa;--blue-5050: #f2f5fa80;--blue-100: #c8e2ff;--blue-200: #a4cfff;--blue-300: #2680ea;--blue-500: #3788e5;--blue-700: #007aff;--yellow-50: #ffeedf;--yellow-100: #fed18f;--yellow-200: #ffbca6;--yellow-300: #f08a2b26;--yellow-400: #e58900;--primaryOrange: #f05a2b;--primaryOrange50: #f05a2b80;--primaryOrange70: #f05a2bb3;--orange-10: #fcf5eb;--orange-200: #f7ac94;--orange-300: #fb9676;--theadBg: var(--blue-50);--pagination-bg: #f7fafe;--blue-200: var(--border);--neutral-200: #dadbdc;--neutral-600: #040d17;--toastShadow: #0000001f;--dropdown-shadow: #00000014;--green-50: #eaf8f1;--green-100: #bde8d3;--green-600: #27a468;--red-10: #fcebef;--red-20: #ca0000;--red-30: #F7C1CE;--error-red: #d03258;--tableBorder: var(--border);--grey-50: #a5b0bf;--grey-100: #333333;--grey-200: #222A3D;--capture-border: #9badca;--captcha-bg: #f3f3f3;--neutral-400: #81858a}html{font-size:12px}.row_div{min-height:calc(4.5rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .col_div{width:50%;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.row_div .label{width:calc(16.6666666667rem / var(--scale));min-width:calc(16.6666666667rem / var(--scale));padding:0 calc(2rem / var(--scale));color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:500;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.25rem / var(--scale))}.row_div .label sup{top:calc(-.1666666667rem / var(--scale))}.row_div .field{padding:calc(.6666666667rem / var(--scale)) calc(2rem / var(--scale));flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:\"\";color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.row_div .field li{list-style:disc;line-height:calc(2.6666666667rem / var(--scale));margin-left:calc(1.5rem / var(--scale))}textarea,input,.ordered_textarea{color:var(--textPrimary)}.errorField{flex-direction:column;align-items:start}.errorField .error{max-width:calc(37.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:start;flex-wrap:nowrap;gap:0}.errorField .error i-feather[name=info]{padding-right:calc(.3333333333rem / var(--scale));display:flex;stroke:var(--error-red);width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.errorField textarea,.errorField input,.errorField .ordered_textarea{color:var(--textPrimary);border:calc(.0833333333rem / var(--scale)) solid var(--error-red)}.errorField .error{padding-top:calc(.6666666667rem / var(--scale));color:var(--error-red);font-size:var(--fs-12);line-height:140%;font-weight:400}sup{color:var(--error-red)}input::placeholder,textarea::placeholder{color:var(--textSecondary70);font-size:var(--fs-16);line-height:140%;font-weight:400}textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;min-height:calc(9rem / var(--scale));resize:none}input{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale))}input.disable{background-color:var(--blue-50);pointer-events:none}.ordered_textarea{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale));width:100%;list-style:disc;min-height:calc(9rem / var(--scale))}.ordered_textarea ul{padding-left:calc(2.6666666667rem / var(--scale));outline:none}.ordered_textarea ul.editable-div{min-height:calc(6rem / var(--scale));max-height:calc(9.3333333333rem / var(--scale));overflow:auto}.ordered_textarea ul li{margin-left:calc(1.75rem / var(--scale));list-style:disc;color:var(--textPrimary);font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:400}.custom_radio{display:inline-flex;align-items:center;min-width:calc(18.5833333333rem / var(--scale))}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-16);line-height:140%;font-weight:400}.custom_radio.disabled .name{color:var(--textPrimary);font-size:var(--fs-16);line-height:140%;font-weight:400}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--border);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.dob_age_field{border:calc(.0833333333rem / var(--scale)) solid var(--border);border-radius:calc(1.3333333333rem / var(--scale));padding:0 calc(1.3333333333rem / var(--scale));width:100%;height:calc(4.5rem / var(--scale));background-color:var(--blue-50);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.dob_age_field .dob,.dob_age_field .age{font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textSecondary)}.dob_age_field .age{padding-left:calc(.8333333333rem / var(--scale))}.dob_age_field .dob{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:50%;height:100%;padding-right:calc(.8333333333rem / var(--scale));border-right:calc(.0833333333rem / var(--scale)) solid var(--border)}.dob_age_field .dob img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.date{position:relative;width:100%}.date img{position:absolute;right:calc(1.3333333333rem / var(--scale));top:calc(1.25rem / var(--scale))}input[type=checkbox]{margin-right:calc(.6666666667rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));border-radius:calc(.3333333333rem / var(--scale))}ol li{list-style:auto!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:Rethink}body{font-size:100%}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}h1,h2,h3,h4,h5,h6,ul,ol,p{margin:0;padding:0;text-wrap:pretty}ul[role=list],ol[role=list],ul{list-style:none}img,picture{max-width:100%;display:block}input,select,textarea{outline:none;box-shadow:none}:root{--fs-6: 6px;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-30: 30px;--fs-32: 32px;--fs-42: 42px;--fs-48: 48px;--img-w: 28px;--scale: 1}@media only screen and (min-width: 1024px) and (max-width: 1280px){:root{--scale: 1.5;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1360px) and (max-width: 1440px){:root{--scale: 1.33;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}@media only screen and (min-width: 1536px) and (max-width: 1919px){:root{--scale: 1.25;--fs-6: calc(6px / var(--scale));--fs-12: calc(12px / var(--scale));--fs-14: calc(14px / var(--scale));--fs-16: calc(16px / var(--scale));--fs-18: calc(18px / var(--scale));--fs-20: calc(20px / var(--scale));--fs-24: calc(24px / var(--scale));--fs-28: calc(28px / var(--scale));--fs-30: calc(30px / var(--scale));--fs-32: calc(32px / var(--scale));--fs-42: calc(42px / var(--scale));--fs-48: calc(48px / var(--scale))}}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale))}.none{display:none}.tableArea .table_wrapper table{border-collapse:collapse;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:2;background-color:var(--white)}thead .checkbox_section{min-width:calc(3.8333333333rem / var(--scale))!important;width:calc(3.8333333333rem / var(--scale))}tbody{background-color:var(--white)}tbody tr{overflow:visible}tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}tbody td{overflow:visible;position:relative;font-size:var(--fs-16);line-height:140%;font-weight:400;color:var(--textPrimary);min-width:calc(11.6666666667rem / var(--scale));max-width:calc(29.1666666667rem / var(--scale));padding-block:calc(.5rem / var(--scale))}tbody td .tooltip_container{max-width:calc(100% - 2.5rem / var(--scale));height:auto;position:absolute;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);z-index:100;display:none;border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));white-space:normal;word-wrap:break-word;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}tbody td:hover .tooltip_container{display:block}tbody td:last-child ::ng-deep .see_more_data{right:0!important}.tableArea .table_wrapper table thead tr{height:calc(4.5rem / var(--scale));color:var(--textPrimary)}.tableArea .table_wrapper table thead tr img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table thead tr .theading{height:calc(2.25rem / var(--scale))}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0}.tableArea .table_wrapper table thead tr .three_dot{flex-grow:1;margin:0 calc(.3333333333rem / var(--scale)) 0 0;display:flex;flex-direction:row;justify-content:end;align-items:center;flex-wrap:nowrap;gap:0}.tableArea .table_wrapper table thead tr .three_dot img{cursor:pointer}.tableArea .table_wrapper table thead tr th{flex-shrink:0;background-color:var(--theadBg)}.tableArea .table_wrapper table thead tr th:hover .none{display:block}.tableArea .table_wrapper table thead tr th:hover .up,.tableArea .table_wrapper table thead tr th:hover .down{display:none}.tableArea .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:400;border-top:calc(.0833333333rem / var(--scale)) solid var(--tableBorder);transition:all .3s ease-in-out}.tableArea .table_wrapper table tbody tr.urgent{background-color:var(--red-10)}.tableArea .table_wrapper table tbody tr.important{background-color:var(--orange-10)}.tableArea .table_wrapper table tbody tr.disable{opacity:.4;pointer-events:none}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover{background-color:var(--pink-10)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td.action:hover{border-left:calc(.0833333333rem / var(--scale)) solid var(--blue-700);border-right:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td .ellipsis{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(25rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr.td_80{height:calc(6.6666666667rem / var(--scale))}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{text-align:left;padding-left:calc(1.1666666667rem / var(--scale));line-height:1}.thead-img{position:relative}.swap-img{position:absolute;left:calc(.6666666667rem / var(--scale));width:calc(2rem / var(--scale));height:calc(2rem / var(--scale))}.header-content{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0}.header-content .filtering_container{width:calc(20rem / var(--scale));max-height:calc(23.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);position:fixed;z-index:2;right:0;top:calc(2.3333333333rem / var(--scale));border-radius:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;flex-wrap:nowrap;gap:\"\"}.header-content .filtering_container .filter{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-900);padding:calc(.6666666667rem / var(--scale)) calc(1rem / var(--scale));border:none;width:100%;background-color:var(--white);display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2rem / var(--scale));font-weight:400}.header-content .filtering_container .filter.top_border{border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-100)}.tableArea .table_wrapper .headerName ul,.tableArea .table_wrapper .headerName-icon ul{display:flex}.tableArea .table_wrapper table ul{list-style-type:none;padding:0;margin-bottom:0}.tableArea .table_wrapper table ul li{height:calc(.3333333333rem / var(--scale));font-size:var(--fs-14);list-style-type:none}.tableArea .table_wrapper table .sorting_up,.tableArea .table_wrapper table .sorting_down{width:calc(.5833333333rem / var(--scale));height:calc(.3333333333rem / var(--scale))}.tableArea .table_wrapper .headerName,.tableArea .table_wrapper .headerName-icon{margin-left:calc(.5rem / var(--scale));font-size:var(--fs-16);line-height:140%;font-weight:500;color:var(--textPrimary70);height:-webkit-fill-available}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(5.3333333333rem / var(--scale));padding:calc(1.3333333333rem / var(--scale))}.pagination_main .pagination_form i-feather{font-weight:600;color:var(--neutral-600)}.pagination_main span{color:var(--textSecondary);font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.pagination_main i-feather{display:flex;width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));color:var(--neutral-600)}.pagination_main .input_style{width:calc(4rem / var(--scale));height:calc(1.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));color:var(--neutral-600);text-align:center;margin:0 calc(.5rem / var(--scale));outline:none}.pagination_main .input_style option{font-size:1rem}.pagination_main .input_style.right{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;margin:0;color:var(--textPrimary);padding:0}.pagination_main .input_style.left{background-color:var(--pagination-bg);color:var(--blue-700);border:none}.pagination_main .outlined_btn{background:transparent;border:solid calc(.0833333333rem / var(--scale)) var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);color:var(--btn-outline)}.pagination_main .prev_btn,.pagination_main .next_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(1.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .disable_btn{background-color:var(--blue-200);pointer-events:none;color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--blue-200)}.pagination_main .disable_btn i-feather{color:var(--white)}.table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border-top-left-radius:calc(1.3333333333rem / var(--scale));border-top-right-radius:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--tableBorder)}.data-table-td .td_wrapper{height:100%;display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1rem / var(--scale))}.pagination_main .input_style.left{appearance:none;padding-right:calc(1rem / var(--scale));background-position:80% 50%;width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-12);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;border-radius:calc(.6666666667rem / var(--scale))}.data-table-td{background-color:var(--blue-50);font-size:var(--fs-16)}.data-table-td i-feather{background-color:var(--white);border-radius:calc(.25rem / var(--scale));box-shadow:0 calc(.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) 0 #00000014;color:var(--neutral-500)}.data-table-td span{vertical-align:middle}.setting-options{position:absolute;right:0;background:var(--white);z-index:2;box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);max-height:calc(37.3333333333rem / var(--scale));width:calc(20.8333333333rem / var(--scale));overflow:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.column-item,.column-header{margin-bottom:calc(1.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.column-item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.column-item input[type=checkbox]{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));margin:0;border-radius:var(--fs-6)}.column-item:last-child{margin-bottom:0}.disabled_col{pointer-events:none;background-color:var(--neutral-50)}.entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .table_wrapper table th:not(:last-child) .right .line{display:block;border-left:calc(.1666666667rem / var(--scale)) solid var(--grey-50);height:calc(2rem / var(--scale))}.sticky-top{top:calc(-.0833333333rem / var(--scale))}.thead-img .theading .left{gap:calc(.6666666667rem / var(--scale))}.ms-1.headerName-icon{min-width:calc(1.5rem / var(--scale))}.custom_radio{display:inline-flex;align-items:center;min-width:calc(1.6666666667rem / var(--scale))!important}.custom_radio .name{color:var(--neutral-600);font-size:var(--fs-20);line-height:calc(2rem / var(--scale));font-weight:400}.custom_radio.disabled{pointer-events:none}.custom_radio.disabled .radio_mark{background-color:var(--neutral-100);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.custom_radio.disabled .name{color:var(--neutral-300)}.custom_radio .name{padding-right:calc(1.9166666667rem / var(--scale))}.custom_radio input[type=radio]{display:none}.radio_mark{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));border:calc(.125rem / var(--scale)) solid var(--blue-700);border-radius:50%;margin-right:calc(.6666666667rem / var(--scale));position:relative;background-color:var(--white)}.custom_radio input[type=radio]:checked+.radio_mark{background-color:var(--white)}.radio_mark:after{content:\"\";width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));background:var(--blue-700);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s}.custom_radio input[type=radio]:checked+.radio_mark:after{opacity:1}.pagination_form{gap:calc(1.3333333333rem / var(--scale))}.pagination_select{position:relative}.select_dropdown{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-50);border-radius:calc(.6666666667rem / var(--scale));margin:0 calc(.5rem / var(--scale))}.select_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--blue-700)}.select_option{position:absolute;top:auto;bottom:100%;display:flex;flex-direction:column;background-color:var(--white);box-shadow:0 calc(-.1666666667rem / var(--scale)) calc(1.6666666667rem / var(--scale)) calc(0rem / var(--scale)) var(--dropdown-shadow);border-radius:calc(.6666666667rem / var(--scale));left:calc(.5rem / var(--scale));z-index:10;padding:calc(.1666666667rem / var(--scale)) 0;margin:calc(.3333333333rem / var(--scale)) 0}.select_option span{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--textSecondary);padding-left:calc(1rem / var(--scale))}.chevron_img{color:var(--neutral-600);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:0}.chevron_img img{width:calc(.8333333333rem / var(--scale))}.moving_column{width:calc(15.1666666667rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.5rem / var(--scale));background-color:var(--white);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.0833333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) calc(.0833333333rem / var(--scale)) var(--filter-shadow);padding-left:calc(1rem / var(--scale));position:absolute;top:69%;left:10%;cursor:grab}.moving_column .column_text{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.openClose_dropdown{background-color:var(--neutral-50);width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));display:flex}.openClose_dropdown i-feather{transform-origin:center;transition:.3s;display:flex;stroke:var(--neutral-600)}.openClose_dropdown i-feather.rotate{transform:rotate(90deg)}.cell-value{line-height:140%}.ellipsis.more_data_wrapper{position:relative;cursor:default}.ellipsis.more_data_wrapper:hover+.see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;width:calc(19.0833333333rem / var(--scale));height:\"\";background-color:var(--blue-50);border-radius:calc(1rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--border);box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--dropdown-shadow);padding:calc(.6666666667rem / var(--scale)) 0;display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:10;top:calc(3.3333333333rem / var(--scale))}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--grey-100);font-size:var(--fs-16);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-all}.cell-value.ellipsis:hover .see_more_data{display:flex}.flex-center{display:flex;align-items:center}.cursor-pointer{cursor:pointer}.d-none{display:none}.sort_icons{display:flex;flex-direction:column;gap:calc(.4166666667rem / var(--scale))}.filters{position:relative;display:inline-block;margin-left:6px;cursor:pointer}.filter-icon{width:14px;opacity:.6}.filter-icon-active{background-color:#0ff}.filter-icon:hover{opacity:1}.filter-popup{position:absolute;top:20px;left:0;width:160px;background:#fff;border:1px solid #ddd;padding:8px;box-shadow:0 3px 8px #00000026;border-radius:4px;z-index:99}.filter-popup select,.filter-popup input{width:100%;margin-bottom:8px;padding:4px;font-size:13px}.reset-btn{width:100%;padding:4px;font-size:12px}.set-options{max-height:180px;overflow-y:auto;padding:6px 8px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px}.set-options label{display:flex;align-items:center;gap:6px;padding:6px 4px;cursor:pointer;border-radius:4px}.set-options label:hover{background:#f3f3f3}.set-options input[type=checkbox]{width:14px;height:14px;cursor:pointer}.set-options label:first-child{font-weight:600;border-bottom:1px solid #e5e5e5;margin-bottom:6px;padding-bottom:8px}.th_wraper{position:relative;display:flex;justify-content:space-between;height:32px;align-items:center;padding:0 12px}.three-dots{cursor:pointer;padding:2px 4px;font-size:13px;-webkit-user-select:none;user-select:none}.three-dots:hover{background:#eee;border-radius:4px}.column-menu{position:fixed;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:9999;padding:6px 0;min-width:160px}.column-menu ul{margin:0;padding:0;list-style:none}.column-menu li{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:14px}.column-menu li:hover{background:#f3f3f3}.column-menu hr{border:none;border-top:1px solid #eee;margin:4px 0}.filter_three_dot_wrapper{display:flex;justify-content:space-between;align-items:center}.logic-row{display:flex;align-items:center;gap:16px;margin:8px 0 6px 4px}.logic-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#444}.logic-item input[type=radio]{width:14px;height:14px;accent-color:#2b7cff;cursor:pointer}.logic-item span{cursor:pointer;font-weight:500}.resizable-header{position:relative;white-space:nowrap;-webkit-user-select:none;user-select:none}.resize-handle{position:absolute;right:0;top:30%;width:6px;height:100%;color:gray;font-size:larger;cursor:w-resize}.group-cell{padding:8px 12px}.group-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.group-toggle img{width:14px;height:14px}.pinned{z-index:11!important}\n"] }]
843
1073
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { tableOptions: [{
844
1074
  type: Input
845
1075
  }], totalRecords: [{
@@ -864,6 +1094,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
864
1094
  type: Input
865
1095
  }], height: [{
866
1096
  type: Input
1097
+ }], groupBy: [{
1098
+ type: Input
867
1099
  }], onPaginationChange: [{
868
1100
  type: Output
869
1101
  }], onCheckboxSelection: [{