mis-crystal-design-system 18.0.19 → 18.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,10 +6,13 @@ import * as i2 from '@angular/cdk/scrolling';
6
6
  import { ScrollingModule } from '@angular/cdk/scrolling';
7
7
  import * as i2$1 from 'mis-crystal-design-system/checkbox';
8
8
  import { CheckboxModule } from 'mis-crystal-design-system/checkbox';
9
+ import * as i1$1 from '@angular/cdk/overlay';
10
+ import { OverlayConfig, ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay';
11
+ import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
9
12
 
10
13
  const _c0$3 = ["filter"];
11
- const _c1$2 = ["table"];
12
- const _c2$2 = ["colHeaderRef"];
14
+ const _c1$3 = ["table"];
15
+ const _c2$3 = ["colHeaderRef"];
13
16
  const _c3$1 = (a0, a1, a2) => ({ height: a0, width: a1, "overflow-x": a2 });
14
17
  const _c4$1 = (a0, a1, a2) => ({ "no-scrollbar": a0, scrollbar: a1, "scroll-horizontally": a2 });
15
18
  const _c5$1 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
@@ -576,8 +579,8 @@ class TableComponent {
576
579
  static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
577
580
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["mis-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
578
581
  i0.ɵɵviewQuery(_c0$3, 5);
579
- i0.ɵɵviewQuery(_c1$2, 5);
580
- i0.ɵɵviewQuery(_c2$2, 5);
582
+ i0.ɵɵviewQuery(_c1$3, 5);
583
+ i0.ɵɵviewQuery(_c2$3, 5);
581
584
  } if (rf & 2) {
582
585
  let _t;
583
586
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
@@ -689,8 +692,8 @@ class CustomTableCellDirective {
689
692
  }] }); })();
690
693
 
691
694
  const _c0$2 = ["table"];
692
- const _c1$1 = (a0, a1) => ({ height: a0, width: a1 });
693
- const _c2$1 = (a0, a1, a2) => ({ height: a0, "border-top": a1, "border-bottom": a2 });
695
+ const _c1$2 = (a0, a1) => ({ height: a0, width: a1 });
696
+ const _c2$2 = (a0, a1, a2) => ({ height: a0, "border-top": a1, "border-bottom": a2 });
694
697
  const _c3 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
695
698
  const _c4 = a0 => ({ backgroundColor: a0 });
696
699
  const _c5 = a0 => ({ width: a0 });
@@ -733,7 +736,7 @@ function SubTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
733
736
  i0.ɵɵelementEnd();
734
737
  } if (rf & 2) {
735
738
  const ctx_r2 = i0.ɵɵnextContext();
736
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$1, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
739
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$2, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
737
740
  i0.ɵɵadvance();
738
741
  i0.ɵɵproperty("ngForOf", ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig);
739
742
  } }
@@ -852,7 +855,7 @@ class SubTableComponent {
852
855
  i0.ɵɵtemplate(6, SubTableComponent_div_6_Template, 3, 4, "div", 5);
853
856
  i0.ɵɵelementEnd()()()();
854
857
  } if (rf & 2) {
855
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c1$1, ctx.getContainerHeight(), ctx.getContainerWidth()));
858
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c1$2, ctx.getContainerHeight(), ctx.getContainerWidth()));
856
859
  i0.ɵɵadvance(3);
857
860
  i0.ɵɵproperty("ngIf", !!ctx.config.showHeader);
858
861
  i0.ɵɵadvance(2);
@@ -876,8 +879,8 @@ class SubTableComponent {
876
879
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubTableComponent, { className: "SubTableComponent" }); })();
877
880
 
878
881
  const _c0$1 = ["mainContainer"];
879
- const _c1 = () => ({ "margin": "16px 0px" });
880
- const _c2 = () => ({ "margin-right": "8px" });
882
+ const _c1$1 = () => ({ "margin": "16px 0px" });
883
+ const _c2$1 = () => ({ "margin-right": "8px" });
881
884
  function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
882
885
  const _r2 = i0.ɵɵgetCurrentView();
