mis-crystal-design-system 18.0.10 → 18.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, Component, ViewChild, EventEmitter, Output, ViewChildren, NgModule } from '@angular/core';
2
+ import { Directive, Input, Component, ViewChild, EventEmitter, Output, input, output, signal, ViewChildren, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@angular/cdk/scrolling';
@@ -407,6 +407,143 @@ class TableFilterComponent {
407
407
  }] }); })();
408
408
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableFilterComponent, { className: "TableFilterComponent" }); })();
409
409
 
410
+ class SortIconsDirective {
411
+ constructor(el, renderer) {
412
+ this.el = el;
413
+ this.renderer = renderer;
414
+ // Convert inputs to signals
415
+ this.column = input();
416
+ this.activeSort = input();
417
+ this.activeSorts = input();
418
+ this.multiColumnSort = input(false);
419
+ // Convert output to signal
420
+ this.sortChange = output();
421
+ this.multiSortChange = output();
422
+ // Internal state as signals
423
+ this.currentDirection = signal('');
424
+ }
425
+ ngOnInit() {
426
+ // Create a container for the icons
427
+ const container = this.renderer.createElement('div');
428
+ this.renderer?.setStyle(container, 'display', 'inline-flex');
429
+ this.renderer?.setStyle(container, 'align-items', 'center');
430
+ const iconContainer = this.renderer.createElement('div');
431
+ this.renderer?.setStyle(iconContainer, 'display', 'inline-flex');
432
+ this.renderer?.setStyle(iconContainer, 'flex-direction', 'column');
433
+ this.renderer?.setStyle(iconContainer, 'align-items', 'center');
434
+ this.upIcon = this.renderer.createElement('img');
435
+ this.renderer?.setAttribute(this.upIcon, 'src', this.column()?.sortAscIcon);
436
+ this.renderer?.setStyle(this.upIcon, 'opacity', '0.5');
437
+ this.renderer?.setStyle(this.upIcon, 'transition', 'opacity 0.3s ease');
438
+ this.renderer?.setStyle(this.upIcon, 'width', '9px');
439
+ this.renderer?.setStyle(this.upIcon, 'cursor', 'pointer');
440
+ this.renderer?.listen(this.upIcon, 'click', () => this.setSortDirection('ASC'));
441
+ this.downIcon = this.renderer.createElement('img');
442
+ this.renderer?.setAttribute(this.downIcon, 'src', this.column()?.sortDescIcon);
443
+ this.renderer?.setStyle(this.downIcon, 'opacity', '0.5');
444
+ this.renderer?.setStyle(this.downIcon, 'transition', 'opacity 0.3s ease');
445
+ this.renderer?.setStyle(this.downIcon, 'width', '9px');
446
+ this.renderer?.setStyle(this.downIcon, 'cursor', 'pointer');
447
+ this.renderer?.listen(this.downIcon, 'click', () => this.setSortDirection('DESC'));
448
+ this.renderer?.appendChild(iconContainer, this.upIcon);
449
+ this.renderer?.appendChild(iconContainer, this.downIcon);
450
+ this.renderer?.appendChild(container, iconContainer);
451
+ if (this.multiColumnSort()) {
452
+ this.sortOrderElement = this.renderer.createElement('span');
453
+ this.renderer?.setStyle(this.sortOrderElement, 'font-size', '12px');
454
+ this.renderer?.setStyle(this.sortOrderElement, 'font-weight', 'bold');
455
+ this.renderer?.setStyle(this.sortOrderElement, 'color', '#000');
456
+ this.renderer?.appendChild(container, this.sortOrderElement);
457
+ }
458
+ this.renderer?.appendChild(this.el.nativeElement, container);
459
+ this.updateIconStyles();
460
+ }
461
+ ngOnChanges(changes) {
462
+ if (changes['activeSort'] || changes['activeSorts']) {
463
+ this.updateIconStyles();
464
+ }
465
+ }
466
+ setSortDirection(direction) {
467
+ if (this.multiColumnSort()) {
468
+ this.handleMultiColumnSort(direction);
469
+ }
470
+ else {
471
+ this.handleSingleColumnSort(direction);
472
+ }
473
+ }
474
+ handleSingleColumnSort(direction) {
475
+ if (this.currentDirection() === direction) {
476
+ this.currentDirection.set(''); // Reset sorting if the same direction is clicked
477
+ }
478
+ else {
479
+ this.currentDirection.set(direction);
480
+ }
481
+ this.sortChange.emit({
482
+ column: this.column()?.data || '',
483
+ direction: this.currentDirection()
484
+ });
485
+ this.updateIconStyles();
486
+ }
487
+ handleMultiColumnSort(direction) {
488
+ const existingSortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);
489
+ if (existingSortIndex !== -1) {
490
+ if (this.activeSorts()[existingSortIndex].direction !== direction) {
491
+ this.activeSorts()[existingSortIndex].direction = direction;
492
+ }
493
+ else {
494
+ return;
495
+ }
496
+ }
497
+ else {
498
+ this.activeSorts().push({
499
+ column: this.column()?.data || '',
500
+ direction
501
+ });
502
+ }
503
+ this.multiSortChange.emit([...this.activeSorts()]);
504
+ this.updateIconStyles();
505
+ }
506
+ updateIconStyles() {
507
+ if (this.multiColumnSort()) {
508
+ this.updateMultiColumnIconStyles();
509
+ }
510
+ else {
511
+ this.updateSingleColumnIconStyles();
512
+ }
513
+ }
514
+ updateSingleColumnIconStyles() {
515
+ const isActiveColumn = this.activeSort()?.column === this.column()?.data;
516
+ setTimeout(() => {
517
+ this.renderer?.setStyle(this.upIcon, 'opacity', isActiveColumn && this.currentDirection() === 'ASC' ? '1' : '0.5');
518
+ this.renderer?.setStyle(this.downIcon, 'opacity', isActiveColumn && this.currentDirection() === 'DESC' ? '1' : '0.5');
519
+ }, 0);
520
+ }
521
+ updateMultiColumnIconStyles() {
522
+ const columnSort = this.activeSorts().find(sort => sort.column === this.column()?.data);
523
+ setTimeout(() => {
524
+ this.renderer?.setStyle(this.upIcon, 'opacity', columnSort?.direction === 'ASC' ? '1' : '0.5');
525
+ this.renderer?.setStyle(this.downIcon, 'opacity', columnSort?.direction === 'DESC' ? '1' : '0.5');
526
+ if (this.sortOrderElement) {
527
+ const sortIndex = this.activeSorts().findIndex(sort => sort.column === this.column()?.data);
528
+ if (sortIndex !== -1) {
529
+ this.renderer?.setProperty(this.sortOrderElement, 'textContent', (sortIndex + 1).toString());
530
+ }
531
+ else {
532
+ this.renderer?.setProperty(this.sortOrderElement, 'textContent', '');
533
+ }
534
+ }
535
+ }, 0);
536
+ }
537
+ static { this.ɵfac = function SortIconsDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortIconsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
538
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SortIconsDirective, selectors: [["", "appSortIcons", ""]], inputs: { column: [1, "column"], activeSort: [1, "activeSort"], activeSorts: [1, "activeSorts"], multiColumnSort: [1, "multiColumnSort"] }, outputs: { sortChange: "sortChange", multiSortChange: "multiSortChange" }, features: [i0.ɵɵNgOnChangesFeature] }); }
539
+ }
540
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SortIconsDirective, [{
541
+ type: Directive,
542
+ args: [{
543
+ selector: '[appSortIcons]',
544
+ }]
545
+ }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
546
+
410
547
  const _c0 = ["filter"];
411
548
  const _c1 = ["table"];
412
549
  const _c2 = ["colHeaderRef"];
@@ -434,7 +571,7 @@ function TableComponent_mis_table_filter_1_Template(rf, ctx) { if (rf & 1) {
434
571
  i0.ɵɵproperty("containerStyles", ctx_r1.filterContainerStyles)("filtersData", ctx_r1.filterData);
435
572
  } }
436
573
  function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
437
- i0.ɵɵelementStart(0, "p", 16);
574
+ i0.ɵɵelementStart(0, "p", 17);
438
575
  i0.ɵɵtext(1);
439
576
  i0.ɵɵelementEnd();
440
577
  } if (rf & 2) {
@@ -443,16 +580,16 @@ function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
443
580
  i0.ɵɵtextInterpolate1(" ", (colHeader_r4 == null ? null : colHeader_r4.data) || " ", " ");
444
581
  } }
