cats-data-grid 2.0.4 → 2.0.6

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Pipe, EventEmitter, Output, Directive, Input, HostListener, Component, signal } from '@angular/core';
2
+ import { Injectable, Pipe, EventEmitter, Output, Directive, Input, HostListener, Component, ViewChild, signal } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DatePipe } from '@angular/common';
5
5
  import * as i2 from '@angular/forms';
@@ -7,10 +7,10 @@ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
7
7
 
8
8
  class CatsDataGridService {
9
9
  constructor() { }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CatsDataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CatsDataGridService, providedIn: 'root' });
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CatsDataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CatsDataGridService, providedIn: 'root' });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CatsDataGridService, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CatsDataGridService, decorators: [{
14
14
  type: Injectable,
15
15
  args: [{
16
16
  providedIn: 'root'
@@ -27,10 +27,10 @@ class AddClassPipe {
27
27
  }
28
28
  return '';
29
29
  }
30
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AddClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
31
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: AddClassPipe, isStandalone: true, name: "addClass" });
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AddClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
31
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: AddClassPipe, isStandalone: true, name: "addClass" });
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AddClassPipe, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AddClassPipe, decorators: [{
34
34
  type: Pipe,
35
35
  args: [{
36
36
  name: 'addClass'
@@ -55,10 +55,10 @@ class OutsideClickDirective {
55
55
  ngOnDestroy() {
56
56
  document.removeEventListener('click', this.onClick, true);
57
57
  }
58
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
59
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: OutsideClickDirective, isStandalone: true, selector: "[appOutsideClick]", outputs: { clickOutside: "clickOutside" }, ngImport: i0 });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
59
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: OutsideClickDirective, isStandalone: true, selector: "[appOutsideClick]", outputs: { clickOutside: "clickOutside" }, ngImport: i0 });
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OutsideClickDirective, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OutsideClickDirective, decorators: [{
62
62
  type: Directive,
63
63
  args: [{
64
64
  selector: '[appOutsideClick]',
@@ -92,6 +92,7 @@ class RendererParserDirective {
92
92
  this.col.cellRenderer.prototype?.constructor == this.col.cellRenderer) {
93
93
  this.ref = this.el.createComponent(this.col?.cellRenderer);
94
94
  this.ref.instance?.cellInit(params, this.api);
95
+ this.ref.location.nativeElement.style.width = '100%';
95
96
  }
96
97
  else if (typeof this.col?.cellRenderer == 'function') {
97
98
  let newDiv = document.createElement('div');
@@ -110,10 +111,10 @@ class RendererParserDirective {
110
111
  this.er.nativeElement.appendChild(toltipDiv);
111
112
  }
112
113
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RendererParserDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
114
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: RendererParserDirective, isStandalone: true, selector: "[appRendererParser]", inputs: { rowParam: "rowParam", col: "col", api: "api", currentValue: "currentValue" }, ngImport: i0 });
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RendererParserDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
115
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: RendererParserDirective, isStandalone: true, selector: "[appRendererParser]", inputs: { rowParam: "rowParam", col: "col", api: "api", currentValue: "currentValue" }, ngImport: i0 });
115
116
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RendererParserDirective, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RendererParserDirective, decorators: [{
117
118
  type: Directive,
118
119
  args: [{
119
120
  selector: '[appRendererParser]',
@@ -154,12 +155,12 @@ class CommonInputComponent {
154
155
  this.showDropdown = false;
155
156
  }
156
157
  }
157
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CommonInputComponent, isStandalone: true, selector: "lib-common-input", inputs: { options: "options", selectedValue: "selectedValue", placeholder: "placeholder", elementType: "elementType" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "closeOnOutsideClick($event)" } }, ngImport: i0, template: "<!-- dropdown -->\r\n@if(elementType === 'dropdown'){\r\n<div class=\"text_filter_section\">\r\n <div class=\"single_select_dropdown\" (click)=\"toggleDropdown()\">\r\n <div class=\"left_details\">\r\n <span class=\"placeholderColor textTruncate\">\r\n {{ selectedLabel }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"arrow_icon\">\r\n <img\r\n src=\"images/chevron-up.svg\"\r\n [ngClass]=\"{ 'd-none': !showDropdown }\"\r\n />\r\n <img\r\n src=\"images/chevron-down.svg\"\r\n [ngClass]=\"{ 'd-none': showDropdown }\"\r\n />\r\n </span>\r\n </div>\r\n\r\n @if (showDropdown) {\r\n <div class=\"dropdown_list\" id=\"table_scroll\">\r\n <ul>\r\n @for (option of options; track option.value) {\r\n <li (click)=\"selectOption(option)\">\r\n <span class=\"textTruncate\">{{ option.label }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n", styles: [".d-none{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
158
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CommonInputComponent, isStandalone: true, selector: "lib-common-input", inputs: { options: "options", selectedValue: "selectedValue", placeholder: "placeholder", elementType: "elementType" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "closeOnOutsideClick($event)" } }, ngImport: i0, template: "<!-- dropdown -->\n@if(elementType === 'dropdown'){\n<div class=\"text_filter_section\">\n <div class=\"single_select_dropdown\" (click)=\"toggleDropdown()\">\n <div class=\"left_details\">\n <span class=\"placeholderColor textTruncate\">\n {{ selectedLabel }}\n </span>\n </div>\n\n <span class=\"arrow_icon\">\n <img\n src=\"images/chevron-up.svg\"\n [ngClass]=\"{ 'd-none': !showDropdown }\"\n />\n <img\n src=\"images/chevron-down.svg\"\n [ngClass]=\"{ 'd-none': showDropdown }\"\n />\n </span>\n </div>\n\n @if (showDropdown) {\n <div class=\"dropdown_list\" id=\"table_scroll\">\n <ul>\n @for (option of options; track option.value) {\n <li (click)=\"selectOption(option)\">\n <span class=\"textTruncate\">{{ option.label }}</span>\n </li>\n }\n </ul>\n </div>\n }\n</div>\n\n}\n", styles: [".d-none{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
159
160
  }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonInputComponent, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonInputComponent, decorators: [{
161
162
  type: Component,
162
- args: [{ selector: 'lib-common-input', imports: [CommonModule], template: "<!-- dropdown -->\r\n@if(elementType === 'dropdown'){\r\n<div class=\"text_filter_section\">\r\n <div class=\"single_select_dropdown\" (click)=\"toggleDropdown()\">\r\n <div class=\"left_details\">\r\n <span class=\"placeholderColor textTruncate\">\r\n {{ selectedLabel }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"arrow_icon\">\r\n <img\r\n src=\"images/chevron-up.svg\"\r\n [ngClass]=\"{ 'd-none': !showDropdown }\"\r\n />\r\n <img\r\n src=\"images/chevron-down.svg\"\r\n [ngClass]=\"{ 'd-none': showDropdown }\"\r\n />\r\n </span>\r\n </div>\r\n\r\n @if (showDropdown) {\r\n <div class=\"dropdown_list\" id=\"table_scroll\">\r\n <ul>\r\n @for (option of options; track option.value) {\r\n <li (click)=\"selectOption(option)\">\r\n <span class=\"textTruncate\">{{ option.label }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n", styles: [".d-none{display:none}\n"] }]
163
+ args: [{ selector: 'lib-common-input', imports: [CommonModule], template: "<!-- dropdown -->\n@if(elementType === 'dropdown'){\n<div class=\"text_filter_section\">\n <div class=\"single_select_dropdown\" (click)=\"toggleDropdown()\">\n <div class=\"left_details\">\n <span class=\"placeholderColor textTruncate\">\n {{ selectedLabel }}\n </span>\n </div>\n\n <span class=\"arrow_icon\">\n <img\n src=\"images/chevron-up.svg\"\n [ngClass]=\"{ 'd-none': !showDropdown }\"\n />\n <img\n src=\"images/chevron-down.svg\"\n [ngClass]=\"{ 'd-none': showDropdown }\"\n />\n </span>\n </div>\n\n @if (showDropdown) {\n <div class=\"dropdown_list\" id=\"table_scroll\">\n <ul>\n @for (option of options; track option.value) {\n <li (click)=\"selectOption(option)\">\n <span class=\"textTruncate\">{{ option.label }}</span>\n </li>\n }\n </ul>\n </div>\n }\n</div>\n\n}\n", styles: [".d-none{display:none}\n"] }]
163
164
  }], propDecorators: { options: [{
164
165
  type: Input
165
166
  }], selectedValue: [{
@@ -334,10 +335,10 @@ class AdaptivePositionDirective {
334
335
  this.resizeObserver?.disconnect();
335
336
  document.removeEventListener('click', this.handleOutsideClick);
336
337
  }
337
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdaptivePositionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
338
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: AdaptivePositionDirective, isStandalone: true, selector: "[adaptivePosition]", inputs: { dropdown: ["adaptive", "dropdown"], trigger: "trigger", parentContainer: "parentContainer", matchWidth: "matchWidth", closeOnOutside: "closeOnOutside", isAction: "isAction", isColumnActionMenu: "isColumnActionMenu" }, host: { listeners: { "keydown": "handleKeys($event)" } }, ngImport: i0 });
338
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AdaptivePositionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
339
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: AdaptivePositionDirective, isStandalone: true, selector: "[adaptivePosition]", inputs: { dropdown: ["adaptive", "dropdown"], trigger: "trigger", parentContainer: "parentContainer", matchWidth: "matchWidth", closeOnOutside: "closeOnOutside", isAction: "isAction", isColumnActionMenu: "isColumnActionMenu" }, host: { listeners: { "keydown": "handleKeys($event)" } }, ngImport: i0 });
339
340
  }
340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdaptivePositionDirective, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AdaptivePositionDirective, decorators: [{
341
342
  type: Directive,
342
343
  args: [{
343
344
  selector: '[adaptivePosition]',
@@ -366,11 +367,12 @@ class CommonCalendarComponent {
366
367
  cd;
367
368
  datePipe;
368
369
  dateTimeSelected = new EventEmitter();
370
+ clearDateEvent = new EventEmitter();
369
371
  dateConfig;
370
372
  minDate;
371
373
  maxDate;
372
374
  preSelectedValue;
373
- selectedDateTime;
375
+ selectedDateTime = '';
374
376
  currentDate = new Date();
375
377
  currentMonth = this.currentDate.getMonth();
376
378
  currentYear = this.currentDate.getFullYear();
@@ -414,11 +416,8 @@ class CommonCalendarComponent {
414
416
  this.datePipe = datePipe;
415
417
  }
416
418
  ngOnChanges(_changes) {
417
- if (!_changes['selectedDateTime']?.currentValue) {
418
- this.selectedDateTime = [];
419
- }
420
- else {
421
- this.writeValue(this.control?.value);
419
+ if (_changes['preSelectedValue']) {
420
+ this.selectedDateTime = _changes['preSelectedValue']?.currentValue;
422
421
  }
423
422
  }
424
423
  ngOnInit() {
@@ -472,24 +471,36 @@ class CommonCalendarComponent {
472
471
  }
473
472
  return null;
474
473
  }
474
+ selectCurrentMonthYear() {
475
+ this.currentDate = new Date();
476
+ this.currentMonth = this.currentDate.getMonth();
477
+ this.currentYear = this.currentDate.getFullYear();
478
+ this.selectedMonth = this.currentMonth;
479
+ this.selectedYear = this.currentYear;
480
+ this.selectedDate = null;
481
+ }
475
482
  /**
476
483
  * @description method to toggleCalendar
477
484
  * @author Shiva Kant
478
485
  */
479
486
  toggleCalendar() {
480
- this.isOpen = !this.isOpen;
481
- if (this.date && this.isOpen) {
482
- this.currentDate = new Date(this.date);
483
- this.selectedDay = this.currentDate.getDate();
487
+ if (!this.selectedDateTime) {
488
+ this.selectCurrentMonthYear();
484
489
  }
485
- this.calendarView = 'defaultView';
486
- this.generateCalendar();
490
+ this.isOpen = !this.isOpen;
487
491
  if (this.isOpen) {
488
- let ele = document.getElementsByClassName('calendar-footer');
492
+ // If a date is already selected, open that month/year
493
+ if (this.selectedDate != null) {
494
+ this.currentDate = new Date(this.selectedYear, this.selectedMonth, this.selectedDate);
495
+ }
496
+ this.updateCurrentYearMonth();
497
+ this.generateCalendar();
489
498
  setTimeout(() => {
499
+ const ele = document.getElementsByClassName('calendar-footer');
490
500
  ele[0]?.scrollIntoView();
491
501
  });
492
502
  }
503
+ this.calendarView = 'defaultView';
493
504
  }
494
505
  /**
495
506
  * @description Closes calendar
@@ -823,10 +834,9 @@ class CommonCalendarComponent {
823
834
  if (this.dateConfig.selectionMode === 'single') {
824
835
  if (!this.selectedDate)
825
836
  return;
826
- const fullDate = new Date(this.currentYear, this.currentMonth, this.selectedDate);
837
+ const fullDate = new Date(this.selectedYear, this.selectedMonth, this.selectedDate);
827
838
  this.selectedDateTime = this.formatDateTime(fullDate || '', this.dateConfig.enableTime ? this.selectedTime : null);
828
839
  this.writeValue(this.selectedDateTime);
829
- this.date = this.selectedDate;
830
840
  this.dateTimeSelected.emit(this.selectedDateTime);
831
841
  this.closeCalendar();
832
842
  return;
@@ -844,17 +854,20 @@ class CommonCalendarComponent {
844
854
  this.closeCalendar();
845
855
  }
846
856
  }
847
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
848
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CommonCalendarComponent, isStandalone: true, selector: "lib-common-calendar", inputs: { dateConfig: "dateConfig", minDate: "minDate", maxDate: "maxDate", preSelectedValue: "preSelectedValue" }, outputs: { dateTimeSelected: "dateTimeSelected" }, providers: [
857
+ hideCalender() {
858
+ this.closeCalendar();
859
+ }
860
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
861
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CommonCalendarComponent, isStandalone: true, selector: "lib-common-calendar", inputs: { dateConfig: "dateConfig", minDate: "minDate", maxDate: "maxDate", preSelectedValue: "preSelectedValue" }, outputs: { dateTimeSelected: "dateTimeSelected", clearDateEvent: "clearDateEvent" }, providers: [
849
862
  {
850
863
  provide: NG_VALUE_ACCESSOR,
851
864
  useExisting: CommonCalendarComponent,
852
865
  multi: true,
853
866
  },
854
867
  DatePipe,
855
- ], usesOnChanges: true, ngImport: i0, template: "<!-- Calendar -->\r\n\r\n<div\r\n class=\"calendar_wrapper\"\r\n appOutsideClick\r\n (clickOutSide)=\"closeCalendar()\"\r\n [ngClass]=\"{ 'pe-none': disableControl }\"\r\n>\r\n <div class=\"date_box\" (click)=\"toggleCalendar()\" #trigger>\r\n @if (dateConfig.selectionMode=='single') {\r\n\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select Date\"\r\n [value]=\"selectedDateTime\"\r\n readonly\r\n [disabled]=\"disableControl\"\r\n />\r\n } @else {\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select date Range\"\r\n [value]=\"\r\n selectedDateTime.start\r\n | date\r\n : 'MM/dd/yyyy' +\r\n ' - ' +\r\n (selectedDateTime.end | date : 'MM/dd/yyyy')\r\n \"\r\n readonly\r\n />\r\n }\r\n <!-- <i-feather name=\"calendar\" class=\"calendar_icon\"></i-feather> -->\r\n <img src=\"images/calendar.svg\" alt=\"\" />\r\n </div>\r\n @if (isOpen) {\r\n <div class=\"calendar-popup\" adaptivePosition [trigger]=\"trigger\" [matchWidth]=\"false\">\r\n <div class=\"calendar_container\">\r\n <!-- for the header -->\r\n <div class=\"calendar-header\">\r\n <div class=\"month-year\">\r\n <span class=\"month\" (click)=\"calendarView = 'monthView'\">\r\n {{ getMonthYear().month }},</span\r\n >\r\n <div class=\"year\" (click)=\"calendarView = 'yearView'\">\r\n <span>\r\n {{ getMonthYear().year }}\r\n </span>\r\n <img src=\"images/chevron-down.svg\" class=\"year_arrow\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"arrow_container\">\r\n <span class=\"navigation-button\" (click)=\"previousMonth()\">\r\n <img src=\"images/arrow-up.svg\" alt=\"\" />\r\n </span>\r\n\r\n <span class=\"navigation-button\" (click)=\"nextMonth()\">\r\n <img src=\"images/arrow-down.svg\" alt=\"\" />\r\n </span>\r\n </div>\r\n </div>\r\n @if(calendarView === \"monthView\"){\r\n <div class=\"month-grid\">\r\n @for(month of monthRange | keyvalue; track $index){\r\n <span\r\n class=\"month\"\r\n (click)=\"selectMonth(month.key)\"\r\n [ngClass]=\"{ selected: month.key == currentDate.getMonth() }\"\r\n >{{ month.value }}</span\r\n >\r\n }\r\n </div>\r\n } @else if(calendarView === 'yearView'){\r\n <div class=\"year-selector\">\r\n <span class=\"navigation-button pointer\" (click)=\"previousYearRange()\">\r\n <img src=\"images/chevron-left.svg\" alt=\"\" />\r\n </span>\r\n <div class=\"year-grid\">\r\n @for(year of yearRange;track $index){\r\n <span\r\n class=\"year\"\r\n (click)=\"selectYear(year)\"\r\n [ngClass]=\"{ selected: year == currentDate.getFullYear() }\"\r\n >{{ year }}</span\r\n >\r\n }\r\n </div>\r\n <span class=\"navigation-button pointer\" (click)=\"nextYearRange()\">\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </span>\r\n </div>\r\n } @else {\r\n <div class=\"calendar_body\">\r\n <div class=\"calendar-grid\">\r\n <!-- Day names -->\r\n @for (day of ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']; track $index)\r\n {\r\n\r\n <div class=\"days_name\">\r\n {{ day }}\r\n </div>\r\n }\r\n\r\n <!-- Calendar dates -->\r\n @for (dayObj of daysInMonth; track $index) {\r\n <div\r\n class=\"calendar-day\"\r\n [ngClass]=\"{\r\n active:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'single' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ),\r\n\r\n active_start:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n dayObj.day === rangeStart,\r\n\r\n active_end:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n dayObj.day === rangeEnd,\r\n\r\n range_between_active:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n rangeStart != null &&\r\n rangeEnd != null &&\r\n dayObj.day > rangeStart &&\r\n dayObj.day < rangeEnd,\r\n\r\n other_month: !dayObj.isCurrentMonth,\r\n disabled: isDayDisabled(dayObj.day),\r\n notInCurrentMonth: !dayObj.isCurrentMonth\r\n }\"\r\n (click)=\"\r\n dayObj.isCurrentMonth &&\r\n !isDayDisabled(dayObj.day) &&\r\n selectDate(dayObj.day)\r\n \"\r\n >\r\n {{ dayObj.day }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"bottom_btn\">\r\n <div class=\"btn\">Clear</div>\r\n <div class=\"btn\">Today</div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <!-- TIME SLOTS (only if showTime = true) -->\r\n @if (dateConfig.enableTime) {\r\n <div class=\"times\">\r\n <div class=\"time-picker\">\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n (click)=\"selectTime(timeSlot.label)\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <!-- center selection indicator -->\r\n <div class=\"center-highlight\"></div>\r\n </div>\r\n\r\n <!-- @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n (click)=\"selectTime(timeSlot.label)\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n } -->\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.calendar_wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:\"\";position:relative;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .pe-none{pointer-events:none}.calendar_wrapper .date_box{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;gap:0;height:calc(3.3333333333rem / var(--scale))}.calendar_wrapper .date_box input{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;width:100%;height:100%;cursor:pointer;border:0 solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-family:inherit}.calendar_wrapper .date_box input::placeholder{color:var(--neutral-500)}.calendar_wrapper .date_box img{max-width:calc(1.3333333333rem / var(--scale));margin-right:calc(1rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup{display:flex;position:absolute;top:calc(3.3333333333rem / var(--scale));right:0;z-index:10;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--box-shadow);width:100%;min-width:calc(27.8333333333rem / var(--scale));min-height:calc(30.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_container{flex:1;margin:calc(.25rem / var(--scale)) 0}.calendar_wrapper .calendar-popup .calendar-header{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container{display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button{cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year{font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex}.calendar_wrapper .calendar-popup .calendar-header .month-year .year,.calendar_wrapper .calendar-popup .calendar-header .month-year .month{padding-right:calc(.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .month-year .year img,.calendar_wrapper .calendar-popup .calendar-header .month-year .month img{max-width:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year .year.selected,.calendar_wrapper .calendar-popup .calendar-header .month-year .month.selected{color:var(--blue-700)}.calendar_wrapper .calendar-popup .year-selector{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .year-selector .year-grid{width:100%}.calendar_wrapper .calendar-popup .year-selector img{max-width:calc(1.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .year-grid,.calendar_wrapper .calendar-popup .month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:500;height:calc(27.0833333333rem / var(--scale));color:var(--neutral-600)}.calendar_wrapper .calendar-popup .year-grid .month,.calendar_wrapper .calendar-popup .year-grid .year,.calendar_wrapper .calendar-popup .month-grid .month,.calendar_wrapper .calendar-popup .month-grid .year{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;border-radius:calc(.3333333333rem / var(--scale));transition:ease-in-out .2s}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .month.selected,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .year-grid .year.selected,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .month.selected,.calendar_wrapper .calendar-popup .month-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .year.selected{color:var(--white);background-color:var(--blue-600)}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .year:hover{background-color:var(--blue-100);color:var(--blue-700)}.calendar_wrapper .calendar-popup .calendar_body{display:flex;flex-direction:column;justify-content:space-between;align-items:\"\";flex-wrap:nowrap;gap:\"\"}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;min-width:calc(27.8333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .days_name{height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end,.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{background-color:var(--blue-600);color:var(--white);border-radius:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day{border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;width:calc(3.975rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active{background-color:var(--blue-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day:hover{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.selected{background-color:var(--orange-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.disabled{color:var(--neutral-400);pointer-events:none;background:var(--neutral-200)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth{cursor:default;color:var(--neutral-400)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth:hover{background-color:transparent}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{border-top-left-radius:calc(.3333333333rem / var(--scale));border-bottom-left-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.range_between_active{color:var(--blue-600);background-color:var(--blue-100)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end{border-top-right-radius:calc(.3333333333rem / var(--scale));border-bottom-right-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn .btn{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--blue-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer}.calendar_wrapper .calendar-popup .time-picker{position:relative;display:grid;grid-template-columns:repeat(3,1fr);height:360px;overflow:hidden;background:#fff}.calendar_wrapper .calendar-popup .time-column{display:flex;flex-direction:column;align-items:center;overflow-y:auto;scroll-snap-type:y mandatory}.calendar_wrapper .calendar-popup .time-column::-webkit-scrollbar{width:0}.calendar_wrapper .calendar-popup .span_time.active{background:#2f80ed;color:#fff;border-radius:4px;width:70%}.calendar_wrapper .calendar-popup .center-highlight{position:absolute;top:50%;left:0;width:100%;height:40px;transform:translateY(-50%);border-top:1px solid red;border-bottom:1px solid red;pointer-events:none}.calendar_wrapper .calendar-popup .times{min-width:calc(14.6666666667rem / var(--scale));max-height:calc(30.3333333333rem / var(--scale));overflow-y:auto;overflow-x:hidden;border-left:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));box-shadow:-3px 0 8px 2px #0a0d121f;border-top-right-radius:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .times .span_time{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);display:inline-block;width:calc(4rem / var(--scale)) calc(3.3333333333rem / var(--scale));height:100%;max-width:calc(4rem / var(--scale));text-align:center;cursor:pointer;scroll-snap-align:center}.calendar_wrapper .calendar-popup .times .span_time:hover,.calendar_wrapper .calendar-popup .times .span_time.active{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}@media only screen and (min-width: 1024px) and (max-width: 1280px){.calendar-grid{display:grid;grid-template-columns:repeat(4,1fr)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
868
+ ], usesOnChanges: true, ngImport: i0, template: "<!-- Calendar -->\n\n<div\n class=\"calendar_wrapper\"\n appOutsideClick\n (clickOutSide)=\"closeCalendar()\"\n [ngClass]=\"{ 'pe-none': disableControl }\"\n>\n <div class=\"date_box\" (click)=\"toggleCalendar()\" #trigger>\n @if (dateConfig.selectionMode == \"single\") {\n <input\n type=\"text\"\n placeholder=\"Select Date\"\n [value]=\"selectedDateTime\"\n readonly\n [disabled]=\"disableControl\"\n />\n } @else {\n <input\n type=\"text\"\n placeholder=\"Select date Range\"\n [value]=\"\n selectedDateTime.start\n | date\n : 'MM/dd/yyyy' +\n ' - ' +\n (selectedDateTime.end | date: 'MM/dd/yyyy')\n \"\n readonly\n />\n }\n <!-- <i-feather name=\"calendar\" class=\"calendar_icon\"></i-feather> -->\n <img src=\"images/calendar.svg\" alt=\"\" />\n </div>\n @if (isOpen) {\n <div\n class=\"calendar-popup\"\n adaptivePosition\n [trigger]=\"trigger\"\n [matchWidth]=\"false\"\n appOutsideClick\n (clickOutside)=\"hideCalender()\"\n >\n <div class=\"calendar_container\">\n <!-- for the header -->\n <div class=\"calendar-header\">\n <div class=\"month-year\">\n <span class=\"month\" (click)=\"calendarView = 'monthView'\">\n {{ getMonthYear().month }},</span\n >\n <div class=\"year\" (click)=\"calendarView = 'yearView'\">\n <span>\n {{ getMonthYear().year }}\n </span>\n <img src=\"images/chevron-down.svg\" class=\"year_arrow\" alt=\"\" />\n </div>\n </div>\n\n <div class=\"arrow_container\">\n <span class=\"navigation-button\" (click)=\"previousMonth()\">\n <img src=\"images/arrow-up.svg\" alt=\"\" />\n </span>\n\n <span class=\"navigation-button\" (click)=\"nextMonth()\">\n <img src=\"images/arrow-down.svg\" alt=\"\" />\n </span>\n </div>\n </div>\n @if (calendarView === \"monthView\") {\n <div class=\"month-grid\">\n @for (month of monthRange | keyvalue; track $index) {\n <span\n class=\"month\"\n (click)=\"selectMonth(month.key)\"\n [ngClass]=\"{ selected: month.key == currentDate.getMonth() }\"\n >{{ month.value }}</span\n >\n }\n </div>\n } @else if (calendarView === \"yearView\") {\n <div class=\"year-selector\">\n <span\n class=\"navigation-button pointer\"\n (click)=\"previousYearRange()\"\n >\n <img src=\"images/chevron-left.svg\" alt=\"\" />\n </span>\n <div class=\"year-grid\">\n @for (year of yearRange; track $index) {\n <span\n class=\"year\"\n (click)=\"selectYear(year)\"\n [ngClass]=\"{ selected: year == currentDate.getFullYear() }\"\n >{{ year }}</span\n >\n }\n </div>\n <span class=\"navigation-button pointer\" (click)=\"nextYearRange()\">\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </span>\n </div>\n } @else {\n <div class=\"calendar_body\">\n <div class=\"calendar-grid\">\n <!-- Day names -->\n @for (\n day of [\"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"];\n track $index\n ) {\n <div class=\"days_name\">\n {{ day }}\n </div>\n }\n\n <!-- Calendar dates -->\n @for (dayObj of daysInMonth; track $index) {\n <div\n class=\"calendar-day\"\n [ngClass]=\"{\n active:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'single' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ),\n\n active_start:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n dayObj.day === rangeStart,\n\n active_end:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n dayObj.day === rangeEnd,\n\n range_between_active:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n rangeStart != null &&\n rangeEnd != null &&\n dayObj.day > rangeStart &&\n dayObj.day < rangeEnd,\n\n other_month: !dayObj.isCurrentMonth,\n disabled: isDayDisabled(dayObj.day),\n notInCurrentMonth: !dayObj.isCurrentMonth,\n }\"\n (click)=\"\n dayObj.isCurrentMonth &&\n !isDayDisabled(dayObj.day) &&\n selectDate(dayObj.day)\n \"\n >\n {{ dayObj.day }}\n </div>\n }\n </div>\n <div class=\"bottom_btn\">\n <div class=\"btn\">Clear</div>\n <div class=\"btn\">Today</div>\n </div>\n </div>\n }\n </div>\n <!-- TIME SLOTS (only if showTime = true) -->\n @if (dateConfig.enableTime) {\n <div class=\"times\">\n <div class=\"time-picker\">\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n (click)=\"selectTime(timeSlot.label)\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <!-- center selection indicator -->\n <div class=\"center-highlight\"></div>\n </div>\n\n <!-- @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n (click)=\"selectTime(timeSlot.label)\"\n >\n {{ timeSlot.label }}\n </span>\n } -->\n </div>\n }\n </div>\n }\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.calendar_wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:\"\";background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .pe-none{pointer-events:none}.calendar_wrapper .date_box{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;gap:0;height:calc(3.3333333333rem / var(--scale))}.calendar_wrapper .date_box input{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;width:100%;height:100%;cursor:pointer;border:0 solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-family:inherit}.calendar_wrapper .date_box input::placeholder{color:var(--neutral-500)}.calendar_wrapper .date_box img{max-width:calc(1.3333333333rem / var(--scale));margin-right:calc(1rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup{display:flex;position:absolute;top:0;left:100%;z-index:10;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--box-shadow);width:100%;min-width:calc(27.8333333333rem / var(--scale));min-height:calc(30.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_container{flex:1;margin:calc(.25rem / var(--scale)) 0}.calendar_wrapper .calendar-popup .calendar-header{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container{display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button{cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year{font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex}.calendar_wrapper .calendar-popup .calendar-header .month-year .year,.calendar_wrapper .calendar-popup .calendar-header .month-year .month{padding-right:calc(.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .month-year .year img,.calendar_wrapper .calendar-popup .calendar-header .month-year .month img{max-width:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year .year.selected,.calendar_wrapper .calendar-popup .calendar-header .month-year .month.selected{color:var(--blue-700)}.calendar_wrapper .calendar-popup .year-selector{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .year-selector .year-grid{width:100%}.calendar_wrapper .calendar-popup .year-selector img{max-width:calc(1.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .year-grid,.calendar_wrapper .calendar-popup .month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:500;height:calc(27.0833333333rem / var(--scale));color:var(--neutral-600)}.calendar_wrapper .calendar-popup .year-grid .month,.calendar_wrapper .calendar-popup .year-grid .year,.calendar_wrapper .calendar-popup .month-grid .month,.calendar_wrapper .calendar-popup .month-grid .year{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;border-radius:calc(.3333333333rem / var(--scale));transition:ease-in-out .2s}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .month.selected,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .year-grid .year.selected,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .month.selected,.calendar_wrapper .calendar-popup .month-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .year.selected{color:var(--white);background-color:var(--blue-600)}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .year:hover{background-color:var(--blue-100);color:var(--blue-700)}.calendar_wrapper .calendar-popup .calendar_body{display:flex;flex-direction:column;justify-content:space-between;align-items:\"\";flex-wrap:nowrap;gap:\"\"}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;min-width:calc(27.8333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .days_name{height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end,.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{background-color:var(--blue-600);color:var(--white);border-radius:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day{border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;width:calc(3.975rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active{background-color:var(--blue-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day:hover{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.selected{background-color:var(--orange-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.disabled{color:var(--neutral-400);pointer-events:none;background:var(--neutral-200)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth{cursor:default;color:var(--neutral-400)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth:hover{background-color:transparent}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{border-top-left-radius:calc(.3333333333rem / var(--scale));border-bottom-left-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.range_between_active{color:var(--blue-600);background-color:var(--blue-100)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end{border-top-right-radius:calc(.3333333333rem / var(--scale));border-bottom-right-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn .btn{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--blue-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer}.calendar_wrapper .calendar-popup .time-picker{position:relative;display:grid;grid-template-columns:repeat(3,1fr);height:360px;overflow:hidden;background:#fff}.calendar_wrapper .calendar-popup .time-column{display:flex;flex-direction:column;align-items:center;overflow-y:auto;scroll-snap-type:y mandatory}.calendar_wrapper .calendar-popup .time-column::-webkit-scrollbar{width:0}.calendar_wrapper .calendar-popup .span_time.active{background:#2f80ed;color:#fff;border-radius:4px;width:70%}.calendar_wrapper .calendar-popup .center-highlight{position:absolute;top:50%;left:0;width:100%;height:40px;transform:translateY(-50%);border-top:1px solid red;border-bottom:1px solid red;pointer-events:none}.calendar_wrapper .calendar-popup .times{min-width:calc(14.6666666667rem / var(--scale));max-height:calc(30.3333333333rem / var(--scale));overflow-y:auto;overflow-x:hidden;border-left:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));box-shadow:-3px 0 8px 2px #0a0d121f;border-top-right-radius:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .times .span_time{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);display:inline-block;width:calc(4rem / var(--scale)) calc(3.3333333333rem / var(--scale));height:100%;max-width:calc(4rem / var(--scale));text-align:center;cursor:pointer;scroll-snap-align:center}.calendar_wrapper .calendar-popup .times .span_time:hover,.calendar_wrapper .calendar-popup .times .span_time.active{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}@media only screen and (min-width: 1024px) and (max-width: 1280px){.calendar-grid{display:grid;grid-template-columns:repeat(4,1fr)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
856
869
  }
857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonCalendarComponent, decorators: [{
870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonCalendarComponent, decorators: [{
858
871
  type: Component,
859
872
  args: [{ selector: 'lib-common-calendar', imports: [CommonModule, OutsideClickDirective, AdaptivePositionDirective], providers: [
860
873
  {
@@ -863,9 +876,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
863
876
  multi: true,
864
877
  },
865
878
  DatePipe,
866
- ], template: "<!-- Calendar -->\r\n\r\n<div\r\n class=\"calendar_wrapper\"\r\n appOutsideClick\r\n (clickOutSide)=\"closeCalendar()\"\r\n [ngClass]=\"{ 'pe-none': disableControl }\"\r\n>\r\n <div class=\"date_box\" (click)=\"toggleCalendar()\" #trigger>\r\n @if (dateConfig.selectionMode=='single') {\r\n\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select Date\"\r\n [value]=\"selectedDateTime\"\r\n readonly\r\n [disabled]=\"disableControl\"\r\n />\r\n } @else {\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select date Range\"\r\n [value]=\"\r\n selectedDateTime.start\r\n | date\r\n : 'MM/dd/yyyy' +\r\n ' - ' +\r\n (selectedDateTime.end | date : 'MM/dd/yyyy')\r\n \"\r\n readonly\r\n />\r\n }\r\n <!-- <i-feather name=\"calendar\" class=\"calendar_icon\"></i-feather> -->\r\n <img src=\"images/calendar.svg\" alt=\"\" />\r\n </div>\r\n @if (isOpen) {\r\n <div class=\"calendar-popup\" adaptivePosition [trigger]=\"trigger\" [matchWidth]=\"false\">\r\n <div class=\"calendar_container\">\r\n <!-- for the header -->\r\n <div class=\"calendar-header\">\r\n <div class=\"month-year\">\r\n <span class=\"month\" (click)=\"calendarView = 'monthView'\">\r\n {{ getMonthYear().month }},</span\r\n >\r\n <div class=\"year\" (click)=\"calendarView = 'yearView'\">\r\n <span>\r\n {{ getMonthYear().year }}\r\n </span>\r\n <img src=\"images/chevron-down.svg\" class=\"year_arrow\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"arrow_container\">\r\n <span class=\"navigation-button\" (click)=\"previousMonth()\">\r\n <img src=\"images/arrow-up.svg\" alt=\"\" />\r\n </span>\r\n\r\n <span class=\"navigation-button\" (click)=\"nextMonth()\">\r\n <img src=\"images/arrow-down.svg\" alt=\"\" />\r\n </span>\r\n </div>\r\n </div>\r\n @if(calendarView === \"monthView\"){\r\n <div class=\"month-grid\">\r\n @for(month of monthRange | keyvalue; track $index){\r\n <span\r\n class=\"month\"\r\n (click)=\"selectMonth(month.key)\"\r\n [ngClass]=\"{ selected: month.key == currentDate.getMonth() }\"\r\n >{{ month.value }}</span\r\n >\r\n }\r\n </div>\r\n } @else if(calendarView === 'yearView'){\r\n <div class=\"year-selector\">\r\n <span class=\"navigation-button pointer\" (click)=\"previousYearRange()\">\r\n <img src=\"images/chevron-left.svg\" alt=\"\" />\r\n </span>\r\n <div class=\"year-grid\">\r\n @for(year of yearRange;track $index){\r\n <span\r\n class=\"year\"\r\n (click)=\"selectYear(year)\"\r\n [ngClass]=\"{ selected: year == currentDate.getFullYear() }\"\r\n >{{ year }}</span\r\n >\r\n }\r\n </div>\r\n <span class=\"navigation-button pointer\" (click)=\"nextYearRange()\">\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </span>\r\n </div>\r\n } @else {\r\n <div class=\"calendar_body\">\r\n <div class=\"calendar-grid\">\r\n <!-- Day names -->\r\n @for (day of ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']; track $index)\r\n {\r\n\r\n <div class=\"days_name\">\r\n {{ day }}\r\n </div>\r\n }\r\n\r\n <!-- Calendar dates -->\r\n @for (dayObj of daysInMonth; track $index) {\r\n <div\r\n class=\"calendar-day\"\r\n [ngClass]=\"{\r\n active:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'single' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ),\r\n\r\n active_start:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n dayObj.day === rangeStart,\r\n\r\n active_end:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n dayObj.day === rangeEnd,\r\n\r\n range_between_active:\r\n dayObj.isCurrentMonth &&\r\n dateConfig.selectionMode === 'range' &&\r\n isSelectedDate(\r\n dayObj.day,\r\n dayObj.date.getMonth(),\r\n dayObj.date.getFullYear()\r\n ) &&\r\n rangeStart != null &&\r\n rangeEnd != null &&\r\n dayObj.day > rangeStart &&\r\n dayObj.day < rangeEnd,\r\n\r\n other_month: !dayObj.isCurrentMonth,\r\n disabled: isDayDisabled(dayObj.day),\r\n notInCurrentMonth: !dayObj.isCurrentMonth\r\n }\"\r\n (click)=\"\r\n dayObj.isCurrentMonth &&\r\n !isDayDisabled(dayObj.day) &&\r\n selectDate(dayObj.day)\r\n \"\r\n >\r\n {{ dayObj.day }}\r\n </div>\r\n }\r\n </div>\r\n <div class=\"bottom_btn\">\r\n <div class=\"btn\">Clear</div>\r\n <div class=\"btn\">Today</div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <!-- TIME SLOTS (only if showTime = true) -->\r\n @if (dateConfig.enableTime) {\r\n <div class=\"times\">\r\n <div class=\"time-picker\">\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n (click)=\"selectTime(timeSlot.label)\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <div class=\"time-column\">\r\n @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n }\r\n </div>\r\n\r\n <!-- center selection indicator -->\r\n <div class=\"center-highlight\"></div>\r\n </div>\r\n\r\n <!-- @for (timeSlot of timeSlots; track $index) {\r\n <span\r\n class=\"span_time\"\r\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\r\n (click)=\"selectTime(timeSlot.label)\"\r\n >\r\n {{ timeSlot.label }}\r\n </span>\r\n } -->\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.calendar_wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:\"\";position:relative;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .pe-none{pointer-events:none}.calendar_wrapper .date_box{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;gap:0;height:calc(3.3333333333rem / var(--scale))}.calendar_wrapper .date_box input{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;width:100%;height:100%;cursor:pointer;border:0 solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-family:inherit}.calendar_wrapper .date_box input::placeholder{color:var(--neutral-500)}.calendar_wrapper .date_box img{max-width:calc(1.3333333333rem / var(--scale));margin-right:calc(1rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup{display:flex;position:absolute;top:calc(3.3333333333rem / var(--scale));right:0;z-index:10;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--box-shadow);width:100%;min-width:calc(27.8333333333rem / var(--scale));min-height:calc(30.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_container{flex:1;margin:calc(.25rem / var(--scale)) 0}.calendar_wrapper .calendar-popup .calendar-header{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container{display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button{cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year{font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex}.calendar_wrapper .calendar-popup .calendar-header .month-year .year,.calendar_wrapper .calendar-popup .calendar-header .month-year .month{padding-right:calc(.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .month-year .year img,.calendar_wrapper .calendar-popup .calendar-header .month-year .month img{max-width:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year .year.selected,.calendar_wrapper .calendar-popup .calendar-header .month-year .month.selected{color:var(--blue-700)}.calendar_wrapper .calendar-popup .year-selector{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .year-selector .year-grid{width:100%}.calendar_wrapper .calendar-popup .year-selector img{max-width:calc(1.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .year-grid,.calendar_wrapper .calendar-popup .month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:500;height:calc(27.0833333333rem / var(--scale));color:var(--neutral-600)}.calendar_wrapper .calendar-popup .year-grid .month,.calendar_wrapper .calendar-popup .year-grid .year,.calendar_wrapper .calendar-popup .month-grid .month,.calendar_wrapper .calendar-popup .month-grid .year{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;border-radius:calc(.3333333333rem / var(--scale));transition:ease-in-out .2s}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .month.selected,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .year-grid .year.selected,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .month.selected,.calendar_wrapper .calendar-popup .month-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .year.selected{color:var(--white);background-color:var(--blue-600)}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .year:hover{background-color:var(--blue-100);color:var(--blue-700)}.calendar_wrapper .calendar-popup .calendar_body{display:flex;flex-direction:column;justify-content:space-between;align-items:\"\";flex-wrap:nowrap;gap:\"\"}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;min-width:calc(27.8333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .days_name{height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end,.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{background-color:var(--blue-600);color:var(--white);border-radius:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day{border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;width:calc(3.975rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active{background-color:var(--blue-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day:hover{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.selected{background-color:var(--orange-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.disabled{color:var(--neutral-400);pointer-events:none;background:var(--neutral-200)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth{cursor:default;color:var(--neutral-400)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth:hover{background-color:transparent}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{border-top-left-radius:calc(.3333333333rem / var(--scale));border-bottom-left-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.range_between_active{color:var(--blue-600);background-color:var(--blue-100)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end{border-top-right-radius:calc(.3333333333rem / var(--scale));border-bottom-right-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn .btn{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--blue-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer}.calendar_wrapper .calendar-popup .time-picker{position:relative;display:grid;grid-template-columns:repeat(3,1fr);height:360px;overflow:hidden;background:#fff}.calendar_wrapper .calendar-popup .time-column{display:flex;flex-direction:column;align-items:center;overflow-y:auto;scroll-snap-type:y mandatory}.calendar_wrapper .calendar-popup .time-column::-webkit-scrollbar{width:0}.calendar_wrapper .calendar-popup .span_time.active{background:#2f80ed;color:#fff;border-radius:4px;width:70%}.calendar_wrapper .calendar-popup .center-highlight{position:absolute;top:50%;left:0;width:100%;height:40px;transform:translateY(-50%);border-top:1px solid red;border-bottom:1px solid red;pointer-events:none}.calendar_wrapper .calendar-popup .times{min-width:calc(14.6666666667rem / var(--scale));max-height:calc(30.3333333333rem / var(--scale));overflow-y:auto;overflow-x:hidden;border-left:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));box-shadow:-3px 0 8px 2px #0a0d121f;border-top-right-radius:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .times .span_time{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);display:inline-block;width:calc(4rem / var(--scale)) calc(3.3333333333rem / var(--scale));height:100%;max-width:calc(4rem / var(--scale));text-align:center;cursor:pointer;scroll-snap-align:center}.calendar_wrapper .calendar-popup .times .span_time:hover,.calendar_wrapper .calendar-popup .times .span_time.active{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}@media only screen and (min-width: 1024px) and (max-width: 1280px){.calendar-grid{display:grid;grid-template-columns:repeat(4,1fr)}}\n"] }]
879
+ ], template: "<!-- Calendar -->\n\n<div\n class=\"calendar_wrapper\"\n appOutsideClick\n (clickOutSide)=\"closeCalendar()\"\n [ngClass]=\"{ 'pe-none': disableControl }\"\n>\n <div class=\"date_box\" (click)=\"toggleCalendar()\" #trigger>\n @if (dateConfig.selectionMode == \"single\") {\n <input\n type=\"text\"\n placeholder=\"Select Date\"\n [value]=\"selectedDateTime\"\n readonly\n [disabled]=\"disableControl\"\n />\n } @else {\n <input\n type=\"text\"\n placeholder=\"Select date Range\"\n [value]=\"\n selectedDateTime.start\n | date\n : 'MM/dd/yyyy' +\n ' - ' +\n (selectedDateTime.end | date: 'MM/dd/yyyy')\n \"\n readonly\n />\n }\n <!-- <i-feather name=\"calendar\" class=\"calendar_icon\"></i-feather> -->\n <img src=\"images/calendar.svg\" alt=\"\" />\n </div>\n @if (isOpen) {\n <div\n class=\"calendar-popup\"\n adaptivePosition\n [trigger]=\"trigger\"\n [matchWidth]=\"false\"\n appOutsideClick\n (clickOutside)=\"hideCalender()\"\n >\n <div class=\"calendar_container\">\n <!-- for the header -->\n <div class=\"calendar-header\">\n <div class=\"month-year\">\n <span class=\"month\" (click)=\"calendarView = 'monthView'\">\n {{ getMonthYear().month }},</span\n >\n <div class=\"year\" (click)=\"calendarView = 'yearView'\">\n <span>\n {{ getMonthYear().year }}\n </span>\n <img src=\"images/chevron-down.svg\" class=\"year_arrow\" alt=\"\" />\n </div>\n </div>\n\n <div class=\"arrow_container\">\n <span class=\"navigation-button\" (click)=\"previousMonth()\">\n <img src=\"images/arrow-up.svg\" alt=\"\" />\n </span>\n\n <span class=\"navigation-button\" (click)=\"nextMonth()\">\n <img src=\"images/arrow-down.svg\" alt=\"\" />\n </span>\n </div>\n </div>\n @if (calendarView === \"monthView\") {\n <div class=\"month-grid\">\n @for (month of monthRange | keyvalue; track $index) {\n <span\n class=\"month\"\n (click)=\"selectMonth(month.key)\"\n [ngClass]=\"{ selected: month.key == currentDate.getMonth() }\"\n >{{ month.value }}</span\n >\n }\n </div>\n } @else if (calendarView === \"yearView\") {\n <div class=\"year-selector\">\n <span\n class=\"navigation-button pointer\"\n (click)=\"previousYearRange()\"\n >\n <img src=\"images/chevron-left.svg\" alt=\"\" />\n </span>\n <div class=\"year-grid\">\n @for (year of yearRange; track $index) {\n <span\n class=\"year\"\n (click)=\"selectYear(year)\"\n [ngClass]=\"{ selected: year == currentDate.getFullYear() }\"\n >{{ year }}</span\n >\n }\n </div>\n <span class=\"navigation-button pointer\" (click)=\"nextYearRange()\">\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </span>\n </div>\n } @else {\n <div class=\"calendar_body\">\n <div class=\"calendar-grid\">\n <!-- Day names -->\n @for (\n day of [\"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"];\n track $index\n ) {\n <div class=\"days_name\">\n {{ day }}\n </div>\n }\n\n <!-- Calendar dates -->\n @for (dayObj of daysInMonth; track $index) {\n <div\n class=\"calendar-day\"\n [ngClass]=\"{\n active:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'single' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ),\n\n active_start:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n dayObj.day === rangeStart,\n\n active_end:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n dayObj.day === rangeEnd,\n\n range_between_active:\n dayObj.isCurrentMonth &&\n dateConfig.selectionMode === 'range' &&\n isSelectedDate(\n dayObj.day,\n dayObj.date.getMonth(),\n dayObj.date.getFullYear()\n ) &&\n rangeStart != null &&\n rangeEnd != null &&\n dayObj.day > rangeStart &&\n dayObj.day < rangeEnd,\n\n other_month: !dayObj.isCurrentMonth,\n disabled: isDayDisabled(dayObj.day),\n notInCurrentMonth: !dayObj.isCurrentMonth,\n }\"\n (click)=\"\n dayObj.isCurrentMonth &&\n !isDayDisabled(dayObj.day) &&\n selectDate(dayObj.day)\n \"\n >\n {{ dayObj.day }}\n </div>\n }\n </div>\n <div class=\"bottom_btn\">\n <div class=\"btn\">Clear</div>\n <div class=\"btn\">Today</div>\n </div>\n </div>\n }\n </div>\n <!-- TIME SLOTS (only if showTime = true) -->\n @if (dateConfig.enableTime) {\n <div class=\"times\">\n <div class=\"time-picker\">\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n (click)=\"selectTime(timeSlot.label)\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <div class=\"time-column\">\n @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n >\n {{ timeSlot.label }}\n </span>\n }\n </div>\n\n <!-- center selection indicator -->\n <div class=\"center-highlight\"></div>\n </div>\n\n <!-- @for (timeSlot of timeSlots; track $index) {\n <span\n class=\"span_time\"\n [ngClass]=\"{ active: selectedTime === timeSlot.label }\"\n (click)=\"selectTime(timeSlot.label)\"\n >\n {{ timeSlot.label }}\n </span>\n } -->\n </div>\n }\n </div>\n }\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.calendar_wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:\"\";background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .pe-none{pointer-events:none}.calendar_wrapper .date_box{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;gap:0;height:calc(3.3333333333rem / var(--scale))}.calendar_wrapper .date_box input{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;width:100%;height:100%;cursor:pointer;border:0 solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-family:inherit}.calendar_wrapper .date_box input::placeholder{color:var(--neutral-500)}.calendar_wrapper .date_box img{max-width:calc(1.3333333333rem / var(--scale));margin-right:calc(1rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup{display:flex;position:absolute;top:0;left:100%;z-index:10;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale)) 0 var(--box-shadow);width:100%;min-width:calc(27.8333333333rem / var(--scale));min-height:calc(30.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_container{flex:1;margin:calc(.25rem / var(--scale)) 0}.calendar_wrapper .calendar-popup .calendar-header{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container{display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button{cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .arrow_container .navigation-button img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year{font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex}.calendar_wrapper .calendar-popup .calendar-header .month-year .year,.calendar_wrapper .calendar-popup .calendar-header .month-year .month{padding-right:calc(.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer}.calendar_wrapper .calendar-popup .calendar-header .month-year .year img,.calendar_wrapper .calendar-popup .calendar-header .month-year .month img{max-width:calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar-header .month-year .year.selected,.calendar_wrapper .calendar-popup .calendar-header .month-year .month.selected{color:var(--blue-700)}.calendar_wrapper .calendar-popup .year-selector{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .year-selector .year-grid{width:100%}.calendar_wrapper .calendar-popup .year-selector img{max-width:calc(1.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .year-grid,.calendar_wrapper .calendar-popup .month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-16);line-height:calc(2.3333333333rem / var(--scale));font-weight:500;height:calc(27.0833333333rem / var(--scale));color:var(--neutral-600)}.calendar_wrapper .calendar-popup .year-grid .month,.calendar_wrapper .calendar-popup .year-grid .year,.calendar_wrapper .calendar-popup .month-grid .month,.calendar_wrapper .calendar-popup .month-grid .year{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;border-radius:calc(.3333333333rem / var(--scale));transition:ease-in-out .2s}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .month.selected,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .year-grid .year.selected,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .month.selected,.calendar_wrapper .calendar-popup .month-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .year.selected{color:var(--white);background-color:var(--blue-600)}.calendar_wrapper .calendar-popup .year-grid .month:hover,.calendar_wrapper .calendar-popup .year-grid .year:hover,.calendar_wrapper .calendar-popup .month-grid .month:hover,.calendar_wrapper .calendar-popup .month-grid .year:hover{background-color:var(--blue-100);color:var(--blue-700)}.calendar_wrapper .calendar-popup .calendar_body{display:flex;flex-direction:column;justify-content:space-between;align-items:\"\";flex-wrap:nowrap;gap:\"\"}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;min-width:calc(27.8333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .days_name{height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end,.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{background-color:var(--blue-600);color:var(--white);border-radius:0}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day{border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;width:calc(3.975rem / var(--scale));height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(2rem / var(--scale));font-weight:600;color:var(--neutral-600)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active{background-color:var(--blue-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day:hover{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.selected{background-color:var(--orange-600);color:var(--white)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.disabled{color:var(--neutral-400);pointer-events:none;background:var(--neutral-200)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth{cursor:default;color:var(--neutral-400)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.notInCurrentMonth:hover{background-color:transparent}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_start{border-top-left-radius:calc(.3333333333rem / var(--scale));border-bottom-left-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.range_between_active{color:var(--blue-600);background-color:var(--blue-100)}.calendar_wrapper .calendar-popup .calendar_body .calendar-grid .calendar-day.active_end{border-top-right-radius:calc(.3333333333rem / var(--scale));border-bottom-right-radius:calc(.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.calendar_wrapper .calendar-popup .calendar_body .bottom_btn .btn{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--blue-600);display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer}.calendar_wrapper .calendar-popup .time-picker{position:relative;display:grid;grid-template-columns:repeat(3,1fr);height:360px;overflow:hidden;background:#fff}.calendar_wrapper .calendar-popup .time-column{display:flex;flex-direction:column;align-items:center;overflow-y:auto;scroll-snap-type:y mandatory}.calendar_wrapper .calendar-popup .time-column::-webkit-scrollbar{width:0}.calendar_wrapper .calendar-popup .span_time.active{background:#2f80ed;color:#fff;border-radius:4px;width:70%}.calendar_wrapper .calendar-popup .center-highlight{position:absolute;top:50%;left:0;width:100%;height:40px;transform:translateY(-50%);border-top:1px solid red;border-bottom:1px solid red;pointer-events:none}.calendar_wrapper .calendar-popup .times{min-width:calc(14.6666666667rem / var(--scale));max-height:calc(30.3333333333rem / var(--scale));overflow-y:auto;overflow-x:hidden;border-left:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));box-shadow:-3px 0 8px 2px #0a0d121f;border-top-right-radius:calc(.6666666667rem / var(--scale))}.calendar_wrapper .calendar-popup .times .span_time{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);display:inline-block;width:calc(4rem / var(--scale)) calc(3.3333333333rem / var(--scale));height:100%;max-width:calc(4rem / var(--scale));text-align:center;cursor:pointer;scroll-snap-align:center}.calendar_wrapper .calendar-popup .times .span_time:hover,.calendar_wrapper .calendar-popup .times .span_time.active{background-color:var(--blue-100);color:var(--blue-700);transition:ease-in-out .3s}@media only screen and (min-width: 1024px) and (max-width: 1280px){.calendar-grid{display:grid;grid-template-columns:repeat(4,1fr)}}\n"] }]
867
880
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DatePipe }], propDecorators: { dateTimeSelected: [{
868
881
  type: Output
882
+ }], clearDateEvent: [{
883
+ type: Output
869
884
  }], dateConfig: [{
870
885
  type: Input
871
886
  }], minDate: [{
@@ -889,6 +904,9 @@ class CatsDataGridComponent {
889
904
  renderer;
890
905
  zone;
891
906
  cd;
907
+ pinMenu;
908
+ colActionMenu;
909
+ table;
892
910
  tableOptions;
893
911
  totalRecords = 0;
894
912
  sortingRequired = true;
@@ -900,6 +918,10 @@ class CatsDataGridComponent {
900
918
  selectedRowEmpty = false;
901
919
  filterRequired = true;
902
920
  threeDotsMenuRequired = true;
921
+ settingsRequired = true;
922
+ settingsClicked = false;
923
+ resetPage = true;
924
+ rowId = null;
903
925
  showDropdown = false;
904
926
  height = 400;
905
927
  groupByRequired = false;
@@ -907,8 +929,10 @@ class CatsDataGridComponent {
907
929
  onCheckboxSelection = new EventEmitter();
908
930
  onScrollEmitter = new EventEmitter();
909
931
  filter = new EventEmitter();
932
+ onHideSettings = new EventEmitter();
910
933
  activeFilterIndex = null;
911
934
  originalRowData = [];
935
+ activeAll = true;
912
936
  pageDetails = {
913
937
  pageSize: 20,
914
938
  totalPages: 1,
@@ -942,6 +966,7 @@ class CatsDataGridComponent {
942
966
  columnDraggable = [];
943
967
  activeGroups = [];
944
968
  groupBy = [];
969
+ groupByField = '';
945
970
  dragGroupIndex = null;
946
971
  dateConfig = {
947
972
  selectionMode: 'single',
@@ -968,32 +993,64 @@ class CatsDataGridComponent {
968
993
  removeMouseUp;
969
994
  rafId = null;
970
995
  appliedFilters = [];
996
+ rowGripFieldName;
997
+ pageNumber;
998
+ pageSize;
971
999
  appliedFiltersEvent = new EventEmitter();
972
1000
  activeGroupsEvent = new EventEmitter();
973
1001
  dynamicGroupingFiltering = false;
1002
+ atLeastOneColumnChecked = true;
1003
+ draggedRowData = {};
1004
+ firstCol;
1005
+ isRowSelected = false;
1006
+ onRowClicked = new EventEmitter();
1007
+ onCellClicked = new EventEmitter();
974
1008
  constructor(renderer, zone, cd) {
975
1009
  this.renderer = renderer;
976
1010
  this.zone = zone;
977
1011
  this.cd = cd;
978
1012
  }
979
- ngOnInit() { }
1013
+ ngOnInit() {
1014
+ // if (this.colDefs && this.colDefs.length > 0) {
1015
+ // this.firstCol = this.colDefs[0];
1016
+ // }
1017
+ }
980
1018
  ngOnChanges(changes) {
1019
+ if (changes['pageNumber']?.currentValue) {
1020
+ this.pageDetails.currentPage = changes['pageNumber']?.currentValue;
1021
+ this.recordsToShow.min = (this.pageDetails.currentPage - 1) * this.pageDetails.pageSize;
1022
+ this.recordsToShow.max = this.pageDetails.currentPage * this.pageDetails.pageSize;
1023
+ this.clearAllFilter();
1024
+ }
1025
+ if (changes['pageSize']?.currentValue) {
1026
+ this.pageDetails.pageSize = changes['pageSize']?.currentValue;
1027
+ this.recordsToShow.min = (this.pageDetails.currentPage - 1) * this.pageDetails.pageSize;
1028
+ this.recordsToShow.max = this.pageDetails.currentPage * this.pageDetails.pageSize;
1029
+ }
981
1030
  if (changes['colDefs']?.currentValue) {
982
- this.resetPagination();
1031
+ // this.resetPagination();
983
1032
  this.colDefs = this.getUpdatedColDefs(changes['colDefs']?.currentValue);
984
1033
  setTimeout(() => {
985
1034
  this.applyAllFilters();
986
1035
  });
987
1036
  this.originalColDefs = [...this.colDefs];
988
1037
  }
989
- if (changes['totalRecords']?.currentValue) {
1038
+ if (changes['totalRecords']?.currentValue && this.resetPage) {
990
1039
  this.resetPagination();
991
1040
  }
1041
+ else {
1042
+ this.setPageCount();
1043
+ }
992
1044
  if (changes['rowData']?.currentValue) {
993
1045
  if (this.selectedRowEmpty)
994
1046
  this.selectedRow = [];
995
1047
  this.rowData = changes['rowData']?.currentValue.map((row, i) => {
996
- row.rowId = `${Date.now()}_${i}`;
1048
+ if (row[this.rowId]) {
1049
+ row.rowId = row[this.rowId];
1050
+ }
1051
+ else {
1052
+ row.rowId = `${Date.now()}_${i}`;
1053
+ }
997
1054
  if (row?.isSelected)
998
1055
  [...this.selectedRow, row];
999
1056
  return row;
@@ -1006,6 +1063,50 @@ class CatsDataGridComponent {
1006
1063
  }
1007
1064
  this.getGroupedData();
1008
1065
  }
1066
+ if (changes['groupByField']?.currentValue) {
1067
+ this.activeGroups = [];
1068
+ this.groupBy = [];
1069
+ const groupByField = changes['groupByField'].currentValue;
1070
+ const col = this.getColumnDetail(this.colDefs, groupByField);
1071
+ this.activeGroups.push(...col);
1072
+ this.groupBy.push(groupByField);
1073
+ this.getGroupedData();
1074
+ }
1075
+ }
1076
+ getColumnDetail(colDefs, groupByField) {
1077
+ return colDefs.filter((col) => col.fieldName === groupByField);
1078
+ }
1079
+ activeAllSelection(event) {
1080
+ let checked = event.target.checked;
1081
+ if (checked) {
1082
+ this.colDefs = this.originalColDefs.map((dt) => {
1083
+ if (!dt.active && !dt.headerLocked) {
1084
+ dt.active = true;
1085
+ }
1086
+ this.atLeastOneColumnChecked = true;
1087
+ return dt;
1088
+ });
1089
+ }
1090
+ else {
1091
+ this.colDefs = this.originalColDefs.map((dt) => {
1092
+ if (dt.active && !dt.headerLocked) {
1093
+ dt.active = false;
1094
+ }
1095
+ this.atLeastOneColumnChecked = false;
1096
+ return dt;
1097
+ });
1098
+ }
1099
+ }
1100
+ changeActiveColSelection(event, col) {
1101
+ col.active = !col.active;
1102
+ const isAllNotChecked = this.originalColDefs.some((dt) => !dt.active);
1103
+ this.atLeastOneColumnChecked = this.originalColDefs.some((dt) => dt.active);
1104
+ if (isAllNotChecked) {
1105
+ this.activeAll = false;
1106
+ }
1107
+ else {
1108
+ this.activeAll = true;
1109
+ }
1009
1110
  }
1010
1111
  /**
1011
1112
  * @description Prepares and normalizes column definitions for filtering and menu behavior
@@ -1028,6 +1129,8 @@ class CatsDataGridComponent {
1028
1129
  }
1029
1130
  let updatedCol = {
1030
1131
  ...col,
1132
+ active: col.active ?? true,
1133
+ locked: col.locked ?? false,
1031
1134
  filterable: col.filterable ?? true,
1032
1135
  columnAction: col.columnAction ?? true,
1033
1136
  sortable: col.sortable ?? true,
@@ -1071,7 +1174,11 @@ class CatsDataGridComponent {
1071
1174
  case 'set':
1072
1175
  const options = [
1073
1176
  ...new Set(this.rowData.flatMap((r) => {
1074
- return this.normalizeSetFilterType(r[col.fieldName], col?.cellRendererParams?.tagKey)?.filter(Boolean);
1177
+ let fieldName = col.fieldName;
1178
+ if (fieldName.includes('.')) {
1179
+ fieldName = fieldName.split('.')[0];
1180
+ }
1181
+ return this.normalizeSetFilterType(r[fieldName], col?.cellRendererParams?.tagKey)?.filter(Boolean);
1075
1182
  })),
1076
1183
  ];
1077
1184
  updatedCol = {
@@ -1098,7 +1205,11 @@ class CatsDataGridComponent {
1098
1205
  case 'set':
1099
1206
  const options = [
1100
1207
  ...new Set(this.rowData.flatMap((r) => {
1101
- return this.normalizeSetFilterType(r[col.fieldName], col?.cellRendererParams?.tagKey)?.filter(Boolean);
1208
+ let fieldName = col.fieldName;
1209
+ if (fieldName.includes('.')) {
1210
+ fieldName = fieldName.split('.')[0];
1211
+ }
1212
+ return this.normalizeSetFilterType(r[fieldName], col?.cellRendererParams?.tagKey)?.filter(Boolean);
1102
1213
  })),
1103
1214
  ];
1104
1215
  const selectedValues = new Set(appliedFilter.filters.map((f) => f.filterValue));
@@ -1192,116 +1303,122 @@ class CatsDataGridComponent {
1192
1303
  applyAllFilters() {
1193
1304
  let result = structuredClone(this.originalRowData);
1194
1305
  this.colDefs.forEach((col) => {
1195
- const field = col.fieldName;
1196
- // *********** TEXT FILTER ***********
1197
- if (col.filterType === 'text') {
1198
- const [c1, c2] = col.filters;
1199
- const textVal1 = c1.filterValue?.toLowerCase().trim();
1200
- const textVal2 = c2.filterValue?.toLowerCase().trim();
1201
- if (!textVal1 && !textVal2) {
1202
- this.activeFilters.delete(col.fieldName);
1203
- return;
1204
- }
1205
- this.activeFilters.add(col.fieldName);
1206
- result = result.filter((r) => {
1207
- const fieldVal = String(r[field]).toLowerCase();
1208
- const cond1 = textVal1
1209
- ? this.evaluateTextFilterCondition(c1.filterOperation, fieldVal, textVal1)
1210
- : false;
1211
- const cond2 = textVal2
1212
- ? this.evaluateTextFilterCondition(c2.filterOperation, fieldVal, textVal2)
1213
- : false;
1214
- return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1215
- });
1216
- }
1217
- // *********** NUMBER FILTER ***********
1218
- if (col.filterType === 'number') {
1219
- const [c1, c2] = col.filters;
1220
- const numValue1 = Number(c1.filterValue);
1221
- const numValue2 = Number(c2.filterValue);
1222
- if (!numValue1 && !numValue2) {
1223
- this.activeFilters.delete(col.fieldName);
1224
- return;
1225
- }
1226
- this.activeFilters.add(col.fieldName);
1227
- result = result.filter((r) => {
1228
- const fieldVal = Number(r[field]);
1229
- const cond1 = numValue1
1230
- ? this.evaluateNumDateFilterCondition(c1.filterOperation, fieldVal, numValue1)
1231
- : false;
1232
- const cond2 = numValue2
1233
- ? this.evaluateNumDateFilterCondition(c2.filterOperation, fieldVal, numValue2)
1234
- : false;
1235
- return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1236
- });
1237
- }
1238
- // *********** DATE FILTER ***********
1239
- if (col.filterType === 'date') {
1240
- const [c1, c2] = col.filters;
1241
- const selected1 = this.normalizeDate(c1.filterValue);
1242
- const selected2 = this.normalizeDate(c2.filterValue);
1243
- if (!selected1 && !selected2) {
1244
- this.activeFilters.delete(col.fieldName);
1245
- return;
1246
- }
1247
- this.activeFilters.add(col.fieldName);
1248
- result = result.filter((r) => {
1249
- const fieldVal = this.normalizeDate(r[field]);
1250
- const cond1 = selected1
1251
- ? this.evaluateNumDateFilterCondition(c1.filterOperation, fieldVal ?? r[field], selected1)
1252
- : false;
1253
- const cond2 = selected2
1254
- ? this.evaluateNumDateFilterCondition(c2.filterOperation, fieldVal ?? r[field], selected2)
1255
- : false;
1256
- return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1257
- });
1258
- }
1259
- // *********** SET FILTER ***********
1260
- if (col.filterType === 'set') {
1261
- if (col.selectedValues?.size >= 0 &&
1262
- col.selectedValues?.size !== col.options.length) {
1306
+ let field = col.fieldName;
1307
+ // if (field.includes('.')) {
1308
+ // const a = field.split('.');
1309
+ // field = a[0];
1310
+ // }
1311
+ if (col?.filterable) {
1312
+ if (col.filterType === 'text') {
1313
+ // *********** TEXT FILTER ***********
1314
+ const [c1, c2] = col.filters;
1315
+ const textVal1 = c1.filterValue?.toLowerCase().trim();
1316
+ const textVal2 = c2.filterValue?.toLowerCase().trim();
1317
+ if (!textVal1 && !textVal2) {
1318
+ this.activeFilters.delete(col.fieldName);
1319
+ return;
1320
+ }
1321
+ this.activeFilters.add(col.fieldName);
1263
1322
  result = result.filter((r) => {
1264
- const value = r[field];
1265
- if (Array.isArray(value) &&
1266
- value.every((val) => typeof val !== 'object')) {
1267
- return value.some((m) => col.selectedValues.has(m));
1268
- }
1269
- if (Array.isArray(value) &&
1270
- value.every((val) => typeof val === 'object')) {
1271
- return value.some((m) => col.selectedValues.has(m[col?.cellRendererParams?.tagKey]));
1272
- }
1273
- return col.selectedValues.has(r[field]);
1323
+ const fieldVal = this.evaluateFieldValue(r, field)?.toLowerCase() || '';
1324
+ const cond1 = textVal1
1325
+ ? this.evaluateTextFilterCondition(c1.filterOperation, fieldVal, textVal1)
1326
+ : false;
1327
+ const cond2 = textVal2
1328
+ ? this.evaluateTextFilterCondition(c2.filterOperation, fieldVal, textVal2)
1329
+ : false;
1330
+ return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1274
1331
  });
1332
+ }
1333
+ // *********** NUMBER FILTER ***********
1334
+ if (col.filterType === 'number') {
1335
+ const [c1, c2] = col.filters;
1336
+ const numValue1 = Number(c1.filterValue);
1337
+ const numValue2 = Number(c2.filterValue);
1338
+ if (!numValue1 && !numValue2) {
1339
+ this.activeFilters.delete(col.fieldName);
1340
+ return;
1341
+ }
1275
1342
  this.activeFilters.add(col.fieldName);
1343
+ result = result.filter((r) => {
1344
+ const fieldVal = Number(r[field]);
1345
+ const cond1 = numValue1
1346
+ ? this.evaluateNumDateFilterCondition(c1.filterOperation, fieldVal, numValue1)
1347
+ : false;
1348
+ const cond2 = numValue2
1349
+ ? this.evaluateNumDateFilterCondition(c2.filterOperation, fieldVal, numValue2)
1350
+ : false;
1351
+ return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1352
+ });
1276
1353
  }
1277
- else {
1278
- this.activeFilters.delete(col.fieldName);
1354
+ // *********** DATE FILTER ***********
1355
+ if (col.filterType === 'date') {
1356
+ const [c1, c2] = col.filters;
1357
+ const selected1 = this.normalizeDate(c1.filterValue);
1358
+ const selected2 = this.normalizeDate(c2.filterValue);
1359
+ if (!selected1 && !selected2) {
1360
+ this.activeFilters.delete(col.fieldName);
1361
+ return;
1362
+ }
1363
+ this.activeFilters.add(col.fieldName);
1364
+ result = result.filter((r) => {
1365
+ const fieldVal = this.normalizeDate(r[field]);
1366
+ const cond1 = selected1
1367
+ ? this.evaluateNumDateFilterCondition(c1.filterOperation, fieldVal ?? r[field], selected1)
1368
+ : false;
1369
+ const cond2 = selected2
1370
+ ? this.evaluateNumDateFilterCondition(c2.filterOperation, fieldVal ?? r[field], selected2)
1371
+ : false;
1372
+ return col.filterLogic === 'AND' ? cond1 && cond2 : cond1 || cond2;
1373
+ });
1279
1374
  }
1280
- }
1281
- if (this.activeFilters.has(col.fieldName)) {
1282
- let filterObj = {
1283
- fieldName: col.fieldName,
1284
- filterLogic: col.filterLogic,
1285
- filters: col.filters,
1286
- };
1375
+ // *********** SET FILTER ***********
1287
1376
  if (col.filterType === 'set') {
1288
- filterObj.filters = Array(...col.selectedValues).map((f) => ({
1289
- filterOperation: 'equals',
1290
- filterValue: f,
1291
- }));
1292
- filterObj.filterLogic = 'OR';
1377
+ if (col.selectedValues?.size >= 0 &&
1378
+ col.selectedValues?.size !== col.options.length) {
1379
+ result = result.filter((r) => {
1380
+ const value = r[field];
1381
+ if (Array.isArray(value) &&
1382
+ value.every((val) => typeof val !== 'object')) {
1383
+ return value.some((m) => col.selectedValues.has(m));
1384
+ }
1385
+ if (Array.isArray(value) &&
1386
+ value.every((val) => typeof val === 'object')) {
1387
+ return value.some((m) => col.selectedValues.has(m[col?.cellRendererParams?.tagKey]));
1388
+ }
1389
+ return col.selectedValues.has(r[field]);
1390
+ });
1391
+ this.activeFilters.add(col.fieldName);
1392
+ }
1393
+ else {
1394
+ this.activeFilters.delete(col.fieldName);
1395
+ }
1293
1396
  }
1294
- const existingIndex = this.appliedFilters.findIndex((f) => f.fieldName === col.fieldName);
1295
- if (existingIndex === -1) {
1296
- this.appliedFilters.push(filterObj);
1397
+ if (this.activeFilters.has(col.fieldName)) {
1398
+ let filterObj = {
1399
+ fieldName: col.fieldName,
1400
+ filterLogic: col.filterLogic,
1401
+ filters: col.filters,
1402
+ };
1403
+ if (col.filterType === 'set') {
1404
+ filterObj.filters = Array(...col.selectedValues).map((f) => ({
1405
+ filterOperation: 'equals',
1406
+ filterValue: f,
1407
+ }));
1408
+ filterObj.filterLogic = 'OR';
1409
+ }
1410
+ const existingIndex = this.appliedFilters.findIndex((f) => f.fieldName === col.fieldName);
1411
+ if (existingIndex === -1) {
1412
+ this.appliedFilters.push(filterObj);
1413
+ }
1414
+ else {
1415
+ this.appliedFilters[existingIndex] = filterObj;
1416
+ }
1297
1417
  }
1298
1418
  else {
1299
- this.appliedFilters[existingIndex] = filterObj;
1419
+ this.appliedFilters = this.appliedFilters.filter((f) => f.fieldName !== col.fieldName);
1300
1420
  }
1301
1421
  }
1302
- else {
1303
- this.appliedFilters = this.appliedFilters.filter((f) => f.fieldName !== col.fieldName);
1304
- }
1305
1422
  });
1306
1423
  if (this.dynamicGroupingFiltering) {
1307
1424
  this.appliedFiltersEvent.emit(this.appliedFilters);
@@ -1312,12 +1429,23 @@ class CatsDataGridComponent {
1312
1429
  this.getGroupedData();
1313
1430
  this.filter.emit(this.filteredData);
1314
1431
  }
1432
+ evaluateFieldValue(row, field) {
1433
+ if (field.includes('.')) {
1434
+ const parts = field.split('.');
1435
+ let value = row;
1436
+ for (const part of parts) {
1437
+ value = value?.[part];
1438
+ }
1439
+ return value;
1440
+ }
1441
+ return row[field];
1442
+ }
1315
1443
  resetFilter(col) {
1316
1444
  switch (col.filterType) {
1317
1445
  case 'text':
1318
1446
  case 'number':
1319
1447
  case 'date': {
1320
- col.filters.forEach((f) => (f.filterValue = ''));
1448
+ col.filters.forEach((f) => (f.filterValue = null));
1321
1449
  col.filterLogic = 'OR';
1322
1450
  break;
1323
1451
  }
@@ -1339,9 +1467,17 @@ class CatsDataGridComponent {
1339
1467
  }
1340
1468
  removeActiveFilter(col) {
1341
1469
  this.activeFilters.delete(col.fieldName);
1342
- this.colDefs
1343
- .find((c) => c.fieldName === col.fieldName)
1344
- .filters.forEach((f) => (f.filterValue = ''));
1470
+ const column = this.colDefs.find((c) => c.fieldName === col.fieldName);
1471
+ if (column) {
1472
+ if (column.filterType === 'set') {
1473
+ column.selectedValues = new Set(column.options); // clear set filter
1474
+ }
1475
+ else {
1476
+ column.filters.forEach((f) => {
1477
+ f.filterValue = '';
1478
+ });
1479
+ }
1480
+ }
1345
1481
  this.appliedFilters = this.appliedFilters.filter((f) => f.fieldName !== col.fieldName);
1346
1482
  if (this.dynamicGroupingFiltering) {
1347
1483
  this.appliedFiltersEvent.emit(this.appliedFilters);
@@ -1434,8 +1570,29 @@ class CatsDataGridComponent {
1434
1570
  this.menuVisible = this.menuVisible.map(() => false);
1435
1571
  if (!this.menuVisible[index])
1436
1572
  this.menuVisible[index] = false;
1437
- const rect = event.target.getBoundingClientRect();
1438
1573
  this.menuVisible[index] = true;
1574
+ // setTimeout(() => {
1575
+ // const rect = (event.target as HTMLElement).getBoundingClientRect();
1576
+ // const el = this.colActionMenu?.nativeElement;
1577
+ // const leftAvailableSpace = rect.left;
1578
+ // const elWidth = el.offsetWidth;
1579
+ // if (leftAvailableSpace < elWidth) {
1580
+ // el.style.right = 'unset';
1581
+ // el.style.left = '0px';
1582
+ // }
1583
+ // });
1584
+ setTimeout(() => {
1585
+ const table = this.table?.nativeElement;
1586
+ const tableRect = table.getBoundingClientRect();
1587
+ const rect = event.target.getBoundingClientRect();
1588
+ const el = this.colActionMenu?.nativeElement;
1589
+ const elWidth = el.offsetWidth;
1590
+ const popUpLeftWidth = rect.left - elWidth;
1591
+ if (popUpLeftWidth < tableRect.left) {
1592
+ el.style.right = 'unset';
1593
+ el.style.left = '0px';
1594
+ }
1595
+ });
1439
1596
  }
1440
1597
  /**
1441
1598
  * @description Sort from three dots menu pop up.
@@ -1605,8 +1762,22 @@ class CatsDataGridComponent {
1605
1762
  this.updatePinnedOffsets();
1606
1763
  this.onClickOutside();
1607
1764
  }
1608
- showPinActions() {
1765
+ showPinActions(event) {
1766
+ event.stopPropagation();
1767
+ const parentEl = event.currentTarget;
1609
1768
  this.showPin = true;
1769
+ setTimeout(() => {
1770
+ const menuEl = this.pinMenu?.nativeElement;
1771
+ if (!menuEl || !parentEl)
1772
+ return;
1773
+ const parentRect = parentEl.getBoundingClientRect();
1774
+ const menuWidth = menuEl.offsetWidth;
1775
+ const viewPortWidth = window.innerWidth;
1776
+ let x = parentRect.right;
1777
+ if (x + menuWidth > viewPortWidth) {
1778
+ menuEl.style.right = `${parentRect.width}px`;
1779
+ }
1780
+ });
1610
1781
  }
1611
1782
  hidePinActions() {
1612
1783
  this.showPin = false;
@@ -1646,27 +1817,23 @@ class CatsDataGridComponent {
1646
1817
  */
1647
1818
  parseColValue(row, col) {
1648
1819
  if (!col?.fieldName?.includes('.')) {
1649
- if (Array.isArray(row[col.fieldName])) {
1650
- if (row[col.fieldName].every((dt) => typeof dt === 'string')) {
1651
- return row[col.fieldName][0];
1652
- }
1653
- if (row[col.fieldName].every((dt) => typeof dt === 'object')) {
1654
- return row[col.fieldName][0][col.cellRendererParams.tagKey];
1655
- }
1656
- }
1657
- return row[col.fieldName] || '-';
1820
+ // if (Array.isArray(row[col.fieldName])) {
1821
+ // if (row[col.fieldName].every((dt: string) => typeof dt === 'string')) {
1822
+ // return row[col.fieldName][0];
1823
+ // }
1824
+ // if (row[col.fieldName].every((dt: any) => typeof dt === 'object')) {
1825
+ // return row[col.fieldName][0]?.[col.cellRendererParams?.tagKey];
1826
+ // }
1827
+ // }
1828
+ return row[col.fieldName] || 'N/A';
1658
1829
  }
1659
1830
  else {
1660
1831
  let toParseArr = col?.fieldName.split('.');
1661
1832
  let val = row;
1662
1833
  for (const key of toParseArr) {
1663
- val =
1664
- row?.[val.key] && typeof row[val.key] === 'object'
1665
- ? row[val.key].name
1666
- : (row[val.key] ?? '');
1667
- // val = val[key];
1834
+ val = val?.[key];
1668
1835
  }
1669
- return val || '-';
1836
+ return val || 'N/A';
1670
1837
  }
1671
1838
  }
1672
1839
  /**
@@ -1865,6 +2032,7 @@ class CatsDataGridComponent {
1865
2032
  * @param event
1866
2033
  */
1867
2034
  onRowCheckboxSelection(event) {
2035
+ event.stopPropagation();
1868
2036
  if (event.target.checked) {
1869
2037
  let ind = this.rowData.findIndex((item) => item.rowId == event.target.id);
1870
2038
  this.rowData[ind].isSelected = true;
@@ -1895,6 +2063,7 @@ class CatsDataGridComponent {
1895
2063
  const style = {
1896
2064
  width: `${col.width ?? 150}px`,
1897
2065
  minWidth: `${col.minWidth ?? 50}px`,
2066
+ maxWidth: `${col.maxWidth}px`,
1898
2067
  };
1899
2068
  if (col.isAction) {
1900
2069
  style.position = 'sticky';
@@ -2208,10 +2377,82 @@ class CatsDataGridComponent {
2208
2377
  convertToNumber(value) {
2209
2378
  return Number(value);
2210
2379
  }
2211
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CatsDataGridComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2212
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.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", groupByRequired: "groupByRequired", pageSizeList: "pageSizeList", appliedFilters: "appliedFilters", dynamicGroupingFiltering: "dynamicGroupingFiltering" }, outputs: { onPaginationChange: "onPaginationChange", onCheckboxSelection: "onCheckboxSelection", onScrollEmitter: "onScrollEmitter", filter: "filter", appliedFiltersEvent: "appliedFiltersEvent", activeGroupsEvent: "activeGroupsEvent" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tableArea\">\r\n @if (groupByRequired) {\r\n <!-- Group Panel -->\r\n <div\r\n class=\"group_panel\"\r\n (dragover)=\"onGroupDragOver($event)\"\r\n (drop)=\"onGroupDrop($event)\"\r\n >\r\n <img alt=\"\" src=\"images/t-data-pipeline.svg\" class=\"icon\" />\r\n @for (g of activeGroups; track $index) {\r\n <div\r\n class=\"group_tag\"\r\n draggable=\"true\"\r\n (dragstart)=\"onGroupDragStart($event, $index)\"\r\n (dragover)=\"onActiveDragOver($event, $index)\"\r\n (drop)=\"onActiveGroupDrop($event, $index)\"\r\n >\r\n <img src=\"images/t-gripper.svg\" alt=\"\" />\r\n <span>{{ g.headerName }}</span>\r\n <button class=\"remove_tag\" (click)=\"removeGroup(g, $index)\">\r\n <img src=\"images/t-x.svg\" alt=\"\" />\r\n </button>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" class=\"divider\" />\r\n }\r\n @if (activeGroups.length === 0) {\r\n <div class=\"group_placeholder\">Drag here to set row groups</div>\r\n }\r\n </div>\r\n }\r\n @if (activeFilters.size > 0) {\r\n <div class=\"active_filters_container\">\r\n @for (filter of appliedFilters; track filter.fieldName) {\r\n <div class=\"active_filter_tag\">\r\n <div class=\"active_filter_label ellipsis\">\r\n @for (item of filter.filters; track $index) {\r\n @if (item.filterValue) {\r\n @if ($index > 0 && item.filterValue) {\r\n <span class=\"filter_logic\"> {{ filter.filterLogic }} </span>\r\n }\r\n <span class=\"filter_field\">{{ filter.fieldName }}:</span>\r\n <span class=\"\"> {{ item.filterOperation }}</span>\r\n <span class=\"filter_value\">{{ item.filterValue }}</span>\r\n }\r\n }\r\n </div>\r\n <button\r\n class=\"remove_filter_btn\"\r\n (click)=\"removeActiveFilter(filter)\"\r\n >\r\n <img src=\"images/t-x.svg\" alt=\"\" />\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"table_scroll\"\r\n #parent\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n [class.no-horizontal-scroll]=\"\r\n (!rowData || rowData.length === 0) &&\r\n (!groupedResult || groupedResult.length === 0)\r\n \"\r\n >\r\n <div class=\"table-inner-wrapper\">\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=\"min-width: 50px; width: 50px\">\r\n <div class=\"th_wraper\">\r\n <span class=\"checkbox_container\"\r\n ><input\r\n class=\"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 <div class=\"filter_three_dot_wrapper\">\r\n <span class=\"resize-handle default_cursor\"> | </span>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n <!-- @else{\r\n <th></th>\r\n } -->\r\n @if (activeGroups.length > 0) {\r\n <th class=\"active_group\">\r\n <div class=\"th_wraper\">\r\n <div class=\"text_wrapper\">\r\n <span class=\"ellipsis headerName\">Group</span>\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <div class=\"three-dots\">\r\n <img src=\"images/t-more-vertical.svg\" />\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n @for (col of colDefs; track col.colId) {\r\n <th\r\n [ngStyle]=\"getStyle(col, 'action')\"\r\n [ngClass]=\"{\r\n 'drag-over': dragOverIndex === $index,\r\n pinned_column: col.leftPinned || col.rightPinned,\r\n }\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (mouseenter)=\"onMouseEnterHeader($index)\"\r\n (mouseleave)=\"onMouseLeaveHeader($index)\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"text_wrapper\"\r\n [ngStyle]=\"getStyle(col, 'action')\"\r\n (click)=\"onSortingRowData($index, col)\"\r\n >\r\n @if (showMoveIcon[$index] && !col.isAction) {\r\n <img\r\n src=\"images/t-move.svg\"\r\n class=\"move-icon\"\r\n [draggable]=\"!isResizing || columnDraggable[$index]\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n (mouseenter)=\"enableColumnDrag($event, $index)\"\r\n (mouseleave)=\"disableColumnDrag($event, $index)\"\r\n />\r\n }\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n\r\n @if (\r\n sortingRequired &&\r\n sortingColumnIndex == $index &&\r\n col?.sortable &&\r\n !col.isAction\r\n ) {\r\n <span class=\"sorting_icon\">\r\n @if (sortingType[$index] === \"asc\") {\r\n <img\r\n src=\"images/t-arrow-up.svg\"\r\n class=\"sorting_up\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n @if (sortingType[$index] === \"dsc\") {\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/t-arrow-down.svg\"\r\n class=\"sorting_down\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n </span>\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 #trigger\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n @if (activeFilters.has(col.fieldName)) {\r\n <img\r\n src=\"images/t-filter-applied.svg\"\r\n class=\"filter-icon\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n } @else {\r\n <img\r\n src=\"images/t-filter.svg\"\r\n class=\"filter-icon\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n adaptivePosition\r\n [trigger]=\"trigger\"\r\n [parentContainer]=\"parent\"\r\n [matchWidth]=\"false\"\r\n class=\"filter_wrapper\"\r\n id=\"filter_wrapper-{{ $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 <lib-common-input\r\n [options]=\"filterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"filterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n }\r\n }\r\n\r\n <!-- Number Filter -->\r\n @if (col.filterType === \"number\") {\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <!-- <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (input)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"number\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n }\r\n }\r\n\r\n <!-- DATE FILTER -->\r\n @if (col.filterType === \"date\") {\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <!-- <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (change)=\"applyAllFilters()\"\r\n /> -->\r\n <lib-common-calendar\r\n [dateConfig]=\"dateConfig\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (dateTimeSelected)=\"dateTimeSelected($event)\"\r\n ></lib-common-calendar>\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <lib-common-calendar\r\n [dateConfig]=\"dateConfig\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (dateTimeSelected)=\"dateTimeSelected($event)\"\r\n ></lib-common-calendar>\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 <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"set_option_details\">\r\n <label class=\"checkbox_container\">\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 <div class=\"set_options\" id=\"table_scroll\">\r\n @for (\r\n opt of col.filteredOptions;\r\n track $index\r\n ) {\r\n <label class=\"checkbox_container\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"\r\n toggleSetOption(col, opt, $event)\r\n \"\r\n />\r\n {{ opt }}\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"filter_btn\">\r\n <button\r\n class=\"reset_btn\"\r\n type=\"button\"\r\n (click)=\"resetFilter(col)\"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n <div #triggerColMenu>\r\n @if (threeDotsMenuRequired && col.columnAction) {\r\n <div\r\n class=\"three-dots\"\r\n (click)=\"openMenu($event, col, $index)\"\r\n >\r\n <img\r\n src=\"images/t-more-vertical.svg\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n </div>\r\n }\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=\"dropdown_wrapper\"\r\n adaptivePosition\r\n [trigger]=\"triggerColMenu\"\r\n [parentContainer]=\"parent\"\r\n [matchWidth]=\"false\"\r\n [isColumnActionMenu]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div class=\"right_click_dropdown\" id=\"table_scroll\">\r\n @if (\r\n sortingType[$index] === \"dsc\" ||\r\n sortingType[$index] === \"\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, 'asc', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img\r\n src=\"images/arrow-up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"{ disable: !col.sortable }\"\r\n />\r\n <span class=\"text\">Sort Ascending</span>\r\n </div>\r\n </div>\r\n }\r\n @if (\r\n sortingType[$index] === \"asc\" ||\r\n sortingType[$index] === \"\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, 'dsc', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/arrow-down.svg\" />\r\n <span class=\"text\">Sort Descending</span>\r\n </div>\r\n </div>\r\n }\r\n @if (\r\n sortingType[$index] === \"asc\" ||\r\n sortingType[$index] === \"dsc\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, '', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/trash-2.svg\" />\r\n <span class=\"text\">Clear Sort</span>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"divder\"></div>\r\n\r\n <div\r\n class=\"right_click_item\"\r\n (mouseenter)=\"showPinActions()\"\r\n (mouseleave)=\"hidePinActions()\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">Pin Column</span>\r\n </div>\r\n <div class=\"right_item\">\r\n <img src=\"images/chevron-right.svg\" />\r\n @if (showPin) {\r\n <div class=\"second_dropdown\">\r\n <div\r\n (click)=\"pinColumn(col, $index, 'none')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (\r\n (pinActionClicked[col.colId] ?? \"none\") ===\r\n \"none\"\r\n ) {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">No Pin</span>\r\n </div>\r\n </div>\r\n <div\r\n (click)=\"pinColumn(col, $index, 'left')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (pinActionClicked[col.colId] === \"left\") {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">Pin Left</span>\r\n </div>\r\n </div>\r\n <div\r\n (click)=\"pinColumn(col, $index, 'right')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (pinActionClicked[col.colId] === \"right\") {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">Pin Right</span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- <div\r\n class=\"right_click_item\"\r\n (click)=\"pinColumn(col, $index, 'left')\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">{{\r\n col.leftPinned ? \"Unpin Left Column\" : \"Pin Column Left\"\r\n }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"pinColumn(col, $index, 'right')\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">\r\n {{\r\n col.rightPinned\r\n ? \"Unpin Right Column\"\r\n : \"Pin Column Right\"\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"right_item\">\r\n <img src=\"images/arrow-right.svg\" alt=\"\" />\r\n </div>\r\n </div> -->\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Autosize This Column</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Autosize All Columns</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"right_click_item\"\r\n [ngClass]=\"{ disabled_option: !groupByRequired }\"\r\n >\r\n <div\r\n class=\"left_item\"\r\n (click)=\"groupByColumnAction(col, $index)\"\r\n >\r\n <img src=\"images/t-group-by-name.svg\" alt=\"\" />\r\n <span class=\"text\">Group by {{ col.headerName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/t-choose-column.svg\" alt=\"\" />\r\n <span class=\"text\">Choose Columns</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Reset Columns</span>\r\n </div>\r\n </div>\r\n </div>\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) {\r\n @for (group of groupedResult; track group.key) {\r\n <tr (click)=\"toggleGroup(group)\">\r\n <td\r\n class=\"group-cell\"\r\n [attr.colspan]=\"\r\n colDefs.length +\r\n (checkBoxSelection ? 1 : 0) +\r\n (activeGroups.length > 0 ? 1 : 0)\r\n \"\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) {\r\n @for (child of group.children; track 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 activeGroups: activeGroups,\r\n level: 1,\r\n }\"\r\n ></ng-container>\r\n }\r\n }\r\n\r\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\r\n @if (!group.children[0]?.children) {\r\n @for (row of group.children; track row.rowId) {\r\n <tr [ngClass]=\"row | addClass: tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <span class=\"checkbox_container\">\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\"\r\n /></span>\r\n </td>\r\n }\r\n @if (activeGroups.length > 0) {\r\n <td class=\"group-placeholder\"></td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(row) : '',\r\n col.leftPinned || col.rightPinned\r\n ? 'pinned_column'\r\n : '',\r\n ]\"\r\n >\r\n <!-- {{ row[col.fieldName] }} -->\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(row, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(row, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n [rowParam]=\"row\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"row[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }\r\n }\r\n }\r\n } @else {\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 class=\"checkbox_container\"\r\n ><input\r\n type=\"checkbox\"\r\n class=\"pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [disabled]=\"data.isLocked\"\r\n [checked]=\"data.isSelected || data.isLocked\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n } @else {\r\n <span class=\"radio_option\">\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 <label [for]=\"data.rowId\"></label>\r\n </span>\r\n }\r\n </td>\r\n }\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(data) : '',\r\n col.leftPinned || col.rightPinned ? 'pinned_column' : '',\r\n ]\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\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 }\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-activeGroups=\"activeGroups\"\r\n let-level=\"level\"\r\n >\r\n <!-- GROUP HEADER -->\r\n <tr (click)=\"toggleGroup(node)\">\r\n <td\r\n [attr.colspan]=\"\r\n colDefs.length +\r\n (checkBoxSelection ? 1 : 0) +\r\n (activeGroups.length > 0 ? 1 : 0)\r\n \"\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 <!-- CASE: more groups -->\r\n @if (node.children[0]?.children) {\r\n @for (child of node.children; track 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 activeGroups: activeGroups,\r\n level: level + 1,\r\n }\"\r\n >\r\n </ng-container>\r\n }\r\n }\r\n\r\n <!-- CASE: final rows -->\r\n @if (!node.children[0]?.children) {\r\n @for (row of node.children; track row.rowId) {\r\n <tr [ngClass]=\"row | addClass: tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <span class=\"checkbox_container\">\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\"\r\n /></span>\r\n </td>\r\n }\r\n @if (activeGroups.length > 0) {\r\n <td class=\"group-placeholder\"></td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col.leftPinned || col.rightPinned ? 'pinned_column' : '',\r\n ]\"\r\n >\r\n <!-- {{ row[col.fieldName] }} -->\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(row, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(row, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n [rowParam]=\"row\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"row[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }\r\n }\r\n </ng-template>\r\n </table>\r\n\r\n @if (\r\n (!rowData || rowData.length === 0) &&\r\n (!groupedResult || groupedResult.length === 0)\r\n ) {\r\n <div class=\"empty_overlay\">\r\n <div class=\"empty_content\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions.noDataTemplate\"\r\n ></ng-container>\r\n } @else {\r\n <span>No Data To Show</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\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 class=\"pagination_select\">\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 |\r\n {{ totalRecords > 0 ? convertToNumber(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\">\r\n <!-- <span>Page</span> -->\r\n\r\n <button class=\"outlined_btn first_btn disable_btn\" type=\"button\">\r\n <span> <img src=\"images/chevrons-left.svg\" alt=\"\" /> </span>\r\n </button>\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> <img src=\"images/chevron-left.svg\" alt=\"\" /> </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style\"\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\r\n ? ''\r\n : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> <img src=\"images/chevron-right.svg\" alt=\"\" /> </span>\r\n </button>\r\n <!-- <span>of {{ pageDetails.totalPages }}</span> -->\r\n\r\n <button class=\"outlined_btn last_btn disable_btn\" type=\"button\">\r\n <span> <img src=\"images/chevrons-right.svg\" alt=\"\" /> </span>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n\r\n<!-- cell right click code start here -->\r\n<div class=\"dropdown_wrapper d-none\">\r\n <div class=\"right_click_dropdown\">\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/scissors.svg\" />\r\n <span class=\"text\">Cut</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+X</span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+C</span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy with Headers</span>\r\n </div>\r\n <span class=\"right_item\"></span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy with Group Headers</span>\r\n </div>\r\n <span class=\"right_item\"></span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/clipboard.svg\" alt=\"\" />\r\n <span class=\"text\">Paste</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+V</span>\r\n </div>\r\n\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <img src=\"images/bar-chart.svg\" alt=\"\" />\r\n <span class=\"text\">Chart</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/download.svg\" alt=\"\" />\r\n <span class=\"text\">Export</span>\r\n </div>\r\n\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Chart section Start Here -->\r\n <div class=\"second_dropdown\">\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Column</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Bar</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Pie</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Line</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Area</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">XY(Scatter)</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Polar</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Stastical</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Hierarchical</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Specialized</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Funnel</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Combination</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Export Section start Here -->\r\n <div class=\"export_section d-none\">\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <img src=\"images/file.svg\" alt=\"\" />\r\n <span class=\"text\">CSV Report</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/file.svg\" alt=\"\" />\r\n <span class=\"text\">Excel Report</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Column Group Section Start Here -->\r\n <div class=\"third_dropdown\">\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Grouped</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Stacked</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">100% Stacked</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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}.pointer,.cursor-pointer{cursor:pointer}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.tableArea.big .table_wrapper table thead tr,.tableArea.big .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale))}.tableArea .table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table{border-collapse:separate;border-spacing:0;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);min-width:calc(12.5rem / var(--scale));max-width:calc(80rem / var(--scale));text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table td.pinned_column,.tableArea .table_wrapper table th.pinned_column{min-width:calc(11.6666666667rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value,.tableArea .table_wrapper table th .cell-value{line-height:calc(1.5rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value.ellipsis,.tableArea .table_wrapper table td .cell-value .ellipsis,.tableArea .table_wrapper table th .cell-value.ellipsis,.tableArea .table_wrapper table th .cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.tableArea .table_wrapper table td .cell-value.ellipsis:hover .see_more_data,.tableArea .table_wrapper table th .cell-value.ellipsis:hover .see_more_data{display:flex}.tableArea .table_wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-500)}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0;cursor:pointer;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500);text-transform:uppercase}.tableArea .table_wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper table thead th:last-child .th_wraper{border:0}.tableArea .table_wrapper table thead th:hover .none{display:block}.tableArea .table_wrapper table thead th:hover .up,.tableArea .table_wrapper table thead th:hover .down{display:none}.tableArea .table_wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));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;background-color:var(--neutral-50)}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover,.tableArea .table_wrapper table tbody tr:hover td{background-color:var(--blue-50)!important}.tableArea .table_wrapper table tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}.tableArea .table_wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr td:hover{background-color:var(--blue-50)!important}.tableArea .table_wrapper table tbody tr td.selected{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action:hover{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap}.th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));transition:opacity .5s ease;cursor:grab}.th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters{position:relative;display:inline-block;cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters:hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));position:absolute;top:20px;left:0;width:calc(18.8333333333rem / var(--scale));background:var(--neutral-50);padding:calc(1rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;z-index:99;display:flex;flex-direction:column;justify-content:center;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper lib-common-input{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .logic-row{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(3.3333333333rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details .set_options{display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale));width:100%;max-height:calc(10.8333333333rem / var(--scale));overflow-y:auto}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn{display:flex;flex-direction:row;justify-content:end;align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;font-family:inherit;transition:all .2s ease;-webkit-user-select:none;user-select:none;background-color:var(--white);padding:calc(.3333333333rem / var(--scale)) calc(1.0833333333rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.th_wraper .filter_three_dot_wrapper .three-dots :hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .resize-handle{color:var(--neutral-200);cursor:w-resize;white-space:nowrap;overflow:hidden;font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400}.th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.active_filters_container{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.6666666667rem / var(--scale))}.active_filters_container .active_filter_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:wrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));background-color:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale))}.active_filters_container .active_filter_tag .active_filter_label{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;max-width:calc(29.1666666667rem / var(--scale))}.active_filters_container .active_filter_tag .filter_logic{font-size:var(--fs-12);line-height:calc(1.3333333333rem / var(--scale));font-weight:500;color:var(--neutral-400)}.active_filters_container .active_filter_tag .filter_value{padding-left:calc(.3333333333rem / var(--scale))}.active_filters_container .active_filter_tag .remove_filter_btn{border:0;background-color:transparent;cursor:pointer}.active_filters_container .active_filter_tag .remove_filter_btn img{max-width:calc(1.3333333333rem / var(--scale))}.pinned_column:has(.cell-value:hover),.pinned_column:has(.tag_wrapper:hover),tr:has(.pinned_column .cell-value:hover) .pinned_column,tr:has(.pinned_column .tag_wrapper:hover) .pinned_column{z-index:13!important}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(4rem / var(--scale));padding:calc(.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.pagination_main .entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select{position:relative}.pagination_main .entries_details .pagination_select .select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img{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}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img img{width:calc(1.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .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(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:10}.pagination_main .entries_details .pagination_select .select_option span{width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;padding:calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_option span:hover{background-color:var(--neutral-50)}.pagination_main .pagination_form{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.8333333333rem / var(--scale))}.pagination_main .pagination_form .prev_btn,.pagination_main .pagination_form .next_btn,.pagination_main .pagination_form .first_btn,.pagination_main .pagination_form .last_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(2.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .pagination_form .outlined_btn{background:transparent;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-500);cursor:pointer}.pagination_main .pagination_form .outlined_btn.disable_btn{opacity:.4;pointer-events:none;background-color:var(--neutral-200)}.pagination_main .pagination_form .outlined_btn img{max-width:calc(1.6666666667rem / var(--scale))}.pagination_main .pagination_form .input_style{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-600);text-align:center;outline:none;padding:0}.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-200);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)}.d-none{display:none}.group_panel{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));background:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(0rem / var(--scale));border-top:0;height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.group_panel img.divider:last-child{display:none}.group_panel .group_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;cursor:grab}.group_panel .group_tag .remove_tag{border:0;padding:0;cursor:pointer}.group_panel .group_placeholder{color:var(--neutral-500)}.group_panel img{max-width:calc(1.3333333333rem / var(--scale))}.group-toggle{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);cursor:pointer}.tableArea:has(.group_panel) tr .group-cell:hover img{background-color:var(--neutral-50);border-radius:calc(.3333333333rem / var(--scale))}.active_group{width:calc(8.3333333333rem / var(--scale))}.dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;position:relative;width:calc(26.6666666667rem / var(--scale))}.dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.dropdown_wrapper .right_click_item:hover,.dropdown_wrapper .right_click_item.active{background-color:var(--blue-50)}.dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.dropdown_wrapper .right_click_item .right_chevron{stroke:var(--neutral-400)}.second_dropdown{position:absolute;right:calc(-20rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.third_dropdown{position:absolute;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));right:calc(-40.1666666667rem / var(--scale));top:calc(-.5833333333rem / var(--scale));width:calc(20.25rem / var(--scale));height:calc(18.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.export_section{position:absolute;right:calc(-20.0833333333rem / var(--scale));top:calc(20.0833333333rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(13.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.table_wrapper{position:relative;overflow:auto}.table_wrapper.no-horizontal-scroll{overflow-x:hidden!important}.table_inner_wrapper{position:relative;min-height:100%}.empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.empty_content{max-width:100%;text-align:center}\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.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.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: "component", type: CommonCalendarComponent, selector: "lib-common-calendar", inputs: ["dateConfig", "minDate", "maxDate", "preSelectedValue"], outputs: ["dateTimeSelected"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "directive", type: RendererParserDirective, selector: "[appRendererParser]", inputs: ["rowParam", "col", "api", "currentValue"] }, { kind: "component", type: CommonInputComponent, selector: "lib-common-input", inputs: ["options", "selectedValue", "placeholder", "elementType"], outputs: ["valueChange"] }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
2380
+ hideSettings() {
2381
+ this.onHideSettings.emit(false);
2382
+ }
2383
+ dragRow(e, row) {
2384
+ this.draggedRowData = row;
2385
+ this.isRowSelected = this.selectedRow.some((s) => s.rowId === row.rowId);
2386
+ }
2387
+ allowRowDrop(e) {
2388
+ e.preventDefault();
2389
+ }
2390
+ dropRow(targetRow) {
2391
+ let sourceIndex = null;
2392
+ let targetIndex = this.rowData.findIndex((dt) => dt.rowId === targetRow.rowId);
2393
+ if (this.selectedRow.length > 0 && this.isRowSelected) {
2394
+ sourceIndex = this.rowData.findIndex((dt) => dt.rowId === this.selectedRow[0].rowId);
2395
+ const selectedIds = new Set(this.selectedRow.map((r) => r.rowId));
2396
+ this.rowData = this.rowData.filter((dt) => !selectedIds.has(dt.rowId));
2397
+ if (sourceIndex > this.rowData.length) {
2398
+ sourceIndex = sourceIndex - this.selectedRow.length + 1;
2399
+ }
2400
+ if (targetIndex >= this.rowData.length) {
2401
+ targetIndex = targetIndex - this.selectedRow.length + 1;
2402
+ }
2403
+ this.rowData.splice(sourceIndex, 0, ...this.selectedRow);
2404
+ }
2405
+ else {
2406
+ sourceIndex = this.rowData.findIndex((dt) => dt.rowId === this.draggedRowData.rowId);
2407
+ }
2408
+ if (sourceIndex < 0 || targetIndex < 0)
2409
+ return;
2410
+ this.moveRow(sourceIndex, targetIndex);
2411
+ }
2412
+ moveRow(from, to) {
2413
+ let rowMoved = [];
2414
+ if (this.selectedRow.length > 0 && this.isRowSelected) {
2415
+ rowMoved = this.rowData.splice(from, this.selectedRow.length);
2416
+ }
2417
+ else {
2418
+ rowMoved = this.rowData.splice(from, 1);
2419
+ }
2420
+ this.rowData.splice(to, 0, ...rowMoved);
2421
+ this.isRowSelected = false;
2422
+ }
2423
+ clearAllFilter() {
2424
+ this.colDefs?.forEach((col) => {
2425
+ this.resetFilter(col);
2426
+ });
2427
+ }
2428
+ onBtFirstClick() {
2429
+ this.pageDetails.currentPage = 1;
2430
+ this.recordsToShow.min = 0;
2431
+ this.recordsToShow.max = this.pageDetails.pageSize;
2432
+ this.onPaginationChange.emit({
2433
+ page: this.pageDetails.currentPage - 1,
2434
+ pageSize: this.pageDetails.pageSize,
2435
+ });
2436
+ }
2437
+ onBtLastClick() {
2438
+ this.pageDetails.currentPage = this.pageDetails.totalPages;
2439
+ this.recordsToShow.max = this.pageDetails.currentPage * this.pageDetails.pageSize;
2440
+ this.recordsToShow.min = this.pageDetails.currentPage * this.pageDetails.pageSize - this.pageDetails.pageSize;
2441
+ this.onPaginationChange.emit({
2442
+ page: this.pageDetails.currentPage - 1,
2443
+ pageSize: this.pageDetails.pageSize,
2444
+ });
2445
+ }
2446
+ onRowClick(row) {
2447
+ this.onRowClicked.emit({ row });
2448
+ }
2449
+ onCellClick(row, col) {
2450
+ this.onCellClicked.emit({ row, col });
2451
+ }
2452
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CatsDataGridComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2453
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", 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", settingsRequired: "settingsRequired", settingsClicked: "settingsClicked", resetPage: "resetPage", rowId: "rowId", height: "height", groupByRequired: "groupByRequired", pageSizeList: "pageSizeList", groupByField: "groupByField", appliedFilters: "appliedFilters", rowGripFieldName: "rowGripFieldName", pageNumber: "pageNumber", pageSize: "pageSize", dynamicGroupingFiltering: "dynamicGroupingFiltering" }, outputs: { onPaginationChange: "onPaginationChange", onCheckboxSelection: "onCheckboxSelection", onScrollEmitter: "onScrollEmitter", filter: "filter", onHideSettings: "onHideSettings", appliedFiltersEvent: "appliedFiltersEvent", activeGroupsEvent: "activeGroupsEvent", onRowClicked: "onRowClicked", onCellClicked: "onCellClicked" }, viewQueries: [{ propertyName: "pinMenu", first: true, predicate: ["pinMenu"], descendants: true }, { propertyName: "colActionMenu", first: true, predicate: ["colActionMenu"], descendants: true }, { propertyName: "table", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"tableArea\" #table>\n @if (settingsRequired && settingsClicked) {\n <div\n class=\"setting_options\"\n appOutsideClick\n (clickOutside)=\"hideSettings()\"\n >\n <div class=\"column_header\">Select Headers</div>\n <div class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"activeAll\"\n (change)=\"activeAllSelection($event)\"\n />\n <span>Select All</span>\n </div>\n\n <div class=\"item_container\" id=\"table_scroll\">\n @for (col of colDefs; track col.colId) {\n <div class=\"column_item checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"col.active\"\n (change)=\"changeActiveColSelection($event, col)\"\n [disabled]=\"col.headerLocked\"\n />\n <span>{{ col.headerName | titlecase }}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (groupByRequired) {\n <!-- Group Panel -->\n <div\n class=\"group_panel\"\n (dragover)=\"onGroupDragOver($event)\"\n (drop)=\"onGroupDrop($event)\"\n >\n <img alt=\"\" src=\"images/t-data-pipeline.svg\" class=\"icon\" />\n @for (g of activeGroups; track $index) {\n <div\n class=\"group_tag\"\n draggable=\"true\"\n (dragstart)=\"onGroupDragStart($event, $index)\"\n (dragover)=\"onActiveDragOver($event, $index)\"\n (drop)=\"onActiveGroupDrop($event, $index)\"\n >\n <img src=\"images/t-gripper.svg\" alt=\"\" />\n <span>{{ g.headerName }}</span>\n <button class=\"remove_tag\" (click)=\"removeGroup(g, $index)\">\n <img src=\"images/t-x.svg\" alt=\"\" />\n </button>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" class=\"divider\" />\n }\n @if (activeGroups.length === 0) {\n <div class=\"group_placeholder\">Drag here to set row groups</div>\n }\n </div>\n }\n @if (activeFilters.size > 0) {\n <div class=\"active_filters_container\">\n <div class=\"tag_wrapper\">\n @for (filter of appliedFilters; track filter.fieldName) {\n <div class=\"active_filter_tag\">\n <div class=\"active_filter_label ellipsis\">\n @for (item of filter.filters; track $index) {\n @if (item.filterValue) {\n @if ($index > 0 && item.filterValue) {\n <span class=\"filter_logic\"> {{ filter.filterLogic }} </span>\n }\n <span class=\"filter_field\">{{ filter.fieldName }}:</span>\n <span class=\"\"> {{ item.filterOperation }}</span>\n <span class=\"filter_value\">{{ item.filterValue }}</span>\n }\n }\n </div>\n <button\n class=\"remove_filter_btn\"\n (click)=\"removeActiveFilter(filter)\"\n >\n <img src=\"images/t-x.svg\" alt=\"\" />\n </button>\n </div>\n }\n </div>\n <div class=\"clear_all\" (click)=\"clearAllFilter()\">Clear All Filters</div>\n </div>\n }\n <div\n class=\"table_wrapper global\"\n id=\"table_scroll\"\n #parent\n (scroll)=\"infinityScroll($event)\"\n [ngClass]=\"{ tbody_height: activeFilters.size > 0 }\"\n [class.no-horizontal-scroll]=\"\n (!rowData || rowData.length === 0) &&\n (!groupedResult || groupedResult.length === 0)\n \"\n >\n <div class=\"table-inner-wrapper\">\n <table cellspacing=\"0\" cellpadding=\"0\">\n <thead class=\"sticky-top\">\n <tr>\n @if (\n checkBoxSelection &&\n checkboxSelectionType == \"multiple\" &&\n atLeastOneColumnChecked\n ) {\n <th style=\"min-width: 50px; width: 50px\">\n <div class=\"th_wraper\">\n <span class=\"checkbox_container\"\n ><input\n class=\"pointer custom_check_box\"\n type=\"checkbox\"\n name=\"\"\n id=\"\"\n [checked]=\"checkAllSelected()\"\n [indeterminate]=\"checkInterminate()\"\n (change)=\"onHeaderCheckboxChange($event)\"\n /></span>\n <div class=\"filter_three_dot_wrapper\">\n <span class=\"resize-handle default_cursor\"> | </span>\n </div>\n </div>\n </th>\n }\n @else{\n <th></th>\n } \n @if (activeGroups.length > 0) {\n <th class=\"active_group\">\n <div class=\"th_wraper\">\n <div class=\"text_wrapper\">\n <span class=\"ellipsis headerName\">Group</span>\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <div class=\"three-dots\">\n <img src=\"images/t-more-vertical.svg\" />\n </div>\n </div>\n </div>\n </th>\n }\n @for (col of colDefs; track col.colId) {\n @if (col.active) {\n <th\n [ngStyle]=\"getStyle(col, 'action')\"\n [ngClass]=\"{\n 'drag-over': dragOverIndex === $index,\n pinned_column: col.leftPinned || col.rightPinned,\n }\"\n (dragover)=\"onDragOver($event, $index)\"\n (drop)=\"onDrop($event, $index)\"\n (mouseenter)=\"onMouseEnterHeader($index)\"\n (mouseleave)=\"onMouseLeaveHeader($index)\"\n >\n <div class=\"th_wraper\">\n <div\n class=\"text_wrapper\"\n [ngStyle]=\"getStyle(col, 'action')\"\n (click)=\"onSortingRowData($index, col)\"\n >\n @if (showMoveIcon[$index] && !col.isAction) {\n <img\n src=\"images/t-move.svg\"\n class=\"move-icon\"\n [draggable]=\"!isResizing || columnDraggable[$index]\"\n (dragstart)=\"onDragStart($event, $index)\"\n (dragend)=\"onDragEnd()\"\n (mouseenter)=\"enableColumnDrag($event, $index)\"\n (mouseleave)=\"disableColumnDrag($event, $index)\"\n />\n }\n <span class=\"ellipsis headerName\">{{\n col?.headerName\n }}</span>\n\n @if (\n sortingRequired &&\n sortingColumnIndex == $index &&\n col?.sortable &&\n !col.isAction\n ) {\n <span class=\"sorting_icon\">\n @if (sortingType[$index] === \"asc\") {\n <img\n src=\"images/t-arrow-up.svg\"\n class=\"sorting_up\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n @if (sortingType[$index] === \"dsc\") {\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\n <img\n src=\"images/t-arrow-down.svg\"\n class=\"sorting_down\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n </span>\n }\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <!-- Column Filters Logic-->\n @if (filterRequired && col.filterable) {\n <div\n #trigger\n class=\"filters\"\n (click)=\"toggleFilter(col, $index, $event)\"\n >\n @if (activeFilters.has(col.fieldName)) {\n <img\n src=\"images/t-filter-applied.svg\"\n class=\"filter-icon\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n } @else {\n <img\n src=\"images/t-filter.svg\"\n class=\"filter-icon\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n @if (activeFilterIndex === $index) {\n <div class=\"filt_wrap\">\n <div\n adaptivePosition\n [trigger]=\"trigger\"\n [parentContainer]=\"parent\"\n [matchWidth]=\"false\"\n class=\"filter_wrapper\"\n id=\"filter_wrapper-{{ $index }}\"\n (click)=\"$event.stopPropagation()\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n <!-- Text Filter -->\n @if (col.filterType === \"text\") {\n <lib-common-input\n [options]=\"filterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"filterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n <!-- <input\n type=\"text\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n placeholder=\"Filter\u2026\"\n (keyup)=\"applyAllFilters()\"\n /> -->\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n }\n\n <!-- Number Filter -->\n @if (col.filterType === \"number\") {\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <!-- <input\n type=\"number\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (input)=\"applyAllFilters()\"\n /> -->\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"number\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (input)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n <!-- <input\n type=\"text\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n placeholder=\"Filter\u2026\"\n (keyup)=\"applyAllFilters()\"\n /> -->\n }\n }\n\n <!-- DATE FILTER -->\n @if (col.filterType === \"date\") {\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <!-- <input\n type=\"date\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (change)=\"applyAllFilters()\"\n /> -->\n <lib-common-calendar\n [dateConfig]=\"dateConfig\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n [preSelectedValue]=\"\n col.filters[0].filterValue\n \"\n (dateTimeSelected)=\"\n dateTimeSelected($event)\n \"\n ></lib-common-calendar>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <lib-common-calendar\n [dateConfig]=\"dateConfig\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n [preSelectedValue]=\"\n col.filters[1].filterValue\n \"\n (dateTimeSelected)=\"\n dateTimeSelected($event)\n \"\n ></lib-common-calendar>\n }\n }\n\n <!-- SET FILTER (CHECKBOX LIST) -->\n @if (col.filterType === \"set\") {\n <!-- <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n /> -->\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n />\n </div>\n\n <div class=\"set_option_details\">\n <label class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"isAllSelected(col)\"\n (change)=\"toggleSelectAll(col, $event)\"\n />\n (Select All)\n </label>\n <div class=\"set_options\" id=\"table_scroll\">\n @for (\n opt of col.filteredOptions;\n track $index\n ) {\n <label class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"\n col.selectedValues.has(opt)\n \"\n (change)=\"\n toggleSetOption(col, opt, $event)\n \"\n />\n {{ opt }}\n </label>\n }\n </div>\n </div>\n }\n <div class=\"filter_btn\">\n <button\n class=\"reset_btn\"\n type=\"button\"\n (click)=\"resetFilter(col)\"\n >\n Reset\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Three dots menu-->\n <div #triggerColMenu>\n @if (threeDotsMenuRequired && col.columnAction) {\n <div\n class=\"three-dots\"\n (click)=\"openMenu($event, col, $index)\"\n >\n <img\n src=\"images/t-more-vertical.svg\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n </div>\n }\n </div>\n @if (!col.isAction) {\n <span\n class=\"resize-handle\"\n (mousedown)=\"startResize($event, $index)\"\n >\n |\n </span>\n }\n </div>\n </div>\n\n <!-- popup open -->\n @if (menuVisible[$index]) {\n <div\n #colActionMenu\n class=\"dropdown_wrapper\"\n adaptivePosition\n [trigger]=\"triggerColMenu\"\n [parentContainer]=\"parent\"\n [matchWidth]=\"false\"\n [isColumnActionMenu]=\"true\"\n (click)=\"$event.stopPropagation()\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n <div class=\"right_click_dropdown\" id=\"table_scroll\">\n @if (\n sortingType[$index] === \"dsc\" ||\n sortingType[$index] === \"\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, 'asc', $index)\"\n >\n <div class=\"left_item\">\n <img\n src=\"images/arrow-up.svg\"\n class=\"sorting_up\"\n [ngClass]=\"{ disable: !col.sortable }\"\n />\n <span class=\"text\">Sort Ascending</span>\n </div>\n </div>\n }\n @if (\n sortingType[$index] === \"asc\" ||\n sortingType[$index] === \"\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, 'dsc', $index)\"\n >\n <div class=\"left_item\">\n <img src=\"images/arrow-down.svg\" />\n <span class=\"text\">Sort Descending</span>\n </div>\n </div>\n }\n @if (\n sortingType[$index] === \"asc\" ||\n sortingType[$index] === \"dsc\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, '', $index)\"\n >\n <div class=\"left_item\">\n <img src=\"images/trash-2.svg\" />\n <span class=\"text\">Clear Sort</span>\n </div>\n </div>\n }\n <div class=\"divder\"></div>\n\n <div\n class=\"right_click_item\"\n (mouseenter)=\"showPinActions($event)\"\n (mouseleave)=\"hidePinActions()\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">Pin Column</span>\n </div>\n <div class=\"right_item\">\n <img src=\"images/chevron-right.svg\" />\n @if (showPin) {\n <div class=\"second_dropdown\" #pinMenu>\n <div\n (click)=\"pinColumn(col, $index, 'none')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n (pinActionClicked[col.colId] ??\n \"none\") === \"none\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">No Pin</span>\n </div>\n </div>\n <div\n (click)=\"pinColumn(col, $index, 'left')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n pinActionClicked[col.colId] === \"left\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">Pin Left</span>\n </div>\n </div>\n <div\n (click)=\"pinColumn(col, $index, 'right')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n pinActionClicked[col.colId] === \"right\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">Pin Right</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- <div\n class=\"right_click_item\"\n (click)=\"pinColumn(col, $index, 'left')\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">{{\n col.leftPinned ? \"Unpin Left Column\" : \"Pin Column Left\"\n }}</span>\n </div>\n </div>\n <div\n class=\"right_click_item\"\n (click)=\"pinColumn(col, $index, 'right')\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">\n {{\n col.rightPinned\n ? \"Unpin Right Column\"\n : \"Pin Column Right\"\n }}\n </span>\n </div>\n <div class=\"right_item\">\n <img src=\"images/arrow-right.svg\" alt=\"\" />\n </div>\n </div> -->\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Autosize This Column</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Autosize All Columns</span>\n </div>\n </div>\n <div\n class=\"right_click_item\"\n [ngClass]=\"{ disabled_option: !groupByRequired }\"\n >\n <div\n class=\"left_item\"\n (click)=\"groupByColumnAction(col, $index)\"\n >\n <img src=\"images/t-group-by-name.svg\" alt=\"\" />\n <span class=\"text\"\n >Group by {{ col.headerName }}</span\n >\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/t-choose-column.svg\" alt=\"\" />\n <span class=\"text\">Choose Columns</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Reset Columns</span>\n </div>\n </div>\n </div>\n </div>\n }\n </th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @if (groupedResult && groupedResult.length > 0) {\n @for (group of groupedResult; track group.key) {\n <tr (click)=\"toggleGroup(group)\">\n <td\n class=\"group-cell\"\n [attr.colspan]=\"\n colDefs.length +\n (checkBoxSelection ? 1 : 0) +\n (activeGroups.length > 0 ? 1 : 0)\n \"\n >\n <span class=\"group-toggle\">\n <img\n src=\"images/{{\n group.expanded\n ? 'chevron-down.svg'\n : 'chevron-right.svg'\n }}\"\n />\n {{ group.key }} ({{ group.children.length }})\n </span>\n </td>\n </tr>\n\n @if (group.expanded) {\n <!-- CASE 1: CHILDREN ARE MORE GROUPS -->\n @if (group.children[0]?.children) {\n @for (child of group.children; track child.key) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n colDefs: colDefs,\n checkBoxSelection: checkBoxSelection,\n activeGroups: activeGroups,\n level: 1,\n }\"\n ></ng-container>\n }\n }\n\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\n @if (!group.children[0]?.children) {\n @for (row of group.children; track row.rowId) {\n <tr [ngClass]=\"row | addClass: tableOptions\">\n <!-- Checkbox column if any -->\n @if (checkBoxSelection) {\n <td>\n <span class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"row.isSelected\"\n /></span>\n </td>\n }\n @if (activeGroups.length > 0) {\n <td class=\"group-placeholder\"></td>\n }\n\n <!-- Render columns -->\n @for (col of colDefs; track col.colId) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col?.addClass ? col.addClass(row) : '',\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n >\n <!-- {{ row[col.fieldName] }} -->\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(row, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(row, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"row\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"row[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </td>\n }\n </tr>\n }\n }\n }\n }\n } @else {\n @for (data of rowData; track data.rowId) {\n <tr\n [ngClass]=\"data | addClass: tableOptions\"\n (dragover)=\"allowRowDrop($event)\"\n (drop)=\"dropRow(data)\"\n (click)=\"onRowClick(data)\"\n >\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <td style=\"min-width: 50px\">\n @if (checkboxSelectionType == \"multiple\") {\n <span class=\"checkbox_container\"\n ><input\n type=\"checkbox\"\n class=\"pointer custom_check_box\"\n name=\"\"\n id=\"{{ data.rowId }}\"\n [disabled]=\"data.isLocked\"\n [checked]=\"data.isSelected || data.isLocked\"\n (change)=\"onRowCheckboxSelection($event)\"\n /></span>\n } @else {\n <span class=\"radio_option\">\n <input\n type=\"radio\"\n name=\"\"\n id=\"{{ data.rowId }}\"\n [checked]=\"data?.isSelected\"\n (change)=\"onRowCheckboxSelection($event)\"\n />\n <label [for]=\"data.rowId\"></label>\n </span>\n }\n </td>\n }\n @for (col of colDefs; track col.colId) {\n @if (col.active) {\n <td (click)=\"onCellClick(data, col)\"\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col?.addClass ? col.addClass(data) : '',\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n class=\"table_cell\"\n >\n <div class=\"col_wrapper\">\n @if (\n rowGripFieldName &&\n rowGripFieldName === col?.fieldName\n ) {\n <div\n [draggable]=\"true\"\n (dragstart)=\"dragRow($event, data)\"\n class=\"gripper\"\n >\n <img src=\"images/gripper.svg\" />\n </div>\n }\n\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(data, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(data, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"data\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"data[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </div>\n <!-- Commented for later use -->\n <!-- <div class=\"tool_tip\">\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\n </div> -->\n </td>\n }\n }\n </tr>\n }\n }\n </tbody>\n\n <ng-template\n #groupTemplate\n let-node\n let-colDefs=\"colDefs\"\n let-checkBoxSelection=\"checkBoxSelection\"\n let-activeGroups=\"activeGroups\"\n let-level=\"level\"\n >\n <!-- GROUP HEADER -->\n <tr (click)=\"toggleGroup(node)\">\n <td\n [attr.colspan]=\"\n colDefs.length +\n (checkBoxSelection ? 1 : 0) +\n (activeGroups.length > 0 ? 1 : 0)\n \"\n [style.paddingLeft.px]=\"level * 20\"\n class=\"group-cell\"\n >\n <span class=\"group-toggle\">\n <img\n src=\"images/{{\n node.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\n }}\"\n />\n {{ node.key }} ({{ node.children.length }})\n </span>\n </td>\n </tr>\n\n <!-- CHILDREN -->\n @if (node.expanded) {\n <!-- CASE: more groups -->\n @if (node.children[0]?.children) {\n @for (child of node.children; track child.key) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n colDefs: colDefs,\n checkBoxSelection: checkBoxSelection,\n activeGroups: activeGroups,\n level: level + 1,\n }\"\n >\n </ng-container>\n }\n }\n\n <!-- CASE: final rows -->\n @if (!node.children[0]?.children) {\n @for (row of node.children; track row.rowId) {\n <tr [ngClass]=\"row | addClass: tableOptions\">\n <!-- Checkbox column if any -->\n @if (checkBoxSelection) {\n <td>\n <span class=\"checkbox_container\">\n <input\n type=\"checkbox custom_check_box\"\n [checked]=\"row.isSelected\"\n /></span>\n </td>\n }\n @if (activeGroups.length > 0) {\n <td class=\"group-placeholder\"></td>\n }\n\n <!-- Render columns -->\n @for (col of colDefs; track col.colId) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n >\n <!-- {{ row[col.fieldName] }} -->\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(row, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(row, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"row\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"row[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </td>\n }\n </tr>\n }\n }\n }\n </ng-template>\n </table>\n\n @if (\n (!rowData || rowData.length === 0) &&\n (!groupedResult || groupedResult.length === 0)\n ) {\n <div class=\"empty_overlay\">\n <div class=\"empty_content\">\n @if (tableOptions?.noDataTemplate) {\n <ng-container\n *ngTemplateOutlet=\"tableOptions.noDataTemplate\"\n ></ng-container>\n } @else {\n <span>No Data To Show</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n <!-- Table Wrapper Ends-->\n @if (paginationRequired) {\n <div class=\"pagination_main\">\n <div class=\"entries_details\">\n <span>Showing</span>\n <div class=\"pagination_select\">\n <div\n class=\"select_dropdown pointer\"\n (click)=\"showPageSizeList = !showPageSizeList\"\n >\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\n <span class=\"chevron_img\">\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\n </span>\n </div>\n @if (showPageSizeList) {\n <div\n class=\"select_option\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n @for (option of pageSizeList; track $index) {\n <span\n class=\"pointer\"\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\n >{{ option }}</span\n >\n }\n </div>\n }\n </div>\n <span\n >Rows |\n {{ totalRecords > 0 ? convertToNumber(recordsToShow.min) + 1 : 0 }} -\n {{\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\n }}\n of\n {{ totalRecords }} Entries</span\n >\n </div>\n <div class=\"pagination_form\">\n <!-- <span>Page</span> -->\n\n <button class=\"outlined_btn first_btn\" type=\"button\" (click)=\"onBtFirstClick()\" [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\">\n <span> <img src=\"images/chevrons-left.svg\" alt=\"\" /> </span>\n </button>\n <button\n class=\"outlined_btn prev_btn\"\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\n type=\"button\"\n (click)=\"onBtPrevClick()\"\n >\n <span> <img src=\"images/chevron-left.svg\" alt=\"\" /> </span>\n </button>\n <div>\n <input\n class=\"input_style\"\n type=\"number\"\n [(ngModel)]=\"pageDetails.currentPage\"\n (change)=\"goToSelectedPage($event)\"\n name=\"\"\n id=\"\"\n />\n </div>\n <button\n class=\"outlined_btn next_btn\"\n type=\"button\"\n [ngClass]=\"pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\"\n (click)=\"onBtNextClick()\"\n >\n <span> <img src=\"images/chevron-right.svg\" alt=\"\" /> </span>\n </button>\n <!-- <span>of {{ pageDetails.totalPages }}</span> -->\n\n <button class=\"outlined_btn last_btn\" type=\"button\" (click)=\"onBtLastClick()\" \n [ngClass]=\"pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\">\n <span> <img src=\"images/chevrons-right.svg\" alt=\"\" /> </span>\n </button>\n </div>\n </div>\n }\n <!-- Pagination Ends -->\n</div>\n\n<!-- cell right click code start here -->\n<div class=\"dropdown_wrapper d-none\">\n <div class=\"right_click_dropdown\">\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/scissors.svg\" />\n <span class=\"text\">Cut</span>\n </div>\n\n <span class=\"right_item\">Ctrl+X</span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy</span>\n </div>\n\n <span class=\"right_item\">Ctrl+C</span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy with Headers</span>\n </div>\n <span class=\"right_item\"></span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy with Group Headers</span>\n </div>\n <span class=\"right_item\"></span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/clipboard.svg\" alt=\"\" />\n <span class=\"text\">Paste</span>\n </div>\n\n <span class=\"right_item\">Ctrl+V</span>\n </div>\n\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <img src=\"images/bar-chart.svg\" alt=\"\" />\n <span class=\"text\">Chart</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/download.svg\" alt=\"\" />\n <span class=\"text\">Export</span>\n </div>\n\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Chart section Start Here -->\n <div class=\"second_dropdown\">\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <span class=\"text\">Column</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Bar</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Pie</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Line</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Area</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">XY(Scatter)</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Polar</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Stastical</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Hierarchical</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Specialized</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Funnel</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Combination</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Export Section start Here -->\n <div class=\"export_section d-none\">\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <img src=\"images/file.svg\" alt=\"\" />\n <span class=\"text\">CSV Report</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/file.svg\" alt=\"\" />\n <span class=\"text\">Excel Report</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Column Group Section Start Here -->\n <div class=\"third_dropdown\">\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Grouped</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Stacked</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">100% Stacked</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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}.pointer,.cursor-pointer{cursor:pointer}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.tableArea{width:100%;height:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;position:relative}.tableArea.big .table_wrapper table thead tr,.tableArea.big .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale))}.tableArea .table_wrapper{position:relative;overflow:auto;height:100%;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(80rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper.tbody_height{height:calc(100% - 3.5rem / var(--scale))}.tableArea .table_wrapper table{border-collapse:separate;border-spacing:0;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);min-width:calc(12.5rem / var(--scale));max-width:calc(80rem / var(--scale));text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table td.pinned_column,.tableArea .table_wrapper table th.pinned_column{min-width:calc(11.6666666667rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value,.tableArea .table_wrapper table th .cell-value{line-height:calc(1.5rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value.ellipsis,.tableArea .table_wrapper table td .cell-value .ellipsis,.tableArea .table_wrapper table th .cell-value.ellipsis,.tableArea .table_wrapper table th .cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.tableArea .table_wrapper table td .cell-value.ellipsis:hover .see_more_data,.tableArea .table_wrapper table th .cell-value.ellipsis:hover .see_more_data{display:flex}.tableArea .table_wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-500)}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0;cursor:pointer;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500);text-transform:uppercase}.tableArea .table_wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper table thead th:nth-last-child(2) .second_dropdown,.tableArea .table_wrapper table thead th:nth-last-child(3) .second_dropdown{right:unset;left:calc(-20.25rem / var(--scale))}.tableArea .table_wrapper table thead th:last-child .th_wraper{border:0}.tableArea .table_wrapper table thead th:hover .none{display:block}.tableArea .table_wrapper table thead th:hover .up,.tableArea .table_wrapper table thead th:hover .down{display:none}.tableArea .table_wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));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;background-color:var(--neutral-50)}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover,.tableArea .table_wrapper table tbody tr:hover td{background-color:var(--blue-100)!important}.tableArea .table_wrapper table tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}.tableArea .table_wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr td:hover{background-color:var(--blue-100)!important}.tableArea .table_wrapper table tbody tr td.selected{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action:hover{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td .gripper{cursor:grab}.tableArea .table_wrapper table tbody tr td .col_wrapper{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale))}.th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap}.th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));transition:opacity .5s ease;cursor:grab}.th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters{position:relative;display:inline-block;cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters:hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));position:absolute;top:0;left:0;width:calc(18.8333333333rem / var(--scale));background:var(--neutral-50);padding:calc(1rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;z-index:99;display:flex;flex-direction:column;justify-content:center;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper lib-common-input{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .logic-row{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(3.3333333333rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details .set_options{display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale));width:100%;max-height:calc(10.8333333333rem / var(--scale));overflow-y:auto}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn{display:flex;flex-direction:row;justify-content:end;align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));min-width:auto;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;font-family:inherit;transition:all .2s ease;-webkit-user-select:none;user-select:none;background-color:var(--white);padding:calc(.3333333333rem / var(--scale)) calc(1.0833333333rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.th_wraper .filter_three_dot_wrapper .filt_wrap{position:absolute;top:calc(1.6666666667rem / var(--scale));left:0}.th_wraper .filter_three_dot_wrapper .three-dots :hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .resize-handle{color:var(--neutral-200);cursor:w-resize;white-space:nowrap;overflow:hidden;font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400}.th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.active_filters_container{display:flex;flex-direction:\"\";justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1.3333333333rem / var(--scale));padding:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-bottom:0}.active_filters_container .tag_wrapper{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(100% - 10.8333333333rem / var(--scale));overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.active_filters_container .tag_wrapper .active_filter_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(2.1666666667rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .active_filter_label{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;max-width:calc(29.1666666667rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .filter_logic{font-size:var(--fs-12);line-height:calc(1.3333333333rem / var(--scale));font-weight:500;color:var(--neutral-400)}.active_filters_container .tag_wrapper .active_filter_tag .filter_value{padding-left:calc(.3333333333rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .remove_filter_btn{border:0;background-color:transparent;cursor:pointer;min-width:auto;width:auto;height:auto}.active_filters_container .tag_wrapper .active_filter_tag .remove_filter_btn img{max-width:calc(1.3333333333rem / var(--scale))}.active_filters_container .clear_all{font-size:var(--fs-16);line-height:calc(1.5rem / var(--scale));font-weight:500;color:var(--blue-600);cursor:pointer}.pinned_column:has(.cell-value:hover),.pinned_column:has(.tag_wrapper:hover),tr:has(.pinned_column .cell-value:hover) .pinned_column,tr:has(.pinned_column .tag_wrapper:hover) .pinned_column{z-index:13!important}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(4rem / var(--scale));padding:calc(.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.pagination_main .entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select{position:relative}.pagination_main .entries_details .pagination_select .select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img{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}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img img{width:calc(1.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .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(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:10}.pagination_main .entries_details .pagination_select .select_option span{width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;padding:calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_option span:hover{background-color:var(--blue-100)}.pagination_main .pagination_form{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.8333333333rem / var(--scale))}.pagination_main .pagination_form .prev_btn,.pagination_main .pagination_form .next_btn,.pagination_main .pagination_form .first_btn,.pagination_main .pagination_form .last_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(2.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .pagination_form .outlined_btn{background:transparent;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-500);cursor:pointer}.pagination_main .pagination_form .outlined_btn.disable_btn{opacity:.4;pointer-events:none;background-color:var(--neutral-200)}.pagination_main .pagination_form .outlined_btn img{max-width:calc(1.6666666667rem / var(--scale))}.pagination_main .pagination_form .input_style{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-600);text-align:center;outline:none;padding:0}.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-200);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)}.d-none{display:none}.group_panel{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));background:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(0rem / var(--scale));border-bottom:0;height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.group_panel img.divider:last-child{display:none}.group_panel .group_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;cursor:grab}.group_panel .group_tag .remove_tag{border:0;padding:0;cursor:pointer}.group_panel .group_placeholder{color:var(--neutral-500)}.group_panel img{max-width:calc(1.3333333333rem / var(--scale))}.group-toggle{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);cursor:pointer}.tableArea:has(.group_panel) tr .group-cell:hover img{background-color:var(--blue-100);border-radius:calc(.3333333333rem / var(--scale))}.active_group{width:calc(8.3333333333rem / var(--scale))}.dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;position:relative;width:calc(26.6666666667rem / var(--scale));right:0}.dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.dropdown_wrapper .right_click_item:hover,.dropdown_wrapper .right_click_item.active{background-color:var(--blue-100)}.dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.dropdown_wrapper .right_click_item .right_chevron{stroke:var(--neutral-400)}.second_dropdown{position:absolute;right:calc(-20.25rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.third_dropdown{position:absolute;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));right:calc(-40.1666666667rem / var(--scale));top:calc(-.5833333333rem / var(--scale));width:calc(20.25rem / var(--scale));height:calc(18.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.export_section{position:absolute;right:calc(-20.0833333333rem / var(--scale));top:calc(20.0833333333rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(13.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.table_wrapper.no-horizontal-scroll{overflow-x:hidden!important}.table_inner_wrapper{position:relative;min-height:100%}.empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.empty_content{max-width:100%;text-align:center}.setting_options{position:absolute;background:var(--white);z-index:10;right:0;top:calc(3.4166666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);width:calc(20.8333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.setting_options .column_header{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;height:calc(2.5rem / var(--scale));color:var(--neutral-600)}.setting_options .item_container{max-height:calc(16.6666666667rem / var(--scale));overflow:auto;display:flex;flex-direction:column;justify-content:start;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale))}.setting_options .item_container .column_item{color:var(--neutral-600);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;height:calc(1.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}\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.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.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: "component", type: CommonCalendarComponent, selector: "lib-common-calendar", inputs: ["dateConfig", "minDate", "maxDate", "preSelectedValue"], outputs: ["dateTimeSelected", "clearDateEvent"] }, { kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "directive", type: RendererParserDirective, selector: "[appRendererParser]", inputs: ["rowParam", "col", "api", "currentValue"] }, { kind: "component", type: CommonInputComponent, selector: "lib-common-input", inputs: ["options", "selectedValue", "placeholder", "elementType"], outputs: ["valueChange"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
2213
2454
  }
2214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CatsDataGridComponent, decorators: [{
2455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CatsDataGridComponent, decorators: [{
2215
2456
  type: Component,
2216
2457
  args: [{ selector: 'cats-data-grid', imports: [
2217
2458
  CommonModule,
@@ -2222,8 +2463,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2222
2463
  RendererParserDirective,
2223
2464
  AddClassPipe,
2224
2465
  CommonInputComponent,
2225
- ], template: "<div class=\"tableArea\">\r\n @if (groupByRequired) {\r\n <!-- Group Panel -->\r\n <div\r\n class=\"group_panel\"\r\n (dragover)=\"onGroupDragOver($event)\"\r\n (drop)=\"onGroupDrop($event)\"\r\n >\r\n <img alt=\"\" src=\"images/t-data-pipeline.svg\" class=\"icon\" />\r\n @for (g of activeGroups; track $index) {\r\n <div\r\n class=\"group_tag\"\r\n draggable=\"true\"\r\n (dragstart)=\"onGroupDragStart($event, $index)\"\r\n (dragover)=\"onActiveDragOver($event, $index)\"\r\n (drop)=\"onActiveGroupDrop($event, $index)\"\r\n >\r\n <img src=\"images/t-gripper.svg\" alt=\"\" />\r\n <span>{{ g.headerName }}</span>\r\n <button class=\"remove_tag\" (click)=\"removeGroup(g, $index)\">\r\n <img src=\"images/t-x.svg\" alt=\"\" />\r\n </button>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" class=\"divider\" />\r\n }\r\n @if (activeGroups.length === 0) {\r\n <div class=\"group_placeholder\">Drag here to set row groups</div>\r\n }\r\n </div>\r\n }\r\n @if (activeFilters.size > 0) {\r\n <div class=\"active_filters_container\">\r\n @for (filter of appliedFilters; track filter.fieldName) {\r\n <div class=\"active_filter_tag\">\r\n <div class=\"active_filter_label ellipsis\">\r\n @for (item of filter.filters; track $index) {\r\n @if (item.filterValue) {\r\n @if ($index > 0 && item.filterValue) {\r\n <span class=\"filter_logic\"> {{ filter.filterLogic }} </span>\r\n }\r\n <span class=\"filter_field\">{{ filter.fieldName }}:</span>\r\n <span class=\"\"> {{ item.filterOperation }}</span>\r\n <span class=\"filter_value\">{{ item.filterValue }}</span>\r\n }\r\n }\r\n </div>\r\n <button\r\n class=\"remove_filter_btn\"\r\n (click)=\"removeActiveFilter(filter)\"\r\n >\r\n <img src=\"images/t-x.svg\" alt=\"\" />\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div\r\n class=\"table_wrapper\"\r\n id=\"table_scroll\"\r\n #parent\r\n (scroll)=\"infinityScroll($event)\"\r\n [ngStyle]=\"{ height: height + 'px' }\"\r\n [class.no-horizontal-scroll]=\"\r\n (!rowData || rowData.length === 0) &&\r\n (!groupedResult || groupedResult.length === 0)\r\n \"\r\n >\r\n <div class=\"table-inner-wrapper\">\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=\"min-width: 50px; width: 50px\">\r\n <div class=\"th_wraper\">\r\n <span class=\"checkbox_container\"\r\n ><input\r\n class=\"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 <div class=\"filter_three_dot_wrapper\">\r\n <span class=\"resize-handle default_cursor\"> | </span>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n <!-- @else{\r\n <th></th>\r\n } -->\r\n @if (activeGroups.length > 0) {\r\n <th class=\"active_group\">\r\n <div class=\"th_wraper\">\r\n <div class=\"text_wrapper\">\r\n <span class=\"ellipsis headerName\">Group</span>\r\n </div>\r\n <div class=\"filter_three_dot_wrapper\">\r\n <div class=\"three-dots\">\r\n <img src=\"images/t-more-vertical.svg\" />\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n @for (col of colDefs; track col.colId) {\r\n <th\r\n [ngStyle]=\"getStyle(col, 'action')\"\r\n [ngClass]=\"{\r\n 'drag-over': dragOverIndex === $index,\r\n pinned_column: col.leftPinned || col.rightPinned,\r\n }\"\r\n (dragover)=\"onDragOver($event, $index)\"\r\n (drop)=\"onDrop($event, $index)\"\r\n (mouseenter)=\"onMouseEnterHeader($index)\"\r\n (mouseleave)=\"onMouseLeaveHeader($index)\"\r\n >\r\n <div class=\"th_wraper\">\r\n <div\r\n class=\"text_wrapper\"\r\n [ngStyle]=\"getStyle(col, 'action')\"\r\n (click)=\"onSortingRowData($index, col)\"\r\n >\r\n @if (showMoveIcon[$index] && !col.isAction) {\r\n <img\r\n src=\"images/t-move.svg\"\r\n class=\"move-icon\"\r\n [draggable]=\"!isResizing || columnDraggable[$index]\"\r\n (dragstart)=\"onDragStart($event, $index)\"\r\n (dragend)=\"onDragEnd()\"\r\n (mouseenter)=\"enableColumnDrag($event, $index)\"\r\n (mouseleave)=\"disableColumnDrag($event, $index)\"\r\n />\r\n }\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n\r\n @if (\r\n sortingRequired &&\r\n sortingColumnIndex == $index &&\r\n col?.sortable &&\r\n !col.isAction\r\n ) {\r\n <span class=\"sorting_icon\">\r\n @if (sortingType[$index] === \"asc\") {\r\n <img\r\n src=\"images/t-arrow-up.svg\"\r\n class=\"sorting_up\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n @if (sortingType[$index] === \"dsc\") {\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img\r\n src=\"images/t-arrow-down.svg\"\r\n class=\"sorting_down\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n </span>\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 #trigger\r\n class=\"filters\"\r\n (click)=\"toggleFilter(col, $index, $event)\"\r\n >\r\n @if (activeFilters.has(col.fieldName)) {\r\n <img\r\n src=\"images/t-filter-applied.svg\"\r\n class=\"filter-icon\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n } @else {\r\n <img\r\n src=\"images/t-filter.svg\"\r\n class=\"filter-icon\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n }\r\n @if (activeFilterIndex === $index) {\r\n <div\r\n adaptivePosition\r\n [trigger]=\"trigger\"\r\n [parentContainer]=\"parent\"\r\n [matchWidth]=\"false\"\r\n class=\"filter_wrapper\"\r\n id=\"filter_wrapper-{{ $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 <lib-common-input\r\n [options]=\"filterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"filterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n }\r\n }\r\n\r\n <!-- Number Filter -->\r\n @if (col.filterType === \"number\") {\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <!-- <input\r\n type=\"number\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (input)=\"applyAllFilters()\"\r\n /> -->\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"number\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (input)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (keyup)=\"applyAllFilters()\"\r\n />\r\n </div>\r\n <!-- <input\r\n type=\"text\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n placeholder=\"Filter\u2026\"\r\n (keyup)=\"applyAllFilters()\"\r\n /> -->\r\n }\r\n }\r\n\r\n <!-- DATE FILTER -->\r\n @if (col.filterType === \"date\") {\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[0].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[0].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <!-- <input\r\n type=\"date\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (change)=\"applyAllFilters()\"\r\n /> -->\r\n <lib-common-calendar\r\n [dateConfig]=\"dateConfig\"\r\n [(ngModel)]=\"col.filters[0].filterValue\"\r\n (dateTimeSelected)=\"dateTimeSelected($event)\"\r\n ></lib-common-calendar>\r\n\r\n @if (col.filters[0].filterValue) {\r\n <div class=\"logic-row radio_option\">\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"AND\"\r\n id=\"{{ $index }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index\">AND</label>\r\n\r\n <input\r\n type=\"radio\"\r\n name=\"filterLogic{{ col.fieldName }}\"\r\n [(ngModel)]=\"col.filterLogic\"\r\n value=\"OR\"\r\n id=\"{{ $index + 1 }}\"\r\n (change)=\"applyAllFilters()\"\r\n />\r\n <label [for]=\"$index + 1\">OR</label>\r\n </div>\r\n\r\n <lib-common-input\r\n [options]=\"numberFilterOptions\"\r\n [selectedValue]=\"col.filters[1].filterOperation\"\r\n placeholder=\"Select filter\"\r\n (valueChange)=\"\r\n col.filters[1].filterOperation = $event\r\n \"\r\n ></lib-common-input>\r\n\r\n <lib-common-calendar\r\n [dateConfig]=\"dateConfig\"\r\n [(ngModel)]=\"col.filters[1].filterValue\"\r\n (dateTimeSelected)=\"dateTimeSelected($event)\"\r\n ></lib-common-calendar>\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 <div class=\"search_input\">\r\n <img src=\"images/search.svg\" alt=\"\" />\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search...\"\r\n (input)=\"filterSetOptions(col, $event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"set_option_details\">\r\n <label class=\"checkbox_container\">\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 <div class=\"set_options\" id=\"table_scroll\">\r\n @for (\r\n opt of col.filteredOptions;\r\n track $index\r\n ) {\r\n <label class=\"checkbox_container\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"col.selectedValues.has(opt)\"\r\n (change)=\"\r\n toggleSetOption(col, opt, $event)\r\n \"\r\n />\r\n {{ opt }}\r\n </label>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div class=\"filter_btn\">\r\n <button\r\n class=\"reset_btn\"\r\n type=\"button\"\r\n (click)=\"resetFilter(col)\"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Three dots menu-->\r\n <div #triggerColMenu>\r\n @if (threeDotsMenuRequired && col.columnAction) {\r\n <div\r\n class=\"three-dots\"\r\n (click)=\"openMenu($event, col, $index)\"\r\n >\r\n <img\r\n src=\"images/t-more-vertical.svg\"\r\n [draggable]=\"false\"\r\n (dragstart)=\"\r\n $event.preventDefault(); $event.stopPropagation()\r\n \"\r\n />\r\n </div>\r\n }\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=\"dropdown_wrapper\"\r\n adaptivePosition\r\n [trigger]=\"triggerColMenu\"\r\n [parentContainer]=\"parent\"\r\n [matchWidth]=\"false\"\r\n [isColumnActionMenu]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n appOutsideClick\r\n (clickOutside)=\"onClickOutside()\"\r\n >\r\n <div class=\"right_click_dropdown\" id=\"table_scroll\">\r\n @if (\r\n sortingType[$index] === \"dsc\" ||\r\n sortingType[$index] === \"\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, 'asc', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img\r\n src=\"images/arrow-up.svg\"\r\n class=\"sorting_up\"\r\n [ngClass]=\"{ disable: !col.sortable }\"\r\n />\r\n <span class=\"text\">Sort Ascending</span>\r\n </div>\r\n </div>\r\n }\r\n @if (\r\n sortingType[$index] === \"asc\" ||\r\n sortingType[$index] === \"\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, 'dsc', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/arrow-down.svg\" />\r\n <span class=\"text\">Sort Descending</span>\r\n </div>\r\n </div>\r\n }\r\n @if (\r\n sortingType[$index] === \"asc\" ||\r\n sortingType[$index] === \"dsc\"\r\n ) {\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"onSort(col, '', $index)\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/trash-2.svg\" />\r\n <span class=\"text\">Clear Sort</span>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"divder\"></div>\r\n\r\n <div\r\n class=\"right_click_item\"\r\n (mouseenter)=\"showPinActions()\"\r\n (mouseleave)=\"hidePinActions()\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">Pin Column</span>\r\n </div>\r\n <div class=\"right_item\">\r\n <img src=\"images/chevron-right.svg\" />\r\n @if (showPin) {\r\n <div class=\"second_dropdown\">\r\n <div\r\n (click)=\"pinColumn(col, $index, 'none')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (\r\n (pinActionClicked[col.colId] ?? \"none\") ===\r\n \"none\"\r\n ) {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">No Pin</span>\r\n </div>\r\n </div>\r\n <div\r\n (click)=\"pinColumn(col, $index, 'left')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (pinActionClicked[col.colId] === \"left\") {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">Pin Left</span>\r\n </div>\r\n </div>\r\n <div\r\n (click)=\"pinColumn(col, $index, 'right')\"\r\n class=\"right_click_item\"\r\n >\r\n <div class=\"left_item\">\r\n @if (pinActionClicked[col.colId] === \"right\") {\r\n <img src=\"images/check.svg\" />\r\n } @else {\r\n <img src=\"\" alt=\"\" />\r\n }\r\n <span class=\"text\">Pin Right</span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- <div\r\n class=\"right_click_item\"\r\n (click)=\"pinColumn(col, $index, 'left')\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">{{\r\n col.leftPinned ? \"Unpin Left Column\" : \"Pin Column Left\"\r\n }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"right_click_item\"\r\n (click)=\"pinColumn(col, $index, 'right')\"\r\n >\r\n <div class=\"left_item\">\r\n <img src=\"images/pin.svg\" />\r\n <span class=\"text\">\r\n {{\r\n col.rightPinned\r\n ? \"Unpin Right Column\"\r\n : \"Pin Column Right\"\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"right_item\">\r\n <img src=\"images/arrow-right.svg\" alt=\"\" />\r\n </div>\r\n </div> -->\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Autosize This Column</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Autosize All Columns</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"right_click_item\"\r\n [ngClass]=\"{ disabled_option: !groupByRequired }\"\r\n >\r\n <div\r\n class=\"left_item\"\r\n (click)=\"groupByColumnAction(col, $index)\"\r\n >\r\n <img src=\"images/t-group-by-name.svg\" alt=\"\" />\r\n <span class=\"text\">Group by {{ col.headerName }}</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/t-choose-column.svg\" alt=\"\" />\r\n <span class=\"text\">Choose Columns</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"\" alt=\"\" />\r\n <span class=\"text\">Reset Columns</span>\r\n </div>\r\n </div>\r\n </div>\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) {\r\n @for (group of groupedResult; track group.key) {\r\n <tr (click)=\"toggleGroup(group)\">\r\n <td\r\n class=\"group-cell\"\r\n [attr.colspan]=\"\r\n colDefs.length +\r\n (checkBoxSelection ? 1 : 0) +\r\n (activeGroups.length > 0 ? 1 : 0)\r\n \"\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) {\r\n @for (child of group.children; track 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 activeGroups: activeGroups,\r\n level: 1,\r\n }\"\r\n ></ng-container>\r\n }\r\n }\r\n\r\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\r\n @if (!group.children[0]?.children) {\r\n @for (row of group.children; track row.rowId) {\r\n <tr [ngClass]=\"row | addClass: tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <span class=\"checkbox_container\">\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\"\r\n /></span>\r\n </td>\r\n }\r\n @if (activeGroups.length > 0) {\r\n <td class=\"group-placeholder\"></td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(row) : '',\r\n col.leftPinned || col.rightPinned\r\n ? 'pinned_column'\r\n : '',\r\n ]\"\r\n >\r\n <!-- {{ row[col.fieldName] }} -->\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(row, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(row, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n [rowParam]=\"row\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"row[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }\r\n }\r\n }\r\n } @else {\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 class=\"checkbox_container\"\r\n ><input\r\n type=\"checkbox\"\r\n class=\"pointer\"\r\n name=\"\"\r\n id=\"{{ data.rowId }}\"\r\n [disabled]=\"data.isLocked\"\r\n [checked]=\"data.isSelected || data.isLocked\"\r\n (change)=\"onRowCheckboxSelection($event)\"\r\n /></span>\r\n } @else {\r\n <span class=\"radio_option\">\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 <label [for]=\"data.rowId\"></label>\r\n </span>\r\n }\r\n </td>\r\n }\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col?.addClass ? col.addClass(data) : '',\r\n col.leftPinned || col.rightPinned ? 'pinned_column' : '',\r\n ]\"\r\n >\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(data, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\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 }\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-activeGroups=\"activeGroups\"\r\n let-level=\"level\"\r\n >\r\n <!-- GROUP HEADER -->\r\n <tr (click)=\"toggleGroup(node)\">\r\n <td\r\n [attr.colspan]=\"\r\n colDefs.length +\r\n (checkBoxSelection ? 1 : 0) +\r\n (activeGroups.length > 0 ? 1 : 0)\r\n \"\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 <!-- CASE: more groups -->\r\n @if (node.children[0]?.children) {\r\n @for (child of node.children; track 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 activeGroups: activeGroups,\r\n level: level + 1,\r\n }\"\r\n >\r\n </ng-container>\r\n }\r\n }\r\n\r\n <!-- CASE: final rows -->\r\n @if (!node.children[0]?.children) {\r\n @for (row of node.children; track row.rowId) {\r\n <tr [ngClass]=\"row | addClass: tableOptions\">\r\n <!-- Checkbox column if any -->\r\n @if (checkBoxSelection) {\r\n <td>\r\n <span class=\"checkbox_container\">\r\n <input type=\"checkbox\" [checked]=\"row.isSelected\"\r\n /></span>\r\n </td>\r\n }\r\n @if (activeGroups.length > 0) {\r\n <td class=\"group-placeholder\"></td>\r\n }\r\n\r\n <!-- Render columns -->\r\n @for (col of colDefs; track col.colId) {\r\n <td\r\n [ngStyle]=\"getStyle(col)\"\r\n [ngClass]=\"[\r\n col.leftPinned || col.rightPinned ? 'pinned_column' : '',\r\n ]\"\r\n >\r\n <!-- {{ row[col.fieldName] }} -->\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value ellipsis\">\r\n <div\r\n class=\"more_data_wrapper\"\r\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\r\n >\r\n {{ parseColValue(row, col) }}\r\n </div>\r\n <div class=\"see_more_data\" id=\"table_scroll\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(row, col) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n [rowParam]=\"row\"\r\n [col]=\"col\"\r\n [api]=\"tableOptions\"\r\n [currentValue]=\"row[col.fieldName]\"\r\n appRendererParser\r\n ></div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n }\r\n }\r\n </ng-template>\r\n </table>\r\n\r\n @if (\r\n (!rowData || rowData.length === 0) &&\r\n (!groupedResult || groupedResult.length === 0)\r\n ) {\r\n <div class=\"empty_overlay\">\r\n <div class=\"empty_content\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tableOptions.noDataTemplate\"\r\n ></ng-container>\r\n } @else {\r\n <span>No Data To Show</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\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 class=\"pagination_select\">\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 |\r\n {{ totalRecords > 0 ? convertToNumber(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\">\r\n <!-- <span>Page</span> -->\r\n\r\n <button class=\"outlined_btn first_btn disable_btn\" type=\"button\">\r\n <span> <img src=\"images/chevrons-left.svg\" alt=\"\" /> </span>\r\n </button>\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> <img src=\"images/chevron-left.svg\" alt=\"\" /> </span>\r\n </button>\r\n <div>\r\n <input\r\n class=\"input_style\"\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\r\n ? ''\r\n : 'disable_btn'\r\n \"\r\n (click)=\"onBtNextClick()\"\r\n >\r\n <span> <img src=\"images/chevron-right.svg\" alt=\"\" /> </span>\r\n </button>\r\n <!-- <span>of {{ pageDetails.totalPages }}</span> -->\r\n\r\n <button class=\"outlined_btn last_btn disable_btn\" type=\"button\">\r\n <span> <img src=\"images/chevrons-right.svg\" alt=\"\" /> </span>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>\r\n\r\n<!-- cell right click code start here -->\r\n<div class=\"dropdown_wrapper d-none\">\r\n <div class=\"right_click_dropdown\">\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/scissors.svg\" />\r\n <span class=\"text\">Cut</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+X</span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+C</span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy with Headers</span>\r\n </div>\r\n <span class=\"right_item\"></span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/copy.svg\" alt=\"\" />\r\n <span class=\"text\">Copy with Group Headers</span>\r\n </div>\r\n <span class=\"right_item\"></span>\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/clipboard.svg\" alt=\"\" />\r\n <span class=\"text\">Paste</span>\r\n </div>\r\n\r\n <span class=\"right_item\">Ctrl+V</span>\r\n </div>\r\n\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <img src=\"images/bar-chart.svg\" alt=\"\" />\r\n <span class=\"text\">Chart</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/download.svg\" alt=\"\" />\r\n <span class=\"text\">Export</span>\r\n </div>\r\n\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Chart section Start Here -->\r\n <div class=\"second_dropdown\">\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Column</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Bar</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Pie</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Line</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Area</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">XY(Scatter)</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Polar</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Stastical</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Hierarchical</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Specialized</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Funnel</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Combination</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Export Section start Here -->\r\n <div class=\"export_section d-none\">\r\n <div class=\"right_click_item active\">\r\n <div class=\"left_item\">\r\n <img src=\"images/file.svg\" alt=\"\" />\r\n <span class=\"text\">CSV Report</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <img src=\"images/file.svg\" alt=\"\" />\r\n <span class=\"text\">Excel Report</span>\r\n </div>\r\n <img src=\"images/chevron-right.svg\" alt=\"\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Column Group Section Start Here -->\r\n <div class=\"third_dropdown\">\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Grouped</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">Stacked</span>\r\n </div>\r\n </div>\r\n <div class=\"right_click_item\">\r\n <div class=\"left_item\">\r\n <span class=\"text\">100% Stacked</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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}.pointer,.cursor-pointer{cursor:pointer}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.tableArea{width:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.tableArea.big .table_wrapper table thead tr,.tableArea.big .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale))}.tableArea .table_wrapper{overflow:auto;height:auto;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(66.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table{border-collapse:separate;border-spacing:0;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);min-width:calc(12.5rem / var(--scale));max-width:calc(80rem / var(--scale));text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table td.pinned_column,.tableArea .table_wrapper table th.pinned_column{min-width:calc(11.6666666667rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value,.tableArea .table_wrapper table th .cell-value{line-height:calc(1.5rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value.ellipsis,.tableArea .table_wrapper table td .cell-value .ellipsis,.tableArea .table_wrapper table th .cell-value.ellipsis,.tableArea .table_wrapper table th .cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.tableArea .table_wrapper table td .cell-value.ellipsis:hover .see_more_data,.tableArea .table_wrapper table th .cell-value.ellipsis:hover .see_more_data{display:flex}.tableArea .table_wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-500)}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0;cursor:pointer;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500);text-transform:uppercase}.tableArea .table_wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper table thead th:last-child .th_wraper{border:0}.tableArea .table_wrapper table thead th:hover .none{display:block}.tableArea .table_wrapper table thead th:hover .up,.tableArea .table_wrapper table thead th:hover .down{display:none}.tableArea .table_wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));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;background-color:var(--neutral-50)}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover,.tableArea .table_wrapper table tbody tr:hover td{background-color:var(--blue-50)!important}.tableArea .table_wrapper table tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}.tableArea .table_wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr td:hover{background-color:var(--blue-50)!important}.tableArea .table_wrapper table tbody tr td.selected{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action:hover{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap}.th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));transition:opacity .5s ease;cursor:grab}.th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters{position:relative;display:inline-block;cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters:hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));position:absolute;top:20px;left:0;width:calc(18.8333333333rem / var(--scale));background:var(--neutral-50);padding:calc(1rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;z-index:99;display:flex;flex-direction:column;justify-content:center;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper lib-common-input{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .logic-row{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(3.3333333333rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details .set_options{display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale));width:100%;max-height:calc(10.8333333333rem / var(--scale));overflow-y:auto}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn{display:flex;flex-direction:row;justify-content:end;align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;font-family:inherit;transition:all .2s ease;-webkit-user-select:none;user-select:none;background-color:var(--white);padding:calc(.3333333333rem / var(--scale)) calc(1.0833333333rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.th_wraper .filter_three_dot_wrapper .three-dots :hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .resize-handle{color:var(--neutral-200);cursor:w-resize;white-space:nowrap;overflow:hidden;font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400}.th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.active_filters_container{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.6666666667rem / var(--scale))}.active_filters_container .active_filter_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:wrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));background-color:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale))}.active_filters_container .active_filter_tag .active_filter_label{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;max-width:calc(29.1666666667rem / var(--scale))}.active_filters_container .active_filter_tag .filter_logic{font-size:var(--fs-12);line-height:calc(1.3333333333rem / var(--scale));font-weight:500;color:var(--neutral-400)}.active_filters_container .active_filter_tag .filter_value{padding-left:calc(.3333333333rem / var(--scale))}.active_filters_container .active_filter_tag .remove_filter_btn{border:0;background-color:transparent;cursor:pointer}.active_filters_container .active_filter_tag .remove_filter_btn img{max-width:calc(1.3333333333rem / var(--scale))}.pinned_column:has(.cell-value:hover),.pinned_column:has(.tag_wrapper:hover),tr:has(.pinned_column .cell-value:hover) .pinned_column,tr:has(.pinned_column .tag_wrapper:hover) .pinned_column{z-index:13!important}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(4rem / var(--scale));padding:calc(.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.pagination_main .entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select{position:relative}.pagination_main .entries_details .pagination_select .select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img{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}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img img{width:calc(1.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .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(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:10}.pagination_main .entries_details .pagination_select .select_option span{width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;padding:calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_option span:hover{background-color:var(--neutral-50)}.pagination_main .pagination_form{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.8333333333rem / var(--scale))}.pagination_main .pagination_form .prev_btn,.pagination_main .pagination_form .next_btn,.pagination_main .pagination_form .first_btn,.pagination_main .pagination_form .last_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(2.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .pagination_form .outlined_btn{background:transparent;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-500);cursor:pointer}.pagination_main .pagination_form .outlined_btn.disable_btn{opacity:.4;pointer-events:none;background-color:var(--neutral-200)}.pagination_main .pagination_form .outlined_btn img{max-width:calc(1.6666666667rem / var(--scale))}.pagination_main .pagination_form .input_style{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-600);text-align:center;outline:none;padding:0}.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-200);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)}.d-none{display:none}.group_panel{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));background:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(0rem / var(--scale));border-top:0;height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.group_panel img.divider:last-child{display:none}.group_panel .group_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;cursor:grab}.group_panel .group_tag .remove_tag{border:0;padding:0;cursor:pointer}.group_panel .group_placeholder{color:var(--neutral-500)}.group_panel img{max-width:calc(1.3333333333rem / var(--scale))}.group-toggle{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);cursor:pointer}.tableArea:has(.group_panel) tr .group-cell:hover img{background-color:var(--neutral-50);border-radius:calc(.3333333333rem / var(--scale))}.active_group{width:calc(8.3333333333rem / var(--scale))}.dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;position:relative;width:calc(26.6666666667rem / var(--scale))}.dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.dropdown_wrapper .right_click_item:hover,.dropdown_wrapper .right_click_item.active{background-color:var(--blue-50)}.dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.dropdown_wrapper .right_click_item .right_chevron{stroke:var(--neutral-400)}.second_dropdown{position:absolute;right:calc(-20rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.third_dropdown{position:absolute;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));right:calc(-40.1666666667rem / var(--scale));top:calc(-.5833333333rem / var(--scale));width:calc(20.25rem / var(--scale));height:calc(18.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.export_section{position:absolute;right:calc(-20.0833333333rem / var(--scale));top:calc(20.0833333333rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(13.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.table_wrapper{position:relative;overflow:auto}.table_wrapper.no-horizontal-scroll{overflow-x:hidden!important}.table_inner_wrapper{position:relative;min-height:100%}.empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.empty_content{max-width:100%;text-align:center}\n"] }]
2226
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { tableOptions: [{
2466
+ ], template: "<div class=\"tableArea\" #table>\n @if (settingsRequired && settingsClicked) {\n <div\n class=\"setting_options\"\n appOutsideClick\n (clickOutside)=\"hideSettings()\"\n >\n <div class=\"column_header\">Select Headers</div>\n <div class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"activeAll\"\n (change)=\"activeAllSelection($event)\"\n />\n <span>Select All</span>\n </div>\n\n <div class=\"item_container\" id=\"table_scroll\">\n @for (col of colDefs; track col.colId) {\n <div class=\"column_item checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"col.active\"\n (change)=\"changeActiveColSelection($event, col)\"\n [disabled]=\"col.headerLocked\"\n />\n <span>{{ col.headerName | titlecase }}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (groupByRequired) {\n <!-- Group Panel -->\n <div\n class=\"group_panel\"\n (dragover)=\"onGroupDragOver($event)\"\n (drop)=\"onGroupDrop($event)\"\n >\n <img alt=\"\" src=\"images/t-data-pipeline.svg\" class=\"icon\" />\n @for (g of activeGroups; track $index) {\n <div\n class=\"group_tag\"\n draggable=\"true\"\n (dragstart)=\"onGroupDragStart($event, $index)\"\n (dragover)=\"onActiveDragOver($event, $index)\"\n (drop)=\"onActiveGroupDrop($event, $index)\"\n >\n <img src=\"images/t-gripper.svg\" alt=\"\" />\n <span>{{ g.headerName }}</span>\n <button class=\"remove_tag\" (click)=\"removeGroup(g, $index)\">\n <img src=\"images/t-x.svg\" alt=\"\" />\n </button>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" class=\"divider\" />\n }\n @if (activeGroups.length === 0) {\n <div class=\"group_placeholder\">Drag here to set row groups</div>\n }\n </div>\n }\n @if (activeFilters.size > 0) {\n <div class=\"active_filters_container\">\n <div class=\"tag_wrapper\">\n @for (filter of appliedFilters; track filter.fieldName) {\n <div class=\"active_filter_tag\">\n <div class=\"active_filter_label ellipsis\">\n @for (item of filter.filters; track $index) {\n @if (item.filterValue) {\n @if ($index > 0 && item.filterValue) {\n <span class=\"filter_logic\"> {{ filter.filterLogic }} </span>\n }\n <span class=\"filter_field\">{{ filter.fieldName }}:</span>\n <span class=\"\"> {{ item.filterOperation }}</span>\n <span class=\"filter_value\">{{ item.filterValue }}</span>\n }\n }\n </div>\n <button\n class=\"remove_filter_btn\"\n (click)=\"removeActiveFilter(filter)\"\n >\n <img src=\"images/t-x.svg\" alt=\"\" />\n </button>\n </div>\n }\n </div>\n <div class=\"clear_all\" (click)=\"clearAllFilter()\">Clear All Filters</div>\n </div>\n }\n <div\n class=\"table_wrapper global\"\n id=\"table_scroll\"\n #parent\n (scroll)=\"infinityScroll($event)\"\n [ngClass]=\"{ tbody_height: activeFilters.size > 0 }\"\n [class.no-horizontal-scroll]=\"\n (!rowData || rowData.length === 0) &&\n (!groupedResult || groupedResult.length === 0)\n \"\n >\n <div class=\"table-inner-wrapper\">\n <table cellspacing=\"0\" cellpadding=\"0\">\n <thead class=\"sticky-top\">\n <tr>\n @if (\n checkBoxSelection &&\n checkboxSelectionType == \"multiple\" &&\n atLeastOneColumnChecked\n ) {\n <th style=\"min-width: 50px; width: 50px\">\n <div class=\"th_wraper\">\n <span class=\"checkbox_container\"\n ><input\n class=\"pointer custom_check_box\"\n type=\"checkbox\"\n name=\"\"\n id=\"\"\n [checked]=\"checkAllSelected()\"\n [indeterminate]=\"checkInterminate()\"\n (change)=\"onHeaderCheckboxChange($event)\"\n /></span>\n <div class=\"filter_three_dot_wrapper\">\n <span class=\"resize-handle default_cursor\"> | </span>\n </div>\n </div>\n </th>\n }\n @else{\n <th></th>\n } \n @if (activeGroups.length > 0) {\n <th class=\"active_group\">\n <div class=\"th_wraper\">\n <div class=\"text_wrapper\">\n <span class=\"ellipsis headerName\">Group</span>\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <div class=\"three-dots\">\n <img src=\"images/t-more-vertical.svg\" />\n </div>\n </div>\n </div>\n </th>\n }\n @for (col of colDefs; track col.colId) {\n @if (col.active) {\n <th\n [ngStyle]=\"getStyle(col, 'action')\"\n [ngClass]=\"{\n 'drag-over': dragOverIndex === $index,\n pinned_column: col.leftPinned || col.rightPinned,\n }\"\n (dragover)=\"onDragOver($event, $index)\"\n (drop)=\"onDrop($event, $index)\"\n (mouseenter)=\"onMouseEnterHeader($index)\"\n (mouseleave)=\"onMouseLeaveHeader($index)\"\n >\n <div class=\"th_wraper\">\n <div\n class=\"text_wrapper\"\n [ngStyle]=\"getStyle(col, 'action')\"\n (click)=\"onSortingRowData($index, col)\"\n >\n @if (showMoveIcon[$index] && !col.isAction) {\n <img\n src=\"images/t-move.svg\"\n class=\"move-icon\"\n [draggable]=\"!isResizing || columnDraggable[$index]\"\n (dragstart)=\"onDragStart($event, $index)\"\n (dragend)=\"onDragEnd()\"\n (mouseenter)=\"enableColumnDrag($event, $index)\"\n (mouseleave)=\"disableColumnDrag($event, $index)\"\n />\n }\n <span class=\"ellipsis headerName\">{{\n col?.headerName\n }}</span>\n\n @if (\n sortingRequired &&\n sortingColumnIndex == $index &&\n col?.sortable &&\n !col.isAction\n ) {\n <span class=\"sorting_icon\">\n @if (sortingType[$index] === \"asc\") {\n <img\n src=\"images/t-arrow-up.svg\"\n class=\"sorting_up\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n @if (sortingType[$index] === \"dsc\") {\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\n <img\n src=\"images/t-arrow-down.svg\"\n class=\"sorting_down\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n </span>\n }\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <!-- Column Filters Logic-->\n @if (filterRequired && col.filterable) {\n <div\n #trigger\n class=\"filters\"\n (click)=\"toggleFilter(col, $index, $event)\"\n >\n @if (activeFilters.has(col.fieldName)) {\n <img\n src=\"images/t-filter-applied.svg\"\n class=\"filter-icon\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n } @else {\n <img\n src=\"images/t-filter.svg\"\n class=\"filter-icon\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n }\n @if (activeFilterIndex === $index) {\n <div class=\"filt_wrap\">\n <div\n adaptivePosition\n [trigger]=\"trigger\"\n [parentContainer]=\"parent\"\n [matchWidth]=\"false\"\n class=\"filter_wrapper\"\n id=\"filter_wrapper-{{ $index }}\"\n (click)=\"$event.stopPropagation()\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n <!-- Text Filter -->\n @if (col.filterType === \"text\") {\n <lib-common-input\n [options]=\"filterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"filterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n <!-- <input\n type=\"text\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n placeholder=\"Filter\u2026\"\n (keyup)=\"applyAllFilters()\"\n /> -->\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n }\n\n <!-- Number Filter -->\n @if (col.filterType === \"number\") {\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <!-- <input\n type=\"number\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (input)=\"applyAllFilters()\"\n /> -->\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"number\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (input)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Filter\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n <!-- <input\n type=\"text\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n placeholder=\"Filter\u2026\"\n (keyup)=\"applyAllFilters()\"\n /> -->\n }\n }\n\n <!-- DATE FILTER -->\n @if (col.filterType === \"date\") {\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[0].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[0].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <!-- <input\n type=\"date\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n (change)=\"applyAllFilters()\"\n /> -->\n <lib-common-calendar\n [dateConfig]=\"dateConfig\"\n [(ngModel)]=\"col.filters[0].filterValue\"\n [preSelectedValue]=\"\n col.filters[0].filterValue\n \"\n (dateTimeSelected)=\"\n dateTimeSelected($event)\n \"\n ></lib-common-calendar>\n\n @if (col.filters[0].filterValue) {\n <div class=\"logic-row radio_option\">\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"AND\"\n id=\"{{ $index }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index\">AND</label>\n\n <input\n type=\"radio\"\n name=\"filterLogic{{ col.fieldName }}\"\n [(ngModel)]=\"col.filterLogic\"\n value=\"OR\"\n id=\"{{ $index + 1 }}\"\n (change)=\"applyAllFilters()\"\n />\n <label [for]=\"$index + 1\">OR</label>\n </div>\n\n <lib-common-input\n [options]=\"numberFilterOptions\"\n [selectedValue]=\"\n col.filters[1].filterOperation\n \"\n placeholder=\"Select filter\"\n (valueChange)=\"\n col.filters[1].filterOperation = $event;\n applyAllFilters()\n \"\n ></lib-common-input>\n\n <lib-common-calendar\n [dateConfig]=\"dateConfig\"\n [(ngModel)]=\"col.filters[1].filterValue\"\n [preSelectedValue]=\"\n col.filters[1].filterValue\n \"\n (dateTimeSelected)=\"\n dateTimeSelected($event)\n \"\n ></lib-common-calendar>\n }\n }\n\n <!-- SET FILTER (CHECKBOX LIST) -->\n @if (col.filterType === \"set\") {\n <!-- <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n /> -->\n <div class=\"search_input\">\n <img src=\"images/search.svg\" alt=\"\" />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n />\n </div>\n\n <div class=\"set_option_details\">\n <label class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"isAllSelected(col)\"\n (change)=\"toggleSelectAll(col, $event)\"\n />\n (Select All)\n </label>\n <div class=\"set_options\" id=\"table_scroll\">\n @for (\n opt of col.filteredOptions;\n track $index\n ) {\n <label class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"\n col.selectedValues.has(opt)\n \"\n (change)=\"\n toggleSetOption(col, opt, $event)\n \"\n />\n {{ opt }}\n </label>\n }\n </div>\n </div>\n }\n <div class=\"filter_btn\">\n <button\n class=\"reset_btn\"\n type=\"button\"\n (click)=\"resetFilter(col)\"\n >\n Reset\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Three dots menu-->\n <div #triggerColMenu>\n @if (threeDotsMenuRequired && col.columnAction) {\n <div\n class=\"three-dots\"\n (click)=\"openMenu($event, col, $index)\"\n >\n <img\n src=\"images/t-more-vertical.svg\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n </div>\n }\n </div>\n @if (!col.isAction) {\n <span\n class=\"resize-handle\"\n (mousedown)=\"startResize($event, $index)\"\n >\n |\n </span>\n }\n </div>\n </div>\n\n <!-- popup open -->\n @if (menuVisible[$index]) {\n <div\n #colActionMenu\n class=\"dropdown_wrapper\"\n adaptivePosition\n [trigger]=\"triggerColMenu\"\n [parentContainer]=\"parent\"\n [matchWidth]=\"false\"\n [isColumnActionMenu]=\"true\"\n (click)=\"$event.stopPropagation()\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n <div class=\"right_click_dropdown\" id=\"table_scroll\">\n @if (\n sortingType[$index] === \"dsc\" ||\n sortingType[$index] === \"\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, 'asc', $index)\"\n >\n <div class=\"left_item\">\n <img\n src=\"images/arrow-up.svg\"\n class=\"sorting_up\"\n [ngClass]=\"{ disable: !col.sortable }\"\n />\n <span class=\"text\">Sort Ascending</span>\n </div>\n </div>\n }\n @if (\n sortingType[$index] === \"asc\" ||\n sortingType[$index] === \"\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, 'dsc', $index)\"\n >\n <div class=\"left_item\">\n <img src=\"images/arrow-down.svg\" />\n <span class=\"text\">Sort Descending</span>\n </div>\n </div>\n }\n @if (\n sortingType[$index] === \"asc\" ||\n sortingType[$index] === \"dsc\"\n ) {\n <div\n class=\"right_click_item\"\n (click)=\"onSort(col, '', $index)\"\n >\n <div class=\"left_item\">\n <img src=\"images/trash-2.svg\" />\n <span class=\"text\">Clear Sort</span>\n </div>\n </div>\n }\n <div class=\"divder\"></div>\n\n <div\n class=\"right_click_item\"\n (mouseenter)=\"showPinActions($event)\"\n (mouseleave)=\"hidePinActions()\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">Pin Column</span>\n </div>\n <div class=\"right_item\">\n <img src=\"images/chevron-right.svg\" />\n @if (showPin) {\n <div class=\"second_dropdown\" #pinMenu>\n <div\n (click)=\"pinColumn(col, $index, 'none')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n (pinActionClicked[col.colId] ??\n \"none\") === \"none\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">No Pin</span>\n </div>\n </div>\n <div\n (click)=\"pinColumn(col, $index, 'left')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n pinActionClicked[col.colId] === \"left\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">Pin Left</span>\n </div>\n </div>\n <div\n (click)=\"pinColumn(col, $index, 'right')\"\n class=\"right_click_item\"\n >\n <div class=\"left_item\">\n @if (\n pinActionClicked[col.colId] === \"right\"\n ) {\n <img src=\"images/check.svg\" />\n } @else {\n <img src=\"\" alt=\"\" />\n }\n <span class=\"text\">Pin Right</span>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- <div\n class=\"right_click_item\"\n (click)=\"pinColumn(col, $index, 'left')\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">{{\n col.leftPinned ? \"Unpin Left Column\" : \"Pin Column Left\"\n }}</span>\n </div>\n </div>\n <div\n class=\"right_click_item\"\n (click)=\"pinColumn(col, $index, 'right')\"\n >\n <div class=\"left_item\">\n <img src=\"images/pin.svg\" />\n <span class=\"text\">\n {{\n col.rightPinned\n ? \"Unpin Right Column\"\n : \"Pin Column Right\"\n }}\n </span>\n </div>\n <div class=\"right_item\">\n <img src=\"images/arrow-right.svg\" alt=\"\" />\n </div>\n </div> -->\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Autosize This Column</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Autosize All Columns</span>\n </div>\n </div>\n <div\n class=\"right_click_item\"\n [ngClass]=\"{ disabled_option: !groupByRequired }\"\n >\n <div\n class=\"left_item\"\n (click)=\"groupByColumnAction(col, $index)\"\n >\n <img src=\"images/t-group-by-name.svg\" alt=\"\" />\n <span class=\"text\"\n >Group by {{ col.headerName }}</span\n >\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/t-choose-column.svg\" alt=\"\" />\n <span class=\"text\">Choose Columns</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"\" alt=\"\" />\n <span class=\"text\">Reset Columns</span>\n </div>\n </div>\n </div>\n </div>\n }\n </th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @if (groupedResult && groupedResult.length > 0) {\n @for (group of groupedResult; track group.key) {\n <tr (click)=\"toggleGroup(group)\">\n <td\n class=\"group-cell\"\n [attr.colspan]=\"\n colDefs.length +\n (checkBoxSelection ? 1 : 0) +\n (activeGroups.length > 0 ? 1 : 0)\n \"\n >\n <span class=\"group-toggle\">\n <img\n src=\"images/{{\n group.expanded\n ? 'chevron-down.svg'\n : 'chevron-right.svg'\n }}\"\n />\n {{ group.key }} ({{ group.children.length }})\n </span>\n </td>\n </tr>\n\n @if (group.expanded) {\n <!-- CASE 1: CHILDREN ARE MORE GROUPS -->\n @if (group.children[0]?.children) {\n @for (child of group.children; track child.key) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n colDefs: colDefs,\n checkBoxSelection: checkBoxSelection,\n activeGroups: activeGroups,\n level: 1,\n }\"\n ></ng-container>\n }\n }\n\n <!-- CASE 2: CHILDREN ARE RAW ROWS -->\n @if (!group.children[0]?.children) {\n @for (row of group.children; track row.rowId) {\n <tr [ngClass]=\"row | addClass: tableOptions\">\n <!-- Checkbox column if any -->\n @if (checkBoxSelection) {\n <td>\n <span class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"row.isSelected\"\n /></span>\n </td>\n }\n @if (activeGroups.length > 0) {\n <td class=\"group-placeholder\"></td>\n }\n\n <!-- Render columns -->\n @for (col of colDefs; track col.colId) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col?.addClass ? col.addClass(row) : '',\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n >\n <!-- {{ row[col.fieldName] }} -->\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(row, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(row, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"row\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"row[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </td>\n }\n </tr>\n }\n }\n }\n }\n } @else {\n @for (data of rowData; track data.rowId) {\n <tr\n [ngClass]=\"data | addClass: tableOptions\"\n (dragover)=\"allowRowDrop($event)\"\n (drop)=\"dropRow(data)\"\n (click)=\"onRowClick(data)\"\n >\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <td style=\"min-width: 50px\">\n @if (checkboxSelectionType == \"multiple\") {\n <span class=\"checkbox_container\"\n ><input\n type=\"checkbox\"\n class=\"pointer custom_check_box\"\n name=\"\"\n id=\"{{ data.rowId }}\"\n [disabled]=\"data.isLocked\"\n [checked]=\"data.isSelected || data.isLocked\"\n (change)=\"onRowCheckboxSelection($event)\"\n /></span>\n } @else {\n <span class=\"radio_option\">\n <input\n type=\"radio\"\n name=\"\"\n id=\"{{ data.rowId }}\"\n [checked]=\"data?.isSelected\"\n (change)=\"onRowCheckboxSelection($event)\"\n />\n <label [for]=\"data.rowId\"></label>\n </span>\n }\n </td>\n }\n @for (col of colDefs; track col.colId) {\n @if (col.active) {\n <td (click)=\"onCellClick(data, col)\"\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col?.addClass ? col.addClass(data) : '',\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n class=\"table_cell\"\n >\n <div class=\"col_wrapper\">\n @if (\n rowGripFieldName &&\n rowGripFieldName === col?.fieldName\n ) {\n <div\n [draggable]=\"true\"\n (dragstart)=\"dragRow($event, data)\"\n class=\"gripper\"\n >\n <img src=\"images/gripper.svg\" />\n </div>\n }\n\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(data, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(data, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"data\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"data[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </div>\n <!-- Commented for later use -->\n <!-- <div class=\"tool_tip\">\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\n </div> -->\n </td>\n }\n }\n </tr>\n }\n }\n </tbody>\n\n <ng-template\n #groupTemplate\n let-node\n let-colDefs=\"colDefs\"\n let-checkBoxSelection=\"checkBoxSelection\"\n let-activeGroups=\"activeGroups\"\n let-level=\"level\"\n >\n <!-- GROUP HEADER -->\n <tr (click)=\"toggleGroup(node)\">\n <td\n [attr.colspan]=\"\n colDefs.length +\n (checkBoxSelection ? 1 : 0) +\n (activeGroups.length > 0 ? 1 : 0)\n \"\n [style.paddingLeft.px]=\"level * 20\"\n class=\"group-cell\"\n >\n <span class=\"group-toggle\">\n <img\n src=\"images/{{\n node.expanded ? 'chevron-down.svg' : 'chevron-right.svg'\n }}\"\n />\n {{ node.key }} ({{ node.children.length }})\n </span>\n </td>\n </tr>\n\n <!-- CHILDREN -->\n @if (node.expanded) {\n <!-- CASE: more groups -->\n @if (node.children[0]?.children) {\n @for (child of node.children; track child.key) {\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: child,\n colDefs: colDefs,\n checkBoxSelection: checkBoxSelection,\n activeGroups: activeGroups,\n level: level + 1,\n }\"\n >\n </ng-container>\n }\n }\n\n <!-- CASE: final rows -->\n @if (!node.children[0]?.children) {\n @for (row of node.children; track row.rowId) {\n <tr [ngClass]=\"row | addClass: tableOptions\">\n <!-- Checkbox column if any -->\n @if (checkBoxSelection) {\n <td>\n <span class=\"checkbox_container\">\n <input\n type=\"checkbox custom_check_box\"\n [checked]=\"row.isSelected\"\n /></span>\n </td>\n }\n @if (activeGroups.length > 0) {\n <td class=\"group-placeholder\"></td>\n }\n\n <!-- Render columns -->\n @for (col of colDefs; track col.colId) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : '',\n ]\"\n >\n <!-- {{ row[col.fieldName] }} -->\n @if (!col?.cellRenderer) {\n <div class=\"cell-value ellipsis\">\n <div\n class=\"more_data_wrapper\"\n [ngClass]=\"{ ellipsis: !col.wrapText }\"\n >\n {{ parseColValue(row, col) }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\">\n {{ parseColValue(row, col) }}</span\n >\n </div>\n </div>\n </div>\n } @else {\n <div\n [rowParam]=\"row\"\n [col]=\"col\"\n [api]=\"tableOptions\"\n [currentValue]=\"row[col.fieldName]\"\n appRendererParser\n ></div>\n }\n </td>\n }\n </tr>\n }\n }\n }\n </ng-template>\n </table>\n\n @if (\n (!rowData || rowData.length === 0) &&\n (!groupedResult || groupedResult.length === 0)\n ) {\n <div class=\"empty_overlay\">\n <div class=\"empty_content\">\n @if (tableOptions?.noDataTemplate) {\n <ng-container\n *ngTemplateOutlet=\"tableOptions.noDataTemplate\"\n ></ng-container>\n } @else {\n <span>No Data To Show</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n <!-- Table Wrapper Ends-->\n @if (paginationRequired) {\n <div class=\"pagination_main\">\n <div class=\"entries_details\">\n <span>Showing</span>\n <div class=\"pagination_select\">\n <div\n class=\"select_dropdown pointer\"\n (click)=\"showPageSizeList = !showPageSizeList\"\n >\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\n <span class=\"chevron_img\">\n <img src=\"images/chevron-down.svg\" class=\"pointer\" />\n </span>\n </div>\n @if (showPageSizeList) {\n <div\n class=\"select_option\"\n appOutsideClick\n (clickOutside)=\"onClickOutside()\"\n >\n @for (option of pageSizeList; track $index) {\n <span\n class=\"pointer\"\n (click)=\"onPageSizeChanged(option); onClickOutside()\"\n >{{ option }}</span\n >\n }\n </div>\n }\n </div>\n <span\n >Rows |\n {{ totalRecords > 0 ? convertToNumber(recordsToShow.min) + 1 : 0 }} -\n {{\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\n }}\n of\n {{ totalRecords }} Entries</span\n >\n </div>\n <div class=\"pagination_form\">\n <!-- <span>Page</span> -->\n\n <button class=\"outlined_btn first_btn\" type=\"button\" (click)=\"onBtFirstClick()\" [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\">\n <span> <img src=\"images/chevrons-left.svg\" alt=\"\" /> </span>\n </button>\n <button\n class=\"outlined_btn prev_btn\"\n [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\"\n type=\"button\"\n (click)=\"onBtPrevClick()\"\n >\n <span> <img src=\"images/chevron-left.svg\" alt=\"\" /> </span>\n </button>\n <div>\n <input\n class=\"input_style\"\n type=\"number\"\n [(ngModel)]=\"pageDetails.currentPage\"\n (change)=\"goToSelectedPage($event)\"\n name=\"\"\n id=\"\"\n />\n </div>\n <button\n class=\"outlined_btn next_btn\"\n type=\"button\"\n [ngClass]=\"pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\"\n (click)=\"onBtNextClick()\"\n >\n <span> <img src=\"images/chevron-right.svg\" alt=\"\" /> </span>\n </button>\n <!-- <span>of {{ pageDetails.totalPages }}</span> -->\n\n <button class=\"outlined_btn last_btn\" type=\"button\" (click)=\"onBtLastClick()\" \n [ngClass]=\"pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\">\n <span> <img src=\"images/chevrons-right.svg\" alt=\"\" /> </span>\n </button>\n </div>\n </div>\n }\n <!-- Pagination Ends -->\n</div>\n\n<!-- cell right click code start here -->\n<div class=\"dropdown_wrapper d-none\">\n <div class=\"right_click_dropdown\">\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/scissors.svg\" />\n <span class=\"text\">Cut</span>\n </div>\n\n <span class=\"right_item\">Ctrl+X</span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy</span>\n </div>\n\n <span class=\"right_item\">Ctrl+C</span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy with Headers</span>\n </div>\n <span class=\"right_item\"></span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/copy.svg\" alt=\"\" />\n <span class=\"text\">Copy with Group Headers</span>\n </div>\n <span class=\"right_item\"></span>\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/clipboard.svg\" alt=\"\" />\n <span class=\"text\">Paste</span>\n </div>\n\n <span class=\"right_item\">Ctrl+V</span>\n </div>\n\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <img src=\"images/bar-chart.svg\" alt=\"\" />\n <span class=\"text\">Chart</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/download.svg\" alt=\"\" />\n <span class=\"text\">Export</span>\n </div>\n\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Chart section Start Here -->\n <div class=\"second_dropdown\">\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <span class=\"text\">Column</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Bar</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Pie</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Line</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Area</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">XY(Scatter)</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Polar</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Stastical</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Hierarchical</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Specialized</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Funnel</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Combination</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Export Section start Here -->\n <div class=\"export_section d-none\">\n <div class=\"right_click_item active\">\n <div class=\"left_item\">\n <img src=\"images/file.svg\" alt=\"\" />\n <span class=\"text\">CSV Report</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <img src=\"images/file.svg\" alt=\"\" />\n <span class=\"text\">Excel Report</span>\n </div>\n <img src=\"images/chevron-right.svg\" alt=\"\" />\n </div>\n </div>\n\n <!-- Column Group Section Start Here -->\n <div class=\"third_dropdown\">\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Grouped</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">Stacked</span>\n </div>\n </div>\n <div class=\"right_click_item\">\n <div class=\"left_item\">\n <span class=\"text\">100% Stacked</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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}.pointer,.cursor-pointer{cursor:pointer}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.tableArea{width:100%;height:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;position:relative}.tableArea.big .table_wrapper table thead tr,.tableArea.big .table_wrapper table tbody tr{height:calc(4.6666666667rem / var(--scale))}.tableArea .table_wrapper{position:relative;overflow:auto;height:100%;min-height:calc(16.6666666667rem / var(--scale));max-height:calc(80rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper.tbody_height{height:calc(100% - 3.5rem / var(--scale))}.tableArea .table_wrapper table{border-collapse:separate;border-spacing:0;width:100%;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper table td,.tableArea .table_wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);min-width:calc(12.5rem / var(--scale));max-width:calc(80rem / var(--scale));text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .table_wrapper table td.pinned_column,.tableArea .table_wrapper table th.pinned_column{min-width:calc(11.6666666667rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value,.tableArea .table_wrapper table th .cell-value{line-height:calc(1.5rem / var(--scale))!important}.tableArea .table_wrapper table td .cell-value.ellipsis,.tableArea .table_wrapper table td .cell-value .ellipsis,.tableArea .table_wrapper table th .cell-value.ellipsis,.tableArea .table_wrapper table th .cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.tableArea .table_wrapper table td .cell-value.ellipsis:hover .see_more_data,.tableArea .table_wrapper table th .cell-value.ellipsis:hover .see_more_data{display:flex}.tableArea .table_wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));color:var(--neutral-500)}.tableArea .table_wrapper table thead tr .headerName{text-wrap:nowrap;padding-left:0;cursor:pointer;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500);text-transform:uppercase}.tableArea .table_wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper table thead th:nth-last-child(2) .second_dropdown,.tableArea .table_wrapper table thead th:nth-last-child(3) .second_dropdown{right:unset;left:calc(-20.25rem / var(--scale))}.tableArea .table_wrapper table thead th:last-child .th_wraper{border:0}.tableArea .table_wrapper table thead th:hover .none{display:block}.tableArea .table_wrapper table thead th:hover .up,.tableArea .table_wrapper table thead th:hover .down{display:none}.tableArea .table_wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));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;background-color:var(--neutral-50)}.tableArea .table_wrapper table tbody tr.outline{border:calc(.0833333333rem / var(--scale)) solid var(--blue-700)}.tableArea .table_wrapper table tbody tr:hover,.tableArea .table_wrapper table tbody tr:hover td{background-color:var(--blue-100)!important}.tableArea .table_wrapper table tbody tr:last-child:not(:first-child) ::ng-deep .see_more_data{top:calc(-3.3333333333rem / var(--scale))}.tableArea .table_wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale))}.tableArea .table_wrapper table tbody tr td:hover{background-color:var(--blue-100)!important}.tableArea .table_wrapper table tbody tr td.selected{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action{cursor:pointer}.tableArea .table_wrapper table tbody tr td.action:hover{border:calc(.0833333333rem / var(--scale)) solid var(--blue-600)}.tableArea .table_wrapper table tbody tr td.action:hover span{color:var(--blue-700)}.tableArea .table_wrapper table tbody tr td.action span{text-decoration:underline}.tableArea .table_wrapper table tbody tr td .gripper{cursor:grab}.tableArea .table_wrapper table tbody tr td .col_wrapper{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale))}.th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap}.th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));transition:opacity .5s ease;cursor:grab}.th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters{position:relative;display:inline-block;cursor:pointer}.th_wraper .filter_three_dot_wrapper .filters:hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));position:absolute;top:0;left:0;width:calc(18.8333333333rem / var(--scale));background:var(--neutral-50);padding:calc(1rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;z-index:99;display:flex;flex-direction:column;justify-content:center;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper lib-common-input{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .logic-row{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(3.3333333333rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details{width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .set_option_details .set_options{display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale));width:100%;max-height:calc(10.8333333333rem / var(--scale));overflow-y:auto}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn{display:flex;flex-direction:row;justify-content:end;align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:100%}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn{width:calc(5.5rem / var(--scale));height:calc(2.6666666667rem / var(--scale));min-width:auto;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;font-family:inherit;transition:all .2s ease;-webkit-user-select:none;user-select:none;background-color:var(--white);padding:calc(.3333333333rem / var(--scale)) calc(1.0833333333rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .filters .filter_wrapper .filter_btn .reset_btn:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--white)}.th_wraper .filter_three_dot_wrapper .filt_wrap{position:absolute;top:calc(1.6666666667rem / var(--scale));left:0}.th_wraper .filter_three_dot_wrapper .three-dots :hover{background:var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale))}.th_wraper .filter_three_dot_wrapper .resize-handle{color:var(--neutral-200);cursor:w-resize;white-space:nowrap;overflow:hidden;font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400}.th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.active_filters_container{display:flex;flex-direction:\"\";justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(1.3333333333rem / var(--scale));padding:calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-bottom:0}.active_filters_container .tag_wrapper{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));width:calc(100% - 10.8333333333rem / var(--scale));overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.active_filters_container .tag_wrapper .active_filter_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(2.1666666667rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .active_filter_label{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;max-width:calc(29.1666666667rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .filter_logic{font-size:var(--fs-12);line-height:calc(1.3333333333rem / var(--scale));font-weight:500;color:var(--neutral-400)}.active_filters_container .tag_wrapper .active_filter_tag .filter_value{padding-left:calc(.3333333333rem / var(--scale))}.active_filters_container .tag_wrapper .active_filter_tag .remove_filter_btn{border:0;background-color:transparent;cursor:pointer;min-width:auto;width:auto;height:auto}.active_filters_container .tag_wrapper .active_filter_tag .remove_filter_btn img{max-width:calc(1.3333333333rem / var(--scale))}.active_filters_container .clear_all{font-size:var(--fs-16);line-height:calc(1.5rem / var(--scale));font-weight:500;color:var(--blue-600);cursor:pointer}.pinned_column:has(.cell-value:hover),.pinned_column:has(.tag_wrapper:hover),tr:has(.pinned_column .cell-value:hover) .pinned_column,tr:has(.pinned_column .tag_wrapper:hover) .pinned_column{z-index:13!important}.pagination_main{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;height:calc(4rem / var(--scale));padding:calc(.6666666667rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600}.pagination_main .entries_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select{position:relative}.pagination_main .entries_details .pagination_select .select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img{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}.pagination_main .entries_details .pagination_select .select_dropdown .chevron_img img{width:calc(1.3333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .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(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:10}.pagination_main .entries_details .pagination_select .select_option span{width:calc(4.0833333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;padding:calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale))}.pagination_main .entries_details .pagination_select .select_option span:hover{background-color:var(--blue-100)}.pagination_main .pagination_form{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.8333333333rem / var(--scale))}.pagination_main .pagination_form .prev_btn,.pagination_main .pagination_form .next_btn,.pagination_main .pagination_form .first_btn,.pagination_main .pagination_form .last_btn{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:0;padding:0;min-width:calc(2.6666666667rem / var(--scale));width:calc(2.6666666667rem / var(--scale));height:calc(2.6666666667rem / var(--scale))}.pagination_main .pagination_form .outlined_btn{background:transparent;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-500);cursor:pointer}.pagination_main .pagination_form .outlined_btn.disable_btn{opacity:.4;pointer-events:none;background-color:var(--neutral-200)}.pagination_main .pagination_form .outlined_btn img{max-width:calc(1.6666666667rem / var(--scale))}.pagination_main .pagination_form .input_style{width:calc(3.3333333333rem / var(--scale));height:calc(2.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));color:var(--neutral-600);text-align:center;outline:none;padding:0}.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-200);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)}.d-none{display:none}.group_panel{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));background:var(--neutral-50);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(0rem / var(--scale));border-bottom:0;height:calc(3.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.group_panel img.divider:last-child{display:none}.group_panel .group_tag{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(2.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;cursor:grab}.group_panel .group_tag .remove_tag{border:0;padding:0;cursor:pointer}.group_panel .group_placeholder{color:var(--neutral-500)}.group_panel img{max-width:calc(1.3333333333rem / var(--scale))}.group-toggle{display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-600);cursor:pointer}.tableArea:has(.group_panel) tr .group-cell:hover img{background-color:var(--blue-100);border-radius:calc(.3333333333rem / var(--scale))}.active_group{width:calc(8.3333333333rem / var(--scale))}.dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;position:relative;width:calc(26.6666666667rem / var(--scale));right:0}.dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.dropdown_wrapper .right_click_item:hover,.dropdown_wrapper .right_click_item.active{background-color:var(--blue-100)}.dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.dropdown_wrapper .right_click_item .right_chevron{stroke:var(--neutral-400)}.second_dropdown{position:absolute;right:calc(-20.25rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.third_dropdown{position:absolute;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));right:calc(-40.1666666667rem / var(--scale));top:calc(-.5833333333rem / var(--scale));width:calc(20.25rem / var(--scale));height:calc(18.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.export_section{position:absolute;right:calc(-20.0833333333rem / var(--scale));top:calc(20.0833333333rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(13.3333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.table_wrapper.no-horizontal-scroll{overflow-x:hidden!important}.table_inner_wrapper{position:relative;min-height:100%}.empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.empty_content{max-width:100%;text-align:center}.setting_options{position:absolute;background:var(--white);z-index:10;right:0;top:calc(3.4166666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.5rem / var(--scale)) calc(-.1666666667rem / var(--scale)) var(--box-shadow);width:calc(20.8333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale))}.setting_options .column_header{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;height:calc(2.5rem / var(--scale));color:var(--neutral-600)}.setting_options .item_container{max-height:calc(16.6666666667rem / var(--scale));overflow:auto;display:flex;flex-direction:column;justify-content:start;align-items:start;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));margin-top:calc(.6666666667rem / var(--scale))}.setting_options .item_container .column_item{color:var(--neutral-600);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;height:calc(1.6666666667rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}\n"] }]
2467
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { pinMenu: [{
2468
+ type: ViewChild,
2469
+ args: ['pinMenu']
2470
+ }], colActionMenu: [{
2471
+ type: ViewChild,
2472
+ args: ['colActionMenu']
2473
+ }], table: [{
2474
+ type: ViewChild,
2475
+ args: ['table']
2476
+ }], tableOptions: [{
2227
2477
  type: Input
2228
2478
  }], totalRecords: [{
2229
2479
  type: Input
@@ -2245,6 +2495,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2245
2495
  type: Input
2246
2496
  }], threeDotsMenuRequired: [{
2247
2497
  type: Input
2498
+ }], settingsRequired: [{
2499
+ type: Input
2500
+ }], settingsClicked: [{
2501
+ type: Input
2502
+ }], resetPage: [{
2503
+ type: Input
2504
+ }], rowId: [{
2505
+ type: Input
2248
2506
  }], height: [{
2249
2507
  type: Input
2250
2508
  }], groupByRequired: [{
@@ -2257,16 +2515,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2257
2515
  type: Output
2258
2516
  }], filter: [{
2259
2517
  type: Output
2518
+ }], onHideSettings: [{
2519
+ type: Output
2260
2520
  }], pageSizeList: [{
2261
2521
  type: Input
2522
+ }], groupByField: [{
2523
+ type: Input
2262
2524
  }], appliedFilters: [{
2263
2525
  type: Input
2526
+ }], rowGripFieldName: [{
2527
+ type: Input
2528
+ }], pageNumber: [{
2529
+ type: Input
2530
+ }], pageSize: [{
2531
+ type: Input
2264
2532
  }], appliedFiltersEvent: [{
2265
2533
  type: Output
2266
2534
  }], activeGroupsEvent: [{
2267
2535
  type: Output
2268
2536
  }], dynamicGroupingFiltering: [{
2269
2537
  type: Input
2538
+ }], onRowClicked: [{
2539
+ type: Output
2540
+ }], onCellClicked: [{
2541
+ type: Output
2270
2542
  }] } });
2271
2543
 
2272
2544
  class CommonRendererComponent {
@@ -2276,9 +2548,16 @@ class CommonRendererComponent {
2276
2548
  // wrapper to access static signal easily
2277
2549
  activeRowId = CommonRendererComponent._activeRowId;
2278
2550
  activeTagId = CommonRendererComponent._activeTagId;
2551
+ clickTimer = null;
2552
+ clickDelay = 250;
2279
2553
  maxVisible = 2;
2554
+ data;
2555
+ paramsVal;
2556
+ tagClasses;
2280
2557
  cellInit(params, data) {
2281
2558
  this.params = params;
2559
+ this.data = data;
2560
+ this.paramsVal = this.parseColValue(params.data, params.col);
2282
2561
  }
2283
2562
  /**
2284
2563
  * @description Returns the renderer type defined in cellRendererParams.
@@ -2345,6 +2624,7 @@ class CommonRendererComponent {
2345
2624
  */
2346
2625
  onToggle(event) {
2347
2626
  this.emit('onToggle', {
2627
+ params: this.params,
2348
2628
  row: this.params.data,
2349
2629
  value: event.target.checked,
2350
2630
  });
@@ -2375,6 +2655,31 @@ class CommonRendererComponent {
2375
2655
  action,
2376
2656
  });
2377
2657
  }
2658
+ linkSingleClick() {
2659
+ if (this.clickTimer) {
2660
+ clearTimeout(this.clickTimer);
2661
+ this.clickTimer = null;
2662
+ }
2663
+ this.clickTimer = setTimeout(() => {
2664
+ this.emit('onLinkClick', {
2665
+ params: this.params,
2666
+ row: this.params.data,
2667
+ event: 'singleClick',
2668
+ });
2669
+ this.clickTimer = null;
2670
+ }, this.clickDelay);
2671
+ }
2672
+ linkDoubleClick() {
2673
+ if (this.clickTimer) {
2674
+ clearTimeout(this.clickTimer);
2675
+ this.clickTimer = null;
2676
+ }
2677
+ this.emit('onLinkClick', {
2678
+ params: this.params,
2679
+ row: this.params.data,
2680
+ event: 'doubleClick',
2681
+ });
2682
+ }
2378
2683
  /**
2379
2684
  * @description Closes the action menu when clicking outside the component.
2380
2685
  * @author Anand Pandey
@@ -2390,26 +2695,7 @@ class CommonRendererComponent {
2390
2695
  * @returns {string[]}
2391
2696
  */
2392
2697
  get allTags() {
2393
- const value = this.value;
2394
- if (!value)
2395
- return [];
2396
- if (Array.isArray(value)) {
2397
- return value.map((val) => {
2398
- if (typeof val === 'object') {
2399
- return {
2400
- tagValue: val[this.params.cellParams?.tagKey],
2401
- class: val['class'] || '',
2402
- };
2403
- }
2404
- else {
2405
- return { tagValue: String(val).trim(), class: '' };
2406
- }
2407
- });
2408
- }
2409
- else if (typeof value === 'string') {
2410
- return [{ tagValue: String(value).trim(), class: '' }];
2411
- }
2412
- return [{ tagValue: String(value).trim(), class: '' }];
2698
+ return this.transformValue('tagKey', 'tagValue');
2413
2699
  }
2414
2700
  /**
2415
2701
  * @description Returns the subset of tags that should be visibly displayed in the UI based on maxVisible count.
@@ -2475,14 +2761,1112 @@ class CommonRendererComponent {
2475
2761
  }
2476
2762
  this.activeTagId.set(null);
2477
2763
  }
2478
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2479
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: CommonRendererComponent, isStandalone: true, selector: "lib-common-renderer", ngImport: i0, template: "<!-- Switch -->\r\n@if(type===\"switch\"){\r\n<div class=\"table_switch_wrapper\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"onToggle($event)\" />\r\n <span class=\"slider\"></span>\r\n </label>\r\n</div>\r\n}\r\n\r\n<!-- Action Menu -->\r\n\r\n@if(type==='action-menu'){\r\n<div class=\"action-menu\">\r\n <button class=\"action_dots\" (click)=\"onThreeDotsMenuClick()\" #tagTrigger>\r\n <img src=\"images/more-{{ actionSubType || 'vertical' }}.svg\" />\r\n </button>\r\n\r\n @if(openActionMenu){\r\n <div\r\n class=\"menu\"\r\n appOutsideClick\r\n (clickOutside)=\"clickOutside($event)\"\r\n adaptivePosition\r\n [trigger]=\"tagTrigger\"\r\n [isAction]=\"true\"\r\n [matchWidth]=\"false\"\r\n >\r\n <div class=\"item_wrapper\" id=\"table_scroll\">\r\n @for(act of actions; track $index){\r\n <div\r\n class=\"{{ 'menu_item' + ' ' + act.class }}\"\r\n [ngClass]=\"{ disabled_item: params?.data?.disabledActions?.includes(act.label) || act.disabled }\"\r\n (click)=\"onActionClick(act)\"\r\n >\r\n <img src=\"images/{{ act.icon }}.svg\" />\r\n <span class=\"ellipsis\">{{ act.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n\r\n<!-- Tags -->\r\n\r\n@if(type === 'tag'){\r\n<div\r\n class=\"tag_wrapper\"\r\n (mouseover)=\"toggleDropdown($event)\"\r\n (mouseout)=\"closeDropdown($event)\"\r\n #tagTrigger\r\n>\r\n @for(tag of visibleTags; track $index){\r\n <span\r\n class=\"{{ 'tag_chip' + ' ' + tag.class }}\"\r\n [ngClass]=\"tag.tagValue | addClass : params.cellParams\"\r\n >\r\n <!-- <span class=\"circle\"></span>\r\n <img src=\"images/home.svg\" alt=\"\" class=\"icon\" /> -->\r\n {{ tag.tagValue }}</span\r\n >\r\n } @if(hiddenCount > 0){\r\n <div class=\"hidden_list\">\r\n <span class=\"tag_more\">+{{ hiddenCount }}</span>\r\n @if(openDropdown){\r\n <div\r\n class=\"tag_dropdown\"\r\n id=\"table_scroll\"\r\n adaptivePosition\r\n [trigger]=\"tagTrigger\"\r\n [matchWidth]=\"false\"\r\n >\r\n @for(tag of allTags; track $index){\r\n <div class=\"{{ 'dropdown_item' + ' ' + tag.class }}\">\r\n {{ tag.tagValue }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n</div>\r\n}\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.action-menu{position:relative;text-align:center}.action-menu .action_dots{background:transparent;border:none;cursor:pointer}.action-menu .action_dots img{max-width:calc(1.3333333333rem / var(--scale))}.action-menu .menu{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;width:max-content;min-width:calc(10rem / var(--scale));max-width:calc(16.6666666667rem / var(--scale));position:absolute;top:calc(.8333333333rem / var(--scale))}.action-menu .menu .item_wrapper{position:relative;max-height:calc(20rem / var(--scale));overflow-y:auto;margin:calc(.3333333333rem / var(--scale)) 0}.action-menu .menu .item_wrapper .menu_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer;position:relative;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.action-menu .menu .item_wrapper .menu_item.disabled_item{color:var(--neutral-300);pointer-events:none}.action-menu .menu .item_wrapper .menu_item.disabled_item img{opacity:.3}.action-menu .menu .item_wrapper .menu_item:hover{background-color:var(--blue-50)}.action-menu .menu .item_wrapper .menu_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tag_wrapper .hidden_list .tag_more,.tag_wrapper .tag_chip{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);background-color:var(--white);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper{position:relative;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:6px}.tag_wrapper .tag_chip{white-space:nowrap;display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip .circle{width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));border-radius:50%;background-color:var(--neutral-500)}.tag_wrapper .tag_chip .circle.bg_error{background-color:var(--red-700)}.tag_wrapper .tag_chip .circle.bg_pending{background-color:var(--yellow-700)}.tag_wrapper .tag_chip .circle.bg_active{background-color:var(--green-600)}.tag_wrapper .tag_chip .circle.bg_info{background-color:var(--blue-700)}.tag_wrapper .tag_chip .suffix{order:1}.tag_wrapper .tag_chip .icon{max-width:calc(1.3333333333rem / var(--scale));max-height:calc(1.3333333333rem / var(--scale))}.tag_wrapper .hidden_list{display:flex}.tag_wrapper .hidden_list .tag_more{cursor:pointer;background-color:var(--neutral-50)}.tag_wrapper .hidden_list .tag_dropdown{position:relative;top:100%;left:0;max-width:calc(15rem / var(--scale));min-width:calc(10rem / var(--scale));max-height:calc(18.3333333333rem / var(--scale));overflow:auto;overflow-x:hidden;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) var(--box-shadow);z-index:1;padding:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tag_wrapper .hidden_list .tag_dropdown .dropdown_item{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));width:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip.active,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.active{background-color:var(--green-100);border-color:var(--green-200);color:var(--green-700)}.tag_wrapper .tag_chip.pending,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.pending{background-color:var(--yellow-100);border-color:var(--yellow-300);color:var(--yellow-700)}.tag_wrapper .tag_chip.error,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.error{background-color:var(--red-100);border-color:var(--red-300);color:var(--red-700)}.tag_wrapper .tag_chip.info,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.info{background-color:var(--blue-100);border-color:var(--blue-300);color:var(--blue-700)}.tag_wrapper .tag_chip.disable,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.disable{background-color:var(--neutral-50);border-color:var(--neutral-300);color:var(--neutral-400);cursor:not-allowed}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep td:has(.action-menu:focus-within){z-index:15!important}\n"], dependencies: [{ kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
2764
+ /**
2765
+ * @description Returns normalized link values derived from the cell `value`.
2766
+ * Uses the configured `linkKey` from `cellParams` to extract display data
2767
+ * @author Anand Pandey
2768
+ * @returns {Array<{ linkValue: string; class: string }>} Normalized link values
2769
+ */
2770
+ get linkVal() {
2771
+ return this.parseColValue(this.params.data, this.params.col);
2772
+ }
2773
+ /**
2774
+ * @description Normalizes the component `value` into a consistent array structure.
2775
+ * @author Anand Pandey
2776
+ * @param {string} key Key in `cellParams` used to determine which field to read from object values
2777
+ * @param {string} valueProp Property name assigned to the normalized output value
2778
+ * @returns {Array<{ [key: string]: string; class: string }>} Array of normalized value objects
2779
+ */
2780
+ transformValue(key, valueProp) {
2781
+ const value = this.value;
2782
+ if (!value)
2783
+ return [];
2784
+ if (Array.isArray(value)) {
2785
+ return value.map((val) => {
2786
+ if (typeof val === 'object') {
2787
+ return {
2788
+ [valueProp]: val[this.params.cellParams?.[key]],
2789
+ class: val['class'] || '',
2790
+ };
2791
+ }
2792
+ else {
2793
+ return { [valueProp]: String(val).trim(), class: '' };
2794
+ }
2795
+ });
2796
+ }
2797
+ else if (!Array.isArray(value) && typeof value === 'object') {
2798
+ return [
2799
+ {
2800
+ [valueProp]: value[this.params.cellParams?.[key]],
2801
+ class: value['class'] || '',
2802
+ },
2803
+ ];
2804
+ }
2805
+ return [{ [valueProp]: String(value).trim(), class: '' }];
2806
+ }
2807
+ parseColValue(row, col) {
2808
+ if (!col?.fieldName?.includes('.')) {
2809
+ return row[col.fieldName] || 'N/A';
2810
+ }
2811
+ else {
2812
+ const keys = col.fieldName
2813
+ .replace(/\[(\d+)\]/g, '.$1')
2814
+ .split('.')
2815
+ .filter(Boolean);
2816
+ let val = row;
2817
+ for (const key of keys) {
2818
+ if (Array.isArray(val)) {
2819
+ val = val.map((v) => v?.[key]).filter(Boolean);
2820
+ }
2821
+ else {
2822
+ val = val?.[key];
2823
+ }
2824
+ if (val === undefined || val === null) {
2825
+ return 'N/A';
2826
+ }
2827
+ }
2828
+ return val || 'N/A';
2829
+ }
2830
+ }
2831
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2832
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CommonRendererComponent, isStandalone: true, selector: "lib-common-renderer", ngImport: i0, template: "<!-- Switch -->\n@if (type === \"switch\") {\n <div class=\"table_switch_wrapper\">\n <label class=\"switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"onToggle($event)\" />\n <span class=\"slider\"></span>\n </label>\n </div>\n}\n\n<!-- Action Menu -->\n\n@if (type === \"action-menu\") {\n <div class=\"action-menu\">\n <button class=\"action_dots\" (click)=\"onThreeDotsMenuClick()\" #tagTrigger>\n <img src=\"images/more-{{ actionSubType || 'vertical' }}.svg\" />\n </button>\n\n @if (openActionMenu) {\n <div\n class=\"menu\"\n appOutsideClick\n (clickOutside)=\"clickOutside($event)\"\n adaptivePosition\n [trigger]=\"tagTrigger\"\n [isAction]=\"true\"\n [matchWidth]=\"false\"\n >\n <div class=\"item_wrapper\" id=\"table_scroll\">\n @for (act of actions; track $index) {\n <div\n class=\"{{ 'menu_item' + ' ' + act.class }}\"\n [ngClass]=\"{\n disabled_item:\n params?.data?.disabledActions?.includes(act.label) ||\n act.disabled,\n }\"\n (click)=\"onActionClick(act)\"\n >\n @if (act.icon) {\n <img src=\"images/{{ act.icon }}.svg\" />\n } @else {\n <img src=\"{{ act?.image }}\" />\n }\n\n <span class=\"ellipsis\">{{ act.label }}</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Tags -->\n\n@if (type === \"tag\") {\n <div\n class=\"tag_wrapper\"\n (mouseover)=\"toggleDropdown($event)\"\n (mouseout)=\"closeDropdown($event)\"\n #tagTrigger\n >\n @for (tag of visibleTags; track $index) {\n <div\n class=\"{{ 'tag_chip' + ' ' + tag.class }}\"\n [ngClass]=\"paramsVal | addClass: params.cellParams\"\n >\n <!-- <span class=\"circle\"></span>\n <img src=\"images/home.svg\" alt=\"\" class=\"icon\" /> -->\n\n <div class=\"more_data_section\">\n <!-- <span class=\"textTruncate\"> {{ tag.tagValue }}</span> -->\n <div class=\"cell-value ellipsis\">\n <div class=\"more_data_wrapper textTruncate\">\n {{ tag.tagValue }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\"> {{ tag.tagValue }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n @if (hiddenCount > 0) {\n <div class=\"hidden_list\">\n <span class=\"tag_more\">+{{ hiddenCount }}</span>\n @if (openDropdown) {\n <div\n class=\"tag_dropdown\"\n id=\"table_scroll\"\n adaptivePosition\n [trigger]=\"tagTrigger\"\n [matchWidth]=\"false\"\n >\n @for (tag of allTags; track $index) {\n <div\n class=\"{{ 'dropdown_item' + ' ' + tag.class }}\"\n >\n {{ tag.tagValue }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n\n@if (type === \"link\") {\n <div class=\"more_data_section cell-value ellipsis\">\n <!-- @for (link of linkVal; track $index) { -->\n <div class=\"more_data_wrapper textTruncate\">\n <span\n class=\"grid-link\"\n (click)=\"linkSingleClick()\"\n (dblclick)=\"linkDoubleClick()\"\n >\n {{ linkVal }}\n </span>\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\"> {{ linkVal }}</span>\n </div>\n </div>\n <!-- } -->\n </div>\n}\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.action-menu{position:relative;text-align:center}.action-menu .action_dots{background:transparent;border:none;cursor:pointer}.action-menu .action_dots img{max-width:calc(1.3333333333rem / var(--scale))}.action-menu .menu{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;width:max-content;min-width:calc(10rem / var(--scale));max-width:calc(16.6666666667rem / var(--scale));position:absolute;top:calc(.8333333333rem / var(--scale))}.action-menu .menu .item_wrapper{position:relative;max-height:calc(20rem / var(--scale));overflow-y:auto;margin:calc(.3333333333rem / var(--scale)) 0}.action-menu .menu .item_wrapper .menu_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer;position:relative;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.action-menu .menu .item_wrapper .menu_item.disabled_item{color:var(--neutral-300);pointer-events:none}.action-menu .menu .item_wrapper .menu_item.disabled_item img{opacity:.3}.action-menu .menu .item_wrapper .menu_item:hover{background-color:var(--blue-50)}.action-menu .menu .item_wrapper .menu_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tag_wrapper .hidden_list .tag_more,.tag_wrapper .tag_chip{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);background-color:var(--white);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper{position:relative;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:6px}.tag_wrapper .tag_chip{white-space:nowrap;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip .circle{width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));border-radius:50%;background-color:var(--neutral-500)}.tag_wrapper .tag_chip .circle.bg_error{background-color:var(--red-700)}.tag_wrapper .tag_chip .circle.bg_pending{background-color:var(--yellow-700)}.tag_wrapper .tag_chip .circle.bg_active{background-color:var(--green-600)}.tag_wrapper .tag_chip .circle.bg_info{background-color:var(--blue-700)}.tag_wrapper .tag_chip .suffix{order:1}.tag_wrapper .tag_chip .icon{max-width:calc(1.3333333333rem / var(--scale));max-height:calc(1.3333333333rem / var(--scale))}.tag_wrapper .hidden_list{display:flex}.tag_wrapper .hidden_list .tag_more{cursor:pointer;background-color:var(--neutral-50)}.tag_wrapper .hidden_list .tag_dropdown{position:relative;top:100%;right:0;max-width:calc(15rem / var(--scale));min-width:calc(10rem / var(--scale));max-height:calc(18.3333333333rem / var(--scale));overflow:auto;overflow-x:hidden;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) var(--box-shadow);z-index:1;padding:calc(.6666666667rem / var(--scale));display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tag_wrapper .hidden_list .tag_dropdown .dropdown_item{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));width:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip.active,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.active{background-color:var(--green-100);border-color:var(--green-200);color:var(--green-700)}.tag_wrapper .tag_chip.pending,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.pending{background-color:var(--yellow-100);border-color:var(--yellow-300);color:var(--yellow-700)}.tag_wrapper .tag_chip.error,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.error{background-color:var(--red-100);border-color:var(--red-300);color:var(--red-700)}.tag_wrapper .tag_chip.info,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.info{background-color:var(--blue-100);border-color:var(--blue-300);color:var(--blue-700)}.tag_wrapper .tag_chip.disable,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.disable{background-color:var(--neutral-50);border-color:var(--neutral-300);color:var(--neutral-400);cursor:not-allowed}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(16.6666666667rem / var(--scale))}::ng-deep td:has(.action-menu:focus-within){z-index:15!important}.cell-value{line-height:calc(1.5rem / var(--scale))!important}.cell-value.ellipsis,.cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.cell-value.ellipsis:hover .see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.grid-link{color:var(--blue-700);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none}.grid-link:hover{text-decoration:underline}.grid-link:active{opacity:.8}.grid-link:focus{outline:none;text-decoration:underline}\n"], dependencies: [{ kind: "directive", type: OutsideClickDirective, selector: "[appOutsideClick]", outputs: ["clickOutside"] }, { kind: "directive", type: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AddClassPipe, name: "addClass" }] });
2480
2833
  }
2481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CommonRendererComponent, decorators: [{
2834
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonRendererComponent, decorators: [{
2482
2835
  type: Component,
2483
- args: [{ selector: 'lib-common-renderer', imports: [OutsideClickDirective, AdaptivePositionDirective, CommonModule, AddClassPipe], template: "<!-- Switch -->\r\n@if(type===\"switch\"){\r\n<div class=\"table_switch_wrapper\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"onToggle($event)\" />\r\n <span class=\"slider\"></span>\r\n </label>\r\n</div>\r\n}\r\n\r\n<!-- Action Menu -->\r\n\r\n@if(type==='action-menu'){\r\n<div class=\"action-menu\">\r\n <button class=\"action_dots\" (click)=\"onThreeDotsMenuClick()\" #tagTrigger>\r\n <img src=\"images/more-{{ actionSubType || 'vertical' }}.svg\" />\r\n </button>\r\n\r\n @if(openActionMenu){\r\n <div\r\n class=\"menu\"\r\n appOutsideClick\r\n (clickOutside)=\"clickOutside($event)\"\r\n adaptivePosition\r\n [trigger]=\"tagTrigger\"\r\n [isAction]=\"true\"\r\n [matchWidth]=\"false\"\r\n >\r\n <div class=\"item_wrapper\" id=\"table_scroll\">\r\n @for(act of actions; track $index){\r\n <div\r\n class=\"{{ 'menu_item' + ' ' + act.class }}\"\r\n [ngClass]=\"{ disabled_item: params?.data?.disabledActions?.includes(act.label) || act.disabled }\"\r\n (click)=\"onActionClick(act)\"\r\n >\r\n <img src=\"images/{{ act.icon }}.svg\" />\r\n <span class=\"ellipsis\">{{ act.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n\r\n<!-- Tags -->\r\n\r\n@if(type === 'tag'){\r\n<div\r\n class=\"tag_wrapper\"\r\n (mouseover)=\"toggleDropdown($event)\"\r\n (mouseout)=\"closeDropdown($event)\"\r\n #tagTrigger\r\n>\r\n @for(tag of visibleTags; track $index){\r\n <span\r\n class=\"{{ 'tag_chip' + ' ' + tag.class }}\"\r\n [ngClass]=\"tag.tagValue | addClass : params.cellParams\"\r\n >\r\n <!-- <span class=\"circle\"></span>\r\n <img src=\"images/home.svg\" alt=\"\" class=\"icon\" /> -->\r\n {{ tag.tagValue }}</span\r\n >\r\n } @if(hiddenCount > 0){\r\n <div class=\"hidden_list\">\r\n <span class=\"tag_more\">+{{ hiddenCount }}</span>\r\n @if(openDropdown){\r\n <div\r\n class=\"tag_dropdown\"\r\n id=\"table_scroll\"\r\n adaptivePosition\r\n [trigger]=\"tagTrigger\"\r\n [matchWidth]=\"false\"\r\n >\r\n @for(tag of allTags; track $index){\r\n <div class=\"{{ 'dropdown_item' + ' ' + tag.class }}\">\r\n {{ tag.tagValue }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n</div>\r\n}\r\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox][disabled],.checkbox_container input[type=checkbox]:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox][disabled]+span,.checkbox_container input[type=checkbox]:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox]{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox]:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox]:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox]:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox]:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox]:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{max-height:calc(23.6666666667rem / var(--scale));overflow:auto;list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.action-menu{position:relative;text-align:center}.action-menu .action_dots{background:transparent;border:none;cursor:pointer}.action-menu .action_dots img{max-width:calc(1.3333333333rem / var(--scale))}.action-menu .menu{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;width:max-content;min-width:calc(10rem / var(--scale));max-width:calc(16.6666666667rem / var(--scale));position:absolute;top:calc(.8333333333rem / var(--scale))}.action-menu .menu .item_wrapper{position:relative;max-height:calc(20rem / var(--scale));overflow-y:auto;margin:calc(.3333333333rem / var(--scale)) 0}.action-menu .menu .item_wrapper .menu_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer;position:relative;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.action-menu .menu .item_wrapper .menu_item.disabled_item{color:var(--neutral-300);pointer-events:none}.action-menu .menu .item_wrapper .menu_item.disabled_item img{opacity:.3}.action-menu .menu .item_wrapper .menu_item:hover{background-color:var(--blue-50)}.action-menu .menu .item_wrapper .menu_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tag_wrapper .hidden_list .tag_more,.tag_wrapper .tag_chip{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);background-color:var(--white);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper{position:relative;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:6px}.tag_wrapper .tag_chip{white-space:nowrap;display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip .circle{width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));border-radius:50%;background-color:var(--neutral-500)}.tag_wrapper .tag_chip .circle.bg_error{background-color:var(--red-700)}.tag_wrapper .tag_chip .circle.bg_pending{background-color:var(--yellow-700)}.tag_wrapper .tag_chip .circle.bg_active{background-color:var(--green-600)}.tag_wrapper .tag_chip .circle.bg_info{background-color:var(--blue-700)}.tag_wrapper .tag_chip .suffix{order:1}.tag_wrapper .tag_chip .icon{max-width:calc(1.3333333333rem / var(--scale));max-height:calc(1.3333333333rem / var(--scale))}.tag_wrapper .hidden_list{display:flex}.tag_wrapper .hidden_list .tag_more{cursor:pointer;background-color:var(--neutral-50)}.tag_wrapper .hidden_list .tag_dropdown{position:relative;top:100%;left:0;max-width:calc(15rem / var(--scale));min-width:calc(10rem / var(--scale));max-height:calc(18.3333333333rem / var(--scale));overflow:auto;overflow-x:hidden;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) var(--box-shadow);z-index:1;padding:calc(1.3333333333rem / var(--scale));display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tag_wrapper .hidden_list .tag_dropdown .dropdown_item{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));width:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip.active,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.active{background-color:var(--green-100);border-color:var(--green-200);color:var(--green-700)}.tag_wrapper .tag_chip.pending,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.pending{background-color:var(--yellow-100);border-color:var(--yellow-300);color:var(--yellow-700)}.tag_wrapper .tag_chip.error,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.error{background-color:var(--red-100);border-color:var(--red-300);color:var(--red-700)}.tag_wrapper .tag_chip.info,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.info{background-color:var(--blue-100);border-color:var(--blue-300);color:var(--blue-700)}.tag_wrapper .tag_chip.disable,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.disable{background-color:var(--neutral-50);border-color:var(--neutral-300);color:var(--neutral-400);cursor:not-allowed}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep td:has(.action-menu:focus-within){z-index:15!important}\n"] }]
2836
+ args: [{ selector: 'lib-common-renderer', imports: [
2837
+ OutsideClickDirective,
2838
+ AdaptivePositionDirective,
2839
+ CommonModule,
2840
+ AddClassPipe,
2841
+ ], template: "<!-- Switch -->\n@if (type === \"switch\") {\n <div class=\"table_switch_wrapper\">\n <label class=\"switch\">\n <input type=\"checkbox\" [checked]=\"value\" (change)=\"onToggle($event)\" />\n <span class=\"slider\"></span>\n </label>\n </div>\n}\n\n<!-- Action Menu -->\n\n@if (type === \"action-menu\") {\n <div class=\"action-menu\">\n <button class=\"action_dots\" (click)=\"onThreeDotsMenuClick()\" #tagTrigger>\n <img src=\"images/more-{{ actionSubType || 'vertical' }}.svg\" />\n </button>\n\n @if (openActionMenu) {\n <div\n class=\"menu\"\n appOutsideClick\n (clickOutside)=\"clickOutside($event)\"\n adaptivePosition\n [trigger]=\"tagTrigger\"\n [isAction]=\"true\"\n [matchWidth]=\"false\"\n >\n <div class=\"item_wrapper\" id=\"table_scroll\">\n @for (act of actions; track $index) {\n <div\n class=\"{{ 'menu_item' + ' ' + act.class }}\"\n [ngClass]=\"{\n disabled_item:\n params?.data?.disabledActions?.includes(act.label) ||\n act.disabled,\n }\"\n (click)=\"onActionClick(act)\"\n >\n @if (act.icon) {\n <img src=\"images/{{ act.icon }}.svg\" />\n } @else {\n <img src=\"{{ act?.image }}\" />\n }\n\n <span class=\"ellipsis\">{{ act.label }}</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Tags -->\n\n@if (type === \"tag\") {\n <div\n class=\"tag_wrapper\"\n (mouseover)=\"toggleDropdown($event)\"\n (mouseout)=\"closeDropdown($event)\"\n #tagTrigger\n >\n @for (tag of visibleTags; track $index) {\n <div\n class=\"{{ 'tag_chip' + ' ' + tag.class }}\"\n [ngClass]=\"paramsVal | addClass: params.cellParams\"\n >\n <!-- <span class=\"circle\"></span>\n <img src=\"images/home.svg\" alt=\"\" class=\"icon\" /> -->\n\n <div class=\"more_data_section\">\n <!-- <span class=\"textTruncate\"> {{ tag.tagValue }}</span> -->\n <div class=\"cell-value ellipsis\">\n <div class=\"more_data_wrapper textTruncate\">\n {{ tag.tagValue }}\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\"> {{ tag.tagValue }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n @if (hiddenCount > 0) {\n <div class=\"hidden_list\">\n <span class=\"tag_more\">+{{ hiddenCount }}</span>\n @if (openDropdown) {\n <div\n class=\"tag_dropdown\"\n id=\"table_scroll\"\n adaptivePosition\n [trigger]=\"tagTrigger\"\n [matchWidth]=\"false\"\n >\n @for (tag of allTags; track $index) {\n <div\n class=\"{{ 'dropdown_item' + ' ' + tag.class }}\"\n >\n {{ tag.tagValue }}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n\n@if (type === \"link\") {\n <div class=\"more_data_section cell-value ellipsis\">\n <!-- @for (link of linkVal; track $index) { -->\n <div class=\"more_data_wrapper textTruncate\">\n <span\n class=\"grid-link\"\n (click)=\"linkSingleClick()\"\n (dblclick)=\"linkDoubleClick()\"\n >\n {{ linkVal }}\n </span>\n </div>\n <div class=\"see_more_data\" id=\"table_scroll\">\n <div class=\"item\">\n <span class=\"desc\"> {{ linkVal }}</span>\n </div>\n </div>\n <!-- } -->\n </div>\n}\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.action-menu{position:relative;text-align:center}.action-menu .action_dots{background:transparent;border:none;cursor:pointer}.action-menu .action_dots img{max-width:calc(1.3333333333rem / var(--scale))}.action-menu .menu{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:99;width:max-content;min-width:calc(10rem / var(--scale));max-width:calc(16.6666666667rem / var(--scale));position:absolute;top:calc(.8333333333rem / var(--scale))}.action-menu .menu .item_wrapper{position:relative;max-height:calc(20rem / var(--scale));overflow-y:auto;margin:calc(.3333333333rem / var(--scale)) 0}.action-menu .menu .item_wrapper .menu_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));cursor:pointer;position:relative;font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.action-menu .menu .item_wrapper .menu_item.disabled_item{color:var(--neutral-300);pointer-events:none}.action-menu .menu .item_wrapper .menu_item.disabled_item img{opacity:.3}.action-menu .menu .item_wrapper .menu_item:hover{background-color:var(--blue-50)}.action-menu .menu .item_wrapper .menu_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tag_wrapper .hidden_list .tag_more,.tag_wrapper .tag_chip{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);background-color:var(--white);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper{position:relative;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:6px}.tag_wrapper .tag_chip{white-space:nowrap;display:flex;flex-direction:row;justify-content:start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip .circle{width:calc(.6666666667rem / var(--scale));height:calc(.6666666667rem / var(--scale));border-radius:50%;background-color:var(--neutral-500)}.tag_wrapper .tag_chip .circle.bg_error{background-color:var(--red-700)}.tag_wrapper .tag_chip .circle.bg_pending{background-color:var(--yellow-700)}.tag_wrapper .tag_chip .circle.bg_active{background-color:var(--green-600)}.tag_wrapper .tag_chip .circle.bg_info{background-color:var(--blue-700)}.tag_wrapper .tag_chip .suffix{order:1}.tag_wrapper .tag_chip .icon{max-width:calc(1.3333333333rem / var(--scale));max-height:calc(1.3333333333rem / var(--scale))}.tag_wrapper .hidden_list{display:flex}.tag_wrapper .hidden_list .tag_more{cursor:pointer;background-color:var(--neutral-50)}.tag_wrapper .hidden_list .tag_dropdown{position:relative;top:100%;right:0;max-width:calc(15rem / var(--scale));min-width:calc(10rem / var(--scale));max-height:calc(18.3333333333rem / var(--scale));overflow:auto;overflow-x:hidden;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) calc(.3333333333rem / var(--scale)) var(--box-shadow);z-index:1;padding:calc(.6666666667rem / var(--scale));display:flex;flex-direction:column;justify-content:\"\";align-items:\"\";flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tag_wrapper .hidden_list .tag_dropdown .dropdown_item{font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500);padding:calc(.25rem / var(--scale)) calc(.6666666667rem / var(--scale));width:auto;border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale))}.tag_wrapper .tag_chip.active,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.active{background-color:var(--green-100);border-color:var(--green-200);color:var(--green-700)}.tag_wrapper .tag_chip.pending,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.pending{background-color:var(--yellow-100);border-color:var(--yellow-300);color:var(--yellow-700)}.tag_wrapper .tag_chip.error,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.error{background-color:var(--red-100);border-color:var(--red-300);color:var(--red-700)}.tag_wrapper .tag_chip.info,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.info{background-color:var(--blue-100);border-color:var(--blue-300);color:var(--blue-700)}.tag_wrapper .tag_chip.disable,.tag_wrapper .hidden_list .tag_dropdown .dropdown_item.disable{background-color:var(--neutral-50);border-color:var(--neutral-300);color:var(--neutral-400);cursor:not-allowed}.ellipsis,.textTruncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(16.6666666667rem / var(--scale))}::ng-deep td:has(.action-menu:focus-within){z-index:15!important}.cell-value{line-height:calc(1.5rem / var(--scale))!important}.cell-value.ellipsis,.cell-value .ellipsis{max-width:-webkit-fill-available;width:inherit}.cell-value.ellipsis:hover .see_more_data{display:flex}:host::ng-deep .see_more_data{position:absolute;min-width:calc(11.6666666667rem / var(--scale));max-width:calc(26.4166666667rem / var(--scale));background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(.3333333333rem / var(--scale)) calc(.8333333333rem / var(--scale)) 0 var(--box-shadow);display:none;flex-direction:column;max-height:calc(20.8333333333rem / var(--scale));overflow-y:auto;z-index:1;left:0}:host::ng-deep .see_more_data .item{width:100%;height:\"\";min-height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:\"\";align-items:start;flex-wrap:nowrap;gap:0;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));color:var(--neutral-500);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}:host::ng-deep .see_more_data .item .desc{text-wrap:wrap;word-break:break-word}.grid-link{color:var(--blue-700);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none}.grid-link:hover{text-decoration:underline}.grid-link:active{opacity:.8}.grid-link:focus{outline:none;text-decoration:underline}\n"] }]
2484
2842
  }] });
2485
2843
 
2844
+ class CommonTreeTableComponent {
2845
+ renderer;
2846
+ zone;
2847
+ cd;
2848
+ tableAreaRef;
2849
+ pinMenu;
2850
+ data = [];
2851
+ columns = [{ field: 'name', header: 'Name' }];
2852
+ idField = 'id';
2853
+ labelField = 'name';
2854
+ childrenField = 'array';
2855
+ treeColumnField;
2856
+ indentPx = 18;
2857
+ showHeader = true;
2858
+ expandIcon = 'chevron-right.svg';
2859
+ collapseIcon = 'chevron-down.svg';
2860
+ iconBasePath = 'images';
2861
+ showCheckbox = false;
2862
+ showNodeIcon = true;
2863
+ noDataText = 'No data found';
2864
+ loadingText = 'Loading...';
2865
+ emitExpandAlways = true;
2866
+ // New sorting, filtering, and customization inputs
2867
+ sortingRequired = true;
2868
+ filterRequired = true;
2869
+ threeDotsMenuRequired = true;
2870
+ settingsRequired = false;
2871
+ settingsClicked = false;
2872
+ checkBoxSelection = false;
2873
+ checkboxSelectionType = 'multiple';
2874
+ isExpandable = (node) => {
2875
+ const children = node?.[this.childrenField];
2876
+ return Array.isArray(children) ? children.length > 0 : false;
2877
+ };
2878
+ rowOptionsResolver = () => ({});
2879
+ nodeIconResolver = () => null;
2880
+ linkResolver = () => null;
2881
+ nodeToggle = new EventEmitter();
2882
+ selectionChange = new EventEmitter();
2883
+ linkClick = new EventEmitter();
2884
+ onHideSettings = new EventEmitter();
2885
+ rows = [];
2886
+ // Sorting, filtering, and column management properties
2887
+ sortingColumnIndex = null;
2888
+ sortingType = {};
2889
+ filteredData = [];
2890
+ originalRowData = [];
2891
+ activeFilters = new Map();
2892
+ appliedFilters = [];
2893
+ menuVisible = [];
2894
+ dragOverIndex = null;
2895
+ draggedIndex = null;
2896
+ activeFilterIndex = null;
2897
+ resizingColumnIndex = null;
2898
+ startX = 0;
2899
+ startWidth = 0;
2900
+ isResizing = false;
2901
+ showMoveIcon = {};
2902
+ showPin = false;
2903
+ pinActionClicked = {};
2904
+ columnDraggable = [];
2905
+ showPageSizeList = false;
2906
+ activeAll = true;
2907
+ atLeastOneColumnChecked = true;
2908
+ selectedRow = [];
2909
+ originalColumns = [];
2910
+ removeMouseMove = null;
2911
+ removeMouseUp = null;
2912
+ rafId = null;
2913
+ removeDragOver = null;
2914
+ removeDrop = null;
2915
+ filterOptions = [
2916
+ { label: 'Contains', value: 'contains' },
2917
+ { label: 'Does Not Contain', value: 'doesNotContain' },
2918
+ { label: 'Equals', value: 'equals' },
2919
+ { label: 'Does Not Equal', value: 'doesNotEqual' },
2920
+ { label: 'Starts With', value: 'startsWith' },
2921
+ { label: 'Ends With', value: 'endsWith' },
2922
+ ];
2923
+ numberFilterOptions = [
2924
+ { label: 'Equals', value: '=' },
2925
+ { label: 'Greater Than', value: '>' },
2926
+ { label: 'Less Than', value: '<' },
2927
+ { label: 'Greater Than or Equal', value: '>=' },
2928
+ { label: 'Less Than or Equal', value: '<=' },
2929
+ ];
2930
+ expandedKeys = new Set();
2931
+ selectedKeys = new Set();
2932
+ fallbackKey = new WeakMap();
2933
+ fallbackSeq = 1;
2934
+ resolvedTreeColumnField;
2935
+ constructor(renderer, zone, cd) {
2936
+ this.renderer = renderer;
2937
+ this.zone = zone;
2938
+ this.cd = cd;
2939
+ }
2940
+ ngAfterViewInit() {
2941
+ const el = this.tableAreaRef?.nativeElement;
2942
+ if (!el)
2943
+ return;
2944
+ this.zone.runOutsideAngular(() => {
2945
+ this.removeDragOver = this.renderer.listen(el, 'dragover', (event) => {
2946
+ if (this.isResizing)
2947
+ return;
2948
+ event.preventDefault();
2949
+ const th = event.target?.closest?.('th');
2950
+ const rawIdx = th?.dataset?.['colIdx'];
2951
+ if (!rawIdx)
2952
+ return;
2953
+ const idx = Number.parseInt(rawIdx, 10);
2954
+ if (Number.isNaN(idx))
2955
+ return;
2956
+ if (this.dragOverIndex === idx)
2957
+ return;
2958
+ this.zone.run(() => {
2959
+ this.dragOverIndex = idx;
2960
+ });
2961
+ });
2962
+ this.removeDrop = this.renderer.listen(el, 'drop', (event) => {
2963
+ event.preventDefault();
2964
+ const th = event.target?.closest?.('th');
2965
+ const rawIdx = th?.dataset?.['colIdx'];
2966
+ if (!rawIdx)
2967
+ return;
2968
+ const idx = Number.parseInt(rawIdx, 10);
2969
+ if (Number.isNaN(idx))
2970
+ return;
2971
+ this.zone.run(() => {
2972
+ this.onDrop(event, idx);
2973
+ });
2974
+ });
2975
+ });
2976
+ }
2977
+ ngOnDestroy() {
2978
+ this.removeDragOver?.();
2979
+ this.removeDrop?.();
2980
+ this.removeMouseMove?.();
2981
+ this.removeMouseUp?.();
2982
+ if (this.rafId)
2983
+ cancelAnimationFrame(this.rafId);
2984
+ this.renderer.removeStyle(document.body, 'cursor');
2985
+ this.renderer.removeStyle(document.body, 'user-select');
2986
+ }
2987
+ ngOnChanges(changes) {
2988
+ if (changes['data'] || changes['columns']) {
2989
+ this.initializeColumns();
2990
+ this.originalRowData = structuredClone(this.data || []);
2991
+ this.rebuildRows();
2992
+ }
2993
+ }
2994
+ ngDoCheck() {
2995
+ this.rebuildRows();
2996
+ }
2997
+ get treeColumn() {
2998
+ const preferredField = this.treeColumnField ?? this.resolvedTreeColumnField;
2999
+ if (preferredField) {
3000
+ const found = this.columns?.find((c) => c.field === preferredField);
3001
+ if (found)
3002
+ return found;
3003
+ }
3004
+ return this.columns?.[0] ?? { field: this.labelField, header: 'Name' };
3005
+ }
3006
+ /**
3007
+ * Initialize column properties for filtering, sorting, and customization
3008
+ */
3009
+ initializeColumns() {
3010
+ this.columns = this.columns.map((col, index) => {
3011
+ if (!col.colId)
3012
+ col.colId = col.field;
3013
+ if (col.sortable === undefined)
3014
+ col.sortable = true;
3015
+ if (col.filterable === undefined)
3016
+ col.filterable = true;
3017
+ if (col.filterType === undefined)
3018
+ col.filterType = 'text';
3019
+ if (col.active === undefined)
3020
+ col.active = true;
3021
+ if (col.width === undefined)
3022
+ col.width = 150;
3023
+ if (col.minWidth === undefined)
3024
+ col.minWidth = 50;
3025
+ if (!col.filters) {
3026
+ col.filters = [
3027
+ { filterOperation: 'contains', filterValue: '' },
3028
+ { filterOperation: 'contains', filterValue: '' },
3029
+ ];
3030
+ }
3031
+ if (!col.selectedValues)
3032
+ col.selectedValues = new Set();
3033
+ if (!col.options && col.filterType === 'set') {
3034
+ col.options = this.extractUniqueValues(this.data || [], col.field);
3035
+ col.filteredOptions = [...(col.options || [])];
3036
+ }
3037
+ if (!this.menuVisible[index])
3038
+ this.menuVisible[index] = false;
3039
+ const key = col.colId || col.field;
3040
+ if (this.pinActionClicked[key] == null) {
3041
+ this.pinActionClicked[key] = col.leftPinned
3042
+ ? 'left'
3043
+ : col.rightPinned
3044
+ ? 'right'
3045
+ : 'none';
3046
+ }
3047
+ return col;
3048
+ });
3049
+ // If the consumer didn't specify a tree column, keep the initial first column as the tree UI column
3050
+ // even when columns are later reordered (pin/drag).
3051
+ if (!this.treeColumnField) {
3052
+ const firstField = this.columns?.[0]?.field;
3053
+ if (firstField &&
3054
+ (this.resolvedTreeColumnField == null ||
3055
+ !this.columns.some((c) => c.field === this.resolvedTreeColumnField))) {
3056
+ this.resolvedTreeColumnField = firstField;
3057
+ }
3058
+ }
3059
+ this.saveColumnState();
3060
+ }
3061
+ /**
3062
+ * Extract unique values from data for set filter
3063
+ */
3064
+ extractUniqueValues(data, field) {
3065
+ const values = new Set();
3066
+ const visit = (nodes) => {
3067
+ for (const node of nodes) {
3068
+ values.add(this.getValue(node, field));
3069
+ const children = this.getChildren(node);
3070
+ if (Array.isArray(children))
3071
+ visit(children);
3072
+ }
3073
+ };
3074
+ visit(data);
3075
+ return Array.from(values);
3076
+ }
3077
+ /**
3078
+ * Sort data based on column and sorting type
3079
+ */
3080
+ onSortingRowData(sortingColumnIndex, col) {
3081
+ if (!col.sortable)
3082
+ return;
3083
+ this.sortingColumnIndex = sortingColumnIndex;
3084
+ Object.keys(this.sortingType).forEach((k) => {
3085
+ if (Number(k) !== sortingColumnIndex)
3086
+ delete this.sortingType[Number(k)];
3087
+ });
3088
+ if (!this.sortingType[sortingColumnIndex]) {
3089
+ this.sortingType[sortingColumnIndex] = 'asc';
3090
+ }
3091
+ else if (this.sortingType[sortingColumnIndex] === 'asc') {
3092
+ this.sortingType[sortingColumnIndex] = 'dsc';
3093
+ }
3094
+ else {
3095
+ this.sortingType[sortingColumnIndex] = '';
3096
+ delete this.sortingType[sortingColumnIndex];
3097
+ }
3098
+ this.applySort();
3099
+ this.rebuildRows();
3100
+ }
3101
+ /**
3102
+ * Sort from the three-dots menu with an explicit direction (matches `cats-data-grid` UX).
3103
+ */
3104
+ onSort(col, type, sortingColumIndex) {
3105
+ if (!col.sortable)
3106
+ return;
3107
+ this.sortingType[sortingColumIndex] = type;
3108
+ this.sortingColumnIndex = type ? sortingColumIndex : null;
3109
+ Object.keys(this.sortingType).forEach((k) => {
3110
+ if (k !== String(sortingColumIndex))
3111
+ this.sortingType[Number(k)] = '';
3112
+ });
3113
+ if (type === 'asc' || type === 'dsc') {
3114
+ this.applySort();
3115
+ }
3116
+ else {
3117
+ this.data = structuredClone(this.originalRowData || []);
3118
+ }
3119
+ this.rebuildRows();
3120
+ this.onClickOutside();
3121
+ }
3122
+ /**
3123
+ * Apply sorting to the row data
3124
+ */
3125
+ applySort() {
3126
+ if (this.sortingColumnIndex === null)
3127
+ return;
3128
+ const col = this.columns[this.sortingColumnIndex];
3129
+ const sortType = this.sortingType[this.sortingColumnIndex];
3130
+ if (!sortType)
3131
+ return;
3132
+ const sortFn = (a, b) => {
3133
+ const aVal = this.getValue(a, col.field);
3134
+ const bVal = this.getValue(b, col.field);
3135
+ if (aVal === bVal)
3136
+ return 0;
3137
+ if (aVal === null || aVal === undefined)
3138
+ return 1;
3139
+ if (bVal === null || bVal === undefined)
3140
+ return -1;
3141
+ if (sortType === 'asc') {
3142
+ return aVal > bVal ? 1 : -1;
3143
+ }
3144
+ else {
3145
+ return aVal < bVal ? 1 : -1;
3146
+ }
3147
+ };
3148
+ const visit = (nodes) => {
3149
+ nodes.sort(sortFn);
3150
+ for (const node of nodes) {
3151
+ const children = this.getChildren(node);
3152
+ if (Array.isArray(children))
3153
+ visit(children);
3154
+ }
3155
+ };
3156
+ visit(this.data || []);
3157
+ }
3158
+ /**
3159
+ * Apply all active filters
3160
+ */
3161
+ applyAllFilters() {
3162
+ let result = structuredClone(this.originalRowData);
3163
+ this.columns.forEach((col) => {
3164
+ if (!col.filters || col.filterType === 'set')
3165
+ return;
3166
+ const hasFirstValue = col.filters[0]?.filterValue;
3167
+ if (!hasFirstValue)
3168
+ return;
3169
+ result = result.filter((row) => {
3170
+ const fieldValue = String(this.getValue(row, col.field)).toLowerCase();
3171
+ const filterOp = col.filters?.[0]?.filterOperation;
3172
+ const filterVal = String(col.filters?.[0]?.filterValue).toLowerCase();
3173
+ if (!this.evaluateTextFilterCondition(filterOp || '', fieldValue, filterVal)) {
3174
+ return false;
3175
+ }
3176
+ if (col.filters?.[1]?.filterValue) {
3177
+ const secondOp = col.filters[1].filterOperation;
3178
+ const secondVal = String(col.filters[1].filterValue).toLowerCase();
3179
+ return this.evaluateTextFilterCondition(secondOp || '', fieldValue, secondVal);
3180
+ }
3181
+ return true;
3182
+ });
3183
+ });
3184
+ this.filteredData = result;
3185
+ this.data = this.filteredData;
3186
+ this.rebuildRows();
3187
+ }
3188
+ /**
3189
+ * Evaluate text filter condition
3190
+ */
3191
+ evaluateTextFilterCondition(type, fieldValue, value) {
3192
+ switch (type) {
3193
+ case 'contains':
3194
+ return fieldValue.includes(value);
3195
+ case 'doesNotContain':
3196
+ return !fieldValue.includes(value);
3197
+ case 'equals':
3198
+ return fieldValue === value;
3199
+ case 'doesNotEqual':
3200
+ return fieldValue !== value;
3201
+ case 'startsWith':
3202
+ return fieldValue.startsWith(value);
3203
+ case 'endsWith':
3204
+ return fieldValue.endsWith(value);
3205
+ default:
3206
+ return true;
3207
+ }
3208
+ }
3209
+ /**
3210
+ * Toggle column filter visibility
3211
+ */
3212
+ toggleFilter(col, index, event) {
3213
+ event.stopPropagation();
3214
+ this.activeFilterIndex = this.activeFilterIndex === index ? null : index;
3215
+ }
3216
+ /**
3217
+ * Reset filter for a column
3218
+ */
3219
+ resetFilter(col) {
3220
+ if (col.filters) {
3221
+ col.filters.forEach((f) => (f.filterValue = ''));
3222
+ }
3223
+ if (col.selectedValues)
3224
+ col.selectedValues.clear();
3225
+ this.activeFilters.delete(col.field);
3226
+ this.applyAllFilters();
3227
+ }
3228
+ /**
3229
+ * Start column resize
3230
+ */
3231
+ startResize(event, index) {
3232
+ event.preventDefault();
3233
+ event.stopPropagation();
3234
+ this.isResizing = true;
3235
+ this.resizingColumnIndex = index;
3236
+ this.startX = event.clientX;
3237
+ this.startWidth = this.columns[index].width ?? 150;
3238
+ this.zone.runOutsideAngular(() => {
3239
+ this.renderer.setStyle(document.body, 'cursor', 'col-resize');
3240
+ this.renderer.setStyle(document.body, 'user-select', 'none');
3241
+ this.removeMouseMove = this.renderer.listen('document', 'mousemove', this.onMouseMove);
3242
+ this.removeMouseUp = this.renderer.listen('document', 'mouseup', this.stopResize);
3243
+ });
3244
+ }
3245
+ /**
3246
+ * Handle mouse move during resize
3247
+ */
3248
+ onMouseMove = (event) => {
3249
+ if (this.resizingColumnIndex === null || this.rafId)
3250
+ return;
3251
+ this.rafId = requestAnimationFrame(() => {
3252
+ const movement = event.clientX - this.startX;
3253
+ const newWidth = this.startWidth + movement;
3254
+ const minWidth = this.columns[this.resizingColumnIndex]?.minWidth ?? 50;
3255
+ if (newWidth > minWidth) {
3256
+ this.zone.run(() => {
3257
+ this.columns[this.resizingColumnIndex].width = newWidth;
3258
+ // recalc pinned offsets in case a pinned column changed width
3259
+ this.updatePinnedOffsets();
3260
+ this.cd.markForCheck();
3261
+ });
3262
+ }
3263
+ this.rafId = null;
3264
+ });
3265
+ };
3266
+ /**
3267
+ * Stop column resize
3268
+ */
3269
+ stopResize = () => {
3270
+ this.isResizing = false;
3271
+ this.resizingColumnIndex = null;
3272
+ this.removeMouseMove?.();
3273
+ this.removeMouseUp?.();
3274
+ this.renderer.removeStyle(document.body, 'cursor');
3275
+ this.renderer.removeStyle(document.body, 'user-select');
3276
+ if (this.rafId) {
3277
+ cancelAnimationFrame(this.rafId);
3278
+ this.rafId = null;
3279
+ }
3280
+ };
3281
+ /**
3282
+ * Handle column drag start
3283
+ */
3284
+ onDragStart(event, index) {
3285
+ if (this.isResizing)
3286
+ return;
3287
+ this.draggedIndex = index;
3288
+ event.dataTransfer?.setData('text/plain', index.toString());
3289
+ }
3290
+ /**
3291
+ * Handle column drag over
3292
+ */
3293
+ onDragOver(event, index) {
3294
+ event.preventDefault();
3295
+ this.isResizing = false;
3296
+ if (this.dragOverIndex !== index)
3297
+ this.dragOverIndex = index;
3298
+ }
3299
+ /**
3300
+ * Handle column drop
3301
+ */
3302
+ onDrop(event, index) {
3303
+ event.preventDefault();
3304
+ if (this.draggedIndex === null)
3305
+ return;
3306
+ const draggedItem = this.columns[this.draggedIndex];
3307
+ this.columns.splice(this.draggedIndex, 1);
3308
+ this.columns.splice(index, 0, draggedItem);
3309
+ this.draggedIndex = null;
3310
+ this.dragOverIndex = null;
3311
+ this.updatePinnedOffsets();
3312
+ }
3313
+ /**
3314
+ * Handle drag end
3315
+ */
3316
+ onDragEnd() {
3317
+ this.draggedIndex = null;
3318
+ this.dragOverIndex = null;
3319
+ }
3320
+ /**
3321
+ * Pin column to left or right
3322
+ */
3323
+ pinColumn(col, index, direction) {
3324
+ const key = col.colId || col.field;
3325
+ this.pinActionClicked[key] = direction;
3326
+ col.leftPinned = direction === 'left';
3327
+ col.rightPinned = direction === 'right';
3328
+ // Reorder columns to mirror `cats-data-grid` behavior.
3329
+ const currentIndex = this.columns.findIndex((c) => (c.colId || c.field) === key);
3330
+ if (currentIndex >= 0) {
3331
+ this.columns.splice(currentIndex, 1);
3332
+ }
3333
+ else if (index >= 0 && index < this.columns.length) {
3334
+ this.columns.splice(index, 1);
3335
+ }
3336
+ if (direction === 'left') {
3337
+ this.columns = [col, ...this.columns];
3338
+ }
3339
+ else if (direction === 'right') {
3340
+ this.columns = [...this.columns, col];
3341
+ }
3342
+ else {
3343
+ const leftPinned = this.columns.filter((c) => c.leftPinned);
3344
+ const rightPinned = this.columns.filter((c) => c.rightPinned);
3345
+ const middle = this.columns.filter((c) => !c.leftPinned && !c.rightPinned);
3346
+ const byKey = new Map();
3347
+ for (const c of middle)
3348
+ byKey.set(c.colId || c.field, c);
3349
+ byKey.set(key, col);
3350
+ const originalKeys = (this.originalColumns || []).map((c) => c.colId || c.field);
3351
+ const orderedMiddle = [];
3352
+ for (const k of originalKeys) {
3353
+ const match = byKey.get(k);
3354
+ if (match)
3355
+ orderedMiddle.push(match);
3356
+ }
3357
+ for (const [k, v] of byKey.entries()) {
3358
+ if (!originalKeys.includes(k))
3359
+ orderedMiddle.push(v);
3360
+ }
3361
+ this.columns = [...leftPinned, ...orderedMiddle, ...rightPinned];
3362
+ }
3363
+ this.updatePinnedOffsets();
3364
+ this.showPin = false;
3365
+ this.onClickOutside();
3366
+ }
3367
+ showPinActions(event) {
3368
+ event.stopPropagation();
3369
+ const parentEl = event.currentTarget;
3370
+ this.showPin = true;
3371
+ // Flip the submenu to open left if it would overflow the viewport.
3372
+ setTimeout(() => {
3373
+ const menuEl = this.pinMenu?.nativeElement;
3374
+ if (!menuEl || !parentEl)
3375
+ return;
3376
+ const parentRect = parentEl.getBoundingClientRect();
3377
+ const menuWidth = menuEl.offsetWidth;
3378
+ const viewPortWidth = window.innerWidth;
3379
+ const x = parentRect.right;
3380
+ if (x + menuWidth > viewPortWidth) {
3381
+ menuEl.style.right = `${parentRect.width}px`;
3382
+ }
3383
+ else {
3384
+ menuEl.style.right = '';
3385
+ }
3386
+ });
3387
+ }
3388
+ hidePinActions() {
3389
+ this.showPin = false;
3390
+ }
3391
+ /**
3392
+ * Update pinned column offsets
3393
+ */
3394
+ updatePinnedOffsets() {
3395
+ let leftOffset = 0;
3396
+ let rightOffset = 0;
3397
+ this.columns.forEach((col) => {
3398
+ if (col.leftPinned) {
3399
+ col.leftOffset = leftOffset;
3400
+ leftOffset += col.width ?? 150;
3401
+ }
3402
+ else {
3403
+ col.leftOffset = undefined;
3404
+ }
3405
+ });
3406
+ [...this.columns].reverse().forEach((col) => {
3407
+ if (col.rightPinned) {
3408
+ col.rightOffset = rightOffset;
3409
+ rightOffset += col.width ?? 150;
3410
+ }
3411
+ else {
3412
+ col.rightOffset = undefined;
3413
+ }
3414
+ });
3415
+ }
3416
+ /**
3417
+ * Filter set options based on search text
3418
+ */
3419
+ filterSetOptions(col, event) {
3420
+ const text = event.target.value.toLowerCase();
3421
+ col.filteredOptions = col.options?.filter((option) => String(option).toLowerCase().includes(text)) || [];
3422
+ }
3423
+ /**
3424
+ * Toggle set filter option
3425
+ */
3426
+ toggleSetOption(col, option, event) {
3427
+ if (event.target.checked) {
3428
+ col.selectedValues?.add(option);
3429
+ }
3430
+ else {
3431
+ col.selectedValues?.delete(option);
3432
+ }
3433
+ this.applyAllFilters();
3434
+ }
3435
+ /**
3436
+ * Toggle select all in set filter
3437
+ */
3438
+ toggleSelectAllSetFilter(col, event) {
3439
+ col.selectedValues?.clear();
3440
+ if (event.target.checked) {
3441
+ col.options?.forEach((o) => col.selectedValues?.add(o));
3442
+ }
3443
+ this.applyAllFilters();
3444
+ }
3445
+ /**
3446
+ * Get column style
3447
+ */
3448
+ getStyle(col) {
3449
+ const style = {
3450
+ width: `${col.width ?? 150}px`,
3451
+ minWidth: `${col.minWidth ?? 50}px`,
3452
+ };
3453
+ if (col.leftPinned) {
3454
+ style.position = 'sticky';
3455
+ style.left = `${col.leftOffset ?? 0}px`;
3456
+ style.zIndex = 20;
3457
+ style.background = 'var(--white)';
3458
+ }
3459
+ else if (col.rightPinned) {
3460
+ style.position = 'sticky';
3461
+ style.right = `${col.rightOffset ?? 0}px`;
3462
+ style.zIndex = 20;
3463
+ style.background = 'var(--white)';
3464
+ }
3465
+ return style;
3466
+ }
3467
+ /**
3468
+ * Toggle column visibility
3469
+ */
3470
+ changeActiveColSelection(event, col) {
3471
+ col.active = !event.target.checked;
3472
+ this.atLeastOneColumnChecked = this.columns.some((dt) => dt.active);
3473
+ this.saveColumnState();
3474
+ }
3475
+ /**
3476
+ * Compute minimum table width based on active column widths
3477
+ */
3478
+ getTableMinWidth() {
3479
+ return this.columns
3480
+ .filter((c) => c.active)
3481
+ .reduce((sum, c) => sum + (c.width ?? 150), 0);
3482
+ }
3483
+ /**
3484
+ * Select/deselect all columns
3485
+ */
3486
+ activeAllSelection(event) {
3487
+ const checked = event.target.checked;
3488
+ this.columns.forEach((col) => {
3489
+ col.active = checked;
3490
+ });
3491
+ this.activeAll = checked;
3492
+ this.saveColumnState();
3493
+ }
3494
+ /**
3495
+ * Hide settings
3496
+ */
3497
+ hideSettings() {
3498
+ this.onHideSettings.emit();
3499
+ }
3500
+ /**
3501
+ * Close all menus
3502
+ */
3503
+ onClickOutside() {
3504
+ this.activeFilterIndex = null;
3505
+ this.showPin = false;
3506
+ this.menuVisible = this.menuVisible.map(() => false);
3507
+ }
3508
+ /**
3509
+ * Open column menu
3510
+ */
3511
+ openMenu(event, col, index) {
3512
+ event.stopPropagation();
3513
+ this.activeFilterIndex = null;
3514
+ this.showPin = false;
3515
+ this.menuVisible = this.menuVisible.map(() => false);
3516
+ this.menuVisible[index] = true;
3517
+ }
3518
+ /**
3519
+ * On header checkbox change
3520
+ */
3521
+ onHeaderCheckboxChange(event) {
3522
+ if (event.target.checked) {
3523
+ this.selectedRow = [...this.data];
3524
+ }
3525
+ else {
3526
+ this.selectedRow = [];
3527
+ }
3528
+ }
3529
+ /**
3530
+ * On row checkbox change
3531
+ */
3532
+ onRowCheckboxChange(event, node) {
3533
+ if (event.target.checked) {
3534
+ if (!this.selectedRow.includes(node)) {
3535
+ this.selectedRow.push(node);
3536
+ }
3537
+ }
3538
+ else {
3539
+ this.selectedRow = this.selectedRow.filter((r) => r !== node);
3540
+ }
3541
+ }
3542
+ /**
3543
+ * Check if all rows are selected
3544
+ */
3545
+ checkAllSelected() {
3546
+ return this.selectedRow.length === this.data.length && this.data.length > 0;
3547
+ }
3548
+ /**
3549
+ * Check if some rows are selected (indeterminate state)
3550
+ */
3551
+ checkIndeterminate() {
3552
+ return this.selectedRow.length > 0 && this.selectedRow.length < this.data.length;
3553
+ }
3554
+ /**
3555
+ * Check if row is selected
3556
+ */
3557
+ isRowSelected(node) {
3558
+ return this.selectedRow.includes(node);
3559
+ }
3560
+ toggle(node, level, path) {
3561
+ const key = this.getNodeKey(node);
3562
+ if (this.expandedKeys.has(key)) {
3563
+ this.expandedKeys.delete(key);
3564
+ this.nodeToggle.emit({ node, level, path, expanded: false });
3565
+ this.rebuildRows();
3566
+ return;
3567
+ }
3568
+ this.expandedKeys.add(key);
3569
+ if (this.emitExpandAlways || this.getChildren(node) == null) {
3570
+ this.nodeToggle.emit({ node, level, path, expanded: true });
3571
+ }
3572
+ this.rebuildRows();
3573
+ }
3574
+ isExpanded(node) {
3575
+ return this.expandedKeys.has(this.getNodeKey(node));
3576
+ }
3577
+ onCheckboxChange(node, level, path, checked) {
3578
+ const key = this.getNodeKey(node);
3579
+ if (checked) {
3580
+ this.selectedKeys.add(key);
3581
+ }
3582
+ else {
3583
+ this.selectedKeys.delete(key);
3584
+ }
3585
+ this.selectionChange.emit({
3586
+ node,
3587
+ level,
3588
+ path,
3589
+ checked,
3590
+ selectedNodes: this.getSelectedNodes(),
3591
+ });
3592
+ }
3593
+ isChecked(node) {
3594
+ return this.selectedKeys.has(this.getNodeKey(node));
3595
+ }
3596
+ onLinkClicked(e, node, level, path) {
3597
+ e.preventDefault();
3598
+ e.stopPropagation();
3599
+ this.linkClick.emit({ node, level, path, url: this.linkResolver(node, level, path) });
3600
+ }
3601
+ resolveIconSrc(icon) {
3602
+ if (!icon)
3603
+ return null;
3604
+ if (icon.includes('/') || icon.startsWith('http://') || icon.startsWith('https://')) {
3605
+ return icon;
3606
+ }
3607
+ return `${this.iconBasePath}/${icon}`;
3608
+ }
3609
+ getValue(node, fieldPath) {
3610
+ if (!fieldPath)
3611
+ return '';
3612
+ const parts = fieldPath.split('.');
3613
+ let cur = node;
3614
+ for (const part of parts) {
3615
+ if (cur == null)
3616
+ return '';
3617
+ cur = cur?.[part];
3618
+ }
3619
+ return cur ?? '';
3620
+ }
3621
+ isNodeRow(row) {
3622
+ return row.kind === 'node';
3623
+ }
3624
+ rowOptions(row) {
3625
+ return this.rowOptionsResolver(row.node, row.level, row.path) || {};
3626
+ }
3627
+ showToggleFor(row) {
3628
+ const opts = this.rowOptions(row);
3629
+ if (opts.showToggle === false)
3630
+ return false;
3631
+ return this.isExpandable(row.node, row.level, row.path);
3632
+ }
3633
+ showCheckboxFor(row) {
3634
+ const opts = this.rowOptions(row);
3635
+ if (opts.showCheckbox != null)
3636
+ return !!opts.showCheckbox;
3637
+ return this.showCheckbox;
3638
+ }
3639
+ showNodeIconFor(row) {
3640
+ const opts = this.rowOptions(row);
3641
+ if (opts.showNodeIcon != null)
3642
+ return !!opts.showNodeIcon;
3643
+ return this.showNodeIcon;
3644
+ }
3645
+ showLinkFor(row) {
3646
+ const opts = this.rowOptions(row);
3647
+ if (opts.showLink != null)
3648
+ return !!opts.showLink;
3649
+ return this.linkResolver(row.node, row.level, row.path) != null;
3650
+ }
3651
+ isDisabledRow(row) {
3652
+ return !!this.rowOptions(row)?.disabled;
3653
+ }
3654
+ labelFor(row) {
3655
+ return this.getValue(row.node, this.labelField);
3656
+ }
3657
+ toggleIconFor(row) {
3658
+ return this.isExpanded(row.node) ? this.collapseIcon : this.expandIcon;
3659
+ }
3660
+ nodeIconFor(row) {
3661
+ return this.nodeIconResolver(row.node, row.level, row.path);
3662
+ }
3663
+ linkUrlFor(row) {
3664
+ return this.linkResolver(row.node, row.level, row.path);
3665
+ }
3666
+ getChildren(node) {
3667
+ return node?.[this.childrenField];
3668
+ }
3669
+ rebuildRows() {
3670
+ const next = [];
3671
+ for (const root of this.data || []) {
3672
+ this.walk(root, 0, [], next);
3673
+ }
3674
+ this.rows = next;
3675
+ }
3676
+ walk(node, level, parentPath, out) {
3677
+ const path = [...parentPath, node];
3678
+ out.push({
3679
+ kind: 'node',
3680
+ node,
3681
+ level,
3682
+ path,
3683
+ trackKey: this.getNodeKey(node),
3684
+ });
3685
+ if (!this.isExpanded(node) || !this.isExpandable(node, level, path))
3686
+ return;
3687
+ const children = this.getChildren(node);
3688
+ if (children == null) {
3689
+ out.push({
3690
+ kind: 'loading',
3691
+ node,
3692
+ level: level + 1,
3693
+ path,
3694
+ trackKey: `${this.getNodeKey(node)}::loading`,
3695
+ });
3696
+ return;
3697
+ }
3698
+ if (!Array.isArray(children) || children.length === 0) {
3699
+ out.push({
3700
+ kind: 'no-data',
3701
+ node,
3702
+ level: level + 1,
3703
+ path,
3704
+ trackKey: `${this.getNodeKey(node)}::no-data`,
3705
+ });
3706
+ return;
3707
+ }
3708
+ for (const child of children) {
3709
+ this.walk(child, level + 1, path, out);
3710
+ }
3711
+ }
3712
+ getNodeKey(node) {
3713
+ const anyNode = node;
3714
+ const direct = anyNode?.[this.idField];
3715
+ if (direct != null)
3716
+ return direct;
3717
+ if (typeof node === 'object' && node != null) {
3718
+ const existing = this.fallbackKey.get(node);
3719
+ if (existing != null)
3720
+ return existing;
3721
+ const next = this.fallbackSeq++;
3722
+ this.fallbackKey.set(node, next);
3723
+ return next;
3724
+ }
3725
+ return String(node);
3726
+ }
3727
+ getSelectedNodes() {
3728
+ const selected = [];
3729
+ const visit = (nodes) => {
3730
+ for (const n of nodes) {
3731
+ if (this.selectedKeys.has(this.getNodeKey(n)))
3732
+ selected.push(n);
3733
+ const children = this.getChildren(n);
3734
+ if (Array.isArray(children) && children.length > 0)
3735
+ visit(children);
3736
+ }
3737
+ };
3738
+ visit(this.data || []);
3739
+ return selected;
3740
+ }
3741
+ /**
3742
+ * Autosize column to fit content
3743
+ */
3744
+ autosizeColumn(col, index) {
3745
+ const min = col.minWidth ?? 50;
3746
+ const max = col.maxWidth ?? 500;
3747
+ const estimatedWidth = Math.min(Math.max(150, min), max);
3748
+ col.width = estimatedWidth;
3749
+ this.updatePinnedOffsets();
3750
+ }
3751
+ /**
3752
+ * Autosize all columns
3753
+ */
3754
+ autosizeAllColumns() {
3755
+ this.columns.forEach((col) => {
3756
+ const min = col.minWidth ?? 50;
3757
+ const max = col.maxWidth ?? 500;
3758
+ const estimatedWidth = Math.min(Math.max(150, min), max);
3759
+ col.width = estimatedWidth;
3760
+ });
3761
+ this.updatePinnedOffsets();
3762
+ }
3763
+ /**
3764
+ * Group by column
3765
+ */
3766
+ groupByColumn(col, index) {
3767
+ // Emit event or handle grouping logic
3768
+ console.log('Group by column:', col.field);
3769
+ }
3770
+ /**
3771
+ * Show column chooser
3772
+ */
3773
+ showColumnChooser(colIdx) {
3774
+ // Toggle settings to show column chooser
3775
+ this.onClickOutside();
3776
+ }
3777
+ /**
3778
+ * Reset columns to original state
3779
+ */
3780
+ resetColumns() {
3781
+ if (this.originalColumns.length > 0) {
3782
+ this.columns = structuredClone(this.originalColumns);
3783
+ this.rebuildRows();
3784
+ }
3785
+ }
3786
+ /**
3787
+ * Save column state
3788
+ */
3789
+ saveColumnState() {
3790
+ if (this.originalColumns.length === 0) {
3791
+ this.originalColumns = structuredClone(this.columns);
3792
+ }
3793
+ }
3794
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonTreeTableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3795
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CommonTreeTableComponent, isStandalone: true, selector: "cats-tree-table", inputs: { data: "data", columns: "columns", idField: "idField", labelField: "labelField", childrenField: "childrenField", treeColumnField: "treeColumnField", indentPx: "indentPx", showHeader: "showHeader", expandIcon: "expandIcon", collapseIcon: "collapseIcon", iconBasePath: "iconBasePath", showCheckbox: "showCheckbox", showNodeIcon: "showNodeIcon", noDataText: "noDataText", loadingText: "loadingText", emitExpandAlways: "emitExpandAlways", sortingRequired: "sortingRequired", filterRequired: "filterRequired", threeDotsMenuRequired: "threeDotsMenuRequired", settingsRequired: "settingsRequired", settingsClicked: "settingsClicked", checkBoxSelection: "checkBoxSelection", checkboxSelectionType: "checkboxSelectionType", isExpandable: "isExpandable", rowOptionsResolver: "rowOptionsResolver", nodeIconResolver: "nodeIconResolver", linkResolver: "linkResolver" }, outputs: { nodeToggle: "nodeToggle", selectionChange: "selectionChange", linkClick: "linkClick", onHideSettings: "onHideSettings" }, viewQueries: [{ propertyName: "tableAreaRef", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "pinMenu", first: true, predicate: ["pinMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"tableArea\" #table [class.is-resizing]=\"isResizing\">\n <!-- Settings Panel for Column Selection -->\n @if (settingsRequired && settingsClicked) {\n <div class=\"setting_options\" appOutsideClick (clickOutside)=\"hideSettings()\">\n <div class=\"column_header\">Select Headers</div>\n <div class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"activeAll\"\n (change)=\"activeAllSelection($event)\"\n />\n <span>Select All</span>\n </div>\n\n <div class=\"item_container\" id=\"table_scroll\">\n @for (col of columns; track col.field) {\n <div class=\"column_item checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"col.active\"\n (change)=\"changeActiveColSelection($event, col)\"\n />\n <span>{{ col.header || col.field | titlecase }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Main Table Wrapper -->\n <div class=\"table_wrapper global\" id=\"table_scroll\" #parent>\n <div class=\"table-inner-wrapper\">\n <table cellspacing=\"0\" cellpadding=\"0\" >\n <thead class=\"sticky-top\">\n <tr>\n <!-- Checkbox header column -->\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <th style=\"min-width: 50px; width: 50px; max-width: 50px\">\n <div class=\"th_wraper\">\n <div class=\"checkbox_container\">\n <input\n class=\"pointer custom_check_box\"\n type=\"checkbox\"\n [checked]=\"checkAllSelected()\"\n [indeterminate]=\"checkIndeterminate()\"\n (change)=\"onHeaderCheckboxChange($event)\"\n />\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <span class=\"resize-handle default_cursor\"> | </span>\n </div>\n </div>\n </th>\n }\n\n <!-- Column Headers -->\n @for (col of columns; track col.field; let colIdx = $index) {\n @if (col.active !== false) {\n <th\n [ngStyle]=\"getStyle(col)\"\n [attr.data-col-idx]=\"colIdx\"\n [ngClass]=\"{\n 'drag-over': dragOverIndex === colIdx,\n 'pinned_column': col.leftPinned || col.rightPinned\n }\"\n (mouseenter)=\"showMoveIcon[colIdx] = true\"\n (mouseleave)=\"showMoveIcon[colIdx] = false\"\n >\n <div class=\"th_wraper\">\n <!-- Sortable column header -->\n <div\n class=\"text_wrapper\"\n [ngClass]=\"{ sortable: col.sortable }\"\n (click)=\"onSortingRowData(colIdx, col)\"\n >\n @if (showMoveIcon[colIdx] && col.sortable) {\n <img\n src=\"images/t-move.svg\"\n class=\"move-icon\"\n [draggable]=\"!isResizing\"\n (dragstart)=\"onDragStart($event, colIdx)\"\n (dragend)=\"onDragEnd()\"\n />\n }\n <span class=\"ellipsis headerName\">{{ col.header || col.field }}</span>\n\n <!-- Sorting indicator -->\n @if (\n sortingRequired &&\n sortingColumnIndex === colIdx &&\n col.sortable\n ) {\n <span class=\"sorting_icon\">\n @if (sortingType[colIdx] === 'asc') {\n <img src=\"images/sort-ascending.svg\" alt=\"Ascending\" />\n } @else if (sortingType[colIdx] === 'dsc') {\n <img src=\"images/sort-descending.svg\" alt=\"Descending\" />\n }\n </span>\n }\n </div>\n\n <!-- Filter and Menu -->\n <div class=\"filter_three_dot_wrapper\">\n <!-- Filter Icon -->\n @if (filterRequired && col.filterable) {\n <div\n class=\"filters\"\n (click)=\"toggleFilter(col, colIdx, $event)\"\n >\n @if (activeFilters.has(col.field)) {\n <img src=\"images/filter-active.svg\" alt=\"Filter active\" />\n } @else {\n <img src=\"images/filter.svg\" alt=\"Filter\" />\n }\n\n <!-- Filter Dropdown -->\n @if (activeFilterIndex === colIdx) {\n <div\n class=\"filter_dropdown\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Text Filter -->\n @if (col.filterType === 'text') {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters?.[0]?.filterOperation\"\n (ngModelChange)=\"col.filters![0].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of filterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"text\"\n class=\"search_input\"\n placeholder=\"Filter\u2026\"\n [(ngModel)]=\"col.filters![0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters![0].filterValue) {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters![1]?.filterOperation\"\n (ngModelChange)=\"col.filters![1].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of filterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"text\"\n class=\"search_input\"\n placeholder=\"And filter\u2026\"\n [(ngModel)]=\"col.filters![1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n }\n\n <!-- Number Filter -->\n @if (col.filterType === 'number') {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters?.[0]?.filterOperation\"\n (ngModelChange)=\"col.filters![0].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of numberFilterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"number\"\n class=\"search_input\"\n placeholder=\"Filter\u2026\"\n [(ngModel)]=\"col.filters![0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n\n <!-- Set Filter (Checkboxes) -->\n @if (col.filterType === 'set') {\n <div class=\"search_input\">\n <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n />\n </div>\n\n <div class=\"set_option_details\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"\n col.options?.length === col.selectedValues?.size\n \"\n (change)=\"toggleSelectAllSetFilter(col, $event)\"\n />\n <span>Select All</span>\n </label>\n\n @for (\n option of col.filteredOptions;\n track option\n ) {\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"\n col.selectedValues?.has(option)\n \"\n (change)=\"toggleSetOption(col, option, $event)\"\n />\n <span>{{ option }}</span>\n </label>\n }\n </div>\n }\n\n <div class=\"filter_btn\">\n <button (click)=\"resetFilter(col)\">Clear</button>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Three dots menu-->\n <div #triggerColMenu>\n @if (threeDotsMenuRequired) {\n <div\n class=\"three-dots\"\n (click)=\"openMenu($event, col, colIdx)\"\n >\n <img\n src=\"images/t-more-vertical.svg\"\n alt=\"Menu\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n </div>\n }\n </div>\n\n <!-- Column Resize Handle -->\n <span\n class=\"resize-handle\"\n (mousedown)=\"startResize($event, colIdx)\"\n >\n |\n\t </span>\n\t </div>\n\t </div>\n\n\t @if (menuVisible[colIdx]) {\n\t <div\n\t #colActionMenu\n\t class=\"dropdown_wrapper\"\n\t adaptivePosition\n\t [trigger]=\"triggerColMenu\"\n\t [parentContainer]=\"parent\"\n\t [matchWidth]=\"false\"\n\t [isColumnActionMenu]=\"true\"\n\t (click)=\"$event.stopPropagation()\"\n\t appOutsideClick\n\t (clickOutside)=\"onClickOutside()\"\n\t >\n\t <div class=\"right_click_dropdown\" id=\"table_scroll\">\n\t <!-- Sort Ascending -->\n\t @if (sortingType[colIdx] === 'dsc' || !sortingType[colIdx]) {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, 'asc', colIdx)\">\n\t <div class=\"left_item\">\n\t <img\n\t src=\"images/arrow-up.svg\"\n\t class=\"sorting_up\"\n\t [ngClass]=\"{ disable: !col.sortable }\"\n\t />\n\t <span class=\"text\">Sort Ascending</span>\n\t </div>\n\t </div>\n\t }\n\n\t <!-- Sort Descending -->\n\t @if (sortingType[colIdx] === 'asc' || !sortingType[colIdx]) {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, 'dsc', colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"images/arrow-down.svg\" alt=\"\" />\n\t <span class=\"text\">Sort Descending</span>\n\t </div>\n\t </div>\n\t }\n\n\t <!-- Clear Sort -->\n\t @if (sortingType[colIdx] === 'asc' || sortingType[colIdx] === 'dsc') {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, '', colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"images/trash-2.svg\" alt=\"\" />\n\t <span class=\"text\">Clear Sort</span>\n\t </div>\n\t </div>\n\t }\n\n\t <div class=\"divder\"></div>\n\n\t <!-- Pin Column -->\n\t <div\n\t class=\"right_click_item\"\n\t (mouseenter)=\"showPinActions($event)\"\n\t (mouseleave)=\"hidePinActions()\"\n\t >\n\t <div class=\"left_item\">\n\t <img src=\"images/pin.svg\" alt=\"\" />\n\t <span class=\"text\">Pin Column</span>\n\t </div>\n\t <div class=\"right_item\">\n\t <img src=\"images/chevron-right.svg\" alt=\"\" />\n\t @if (showPin) {\n\t <div class=\"second_dropdown\" #pinMenu>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'none')\">\n\t <div class=\"left_item\">\n\t @if ((pinActionClicked[col.colId || col.field] ) === 'none') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">No Pin</span>\n\t </div>\n\t </div>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'left')\">\n\t <div class=\"left_item\">\n\t @if (pinActionClicked[col.colId || col.field] === 'left') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">Pin Left</span>\n\t </div>\n\t </div>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'right')\">\n\t <div class=\"left_item\">\n\t @if (pinActionClicked[col.colId || col.field] === 'right') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">Pin Right</span>\n\t </div>\n\t </div>\n\t </div>\n\t }\n\t </div>\n\t </div>\n\n\t <!-- Autosize This Column -->\n\t <div class=\"right_click_item\" (click)=\"autosizeColumn(col, colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Autosize This Column</span>\n\t </div>\n\t </div>\n\n\t <!-- Autosize All Columns -->\n\t <div class=\"right_click_item\" (click)=\"autosizeAllColumns()\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Autosize All Columns</span>\n\t </div>\n\t </div>\n\n\t <div class=\"divder\"></div>\n\n\t <!-- Group by Column -->\n\t <div class=\"right_click_item\" (click)=\"groupByColumn(col, colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Group by {{ col.header || col.field }}</span>\n\t </div>\n\t </div>\n\n\t <!-- Choose Columns -->\n\t <div class=\"right_click_item\" (click)=\"showColumnChooser(colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Choose Columns</span>\n\t </div>\n\t </div>\n\n\t <!-- Reset Columns -->\n\t <div class=\"right_click_item\" (click)=\"resetColumns()\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Reset Columns</span>\n\t </div>\n\t </div>\n\t </div>\n\t </div>\n\t }\n\t </th>\n\t }\n\t }\n </tr>\n </thead>\n\n <tbody>\n @for (row of rows; track row.trackKey) {\n @if (row.kind === 'node') {\n <tr [class.disabled]=\"isDisabledRow(row)\">\n <!-- Checkbox column -->\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <td style=\"min-width: 50px; max-width: 50px\">\n @if (checkboxSelectionType === 'multiple') {\n <span class=\"checkbox_container\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row.node)\"\n (change)=\"onRowCheckboxChange($event, row.node)\"\n />\n </span>\n } @else {\n <span class=\"radio_option\">\n <input\n type=\"radio\"\n [name]=\"'row_' + row.trackKey\"\n [checked]=\"isRowSelected(row.node)\"\n (change)=\"onRowCheckboxChange($event, row.node)\"\n />\n <label [for]=\"'row_' + row.trackKey\"></label>\n </span>\n }\n </td>\n }\n\n <!-- Data columns -->\n @for (col of columns; track col.field; let colIndex = $index) {\n @if (col.active !== false) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : ''\n ]\"\n class=\"table_cell\"\n >\n @if (col.field === treeColumn.field) {\n @if (!col?.cellRenderer) {\n <div\n class=\"tree_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n @if (showToggleFor(row)) {\n <button\n class=\"toggle_btn\"\n type=\"button\"\n [disabled]=\"isDisabledRow(row)\"\n (click)=\"toggle(row.node, row.level, row.path)\"\n >\n <img\n [src]=\"resolveIconSrc(toggleIconFor(row))\"\n alt=\"\"\n />\n </button>\n } @else {\n <span class=\"toggle_spacer\"></span>\n }\n\n @if (showCheckboxFor(row)) {\n <input\n type=\"checkbox\"\n [disabled]=\"isDisabledRow(row)\"\n [checked]=\"isChecked(row.node)\"\n (change)=\"\n onCheckboxChange(\n row.node,\n row.level,\n row.path,\n ($any($event.target).checked)\n )\n \"\n />\n }\n\n @if (showNodeIconFor(row)) {\n @if (nodeIconFor(row); as icon) {\n <img\n class=\"node_icon\"\n [src]=\"resolveIconSrc(icon)\"\n alt=\"\"\n />\n }\n }\n\n @if (showLinkFor(row) && linkUrlFor(row); as url) {\n <a\n class=\"node_link\"\n [href]=\"url\"\n (click)=\"\n onLinkClicked(\n $event,\n row.node,\n row.level,\n row.path\n )\n \"\n >\n {{ labelFor(row) }}\n </a>\n } @else {\n <span class=\"node_label\">{{ labelFor(row) }}</span>\n }\n </div>\n } @else {\n <div\n [rowParam]=\"row.node\"\n [col]=\"col\"\n [api]=\"{ treeTableComponent: this }\"\n [currentValue]=\"getValue(row.node, col.field)\"\n appRendererParser\n [style.padding-left.px]=\"row.level * indentPx\"\n ></div>\n }\n } @else {\n <div class=\"col_wrapper\">\n @if (!col?.cellRenderer) {\n {{ getValue(row.node, col.field) }}\n } @else {\n <div\n [rowParam]=\"row.node\"\n [col]=\"col\"\n [api]=\"{ treeTableComponent: this }\"\n [currentValue]=\"getValue(row.node, col.field)\"\n appRendererParser\n ></div>\n }\n </div>\n }\n </td>\n }\n }\n </tr>\n } @else if (row.kind === 'loading') {\n <tr class=\"meta_row\">\n <td\n [attr.colspan]=\"\n columns.length + (checkBoxSelection ? 1 : 0)\n \"\n >\n <div\n class=\"meta_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n {{ loadingText }}\n </div>\n </td>\n </tr>\n } @else if (row.kind === 'no-data') {\n <tr class=\"meta_row\">\n <td\n [attr.colspan]=\"\n columns.length + (checkBoxSelection ? 1 : 0)\n \"\n >\n <div\n class=\"meta_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n {{ noDataText }}\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!rows || rows.length === 0) {\n <div class=\"empty_overlay\">\n <div class=\"empty_content\">\n <span>{{ noDataText }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.pointer,.cursor-pointer{cursor:pointer}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}.tableArea{width:100%;position:relative;display:flex;flex-direction:column;height:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.tableArea .table_wrapper{position:relative;overflow:auto;flex:1;min-height:calc(16.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(1.3333333333rem / var(--scale));background-color:var(--white)}.tableArea .table_wrapper.global{margin:0}.tableArea .table_wrapper .table-inner-wrapper{position:relative;width:100%}.tableArea .table_wrapper .table-inner-wrapper table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper .table-inner-wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper .table-inner-wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper .table-inner-wrapper table td,.tableArea .table_wrapper .table-inner-wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-right:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .table_wrapper .table-inner-wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper .table-inner-wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50);overflow:visible}.tableArea .table_wrapper .table-inner-wrapper table thead th:hover .text_wrapper{background-color:var(--neutral-200)}.tableArea .table_wrapper .table-inner-wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper .table-inner-wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));transition:background-color .12s ease-in-out}.tableArea .table_wrapper .table-inner-wrapper table tbody tr:hover,.tableArea .table_wrapper .table-inner-wrapper table tbody tr:hover td{background-color:var(--blue-100)!important}.tableArea .table_wrapper .table-inner-wrapper table tbody tr.disabled{opacity:.6;pointer-events:none}.tableArea .table_wrapper .table-inner-wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale));vertical-align:middle;line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper .table-inner-wrapper table tbody tr td:hover{background-color:var(--blue-100)!important}.tableArea .table_wrapper.tbody_height{height:calc(100% - 42px)}.tableArea .table_wrapper.no-horizontal-scroll{overflow-x:hidden}.tableArea.is-resizing .table_wrapper table th,.tableArea.is-resizing .table_wrapper table td{will-change:width;transition:width 80ms linear,min-width 80ms linear,max-width 80ms linear}.tableArea .th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale));position:relative}.tableArea .th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap;flex:1;min-width:0;cursor:pointer;padding:0 calc(.3333333333rem / var(--scale));border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .th_wraper .text_wrapper.sortable{-webkit-user-select:none;user-select:none}.tableArea .th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));cursor:grab;opacity:.6;transition:opacity .2s ease}.tableArea .th_wraper .text_wrapper .move-icon:hover{opacity:1}.tableArea .th_wraper .text_wrapper .ellipsis{flex:1;min-width:0}.tableArea .th_wraper .text_wrapper .headerName{text-transform:uppercase;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500)}.tableArea .th_wraper .text_wrapper .sorting_icon{display:inline-flex;align-items:center;margin-left:calc(.3333333333rem / var(--scale))}.tableArea .th_wraper .text_wrapper .sorting_icon img{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));min-width:fit-content}.tableArea .th_wraper .filter_three_dot_wrapper .filters,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .th_wraper .filter_three_dot_wrapper .filters img,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.tableArea .th_wraper .filter_three_dot_wrapper .filters:hover,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots:hover{background:var(--neutral-200)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown{position:absolute;top:calc(2.5rem / var(--scale));left:0;z-index:1000;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;min-width:calc(18.3333333333rem / var(--scale));padding:calc(1rem / var(--scale));max-height:calc(29.1666666667rem / var(--scale));overflow-y:auto}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group{display:flex;flex-direction:column;gap:calc(.6666666667rem / var(--scale));margin-bottom:calc(1rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group select,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group select{padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;background-color:var(--white);cursor:pointer}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group .search_input,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group .search_input{width:100%;padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;font-family:inherit}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group .search_input:focus,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group .search_input:focus{outline:none;border-color:var(--blue-600);box-shadow:0 0 0 calc(.25rem / var(--scale)) #667eea1a}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details{display:flex;flex-direction:column;gap:calc(.6666666667rem / var(--scale));max-height:calc(16.6666666667rem / var(--scale));overflow-y:auto;margin-bottom:calc(1rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale));cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-500)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label input[type=checkbox],.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label span,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label span{flex:1}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn{display:flex;justify-content:flex-end;gap:calc(.6666666667rem / var(--scale));padding-top:calc(.6666666667rem / var(--scale));border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn button,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn button{padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-600);color:var(--white);border:none;border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;font-size:calc(1rem / var(--scale));line-height:calc(1.3333333333rem / var(--scale));font-weight:600;transition:background-color .2s ease}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn button:hover,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn button:hover{background-color:var(--blue-700)}.tableArea .th_wraper .filter_three_dot_wrapper .resize-handle{cursor:col-resize;color:var(--neutral-200);font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400;padding:0 calc(.3333333333rem / var(--scale));-webkit-user-select:none;user-select:none;width:calc(1rem / var(--scale));text-align:center;flex-shrink:0}.tableArea .th_wraper .filter_three_dot_wrapper .resize-handle:hover{color:var(--neutral-500)}.tableArea .th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.tableArea .tree_cell{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale));min-height:calc(3.3333333333rem / var(--scale))}.tableArea .tree_cell .toggle_btn{width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .tree_cell .toggle_btn:hover{background:var(--neutral-200)}.tableArea .tree_cell .toggle_btn img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .tree_cell .toggle_spacer{width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));display:inline-block;flex-shrink:0}.tableArea .tree_cell .node_icon{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));flex-shrink:0}.tableArea .tree_cell .node_label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .tree_cell .node_link{color:var(--blue-600);text-decoration:none;cursor:pointer;transition:color .2s ease}.tableArea .tree_cell .node_link:hover{color:var(--blue-700);text-decoration:underline}.tableArea .tree_cell input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .col_wrapper{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .checkbox_container{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale))}.tableArea .checkbox_container input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .checkbox_container span{cursor:pointer;-webkit-user-select:none;user-select:none}.tableArea .radio_option{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale))}.tableArea .radio_option input[type=radio]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .radio_option label{cursor:pointer}.tableArea .meta_row td{background-color:var(--neutral-50);padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale))}.tableArea .meta_cell{color:var(--neutral-400);font-size:calc(1rem / var(--scale));line-height:calc(1.3333333333rem / var(--scale));font-weight:500;min-height:calc(1.8333333333rem / var(--scale));display:flex;align-items:center}.tableArea .empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffe6;z-index:10}.tableArea .empty_overlay .empty_content{text-align:center;color:var(--neutral-400);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .setting_options{position:absolute;top:40px;right:0;z-index:1000;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;min-width:calc(20.8333333333rem / var(--scale));max-height:calc(33.3333333333rem / var(--scale));overflow-y:auto}.tableArea .setting_options .column_header{padding:calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);text-transform:uppercase}.tableArea .setting_options .checkbox_container{padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .setting_options .checkbox_container input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .setting_options .checkbox_container span{cursor:pointer;-webkit-user-select:none;user-select:none}.tableArea .setting_options .item_container{max-height:calc(25rem / var(--scale));overflow-y:auto}.tableArea .setting_options .item_container .column_item{padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .setting_options .item_container .column_item:hover{background-color:var(--blue-100)}.tableArea .setting_options .item_container .column_item input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .setting_options .item_container .column_item span{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:1000;position:relative;width:calc(26.6666666667rem / var(--scale));right:0}.tableArea .dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.tableArea .dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.tableArea .dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.tableArea .dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.tableArea .dropdown_wrapper .right_click_item:hover,.tableArea .dropdown_wrapper .right_click_item.active{background-color:var(--blue-100)}.tableArea .dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tableArea .dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.tableArea .dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.tableArea .dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tableArea .second_dropdown{position:absolute;right:calc(-20.25rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.tableArea .pinned_column{background-color:var(--neutral-50)}.tableArea .drag-over{background-color:#e3f2fd}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.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: AdaptivePositionDirective, selector: "[adaptivePosition]", inputs: ["adaptive", "trigger", "parentContainer", "matchWidth", "closeOnOutside", "isAction", "isColumnActionMenu"] }, { kind: "directive", type: RendererParserDirective, selector: "[appRendererParser]", inputs: ["rowParam", "col", "api", "currentValue"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] });
3796
+ }
3797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CommonTreeTableComponent, decorators: [{
3798
+ type: Component,
3799
+ args: [{ selector: 'cats-tree-table', imports: [CommonModule, FormsModule, OutsideClickDirective, AdaptivePositionDirective, RendererParserDirective], template: "<div class=\"tableArea\" #table [class.is-resizing]=\"isResizing\">\n <!-- Settings Panel for Column Selection -->\n @if (settingsRequired && settingsClicked) {\n <div class=\"setting_options\" appOutsideClick (clickOutside)=\"hideSettings()\">\n <div class=\"column_header\">Select Headers</div>\n <div class=\"checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"activeAll\"\n (change)=\"activeAllSelection($event)\"\n />\n <span>Select All</span>\n </div>\n\n <div class=\"item_container\" id=\"table_scroll\">\n @for (col of columns; track col.field) {\n <div class=\"column_item checkbox_container\">\n <input\n class=\"custom_check_box\"\n type=\"checkbox\"\n [checked]=\"col.active\"\n (change)=\"changeActiveColSelection($event, col)\"\n />\n <span>{{ col.header || col.field | titlecase }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Main Table Wrapper -->\n <div class=\"table_wrapper global\" id=\"table_scroll\" #parent>\n <div class=\"table-inner-wrapper\">\n <table cellspacing=\"0\" cellpadding=\"0\" >\n <thead class=\"sticky-top\">\n <tr>\n <!-- Checkbox header column -->\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <th style=\"min-width: 50px; width: 50px; max-width: 50px\">\n <div class=\"th_wraper\">\n <div class=\"checkbox_container\">\n <input\n class=\"pointer custom_check_box\"\n type=\"checkbox\"\n [checked]=\"checkAllSelected()\"\n [indeterminate]=\"checkIndeterminate()\"\n (change)=\"onHeaderCheckboxChange($event)\"\n />\n </div>\n <div class=\"filter_three_dot_wrapper\">\n <span class=\"resize-handle default_cursor\"> | </span>\n </div>\n </div>\n </th>\n }\n\n <!-- Column Headers -->\n @for (col of columns; track col.field; let colIdx = $index) {\n @if (col.active !== false) {\n <th\n [ngStyle]=\"getStyle(col)\"\n [attr.data-col-idx]=\"colIdx\"\n [ngClass]=\"{\n 'drag-over': dragOverIndex === colIdx,\n 'pinned_column': col.leftPinned || col.rightPinned\n }\"\n (mouseenter)=\"showMoveIcon[colIdx] = true\"\n (mouseleave)=\"showMoveIcon[colIdx] = false\"\n >\n <div class=\"th_wraper\">\n <!-- Sortable column header -->\n <div\n class=\"text_wrapper\"\n [ngClass]=\"{ sortable: col.sortable }\"\n (click)=\"onSortingRowData(colIdx, col)\"\n >\n @if (showMoveIcon[colIdx] && col.sortable) {\n <img\n src=\"images/t-move.svg\"\n class=\"move-icon\"\n [draggable]=\"!isResizing\"\n (dragstart)=\"onDragStart($event, colIdx)\"\n (dragend)=\"onDragEnd()\"\n />\n }\n <span class=\"ellipsis headerName\">{{ col.header || col.field }}</span>\n\n <!-- Sorting indicator -->\n @if (\n sortingRequired &&\n sortingColumnIndex === colIdx &&\n col.sortable\n ) {\n <span class=\"sorting_icon\">\n @if (sortingType[colIdx] === 'asc') {\n <img src=\"images/sort-ascending.svg\" alt=\"Ascending\" />\n } @else if (sortingType[colIdx] === 'dsc') {\n <img src=\"images/sort-descending.svg\" alt=\"Descending\" />\n }\n </span>\n }\n </div>\n\n <!-- Filter and Menu -->\n <div class=\"filter_three_dot_wrapper\">\n <!-- Filter Icon -->\n @if (filterRequired && col.filterable) {\n <div\n class=\"filters\"\n (click)=\"toggleFilter(col, colIdx, $event)\"\n >\n @if (activeFilters.has(col.field)) {\n <img src=\"images/filter-active.svg\" alt=\"Filter active\" />\n } @else {\n <img src=\"images/filter.svg\" alt=\"Filter\" />\n }\n\n <!-- Filter Dropdown -->\n @if (activeFilterIndex === colIdx) {\n <div\n class=\"filter_dropdown\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- Text Filter -->\n @if (col.filterType === 'text') {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters?.[0]?.filterOperation\"\n (ngModelChange)=\"col.filters![0].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of filterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"text\"\n class=\"search_input\"\n placeholder=\"Filter\u2026\"\n [(ngModel)]=\"col.filters![0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n\n @if (col.filters![0].filterValue) {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters![1]?.filterOperation\"\n (ngModelChange)=\"col.filters![1].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of filterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"text\"\n class=\"search_input\"\n placeholder=\"And filter\u2026\"\n [(ngModel)]=\"col.filters![1].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n }\n\n <!-- Number Filter -->\n @if (col.filterType === 'number') {\n <div class=\"filter_input_group\">\n <select\n [ngModel]=\"col.filters?.[0]?.filterOperation\"\n (ngModelChange)=\"col.filters![0].filterOperation = $event; applyAllFilters()\"\n >\n @for (opt of numberFilterOptions; track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n <input\n type=\"number\"\n class=\"search_input\"\n placeholder=\"Filter\u2026\"\n [(ngModel)]=\"col.filters![0].filterValue\"\n (keyup)=\"applyAllFilters()\"\n />\n </div>\n }\n\n <!-- Set Filter (Checkboxes) -->\n @if (col.filterType === 'set') {\n <div class=\"search_input\">\n <input\n type=\"text\"\n placeholder=\"Search...\"\n (input)=\"filterSetOptions(col, $event)\"\n />\n </div>\n\n <div class=\"set_option_details\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"\n col.options?.length === col.selectedValues?.size\n \"\n (change)=\"toggleSelectAllSetFilter(col, $event)\"\n />\n <span>Select All</span>\n </label>\n\n @for (\n option of col.filteredOptions;\n track option\n ) {\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"\n col.selectedValues?.has(option)\n \"\n (change)=\"toggleSetOption(col, option, $event)\"\n />\n <span>{{ option }}</span>\n </label>\n }\n </div>\n }\n\n <div class=\"filter_btn\">\n <button (click)=\"resetFilter(col)\">Clear</button>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Three dots menu-->\n <div #triggerColMenu>\n @if (threeDotsMenuRequired) {\n <div\n class=\"three-dots\"\n (click)=\"openMenu($event, col, colIdx)\"\n >\n <img\n src=\"images/t-more-vertical.svg\"\n alt=\"Menu\"\n [draggable]=\"false\"\n (dragstart)=\"\n $event.preventDefault();\n $event.stopPropagation()\n \"\n />\n </div>\n }\n </div>\n\n <!-- Column Resize Handle -->\n <span\n class=\"resize-handle\"\n (mousedown)=\"startResize($event, colIdx)\"\n >\n |\n\t </span>\n\t </div>\n\t </div>\n\n\t @if (menuVisible[colIdx]) {\n\t <div\n\t #colActionMenu\n\t class=\"dropdown_wrapper\"\n\t adaptivePosition\n\t [trigger]=\"triggerColMenu\"\n\t [parentContainer]=\"parent\"\n\t [matchWidth]=\"false\"\n\t [isColumnActionMenu]=\"true\"\n\t (click)=\"$event.stopPropagation()\"\n\t appOutsideClick\n\t (clickOutside)=\"onClickOutside()\"\n\t >\n\t <div class=\"right_click_dropdown\" id=\"table_scroll\">\n\t <!-- Sort Ascending -->\n\t @if (sortingType[colIdx] === 'dsc' || !sortingType[colIdx]) {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, 'asc', colIdx)\">\n\t <div class=\"left_item\">\n\t <img\n\t src=\"images/arrow-up.svg\"\n\t class=\"sorting_up\"\n\t [ngClass]=\"{ disable: !col.sortable }\"\n\t />\n\t <span class=\"text\">Sort Ascending</span>\n\t </div>\n\t </div>\n\t }\n\n\t <!-- Sort Descending -->\n\t @if (sortingType[colIdx] === 'asc' || !sortingType[colIdx]) {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, 'dsc', colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"images/arrow-down.svg\" alt=\"\" />\n\t <span class=\"text\">Sort Descending</span>\n\t </div>\n\t </div>\n\t }\n\n\t <!-- Clear Sort -->\n\t @if (sortingType[colIdx] === 'asc' || sortingType[colIdx] === 'dsc') {\n\t <div class=\"right_click_item\" (click)=\"onSort(col, '', colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"images/trash-2.svg\" alt=\"\" />\n\t <span class=\"text\">Clear Sort</span>\n\t </div>\n\t </div>\n\t }\n\n\t <div class=\"divder\"></div>\n\n\t <!-- Pin Column -->\n\t <div\n\t class=\"right_click_item\"\n\t (mouseenter)=\"showPinActions($event)\"\n\t (mouseleave)=\"hidePinActions()\"\n\t >\n\t <div class=\"left_item\">\n\t <img src=\"images/pin.svg\" alt=\"\" />\n\t <span class=\"text\">Pin Column</span>\n\t </div>\n\t <div class=\"right_item\">\n\t <img src=\"images/chevron-right.svg\" alt=\"\" />\n\t @if (showPin) {\n\t <div class=\"second_dropdown\" #pinMenu>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'none')\">\n\t <div class=\"left_item\">\n\t @if ((pinActionClicked[col.colId || col.field] ) === 'none') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">No Pin</span>\n\t </div>\n\t </div>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'left')\">\n\t <div class=\"left_item\">\n\t @if (pinActionClicked[col.colId || col.field] === 'left') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">Pin Left</span>\n\t </div>\n\t </div>\n\t <div class=\"right_click_item\" (click)=\"pinColumn(col, colIdx, 'right')\">\n\t <div class=\"left_item\">\n\t @if (pinActionClicked[col.colId || col.field] === 'right') {\n\t <img src=\"images/check.svg\" alt=\"\" />\n\t } @else {\n\t <img src=\"\" alt=\"\" />\n\t }\n\t <span class=\"text\">Pin Right</span>\n\t </div>\n\t </div>\n\t </div>\n\t }\n\t </div>\n\t </div>\n\n\t <!-- Autosize This Column -->\n\t <div class=\"right_click_item\" (click)=\"autosizeColumn(col, colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Autosize This Column</span>\n\t </div>\n\t </div>\n\n\t <!-- Autosize All Columns -->\n\t <div class=\"right_click_item\" (click)=\"autosizeAllColumns()\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Autosize All Columns</span>\n\t </div>\n\t </div>\n\n\t <div class=\"divder\"></div>\n\n\t <!-- Group by Column -->\n\t <div class=\"right_click_item\" (click)=\"groupByColumn(col, colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Group by {{ col.header || col.field }}</span>\n\t </div>\n\t </div>\n\n\t <!-- Choose Columns -->\n\t <div class=\"right_click_item\" (click)=\"showColumnChooser(colIdx)\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Choose Columns</span>\n\t </div>\n\t </div>\n\n\t <!-- Reset Columns -->\n\t <div class=\"right_click_item\" (click)=\"resetColumns()\">\n\t <div class=\"left_item\">\n\t <img src=\"\" alt=\"\" />\n\t <span class=\"text\">Reset Columns</span>\n\t </div>\n\t </div>\n\t </div>\n\t </div>\n\t }\n\t </th>\n\t }\n\t }\n </tr>\n </thead>\n\n <tbody>\n @for (row of rows; track row.trackKey) {\n @if (row.kind === 'node') {\n <tr [class.disabled]=\"isDisabledRow(row)\">\n <!-- Checkbox column -->\n @if (checkBoxSelection && atLeastOneColumnChecked) {\n <td style=\"min-width: 50px; max-width: 50px\">\n @if (checkboxSelectionType === 'multiple') {\n <span class=\"checkbox_container\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row.node)\"\n (change)=\"onRowCheckboxChange($event, row.node)\"\n />\n </span>\n } @else {\n <span class=\"radio_option\">\n <input\n type=\"radio\"\n [name]=\"'row_' + row.trackKey\"\n [checked]=\"isRowSelected(row.node)\"\n (change)=\"onRowCheckboxChange($event, row.node)\"\n />\n <label [for]=\"'row_' + row.trackKey\"></label>\n </span>\n }\n </td>\n }\n\n <!-- Data columns -->\n @for (col of columns; track col.field; let colIndex = $index) {\n @if (col.active !== false) {\n <td\n [ngStyle]=\"getStyle(col)\"\n [ngClass]=\"[\n col.leftPinned || col.rightPinned\n ? 'pinned_column'\n : ''\n ]\"\n class=\"table_cell\"\n >\n @if (col.field === treeColumn.field) {\n @if (!col?.cellRenderer) {\n <div\n class=\"tree_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n @if (showToggleFor(row)) {\n <button\n class=\"toggle_btn\"\n type=\"button\"\n [disabled]=\"isDisabledRow(row)\"\n (click)=\"toggle(row.node, row.level, row.path)\"\n >\n <img\n [src]=\"resolveIconSrc(toggleIconFor(row))\"\n alt=\"\"\n />\n </button>\n } @else {\n <span class=\"toggle_spacer\"></span>\n }\n\n @if (showCheckboxFor(row)) {\n <input\n type=\"checkbox\"\n [disabled]=\"isDisabledRow(row)\"\n [checked]=\"isChecked(row.node)\"\n (change)=\"\n onCheckboxChange(\n row.node,\n row.level,\n row.path,\n ($any($event.target).checked)\n )\n \"\n />\n }\n\n @if (showNodeIconFor(row)) {\n @if (nodeIconFor(row); as icon) {\n <img\n class=\"node_icon\"\n [src]=\"resolveIconSrc(icon)\"\n alt=\"\"\n />\n }\n }\n\n @if (showLinkFor(row) && linkUrlFor(row); as url) {\n <a\n class=\"node_link\"\n [href]=\"url\"\n (click)=\"\n onLinkClicked(\n $event,\n row.node,\n row.level,\n row.path\n )\n \"\n >\n {{ labelFor(row) }}\n </a>\n } @else {\n <span class=\"node_label\">{{ labelFor(row) }}</span>\n }\n </div>\n } @else {\n <div\n [rowParam]=\"row.node\"\n [col]=\"col\"\n [api]=\"{ treeTableComponent: this }\"\n [currentValue]=\"getValue(row.node, col.field)\"\n appRendererParser\n [style.padding-left.px]=\"row.level * indentPx\"\n ></div>\n }\n } @else {\n <div class=\"col_wrapper\">\n @if (!col?.cellRenderer) {\n {{ getValue(row.node, col.field) }}\n } @else {\n <div\n [rowParam]=\"row.node\"\n [col]=\"col\"\n [api]=\"{ treeTableComponent: this }\"\n [currentValue]=\"getValue(row.node, col.field)\"\n appRendererParser\n ></div>\n }\n </div>\n }\n </td>\n }\n }\n </tr>\n } @else if (row.kind === 'loading') {\n <tr class=\"meta_row\">\n <td\n [attr.colspan]=\"\n columns.length + (checkBoxSelection ? 1 : 0)\n \"\n >\n <div\n class=\"meta_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n {{ loadingText }}\n </div>\n </td>\n </tr>\n } @else if (row.kind === 'no-data') {\n <tr class=\"meta_row\">\n <td\n [attr.colspan]=\"\n columns.length + (checkBoxSelection ? 1 : 0)\n \"\n >\n <div\n class=\"meta_cell\"\n [style.padding-left.px]=\"row.level * indentPx\"\n >\n {{ noDataText }}\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n\n @if (!rows || rows.length === 0) {\n <div class=\"empty_overlay\">\n <div class=\"empty_content\">\n <span>{{ noDataText }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [":root{--white: #ffffff;--pagination-text: var(--neutral-500);--neutral-50: #f0f0f0;--neutral-100: #e6e7e8;--neutral-200: #dadbdc;--neutral-300: #c0c2c5;--neutral-400: #81858a;--neutral-500: #434a51;--neutral-600: #040d17;--blue-50: #f7fafe;--blue-100: #eaf3fd;--blue-300: #c8dff9;--blue-600: #2680ea;--blue-700: #1c60af;--grey-50: #e9eaeb;--green-100: #ecf4ec;--green-200: #e1eee2;--green-600: #388e3c;--green-700: #2a6a2d;--red: #ff0000;--red-100: #faeaea;--red-300: #f0c9c9;--red-700: #941e1e;--yellow-100: #fff9e7;--yellow-300: #ffefc1;--yellow-700: #bf9105;--orange-600: #ff9800;--box-shadow: #0a0d1214}html{font-size:12px}#table_scroll::-webkit-scrollbar-button{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale));background-color:var(--neutral-100);border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;display:none;background-repeat:no-repeat;background-position:center;background-size:calc(.8333333333rem / var(--scale))}#table_scroll::-webkit-scrollbar-button:hover{background-color:var(--neutral-300)}#table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement{background-image:url(/images/chevron-up.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:vertical:increment{background-image:url(/images/chevron-down.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement{background-image:url(/images/chevron-left.svg);display:block}#table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment{background-image:url(/images/chevron-right.svg);display:block}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement{display:block;height:calc(4.5833333333rem / var(--scale));background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-100) 72.5%,var(--neutral-100) 100%);border-top-left-radius:0;border-top-right-radius:0}#table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement:hover{background:url(/images/chevron-up.svg) bottom/calc(1.25rem / var(--scale)) no-repeat,linear-gradient(to bottom,rgb(240,240,240) 0%,rgb(240,240,240) 70.5%,var(--neutral-200) 70.5%,var(--neutral-200) 72.5%,var(--neutral-300) 72.5%,var(--neutral-300) 100%)}.radio_option{display:flex;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:not(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:not(:checked)[disabled]+label:before{background-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label{color:var(--neutral-300);cursor:default}.radio_option [type=radio]:is(:checked)[disabled]+label:before{border-color:var(--neutral-100)}.radio_option [type=radio]:is(:checked)[disabled]+label:after{background-color:var(--neutral-100)}.radio_option [type=radio]:not(:checked)+label:before,.radio_option [type=radio]:checked+label:before{content:\"\";position:absolute;top:0;left:0;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background:var(--white)}.radio_option [type=radio]:checked,.radio_option [type=radio]:not(:checked){position:absolute;left:-9999px}.radio_option [type=radio]:checked+label,.radio_option [type=radio]:not(:checked)+label{position:relative;padding-left:calc(2rem / var(--scale));cursor:pointer;display:inline-block;color:var(--neutral-600);line-height:calc(1.3333333333rem / var(--scale))}.radio_option [type=radio]:checked+label:before{border:calc(.125rem / var(--scale)) solid var(--blue-600);border-radius:100%}.radio_option [type=radio]:not(:checked)+label:before{border:calc(.125rem / var(--scale)) solid var(--neutral-200);border-radius:100%}.radio_option [type=radio]:checked+label:after,.radio_option [type=radio]:not(:checked)+label:after{content:\"\";width:calc(.5rem / var(--scale));height:calc(.5rem / var(--scale));background:var(--blue-600);position:absolute;top:calc(.4166666667rem / var(--scale));left:calc(.4166666667rem / var(--scale));border-radius:100%;transition:all .2s ease}.radio_option [type=radio]:not(:checked)+label:after{opacity:0;transform:scale(0)}.radio_option [type=radio]:checked+label:after{opacity:1;transform:scale(1)}.checkbox_container{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.checkbox_container input[type=checkbox].custom_check_box[disabled],.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]{cursor:default;background-color:var(--neutral-300);border-color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box[disabled]+span,.checkbox_container input[type=checkbox].custom_check_box:checked[disabled]+span{color:var(--neutral-300)}.checkbox_container input[type=checkbox].custom_check_box{appearance:none;-webkit-appearance:none;width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));min-width:calc(1.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));cursor:pointer;background-color:var(--white);position:relative;transition:all .2s ease}.checkbox_container input[type=checkbox].custom_check_box:after{content:\"\";display:none;position:absolute;top:calc(-.0833333333rem / var(--scale));left:calc(-.0833333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));background-size:auto;background-repeat:no-repeat;background-position:center}.checkbox_container input[type=checkbox].custom_check_box:checked{border-color:var(--blue-600);background-color:var(--blue-600)}.checkbox_container input[type=checkbox].custom_check_box:checked:after{display:block;background-image:url(/images/check-white.svg);background-size:calc(.6666666667rem / var(--scale)) calc(.5rem / var(--scale))}.checkbox_container input[type=checkbox].custom_check_box:indeterminate{border-color:var(--blue-600);background-color:var(--white)}.checkbox_container input[type=checkbox].custom_check_box:indeterminate:after{display:block;top:0;background-image:url(/images/minus-blue.svg);background-size:calc(.5833333333rem / var(--scale)) calc(.0833333333rem / var(--scale))}.text_filter_section{position:relative;width:100%}.text_filter_section .single_select_dropdown{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;background-color:var(--white);color:var(--neutral-600);cursor:pointer}.text_filter_section .single_select_dropdown .left_details{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:0;width:calc(100% - 1.6666666667rem / var(--scale));height:\"\"}.text_filter_section .single_select_dropdown .arrow_icon img{max-width:calc(1.6666666667rem / var(--scale))}.text_filter_section .dropdown_list{border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));width:100%;max-height:calc(14.3333333333rem / var(--scale));overflow:auto;position:absolute;z-index:2;background:var(--white);box-shadow:calc(0rem / var(--scale)) calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);top:calc(3.3333333333rem / var(--scale))}.text_filter_section .dropdown_list ul{list-style-type:none;padding:calc(.3333333333rem / var(--scale)) 0}.text_filter_section .dropdown_list ul:has(.no_data) li:hover{background-color:unset;cursor:default}.text_filter_section .dropdown_list ul li{height:calc(3.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));cursor:pointer;color:var(--neutral-600)}.text_filter_section .dropdown_list ul li:hover{background-color:var(--neutral-50)}.text_filter_section .dropdown_list ul li.disabled_option{opacity:.3;pointer-events:none}.search_input{position:relative;width:100%;height:calc(3.3333333333rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));padding:calc(.8333333333rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--white);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale))}.search_input img{width:calc(1.6666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale));opacity:.5}.search_input input{width:100%;height:100%;border:0;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-600)}.search_input input::placeholder{color:var(--neutral-500)}.table_switch_wrapper{display:flex}.table_switch_wrapper .switch{position:relative;display:inline-block;width:calc(2.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.table_switch_wrapper .switch input{display:none}.table_switch_wrapper .switch .slider{position:absolute;cursor:pointer;background-color:var(--neutral-100);border-radius:calc(1.3333333333rem / var(--scale));inset:0;transition:.3s}.table_switch_wrapper .switch .slider:before{content:\"\";position:absolute;width:calc(1rem / var(--scale));height:calc(1rem / var(--scale));left:calc(.1666666667rem / var(--scale));bottom:calc(.1666666667rem / var(--scale));background-color:var(--white);border-radius:50%;transition:.3s;box-shadow:0 calc(.0666666667rem / var(--scale)) calc(.2rem / var(--scale)) 0 var(--box-shadow)}.table_switch_wrapper .switch input:checked+.slider{background-color:var(--blue-600)}.table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1rem / var(--scale)))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch{width:calc(3.1666666667rem / var(--scale));height:calc(1.6666666667rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch .slider:before{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea.big .table_wrapper table tbody tr :host .table_switch_wrapper .switch input:checked+.slider:before{transform:translate(calc(1.5rem / var(--scale)))}.text-primary{color:var(--blue-600)}.text-danger{color:var(--red)!important}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}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))}}.pointer,.cursor-pointer{cursor:pointer}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}.tableArea{width:100%;position:relative;display:flex;flex-direction:column;height:100%;border-radius:calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400}.tableArea .table_wrapper{position:relative;overflow:auto;flex:1;min-height:calc(16.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(1.3333333333rem / var(--scale));background-color:var(--white)}.tableArea .table_wrapper.global{margin:0}.tableArea .table_wrapper .table-inner-wrapper{position:relative;width:100%}.tableArea .table_wrapper .table-inner-wrapper table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;border-radius:calc(.3333333333rem / var(--scale));position:relative;z-index:1;background-color:var(--white)}.tableArea .table_wrapper .table-inner-wrapper table img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .table_wrapper .table-inner-wrapper table .sticky-top{top:0;position:sticky;z-index:20}.tableArea .table_wrapper .table-inner-wrapper table td,.tableArea .table_wrapper .table-inner-wrapper table th{font-size:var(--fs-14);line-height:1;font-weight:400;color:var(--neutral-500);text-align:left;border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-100);border-right:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .table_wrapper .table-inner-wrapper table thead tr{height:calc(3.3333333333rem / var(--scale));background-color:var(--neutral-50)}.tableArea .table_wrapper .table-inner-wrapper table thead th{position:relative;padding:0 0 0 calc(.6666666667rem / var(--scale));background-color:var(--neutral-50);overflow:visible}.tableArea .table_wrapper .table-inner-wrapper table thead th:hover .text_wrapper{background-color:var(--neutral-200)}.tableArea .table_wrapper .table-inner-wrapper table tbody{background-color:var(--white)}.tableArea .table_wrapper .table-inner-wrapper table tbody tr{overflow:visible;height:calc(3.3333333333rem / var(--scale));transition:background-color .12s ease-in-out}.tableArea .table_wrapper .table-inner-wrapper table tbody tr:hover,.tableArea .table_wrapper .table-inner-wrapper table tbody tr:hover td{background-color:var(--blue-100)!important}.tableArea .table_wrapper .table-inner-wrapper table tbody tr.disabled{opacity:.6;pointer-events:none}.tableArea .table_wrapper .table-inner-wrapper table tbody tr td{overflow:visible;position:relative;padding:calc(.3333333333rem / var(--scale)) calc(.6666666667rem / var(--scale));vertical-align:middle;line-height:calc(1.6666666667rem / var(--scale))}.tableArea .table_wrapper .table-inner-wrapper table tbody tr td:hover{background-color:var(--blue-100)!important}.tableArea .table_wrapper.tbody_height{height:calc(100% - 42px)}.tableArea .table_wrapper.no-horizontal-scroll{overflow-x:hidden}.tableArea.is-resizing .table_wrapper table th,.tableArea.is-resizing .table_wrapper table td{will-change:width;transition:width 80ms linear,min-width 80ms linear,max-width 80ms linear}.tableArea .th_wraper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));height:calc(1.3333333333rem / var(--scale));position:relative}.tableArea .th_wraper .text_wrapper{display:flex;flex-direction:row;justify-content:\"\";align-items:center;flex-wrap:nowrap;gap:calc(.3333333333rem / var(--scale));white-space:nowrap;flex:1;min-width:0;cursor:pointer;padding:0 calc(.3333333333rem / var(--scale));border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .th_wraper .text_wrapper.sortable{-webkit-user-select:none;user-select:none}.tableArea .th_wraper .text_wrapper img{min-width:calc(1.3333333333rem / var(--scale));width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .th_wraper .text_wrapper .move-icon{margin-right:calc(.3333333333rem / var(--scale));cursor:grab;opacity:.6;transition:opacity .2s ease}.tableArea .th_wraper .text_wrapper .move-icon:hover{opacity:1}.tableArea .th_wraper .text_wrapper .ellipsis{flex:1;min-width:0}.tableArea .th_wraper .text_wrapper .headerName{text-transform:uppercase;font-size:var(--fs-14);line-height:140%;font-weight:600;color:var(--neutral-500)}.tableArea .th_wraper .text_wrapper .sorting_icon{display:inline-flex;align-items:center;margin-left:calc(.3333333333rem / var(--scale))}.tableArea .th_wraper .text_wrapper .sorting_icon img{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale));min-width:fit-content}.tableArea .th_wraper .filter_three_dot_wrapper .filters,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .th_wraper .filter_three_dot_wrapper .filters img,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots img{min-width:calc(1.5rem / var(--scale));width:calc(1.5rem / var(--scale));height:calc(1.5rem / var(--scale));cursor:pointer}.tableArea .th_wraper .filter_three_dot_wrapper .filters:hover,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots:hover{background:var(--neutral-200)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown{position:absolute;top:calc(2.5rem / var(--scale));left:0;z-index:1000;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;min-width:calc(18.3333333333rem / var(--scale));padding:calc(1rem / var(--scale));max-height:calc(29.1666666667rem / var(--scale));overflow-y:auto}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group{display:flex;flex-direction:column;gap:calc(.6666666667rem / var(--scale));margin-bottom:calc(1rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group select,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group select{padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500;background-color:var(--white);cursor:pointer}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group .search_input,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group .search_input{width:100%;padding:calc(.5rem / var(--scale)) calc(.6666666667rem / var(--scale));border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.1666666667rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;font-family:inherit}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_input_group .search_input:focus,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_input_group .search_input:focus{outline:none;border-color:var(--blue-600);box-shadow:0 0 0 calc(.25rem / var(--scale)) #667eea1a}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details{display:flex;flex-direction:column;gap:calc(.6666666667rem / var(--scale));max-height:calc(16.6666666667rem / var(--scale));overflow-y:auto;margin-bottom:calc(1rem / var(--scale))}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale));cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:400;color:var(--neutral-500)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label input[type=checkbox],.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .set_option_details label span,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .set_option_details label span{flex:1}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn{display:flex;justify-content:flex-end;gap:calc(.6666666667rem / var(--scale));padding-top:calc(.6666666667rem / var(--scale));border-top:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn button,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn button{padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale));background-color:var(--blue-600);color:var(--white);border:none;border-radius:calc(.1666666667rem / var(--scale));cursor:pointer;font-size:calc(1rem / var(--scale));line-height:calc(1.3333333333rem / var(--scale));font-weight:600;transition:background-color .2s ease}.tableArea .th_wraper .filter_three_dot_wrapper .filters .filter_dropdown .filter_btn button:hover,.tableArea .th_wraper .filter_three_dot_wrapper .three-dots .filter_dropdown .filter_btn button:hover{background-color:var(--blue-700)}.tableArea .th_wraper .filter_three_dot_wrapper .resize-handle{cursor:col-resize;color:var(--neutral-200);font-size:var(--fs-24);line-height:calc(1.3333333333rem / var(--scale));font-weight:400;padding:0 calc(.3333333333rem / var(--scale));-webkit-user-select:none;user-select:none;width:calc(1rem / var(--scale));text-align:center;flex-shrink:0}.tableArea .th_wraper .filter_three_dot_wrapper .resize-handle:hover{color:var(--neutral-500)}.tableArea .th_wraper .filter_three_dot_wrapper .default_cursor{cursor:default}.tableArea .tree_cell{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale));min-height:calc(3.3333333333rem / var(--scale))}.tableArea .tree_cell .toggle_btn{width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:0;cursor:pointer;border-radius:calc(.1666666667rem / var(--scale));transition:background-color .2s ease}.tableArea .tree_cell .toggle_btn:hover{background:var(--neutral-200)}.tableArea .tree_cell .toggle_btn img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale))}.tableArea .tree_cell .toggle_spacer{width:calc(1.8333333333rem / var(--scale));height:calc(1.8333333333rem / var(--scale));display:inline-block;flex-shrink:0}.tableArea .tree_cell .node_icon{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));flex-shrink:0}.tableArea .tree_cell .node_label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .tree_cell .node_link{color:var(--blue-600);text-decoration:none;cursor:pointer;transition:color .2s ease}.tableArea .tree_cell .node_link:hover{color:var(--blue-700);text-decoration:underline}.tableArea .tree_cell input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .col_wrapper{display:flex;align-items:center;gap:calc(.8333333333rem / var(--scale));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableArea .checkbox_container{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale))}.tableArea .checkbox_container input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .checkbox_container span{cursor:pointer;-webkit-user-select:none;user-select:none}.tableArea .radio_option{display:flex;align-items:center;gap:calc(.6666666667rem / var(--scale))}.tableArea .radio_option input[type=radio]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .radio_option label{cursor:pointer}.tableArea .meta_row td{background-color:var(--neutral-50);padding:calc(.5rem / var(--scale)) calc(1rem / var(--scale))}.tableArea .meta_cell{color:var(--neutral-400);font-size:calc(1rem / var(--scale));line-height:calc(1.3333333333rem / var(--scale));font-weight:500;min-height:calc(1.8333333333rem / var(--scale));display:flex;align-items:center}.tableArea .empty_overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffe6;z-index:10}.tableArea .empty_overlay .empty_content{text-align:center;color:var(--neutral-400);font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .setting_options{position:absolute;top:40px;right:0;z-index:1000;background:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 0 calc(1.6666666667rem / var(--scale)) 0 #00000029;min-width:calc(20.8333333333rem / var(--scale));max-height:calc(33.3333333333rem / var(--scale));overflow-y:auto}.tableArea .setting_options .column_header{padding:calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale));font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:600;color:var(--neutral-500);border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);text-transform:uppercase}.tableArea .setting_options .checkbox_container{padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .setting_options .checkbox_container input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .setting_options .checkbox_container span{cursor:pointer;-webkit-user-select:none;user-select:none}.tableArea .setting_options .item_container{max-height:calc(25rem / var(--scale));overflow-y:auto}.tableArea .setting_options .item_container .column_item{padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));border-bottom:calc(.0833333333rem / var(--scale)) solid var(--neutral-200)}.tableArea .setting_options .item_container .column_item:hover{background-color:var(--blue-100)}.tableArea .setting_options .item_container .column_item input[type=checkbox]{cursor:pointer;accent-color:var(--blue-600)}.tableArea .setting_options .item_container .column_item span{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-14);line-height:calc(1.6666666667rem / var(--scale));font-weight:500}.tableArea .dropdown_wrapper{background-color:var(--white);box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.3333333333rem / var(--scale));z-index:1000;position:relative;width:calc(26.6666666667rem / var(--scale));right:0}.tableArea .dropdown_wrapper .divder{margin:calc(.6666666667rem / var(--scale)) calc(1.3333333333rem / var(--scale));width:calc(100% - 2.6666666667rem / var(--scale));height:calc(.0833333333rem / var(--scale));background:var(--neutral-300)}.tableArea .dropdown_wrapper .right_click_dropdown{margin:calc(.3333333333rem / var(--scale)) 0}.tableArea .dropdown_wrapper .right_click_item{min-height:calc(3.3333333333rem / var(--scale));width:100%;padding:calc(.8333333333rem / var(--scale)) calc(1.3333333333rem / var(--scale));display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0;cursor:pointer;position:relative}.tableArea .dropdown_wrapper .right_click_item.disabled_option{opacity:.4;pointer-events:none}.tableArea .dropdown_wrapper .right_click_item:hover,.tableArea .dropdown_wrapper .right_click_item.active{background-color:var(--blue-100)}.tableArea .dropdown_wrapper .right_click_item .left_item{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:calc(.6666666667rem / var(--scale))}.tableArea .dropdown_wrapper .right_click_item .text{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-600)}.tableArea .dropdown_wrapper .right_click_item .right_item{font-size:calc(1.1666666667rem / var(--scale));line-height:calc(1.6666666667rem / var(--scale));font-weight:500;color:var(--neutral-500)}.tableArea .dropdown_wrapper .right_click_item img{width:calc(1.3333333333rem / var(--scale));height:calc(1.3333333333rem / var(--scale));opacity:.7}.tableArea .second_dropdown{position:absolute;right:calc(-20.25rem / var(--scale));top:calc(-.4166666667rem / var(--scale));width:calc(20.25rem / var(--scale));padding:calc(.3333333333rem / var(--scale)) 0;max-height:calc(40.8333333333rem / var(--scale));overflow-y:auto;background-color:var(--white);border:calc(.0833333333rem / var(--scale)) solid var(--neutral-200);border-radius:calc(.6666666667rem / var(--scale));box-shadow:0 calc(1rem / var(--scale)) calc(1.3333333333rem / var(--scale)) calc(-.3333333333rem / var(--scale)) var(--box-shadow)}.tableArea .pinned_column{background-color:var(--neutral-50)}.tableArea .drag-over{background-color:#e3f2fd}#table_scroll::-webkit-scrollbar{width:calc(1.1666666667rem / var(--scale));height:calc(1.1666666667rem / var(--scale))}#table_scroll::-webkit-scrollbar-track{background-color:var(--neutral-200);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-thumb{background-color:var(--neutral-500);border:calc(.25rem / var(--scale)) solid transparent;border-radius:calc(8.3333333333rem / var(--scale));background-clip:padding-box}#table_scroll::-webkit-scrollbar-corner{background:transparent}\n"] }]
3800
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { tableAreaRef: [{
3801
+ type: ViewChild,
3802
+ args: ['table', { static: true }]
3803
+ }], pinMenu: [{
3804
+ type: ViewChild,
3805
+ args: ['pinMenu']
3806
+ }], data: [{
3807
+ type: Input
3808
+ }], columns: [{
3809
+ type: Input
3810
+ }], idField: [{
3811
+ type: Input
3812
+ }], labelField: [{
3813
+ type: Input
3814
+ }], childrenField: [{
3815
+ type: Input
3816
+ }], treeColumnField: [{
3817
+ type: Input
3818
+ }], indentPx: [{
3819
+ type: Input
3820
+ }], showHeader: [{
3821
+ type: Input
3822
+ }], expandIcon: [{
3823
+ type: Input
3824
+ }], collapseIcon: [{
3825
+ type: Input
3826
+ }], iconBasePath: [{
3827
+ type: Input
3828
+ }], showCheckbox: [{
3829
+ type: Input
3830
+ }], showNodeIcon: [{
3831
+ type: Input
3832
+ }], noDataText: [{
3833
+ type: Input
3834
+ }], loadingText: [{
3835
+ type: Input
3836
+ }], emitExpandAlways: [{
3837
+ type: Input
3838
+ }], sortingRequired: [{
3839
+ type: Input
3840
+ }], filterRequired: [{
3841
+ type: Input
3842
+ }], threeDotsMenuRequired: [{
3843
+ type: Input
3844
+ }], settingsRequired: [{
3845
+ type: Input
3846
+ }], settingsClicked: [{
3847
+ type: Input
3848
+ }], checkBoxSelection: [{
3849
+ type: Input
3850
+ }], checkboxSelectionType: [{
3851
+ type: Input
3852
+ }], isExpandable: [{
3853
+ type: Input
3854
+ }], rowOptionsResolver: [{
3855
+ type: Input
3856
+ }], nodeIconResolver: [{
3857
+ type: Input
3858
+ }], linkResolver: [{
3859
+ type: Input
3860
+ }], nodeToggle: [{
3861
+ type: Output
3862
+ }], selectionChange: [{
3863
+ type: Output
3864
+ }], linkClick: [{
3865
+ type: Output
3866
+ }], onHideSettings: [{
3867
+ type: Output
3868
+ }] } });
3869
+
2486
3870
  /*
2487
3871
  * Public API Surface of cats-data-grid
2488
3872
  */
@@ -2491,5 +3875,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2491
3875
  * Generated bundle index. Do not edit.
2492
3876
  */
2493
3877
 
2494
- export { CatsDataGridComponent, CatsDataGridService, ColDefs, CommonRendererComponent };
3878
+ export { CatsDataGridComponent, CatsDataGridService, ColDefs, CommonRendererComponent, CommonTreeTableComponent };
2495
3879
  //# sourceMappingURL=cats-data-grid.mjs.map