import {
  NgMultiSelectDropDownModule,
  jspdf_es_min_default,
  utils,
  writeFileSync
} from "./chunk-YWQICJL7.js";
import {
  SafeHtmlPipe
} from "./chunk-IGGXREIH.js";
import {
  CommonSharedModule,
  DynamicFontSizeDirective,
  MenuButtonDirective,
  MenuDirective,
  MenuItemDirective,
  MenuItemsPanelDirective,
  NgScrollbar,
  NgxTippyDirective,
  TimezoneService
} from "./chunk-7NQGM4EA.js";
import {
  CheckboxControlValueAccessor,
  DefaultValueAccessor,
  FormArrayName,
  FormGroupDirective,
  FormGroupName,
  FormsModule,
  NgControlStatus,
  NgControlStatusGroup,
  NgModel,
  NgSelectOption,
  ReactiveFormsModule,
  RequiredValidator,
  SelectControlValueAccessor,
  TranslatePipe,
  ɵNgSelectMultipleOption
} from "./chunk-NLYGDKUR.js";
import {
  animate,
  style,
  transition,
  trigger
} from "./chunk-ZEL7H2AL.js";
import {
  ChangeDetectorRef,
  CommonModule,
  EventEmitter,
  NgClass,
  NgForOf,
  NgIf,
  NgSwitch,
  NgSwitchCase,
  NgSwitchDefault,
  ɵsetClassDebugInfo,
  ɵɵStandaloneFeature,
  ɵɵadvance,
  ɵɵattribute,
  ɵɵclassMap,
  ɵɵdefineComponent,
  ɵɵdirectiveInject,
  ɵɵelement,
  ɵɵelementContainerEnd,
  ɵɵelementContainerStart,
  ɵɵelementEnd,
  ɵɵelementStart,
  ɵɵgetCurrentView,
  ɵɵlistener,
  ɵɵnamespaceHTML,
  ɵɵnamespaceSVG,
  ɵɵnextContext,
  ɵɵpipe,
  ɵɵpipeBind1,
  ɵɵproperty,
  ɵɵpureFunction0,
  ɵɵpureFunction1,
  ɵɵpureFunction2,
  ɵɵpureFunction3,
  ɵɵpureFunction4,
  ɵɵreference,
  ɵɵresetView,
  ɵɵrestoreView,
  ɵɵsanitizeHtml,
  ɵɵtemplate,
  ɵɵtemplateRefExtractor,
  ɵɵtext,
  ɵɵtextInterpolate,
  ɵɵtextInterpolate1,
  ɵɵtwoWayBindingSet,
  ɵɵtwoWayListener,
  ɵɵtwoWayProperty
} from "./chunk-GKZIWABI.js";
import {
  __spreadProps,
  __spreadValues
} from "./chunk-CVWHNZRK.js";