445
582
  function TableComponent_div_5_span_3_span_1_Template(rf, ctx) { if (rf & 1) {
446
- i0.ɵɵelement(0, "span", 21);
583
+ i0.ɵɵelement(0, "span", 22);
447
584
  } }
448
585
  function TableComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
449
586
  const _r5 = i0.ɵɵgetCurrentView();
450
- i0.ɵɵelementStart(0, "span", 17);
587
+ i0.ɵɵelementStart(0, "span", 18);
451
588
  i0.ɵɵlistener("click", function TableComponent_div_5_span_3_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const colHeader_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.filterData = colHeader_r4.filters; ctx_r1.toggleFilter(colHeader_r4.data); return i0.ɵɵresetView($event.stopPropagation()); });
452
- i0.ɵɵtemplate(1, TableComponent_div_5_span_3_span_1_Template, 1, 0, "span", 18);
589
+ i0.ɵɵtemplate(1, TableComponent_div_5_span_3_span_1_Template, 1, 0, "span", 19);
453
590
  i0.ɵɵnamespaceSVG();
454
- i0.ɵɵelementStart(2, "svg", 19);
455
- i0.ɵɵelement(3, "path", 20);
591
+ i0.ɵɵelementStart(2, "svg", 20);
592
+ i0.ɵɵelement(3, "path", 21);
456
593
  i0.ɵɵelementEnd()();