883
886
  i0.ɵɵelementStart(0, "div")(1, "div", 15)(2, "mis-checkbox", 16);
@@ -896,7 +899,7 @@ function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
896
899
  function TableFilterComponent_div_9_Template(rf, ctx) { if (rf & 1) {
897
900
  i0.ɵɵelement(0, "div", 11);
898
901
  } if (rf & 2) {
899
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c1));
902
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c1$1));
900
903
  } }
901
904
  function TableFilterComponent_div_11_div_1_Template(rf, ctx) { if (rf & 1) {
902
905
  const _r5 = i0.ɵɵgetCurrentView();
@@ -1028,9 +1031,9 @@ class TableFilterComponent {
1028
1031
  i0.ɵɵadvance();
1029
1032
  i0.ɵɵproperty("ngIf", ctx.getFiltersBasedOnSearchValue().length < 1);
1030
1033
  i0.ɵɵadvance();
1031
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1));
1034
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1$1));
1032
1035
  i0.ɵɵadvance(2);
1033
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2));
1036
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2$1));
1034
1037
  } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgStyle, i2$1.CheckboxComponent], styles: ["#main-container[_ngcontent-%COMP%]{position:absolute;background:#fff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;margin-bottom:8px}input[_ngcontent-%COMP%]{width:100%;padding:12px 12px 12px 42px;border:solid 1px black;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input[_ngcontent-%COMP%]:focus{border:solid 1px #0937b2}#search-icon[_ngcontent-%COMP%]{position:absolute;top:15px;left:12px}.filters-sub-container[_ngcontent-%COMP%]{max-height:144px;overflow-y:auto}.filter[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text[_ngcontent-%COMP%]{font-size:14px;line-height:20px;padding-left:8px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:center;align-items:center}.separator[_ngcontent-%COMP%]{border:1px solid #e0e0e0}#buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}button[_ngcontent-%COMP%]{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn[_ngcontent-%COMP%]{background:#0937b2;color:#fff}#reset-btn[_ngcontent-%COMP%]{background:#fff;color:#0937b2}"] }); }
1035
1038
  }
1036
1039
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableFilterComponent, [{
@@ -1185,177 +1188,162 @@ class SortIconsDirective {
1185
1188
  }]
1186
1189
  }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
1187
1190
 
1188
- const _c0 = a0 => ({ disabled: a0 });
1191
+ const _c0 = ["dropdownMenu"];
1192
+ const _c1 = ["dropdownTrigger"];
1193
+ const _c2 = a0 => ({ disabled: a0 });
1189
1194
  function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
1190
1195
  const _r1 = i0.ɵɵgetCurrentView();
1191
- i0.ɵɵelementStart(0, "div", 7);
1196
+ i0.ɵɵelementStart(0, "div", 9);
1192
1197
  i0.ɵɵlistener("click", function ActionsCellComponent_div_1_div_1_Template_div_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActionClick(item_r2, $event)); });
1193
- i0.ɵɵelement(1, "img", 8);
1198
+ i0.ɵɵelement(1, "img", 10);
1194
1199
  i0.ɵɵelementEnd();
1195
1200
  } if (rf & 2) {
1196
1201
  const item_r2 = ctx.$implicit;
1197
1202
  const ctx_r2 = i0.ɵɵnextContext(2);
1198
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.isDisabled(item_r2)));
1203
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(item_r2)));
1199
1204
  i0.ɵɵadvance();
1200
1205
  i0.ɵɵproperty("src", item_r2.icon, i0.ɵɵsanitizeUrl)("alt", item_r2.label);
1201
1206
  } }
1202
1207
  function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
1203
- i0.ɵɵelementStart(0, "div", 5);
1204
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div", 6);
1208
+ i0.ɵɵelementStart(0, "div", 7);
1209
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div", 8);
1205
1210
  i0.ɵɵelementEnd();
1206
1211
  } if (rf & 2) {
1207
1212
  const ctx_r2 = i0.ɵɵnextContext();
1208
1213
  i0.ɵɵadvance();
1209
1214
  i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
1210
1215
  } }
