@alaarab/ogrid-angular-material 2.1.9 → 2.1.11

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 +25 -21
  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,12 @@ DataGridTableComponent = __decorateClass([
552
554
  (keydown)="onGridKeyDown($event)"
553
555
  (scroll)="onWrapperScroll($event)"
554
556
  (contextmenu)="$event.preventDefault()"
555
- [attr.data-overflow-x]="allowOverflowX() ? 'true' : 'false'"
557
+ [attr.data-suppress-scroll]="getProps()?.suppressHorizontalScroll ? 'true' : null"
556
558
  >
557
559
  <div class="ogrid-datagrid-scroll-wrapper">
558
- <div [style.minWidth.px]="allowOverflowX() ? minTableWidth() : undefined">
560
+ <div style="width: max-content; min-width: 100%; overflow: clip">
559
561
  <div [class.ogrid-datagrid-table-wrapper--loading]="isLoading() && items().length > 0" #tableContainerElRef>
560
- <table class="ogrid-datagrid-table" [style.minWidth.px]="minTableWidth()"
562
+ <table class="ogrid-datagrid-table" role="grid"
561
563
  >
562
564
  <thead [class]="stickyHeader() ? 'ogrid-datagrid-thead ogrid-sticky-header' : 'ogrid-datagrid-thead'">
563
565
  @for (row of headerRows(); track $index; let rowIdx = $index) {
@@ -667,6 +669,7 @@ DataGridTableComponent = __decorateClass([
667
669
  class="ogrid-datagrid-row"
668
670
  [class.ogrid-datagrid-row--selected]="isSelected"
669
671
  [attr.data-row-id]="rowId"
672
+ [attr.aria-selected]="isSelected || null"
670
673
  (click)="onRowClick($event, rowId)"
671
674
  >
672
675
  @if (hasCheckboxCol()) {
@@ -856,18 +859,18 @@ DataGridTableComponent = __decorateClass([
856
859
  .ogrid-datagrid-root { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
857
860
  .ogrid-datagrid-wrapper {
858
861
  position: relative; flex: 1; min-height: 0; width: 100%; max-width: 100%;
859
- overflow-x: hidden; overflow-y: auto; background: var(--ogrid-bg, #ffffff);
862
+ overflow-x: auto; overflow-y: auto; background: var(--ogrid-bg, #ffffff);
860
863
  color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
861
864
  will-change: scroll-position; outline: none;
862
865
  }
863
- .ogrid-datagrid-wrapper [data-drag-range] { background: var(--ogrid-range-bg, rgba(33, 115, 70, 0.12)) !important; }
866
+ .ogrid-datagrid-wrapper[data-suppress-scroll='true'] { overflow-x: hidden; }
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
- .ogrid-datagrid-wrapper--overflow-x { overflow-x: auto; }
866
869
  .ogrid-datagrid-wrapper--loading-empty { min-height: 200px; }
867
870
  .ogrid-datagrid-scroll-wrapper { display: flex; flex-direction: column; min-height: 100%; }
868
871
  .ogrid-datagrid-table-wrapper--loading { position: relative; opacity: 0.6; }
869
872
  .ogrid-datagrid-table {
870
- width: 100%; border-collapse: collapse; table-layout: fixed;
873
+ width: 100%; min-width: max-content; border-collapse: collapse; table-layout: fixed;
871
874
  }
872
875
  .ogrid-datagrid-table tbody tr { height: var(--ogrid-row-height, auto); }
873
876
  .ogrid-datagrid-thead {
@@ -930,7 +933,7 @@ DataGridTableComponent = __decorateClass([
930
933
  }
931
934
  .ogrid-datagrid-cell {
932
935
  width: 100%; height: 100%; display: flex; align-items: center; min-width: 0;
933
- padding: 6px 10px; box-sizing: border-box; overflow: hidden;
936
+ padding: var(--ogrid-cell-padding, 6px 10px); box-sizing: border-box; overflow: hidden;
934
937
  text-overflow: ellipsis; white-space: nowrap; user-select: none; outline: none;
935
938
  font-size: 14px; color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
936
939
  }
@@ -1016,19 +1019,20 @@ DataGridTableComponent = __decorateClass([
1016
1019
  position: fixed; inset: 0; z-index: 1000;
1017
1020
  }
1018
1021
 
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;
1022
+ /* Angular Material Menu popup dark mode overrides.
1023
+ Double-class selector (0,2,0) beats MUI's single-class (0,1,0) defaults. */
1024
+ .mat-mdc-menu-panel.mat-mdc-menu-panel {
1025
+ background: var(--ogrid-bg, #ffffff);
1026
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1023
1027
  }
1024
- .mat-mdc-menu-item {
1025
- color: var(--ogrid-fg, rgba(0, 0, 0, 0.87)) !important;
1028
+ .mat-mdc-menu-item.mat-mdc-menu-item {
1029
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1026
1030
  }
1027
- .mat-mdc-menu-item:hover:not([disabled]) {
1028
- background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.04)) !important;
1031
+ .mat-mdc-menu-item.mat-mdc-menu-item:hover:not([disabled]) {
1032
+ background: var(--ogrid-hover-bg, rgba(0, 0, 0, 0.04));
1029
1033
  }
1030
- .mat-mdc-menu-item .mat-mdc-menu-item-text {
1031
- color: var(--ogrid-fg, rgba(0, 0, 0, 0.87)) !important;
1034
+ .mat-mdc-menu-item.mat-mdc-menu-item .mat-mdc-menu-item-text {
1035
+ color: var(--ogrid-fg, rgba(0, 0, 0, 0.87));
1032
1036
  }
1033
1037
  `]
1034
1038
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-angular-material",
3
- "version": "2.1.9",
3
+ "version": "2.1.11",
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.9"
40
+ "@alaarab/ogrid-angular": "2.1.11"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@angular/cdk": "^21.0.0",