457
594
  } if (rf & 2) {
458
595
  const colHeader_r4 = i0.ɵɵnextContext().$implicit;
@@ -460,9 +597,19 @@ function TableComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
460
597
  i0.ɵɵadvance();
461
598
  i0.ɵɵproperty("ngIf", (ctx_r1.appliedFilters[colHeader_r4.data] == null ? null : ctx_r1.appliedFilters[colHeader_r4.data].length) > 0);
462
599
  } }
463
- function TableComponent_div_5_4_ng_template_0_Template(rf, ctx) { }
464
- function TableComponent_div_5_4_Template(rf, ctx) { if (rf & 1) {
465
- i0.ɵɵtemplate(0, TableComponent_div_5_4_ng_template_0_Template, 0, 0, "ng-template", 22);
600
+ function TableComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
601
+ const _r6 = i0.ɵɵgetCurrentView();
602
+ i0.ɵɵelementStart(0, "span", 23);
603
+ i0.ɵɵlistener("sortChange", function TableComponent_div_5_span_4_Template_span_sortChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSortChange($event)); });
604
+ i0.ɵɵelementEnd();
605
+ } if (rf & 2) {
606
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
607
+ const ctx_r1 = i0.ɵɵnextContext();
608
+ i0.ɵɵproperty("column", colHeader_r4)("activeSort", ctx_r1.currentSort)("activeSorts", ctx_r1.multiColumnSort)("multiColumnSort", ctx_r1.config.multiColumnSort);
609
+ } }
610
+ function TableComponent_div_5_5_ng_template_0_Template(rf, ctx) { }
611
+ function TableComponent_div_5_5_Template(rf, ctx) { if (rf & 1) {
612
+ i0.ɵɵtemplate(0, TableComponent_div_5_5_ng_template_0_Template, 0, 0, "ng-template", 24);
466
613
  } if (rf & 2) {
467
614
  const colHeader_r4 = i0.ɵɵnextContext().$implicit;
468
615
  i0.ɵɵproperty("customComponent", colHeader_r4 == null ? null : colHeader_r4.componentRef)("data", colHeader_r4.data);
@@ -471,63 +618,65 @@ function TableComponent_div_5_Template(rf, ctx) { if (rf & 1) {
471
618
  const _r3 = i0.ɵɵgetCurrentView();
472
619
  i0.ɵɵelementStart(0, "div", 12, 2);
473
620
  i0.ɵɵlistener("click", function TableComponent_div_5_Template_div_click_0_listener() { const colHeader_r4 = i0.ɵɵrestoreView(_r3).$implicit; return i0.ɵɵresetView((colHeader_r4 == null ? null : colHeader_r4.action) ? colHeader_r4 == null ? null : colHeader_r4.action(colHeader_r4) : null); });
474
- i0.ɵɵtemplate(2, TableComponent_div_5_p_2_Template, 2, 1, "p", 13)(3, TableComponent_div_5_span_3_Template, 4, 1, "span", 14)(4, TableComponent_div_5_4_Template, 1, 2, null, 15);
621
+ i0.ɵɵtemplate(2, TableComponent_div_5_p_2_Template, 2, 1, "p", 13)(3, TableComponent_div_5_span_3_Template, 4, 1, "span", 14)(4, TableComponent_div_5_span_4_Template, 1, 4, "span", 15)(5, TableComponent_div_5_5_Template, 1, 2, null, 16);
475
622
  i0.ɵɵelementEnd();
476
623
  } if (rf & 2) {
477
624
  const colHeader_r4 = ctx.$implicit;
478
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(4, _c5, (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.width) || "", colHeader_r4.action ? "pointer" : "default", (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent) ? colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent : colHeader_r4.type === "number" ? "flex-end" : "space-between"));
625
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(5, _c5, (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.width) || "", colHeader_r4.action ? "pointer" : "default", (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent) ? colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent : colHeader_r4.type === "number" ? "flex-end" : "space-between"));
479
626
  i0.ɵɵadvance(2);
480
627
  i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom");
481
628
  i0.ɵɵadvance();
482
629
  i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom" && (colHeader_r4 == null ? null : colHeader_r4.filters) && (colHeader_r4 == null ? null : colHeader_r4.filters == null ? null : colHeader_r4.filters.length) > 0);
483
630
  i0.ɵɵadvance();
631
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.isSortable) && !(colHeader_r4 == null ? null : colHeader_r4.filters));
632
+ i0.ɵɵadvance();
484
633
  i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) === "custom");