1211
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
1212
- i0.ɵɵelementStart(0, "span", 26);
1213
- i0.ɵɵelement(1, "img", 27);
1216
+ function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
1217
+ const _r4 = i0.ɵɵgetCurrentView();
1218
+ i0.ɵɵelementStart(0, "div", 11)(1, "div", 12, 1);
1219
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDropdown($event)); });
1220
+ i0.ɵɵnamespaceSVG();
1221
+ i0.ɵɵelementStart(3, "svg", 13);
1222
+ i0.ɵɵelement(4, "circle", 14)(5, "circle", 15)(6, "circle", 16);
1223
+ i0.ɵɵelementEnd()()();
1224
+ } }
1225
+ function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
1226
+ const _r5 = i0.ɵɵgetCurrentView();
1227
+ i0.ɵɵelementStart(0, "div", 17)(1, "mis-checkbox", 18);
1228
+ i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCheckboxChange($event)); });
1229
+ i0.ɵɵelementEnd()();
1230
+ } if (rf & 2) {
1231
+ const ctx_r2 = i0.ɵɵnextContext();
1232
+ i0.ɵɵadvance();
1233
+ i0.ɵɵproperty("checked", ctx_r2.isChecked)("disabled", ctx_r2.disable ? ctx_r2.disable(ctx_r2.data) : false);
1234
+ } }
1235
+ function ActionsCellComponent_ng_template_4_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
1236
+ i0.ɵɵelementStart(0, "span", 29);
1237
+ i0.ɵɵelement(1, "img", 30);
1214
1238
  i0.ɵɵelementEnd();
1215
1239
  } if (rf & 2) {
1216
- const item_r6 = i0.ɵɵnextContext(2).$implicit;
1240
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
1217
1241
  i0.ɵɵadvance();
1218
- i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
1242
+ i0.ɵɵproperty("src", item_r7.icon, i0.ɵɵsanitizeUrl);
1219
1243
  } }
1220
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
1221
- i0.ɵɵelementStart(0, "span", 26);
1222
- i0.ɵɵelement(1, "img", 27);
1244
+ function ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
1245
+ i0.ɵɵelementStart(0, "span", 29);
1246
+ i0.ɵɵelement(1, "img", 30);
1223
1247
  i0.ɵɵelementEnd();
1224
1248
  } if (rf & 2) {
1225
- const child_r8 = i0.ɵɵnextContext().$implicit;
1249
+ const child_r9 = i0.ɵɵnextContext().$implicit;
1226
1250
  i0.ɵɵadvance();
1227
- i0.ɵɵproperty("src", child_r8.icon, i0.ɵɵsanitizeUrl);
1251
+ i0.ɵɵproperty("src", child_r9.icon, i0.ɵɵsanitizeUrl);
1228
1252
  } }
1229
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
1230
- const _r7 = i0.ɵɵgetCurrentView();
1231
- i0.ɵɵelementStart(0, "div", 18);
1232
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const child_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(child_r8, $event)); });
1233
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 20);
1234
- i0.ɵɵelementStart(2, "span", 21);
1253
+ function ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
1254
+ const _r8 = i0.ɵɵgetCurrentView();
1255
+ i0.ɵɵelementStart(0, "div", 21);
1256
+ i0.ɵɵlistener("click", function ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const child_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(child_r9, $event)); });
1257
+ i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 23);
1258
+ i0.ɵɵelementStart(2, "span", 24);
1235
1259
  i0.ɵɵtext(3);
1236
1260
  i0.ɵɵelementEnd()();
1237
1261
  } if (rf & 2) {
1238
- const child_r8 = ctx.$implicit;
1239
- const ctx_r2 = i0.ɵɵnextContext(6);
1240
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.isDisabled(child_r8)));
1262
+ const child_r9 = ctx.$implicit;
1263
+ const ctx_r2 = i0.ɵɵnextContext(5);
1264
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(child_r9)));
1241
1265
  i0.ɵɵadvance();
1242
- i0.ɵɵproperty("ngIf", child_r8.icon);
1266
+ i0.ɵɵproperty("ngIf", child_r9.icon);
1243
1267
  i0.ɵɵadvance(2);