// src/app/@lcp-framework/components/client-datatable/client-datatable.component.ts
var _c0 = () => ({ standalone: true });
var _c1 = (a0, a1, a2) => ({ "cursor-pointer": a0, "sticky right-0 z-10": a1, "max-w-140": a2 });
var _c2 = (a0) => ({ "text-primary": a0 });
var _c3 = (a0, a1) => ({ "sticky right-0 z-10": a0, "max-w-150": a1 });
var _c4 = (a0, a1, a2, a3) => ({ "sticky right-0 z-10": a0, "max-w-150": a1, "bg-red-200 text-red-600": a2, "bg-orange-200 text-orange-600": a3 });
var _c5 = (a0) => ({ "cursor-pointer text-blue-600": a0 });
var _c6 = (a0) => ({ "bg-blue-50": a0 });
var _c7 = (a0, a1) => ({ "text-red-600": a0, "text-yellow-600": a1 });
var _c8 = (a0, a1) => ({ "border-red-300": a0, "border-yellow-300": a1 });
function ClientDatatableComponent_div_1_div_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "div", 43);
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("innerHTML", ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.summary, \u0275\u0275sanitizeHtml);
  }
}
function ClientDatatableComponent_div_1_span_13_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "span", 44);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(ctx_r1.getNonEmptyFilterCount());
  }
}
function ClientDatatableComponent_div_1_div_14_ng_container_16_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "p", 61);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 1, "No filter applied"));
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_i_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "i", 72);
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_i_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "i", 73);
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_option_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "option", 74);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const col_r7 = ctx.$implicit;
    \u0275\u0275property("value", col_r7.key);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(col_r7.label);
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_option_12_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "option", 74);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const op_r8 = ctx.$implicit;
    \u0275\u0275property("value", op_r8.value);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(op_r8.label);
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template(rf, ctx) {
  if (rf & 1) {
    const _r4 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 63);
    \u0275\u0275template(1, ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_i_1_Template, 1, 0, "i", 64)(2, ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_i_2_Template, 1, 0, "i", 65);
    \u0275\u0275elementStart(3, "select", 66);
    \u0275\u0275listener("change", function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template_select_change_3_listener($event) {
      const i_r5 = \u0275\u0275restoreView(_r4).index;
      const ctx_r1 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r1.onColumnChange($event, i_r5));
    });
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template_select_ngModelChange_3_listener($event) {
      const condition_r6 = \u0275\u0275restoreView(_r4).$implicit;
      \u0275\u0275twoWayBindingSet(condition_r6.field, $event) || (condition_r6.field = $event);
      return \u0275\u0275resetView($event);
    });
    \u0275\u0275elementStart(4, "option", 67);
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275template(7, ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_option_7_Template, 2, 2, "option", 15);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(8, "select", 68);
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template_select_ngModelChange_8_listener($event) {
      const condition_r6 = \u0275\u0275restoreView(_r4).$implicit;
      \u0275\u0275twoWayBindingSet(condition_r6.operator, $event) || (condition_r6.operator = $event);
      return \u0275\u0275resetView($event);
    });
    \u0275\u0275elementStart(9, "option", 67);
    \u0275\u0275text(10);
    \u0275\u0275pipe(11, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275template(12, ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_option_12_Template, 2, 2, "option", 15);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(13, "input", 69);
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template_input_ngModelChange_13_listener($event) {
      const condition_r6 = \u0275\u0275restoreView(_r4).$implicit;
      \u0275\u0275twoWayBindingSet(condition_r6.value, $event) || (condition_r6.value = $event);
      return \u0275\u0275resetView($event);
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(14, "button", 70);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template_button_click_14_listener() {
      const i_r5 = \u0275\u0275restoreView(_r4).index;
      const ctx_r1 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r1.removeCondition(i_r5));
    });
    \u0275\u0275element(15, "i", 71);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const condition_r6 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(4);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r1.filterCondition);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.filterCondition);
    \u0275\u0275advance();
    \u0275\u0275twoWayProperty("ngModel", condition_r6.field);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 15, "table_multiselect_1"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx_r1.selectColumns);
    \u0275\u0275advance();
    \u0275\u0275twoWayProperty("ngModel", condition_r6.operator);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(11, 17, "condition"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx_r1.getOperatorsForColumn(condition_r6.field));
    \u0275\u0275advance();
    \u0275\u0275twoWayProperty("ngModel", condition_r6.value);
    \u0275\u0275property("type", ctx_r1.getInputTypeForColumn(condition_r6.field))("placeholder", ctx_r1.getPlaceholderForColumn(condition_r6.field))("required", true);
    \u0275\u0275attribute("min", ctx_r1.getMinValueForColumn(condition_r6.field))("max", ctx_r1.getMaxValueForColumn(condition_r6.field))("pattern", ctx_r1.getPatternForColumn(condition_r6.field));
  }
}
function ClientDatatableComponent_div_1_div_14_ng_template_17_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, ClientDatatableComponent_div_1_div_14_ng_template_17_div_0_Template, 16, 19, "div", 62);
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275property("ngForOf", ctx_r1.filterConditions);
  }
}
function ClientDatatableComponent_div_1_div_14_Template(rf, ctx) {
  if (rf & 1) {
    const _r3 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 45)(1, "div", 46)(2, "span");
    \u0275\u0275text(3);
    \u0275\u0275pipe(4, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(5, "div", 47)(6, "button", 48);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_14_Template_button_click_6_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.addCondition());
    });
    \u0275\u0275element(7, "i", 49);
    \u0275\u0275text(8, "\xA0");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(9, "label", 50)(10, "input", 51);
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_div_1_div_14_Template_input_ngModelChange_10_listener($event) {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      \u0275\u0275twoWayBindingSet(ctx_r1.filterCondition, $event) || (ctx_r1.filterCondition = $event);
      return \u0275\u0275resetView($event);
    });
    \u0275\u0275elementEnd();
    \u0275\u0275element(11, "span", 52);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(12, "span");
    \u0275\u0275text(13);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(14, "ng-scrollbar", 53)(15, "div", 54);
    \u0275\u0275template(16, ClientDatatableComponent_div_1_div_14_ng_container_16_Template, 4, 3, "ng-container", 55)(17, ClientDatatableComponent_div_1_div_14_ng_template_17_Template, 1, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(19, "div", 56)(20, "button", 57);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_14_Template_button_click_20_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.clearFilters());
    });
    \u0275\u0275text(21);
    \u0275\u0275pipe(22, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(23, "div", 58)(24, "button", 59);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_14_Template_button_click_24_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.applyFilters());
    });
    \u0275\u0275text(25);
    \u0275\u0275pipe(26, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(27, "button", 60);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_14_Template_button_click_27_listener() {
      \u0275\u0275restoreView(_r3);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.cancelFilters());
    });
    \u0275\u0275text(28);
    \u0275\u0275pipe(29, "translate");
    \u0275\u0275elementEnd()()()();
  }
  if (rf & 2) {
    const filterList_r9 = \u0275\u0275reference(18);
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(4, 9, "table_advance_filter"));
    \u0275\u0275advance(7);
    \u0275\u0275twoWayProperty("ngModel", ctx_r1.filterCondition);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(ctx_r1.filterCondition ? "AND" : "OR");
    \u0275\u0275advance(3);
    \u0275\u0275property("ngIf", !ctx_r1.filterConditions.length)("ngIfElse", filterList_r9);
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(22, 11, "table_clear_filter"));
    \u0275\u0275advance(3);
    \u0275\u0275property("disabled", !ctx_r1.isApplyButtonEnabled());
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(26, 13, "apply"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(29, 15, "cancel"));
  }
}
function ClientDatatableComponent_div_1_div_15_ul_7_ng_container_9_Template(rf, ctx) {
  if (rf & 1) {
    const _r11 = \u0275\u0275getCurrentView();
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "li")(2, "div", 84)(3, "label", 85)(4, "input", 86);
    \u0275\u0275listener("ngModelChange", function ClientDatatableComponent_div_1_div_15_ul_7_ng_container_9_Template_input_ngModelChange_4_listener() {
      const col_r12 = \u0275\u0275restoreView(_r11).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r1.toggleColumnFilterHide(col_r12));
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(5, "span", 87);
    \u0275\u0275text(6);
    \u0275\u0275pipe(7, "translate");
    \u0275\u0275elementEnd()()()();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r12 = ctx.$implicit;
    const i_r13 = ctx.index;
    \u0275\u0275advance(3);
    \u0275\u0275property("for", "chk-" + i_r13);
    \u0275\u0275advance();
    \u0275\u0275property("id", "chk-" + i_r13)("ngModel", !col_r12.colFilterHide);
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(7, 4, col_r12.label), "");
  }
}
function ClientDatatableComponent_div_1_div_15_ul_7_Template(rf, ctx) {
  if (rf & 1) {
    const _r10 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "ul", 80)(1, "li")(2, "div", 81)(3, "button", 82);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_15_ul_7_Template_button_click_3_listener() {
      \u0275\u0275restoreView(_r10);
      const ctx_r1 = \u0275\u0275nextContext(3);
      return \u0275\u0275resetView(ctx_r1.selectAllColumns());
    });
    \u0275\u0275text(4);
    \u0275\u0275pipe(5, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(6, "button", 83);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_15_ul_7_Template_button_click_6_listener() {
      \u0275\u0275restoreView(_r10);
      const ctx_r1 = \u0275\u0275nextContext(3);
      return \u0275\u0275resetView(ctx_r1.clearAllColumns());
    });
    \u0275\u0275text(7);
    \u0275\u0275pipe(8, "translate");
    \u0275\u0275elementEnd()()();
    \u0275\u0275template(9, ClientDatatableComponent_div_1_div_15_ul_7_ng_container_9_Template, 8, 6, "ng-container", 8);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275property("@toggleAnimation", void 0);
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(5, 4, "select_all"));
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(8, 6, "clear_all"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngForOf", ctx_r1.selectColumns);
  }
}
function ClientDatatableComponent_div_1_div_15_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 75)(1, "button", 76);
    \u0275\u0275element(2, "i", 77);
    \u0275\u0275text(3, "\xA0 ");
    \u0275\u0275elementStart(4, "span", 78);
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(7, ClientDatatableComponent_div_1_div_15_ul_7_Template, 10, 8, "ul", 79);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 1, "table_multiselect_1"));
  }
}
function ClientDatatableComponent_div_1_div_16_ul_7_a_2_Template(rf, ctx) {
  if (rf & 1) {
    const _r14 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 93);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_16_ul_7_a_2_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r14);
      const ctx_r1 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r1.exportToPDF());
    });
    \u0275\u0275element(1, "i", 94);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("\xA0", \u0275\u0275pipeBind1(3, 1, "pdf"), " ");
  }
}
function ClientDatatableComponent_div_1_div_16_ul_7_a_4_Template(rf, ctx) {
  if (rf & 1) {
    const _r15 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "a", 93);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_div_16_ul_7_a_4_Template_a_click_0_listener() {
      \u0275\u0275restoreView(_r15);
      const ctx_r1 = \u0275\u0275nextContext(4);
      return \u0275\u0275resetView(ctx_r1.exportToExcel());
    });
    \u0275\u0275element(1, "i", 95);
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate1("\xA0", \u0275\u0275pipeBind1(3, 1, "excel"), " ");
  }
}
function ClientDatatableComponent_div_1_div_16_ul_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "ul", 91)(1, "li");
    \u0275\u0275template(2, ClientDatatableComponent_div_1_div_16_ul_7_a_2_Template, 4, 3, "a", 92);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "li");
    \u0275\u0275template(4, ClientDatatableComponent_div_1_div_16_ul_7_a_4_Template, 4, 3, "a", 92);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275property("@toggleAnimation", void 0);
  }
}
function ClientDatatableComponent_div_1_div_16_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div")(1, "div", 75)(2, "button", 88);
    \u0275\u0275element(3, "i", 89);
    \u0275\u0275elementStart(4, "span", 38);
    \u0275\u0275text(5);
    \u0275\u0275pipe(6, "translate");
    \u0275\u0275elementEnd()();
    \u0275\u0275template(7, ClientDatatableComponent_div_1_div_16_ul_7_Template, 5, 1, "ul", 90);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(6, 1, "export"));
  }
}
function ClientDatatableComponent_div_1_button_17_Template(rf, ctx) {
  if (rf & 1) {
    const _r16 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 96);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_button_17_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r16);
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.onAddClick());
    });
    \u0275\u0275element(1, "i");
    \u0275\u0275text(2);
    \u0275\u0275pipe(3, "translate");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275classMap((ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.addButton == null ? null : ctx_r1.config.headerConfig.addButton.icon) || "fa-solid fa-plus");
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" \xA0", \u0275\u0275pipeBind1(3, 3, (ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.addButton == null ? null : ctx_r1.config.headerConfig.addButton.label) || "Add New"), " ");
  }
}
function ClientDatatableComponent_div_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r1 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 30)(1, "h2", 31);
    \u0275\u0275text(2);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(3, "div", 32);
    \u0275\u0275template(4, ClientDatatableComponent_div_1_div_4_Template, 1, 1, "div", 33);
    \u0275\u0275elementStart(5, "div", 34)(6, "input", 35);
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_div_1_Template_input_ngModelChange_6_listener($event) {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      \u0275\u0275twoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event);
      return \u0275\u0275resetView($event);
    });
    \u0275\u0275listener("ngModelChange", function ClientDatatableComponent_div_1_Template_input_ngModelChange_6_listener($event) {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.onSearch($event));
    });
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(7, "button", 36);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_1_Template_button_click_7_listener($event) {
      \u0275\u0275restoreView(_r1);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.toggleMenu($event));
    });
    \u0275\u0275element(8, "i", 37);
    \u0275\u0275text(9, "\xA0");
    \u0275\u0275elementStart(10, "span", 38);
    \u0275\u0275text(11);
    \u0275\u0275pipe(12, "translate");
    \u0275\u0275elementEnd();
    \u0275\u0275template(13, ClientDatatableComponent_div_1_span_13_Template, 2, 1, "span", 39);
    \u0275\u0275elementEnd();
    \u0275\u0275template(14, ClientDatatableComponent_div_1_div_14_Template, 30, 17, "div", 40)(15, ClientDatatableComponent_div_1_div_15_Template, 8, 3, "div", 41)(16, ClientDatatableComponent_div_1_div_16_Template, 8, 3, "div", 10)(17, ClientDatatableComponent_div_1_button_17_Template, 4, 5, "button", 42);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(2);
    \u0275\u0275textInterpolate(ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.title);
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.summary);
    \u0275\u0275advance(2);
    \u0275\u0275twoWayProperty("ngModel", ctx_r1.searchQuery);
    \u0275\u0275advance(5);
    \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(12, 9, "table_filter"));
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", ctx_r1.getNonEmptyFilterCount() > 0);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.isMenuOpen);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.enableColumnSelector);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.enableExport);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.config.headerConfig == null ? null : ctx_r1.config.headerConfig.addButton == null ? null : ctx_r1.config.headerConfig.addButton.show);
  }
}
function ClientDatatableComponent_ng_container_6_th_1_span_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "span", 43);
  }
  if (rf & 2) {
    const col_r18 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275property("innerHTML", col_r18.label, \u0275\u0275sanitizeHtml);
  }
}
function ClientDatatableComponent_ng_container_6_th_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275text(1);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r18 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(col_r18.label);
  }
}
function ClientDatatableComponent_ng_container_6_th_1_span_3_Template(rf, ctx) {
  if (rf & 1) {
    const _r19 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "span")(1, "input", 100);
    \u0275\u0275listener("click", function ClientDatatableComponent_ng_container_6_th_1_span_3_Template_input_click_1_listener() {
      \u0275\u0275restoreView(_r19);
      const ctx_r1 = \u0275\u0275nextContext(3);
      return \u0275\u0275resetView(ctx_r1.selectAllData());
    });
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("checked", ctx_r1.selectAll);
  }
}
function ClientDatatableComponent_ng_container_6_th_1_span_4_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "span", 101);
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(1, "svg", 102);
    \u0275\u0275element(2, "polygon", 103)(3, "polygon", 104);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const col_r18 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(2, _c2, ctx_r1.sortColumn === col_r18.key && ctx_r1.sortDirection === "asc"));
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(4, _c2, ctx_r1.sortColumn === col_r18.key && ctx_r1.sortDirection === "desc"));
  }
}
function ClientDatatableComponent_ng_container_6_th_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r17 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "th", 98);
    \u0275\u0275listener("click", function ClientDatatableComponent_ng_container_6_th_1_Template_th_click_0_listener() {
      \u0275\u0275restoreView(_r17);
      const col_r18 = \u0275\u0275nextContext().$implicit;
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(col_r18.sortable && col_r18.type !== "checkbox" ? ctx_r1.onSort(col_r18.key) : "");
    });
    \u0275\u0275template(1, ClientDatatableComponent_ng_container_6_th_1_span_1_Template, 1, 1, "span", 33)(2, ClientDatatableComponent_ng_container_6_th_1_ng_container_2_Template, 2, 1, "ng-container", 10)(3, ClientDatatableComponent_ng_container_6_th_1_span_3_Template, 2, 1, "span", 10)(4, ClientDatatableComponent_ng_container_6_th_1_span_4_Template, 4, 6, "span", 99);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r19 = \u0275\u0275nextContext();
    const col_r18 = ctx_r19.$implicit;
    const last_r21 = ctx_r19.last;
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction3(5, _c1, col_r18.sortable, col_r18.type === "button" && last_r21, col_r18.type !== "button"));
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", col_r18.isHtmlHeader && col_r18.type !== "checkbox");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r18.isHtmlHeader && col_r18.type !== "checkbox");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", col_r18.type === "checkbox");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", col_r18.sortable && col_r18.type !== "checkbox");
  }
}
function ClientDatatableComponent_ng_container_6_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_ng_container_6_th_1_Template, 5, 9, "th", 97);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r18 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r18.colFilterHide ? true : false);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r22 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 114);
    \u0275\u0275listener("click", function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template_button_click_0_listener() {
      const action_r23 = \u0275\u0275restoreView(_r22).$implicit;
      const item_r24 = \u0275\u0275nextContext(4).$implicit;
      return \u0275\u0275resetView(action_r23.onClick(item_r24));
    });
    \u0275\u0275element(1, "i");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const action_r23 = ctx.$implicit;
    \u0275\u0275classMap(action_r23.class);
    \u0275\u0275property("title", action_r23.tooltip || "");
    \u0275\u0275advance();
    \u0275\u0275classMap(action_r23.icon);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template, 2, 5, "button", 113);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r25 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", col_r25.actions);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275text(1);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r25 = \u0275\u0275nextContext(3).$implicit;
    const item_r24 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r24[col_r25.key] ? "Yes" : "No", " ");
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_div_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275element(0, "div", 43);
  }
  if (rf & 2) {
    const col_r25 = \u0275\u0275nextContext(4).$implicit;
    const item_r24 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275property("innerHTML", item_r24[col_r25.key], \u0275\u0275sanitizeHtml);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275text(1);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r25 = \u0275\u0275nextContext(4).$implicit;
    const item_r24 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r24[col_r25.key] ? ctx_r1.formatDateValue(item_r24[col_r25.key]) : "-", " ");
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_div_0_Template, 1, 1, "div", 33)(1, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_ng_container_1_Template, 2, 1, "ng-container", 10);
  }
  if (rf & 2) {
    const col_r25 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275property("ngIf", col_r25.isHtmlValue);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r25.isHtmlValue);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_container_1_Template, 2, 1, "ng-container", 55)(2, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_ng_template_2_Template, 2, 2, "ng-template", null, 1, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const defaultContent_r26 = \u0275\u0275reference(3);
    const col_r25 = \u0275\u0275nextContext(2).$implicit;
    const item_r24 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.isBoolean(item_r24[col_r25.key]))("ngIfElse", defaultContent_r26);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "td", 109);
    \u0275\u0275elementContainerStart(1, 110);
    \u0275\u0275template(2, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_2_Template, 2, 1, "ng-container", 111)(3, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_ng_container_3_Template, 4, 2, "ng-container", 112);
    \u0275\u0275elementContainerEnd();
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r26 = \u0275\u0275nextContext();
    const col_r25 = ctx_r26.$implicit;
    const last_r28 = ctx_r26.last;
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(3, _c3, col_r25.type === "button" && last_r28, col_r25.type !== "button"));
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitch", col_r25.type);
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitchCase", "button");
  }
}
function ClientDatatableComponent_tbody_7_tr_1_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_td_1_Template, 4, 6, "td", 108);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r25 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r25.colFilterHide ? true : false);
  }
}
function ClientDatatableComponent_tbody_7_tr_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "tr", 107);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_7_tr_1_ng_container_1_Template, 2, 1, "ng-container", 8);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const i_r29 = ctx.index;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("formGroupName", ctx_r1.getFormGroupIndex(i_r29));
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.config.columns);
  }
}
function ClientDatatableComponent_tbody_7_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "tbody", 105);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_7_tr_1_Template, 2, 2, "tr", 106);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("formGroup", ctx_r1.formGroup)("formArrayName", ctx_r1.formArrayName);
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.paginatedData);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r30 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 114);
    \u0275\u0275listener("click", function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template_button_click_0_listener() {
      const action_r31 = \u0275\u0275restoreView(_r30).$implicit;
      const item_r32 = \u0275\u0275nextContext(4).$implicit;
      return \u0275\u0275resetView(action_r31.onClick(item_r32));
    });
    \u0275\u0275element(1, "i");
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const action_r31 = ctx.$implicit;
    \u0275\u0275classMap(action_r31.class);
    \u0275\u0275property("title", action_r31.tooltip || "");
    \u0275\u0275advance();
    \u0275\u0275classMap(action_r31.icon);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_2_button_1_Template, 2, 5, "button", 113);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", col_r33.actions);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_3_div_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 63);
    \u0275\u0275element(1, "i", 118);
    \u0275\u0275elementStart(2, "span", 119);
    \u0275\u0275text(3);
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(3).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", item_r32[col_r33.key] === "Valid" ? "fa-circle-check text-success" : "fa-circle-xmark text-danger");
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", item_r32[col_r33.key] === "Valid" ? "text-success" : "text-danger");
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r32[col_r33.key] === "Valid" ? "Valid" : "Invalid", " ");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_3_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_3_div_1_Template, 4, 3, "div", 117);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(2).$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", col_r33.key === "state");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_4_Template(rf, ctx) {
  if (rf & 1) {
    const _r34 = \u0275\u0275getCurrentView();
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "input", 120);
    \u0275\u0275listener("change", function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_4_Template_input_change_1_listener() {
      \u0275\u0275restoreView(_r34);
      const item_r32 = \u0275\u0275nextContext(3).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.selectData(item_r32.id));
    });
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(2).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("id", item_r32.id)("checked", item_r32[col_r33.key]);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275text(1);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(3).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r32[col_r33.key] ? "Yes" : "No", " ");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_container_0_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275element(1, "span", 43);
    \u0275\u0275pipe(2, "safeHtml");
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(4).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("innerHTML", \u0275\u0275pipeBind1(2, 1, item_r32[col_r33.key]), \u0275\u0275sanitizeHtml);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_div_0_Template(rf, ctx) {
  if (rf & 1) {
    const _r35 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 122);
    \u0275\u0275listener("click", function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_div_0_Template_div_click_0_listener() {
      \u0275\u0275restoreView(_r35);
      const col_r33 = \u0275\u0275nextContext(5).$implicit;
      const item_r32 = \u0275\u0275nextContext().$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.config.detailStatusPopup && col_r33.key === "errorstatus" ? ctx_r1.openStatusModal(item_r32) : null);
    });
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(5).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("innerHTML", item_r32[col_r33.key], \u0275\u0275sanitizeHtml)("ngClass", \u0275\u0275pureFunction1(2, _c5, ctx_r1.config.detailStatusPopup && col_r33.key === "errorstatus"));
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_button_1_Template(rf, ctx) {
  if (rf & 1) {
    const _r36 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 124);
    \u0275\u0275listener("click", function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_button_1_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r36);
      const item_r32 = \u0275\u0275nextContext(7).$implicit;
      const ctx_r1 = \u0275\u0275nextContext(2);
      return \u0275\u0275resetView(ctx_r1.openStatusModal(item_r32));
    });
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(6).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r32[col_r33.key] ? ctx_r1.formatDateValue(item_r32[col_r33.key]) : "-", " ");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_span_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "span");
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(6).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", item_r32[col_r33.key] ? ctx_r1.formatDateValue(item_r32[col_r33.key]) : "-", " ");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_button_1_Template, 2, 1, "button", 123)(2, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_span_2_Template, 2, 1, "span", 10);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(5).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.config.detailStatusPopup && col_r33.key === "errorstatus");
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !(ctx_r1.config.detailStatusPopup && col_r33.key === "errorstatus"));
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_div_0_Template, 1, 4, "div", 121)(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_ng_container_1_Template, 3, 2, "ng-container", 10);
  }
  if (rf & 2) {
    const col_r33 = \u0275\u0275nextContext(4).$implicit;
    \u0275\u0275property("ngIf", col_r33.isHtmlValue);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r33.isHtmlValue);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275template(0, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_container_0_Template, 3, 3, "ng-container", 55)(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_ng_template_1_Template, 2, 2, "ng-template", null, 1, \u0275\u0275templateRefExtractor);
  }
  if (rf & 2) {
    const defaultContent_r37 = \u0275\u0275reference(2);
    const col_r33 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275property("ngIf", col_r33.template)("ngIfElse", defaultContent_r37);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_container_1_Template, 2, 1, "ng-container", 55)(2, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_ng_template_2_Template, 3, 2, "ng-template", null, 2, \u0275\u0275templateRefExtractor);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const templateOrDefault_r38 = \u0275\u0275reference(3);
    const col_r33 = \u0275\u0275nextContext(2).$implicit;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.isBoolean(item_r32[col_r33.key]))("ngIfElse", templateOrDefault_r38);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "td", 116);
    \u0275\u0275elementContainerStart(1, 110);
    \u0275\u0275template(2, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_2_Template, 2, 1, "ng-container", 111)(3, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_3_Template, 2, 1, "ng-container", 111)(4, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_4_Template, 2, 2, "ng-container", 111)(5, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_ng_container_5_Template, 4, 2, "ng-container", 112);
    \u0275\u0275elementContainerEnd();
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r38 = \u0275\u0275nextContext();
    const col_r33 = ctx_r38.$implicit;
    const last_r40 = ctx_r38.last;
    const item_r32 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction4(6, _c4, col_r33.type === "button" && last_r40, col_r33.type !== "button", item_r32.errors && (item_r32.errors[col_r33.key] == null ? null : item_r32.errors[col_r33.key].length) > 0, item_r32.warnings && (item_r32.warnings[col_r33.key] == null ? null : item_r32.warnings[col_r33.key].length) > 0))("title", ctx_r1.getMessages(item_r32, col_r33.key));
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitch", col_r33.type);
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitchCase", "button");
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitchCase", "separate");
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitchCase", "checkbox");
  }
}
function ClientDatatableComponent_tbody_8_tr_1_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_td_1_Template, 6, 11, "td", 115);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r33 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !col_r33.colFilterHide ? true : false);
  }
}
function ClientDatatableComponent_tbody_8_tr_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "tr");
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_ng_container_1_Template, 2, 1, "ng-container", 8);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.config.columns);
  }
}
function ClientDatatableComponent_tbody_8_tr_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "tr")(1, "td", 125);
    \u0275\u0275text(2, "No data available");
    \u0275\u0275elementEnd()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275attribute("colspan", ctx_r1.config.columns.length);
  }
}
function ClientDatatableComponent_tbody_8_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "tbody");
    \u0275\u0275template(1, ClientDatatableComponent_tbody_8_tr_1_Template, 2, 1, "tr", 8)(2, ClientDatatableComponent_tbody_8_tr_2_Template, 3, 1, "tr", 10);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.paginatedData);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.paginatedData.length === 0);
  }
}
function ClientDatatableComponent_option_13_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "option", 74);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const size_r41 = ctx.$implicit;
    \u0275\u0275property("value", size_r41);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate(size_r41);
  }
}
function ClientDatatableComponent_ng_container_37_button_2_Template(rf, ctx) {
  if (rf & 1) {
    const _r42 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 128);
    \u0275\u0275listener("click", function ClientDatatableComponent_ng_container_37_button_2_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r42);
      const i_r43 = \u0275\u0275nextContext().index;
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.handleEllipsisClick(i_r43));
    });
    \u0275\u0275text(1, " ... ");
    \u0275\u0275elementEnd();
  }
}
function ClientDatatableComponent_ng_container_37_button_3_Template(rf, ctx) {
  if (rf & 1) {
    const _r44 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "button", 129);
    \u0275\u0275listener("click", function ClientDatatableComponent_ng_container_37_button_3_Template_button_click_0_listener() {
      \u0275\u0275restoreView(_r44);
      const page_r45 = \u0275\u0275nextContext().$implicit;
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.onPageChange(page_r45));
    });
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const page_r45 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(3, _c6, ctx_r1.currentPage === page_r45));
    \u0275\u0275attribute("aria-current", ctx_r1.currentPage === page_r45 ? "page" : null);
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", page_r45, " ");
  }
}
function ClientDatatableComponent_ng_container_37_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0)(1, 110);
    \u0275\u0275template(2, ClientDatatableComponent_ng_container_37_button_2_Template, 2, 0, "button", 126)(3, ClientDatatableComponent_ng_container_37_button_3_Template, 2, 5, "button", 127);
    \u0275\u0275elementContainerEnd()();
  }
  if (rf & 2) {
    const page_r45 = ctx.$implicit;
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitch", page_r45);
    \u0275\u0275advance();
    \u0275\u0275property("ngSwitchCase", "...");
  }
}
function ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_ng_container_2_li_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "li", 147);
    \u0275\u0275text(1);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const message_r47 = ctx.$implicit;
    const col_r48 = \u0275\u0275nextContext(3).$implicit;
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(2, _c8, col_r48.key === "errorMessages", col_r48.key === "warningMessages"));
    \u0275\u0275advance();
    \u0275\u0275textInterpolate1(" ", message_r47, " ");
  }
}
function ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_ng_container_2_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "ul", 145);
    \u0275\u0275template(2, ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_ng_container_2_li_2_Template, 2, 5, "li", 146);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r48 = \u0275\u0275nextContext(2).$implicit;
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("ngClass", \u0275\u0275pureFunction2(2, _c7, col_r48.key === "errorMessages", col_r48.key === "warningMessages"));
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.getMessagesUnDot(ctx_r1.selectedRow[col_r48.key]));
  }
}
function ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "div", 144);
    \u0275\u0275template(2, ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_ng_container_2_Template, 3, 5, "ng-container", 10);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r48 = \u0275\u0275nextContext().$implicit;
    \u0275\u0275advance(2);
    \u0275\u0275property("ngIf", col_r48.key !== "errorstatus");
  }
}
function ClientDatatableComponent_div_48_div_16_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_div_48_div_16_ng_container_1_ng_container_1_Template, 3, 1, "ng-container", 10);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r48 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(3);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx_r1.errorKeys.includes(col_r48.key));
  }
}
function ClientDatatableComponent_div_48_div_16_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 143);
    \u0275\u0275template(1, ClientDatatableComponent_div_48_div_16_ng_container_1_Template, 2, 1, "ng-container", 8);
    \u0275\u0275elementEnd();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx_r1.config.columns);
  }
}
function ClientDatatableComponent_div_48_ng_container_19_ng_container_1_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275elementStart(1, "div", 148);
    \u0275\u0275element(2, "div", 149)(3, "div", 150);
    \u0275\u0275elementEnd();
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r49 = \u0275\u0275nextContext().$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance(2);
    \u0275\u0275property("innerHTML", col_r49.label, \u0275\u0275sanitizeHtml);
    \u0275\u0275advance();
    \u0275\u0275property("innerHTML", ctx_r1.selectedRow[col_r49.key] || "-", \u0275\u0275sanitizeHtml);
  }
}
function ClientDatatableComponent_div_48_ng_container_19_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementContainerStart(0);
    \u0275\u0275template(1, ClientDatatableComponent_div_48_ng_container_19_ng_container_1_Template, 4, 2, "ng-container", 10);
    \u0275\u0275elementContainerEnd();
  }
  if (rf & 2) {
    const col_r49 = ctx.$implicit;
    const ctx_r1 = \u0275\u0275nextContext(2);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx_r1.errorKeys.includes(col_r49.key));
  }
}
function ClientDatatableComponent_div_48_Template(rf, ctx) {
  if (rf & 1) {
    const _r46 = \u0275\u0275getCurrentView();
    \u0275\u0275elementStart(0, "div", 130);
    \u0275\u0275element(1, "div", 131);
    \u0275\u0275elementStart(2, "div", 132)(3, "div", 133)(4, "div", 134)(5, "div", 135)(6, "div", 58)(7, "h4");
    \u0275\u0275text(8, "Item Details");
    \u0275\u0275elementEnd();
    \u0275\u0275element(9, "div", 43);
    \u0275\u0275elementEnd();
    \u0275\u0275elementStart(10, "button", 136);
    \u0275\u0275listener("click", function ClientDatatableComponent_div_48_Template_button_click_10_listener() {
      \u0275\u0275restoreView(_r46);
      const ctx_r1 = \u0275\u0275nextContext();
      return \u0275\u0275resetView(ctx_r1.closeStatusModal());
    });
    \u0275\u0275elementStart(11, "span", 20);
    \u0275\u0275text(12, "Close");
    \u0275\u0275elementEnd();
    \u0275\u0275element(13, "i", 137);
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(14, "div", 138)(15, "div", 139);
    \u0275\u0275template(16, ClientDatatableComponent_div_48_div_16_Template, 2, 1, "div", 140);
    \u0275\u0275element(17, "div", 141);
    \u0275\u0275elementStart(18, "div", 142);
    \u0275\u0275template(19, ClientDatatableComponent_div_48_ng_container_19_Template, 2, 1, "ng-container", 8);
    \u0275\u0275elementEnd()()()()()();
  }
  if (rf & 2) {
    const ctx_r1 = \u0275\u0275nextContext();
    \u0275\u0275advance(9);
    \u0275\u0275property("innerHTML", ctx_r1.selectedRow["errorstatus"], \u0275\u0275sanitizeHtml);
    \u0275\u0275advance(7);
    \u0275\u0275property("ngIf", ctx_r1.getErrorStatusText(ctx_r1.selectedRow["errorstatus"]) === "invalid");
    \u0275\u0275advance(3);
    \u0275\u0275property("ngForOf", ctx_r1.config.columns);
  }
}
var _ClientDatatableComponent = class _ClientDatatableComponent {
  // Column visibility
  constructor(cdr, timezoneService) {
    this.cdr = cdr;
    this.timezoneService = timezoneService;
    this.data = [];
    this.dataChange = new EventEmitter();
    this.pageChange = new EventEmitter();
    this.pageSizeChange = new EventEmitter();
    this.sortChange = new EventEmitter();
    this.addButtonClick = new EventEmitter();
    this.isStatusModalOpen = false;
    this.selectedRow = {};
    this.errorKeys = ["warningMessages", "errorMessages", "errorstatus"];
    this.operatorsByType = {
      text: [
        { value: "equals", label: "Equals" },
        { value: "contains", label: "Contains" },
        { value: "startsWith", label: "Starts With" },
        { value: "endsWith", label: "Ends With" }
      ],
      number: [
        { value: "equals", label: "Equals" },
        { value: "greaterThan", label: "Greater Than" },
        { value: "lessThan", label: "Less Than" },
        { value: "between", label: "Between" }
      ],
      date: [
        { value: "equals", label: "Equals" },
        { value: "before", label: "Before" },
        { value: "after", label: "After" },
        { value: "between", label: "Between" }
      ]
    };
    this.selectAll = false;
    this.searchQuery = "";
    this.currentPage = 1;
    this.pageSize = 10;
    this.sortColumn = "";
    this.sortDirection = "asc";
    this._originalData = [];
    this.isMenuOpen = false;
    this.filterCondition = false;
    this.filterConditions = [];
  }
  ngOnInit() {
    this.pageSize = this.config.defaultPageSize || 10;
    if (!this.config.pageSizes) {
      this.config.pageSizes = [10, 25, 50, 100];
    }
    if (this.data) {
      this._originalData = [...this.data];
    }
  }
  onAddClick() {
    if (this.config.headerConfig?.addButton?.onClick) {
      this.config.headerConfig.addButton.onClick();
    } else {
      this.addButtonClick.emit();
    }
  }
  // Dropdown toggle
  toggleMenu(event) {
    event.stopPropagation();
    this.isMenuOpen = !this.isMenuOpen;
  }
  // Open Status Modal
  openStatusModal(row) {
    this.selectedRow = row;
    this.isStatusModalOpen = true;
  }
  // Close Status Modal
  closeStatusModal() {
    this.isStatusModalOpen = false;
    this.selectedRow = {};
  }
  getObjectKeys(obj) {
    return obj ? Object.keys(obj) : [];
  }
  getMessagesUnDot(messages) {
    return messages.split(",, ").map((msg) => msg.trim());
  }
  // Column-related helper methods
  getNonEmptyFilterCount() {
    return this.filterConditions.filter((condition) => condition.value).length;
  }
  get selectColumns() {
    return this.config.columns.filter((column) => column.type !== "checkbox" && column.key !== "id");
  }
  get filteredColumns() {
    return this.config.columns.filter((column) => column.searchable || column.type === "checkbox").map((col) => {
      return __spreadProps(__spreadValues({}, col), {
        colFilterHide: col?.colFilterHide || true
      });
    });
  }
  toggleColumnFilterHide(col) {
    col.colFilterHide = !col.colFilterHide;
  }
  getPlaceholderForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    return column ? column.placeholder || "" : "";
  }
  getMinValueForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    return column?.min || null;
  }
  getMaxValueForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    return column?.max || null;
  }
  getPatternForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    return column?.pattern || null;
  }
  getInputTypeForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    return column?.type === "number" ? "number" : column?.type === "date" ? "date" : "text";
  }
  // Filter handling methods
  addCondition() {
    this.filterConditions.push({ field: "", operator: "", value: "" });
  }
  getErrorStatusText(errorStatus) {
    return errorStatus.match(/>(.*?)<\/span>/)?.[1] || errorStatus;
  }
  removeCondition(index) {
    this.filterConditions.splice(index, 1);
  }
  clearFilters() {
    this.filterConditions = [];
    this.isMenuOpen = false;
    const filteredData = [...this._originalData];
    this.dataChange.emit(filteredData);
  }
  applyFilters() {
    this.isMenuOpen = false;
    this.updateData();
  }
  cancelFilters() {
    this.filterConditions = [];
    this.isMenuOpen = false;
  }
  selectAllColumns() {
    this.selectColumns.forEach((col) => {
      if (col.key !== "id") {
        col.colFilterHide = false;
      } else {
        col.colFilterHide = true;
      }
    });
  }
  // Method to clear all checkboxes
  clearAllColumns() {
    this.selectColumns.forEach((col) => {
      col.colFilterHide = true;
    });
  }
  isBoolean(value) {
    return typeof value === "boolean";
  }
  getMessages(rowData, key) {
    const errorMessages = rowData.errors ? rowData.errors[key]?.map((err) => err.message) || [] : [];
    const warningMessages = rowData.warnings ? rowData.warnings[key]?.map((warn) => warn.message) || [] : [];
    return [...errorMessages, ...warningMessages].join("\n");
  }
  evaluateCondition(condition, value) {
    if (!value)
      return false;
    const itemValue = value.toString().toLowerCase();
    const filterValue = condition.value.toString().toLowerCase();
    switch (condition.operator) {
      case "equals":
        return itemValue === filterValue;
      case "contains":
        return itemValue.includes(filterValue);
      case "startsWith":
        return itemValue.startsWith(filterValue);
      case "endsWith":
        return itemValue.endsWith(filterValue);
      case "greaterThan":
        return parseFloat(itemValue) > parseFloat(filterValue);
      case "lessThan":
        return parseFloat(itemValue) < parseFloat(filterValue);
      default:
        return true;
    }
  }
  updateData() {
    this.dataChange.emit(this.filteredData);
  }
  onSort(column) {
    if (this.sortColumn === column) {
      this.sortDirection = this.sortDirection === "asc" ? "desc" : "asc";
    } else {
      this.sortColumn = column;
      this.sortDirection = "asc";
    }
    this.sortChange.emit({ column: this.sortColumn, direction: this.sortDirection });
  }
  onPageChange(page) {
    Promise.resolve().then(() => {
      this.currentPage = page;
      this.pageChange.emit(page);
      this.cdr.detectChanges();
    });
  }
  getFormGroupIndex(index) {
    return index + this.startIndex;
  }
  getPageNumbers() {
    const pageNumbers = [];
    const totalPages = this.totalPages;
    const currentPage = this.currentPage;
    if (totalPages <= 7) {
      for (let i = 1; i <= totalPages; i++) {
        pageNumbers.push(i);
      }
      return pageNumbers;
    }
    pageNumbers.push(1);
    if (currentPage <= 4) {
      for (let i = 2; i <= 5; i++) {
        pageNumbers.push(i);
      }
      pageNumbers.push("...");
      pageNumbers.push(totalPages);
    } else if (currentPage >= totalPages - 3) {
      pageNumbers.push("...");
      for (let i = totalPages - 4; i < totalPages; i++) {
        pageNumbers.push(i);
      }
      pageNumbers.push(totalPages);
    } else {
      pageNumbers.push("...");
      for (let i = currentPage - 1; i <= currentPage + 1; i++) {
        pageNumbers.push(i);
      }
      pageNumbers.push("...");
      pageNumbers.push(totalPages);
    }
    return pageNumbers;
  }
  onPageSizeChange() {
    this.pageSize = parseInt(this.pageSize);
    const firstItemIndex = (this.currentPage - 1) * this.pageSize;
    const newCurrentPage = Math.floor(firstItemIndex / this.pageSize) + 1;
    this.currentPage = Math.min(newCurrentPage, this.totalPages);
    if (this.currentPage > this.totalPages) {
      this.currentPage = this.totalPages;
    }
    if (this.currentPage > this.totalPages) {
      this.currentPage = this.totalPages;
    }
    if (this.totalPages === 0) {
      this.currentPage = 1;
    }
    this.pageSizeChange.emit(this.pageSize);
    this.pageChange.emit(this.currentPage);
    this.cdr.detectChanges();
  }
  // Also update the get paginatedData method:
  get paginatedData() {
    const start = (this.currentPage - 1) * this.pageSize;
    const end = start + this.pageSize;
    return this.filteredData.slice(start, end);
  }
  handleEllipsisClick(index) {
    const pageNumbers = this.getPageNumbers();
    const ellipsisIndex = pageNumbers.indexOf("...");
    if (index === ellipsisIndex) {
      const nextNumber = pageNumbers[index + 1];
      const prevNumber = pageNumbers[index - 1];
      this.onPageChange(Math.floor((prevNumber + nextNumber) / 2));
    } else {
      const nextNumber = pageNumbers[index + 1];
      const prevNumber = pageNumbers[index - 1];
      this.onPageChange(Math.floor((prevNumber + nextNumber) / 2));
    }
  }
  onSearch(query) {
    this.searchQuery = query;
    Promise.resolve().then(() => {
      this.currentPage = 1;
      if (!query?.trim()) {
        this.data = [...this._originalData];
      } else {
        const filtered = this._originalData.filter((item) => Object.keys(item).some((key) => item[key]?.toString().toLowerCase().includes(query.toLowerCase())));
        this.data = filtered;
      }
      this.dataChange.emit(this.data);
      this.cdr.detectChanges();
    });
  }
  // Update method to handle data updates
  updateDataAndPagination(newData) {
    this.data = newData;
    this._originalData = [...newData];
    const newTotalPages = Math.ceil(this.filteredData.length / this.pageSize);
    Promise.resolve().then(() => {
      if (this.currentPage > newTotalPages) {
        this.currentPage = Math.max(1, newTotalPages);
        this.pageChange.emit(this.currentPage);
      }
      this.dataChange.emit(this.filteredData);
      this.cdr.detectChanges();
    });
  }
  // Update filteredData getter
  get filteredData() {
    let filtered = [...this.data];
    if (this.searchQuery?.trim()) {
      const query = this.searchQuery.toLowerCase().trim();
      filtered = filtered.filter((item) => Object.keys(item).some((key) => item[key]?.toString().toLowerCase().includes(query)));
    }
    if (this.filterConditions.length > 0) {
      const validConditions = this.filterConditions.filter((condition) => condition.field && condition.operator && condition.value);
      if (validConditions.length > 0) {
        filtered = filtered.filter((item) => {
          const results = validConditions.map((condition) => this.evaluateCondition(condition, item[condition.field]));
          return this.filterCondition ? results.every((res) => res) : results.some((res) => res);
        });
      }
    }
    if (this.sortColumn) {
      filtered.sort((a, b) => {
        const aVal = a[this.sortColumn];
        const bVal = b[this.sortColumn];
        if (aVal == null)
          return this.sortDirection === "asc" ? -1 : 1;
        if (bVal == null)
          return this.sortDirection === "asc" ? 1 : -1;
        if (typeof aVal === "string") {
          return this.sortDirection === "asc" ? aVal.localeCompare(bVal) : bVal.localeCompare(aVal);
        }
        return this.sortDirection === "asc" ? aVal - bVal : bVal - aVal;
      });
    }
    this.selectAll = filtered.every((item) => item.isChecked);
    return filtered;
  }
  // Update get paginatedData to handle empty pages better
  get totalPages() {
    return Math.max(1, Math.ceil(this.filteredData.length / this.pageSize));
  }
  get startIndex() {
    return this.filteredData.length === 0 ? 0 : (this.currentPage - 1) * this.pageSize;
  }
  get endIndex() {
    return this.filteredData.length === 0 ? 0 : Math.min(this.startIndex + parseInt(this.pageSize), this.filteredData.length);
  }
  // Triggered when a column is selected for a filter condition
  onColumnChange(event, index) {
    const field = event.target.value;
    this.filterConditions[index] = __spreadProps(__spreadValues({}, this.filterConditions[index]), {
      field,
      operator: "",
      value: ""
    });
  }
  // Returns a list of operators based on the selected column's data type
  getOperatorsForColumn(field) {
    const column = this.config.columns.find((col) => col.key === field);
    if (!column)
      return this.operatorsByType.text;
    return this.operatorsByType[column.type] || this.operatorsByType.text;
  }
  // Determines if the "Apply" button should be enabled
  isApplyButtonEnabled() {
    return this.filterConditions.every((condition) => condition.field && condition.operator && condition.value !== null && condition.value !== void 0 && condition.value !== "");
  }
  // Export table data to PDF
  exportToPDF() {
    const doc = new jspdf_es_min_default();
    const exportData = this.data.map((item) => {
      const rowData = {};
      this.config.columns.forEach((col) => {
        rowData[col.label] = item[col.key];
      });
      return rowData;
    });
    let rowIndex = 10;
    exportData.forEach((row) => {
      let colIndex = 10;
      Object.values(row).forEach((cell) => {
        doc.text(`${cell}`, colIndex, rowIndex);
        colIndex += 30;
      });
      rowIndex += 10;
    });
    doc.save("table_data.pdf");
  }
  // Export table data to Excel
  exportToExcel() {
    const worksheet = utils.json_to_sheet(this.data.map((item) => {
      const rowData = {};
      this.config.columns.forEach((col) => {
        rowData[col.label] = item[col.key];
      });
      return rowData;
    }));
    const workbook = utils.book_new();
    utils.book_append_sheet(workbook, worksheet, "Table Data");
    writeFileSync(workbook, "table_data.xlsx");
  }
  selectAllData() {
    this.selectAll = !this.selectAll;
    this.data.forEach((item) => {
      item.isChecked = this.selectAll;
      return item;
    });
    this.dataChange.emit(this.data);
    this.cdr.detectChanges();
  }
  selectData(id) {
    this.data.forEach((item) => {
      if (item.id === id) {
        item.isChecked = !item.isChecked;
      }
      return item;
    });
    this.selectAll = this.data.every((item) => item.isChecked);
    this.dataChange.emit(this.data);
    this.cdr.detectChanges();
  }
  isDateLike(value) {
    if (!value || typeof value !== "string")
      return false;
    return /\d{4}-\d{2}-\d{2}/.test(value) || !isNaN(Date.parse(value));
  }
  formatDateValue(value) {
    if (this.isDateLike(value)) {
      if (/\d{2}:\d{2}:\d{2}/.test(value)) {
        return this.timezoneService.transformDateTime(value) || value;
      } else {
        return this.timezoneService.transformDateOnly(value) || value;
      }
    }
    return value;
  }
};
_ClientDatatableComponent.\u0275fac = function ClientDatatableComponent_Factory(t) {
  return new (t || _ClientDatatableComponent)(\u0275\u0275directiveInject(ChangeDetectorRef), \u0275\u0275directiveInject(TimezoneService));
};
_ClientDatatableComponent.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ClientDatatableComponent, selectors: [["app-client-datatable"]], inputs: { data: "data", config: "config", formGroup: "formGroup", formArrayName: "formArrayName" }, outputs: { dataChange: "dataChange", pageChange: "pageChange", pageSizeChange: "pageSizeChange", sortChange: "sortChange", addButtonClick: "addButtonClick" }, standalone: true, features: [\u0275\u0275StandaloneFeature], decls: 49, vars: 17, consts: [["filterList", ""], ["defaultContent", ""], ["templateOrDefault", ""], [1, "mdatatable"], ["class", "header-panel mb-1 mt-0 flex flex-col gap-5 px-2 md:flex-row md:items-center", 4, "ngIf"], [1, "table-responsive", "mt-0", "overflow-x-auto"], [1, "table-hover", "relative", "min-w-full"], [1, "bg-gray-50"], [4, "ngFor", "ngForOf"], [3, "formGroup", "formArrayName", 4, "ngIf"], [4, "ngIf"], [1, "pagination", "items-center", "justify-between", "border-t", "border-gray-200", "py-2", "md:flex"], [1, "flex", "items-center"], [1, "mr-4"], [1, "py-1.5", "text-xs", 3, "ngModelChange", "ngModel", "ngModelOptions"], [3, "value", 4, "ngFor", "ngForOf"], [1, "py-1.5", "text-xs", "text-gray-700"], [1, "font-medium"], ["aria-label", "Pagination", 1, "isolate", "inline-flex", "-space-x-px", "rounded-md", "py-1.5", "text-xs", "shadow-sm"], ["aria-label", "First Page", 1, "relative", "inline-flex", "items-center", "rounded-l-md", "px-2", "py-1", "text-gray-400", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click", "disabled"], [1, "sr-only"], ["viewBox", "0 0 20 20", "fill", "currentColor", "aria-hidden", "true", 1, "h-5", "w-5"], ["fill-rule", "evenodd", "d", "M15.79 14.77a.75.75 0 01-1.06.02l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 111.04 1.08L11.832 10l3.938 3.71a.75.75 0 01.02 1.06zm-6 0a.75.75 0 01-1.06.02l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 111.04 1.08L5.832 10l3.938 3.71a.75.75 0 01.02 1.06z", "clip-rule", "evenodd"], ["aria-label", "Previous Page", 1, "relative", "inline-flex", "items-center", "px-2", "py-2", "text-gray-400", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click", "disabled"], ["fill-rule", "evenodd", "d", "M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z", "clip-rule", "evenodd"], ["aria-label", "Next Page", 1, "relative", "inline-flex", "items-center", "px-2", "py-2", "text-gray-400", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click", "disabled"], ["fill-rule", "evenodd", "d", "M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z", "clip-rule", "evenodd"], ["aria-label", "Last Page", 1, "relative", "inline-flex", "items-center", "rounded-r-md", "px-2", "py-2", "text-gray-400", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click", "disabled"], ["fill-rule", "evenodd", "d", "M4.21 14.77a.75.75 0 01.02-1.06L8.168 10 4.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02zm6 0a.75.75 0 01.02-1.06L14.168 10 10.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z", "clip-rule", "evenodd"], ["class", "fixed inset-0 z-50 overflow-y-auto", 4, "ngIf"], [1, "header-panel", "mb-1", "mt-0", "flex", "flex-col", "gap-5", "px-2", "md:flex-row", "md:items-center"], ["appDynamicFontSize", "title", 1, "font-bold", "dark:text-white-light"], [1, "flex", "items-center", "gap-2", "md:ml-auto", "md:flex-row", "md:items-center"], [3, "innerHTML", 4, "ngIf"], [1, "relative", "mb-2", "flex-grow", "md:mb-0"], ["type", "text", "appDynamicFontSize", "body", "placeholder", "Search...", "aria-label", "Search input", 1, "form-input", "w-full", "pr-10", "text-xs", "text-gray-600", 3, "ngModelChange", "ngModel"], ["aria-expanded", "true", "aria-haspopup", "true", "id", "options-menu", "type", "button", 1, "filter-button", "flex", "items-center", "rounded-md", "border", "border-[#e0e6ed]", "px-4", "py-2", "font-semibold", "dark:border-[#253b5c]", "dark:bg-[#1b2e4b]", "dark:text-white-dark", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "hidden", "md:inline"], ["class", "badge absolute -top-3 rounded-full bg-danger p-0.5 px-1.5", 4, "ngIf"], ["aria-labelledby", "options-menu", "class", "advancedfiltercontainer absolute z-10 mt-2 divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5", "role", "menu", 4, "ngIf"], ["hlMenu", "", "class", "dropdown mb-2 md:mb-0", 4, "ngIf"], ["appDynamicFontSize", "body", "type", "button", "class", "btn-primary flex items-center rounded-md border border-[#e0e6ed] px-4 py-2 font-semibold dark:border-[#253b5c] dark:bg-[#1b2e4b] dark:text-white-dark", 3, "click", 4, "ngIf"], [3, "innerHTML"], [1, "badge", "absolute", "-top-3", "rounded-full", "bg-danger", "p-0.5", "px-1.5"], ["aria-labelledby", "options-menu", "role", "menu", 1, "advancedfiltercontainer", "absolute", "z-10", "mt-2", "divide-y", "divide-gray-100", "rounded-md", "bg-white", "shadow-lg", "ring-1", "ring-black", "ring-opacity-5"], [1, "flex", "items-center", "justify-between", "border-b", "border-gray-200", "p-4"], [1, "flex", "items-center", "gap-4"], ["ngxTippy", "Add Filter", 1, "text-blue-500", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "relative", "h-6", "w-12", "cursor-pointer"], ["type", "checkbox", "id", "custom_switch_checkbox", 1, "custom_switch", "peer", "absolute", "z-10", "h-full", "w-full", "cursor-pointer", "opacity-0", 3, "ngModelChange", "ngModel"], [1, "block", "h-full", "rounded-full", "bg-[#ebedf2]", "before:absolute", "before:bottom-1", "before:left-1", "before:h-4", "before:w-4", "before:rounded-full", "before:bg-white", "before:transition-all", "before:duration-300", "peer-checked:bg-primary", "peer-checked:before:left-7"], ["appearance", "compact", 1, "relative", "!h-[calc(40vh-40px)]"], [1, "space-y-2", "p-4"], [4, "ngIf", "ngIfElse"], [1, "flex", "items-center", "justify-between", "border-t", "border-gray-200", "p-4"], [1, "text-red-500", 3, "click"], [1, "flex", "gap-4"], [1, "btn", "btn-primary", 3, "click", "disabled"], [1, "btn", "btn-secondary", 3, "click"], [1, "text-gray-600"], ["class", "flex items-center gap-2", 4, "ngFor", "ngForOf"], [1, "flex", "items-center", "gap-2"], ["class", "fa-solid fa-diamond shrink-0 text-warning", 4, "ngIf"], ["class", "fa-solid fa-diamond shrink-0 text-info", 4, "ngIf"], [1, "form-select", "w-full", 3, "change", "ngModelChange", "ngModel"], ["value", "", "selected", "", "disabled", ""], [1, "form-select", "w-full", 3, "ngModelChange", "ngModel"], [1, "form-input", "w-full", "pr-10", "text-gray-600", 3, "ngModelChange", "ngModel", "type", "placeholder", "required"], ["aria-label", "Remove filter condition", 1, "text-red-500", 3, "click"], [1, "fa-solid", "fa-xmark", "text-xl"], [1, "fa-solid", "fa-diamond", "shrink-0", "text-warning"], [1, "fa-solid", "fa-diamond", "shrink-0", "text-info"], [3, "value"], ["hlMenu", "", 1, "dropdown", "mb-2", "md:mb-0"], ["hlMenuButton", "", "type", "button", "appDynamicFontSize", "body", 1, "flex", "items-center", "rounded-md", "border", "border-[#e0e6ed]", "px-4", "py-2", "font-semibold", "dark:border-[#253b5c]", "dark:bg-[#1b2e4b]", "dark:text-white-dark"], [1, "fa-solid", "fa-table-columns"], [1, "ltr:mr-1", "rtl:ml-1"], ["class", "w-max ltr:left-0 rtl:right-0", 4, "hlMenuItems"], [1, "w-max", "ltr:left-0", "rtl:right-0"], [1, "flex", "items-center", "border-b", "border-gray-200", "px-4", "py-1"], [1, "mr-2", "px-2", "py-1", "text-blue-500", 3, "click"], [1, "px-2", "py-1", "text-red-500", 3, "click"], [1, "flex", "items-center", "px-4", "py-1"], [1, "mb-0", "cursor-pointer", 3, "for"], ["type", "checkbox", 1, "form-checkbox", 3, "ngModelChange", "id", "ngModel"], ["appDynamicFontSize", "body", 1, "uppercase", "ltr:ml-2", "rtl:mr-2"], ["type", "button", "hlMenuButton", "", 1, "flex", "items-center", "rounded-md", "border", "border-[#e0e6ed]", "px-4", "py-2", "font-semibold", "dark:border-[#253b5c]", "dark:bg-[#1b2e4b]", "dark:text-white-dark"], [1, "fa-solid", "fa-download"], ["class", "whitespace-nowrap ltr:right-0 rtl:left-0", 4, "hlMenuItems"], [1, "whitespace-nowrap", "ltr:right-0", "rtl:left-0"], ["href", "javascript:;", 3, "click", 4, "hlMenuItem"], ["href", "javascript:;", 3, "click"], [1, "fa-solid", "fa-file-pdf", "ltr:mr-2", "rtl:ml-2"], [1, "fa-solid", "fa-file-excel", "ltr:mr-2", "rtl:ml-2"], ["appDynamicFontSize", "body", "type", "button", 1, "btn-primary", "flex", "items-center", "rounded-md", "border", "border-[#e0e6ed]", "px-4", "py-2", "font-semibold", "dark:border-[#253b5c]", "dark:bg-[#1b2e4b]", "dark:text-white-dark", 3, "click"], ["scope", "col", "appDynamicFontSize", "body", "class", "font-large cursor-pointer truncate whitespace-nowrap py-2 text-left tracking-wider", 3, "ngClass", "click", 4, "ngIf"], ["scope", "col", "appDynamicFontSize", "body", 1, "font-large", "cursor-pointer", "truncate", "whitespace-nowrap", "py-2", "text-left", "tracking-wider", 3, "click", "ngClass"], ["class", "arrow-icon ml-3 flex items-center", 4, "ngIf"], ["type", "checkbox", 1, "form-checkbox", 3, "click", "checked"], [1, "arrow-icon", "ml-3", "flex", "items-center"], ["width", "16", "height", "16", "viewBox", "0 0 14 14", "fill", "none"], ["points", "3.11,6.25 10.89,6.25 7,1.75", "fill", "currentColor", 1, "text-black", 3, "ngClass"], ["points", "7,12.25 10.89,7.75 3.11,7.75", "fill", "currentColor", 1, "text-black", 3, "ngClass"], [3, "formGroup", "formArrayName"], [3, "formGroupName", 4, "ngFor", "ngForOf"], [3, "formGroupName"], ["class", "truncate whitespace-nowrap", 3, "ngClass", 4, "ngIf"], [1, "truncate", "whitespace-nowrap", 3, "ngClass"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["type", "button", 3, "class", "title", "click", 4, "ngFor", "ngForOf"], ["type", "button", 3, "click", "title"], ["class", "truncate whitespace-nowrap", 3, "ngClass", "title", 4, "ngIf"], [1, "truncate", "whitespace-nowrap", 3, "ngClass", "title"], ["class", "flex items-center gap-2", 4, "ngIf"], [1, "fa-solid", 3, "ngClass"], [1, "text-xs", "font-medium", 3, "ngClass"], ["type", "checkbox", 1, "form-checkbox", 3, "change", "id", "checked"], [3, "innerHTML", "ngClass", "click", 4, "ngIf"], [3, "click", "innerHTML", "ngClass"], ["class", "cursor-pointer text-blue-600", 3, "click", 4, "ngIf"], [1, "cursor-pointer", "text-blue-600", 3, "click"], [1, "max-w-150", "truncate", "whitespace-nowrap"], ["class", "relative inline-flex items-center px-4 py-2 font-semibold ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-none", 3, "click", 4, "ngSwitchCase"], ["class", "relative inline-flex items-center px-4 py-2 font-semibold ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-20 focus:outline-none", 3, "ngClass", "click", 4, "ngSwitchDefault"], [1, "relative", "inline-flex", "items-center", "px-4", "py-2", "font-semibold", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click"], [1, "relative", "inline-flex", "items-center", "px-4", "py-2", "font-semibold", "ring-1", "ring-inset", "ring-gray-300", "hover:bg-gray-50", "focus:z-20", "focus:outline-none", 3, "click", "ngClass"], [1, "fixed", "inset-0", "z-50", "overflow-y-auto"], [1, "fixed", "inset-0", "bg-black/50", "transition-opacity", "dark:bg-black/70"], [1, "flex", "min-h-screen", "items-center", "justify-center", "p-2", "sm:p-4"], [1, "max-w-auto", "relative", "w-full", "transform", "overflow-hidden", "rounded-lg", "bg-white", "shadow-xl", "transition-all", "dark:border", "dark:border-gray-700", "dark:bg-gray-800"], [1, "border-b", "bg-gray-50", "px-4", "py-3", "dark:border-gray-700", "dark:bg-gray-900", "sm:px-6"], [1, "flex", "items-center", "justify-between"], [1, "close-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "max-h-auto", "overflow-y-auto", "px-4", "py-4", "sm:px-6"], [1, "grid", "gap-4", "md:grid-cols-[1fr,1px,1fr]"], ["class", "flex flex-col gap-4 p-4", 4, "ngIf"], [1, "w-30", "h-[1px]", "bg-gray-300", "md:h-full", "md:w-[1px]"], [1, "grid", "grid-rows-2", "gap-4", "p-4"], [1, "flex", "flex-col", "gap-4", "p-4"], [1, "grid", "gap-4"], [1, "list-disc", "pl-5", "text-sm", 3, "ngClass"], ["class", "border-b py-2", 3, "ngClass", 4, "ngFor", "ngForOf"], [1, "border-b", "py-2", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4"], [1, "pr-4", "font-bold", 3, "innerHTML"], [1, "text-gray-700", 3, "innerHTML"]], template: function ClientDatatableComponent_Template(rf, ctx) {
  if (rf & 1) {
    \u0275\u0275elementStart(0, "div", 3);
    \u0275\u0275template(1, ClientDatatableComponent_div_1_Template, 18, 11, "div", 4);
    \u0275\u0275elementStart(2, "div", 5)(3, "table", 6)(4, "thead", 7)(5, "tr");
    \u0275\u0275template(6, ClientDatatableComponent_ng_container_6_Template, 2, 1, "ng-container", 8);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(7, ClientDatatableComponent_tbody_7_Template, 2, 3, "tbody", 9)(8, ClientDatatableComponent_tbody_8_Template, 3, 2, "tbody", 10);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(9, "div", 11)(10, "div", 12)(11, "div", 13)(12, "select", 14);
    \u0275\u0275twoWayListener("ngModelChange", function ClientDatatableComponent_Template_select_ngModelChange_12_listener($event) {
      \u0275\u0275twoWayBindingSet(ctx.pageSize, $event) || (ctx.pageSize = $event);
      return $event;
    });
    \u0275\u0275listener("ngModelChange", function ClientDatatableComponent_Template_select_ngModelChange_12_listener() {
      return ctx.onPageSizeChange();
    });
    \u0275\u0275template(13, ClientDatatableComponent_option_13_Template, 2, 2, "option", 15);
    \u0275\u0275elementEnd()();
    \u0275\u0275elementStart(14, "div")(15, "p", 16)(16, "span", 17);
    \u0275\u0275text(17);
    \u0275\u0275elementEnd();
    \u0275\u0275text(18, " - ");
    \u0275\u0275elementStart(19, "span", 17);
    \u0275\u0275text(20);
    \u0275\u0275elementEnd();
    \u0275\u0275text(21, " of ");
    \u0275\u0275elementStart(22, "span", 17);
    \u0275\u0275text(23);
    \u0275\u0275elementEnd();
    \u0275\u0275text(24, " entries ");
    \u0275\u0275elementEnd()()();
    \u0275\u0275elementStart(25, "div")(26, "nav", 18)(27, "button", 19);
    \u0275\u0275listener("click", function ClientDatatableComponent_Template_button_click_27_listener() {
      return ctx.onPageChange(1);
    });
    \u0275\u0275elementStart(28, "span", 20);
    \u0275\u0275text(29, "First");
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(30, "svg", 21);
    \u0275\u0275element(31, "path", 22);
    \u0275\u0275elementEnd()();
    \u0275\u0275namespaceHTML();
    \u0275\u0275elementStart(32, "button", 23);
    \u0275\u0275listener("click", function ClientDatatableComponent_Template_button_click_32_listener() {
      return ctx.onPageChange(ctx.currentPage - 1);
    });
    \u0275\u0275elementStart(33, "span", 20);
    \u0275\u0275text(34, "Previous");
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(35, "svg", 21);
    \u0275\u0275element(36, "path", 24);
    \u0275\u0275elementEnd()();
    \u0275\u0275template(37, ClientDatatableComponent_ng_container_37_Template, 4, 2, "ng-container", 8);
    \u0275\u0275namespaceHTML();
    \u0275\u0275elementStart(38, "button", 25);
    \u0275\u0275listener("click", function ClientDatatableComponent_Template_button_click_38_listener() {
      return ctx.onPageChange(ctx.currentPage + 1);
    });
    \u0275\u0275elementStart(39, "span", 20);
    \u0275\u0275text(40, "Next");
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(41, "svg", 21);
    \u0275\u0275element(42, "path", 26);
    \u0275\u0275elementEnd()();
    \u0275\u0275namespaceHTML();
    \u0275\u0275elementStart(43, "button", 27);
    \u0275\u0275listener("click", function ClientDatatableComponent_Template_button_click_43_listener() {
      return ctx.onPageChange(ctx.totalPages);
    });
    \u0275\u0275elementStart(44, "span", 20);
    \u0275\u0275text(45, "Last");
    \u0275\u0275elementEnd();
    \u0275\u0275namespaceSVG();
    \u0275\u0275elementStart(46, "svg", 21);
    \u0275\u0275element(47, "path", 28);
    \u0275\u0275elementEnd()()()()()();
    \u0275\u0275template(48, ClientDatatableComponent_div_48_Template, 20, 3, "div", 29);
  }
  if (rf & 2) {
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.config.headerConfig == null ? null : ctx.config.headerConfig.showHeader);
    \u0275\u0275advance(5);
    \u0275\u0275property("ngForOf", ctx.config.columns);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", ctx.formGroup);
    \u0275\u0275advance();
    \u0275\u0275property("ngIf", !ctx.formGroup);
    \u0275\u0275advance(4);
    \u0275\u0275twoWayProperty("ngModel", ctx.pageSize);
    \u0275\u0275property("ngModelOptions", \u0275\u0275pureFunction0(16, _c0));
    \u0275\u0275advance();
    \u0275\u0275property("ngForOf", ctx.config.pageSizes);
    \u0275\u0275advance(4);
    \u0275\u0275textInterpolate((ctx.currentPage - 1) * ctx.pageSize + 1);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(ctx.endIndex);
    \u0275\u0275advance(3);
    \u0275\u0275textInterpolate(ctx.filteredData.length);
    \u0275\u0275advance(4);
    \u0275\u0275property("disabled", ctx.currentPage === 1);
    \u0275\u0275advance(5);
    \u0275\u0275property("disabled", ctx.currentPage === 1);
    \u0275\u0275advance(5);
    \u0275\u0275property("ngForOf", ctx.getPageNumbers());
    \u0275\u0275advance();
    \u0275\u0275property("disabled", ctx.currentPage === ctx.totalPages);
    \u0275\u0275advance(5);
    \u0275\u0275property("disabled", ctx.currentPage === ctx.totalPages);
    \u0275\u0275advance(5);
    \u0275\u0275property("ngIf", ctx.isStatusModalOpen);
  }
}, dependencies: [CommonModule, NgClass, NgForOf, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, FormsModule, NgSelectOption, \u0275NgSelectMultipleOption, DefaultValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgControlStatus, NgControlStatusGroup, RequiredValidator, NgModel, NgMultiSelectDropDownModule, ReactiveFormsModule, FormGroupDirective, FormGroupName, FormArrayName, CommonSharedModule, NgScrollbar, MenuDirective, MenuButtonDirective, MenuItemsPanelDirective, MenuItemDirective, NgxTippyDirective, DynamicFontSizeDirective, TranslatePipe, SafeHtmlPipe], styles: ["\n\n.bg-red-200[_ngcontent-%COMP%] {\n  background-color: #f8d7da;\n}\n.text-red-600[_ngcontent-%COMP%] {\n  color: #721c24;\n}\n.bg-orange-200[_ngcontent-%COMP%] {\n  background-color: #ffeeba;\n}\n.text-orange-600[_ngcontent-%COMP%] {\n  color: #856404;\n}\n.arrow-icon[_ngcontent-%COMP%] {\n  display: inline-block;\n  vertical-align: middle;\n}\n.arrow-icon[_ngcontent-%COMP%]   .common[_ngcontent-%COMP%] {\n  transform: rotate(90deg);\n  fill: grey;\n  vertical-align: middle;\n  margin: 0;\n  padding: 0;\n}\n.arrow-icon[_ngcontent-%COMP%]   .common.active[_ngcontent-%COMP%] {\n  fill: black;\n  color: black;\n}\n.arrow-icon[_ngcontent-%COMP%]   .common[_ngcontent-%COMP%]:first-child {\n  margin-bottom: -3px;\n}\n.arrow-icon[_ngcontent-%COMP%]   .common[_ngcontent-%COMP%]:last-child {\n  margin-top: -1px;\n}\n.pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%] {\n  border-radius: 0.375rem;\n  border-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(224 230 237 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  padding-left: 0.5rem;\n  padding-right: 1rem;\n  font-weight: 600;\n  --tw-text-opacity: 1;\n  color: rgb(14 23 38 / var(--tw-text-opacity));\n}\n.pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%]:focus {\n  --tw-border-opacity: 1;\n  border-color: rgb(67 97 238 / var(--tw-border-opacity));\n  --tw-ring-color: transparent;\n}\n.pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  --tw-border-opacity: 1;\n  border-color: rgb(23 38 60 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(18 30 50 / var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(136 142 168 / var(--tw-text-opacity));\n}\n.pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%]:focus:is(.dark   *)[_ngcontent-%COMP%] {\n  --tw-border-opacity: 1;\n  border-color: rgb(67 97 238 / var(--tw-border-opacity));\n}\n@media (max-width: 768px) {\n  .form-select[_ngcontent-%COMP%] {\n    width: 100%;\n  }\n  .flex-wrap[_ngcontent-%COMP%] {\n    justify-content: space-between;\n  }\n  .pagination[_ngcontent-%COMP%] {\n    flex-direction: column;\n    align-items: center;\n  }\n  .pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%] {\n    margin-bottom: 1rem;\n  }\n}\n.panel[_ngcontent-%COMP%] {\n  margin: -15px;\n  padding: 1.25rem 1.25rem 0.25rem 1.25rem;\n}\n.multiple-select[_ngcontent-%COMP%] {\n  width: 100%;\n  --tw-border-opacity: 1;\n  border-color: rgb(224 230 237/var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255/var(--tw-bg-opacity));\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n  font-weight: 600;\n  --tw-text-opacity: 1;\n  color: rgb(14 23 38/var(--tw-text-opacity));\n  outline: 2px solid transparent !important;\n  outline-offset: 2px !important;\n}\n.multiple-select[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  --tw-border-opacity: 1;\n  border-color: rgb(23 38 60/var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(18 30 50/var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(136 142 168/var(--tw-text-opacity));\n}\n.dropdown-list[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  --tw-border-opacity: 1;\n  border-color: rgb(23 38 60/var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(18 30 50/var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(136 142 168/var(--tw-text-opacity));\n}\n.filter-textbox[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]   [_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  --tw-border-opacity: 1;\n  border-color: rgb(23 38 60/var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(18 30 50/var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(136 142 168/var(--tw-text-opacity));\n}\n.header-panel[_ngcontent-%COMP%] {\n  margin-top: -15px;\n}\n.panel[_ngcontent-%COMP%] {\n  padding: 1.25rem 1.25rem 0.25rem 1.25rem;\n}\n.bh-text-black[_ngcontent-%COMP%] {\n  color: rgba(14, 23, 38, 0.2);\n}\n.bh-text-primary[_ngcontent-%COMP%] {\n  --tw-text-opacity: 1 !important;\n  color: rgb(67, 97, 238) !important;\n}\n.form-select[_ngcontent-%COMP%] {\n  width: auto;\n  min-width: 120px;\n}\n[_ngcontent-%COMP%]:is(.dark   table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   tr)[_ngcontent-%COMP%], [_ngcontent-%COMP%]:is(.dark   table[_ngcontent-%COMP%]   tfoot[_ngcontent-%COMP%]   tr)[_ngcontent-%COMP%] {\n  --tw-bg-opacity: 1 !important;\n  background-color: rgb(26, 41, 65) !important;\n}\n[_ngcontent-%COMP%]:is(.dark   .mdatatable)[_ngcontent-%COMP%] {\n  --tw-text-opacity: 1;\n  color: rgb(136 142 168/var(--tw-text-opacity));\n}\n[_ngcontent-%COMP%]:is(.dark   .mdatatable[_ngcontent-%COMP%]   .bh-sort[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]   polygon)[_ngcontent-%COMP%] {\n  --tw-text-opacity: 1;\n  color: rgb(59 63 92/var(--tw-text-opacity));\n}\n.sticky[_ngcontent-%COMP%] {\n  position: sticky;\n  background-clip: padding-box;\n}\nthead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%] {\n  background: #e5e7eb;\n}\ntbody[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%] {\n  background-color: #fff;\n}\nthead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  background-color: rgb(21, 33, 53) !important;\n}\ntbody[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  background-color: rgb(14 23 38/var(--tw-bg-opacity));\n}\n.sticky.right-0[_ngcontent-%COMP%] {\n  right: 0;\n}\n[_ngcontent-%COMP%]:is(.dark)   th[_ngcontent-%COMP%], [_ngcontent-%COMP%]:is(.dark)   td[_ngcontent-%COMP%] {\n  border-color: #374151;\n}\n[_ngcontent-%COMP%]:is(.dark)   thead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%] {\n  box-shadow: inset 1px 0 0 #374151;\n}\n[_ngcontent-%COMP%]:is(.dark)   tbody[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%] {\n  box-shadow: inset 1px 0 0 #374151;\n  background-color: #1f2937;\n}\n[_ngcontent-%COMP%]:is(.dark)   thead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%] {\n  background-color: #1f2937;\n}\n.truncate[_ngcontent-%COMP%] {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n.max-w-150[_ngcontent-%COMP%] {\n  max-width: 150px;\n}\n@media (max-width: 640px) {\n  .header-panel[_ngcontent-%COMP%] {\n    flex-direction: column;\n    align-items: stretch;\n  }\n  .flex-wrap[_ngcontent-%COMP%] {\n    flex-direction: column;\n  }\n  .form-select[_ngcontent-%COMP%], .form-input[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%] {\n    margin-bottom: 0.5rem;\n  }\n  .relative.flex-grow[_ngcontent-%COMP%] {\n    width: 100%;\n  }\n  .flex.items-center.gap-4[_ngcontent-%COMP%] {\n    flex-direction: column;\n    align-items: stretch;\n  }\n}\n.search-btn[_ngcontent-%COMP%] {\n  padding-left: 1.25rem;\n  padding-right: 1.25rem;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n.dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%] {\n  z-index: 1000;\n}\n.advancedfiltercontainer[_ngcontent-%COMP%] {\n  min-width: 300px;\n  max-width: 100%;\n  width: 90%;\n  left: 50%;\n  transform: translateX(-50%);\n  right: auto;\n  z-index: 1000;\n  position: fixed;\n  top: 10%;\n  max-height: 60vh;\n  overflow-y: auto;\n}\n@media (min-width: 640px) {\n  .advancedfiltercontainer[_ngcontent-%COMP%] {\n    min-width: 500px;\n    width: 60%;\n  }\n}\n@media (min-width: 1024px) {\n  .advancedfiltercontainer[_ngcontent-%COMP%] {\n    max-width: 600px;\n    width: 70%;\n  }\n}\n.advancedfiltercontainer[_ngcontent-%COMP%]   .relative[_ngcontent-%COMP%] {\n  max-height: calc(80vh - 120px);\n  overflow-y: auto;\n}\n@media (max-width: 640px) {\n  .advancedfiltercontainer[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .advancedfiltercontainer[_ngcontent-%COMP%]   select[_ngcontent-%COMP%] {\n    width: 100%;\n    margin-bottom: 0.5rem;\n  }\n  .advancedfiltercontainer[_ngcontent-%COMP%]   .flex[_ngcontent-%COMP%] {\n    flex-direction: column;\n  }\n  .advancedfiltercontainer[_ngcontent-%COMP%]   .flex[_ngcontent-%COMP%]    > *[_ngcontent-%COMP%] {\n    width: 100%;\n    margin-right: 0 !important;\n  }\n}\n.advancedfiltercontainer[_ngcontent-%COMP%]   .flex.items-center.justify-between[_ngcontent-%COMP%] {\n  flex-wrap: wrap;\n}\n.advancedfiltercontainer[_ngcontent-%COMP%]   .flex.items-center.justify-between[_ngcontent-%COMP%]    > *[_ngcontent-%COMP%] {\n  margin-bottom: 0.5rem;\n}\n@media (max-width: 768px) {\n  .pagination[_ngcontent-%COMP%]   select[_ngcontent-%COMP%] {\n    margin-top: 1rem;\n  }\n  .filter-button[_ngcontent-%COMP%] {\n    height: 33.6px;\n  }\n}\n.ng-select[_ngcontent-%COMP%]   .ng-option[_ngcontent-%COMP%] {\n  padding: 10px;\n}\n.ng-select[_ngcontent-%COMP%]   .ng-dropdown-panel[_ngcontent-%COMP%] {\n  max-height: 200px;\n  overflow-y: auto;\n}\n.table-container[_ngcontent-%COMP%] {\n  position: relative;\n}\n.ng-select[_ngcontent-%COMP%] {\n  position: relative;\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%] {\n  margin-top: -15px;\n  display: flex;\n  flex-direction: column;\n  gap: 1rem;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%] {\n    flex-direction: row;\n    align-items: center;\n    justify-content: space-between;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   .font-bold[_ngcontent-%COMP%] {\n  margin-bottom: 1rem;\n  text-align: center;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   .font-bold[_ngcontent-%COMP%] {\n    margin-bottom: 0;\n    text-align: left;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child {\n  display: flex;\n  flex-direction: column;\n  gap: 0.75rem;\n  width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child {\n    flex-direction: row;\n    align-items: center;\n    width: auto;\n    gap: 0.5rem;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .filter-button[_ngcontent-%COMP%] {\n  width: 100%;\n  order: 2;\n  height: 38px;\n  justify-content: center;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .filter-button[_ngcontent-%COMP%] {\n    width: auto;\n    order: unset;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .filter-button[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n  margin-right: 0.5rem;\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .dropdown[_ngcontent-%COMP%] {\n  width: 100%;\n  order: 3;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .dropdown[_ngcontent-%COMP%] {\n    width: auto;\n    order: unset;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .dropdown[_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 38px;\n  justify-content: center;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .dropdown[_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n    width: auto;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   div[hlMenu].dropdown[_ngcontent-%COMP%] {\n  width: 100%;\n  order: 4;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   div[hlMenu].dropdown[_ngcontent-%COMP%] {\n    width: auto;\n    order: unset;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   div[hlMenu].dropdown[_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n  width: 100%;\n  height: 38px;\n  justify-content: center;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   div[hlMenu].dropdown[_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n    width: auto;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .btn-primary[_ngcontent-%COMP%] {\n  width: 100%;\n  order: 5;\n  height: 38px;\n  justify-content: center;\n}\n@media screen and (min-width: 768px) {\n  .mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .btn-primary[_ngcontent-%COMP%] {\n    width: auto;\n    order: unset;\n  }\n}\n.mdatatable[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]    > div[_ngcontent-%COMP%]:last-child   .btn-primary[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n  margin-right: 0.5rem;\n}\nbutton.filter-button[_ngcontent-%COMP%], button.btn-primary[_ngcontent-%COMP%], button[hlMenuButton][_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  padding: 0.5rem 1rem;\n  border: 1px solid #e0e6ed;\n  border-radius: 0.375rem;\n  font-weight: 600;\n  transition: all 0.3s ease;\n}\nbutton.filter-button[_ngcontent-%COMP%]   i[_ngcontent-%COMP%], button.btn-primary[_ngcontent-%COMP%]   i[_ngcontent-%COMP%], button[hlMenuButton][_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n  font-size: 0.875rem;\n}\n.dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   input[_ngcontent-%COMP%] {\n  background-color: #1b2e4b;\n  border-color: #253b5c;\n  color: #888ea8;\n}\n.dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button.filter-button[_ngcontent-%COMP%], .dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button.btn-primary[_ngcontent-%COMP%], .dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button[hlMenuButton][_ngcontent-%COMP%] {\n  background-color: #1b2e4b;\n  border-color: #253b5c;\n  color: #888ea8;\n}\n.dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button.filter-button[_ngcontent-%COMP%]:hover, .dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button.btn-primary[_ngcontent-%COMP%]:hover, .dark[_ngcontent-%COMP%]   .header-panel[_ngcontent-%COMP%]   button[hlMenuButton][_ngcontent-%COMP%]:hover {\n  background-color: #192a44;\n}\n.dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%] {\n  background-color: #1b2e4b;\n  border-color: #253b5c;\n}\n.dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%] {\n  border-color: #253b5c;\n}\n.dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n  color: #888ea8;\n}\n.dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover, .dark[_ngcontent-%COMP%]   .dropdown[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:hover {\n  background-color: #192a44;\n}\n.form-input[_ngcontent-%COMP%], .form-select[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%], .filter-button[_ngcontent-%COMP%], button[hlMenuButton][_ngcontent-%COMP%] {\n  height: 38px;\n}\n.table-responsive[_ngcontent-%COMP%] {\n  position: relative;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%] {\n  border-collapse: separate;\n  border-spacing: 0;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%], .table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%] {\n  position: sticky;\n  z-index: 2;\n  background-clip: padding-box;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th.sticky.right-0[_ngcontent-%COMP%], .table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   td.sticky.right-0[_ngcontent-%COMP%] {\n  right: 0;\n  box-shadow: -2px 0 3px rgba(0, 0, 0, 0.1);\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%] {\n  z-index: 3;\n  background-color: #f9fafb;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  background-color: rgb(26, 41, 65) !important;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%] {\n  background-color: #ffffff;\n}\n.table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%]:is(.dark   *)[_ngcontent-%COMP%] {\n  background-color: rgb(14, 23, 38);\n}\ntd[class*=sticky][_ngcontent-%COMP%] {\n  padding: 0.5rem 1rem;\n}\ntd[class*=sticky][_ngcontent-%COMP%]   button[_ngcontent-%COMP%] {\n  margin: 0 0.25rem;\n}\ntd[class*=sticky][_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:first-child {\n  margin-left: 0;\n}\ntd[class*=sticky][_ngcontent-%COMP%]   button[_ngcontent-%COMP%]:last-child {\n  margin-right: 0;\n}\n@media (max-width: 768px) {\n  .table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   td.sticky[_ngcontent-%COMP%], .table-responsive[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th.sticky[_ngcontent-%COMP%] {\n    position: relative;\n    right: auto;\n    box-shadow: none;\n  }\n}\n/*# sourceMappingURL=client-datatable.component.css.map */"], data: { animation: [
  trigger("toggleAnimation", [
    transition(":enter", [style({ opacity: 0, transform: "scale(0.95)" }), animate("100ms ease-out", style({ opacity: 1, transform: "scale(1)" }))]),
    transition(":leave", [animate("75ms", style({ opacity: 0, transform: "scale(0.95)" }))])
  ])
] } });
var ClientDatatableComponent = _ClientDatatableComponent;
(() => {
  (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ClientDatatableComponent, { className: "ClientDatatableComponent", filePath: "src\\app\\@lcp-framework\\components\\client-datatable\\client-datatable.component.ts", lineNumber: 78 });
})();

export {
  ClientDatatableComponent
};
//# sourceMappingURL=chunk-3RTU34A3.js.map