485
634
  } }
486
635
  function TableComponent_div_7_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
487
- i0.ɵɵelementStart(0, "p", 30);
636
+ i0.ɵɵelementStart(0, "p", 32);
488
637
  i0.ɵɵtext(1);
489
638
  i0.ɵɵelementEnd();
490
639
  } if (rf & 2) {
491
- const ctx_r11 = i0.ɵɵnextContext();
492
- const col_r10 = ctx_r11.$implicit;
493
- const i_r11 = ctx_r11.index;
640
+ const ctx_r12 = i0.ɵɵnextContext();
641
+ const col_r11 = ctx_r12.$implicit;
642
+ const i_r12 = ctx_r12.index;
494
643
  const ctx_r1 = i0.ɵɵnextContext(2);
495
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c11, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.color) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.color : ""))("ngClass", i0.ɵɵpureFunction1(5, _c12, !!(ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.textEllipsis)));
644
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c11, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color : ""))("ngClass", i0.ɵɵpureFunction1(5, _c12, !!(ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.textEllipsis)));
496
645
  i0.ɵɵadvance();
497
- i0.ɵɵtextInterpolate1(" ", col_r10, " ");
646
+ i0.ɵɵtextInterpolate1(" ", col_r11, " ");
498
647
  } }
499
648
  function TableComponent_div_7_div_2_3_ng_template_0_Template(rf, ctx) { }
500
649
  function TableComponent_div_7_div_2_3_Template(rf, ctx) { if (rf & 1) {
501
- i0.ɵɵtemplate(0, TableComponent_div_7_div_2_3_ng_template_0_Template, 0, 0, "ng-template", 22);
650
+ i0.ɵɵtemplate(0, TableComponent_div_7_div_2_3_ng_template_0_Template, 0, 0, "ng-template", 24);
502
651
  } if (rf & 2) {
503
- const ctx_r11 = i0.ɵɵnextContext();
504
- const col_r10 = ctx_r11.$implicit;
505
- const i_r11 = ctx_r11.index;
652
+ const ctx_r12 = i0.ɵɵnextContext();
653
+ const col_r11 = ctx_r12.$implicit;
654
+ const i_r12 = ctx_r12.index;
506
655
  const ctx_r1 = i0.ɵɵnextContext(2);
507
- i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r11].componentRef)("data", col_r10);
656
+ i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r12].componentRef)("data", col_r11);
508
657
  } }
509
658
  function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
510
- const _r8 = i0.ɵɵgetCurrentView();
511
- i0.ɵɵelementStart(0, "div", 27);
512
- i0.ɵɵlistener("click", function TableComponent_div_7_div_2_Template_div_click_0_listener() { const ctx_r8 = i0.ɵɵrestoreView(_r8); const col_r10 = ctx_r8.$implicit; const i_r11 = ctx_r8.index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].action) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].action(col_r10) : null); });
513
- i0.ɵɵelementStart(1, "div", 28);
514
- i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2, 7, "p", 29)(3, TableComponent_div_7_div_2_3_Template, 1, 2, null, 15);
659
+ const _r9 = i0.ɵɵgetCurrentView();
660
+ i0.ɵɵelementStart(0, "div", 29);
661
+ i0.ɵɵlistener("click", function TableComponent_div_7_div_2_Template_div_click_0_listener() { const ctx_r9 = i0.ɵɵrestoreView(_r9); const col_r11 = ctx_r9.$implicit; const i_r12 = ctx_r9.index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action(col_r11) : null); });
662
+ i0.ɵɵelementStart(1, "div", 30);
663
+ i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2, 7, "p", 31)(3, TableComponent_div_7_div_2_3_Template, 1, 2, null, 16);
515
664
  i0.ɵɵelementEnd()();