1244
- i0.ɵɵtextInterpolate(child_r8.label);
1268
+ i0.ɵɵtextInterpolate(child_r9.label);
1245
1269
  } }
1246
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
1247
- i0.ɵɵelementStart(0, "div", 28);
1248
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template, 4, 5, "div", 17);
1270
+ function ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
1271
+ i0.ɵɵelementStart(0, "div", 31);
1272
+ i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_div_1_Template, 4, 5, "div", 20);
1249
1273
  i0.ɵɵelementEnd();
1250
1274
  } if (rf & 2) {
1251
- const item_r6 = i0.ɵɵnextContext(2).$implicit;
1252
- i0.ɵɵproperty("ngClass", item_r6.submenuAlign);
1275
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
1276
+ i0.ɵɵproperty("ngClass", item_r7.submenuAlign);
1253
1277
  i0.ɵɵadvance();
1254
- i0.ɵɵproperty("ngForOf", item_r6.children);
1278
+ i0.ɵɵproperty("ngForOf", item_r7.children);
1255
1279
  } }
1256
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
1280
+ function ActionsCellComponent_ng_template_4_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
1257
1281
  i0.ɵɵelementContainerStart(0);
1258
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template, 2, 1, "span", 20);
1259
- i0.ɵɵelementStart(2, "span", 21);
1282
+ i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_4_div_1_ng_container_1_span_1_Template, 2, 1, "span", 23);
1283
+ i0.ɵɵelementStart(2, "span", 24);
1260
1284
  i0.ɵɵtext(3);
1261
1285
  i0.ɵɵelementEnd();
1262
- i0.ɵɵelementStart(4, "span", 22);
1286
+ i0.ɵɵelementStart(4, "span", 25);
1263
1287
  i0.ɵɵnamespaceSVG();
1264
- i0.ɵɵelementStart(5, "svg", 23);
1265
- i0.ɵɵelement(6, "path", 24);
1288
+ i0.ɵɵelementStart(5, "svg", 26);
1289
+ i0.ɵɵelement(6, "path", 27);
1266
1290
  i0.ɵɵelementEnd()();
1267
- i0.ɵɵtemplate(7, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template, 2, 2, "div", 25);
1291
+ i0.ɵɵtemplate(7, ActionsCellComponent_ng_template_4_div_1_ng_container_1_div_7_Template, 2, 2, "div", 28);
1268
1292
  i0.ɵɵelementContainerEnd();
1269
1293
  } if (rf & 2) {
1270
- const item_r6 = i0.ɵɵnextContext().$implicit;
1294
+ const item_r7 = i0.ɵɵnextContext().$implicit;
1271
1295
  i0.ɵɵadvance();
1272
- i0.ɵɵproperty("ngIf", item_r6.icon);
1296
+ i0.ɵɵproperty("ngIf", item_r7.icon);
1273
1297
  i0.ɵɵadvance(2);
1274
- i0.ɵɵtextInterpolate(item_r6.label);
1298
+ i0.ɵɵtextInterpolate(item_r7.label);
1275
1299
  i0.ɵɵadvance(4);
1276
- i0.ɵɵproperty("ngIf", item_r6.showSubmenu);
1300
+ i0.ɵɵproperty("ngIf", item_r7.showSubmenu);
1277
1301
  } }
1278
- function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
1279
- i0.ɵɵelementStart(0, "span", 26);
1280
- i0.ɵɵelement(1, "img", 27);
1302
+ function ActionsCellComponent_ng_template_4_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
1303
+ i0.ɵɵelementStart(0, "span", 29);
1304
+ i0.ɵɵelement(1, "img", 30);
1281
1305
  i0.ɵɵelementEnd();
1282
1306
  } if (rf & 2) {
1283
- const item_r6 = i0.ɵɵnextContext(2).$implicit;
1307
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
1284
1308
  i0.ɵɵadvance();
1285
- i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
1309
+ i0.ɵɵproperty("src", item_r7.icon, i0.ɵɵsanitizeUrl);
1286
1310
  } }
