@alaarab/ogrid-angular-material 2.1.10 → 2.1.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.
Files changed (2) hide show
  1. package/dist/esm/index.js +22 -17
  2. package/package.json +2 -2
package/dist/esm/index.js CHANGED
@@ -45,6 +45,8 @@ ColumnHeaderFilterComponent = __decorateClass([
45
45
  [class.ogrid-header-filter__filter-btn--active]="hasActiveFilter() || isFilterOpen()"
46
46
  (click)="toggleFilter($event)"
47
47
  [attr.aria-label]="'Filter ' + columnName"
48
+ [attr.aria-expanded]="isFilterOpen()"
49
+ aria-haspopup="dialog"
48
50
  [title]="'Filter ' + columnName"
49
51
  >
50
52
  <span class="ogrid-header-filter__funnel"></span>
@@ -229,8 +231,9 @@ ColumnHeaderFilterComponent = __decorateClass([
229
231
  opacity: 0.6; transition: opacity 0.15s;
230
232
  }
231
233
  .ogrid-header-filter:hover .ogrid-header-filter__filter-btn { opacity: 0.8; }
232
- .ogrid-header-filter__filter-btn:hover { background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.08)); opacity: 1 !important; }
233
- .ogrid-header-filter__filter-btn--active { opacity: 1 !important; }
234
+ /* :hover and --active must override the parent-hover rule (0,2,0) \u2014 double-class raises to 0,3,0 */
235
+ .ogrid-header-filter .ogrid-header-filter__filter-btn:hover { background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.08)); opacity: 1; }
236
+ .ogrid-header-filter .ogrid-header-filter__filter-btn--active { opacity: 1; }
234
237
  .ogrid-header-filter__funnel {
235
238
  display: block; width: 0; height: 0;
236
239
  border-left: 5px solid transparent; border-right: 5px solid transparent;
@@ -541,7 +544,6 @@ DataGridTableComponent = __decorateClass([
541
544
  #wrapperEl
542
545
  class="ogrid-datagrid-wrapper"
543
546
  [class.ogrid-datagrid-wrapper--fit]="layoutModeFit()"
544
- [class.ogrid-datagrid-wrapper--overflow-x]="allowOverflowX()"
545
547
  [class.ogrid-datagrid-wrapper--loading-empty]="isLoading() && items().length === 0"
546
548
  [style.--ogrid-row-height]="rowHeightCssVar()"
547
549
  tabindex="0"
@@ -552,12 +554,13 @@ DataGridTableComponent = __decorateClass([
552
554
  (keydown)="onGridKeyDown($event)"
553
555
  (scroll)="onWrapperScroll($event)"
554
556
  (contextmenu)="$event.preventDefault()"
557
+ [class.ogrid-datagrid-wrapper--overflow-x]="allowOverflowX()"
555
558
  [attr.data-overflow-x]="allowOverflowX() ? 'true' : 'false'"
556
559
  >
557
560
  <div class="ogrid-datagrid-scroll-wrapper">
558
561
  <div [style.minWidth.px]="allowOverflowX() ? minTableWidth() : undefined">
559
562
  <div [class.ogrid-datagrid-table-wrapper--loading]="isLoading() && items().length > 0" #tableContainerElRef>
560
- <table class="ogrid-datagrid-table" [style.minWidth.px]="minTableWidth()"
563
+ <table class="ogrid-datagrid-table" role="grid" [style.minWidth.px]="minTableWidth()"
561
564
  >
562
565
  <thead [class]="stickyHeader() ? 'ogrid-datagrid-thead ogrid-sticky-header' : 'ogrid-datagrid-thead'">
563
566
  @for (row of headerRows(); track $index; let rowIdx = $index) {
@@ -667,6 +670,7 @@ DataGridTableComponent = __decorateClass([
667
670
  class="ogrid-datagrid-row"
668
671
  [class.ogrid-datagrid-row--selected]="isSelected"
669
672
  [attr.data-row-id]="rowId"
673
+ [attr.aria-selected]="isSelected || null"
670
674
  (click)="onRowClick($event, rowId)"
671
675
  >
672
676
  @if (hasCheckboxCol()) {
@@ -860,14 +864,14 @@ DataGridTableComponent = __decorateClass([
860
864
  color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
861
865
  will-change: scroll-position; outline: none;
862
866
  }
863
- .ogrid-datagrid-wrapper [data-drag-range] { background: var(--ogrid-range-bg, rgba(33, 115, 70, 0.12)) !important; }
867
+ .ogrid-datagrid-wrapper [data-drag-range] { background: var(--ogrid-range-bg, rgba(33, 115, 70, 0.12)); }
864
868
  .ogrid-datagrid-wrapper--fit { width: fit-content; }
865
869
  .ogrid-datagrid-wrapper--overflow-x { overflow-x: auto; }
866
870
  .ogrid-datagrid-wrapper--loading-empty { min-height: 200px; }
867
871
  .ogrid-datagrid-scroll-wrapper { display: flex; flex-direction: column; min-height: 100%; }
868
872
  .ogrid-datagrid-table-wrapper--loading { position: relative; opacity: 0.6; }
869
873
  .ogrid-datagrid-table {
870
- width: 100%; border-collapse: collapse; table-layout: fixed;
874
+ width: 100%; min-width: max-content; border-collapse: collapse; table-layout: fixed;
871
875
  }
872
876
  .ogrid-datagrid-table tbody tr { height: var(--ogrid-row-height, auto); }
873
877
  .ogrid-datagrid-thead {
@@ -930,7 +934,7 @@ DataGridTableComponent = __decorateClass([
930
934
  }
931
935
  .ogrid-datagrid-cell {
932
936
  width: 100%; height: 100%; display: flex; align-items: center; min-width: 0;
933
- padding: 6px 10px; box-sizing: border-box; overflow: hidden;
937
+ padding: var(--ogrid-cell-padding, 6px 10px); box-sizing: border-box; overflow: hidden;
934
938
  text-overflow: ellipsis; white-space: nowrap; user-select: none; outline: none;
935
939
  font-size: 14px; color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
936
940
  }
@@ -1016,19 +1020,20 @@ DataGridTableComponent = __decorateClass([
1016
1020
  position: fixed; inset: 0; z-index: 1000;
1017
1021
  }
1018
1022
 
1019
- /* Angular Material Menu popup dark mode overrides */
1020
- .mat-mdc-menu-panel {
1021
- background: var(--ogrid-bg, #ffffff) !important;
1022
- color: var(--ogrid-fg, rgba(0, 0, 0, 0.87)) !important;
1023
+ /* Angular Material Menu popup dark mode overrides.
1024
+ Double-class selector (0,2,0) beats MUI's single-class (0,1,0) defaults. */
1025
+ .mat-mdc-menu-panel.mat-mdc-menu-panel {
1026
+ background: var(--ogrid-bg, #ffffff);
1027
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1023
1028
  }
1024
- .mat-mdc-menu-item {
1025
- color: var(--ogrid-fg, rgba(0, 0, 0, 0.87)) !important;
1029
+ .mat-mdc-menu-item.mat-mdc-menu-item {
1030
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1026
1031
  }
1027
- .mat-mdc-menu-item:hover:not([disabled]) {
1028
- background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.04)) !important;
1032
+ .mat-mdc-menu-item.mat-mdc-menu-item:hover:not([disabled]) {
1033
+ background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.04));
1029
1034
  }
1030
- .mat-mdc-menu-item .mat-mdc-menu-item-text {
1031
- color: var(--ogrid-fg, rgba(0, 0, 0, 0.87)) !important;
1035
+ .mat-mdc-menu-item.mat-mdc-menu-item .mat-mdc-menu-item-text {
1036
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1032
1037
  }
1033
1038
  `]
1034
1039
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-angular-material",
3
- "version": "2.1.10",
3
+ "version": "2.1.12",
4
4
  "description": "OGrid Angular Material – MatTable-based data grid with sorting, filtering, pagination, column chooser, and CSV export.",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -37,7 +37,7 @@
37
37
  "node": ">=18"
38
38
  },
39
39
  "dependencies": {
40
- "@alaarab/ogrid-angular": "2.1.10"
40
+ "@alaarab/ogrid-angular": "2.1.12"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@angular/cdk": "^21.0.0",