516
665
  } if (rf & 2) {
517
- const i_r11 = ctx.index;
666
+ const i_r12 = ctx.index;
518
667
  const ctx_r1 = i0.ɵɵnextContext(2);
519
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(7, _c8, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.width) || (ctx_r1.config == null ? null : ctx_r1.config.colHeaderConfig[i_r11] == null ? null : ctx_r1.config.colHeaderConfig[i_r11].style == null ? null : ctx_r1.config.colHeaderConfig[i_r11].style.width) || ""))("ngClass", i0.ɵɵpureFunction1(9, _c9, ctx_r1.config.cellHover));
668
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(7, _c8, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.width) || (ctx_r1.config == null ? null : ctx_r1.config.colHeaderConfig[i_r12] == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style.width) || ""))("ngClass", i0.ɵɵpureFunction1(9, _c9, ctx_r1.config.cellHover));
520
669
  i0.ɵɵadvance();
521
- i0.ɵɵstyleMap(ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style);
522
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(11, _c10, (ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].action) ? "pointer" : "default", (ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.justifyContent) ? ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].style == null ? null : ctx_r1.config.colConfig[i_r11].style.justifyContent : (ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].type) === "number" ? "flex-end" : "space-between"));
670
+ i0.ɵɵstyleMap(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style);
671
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(11, _c10, (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? "pointer" : "default", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent) ? ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent : (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "number" ? "flex-end" : "space-between"));
523
672
  i0.ɵɵadvance();
524
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].type) !== "custom");
673
+ i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) !== "custom");
525
674
  i0.ɵɵadvance();
526
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r11] == null ? null : ctx_r1.config.colConfig[i_r11].type) === "custom");
675
+ i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "custom");
527
676
  } }
528
677
  function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
529
678
  i0.ɵɵelementContainerStart(0);
530
- i0.ɵɵelementStart(1, "div", 32);
679
+ i0.ɵɵelementStart(1, "div", 34);
531
680
  i0.ɵɵtext(2, " Loading... ");
532
681
  i0.ɵɵelementEnd();
533
682
  i0.ɵɵelementContainerEnd();
@@ -537,7 +686,7 @@ function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf &
537
686
  } }
538
687
  function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
539
688
  i0.ɵɵelementContainerStart(0);
540
- i0.ɵɵelementStart(1, "div", 32);
689
+ i0.ɵɵelementStart(1, "div", 34);
541
690
  i0.ɵɵtext(2, " No Data Available... ");
542
691
  i0.ɵɵelementEnd();
543
692
  i0.ɵɵelementContainerEnd();
@@ -547,7 +696,7 @@ function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf &
547
696
  } }
548
697
  function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
549
698
  i0.ɵɵelementContainerStart(0);
550
- i0.ɵɵelement(1, "sub-table", 33);
699
+ i0.ɵɵelement(1, "sub-table", 35);
551
700
  i0.ɵɵelementContainerEnd();
552
701
  } if (rf & 2) {
553
702
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -555,8 +704,8 @@ function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf &
555
704
  i0.ɵɵproperty("config", ctx_r1.subTableconfig)("tableData", ctx_r1.subTableData);
556
705
  } }
557
706
  function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
558
- i0.ɵɵelementStart(0, "div", 31);
559
- i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 15)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 15)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 15);
707
+ i0.ɵɵelementStart(0, "div", 33);
708
+ i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 16)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 16)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 16);
560
709
  i0.ɵɵelementEnd();
561
710
  } if (rf & 2) {
562
711
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -568,40 +717,40 @@ function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
568
717
  i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length > 0);
569
718
  } }
570
719
  function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
571
- const _r6 = i0.ɵɵgetCurrentView();
572
- i0.ɵɵelementStart(0, "div", 23)(1, "div", 24);
573
- i0.ɵɵlistener("click", function TableComponent_div_7_Template_div_click_1_listener() { const i_r7 = i0.ɵɵrestoreView(_r6).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectRow(i_r7)); });
574
- i0.ɵɵtemplate(2, TableComponent_div_7_div_2_Template, 4, 14, "div", 25);
720
+ const _r7 = i0.ɵɵgetCurrentView();
721
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 26);
722
+ i0.ɵɵlistener("click", function TableComponent_div_7_Template_div_click_1_listener() { const i_r8 = i0.ɵɵrestoreView(_r7).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectRow(i_r8)); });
723
+ i0.ɵɵtemplate(2, TableComponent_div_7_div_2_Template, 4, 14, "div", 27);
575
724
  i0.ɵɵelementEnd();