1287
- function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1288
- i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 20);
1289
- i0.ɵɵelementStart(1, "span", 21);
1311
+ function ActionsCellComponent_ng_template_4_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1312
+ i0.ɵɵtemplate(0, ActionsCellComponent_ng_template_4_div_1_ng_template_2_span_0_Template, 2, 1, "span", 23);
1313
+ i0.ɵɵelementStart(1, "span", 24);
1290
1314
  i0.ɵɵtext(2);
1291
1315
  i0.ɵɵelementEnd();
1292
1316
  } if (rf & 2) {
1293
- const item_r6 = i0.ɵɵnextContext().$implicit;
1294
- i0.ɵɵproperty("ngIf", item_r6.icon);
1317
+ const item_r7 = i0.ɵɵnextContext().$implicit;
1318
+ i0.ɵɵproperty("ngIf", item_r7.icon);
1295
1319
  i0.ɵɵadvance(2);
1296
- i0.ɵɵtextInterpolate(item_r6.label);
1297
- } }
1298
- function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1) {
1299
- const _r5 = i0.ɵɵgetCurrentView();
1300
- i0.ɵɵelementStart(0, "div", 18);
1301
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_Template_div_click_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(item_r6, $event)); });
1302
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template, 8, 3, "ng-container", 19)(2, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1303
- i0.ɵɵelementEnd();
1304
- } if (rf & 2) {
1305
- const item_r6 = ctx.$implicit;
1306
- const noChildren_r9 = i0.ɵɵreference(3);
1307
- const ctx_r2 = i0.ɵɵnextContext(3);
1308
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.isDisabled(item_r6)));
1309
- i0.ɵɵadvance();
1310
- i0.ɵɵproperty("ngIf", item_r6.children == null ? null : item_r6.children.length)("ngIfElse", noChildren_r9);
1320
+ i0.ɵɵtextInterpolate(item_r7.label);
1311
1321
  } }
1312
- function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
1313
- i0.ɵɵelementStart(0, "div", 16);
1314
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 5, "div", 17);
1322
+ function ActionsCellComponent_ng_template_4_div_1_Template(rf, ctx) { if (rf & 1) {
1323
+ const _r6 = i0.ɵɵgetCurrentView();
1324
+ i0.ɵɵelementStart(0, "div", 21);
1325
+ i0.ɵɵlistener("click", function ActionsCellComponent_ng_template_4_div_1_Template_div_click_0_listener($event) { const item_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(item_r7, $event)); });
1326
+ i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_4_div_1_ng_container_1_Template, 8, 3, "ng-container", 22)(2, ActionsCellComponent_ng_template_4_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
1315
1327
  i0.ɵɵelementEnd();
1316
1328
  } if (rf & 2) {
1329
+ const item_r7 = ctx.$implicit;
1330
+ const noChildren_r10 = i0.ɵɵreference(3);
1317
1331
  const ctx_r2 = i0.ɵɵnextContext(2);
1318
- i0.ɵɵproperty("ngClass", ctx_r2.menuAlign);
1332
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(item_r7)));
1319
1333
  i0.ɵɵadvance();
1320
- i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
1334
+ i0.ɵɵproperty("ngIf", item_r7.children == null ? null : item_r7.children.length)("ngIfElse", noChildren_r10);
1321
1335
  } }
1322
- function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
1323
- const _r4 = i0.ɵɵgetCurrentView();
1324
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
1325
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDropdown($event)); });
1326
- i0.ɵɵnamespaceSVG();
1327
- i0.ɵɵelementStart(2, "svg", 11);
1328
- i0.ɵɵelement(3, "circle", 12)(4, "circle", 13)(5, "circle", 14);
1329
- i0.ɵɵelementEnd()();
1330
- i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 2, "div", 15);
1336
+ function ActionsCellComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
1337
+ i0.ɵɵelementStart(0, "div", 19);
1338
+ i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_4_div_1_Template, 4, 5, "div", 20);
1331
1339
  i0.ɵɵelementEnd();
