@alaarab/ogrid-angular-primeng 2.0.8 → 2.0.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.
@@ -4,24 +4,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, input, output, signal, effect, viewChild } from '@angular/core';
7
+ import { Component, signal, effect, ViewChild, Input, Output, EventEmitter } from '@angular/core';
8
8
  import { CommonModule } from '@angular/common';
9
9
  let InlineCellEditorComponent = class InlineCellEditorComponent {
10
10
  constructor() {
11
- this.value = input.required();
12
- this.item = input.required();
13
- this.column = input.required();
14
- this.rowIndex = input.required();
15
- this.editorType = input.required();
16
- this.commit = output();
17
- this.cancel = output();
18
- this.inputEl = viewChild('inputEl');
11
+ this.commit = new EventEmitter();
12
+ this.cancel = new EventEmitter();
19
13
  this.localValue = signal('');
20
14
  this.selectOptions = signal([]);
21
15
  effect(() => {
22
- const v = this.value();
16
+ const v = this.value;
23
17
  this.localValue.set(v != null ? String(v) : '');
24
- const col = this.column();
18
+ const col = this.column;
25
19
  if (col.cellEditorParams?.values) {
26
20
  this.selectOptions.set(col.cellEditorParams.values);
27
21
  }
@@ -29,7 +23,7 @@ let InlineCellEditorComponent = class InlineCellEditorComponent {
29
23
  }
30
24
  ngAfterViewInit() {
31
25
  setTimeout(() => {
32
- const el = this.inputEl()?.nativeElement;
26
+ const el = this.inputEl?.nativeElement;
33
27
  if (el) {
34
28
  el.focus();
35
29
  if (el instanceof HTMLInputElement && el.type === 'text') {
@@ -72,20 +66,44 @@ let InlineCellEditorComponent = class InlineCellEditorComponent {
72
66
  }
73
67
  getInputStyle() {
74
68
  const baseStyle = 'width:100%;box-sizing:border-box;padding:6px 10px;border:2px solid var(--ogrid-selection, #217346);border-radius:2px;outline:none;font:inherit;background:var(--ogrid-bg, #fff);color:var(--ogrid-fg, #242424);';
75
- const col = this.column();
69
+ const col = this.column;
76
70
  if (col.type === 'numeric') {
77
71
  return baseStyle + 'text-align:right;';
78
72
  }
79
73
  return baseStyle;
80
74
  }
81
75
  };
76
+ __decorate([
77
+ Input({ required: true })
78
+ ], InlineCellEditorComponent.prototype, "value", void 0);
79
+ __decorate([
80
+ Input({ required: true })
81
+ ], InlineCellEditorComponent.prototype, "item", void 0);
82
+ __decorate([
83
+ Input({ required: true })
84
+ ], InlineCellEditorComponent.prototype, "column", void 0);
85
+ __decorate([
86
+ Input({ required: true })
87
+ ], InlineCellEditorComponent.prototype, "rowIndex", void 0);
88
+ __decorate([
89
+ Input({ required: true })
90
+ ], InlineCellEditorComponent.prototype, "editorType", void 0);
91
+ __decorate([
92
+ Output()
93
+ ], InlineCellEditorComponent.prototype, "commit", void 0);
94
+ __decorate([
95
+ Output()
96
+ ], InlineCellEditorComponent.prototype, "cancel", void 0);
97
+ __decorate([
98
+ ViewChild('inputEl')
99
+ ], InlineCellEditorComponent.prototype, "inputEl", void 0);
82
100
  InlineCellEditorComponent = __decorate([
83
101
  Component({
84
102
  selector: 'ogrid-primeng-inline-cell-editor',
85
103
  standalone: true,
86
104
  imports: [CommonModule],
87
105
  template: `
88
- @switch (editorType()) {
106
+ @switch (editorType) {
89
107
  @case ('text') {
90
108
  <input
91
109
  #inputEl
@@ -4,45 +4,38 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, input, ChangeDetectionStrategy, signal, effect, viewChild, Injector, createComponent, EnvironmentInjector, inject, } from '@angular/core';
7
+ import { Component, ChangeDetectionStrategy, signal, effect, ViewChild, Injector, createComponent, EnvironmentInjector, inject, Input } from '@angular/core';
8
8
  /**
9
9
  * PopoverCellEditor component for Angular PrimeNG.
10
10
  * Renders custom popover editor when anchor element is set.
11
11
  */
12
12
  let PopoverCellEditorComponent = class PopoverCellEditorComponent {
13
13
  constructor() {
14
- this.item = input.required();
15
- this.column = input.required();
16
- this.rowIndex = input.required();
17
- this.globalColIndex = input.required();
18
- this.displayValue = input.required();
19
- this.editorProps = input.required();
20
- this.onCancel = input.required();
21
- this.anchorRef = viewChild('anchorEl');
22
- this.editorContainerRef = viewChild('editorContainer');
23
14
  this.injector = inject(Injector);
24
15
  this.envInjector = inject(EnvironmentInjector);
25
16
  this.showEditor = signal(false);
26
17
  // Show editor after anchor is rendered
27
18
  effect(() => {
28
- const anchor = this.anchorRef();
19
+ const anchor = this.anchorRef;
29
20
  if (anchor) {
30
21
  setTimeout(() => this.showEditor.set(true), 0);
31
22
  }
32
23
  });
33
24
  // Render custom editor component when container is available
34
25
  effect(() => {
35
- const container = this.editorContainerRef();
36
- const props = this.editorProps();
37
- const col = this.column();
26
+ const container = this.editorContainerRef;
27
+ const props = this.editorProps;
28
+ const col = this.column;
38
29
  if (!container || !this.showEditor() || typeof col.cellEditor !== 'function')
39
30
  return;
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
32
  const EditorComponent = col.cellEditor; // ComponentType
41
33
  const componentRef = createComponent(EditorComponent, {
42
34
  environmentInjector: this.envInjector,
43
35
  elementInjector: this.injector,
44
36
  });
45
37
  // Pass props to component instance
38
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
39
  Object.assign(componentRef.instance, props);
47
40
  componentRef.changeDetectorRef.detectChanges();
48
41
  // Append to DOM
@@ -52,9 +45,36 @@ let PopoverCellEditorComponent = class PopoverCellEditorComponent {
52
45
  });
53
46
  }
54
47
  handleOverlayClick() {
55
- this.onCancel()();
48
+ this.onCancel();
56
49
  }
57
50
  };
51
+ __decorate([
52
+ Input({ required: true })
53
+ ], PopoverCellEditorComponent.prototype, "item", void 0);
54
+ __decorate([
55
+ Input({ required: true })
56
+ ], PopoverCellEditorComponent.prototype, "column", void 0);
57
+ __decorate([
58
+ Input({ required: true })
59
+ ], PopoverCellEditorComponent.prototype, "rowIndex", void 0);
60
+ __decorate([
61
+ Input({ required: true })
62
+ ], PopoverCellEditorComponent.prototype, "globalColIndex", void 0);
63
+ __decorate([
64
+ Input({ required: true })
65
+ ], PopoverCellEditorComponent.prototype, "displayValue", void 0);
66
+ __decorate([
67
+ Input({ required: true })
68
+ ], PopoverCellEditorComponent.prototype, "editorProps", void 0);
69
+ __decorate([
70
+ Input({ required: true })
71
+ ], PopoverCellEditorComponent.prototype, "onCancel", void 0);
72
+ __decorate([
73
+ ViewChild('anchorEl')
74
+ ], PopoverCellEditorComponent.prototype, "anchorRef", void 0);
75
+ __decorate([
76
+ ViewChild('editorContainer')
77
+ ], PopoverCellEditorComponent.prototype, "editorContainerRef", void 0);
58
78
  PopoverCellEditorComponent = __decorate([
59
79
  Component({
60
80
  selector: 'ogrid-primeng-popover-cell-editor',
@@ -63,10 +83,10 @@ PopoverCellEditorComponent = __decorate([
63
83
  template: `
64
84
  <div #anchorEl
65
85
  class="ogrid-popover-anchor"
66
- [attr.data-row-index]="rowIndex()"
67
- [attr.data-col-index]="globalColIndex()"
86
+ [attr.data-row-index]="rowIndex"
87
+ [attr.data-col-index]="globalColIndex"
68
88
  >
69
- {{ displayValue() }}
89
+ {{ displayValue }}
70
90
  </div>
71
91
  @if (showEditor()) {
72
92
  <div class="ogrid-popover-editor-overlay" (click)="handleOverlayClick()">
package/dist/esm/index.js CHANGED
@@ -6,6 +6,8 @@ export { DataGridTableComponent } from './datagrid-table/datagrid-table.componen
6
6
  export { InlineCellEditorComponent } from './datagrid-table/inline-cell-editor.component';
7
7
  export { PopoverCellEditorComponent } from './datagrid-table/popover-cell-editor.component';
8
8
  export { ColumnHeaderFilterComponent } from './column-header-filter/column-header-filter.component';
9
+ // IColumnHeaderFilterProps is now exported from @alaarab/ogrid-angular (base class)
9
10
  export { ColumnChooserComponent } from './column-chooser/column-chooser.component';
11
+ // IColumnChooserProps is now exported from @alaarab/ogrid-angular (base class)
10
12
  export { PaginationControlsComponent } from './pagination-controls/pagination-controls.component';
11
13
  export { ColumnHeaderMenuComponent } from './column-header-menu/column-header-menu.component';
@@ -4,37 +4,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, input, computed, effect, inject, ChangeDetectionStrategy } from '@angular/core';
7
+ import { Component, inject, ChangeDetectionStrategy, Input, signal, effect } from '@angular/core';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import { OGridService, OGridLayoutComponent, } from '@alaarab/ogrid-angular';
10
10
  import { DataGridTableComponent } from '../datagrid-table/datagrid-table.component';
11
11
  import { ColumnChooserComponent } from '../column-chooser/column-chooser.component';
12
12
  import { PaginationControlsComponent } from '../pagination-controls/pagination-controls.component';
13
13
  let OGridComponent = class OGridComponent {
14
+ set props(value) {
15
+ this.propsSignal.set(value);
16
+ }
14
17
  constructor() {
15
18
  this.service = inject(OGridService);
16
- this.props = input.required();
19
+ this.propsSignal = signal(undefined);
17
20
  // Stable callback references (avoid re-creating every template eval)
18
21
  this.onColumnSortFn = (columnKey) => this.service.handleSort(columnKey);
19
22
  this.onColumnResizedFn = (columnId, width) => this.service.handleColumnResized(columnId, width);
20
23
  this.onColumnPinnedFn = (columnId, pinned) => this.service.handleColumnPinned(columnId, pinned);
21
24
  this.onSelectionChangeFn = (event) => this.service.handleSelectionChange(event);
22
25
  this.onFilterChangeFn = (key, value) => this.service.handleFilterChange(key, value);
23
- this.showToolbar = computed(() => this.service.columnChooserPlacement() === 'toolbar' || this.service.toolbar() != null);
24
- this.emptyStateObj = computed(() => ({
26
+ effect(() => {
27
+ const p = this.propsSignal();
28
+ if (p)
29
+ this.service.configure(p);
30
+ });
31
+ }
32
+ get showToolbar() {
33
+ return this.service.columnChooserPlacement() === 'toolbar' || this.service.toolbar() != null;
34
+ }
35
+ get emptyStateObj() {
36
+ return {
25
37
  hasActiveFilters: this.service.hasActiveFilters(),
26
38
  onClearAll: () => this.service.setFilters({}),
27
39
  message: this.service.emptyState()?.message,
28
40
  render: this.service.emptyState()?.render,
29
- }));
30
- effect(() => {
31
- this.service.configure(this.props());
32
- });
41
+ };
33
42
  }
34
43
  onPageSizeChange(size) {
35
44
  this.service.setPageSize(size);
36
45
  }
37
46
  };
47
+ __decorate([
48
+ Input({ required: true })
49
+ ], OGridComponent.prototype, "props", null);
38
50
  OGridComponent = __decorate([
39
51
  Component({
40
52
  selector: 'ogrid-primeng',
@@ -51,7 +63,7 @@ OGridComponent = __decorate([
51
63
  template: `
52
64
  <ogrid-layout
53
65
  [className]="service.className()"
54
- [hasToolbar]="showToolbar()"
66
+ [hasToolbar]="showToolbar"
55
67
  [hasToolbarBelow]="false"
56
68
  [hasPagination]="true"
57
69
  [sideBar]="service.sideBarProps()"
@@ -104,7 +116,7 @@ OGridComponent = __decorate([
104
116
  [suppressHorizontalScroll]="service.suppressHorizontalScroll()"
105
117
  [aria-label]="service.ariaLabel()"
106
118
  [aria-labelledby]="service.ariaLabelledBy()"
107
- [emptyState]="emptyStateObj()"
119
+ [emptyState]="emptyStateObj"
108
120
  ></ogrid-primeng-datagrid-table>
109
121
 
110
122
  <div pagination>
@@ -4,24 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, input, output, computed } from '@angular/core';
7
+ import { Component } from '@angular/core';
8
8
  import { CommonModule } from '@angular/common';
9
- import { getPaginationViewModel } from '@alaarab/ogrid-core';
10
- let PaginationControlsComponent = class PaginationControlsComponent {
11
- constructor() {
12
- this.currentPage = input.required();
13
- this.pageSize = input.required();
14
- this.totalCount = input.required();
15
- this.pageSizeOptions = input(undefined);
16
- this.entityLabelPlural = input('items');
17
- this.pageChange = output();
18
- this.pageSizeChange = output();
19
- this.labelPlural = computed(() => this.entityLabelPlural() ?? 'items');
20
- this.vm = computed(() => getPaginationViewModel(this.currentPage(), this.pageSize(), this.totalCount(), this.pageSizeOptions() ? { pageSizeOptions: this.pageSizeOptions() } : undefined));
21
- }
22
- onPageSizeChange(value) {
23
- this.pageSizeChange.emit(Number(value));
24
- }
9
+ import { BasePaginationControlsComponent } from '@alaarab/ogrid-angular';
10
+ let PaginationControlsComponent = class PaginationControlsComponent extends BasePaginationControlsComponent {
25
11
  };
26
12
  PaginationControlsComponent = __decorate([
27
13
  Component({
@@ -32,14 +18,14 @@ PaginationControlsComponent = __decorate([
32
18
  @if (vm()) {
33
19
  <div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--ogrid-fg, #242424)">
34
20
  <div>
35
- Showing {{ vm()!.startItem }} to {{ vm()!.endItem }} of {{ totalCount().toLocaleString() }} {{ labelPlural() }}
21
+ Showing {{ vm()!.startItem }} to {{ vm()!.endItem }} of {{ totalCount.toLocaleString() }} {{ labelPlural() }}
36
22
  </div>
37
23
 
38
24
  <div style="display:flex;align-items:center;gap:4px" role="navigation" aria-label="Pagination">
39
25
  <button
40
26
  type="button"
41
27
  class="p-button p-button-text p-button-sm"
42
- [disabled]="currentPage() === 1"
28
+ [disabled]="currentPage === 1"
43
29
  (click)="pageChange.emit(1)"
44
30
  aria-label="First page"
45
31
  style="min-width:32px;padding:4px 8px"
@@ -47,8 +33,8 @@ PaginationControlsComponent = __decorate([
47
33
  <button
48
34
  type="button"
49
35
  class="p-button p-button-text p-button-sm"
50
- [disabled]="currentPage() === 1"
51
- (click)="pageChange.emit(currentPage() - 1)"
36
+ [disabled]="currentPage === 1"
37
+ (click)="pageChange.emit(currentPage - 1)"
52
38
  aria-label="Previous page"
53
39
  style="min-width:32px;padding:4px 8px"
54
40
  >&lsaquo;</button>
@@ -68,10 +54,10 @@ PaginationControlsComponent = __decorate([
68
54
  <button
69
55
  type="button"
70
56
  class="p-button p-button-sm"
71
- [class.p-button-outlined]="currentPage() !== pageNum"
57
+ [class.p-button-outlined]="currentPage !== pageNum"
72
58
  (click)="pageChange.emit(pageNum)"
73
59
  [attr.aria-label]="'Page ' + pageNum"
74
- [attr.aria-current]="currentPage() === pageNum ? 'page' : null"
60
+ [attr.aria-current]="currentPage === pageNum ? 'page' : null"
75
61
  style="min-width:32px;padding:4px 8px"
76
62
  >{{ pageNum }}</button>
77
63
  }
@@ -90,15 +76,15 @@ PaginationControlsComponent = __decorate([
90
76
  <button
91
77
  type="button"
92
78
  class="p-button p-button-text p-button-sm"
93
- [disabled]="currentPage() >= vm()!.totalPages"
94
- (click)="pageChange.emit(currentPage() + 1)"
79
+ [disabled]="currentPage >= vm()!.totalPages"
80
+ (click)="pageChange.emit(currentPage + 1)"
95
81
  aria-label="Next page"
96
82
  style="min-width:32px;padding:4px 8px"
97
83
  >&rsaquo;</button>
98
84
  <button
99
85
  type="button"
100
86
  class="p-button p-button-text p-button-sm"
101
- [disabled]="currentPage() >= vm()!.totalPages"
87
+ [disabled]="currentPage >= vm()!.totalPages"
102
88
  (click)="pageChange.emit(vm()!.totalPages)"
103
89
  aria-label="Last page"
104
90
  style="min-width:32px;padding:4px 8px"
@@ -108,7 +94,7 @@ PaginationControlsComponent = __decorate([
108
94
  <div style="display:flex;align-items:center;gap:6px">
109
95
  <span style="font-size:12px">Rows</span>
110
96
  <select
111
- [value]="'' + pageSize()"
97
+ [value]="'' + pageSize"
112
98
  (change)="onPageSizeChange($any($event.target).value)"
113
99
  aria-label="Rows per page"
114
100
  style="padding:4px 6px;border:1px solid var(--ogrid-border, #e0e0e0);border-radius:4px;background:var(--ogrid-bg, #fff);color:var(--ogrid-fg, #242424)"
@@ -1,20 +1,4 @@
1
- import type { IColumnDefinition } from '@alaarab/ogrid-angular';
2
- export interface IColumnChooserProps {
3
- columns: IColumnDefinition[];
4
- visibleColumns: Set<string>;
5
- onVisibilityChange: (columnKey: string, visible: boolean) => void;
6
- }
7
- export declare class ColumnChooserComponent {
8
- readonly columns: import("@angular/core").InputSignal<IColumnDefinition[]>;
9
- readonly visibleColumns: import("@angular/core").InputSignal<Set<string>>;
10
- readonly visibilityChange: import("@angular/core").OutputEmitterRef<{
11
- columnKey: string;
12
- visible: boolean;
13
- }>;
14
- readonly open: import("@angular/core").WritableSignal<boolean>;
15
- protected readonly visibleCount: import("@angular/core").Signal<number>;
16
- protected readonly totalCount: import("@angular/core").Signal<number>;
17
- onToggle(columnKey: string, checked: boolean): void;
18
- onSelectAll(): void;
19
- onClearAll(): void;
1
+ import { BaseColumnChooserComponent } from '@alaarab/ogrid-angular';
2
+ export declare class ColumnChooserComponent extends BaseColumnChooserComponent {
3
+ get open(): import("@angular/core").WritableSignal<boolean>;
20
4
  }
@@ -1,70 +1,13 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import type { ColumnFilterType, IDateFilterValue, UserLike } from '@alaarab/ogrid-angular';
3
- export interface IColumnHeaderFilterProps {
4
- columnKey: string;
5
- columnName: string;
6
- filterType: ColumnFilterType;
7
- isSorted?: boolean;
8
- isSortedDescending?: boolean;
9
- onSort?: () => void;
10
- selectedValues?: string[];
11
- onFilterChange?: (values: string[]) => void;
12
- options?: string[];
13
- isLoadingOptions?: boolean;
14
- textValue?: string;
15
- onTextChange?: (value: string) => void;
16
- selectedUser?: UserLike;
17
- onUserChange?: (user: UserLike | undefined) => void;
18
- peopleSearch?: (query: string) => Promise<UserLike[]>;
19
- dateValue?: IDateFilterValue;
20
- onDateChange?: (value: IDateFilterValue | undefined) => void;
21
- }
22
- export declare class ColumnHeaderFilterComponent {
2
+ import { BaseColumnHeaderFilterComponent } from '@alaarab/ogrid-angular';
3
+ export declare class ColumnHeaderFilterComponent extends BaseColumnHeaderFilterComponent {
23
4
  private destroyRef;
24
- readonly columnKey: import("@angular/core").InputSignal<string>;
25
- readonly columnName: import("@angular/core").InputSignal<string>;
26
- readonly filterType: import("@angular/core").InputSignal<ColumnFilterType>;
27
- readonly isSorted: import("@angular/core").InputSignal<boolean>;
28
- readonly isSortedDescending: import("@angular/core").InputSignal<boolean>;
29
- readonly onSort: import("@angular/core").InputSignal<(() => void) | undefined>;
30
- readonly selectedValues: import("@angular/core").InputSignal<string[] | undefined>;
31
- readonly onFilterChange: import("@angular/core").InputSignal<((values: string[]) => void) | undefined>;
32
- readonly options: import("@angular/core").InputSignal<string[]>;
33
- readonly isLoadingOptions: import("@angular/core").InputSignal<boolean>;
34
- readonly textValue: import("@angular/core").InputSignal<string>;
35
- readonly onTextChange: import("@angular/core").InputSignal<((value: string) => void) | undefined>;
36
- readonly selectedUser: import("@angular/core").InputSignal<UserLike | undefined>;
37
- readonly onUserChange: import("@angular/core").InputSignal<((user: UserLike | undefined) => void) | undefined>;
38
- readonly peopleSearch: import("@angular/core").InputSignal<((query: string) => Promise<UserLike[]>) | undefined>;
39
- readonly dateValue: import("@angular/core").InputSignal<IDateFilterValue | undefined>;
40
- readonly onDateChange: import("@angular/core").InputSignal<((value: IDateFilterValue | undefined) => void) | undefined>;
41
- readonly isFilterOpen: import("@angular/core").WritableSignal<boolean>;
42
- readonly tempTextValue: import("@angular/core").WritableSignal<string>;
43
- readonly searchText: import("@angular/core").WritableSignal<string>;
44
- readonly tempSelected: import("@angular/core").WritableSignal<Set<string>>;
45
- readonly peopleSearchText: import("@angular/core").WritableSignal<string>;
46
- readonly peopleSuggestions: import("@angular/core").WritableSignal<UserLike[]>;
47
- readonly isPeopleLoading: import("@angular/core").WritableSignal<boolean>;
48
- readonly tempDateFrom: import("@angular/core").WritableSignal<string>;
49
- readonly tempDateTo: import("@angular/core").WritableSignal<string>;
50
- readonly filterTrigger: import("@angular/core").Signal<ElementRef<HTMLButtonElement> | undefined>;
51
- readonly filterPanel: import("@angular/core").Signal<ElementRef<HTMLDivElement> | undefined>;
52
- private peopleDebounceTimer;
5
+ filterTrigger?: ElementRef<HTMLButtonElement>;
6
+ filterPanel?: ElementRef<HTMLDivElement>;
7
+ protected getHeaderEl(): ElementRef<HTMLElement> | undefined;
53
8
  private clickOutsideHandler;
54
- readonly hasActiveFilter: import("@angular/core").Signal<boolean>;
55
- readonly filteredOptions: import("@angular/core").Signal<string[]>;
56
9
  constructor();
57
10
  handleSortClick(): void;
58
11
  toggleFilter(): void;
59
- handleTextApply(): void;
60
- handleTextClear(): void;
61
- handleCheckboxChange(opt: string, checked: boolean): void;
62
12
  handleSelectAllOptions(): void;
63
- handleClearSelection(): void;
64
- handleApplyMultiSelect(): void;
65
- onPeopleSearchInput(value: string): void;
66
- handleUserSelect(user: UserLike): void;
67
- handleClearUser(): void;
68
- handleDateApply(): void;
69
- handleDateClear(): void;
70
13
  }
@@ -1,20 +1,19 @@
1
1
  import type { Menu } from 'primeng/menu';
2
2
  import type { MenuItem } from 'primeng/api';
3
+ import { type ColumnHeaderMenuHandlers } from '@alaarab/ogrid-core';
3
4
  /**
4
- * Column header dropdown menu for pin/unpin actions.
5
+ * Column header dropdown menu for pin/unpin, sort, and autosize actions.
5
6
  * Uses PrimeNG Menu component.
6
7
  */
7
8
  export declare class ColumnHeaderMenuComponent {
8
- readonly columnId: import("@angular/core").InputSignal<string>;
9
- readonly canPinLeft: import("@angular/core").InputSignal<boolean>;
10
- readonly canPinRight: import("@angular/core").InputSignal<boolean>;
11
- readonly canUnpin: import("@angular/core").InputSignal<boolean>;
12
- readonly onPinLeft: import("@angular/core").InputSignal<(() => void) | undefined>;
13
- readonly onPinRight: import("@angular/core").InputSignal<(() => void) | undefined>;
14
- readonly onUnpin: import("@angular/core").InputSignal<(() => void) | undefined>;
15
- readonly menuRef: import("@angular/core").Signal<Menu | undefined>;
9
+ columnId: string;
10
+ canPinLeft: boolean;
11
+ canPinRight: boolean;
12
+ canUnpin: boolean;
13
+ currentSort: 'asc' | 'desc' | null;
14
+ isSortable: boolean;
15
+ isResizable: boolean;
16
+ handlers: Partial<ColumnHeaderMenuHandlers>;
17
+ menuRef?: Menu;
16
18
  readonly menuModel: import("@angular/core").Signal<MenuItem[]>;
17
- handlePinLeft(): void;
18
- handlePinRight(): void;
19
- handleUnpin(): void;
20
19
  }