576
- i0.ɵɵtemplate(3, TableComponent_div_7_div_3_Template, 4, 3, "div", 26);
725
+ i0.ɵɵtemplate(3, TableComponent_div_7_div_3_Template, 4, 3, "div", 28);
577
726
  i0.ɵɵelementEnd();
578
727
  } if (rf & 2) {
579
- const row_r13 = ctx.$implicit;
580
- const i_r7 = ctx.index;
728
+ const row_r14 = ctx.$implicit;
729
+ const i_r8 = ctx.index;
581
730
  const ctx_r1 = i0.ɵɵnextContext();
582
731
  i0.ɵɵadvance();
583
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c6, ctx_r1.config.cellHover, i_r7 === ctx_r1.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c7, (ctx_r1.config == null ? null : ctx_r1.config.rowConfig == null ? null : ctx_r1.config.rowConfig.height) ? ctx_r1.config.rowConfig.height : "44px"));
732
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c6, ctx_r1.config.cellHover, i_r8 === ctx_r1.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c7, (ctx_r1.config == null ? null : ctx_r1.config.rowConfig == null ? null : ctx_r1.config.rowConfig.height) ? ctx_r1.config.rowConfig.height : "44px"));
584
733
  i0.ɵɵadvance();
585
- i0.ɵɵproperty("ngForOf", row_r13);
734
+ i0.ɵɵproperty("ngForOf", row_r14);
586
735
  i0.ɵɵadvance();
587
- i0.ɵɵproperty("ngIf", (ctx_r1.config == null ? null : ctx_r1.config.canExpand) && ctx_r1.expandedIndex === i_r7);
736
+ i0.ɵɵproperty("ngIf", (ctx_r1.config == null ? null : ctx_r1.config.canExpand) && ctx_r1.expandedIndex === i_r8);
588
737
  } }
589
738
  function TableComponent_div_8_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
590
- const _r15 = i0.ɵɵgetCurrentView();
591
- i0.ɵɵelementStart(0, "span", 44);
592
- i0.ɵɵlistener("click", function TableComponent_div_8_div_7_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r15); const pageNumber_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updateSelectedPage(pageNumber_r16)); });
739
+ const _r16 = i0.ɵɵgetCurrentView();
740
+ i0.ɵɵelementStart(0, "span", 46);
741
+ i0.ɵɵlistener("click", function TableComponent_div_8_div_7_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r16); const pageNumber_r17 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updateSelectedPage(pageNumber_r17)); });
593
742
  i0.ɵɵtext(1);
594
743
  i0.ɵɵelementEnd();
595
744
  } if (rf & 2) {
596
- const pageNumber_r16 = i0.ɵɵnextContext().$implicit;
745
+ const pageNumber_r17 = i0.ɵɵnextContext().$implicit;
597
746
  const ctx_r1 = i0.ɵɵnextContext(2);
598
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c14, pageNumber_r16 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
747
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c14, pageNumber_r17 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
599
748
  i0.ɵɵadvance();
600
- i0.ɵɵtextInterpolate(pageNumber_r16);
749
+ i0.ɵɵtextInterpolate(pageNumber_r17);
601
750
  } }
602
751
  function TableComponent_div_8_div_7_span_2_Template(rf, ctx) { if (rf & 1) {
603
- i0.ɵɵelementStart(0, "span", 45)(1, "div", 32);
604
- i0.ɵɵelement(2, "span", 46)(3, "span", 46)(4, "span", 47);
752
+ i0.ɵɵelementStart(0, "span", 47)(1, "div", 34);
753
+ i0.ɵɵelement(2, "span", 48)(3, "span", 48)(4, "span", 49);
605
754
  i0.ɵɵelementEnd()();
606
755
  } if (rf & 2) {
607
756
  i0.ɵɵadvance();
@@ -613,33 +762,33 @@ function TableComponent_div_8_div_7_span_2_Template(rf, ctx) { if (rf & 1) {
613
762
  } }
614
763
  function TableComponent_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
615
764
  i0.ɵɵelementStart(0, "div");
616
- i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 42)(2, TableComponent_div_8_div_7_span_2_Template, 5, 6, "span", 43);
765
+ i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 44)(2, TableComponent_div_8_div_7_span_2_Template, 5, 6, "span", 45);
617
766
  i0.ɵɵelementEnd();
618
767
  } if (rf & 2) {
619
- const pageNumber_r16 = ctx.$implicit;
768
+ const pageNumber_r17 = ctx.$implicit;
620
769
  i0.ɵɵadvance();
621
- i0.ɵɵproperty("ngIf", pageNumber_r16 != 0);
770
+ i0.ɵɵproperty("ngIf", pageNumber_r17 != 0);
622
771
  i0.ɵɵadvance();
623
- i0.ɵɵproperty("ngIf", pageNumber_r16 == 0);
772
+ i0.ɵɵproperty("ngIf", pageNumber_r17 == 0);
624
773
  } }