1332
1340
  } if (rf & 2) {
1333
1341
  const ctx_r2 = i0.ɵɵnextContext();
1334
- i0.ɵɵadvance(6);
1335
- i0.ɵɵproperty("ngIf", ctx_r2.isDropdownOpen);
1336
- } }
1337
- function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
1338
- const _r10 = i0.ɵɵgetCurrentView();
1339
- i0.ɵɵelementStart(0, "div", 29)(1, "mis-checkbox", 30);
1340
- i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCheckboxChange($event)); });
1341
- i0.ɵɵelementEnd()();
1342
- } if (rf & 2) {
1343
- const ctx_r2 = i0.ɵɵnextContext();
1342
+ i0.ɵɵproperty("ngClass", ctx_r2.menuAlign);
1344
1343
  i0.ɵɵadvance();
1345
- i0.ɵɵproperty("checked", ctx_r2.isChecked)("disabled", ctx_r2.disable ? ctx_r2.disable(ctx_r2.data) : false);
1344
+ i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
1346
1345
  } }
1347
1346
  class ActionsCellComponent {
1348
- constructor() {
1349
- this.isChecked = false;
1350
- this.actionClick = new EventEmitter();
1351
- this.isDropdownOpen = false;
1352
- this.actionItems = [];
1353
- this.actionType = "inline";
1354
- this.submenuAlign = "right";
1355
- this.menuAlign = "left";
1356
- this._style = {};
1357
- this.containerStyle = {};
1358
- }
1359
1347
  set rowData(value) {
1360
1348
  if (this.actionType === 'checkbox') {
1361
1349
  // For checkbox, keep the rowData structure
@@ -1378,7 +1366,24 @@ class ActionsCellComponent {
1378
1366
  this.disable = config.disable;
1379
1367
  this.processStyle();
1380
1368
  }
1369
+ constructor(overlay, viewContainerRef) {
1370
+ this.overlay = overlay;
1371
+ this.viewContainerRef = viewContainerRef;
1372
+ this.isChecked = false;
1373
+ this.actionClick = new EventEmitter();
1374
+ this.isDropdownOpen = false;
1375
+ this.actionItems = [];
1376
+ this.actionType = "inline";
1377
+ this.submenuAlign = "right";
1378
+ this.menuAlign = "left";
1379
+ this._style = {};
1380
+ this.containerStyle = {};
1381
+ this.overlayRef = null;
1382
+ }
1381
1383
  ngOnInit() { }
1384
+ ngOnDestroy() {
1385
+ this.closeDropdown();
1386
+ }
1382
1387
  processStyle() {
1383
1388
  // Remove width from style to avoid conflicts with table column width
1384
1389
  const { width, ...restStyle } = this._style;
@@ -1405,14 +1410,60 @@ class ActionsCellComponent {
1405
1410
  }
1406
1411
  onDocumentClick() {
1407
1412
  if (this.isDropdownOpen) {
1408
- this.isDropdownOpen = false;
1413
+ this.closeDropdown();
1409
1414
  }
1410
1415
  }
1411
1416
  toggleDropdown(event) {
1412
1417
  event.stopPropagation();
1413
- this.isDropdownOpen = !this.isDropdownOpen;
1414
- // Close all submenus when opening/closing main menu
1418
+ if (this.isDropdownOpen) {
1419
+ this.closeDropdown();
1420
+ }
1421
+ else {
1422
+ this.openDropdown();
1423
+ }
1424
+ }
1425
+ openDropdown() {
1426
+ if (!this.dropdownTrigger || !this.dropdownMenu)
1427
+ return;
1428
+ // Close all submenus when opening main menu
1415
1429
  this.actionItems.forEach((item) => (item.showSubmenu = false));
1430
+ const positions = this.getDropdownPositions();
1431
+ const overlayConfig = new OverlayConfig({
1432
+ hasBackdrop: true,
1433
+ backdropClass: 'cdk-overlay-transparent-backdrop',
1434
+ positionStrategy: this.overlay
1435
+ .position()
1436
+ .flexibleConnectedTo(this.dropdownTrigger)
1437
+ .withPositions(positions)
1438
+ .withPush(true),
1439
+ scrollStrategy: this.overlay.scrollStrategies.reposition()
1440
+ });
1441
+ this.overlayRef = this.overlay.create(overlayConfig);
1442
+ const portal = new TemplatePortal(this.dropdownMenu, this.viewContainerRef);
1443
+ this.overlayRef.attach(portal);
1444
+ this.overlayRef.backdropClick().subscribe(() => {
1445
+ this.closeDropdown();
1446
+ });
1447
+ this.isDropdownOpen = true;
1448
+ }
1449
+ closeDropdown() {
1450
+ if (this.overlayRef) {
1451
+ this.overlayRef.dispose();
1452
+ this.overlayRef = null;
1453
+ }
1454
+ this.isDropdownOpen = false;
1455
+ }
1456
+ getDropdownPositions() {
1457
+ const positions = [];
1458
+ if (this.menuAlign === 'left') {
1459
+ // Menu opens to the left of trigger
1460
+ positions.push(new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4), new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4));
1461
+ }
1462
+ else {
1463
+ // Menu opens to the right of trigger
1464
+ positions.push(new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 4), new ConnectionPositionPair({ originX: 'end', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }, 0, -4));
1465
+ }
1466
+ return positions;
1416
1467
  }
1417
1468
  onDropdownItemClick(item, event) {
1418
1469
  event.stopPropagation();
@@ -1432,7 +1483,7 @@ class ActionsCellComponent {
1432
1483
  if (item.action)
1433
1484
  item.action(this.data);
1434
1485
  this.actionClick.emit({ item, data: this.data });
1435
- this.isDropdownOpen = false; // Only close if action was executed
1486
+ this.closeDropdown(); // Only close if action was executed
1436
1487
  }
1437
1488
  }
1438
1489
  onCheckboxChange(event) {
@@ -1448,13 +1499,21 @@ class ActionsCellComponent {
1448
1499
  }
1449
1500
  return false;
1450
1501
  }
1451
- static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(); }; }
1452
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
1502
+ static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(i0.ɵɵdirectiveInject(i1$1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
1503
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], viewQuery: function ActionsCellComponent_Query(rf, ctx) { if (rf & 1) {
1504
+ i0.ɵɵviewQuery(_c0, 5);
1505
+ i0.ɵɵviewQuery(_c1, 5);
1506
+ } if (rf & 2) {
1507
+ let _t;
1508
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownMenu = _t.first);
1509
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownTrigger = _t.first);
1510
+ } }, hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
1453
1511
  i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
