@agility-workbench/angular-grid 1.0.0

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.
package/index.d.ts ADDED
@@ -0,0 +1,267 @@
1
+ import * as _agility_workbench_grid from '@agility-workbench/grid';
2
+ import { ColDef, CellRenderer, CellEditor, TooltipComponent, ActionFrameComponent, FilterParams, SetFilterValueComponent, SetFilterSpecialValueComponent, NON_DEFAULTABLE_COLDEF_KEYS, RowPresentationParams, RowPresentation, RowTooltipPresentation, ActionFrameComponentParams, ICellEditorParams, CellRendererParams, SetFilterSpecialValueComponentParams, SetFilterValueComponentParams, TooltipComponentParams, MenuItem, ColumnMenuContext, BodyMenuContext, IGridAPI, GridEventCellClickedParams, GridEventRowClickedParams, CellValueChangedParams, GridEventSelectionChangedParams, SortChangedParams, GridEventFilterChangedParams, GridEventHistoryChangedParams } from '@agility-workbench/grid';
3
+ export * from '@agility-workbench/grid';
4
+ import * as _angular_core from '@angular/core';
5
+ import { Type, TemplateRef, OnDestroy } from '@angular/core';
6
+
7
+ /**
8
+ * Optional contract for an Angular cell-renderer component. A renderer component may either
9
+ * implement `awbInit` (and optionally `awbRefresh`) or simply declare a signal/decorator input named
10
+ * `params` — the adapter detects which style is in use.
11
+ */
12
+ interface ICellRendererNgComp<P extends CellRendererParams = CellRendererParams> {
13
+ /** Called once after the component is created, with the (merged) renderer params. */
14
+ awbInit(params: P): void;
15
+ /** Called when the cell refreshes. Return false to have the grid recreate the component. */
16
+ awbRefresh?(params: P): boolean;
17
+ }
18
+ /** Same contract as {@link ICellRendererNgComp}, for tooltip components. */
19
+ interface ITooltipNgComp<P extends TooltipComponentParams = TooltipComponentParams> {
20
+ awbInit(params: P): void;
21
+ awbRefresh?(params: P): boolean;
22
+ }
23
+ /** Same contract as {@link ICellRendererNgComp}, for ActionFrame components. */
24
+ interface IActionFrameNgComp<P extends ActionFrameComponentParams = ActionFrameComponentParams> {
25
+ awbInit(params: P): void;
26
+ awbRefresh?(params: P): boolean;
27
+ }
28
+ /** Angular component contract for a regular set-filter value label. */
29
+ interface ISetFilterValueNgComp<P extends SetFilterValueComponentParams = SetFilterValueComponentParams> {
30
+ awbInit(params: P): void;
31
+ awbRefresh?(params: P): boolean;
32
+ }
33
+ /** Angular component contract for the dedicated Select All and Blanks labels. */
34
+ interface ISetFilterSpecialValueNgComp<P extends SetFilterSpecialValueComponentParams = SetFilterSpecialValueComponentParams> {
35
+ awbInit(params: P): void;
36
+ awbRefresh?(params: P): boolean;
37
+ }
38
+ /**
39
+ * Contract for an Angular cell-editor component. The grid reads `getValue()` on commit and calls
40
+ * the optional lifecycle methods; mount, synchronous change detection, focus sequencing, and
41
+ * teardown are handled by the adapter. Params arrive via `awbInit` or a `params` input, exactly as
42
+ * for renderers.
43
+ */
44
+ interface ICellEditorNgComp<P extends ICellEditorParams = ICellEditorParams> {
45
+ awbInit?(params: P): void;
46
+ /** The value to commit. */
47
+ getValue(): unknown;
48
+ /** Whether getValue() is already the final typed value (skip the column's valueParser). */
49
+ isParsed?(): boolean;
50
+ /** Focus the editor after mount. */
51
+ focus?(): void;
52
+ /** Return true to abort opening the editor. */
53
+ isCancelBeforeStart?(): boolean;
54
+ }
55
+ /** An Angular component class usable as a cell renderer / tooltip / ActionFrame / editor. */
56
+ type NgComponent = Type<unknown>;
57
+ type NgFilterParams = Omit<FilterParams, "valueComponent" | "selectAllComponent" | "blanksComponent"> & {
58
+ valueComponent?: SetFilterValueComponent | NgComponent;
59
+ selectAllComponent?: SetFilterSpecialValueComponent | NgComponent;
60
+ blanksComponent?: SetFilterSpecialValueComponent | NgComponent;
61
+ };
62
+ type NgRowTooltipPresentation = Omit<RowTooltipPresentation, "component"> & {
63
+ component?: TooltipComponent | NgComponent;
64
+ };
65
+ type NgRowPresentation = Omit<RowPresentation, "tooltip"> & {
66
+ tooltip?: NgRowTooltipPresentation | false | null;
67
+ };
68
+ type NgGetRowPresentation = (params: RowPresentationParams) => NgRowPresentation | null | undefined;
69
+ /**
70
+ * Angular-aware column definition: identical to the core {@link ColDef}, but every component slot
71
+ * (cellRenderer, cellEditor, tooltipComponent, headerTooltip, actionFrameComponent) may also be an
72
+ * Angular component class. Angular components are wrapped in core adapter classes; core renderer
73
+ * classes and string aliases pass through unchanged.
74
+ */
75
+ type NgColDef = Omit<ColDef, "cellRenderer" | "cellEditor" | "children" | "tooltipComponent" | "headerTooltip" | "actionFrameComponent" | "filterParams"> & {
76
+ cellRenderer?: CellRenderer | NgComponent;
77
+ cellEditor?: CellEditor | NgComponent;
78
+ tooltipComponent?: TooltipComponent | NgComponent;
79
+ headerTooltip?: string | TooltipComponent | NgComponent;
80
+ actionFrameComponent?: ActionFrameComponent | NgComponent;
81
+ filterParams?: NgFilterParams;
82
+ children?: NgColDef[];
83
+ };
84
+ /**
85
+ * Angular-aware shape of the grid-level `defaultColDef`: an {@link NgColDef} minus the per-column
86
+ * identity/structure fields that never inherit (see `NON_DEFAULTABLE_COLDEF_KEYS`). Mirrors core
87
+ * `DefaultColDef`, but its component fields may be Angular components.
88
+ */
89
+ type NgDefaultColDef = Omit<NgColDef, (typeof NON_DEFAULTABLE_COLDEF_KEYS)[number]>;
90
+
91
+ /**
92
+ * A menu-item slot in the Angular wrapper: a plain string, a ready-made element, or an
93
+ * `ng-template` reference whose content is stamped out for the lifetime of the open menu.
94
+ */
95
+ type NgMenuSlot = string | HTMLElement | TemplateRef<unknown> | null | false | undefined;
96
+ interface NgMenuItem extends Omit<MenuItem, "left" | "right" | "subMenu"> {
97
+ left?: NgMenuSlot;
98
+ right?: NgMenuSlot;
99
+ subMenu?: NgMenuItem[];
100
+ }
101
+
102
+ /**
103
+ * Angular host for the framework-agnostic grid. The core owns all DOM inside the host element;
104
+ * Angular's job is lifecycle (create on first render, destroy with the component), forwarding
105
+ * input changes to core/renderer setters, bridging core events to Angular outputs, and adapting
106
+ * Angular components (renderers, editors, tooltips, ActionFrames, menu templates) into the core's
107
+ * class-component contracts.
108
+ *
109
+ * The grid is created outside the Angular zone so its internal scroll/pointer listeners never
110
+ * trigger app-wide change detection; outputs re-enter the zone when they emit.
111
+ */
112
+ declare class AwbGrid implements OnDestroy {
113
+ readonly rowData: _angular_core.InputSignal<unknown[] | undefined>;
114
+ readonly columnDefs: _angular_core.InputSignal<NgColDef[] | ColDef[] | null | undefined>;
115
+ readonly defaultColDef: _angular_core.InputSignal<NgDefaultColDef | undefined>;
116
+ readonly headerHeight: _angular_core.InputSignal<number | undefined>;
117
+ readonly leafHeaderHeight: _angular_core.InputSignal<number | undefined>;
118
+ readonly parentHeaderHeight: _angular_core.InputSignal<number | undefined>;
119
+ readonly rowHeight: _angular_core.InputSignal<number | undefined>;
120
+ readonly overscanRowCount: _angular_core.InputSignal<number | undefined>;
121
+ readonly minResizeWidth: _angular_core.InputSignal<number | undefined>;
122
+ readonly maxColumnWidth: _angular_core.InputSignal<number | undefined>;
123
+ readonly autosizeColumnsOnDataChange: _angular_core.InputSignal<boolean | undefined>;
124
+ readonly getRowId: _angular_core.InputSignal<((row: object) => string) | undefined>;
125
+ readonly rowIdKey: _angular_core.InputSignal<string | undefined>;
126
+ readonly rowDataMode: _angular_core.InputSignal<_agility_workbench_grid.RowDataMode | undefined>;
127
+ readonly asyncTransactionWaitMs: _angular_core.InputSignal<number | undefined>;
128
+ readonly rowHover: _angular_core.InputSignal<boolean | undefined>;
129
+ readonly columnHover: _angular_core.InputSignal<boolean | undefined>;
130
+ readonly zebraRows: _angular_core.InputSignal<boolean | undefined>;
131
+ readonly getRowClass: _angular_core.InputSignal<_agility_workbench_grid.GetRowClass | undefined>;
132
+ readonly getRowStyle: _angular_core.InputSignal<_agility_workbench_grid.GetRowStyle | undefined>;
133
+ readonly getRowPresentation: _angular_core.InputSignal<NgGetRowPresentation | undefined>;
134
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
135
+ readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
136
+ readonly highlightActiveCell: _angular_core.InputSignal<boolean | undefined>;
137
+ readonly rowNumbers: _angular_core.InputSignal<boolean | undefined>;
138
+ readonly showColumnButtonsOnHover: _angular_core.InputSignal<boolean | undefined>;
139
+ readonly theme: _angular_core.InputSignal<_agility_workbench_grid.GridTheme | undefined>;
140
+ readonly icons: _angular_core.InputSignal<Partial<Record<_agility_workbench_grid.GridIconName, string>> | undefined>;
141
+ readonly suppressStyleInjection: _angular_core.InputSignal<boolean | undefined>;
142
+ readonly styleNonce: _angular_core.InputSignal<string | undefined>;
143
+ readonly rowSelection: _angular_core.InputSignal<boolean | _agility_workbench_grid.RowSelectionOptions | undefined>;
144
+ readonly isRowSelectable: _angular_core.InputSignal<((node: _agility_workbench_grid.IRowNode) => boolean) | undefined>;
145
+ readonly cellSelection: _angular_core.InputSignal<_agility_workbench_grid.CellSelectionMode | undefined>;
146
+ readonly rangeSelection: _angular_core.InputSignal<boolean | undefined>;
147
+ readonly columnSelection: _angular_core.InputSignal<boolean | undefined>;
148
+ readonly headerKeyboardNavigation: _angular_core.InputSignal<boolean | undefined>;
149
+ readonly selectAllRowsOnHeaderClick: _angular_core.InputSignal<boolean | undefined>;
150
+ readonly selectAllScope: _angular_core.InputSignal<"page" | "filtered" | undefined>;
151
+ readonly selectionPersistence: _angular_core.InputSignal<"clear" | "keep" | undefined>;
152
+ readonly clearSelectionOnBodyClick: _angular_core.InputSignal<boolean | undefined>;
153
+ readonly editTrigger: _angular_core.InputSignal<("none" | "doubleClick" | "singleClick") | undefined>;
154
+ readonly onBeforeCellCommit: _angular_core.InputSignal<((params: _agility_workbench_grid.BeforeCellCommitParams) => unknown) | undefined>;
155
+ readonly readOnlyEdit: _angular_core.InputSignal<boolean | undefined>;
156
+ readonly pinnedRowsEditable: _angular_core.InputSignal<boolean | undefined>;
157
+ readonly suppressKeyboardEdit: _angular_core.InputSignal<boolean | undefined>;
158
+ readonly suppressTypeToEdit: _angular_core.InputSignal<boolean | undefined>;
159
+ readonly moveAfterEdit: _angular_core.InputSignal<boolean | undefined>;
160
+ readonly commitOnBlur: _angular_core.InputSignal<boolean | undefined>;
161
+ readonly reevaluateOnEdit: _angular_core.InputSignal<boolean | undefined>;
162
+ readonly undoLimit: _angular_core.InputSignal<number | undefined>;
163
+ readonly initialSort: _angular_core.InputSignal<_agility_workbench_grid.InitialSortItem[] | undefined>;
164
+ readonly showSortPriority: _angular_core.InputSignal<_agility_workbench_grid.ShowSortPriority | undefined>;
165
+ readonly quickFilter: _angular_core.InputSignal<boolean | _agility_workbench_grid.QuickFilterOptions | undefined>;
166
+ readonly filterDebounceMs: _angular_core.InputSignal<number | undefined>;
167
+ readonly groupDisplayType: _angular_core.InputSignal<_agility_workbench_grid.GroupDisplayType | undefined>;
168
+ readonly groupColumnDef: _angular_core.InputSignal<Partial<ColDef> | undefined>;
169
+ readonly groupDefaultExpanded: _angular_core.InputSignal<number | undefined>;
170
+ readonly groupSortMode: _angular_core.InputSignal<_agility_workbench_grid.GroupSortMode | undefined>;
171
+ readonly groupRowsSelectable: _angular_core.InputSignal<boolean | undefined>;
172
+ readonly groupRowsSticky: _angular_core.InputSignal<boolean | undefined>;
173
+ readonly getGroupChildCount: _angular_core.InputSignal<((row: any) => number | null | undefined) | undefined>;
174
+ readonly treeData: _angular_core.InputSignal<_agility_workbench_grid.TreeDataOptions<any> | undefined>;
175
+ readonly pinnedTopRowData: _angular_core.InputSignal<any[] | undefined>;
176
+ readonly pinnedBottomRowData: _angular_core.InputSignal<any[] | undefined>;
177
+ readonly isRowPinned: _angular_core.InputSignal<((params: _agility_workbench_grid.IsRowPinnedParams) => _agility_workbench_grid.RowPinnedPosition | null | undefined) | undefined>;
178
+ readonly rowPinningMenu: _angular_core.InputSignal<boolean | undefined>;
179
+ readonly rowInsertionMenu: _angular_core.InputSignal<_agility_workbench_grid.RowInsertionMenuOptions | undefined>;
180
+ readonly isFullWidthRow: _angular_core.InputSignal<((node: _agility_workbench_grid.IRowNode) => boolean) | undefined>;
181
+ readonly fullWidthCellRenderer: _angular_core.InputSignal<NgComponent | _agility_workbench_grid.CellRenderer | undefined>;
182
+ readonly pagination: _angular_core.InputSignal<boolean | undefined>;
183
+ readonly paginationControls: _angular_core.InputSignal<_agility_workbench_grid.PaginationControlsOptions | undefined>;
184
+ readonly pageSize: _angular_core.InputSignal<number | undefined>;
185
+ readonly pageSizes: _angular_core.InputSignal<number[] | undefined>;
186
+ readonly resetPageOn: _angular_core.InputSignal<_agility_workbench_grid.ResetPageTrigger[] | undefined>;
187
+ readonly paginationUnknownTotalTooltip: _angular_core.InputSignal<string | undefined>;
188
+ readonly rowModelType: _angular_core.InputSignal<_agility_workbench_grid.RowModelType | undefined>;
189
+ readonly serverSideDataSource: _angular_core.InputSignal<_agility_workbench_grid.IServerSideDataSource | undefined>;
190
+ readonly serverSideAggregationSource: _angular_core.InputSignal<((request: _agility_workbench_grid.IServerSideAggregationParams) => void | _agility_workbench_grid.IServerSideAggregationResult | Promise<void | _agility_workbench_grid.IServerSideAggregationResult>) | undefined>;
191
+ readonly serverSideBlockSize: _angular_core.InputSignal<number | undefined>;
192
+ readonly tooltip: _angular_core.InputSignal<boolean | _agility_workbench_grid.TooltipOptions | undefined>;
193
+ readonly columnPanel: _angular_core.InputSignal<boolean | _agility_workbench_grid.ColumnPanelOptions | undefined>;
194
+ readonly toolbar: _angular_core.InputSignal<_agility_workbench_grid.GridToolbarOptions | undefined>;
195
+ readonly savedViews: _angular_core.InputSignal<_agility_workbench_grid.SavedViewsOptions | undefined>;
196
+ readonly allowExportAsCSV: _angular_core.InputSignal<boolean | undefined>;
197
+ readonly allowExportAsExcel: _angular_core.InputSignal<boolean | undefined>;
198
+ readonly cellFlashDuration: _angular_core.InputSignal<number | undefined>;
199
+ readonly cellFadeDuration: _angular_core.InputSignal<number | undefined>;
200
+ /** If true, shows the loading overlay. */
201
+ readonly loading: _angular_core.InputSignal<boolean | undefined>;
202
+ readonly loadingMessage: _angular_core.InputSignal<string | undefined>;
203
+ readonly noRowsMessage: _angular_core.InputSignal<string | undefined>;
204
+ /** Hook to customize column menu items (slots may be `TemplateRef`s). */
205
+ readonly getColumnMenuItems: _angular_core.InputSignal<((p: {
206
+ ctx: ColumnMenuContext;
207
+ items: NgMenuItem[];
208
+ }) => NgMenuItem[]) | undefined>;
209
+ /**
210
+ * Controls the body (right-click) context menu:
211
+ * - `true` / omitted (default): the grid's default body menu (Copy, Export, …).
212
+ * - `false`: no grid menu — the browser's native context menu appears instead.
213
+ * - a function: called with the menu context and the default items; return the items to show
214
+ * (slots may be `TemplateRef`s). Return `[]` to show nothing while still suppressing the
215
+ * native menu.
216
+ */
217
+ readonly bodyContextMenu: _angular_core.InputSignal<boolean | ((p: {
218
+ ctx: BodyMenuContext;
219
+ items: NgMenuItem[];
220
+ }) => NgMenuItem[]) | undefined>;
221
+ readonly gridReady: _angular_core.OutputEmitterRef<IGridAPI>;
222
+ readonly cellClicked: _angular_core.OutputEmitterRef<GridEventCellClickedParams>;
223
+ readonly rowClicked: _angular_core.OutputEmitterRef<GridEventRowClickedParams>;
224
+ readonly cellValueChanged: _angular_core.OutputEmitterRef<CellValueChangedParams>;
225
+ readonly selectionChanged: _angular_core.OutputEmitterRef<GridEventSelectionChangedParams>;
226
+ readonly sortChanged: _angular_core.OutputEmitterRef<SortChangedParams>;
227
+ readonly filterChanged: _angular_core.OutputEmitterRef<GridEventFilterChangedParams>;
228
+ readonly historyChanged: _angular_core.OutputEmitterRef<GridEventHistoryChangedParams>;
229
+ private readonly host;
230
+ private readonly zone;
231
+ private readonly injector;
232
+ private readonly appRef;
233
+ private readonly adapters;
234
+ private instance;
235
+ /** The imperative grid API; available from `gridReady` onward (null before first render). */
236
+ get api(): IGridAPI | null;
237
+ constructor();
238
+ ngOnDestroy(): void;
239
+ private create;
240
+ /**
241
+ * One effect per reconcilable option group, mirroring the React wrapper's per-prop layout
242
+ * effects. Effects are created after the grid instance exists; each one's first run re-applies
243
+ * the value the instance was just created with, which is harmless for these idempotent setters
244
+ * (the React wrapper's mount-run effects do the same). The four widget configs that would
245
+ * rebuild UI on re-application skip their first run via `keyedEffect`.
246
+ */
247
+ private startSyncEffects;
248
+ /**
249
+ * Effect helper: `read` runs tracked (signal reads register dependencies) and returns the core
250
+ * call to make, or null to skip; the call itself runs outside the Angular zone so core-side
251
+ * listener churn never schedules change detection.
252
+ */
253
+ private syncEffect;
254
+ /**
255
+ * Like syncEffect, but compares serialized contents against the value the grid was created with,
256
+ * so an inline-object input doesn't rebuild the widget unless its contents actually changed —
257
+ * and the creation-time application is never repeated. (The effect's first run is NOT guaranteed
258
+ * to happen at mount: with OnPush it can be deferred to the first input change, so "skip the
259
+ * first run" would swallow a real change — compare values, not run counts.)
260
+ */
261
+ private keyedEffect;
262
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AwbGrid, never>;
263
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AwbGrid, "awb-grid", ["awbGrid"], { "rowData": { "alias": "rowData"; "required": false; "isSignal": true; }; "columnDefs": { "alias": "columnDefs"; "required": false; "isSignal": true; }; "defaultColDef": { "alias": "defaultColDef"; "required": false; "isSignal": true; }; "headerHeight": { "alias": "headerHeight"; "required": false; "isSignal": true; }; "leafHeaderHeight": { "alias": "leafHeaderHeight"; "required": false; "isSignal": true; }; "parentHeaderHeight": { "alias": "parentHeaderHeight"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "overscanRowCount": { "alias": "overscanRowCount"; "required": false; "isSignal": true; }; "minResizeWidth": { "alias": "minResizeWidth"; "required": false; "isSignal": true; }; "maxColumnWidth": { "alias": "maxColumnWidth"; "required": false; "isSignal": true; }; "autosizeColumnsOnDataChange": { "alias": "autosizeColumnsOnDataChange"; "required": false; "isSignal": true; }; "getRowId": { "alias": "getRowId"; "required": false; "isSignal": true; }; "rowIdKey": { "alias": "rowIdKey"; "required": false; "isSignal": true; }; "rowDataMode": { "alias": "rowDataMode"; "required": false; "isSignal": true; }; "asyncTransactionWaitMs": { "alias": "asyncTransactionWaitMs"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "columnHover": { "alias": "columnHover"; "required": false; "isSignal": true; }; "zebraRows": { "alias": "zebraRows"; "required": false; "isSignal": true; }; "getRowClass": { "alias": "getRowClass"; "required": false; "isSignal": true; }; "getRowStyle": { "alias": "getRowStyle"; "required": false; "isSignal": true; }; "getRowPresentation": { "alias": "getRowPresentation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "highlightActiveCell": { "alias": "highlightActiveCell"; "required": false; "isSignal": true; }; "rowNumbers": { "alias": "rowNumbers"; "required": false; "isSignal": true; }; "showColumnButtonsOnHover": { "alias": "showColumnButtonsOnHover"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "icons": { "alias": "icons"; "required": false; "isSignal": true; }; "suppressStyleInjection": { "alias": "suppressStyleInjection"; "required": false; "isSignal": true; }; "styleNonce": { "alias": "styleNonce"; "required": false; "isSignal": true; }; "rowSelection": { "alias": "rowSelection"; "required": false; "isSignal": true; }; "isRowSelectable": { "alias": "isRowSelectable"; "required": false; "isSignal": true; }; "cellSelection": { "alias": "cellSelection"; "required": false; "isSignal": true; }; "rangeSelection": { "alias": "rangeSelection"; "required": false; "isSignal": true; }; "columnSelection": { "alias": "columnSelection"; "required": false; "isSignal": true; }; "headerKeyboardNavigation": { "alias": "headerKeyboardNavigation"; "required": false; "isSignal": true; }; "selectAllRowsOnHeaderClick": { "alias": "selectAllRowsOnHeaderClick"; "required": false; "isSignal": true; }; "selectAllScope": { "alias": "selectAllScope"; "required": false; "isSignal": true; }; "selectionPersistence": { "alias": "selectionPersistence"; "required": false; "isSignal": true; }; "clearSelectionOnBodyClick": { "alias": "clearSelectionOnBodyClick"; "required": false; "isSignal": true; }; "editTrigger": { "alias": "editTrigger"; "required": false; "isSignal": true; }; "onBeforeCellCommit": { "alias": "onBeforeCellCommit"; "required": false; "isSignal": true; }; "readOnlyEdit": { "alias": "readOnlyEdit"; "required": false; "isSignal": true; }; "pinnedRowsEditable": { "alias": "pinnedRowsEditable"; "required": false; "isSignal": true; }; "suppressKeyboardEdit": { "alias": "suppressKeyboardEdit"; "required": false; "isSignal": true; }; "suppressTypeToEdit": { "alias": "suppressTypeToEdit"; "required": false; "isSignal": true; }; "moveAfterEdit": { "alias": "moveAfterEdit"; "required": false; "isSignal": true; }; "commitOnBlur": { "alias": "commitOnBlur"; "required": false; "isSignal": true; }; "reevaluateOnEdit": { "alias": "reevaluateOnEdit"; "required": false; "isSignal": true; }; "undoLimit": { "alias": "undoLimit"; "required": false; "isSignal": true; }; "initialSort": { "alias": "initialSort"; "required": false; "isSignal": true; }; "showSortPriority": { "alias": "showSortPriority"; "required": false; "isSignal": true; }; "quickFilter": { "alias": "quickFilter"; "required": false; "isSignal": true; }; "filterDebounceMs": { "alias": "filterDebounceMs"; "required": false; "isSignal": true; }; "groupDisplayType": { "alias": "groupDisplayType"; "required": false; "isSignal": true; }; "groupColumnDef": { "alias": "groupColumnDef"; "required": false; "isSignal": true; }; "groupDefaultExpanded": { "alias": "groupDefaultExpanded"; "required": false; "isSignal": true; }; "groupSortMode": { "alias": "groupSortMode"; "required": false; "isSignal": true; }; "groupRowsSelectable": { "alias": "groupRowsSelectable"; "required": false; "isSignal": true; }; "groupRowsSticky": { "alias": "groupRowsSticky"; "required": false; "isSignal": true; }; "getGroupChildCount": { "alias": "getGroupChildCount"; "required": false; "isSignal": true; }; "treeData": { "alias": "treeData"; "required": false; "isSignal": true; }; "pinnedTopRowData": { "alias": "pinnedTopRowData"; "required": false; "isSignal": true; }; "pinnedBottomRowData": { "alias": "pinnedBottomRowData"; "required": false; "isSignal": true; }; "isRowPinned": { "alias": "isRowPinned"; "required": false; "isSignal": true; }; "rowPinningMenu": { "alias": "rowPinningMenu"; "required": false; "isSignal": true; }; "rowInsertionMenu": { "alias": "rowInsertionMenu"; "required": false; "isSignal": true; }; "isFullWidthRow": { "alias": "isFullWidthRow"; "required": false; "isSignal": true; }; "fullWidthCellRenderer": { "alias": "fullWidthCellRenderer"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "paginationControls": { "alias": "paginationControls"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizes": { "alias": "pageSizes"; "required": false; "isSignal": true; }; "resetPageOn": { "alias": "resetPageOn"; "required": false; "isSignal": true; }; "paginationUnknownTotalTooltip": { "alias": "paginationUnknownTotalTooltip"; "required": false; "isSignal": true; }; "rowModelType": { "alias": "rowModelType"; "required": false; "isSignal": true; }; "serverSideDataSource": { "alias": "serverSideDataSource"; "required": false; "isSignal": true; }; "serverSideAggregationSource": { "alias": "serverSideAggregationSource"; "required": false; "isSignal": true; }; "serverSideBlockSize": { "alias": "serverSideBlockSize"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "columnPanel": { "alias": "columnPanel"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; "savedViews": { "alias": "savedViews"; "required": false; "isSignal": true; }; "allowExportAsCSV": { "alias": "allowExportAsCSV"; "required": false; "isSignal": true; }; "allowExportAsExcel": { "alias": "allowExportAsExcel"; "required": false; "isSignal": true; }; "cellFlashDuration": { "alias": "cellFlashDuration"; "required": false; "isSignal": true; }; "cellFadeDuration": { "alias": "cellFadeDuration"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMessage": { "alias": "loadingMessage"; "required": false; "isSignal": true; }; "noRowsMessage": { "alias": "noRowsMessage"; "required": false; "isSignal": true; }; "getColumnMenuItems": { "alias": "getColumnMenuItems"; "required": false; "isSignal": true; }; "bodyContextMenu": { "alias": "bodyContextMenu"; "required": false; "isSignal": true; }; }, { "gridReady": "gridReady"; "cellClicked": "cellClicked"; "rowClicked": "rowClicked"; "cellValueChanged": "cellValueChanged"; "selectionChanged": "selectionChanged"; "sortChanged": "sortChanged"; "filterChanged": "filterChanged"; "historyChanged": "historyChanged"; }, never, never, true, never>;
264
+ }
265
+
266
+ export { AwbGrid };
267
+ export type { IActionFrameNgComp, ICellEditorNgComp, ICellRendererNgComp, ISetFilterSpecialValueNgComp, ISetFilterValueNgComp, ITooltipNgComp, NgColDef, NgComponent, NgDefaultColDef, NgFilterParams, NgGetRowPresentation, NgMenuItem, NgMenuSlot, NgRowPresentation, NgRowTooltipPresentation };
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@agility-workbench/angular-grid",
3
+ "version": "1.0.0",
4
+ "description": "Angular bindings for @agility-workbench/grid — a high-performance data grid. Supports Angular 20.3 through 22.",
5
+ "license": "MIT",
6
+ "author": "Himanshu M",
7
+ "homepage": "https://agilityworkbench.dev",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/agility-workbench/agility-workbench.git",
11
+ "directory": "packages/angular-grid"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/agility-workbench/agility-workbench/issues"
15
+ },
16
+ "keywords": [
17
+ "data-grid",
18
+ "datagrid",
19
+ "table",
20
+ "angular",
21
+ "angular-table",
22
+ "virtualized",
23
+ "typescript",
24
+ "data-table",
25
+ "spreadsheet"
26
+ ],
27
+ "publishConfig": {
28
+ "access": "public",
29
+ "provenance": true,
30
+ "directory": "dist"
31
+ },
32
+ "engines": {
33
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
34
+ },
35
+ "dependencies": {
36
+ "@agility-workbench/grid": "^1.0.0",
37
+ "tslib": "^2.3.0"
38
+ },
39
+ "peerDependencies": {
40
+ "@angular/core": "^20.3.0 || ^21.0.0 || ^22.0.0"
41
+ },
42
+ "module": "fesm2022/agility-workbench-angular-grid.mjs",
43
+ "typings": "index.d.ts",
44
+ "exports": {
45
+ "./package.json": {
46
+ "default": "./package.json"
47
+ },
48
+ ".": {
49
+ "types": "./index.d.ts",
50
+ "default": "./fesm2022/agility-workbench-angular-grid.mjs"
51
+ }
52
+ },
53
+ "sideEffects": false
54
+ }