625
774
  function TableComponent_div_8_Template(rf, ctx) { if (rf & 1) {
626
- const _r14 = i0.ɵɵgetCurrentView();
627
- i0.ɵɵelementStart(0, "div", 34)(1, "p", 35);
775
+ const _r15 = i0.ɵɵgetCurrentView();
776
+ i0.ɵɵelementStart(0, "div", 36)(1, "p", 37);
628
777
  i0.ɵɵtext(2);
629
778
  i0.ɵɵelementEnd();
630
- i0.ɵɵelementStart(3, "div", 36)(4, "span", 37);
631
- i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1)); });
779
+ i0.ɵɵelementStart(3, "div", 38)(4, "span", 39);
780
+ i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1)); });
632
781
  i0.ɵɵnamespaceSVG();
633
- i0.ɵɵelementStart(5, "svg", 38);
634
- i0.ɵɵelement(6, "path", 39);
782
+ i0.ɵɵelementStart(5, "svg", 40);
783
+ i0.ɵɵelement(6, "path", 41);
635
784
  i0.ɵɵelementEnd()();
636
- i0.ɵɵtemplate(7, TableComponent_div_8_div_7_Template, 3, 2, "div", 40);
785
+ i0.ɵɵtemplate(7, TableComponent_div_8_div_7_Template, 3, 2, "div", 42);
637
786
  i0.ɵɵnamespaceHTML();
638
- i0.ɵɵelementStart(8, "span", 37);
639
- i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_8_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) + 1)); });
787
+ i0.ɵɵelementStart(8, "span", 39);
788
+ i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_8_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) + 1)); });
640
789
  i0.ɵɵnamespaceSVG();
641
- i0.ɵɵelementStart(9, "svg", 38);
642
- i0.ɵɵelement(10, "path", 41);
790
+ i0.ɵɵelementStart(9, "svg", 40);
791
+ i0.ɵɵelement(10, "path", 43);
643
792
  i0.ɵɵelementEnd()()()();
644
793
  } if (rf & 2) {
645
794
  const ctx_r1 = i0.ɵɵnextContext();
@@ -665,6 +814,10 @@ class TableComponent {
665
814
  this.pageSelected = new EventEmitter();
666
815
  this.tableData = [];
667
816
  this.subTableData = [];
817
+ // Sorting related properties
818
+ this.currentSort = null;
819
+ this.multiColumnSort = [];
820
+ this.sortChange = new EventEmitter();
668
821
  }
669
822
  // Function to handle row click
670
823
  selectRow(index) {
@@ -816,6 +969,24 @@ class TableComponent {
816
969
  'font-size': fontSize
817
970
  };
818
971
  }
972
+ onSortChange(sortState) {
973
+ this.currentSort = sortState;
974
+ if (this.config.multiColumnSort) {
975
+ const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);
976
+ if (index !== -1) {
977
+ if (sortState.direction === null) {
978
+ this.multiColumnSort.splice(index, 1);
979
+ }
980
+ else {
981
+ this.multiColumnSort[index] = sortState;
982
+ }
983
+ }
984
+ else if (sortState.direction !== null) {
985
+ this.multiColumnSort.push(sortState);
986
+ }
987
+ }
988
+ this.sortChange.emit(sortState);
989
+ }
819
990
  static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