1454
- } }, inputs: { rowData: "rowData", isChecked: "isChecked", config: "config" }, outputs: { actionClick: "actionClick" }, decls: 4, vars: 4, consts: [["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], ["class", "dropdown-menu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-menu", 3, "ngClass"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
1455
- i0.ɵɵelementStart(0, "div", 1);
1456
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3)(3, ActionsCellComponent_div_3_Template, 2, 2, "div", 4);
1512
+ } }, inputs: { rowData: "rowData", isChecked: "isChecked", config: "config" }, outputs: { actionClick: "actionClick" }, decls: 6, vars: 4, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "dropdown-menu-overlay", 3, "ngClass"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
1513
+ i0.ɵɵelementStart(0, "div", 3);
1514
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 4)(2, ActionsCellComponent_div_2_Template, 7, 0, "div", 5)(3, ActionsCellComponent_div_3_Template, 2, 2, "div", 6);
1457
1515
  i0.ɵɵelementEnd();
1516
+ i0.ɵɵtemplate(4, ActionsCellComponent_ng_template_4_Template, 2, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1458
1517
  } if (rf & 2) {
1459
1518
  i0.ɵɵproperty("ngStyle", ctx.containerStyle);
1460
1519
  i0.ɵɵadvance();
@@ -1463,12 +1522,12 @@ class ActionsCellComponent {
1463
1522
  i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
1464
1523
  i0.ɵɵadvance();
1465
1524
  i0.ɵɵproperty("ngIf", ctx.actionType === "checkbox");
1466
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2$1.CheckboxComponent], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu.left[_ngcontent-%COMP%]{right:0!important;left:auto!important}.dropdown-menu.right[_ngcontent-%COMP%]{left:0!important;right:auto!important}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.submenu-container[_ngcontent-%COMP%]{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right[_ngcontent-%COMP%]{left:100%;margin-left:4px}.dropdown-submenu.left[_ngcontent-%COMP%]{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute;margin-right:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}"] }); }
1525
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2$1.CheckboxComponent], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-menu-overlay[_ngcontent-%COMP%]{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right[_ngcontent-%COMP%]{left:100%;margin-left:4px}.dropdown-submenu.left[_ngcontent-%COMP%]{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute;margin-right:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}"] }); }
1467
1526
  }
1468
1527
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
1469
1528
  type: Component,
1470
- args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" *ngIf=\"isDropdownOpen\" [ngClass]=\"menuAlign\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" [ngClass]=\"item.submenuAlign\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"isChecked\" (valueChange)=\"onCheckboxChange($event)\" [disabled]=\"disable ? disable(data) : false\"\n > </mis-checkbox>\n </div>\n</div>\n", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer}.dropdown-actions{position:relative}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu{position:absolute;top:100%;width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu.left{right:0!important;left:auto!important}.dropdown-menu.right{left:0!important;right:auto!important}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.submenu-container{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right{left:100%;margin-left:4px}.dropdown-submenu.left{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute;margin-right:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}\n"] }]
1471
- }], null, { rowData: [{
1529
+ args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"isChecked\" (valueChange)=\"onCheckboxChange($event)\" [disabled]=\"disable ? disable(data) : false\"\n > </mis-checkbox>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\" [ngClass]=\"menuAlign\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" [ngClass]=\"item.submenuAlign\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions{position:relative}.dropdown-menu-overlay{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.dropdown-submenu{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right{left:100%;margin-left:4px}.dropdown-submenu.left{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute;margin-right:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
1530
+ }], () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }], { rowData: [{
1472
1531
  type: Input
1473
1532
  }], isChecked: [{
1474
1533
  type: Input
@@ -1476,6 +1535,12 @@ class ActionsCellComponent {
1476
1535
  type: Input
1477
1536
  }], actionClick: [{
1478
1537
  type: Output
1538
+ }], dropdownMenu: [{
1539
+ type: ViewChild,
1540
+ args: ['dropdownMenu', { static: false }]
1541
+ }], dropdownTrigger: [{
1542
+ type: ViewChild,
1543
+ args: ['dropdownTrigger', { static: false }]
1479
1544
  }], onDocumentClick: [{
1480
1545
  type: HostListener,
1481
1546
  args: ["document:click"]
@@ -1488,7 +1553,7 @@ class TableModule {
1488
1553
  }
1489
1554
  static { this.ɵfac = function TableModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableModule)(); }; }
1490
1555
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TableModule }); }
1491
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, CheckboxModule, ScrollingModule] }); }
1556
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, CheckboxModule, ScrollingModule, OverlayModule, PortalModule] }); }
1492
1557
  }
1493
1558
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableModule, [{
1494
1559
  type: NgModule,
@@ -1501,7 +1566,7 @@ class TableModule {
1501
1566
  SortIconsDirective,
1502
1567
  ActionsCellComponent
1503
1568
  ],
1504
- imports: [CommonModule, CheckboxModule, ScrollingModule],
1569
+ imports: [CommonModule, CheckboxModule, ScrollingModule, OverlayModule, PortalModule],
1505
1570
  exports: [
1506
1571
  TableComponent,
1507
1572
  SubTableComponent,
@@ -1517,7 +1582,7 @@ class TableModule {
1517
1582
  TableFilterComponent,
1518
1583
  CustomTableCellDirective,
1519
1584
  SortIconsDirective,
1520
- ActionsCellComponent], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1585
+ ActionsCellComponent], imports: [CommonModule, CheckboxModule, ScrollingModule, OverlayModule, PortalModule], exports: [TableComponent,
1521
1586
  SubTableComponent,
1522
1587
  TableFilterComponent,
1523
1588
  CustomTableCellDirective,