820
991
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["mis-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
821
992
  i0.ɵɵviewQuery(_c0, 5);
@@ -826,11 +997,11 @@ class TableComponent {
826
997
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
827
998
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
828
999
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
829
- } }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", "ngClass", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
1000
+ } }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected", sortChange: "sortChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], ["appSortIcons", "", "class", "sort-icon", 3, "column", "activeSort", "activeSorts", "multiColumnSort", "sortChange", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["appSortIcons", "", 1, "sort-icon", 3, "sortChange", "column", "activeSort", "activeSorts", "multiColumnSort"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", "ngClass", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
830
1001
  i0.ɵɵelementStart(0, "div", 3);
831
1002
  i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
832
1003
  i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
833
- i0.ɵɵtemplate(5, TableComponent_div_5_Template, 5, 8, "div", 7);
1004
+ i0.ɵɵtemplate(5, TableComponent_div_5_Template, 6, 9, "div", 7);
834
1005
  i0.ɵɵelementEnd();
835
1006
  i0.ɵɵelementStart(6, "div", 8);
836
1007
  i0.ɵɵtemplate(7, TableComponent_div_7_Template, 4, 9, "div", 9);
@@ -851,11 +1022,11 @@ class TableComponent {
851
1022
  i0.ɵɵproperty("ngForOf", ctx.tableData);
852
1023
  i0.ɵɵadvance();
853
1024
  i0.ɵɵproperty("ngIf", (ctx.config == null ? null : ctx.config.paginationConfig) && (ctx.tableLength >= ctx.config.paginationConfig.rowsPerPage || (ctx.config.paginationConfig == null ? null : ctx.config.paginationConfig.selectedPage) !== 1));
854
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, SubTableComponent, TableFilterComponent, CustomTableCellDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px;overflow-wrap:anywhere}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}"] }); }
1025
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, SubTableComponent, TableFilterComponent, CustomTableCellDirective, SortIconsDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px;overflow-wrap:anywhere}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}.sort-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:16px;height:16px;transition:opacity .2s ease}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:hover{opacity:.8}"] }); }
855
1026
  }
856
1027
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
857
1028
  type: Component,
858
- args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n [ngClass]=\"{'text-ellipsis': !!config?.colConfig[i]?.style?.textEllipsis}\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px;overflow-wrap:anywhere}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}\n"] }]
1029
+ args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <span *ngIf=\"colHeader?.isSortable && !colHeader?.filters\" appSortIcons\n [column]=\"colHeader\"\n [activeSort]=\"currentSort\"\n [activeSorts]=\"multiColumnSort\"\n [multiColumnSort]=\"config.multiColumnSort\"\n (sortChange)=\"onSortChange($event)\"\n class=\"sort-icon\">\n </span>\n <ng-template *ngIf=\"colHeader?.type === 'custom'\" customTableCell [customComponent]=\"colHeader?.componentRef\" [data]=\"colHeader.data\"></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n [ngClass]=\"{'text-ellipsis': !!config?.colConfig[i]?.style?.textEllipsis}\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon{display:flex;justify-content:center;align-items:center}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px;overflow-wrap:anywhere}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}.sort-icon{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon img{width:16px;height:16px;transition:opacity .2s ease}.sort-icon img:hover{opacity:.8}\n"] }]
859
1030
  }], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
860
1031
  type: Output
861
1032
  }], filter: [{
@@ -884,6 +1055,8 @@ class TableComponent {
884
1055
  }], table: [{
885
1056
  type: ViewChild,
886
1057
  args: ["table"]
1058
+ }], sortChange: [{
1059
+ type: Output
887
1060
  }] }); })();
888
1061
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
889
1062
 
@@ -898,16 +1071,36 @@ class TableModule {
898
1071
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableModule, [{
899
1072
  type: NgModule,
900
1073
  args: [{
901
- declarations: [TableComponent, SubTableComponent, TableFilterComponent, CustomTableCellDirective],
1074
+ declarations: [
1075
+ TableComponent,
1076
+ SubTableComponent,
1077
+ TableFilterComponent,
1078
+ CustomTableCellDirective,
1079
+ SortIconsDirective
1080
+ ],
902
1081
  imports: [CommonModule, CheckboxModule, ScrollingModule],
903
- exports: [TableComponent, SubTableComponent, TableFilterComponent, CustomTableCellDirective]
1082
+ exports: [
1083
+ TableComponent,
1084
+ SubTableComponent,
1085
+ TableFilterComponent,
1086
+ CustomTableCellDirective,
1087
+ SortIconsDirective
1088
+ ]
904
1089
  }]
905
1090
  }], null, null); })();
906
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TableModule, { declarations: [TableComponent, SubTableComponent, TableFilterComponent, CustomTableCellDirective], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent, SubTableComponent, TableFilterComponent, CustomTableCellDirective] }); })();
1091
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TableModule, { declarations: [TableComponent,
1092
+ SubTableComponent,
1093
+ TableFilterComponent,
1094
+ CustomTableCellDirective,
1095
+ SortIconsDirective], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1096
+ SubTableComponent,
1097
+ TableFilterComponent,
1098
+ CustomTableCellDirective,
1099
+ SortIconsDirective] }); })();
907
1100
 
908
1101
  /**
909
1102
  * Generated bundle index. Do not edit.
910
1103
  */
911
1104
 
912
- export { CustomTableCellDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
1105
+ export { CustomTableCellDirective, SortIconsDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
913
1106
  //# sourceMappingURL=mis-crystal-design-system-table.mjs.map