@tipolox/litgrid-angular 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Tipolox
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,257 @@
1
+ import '@tipolox/litgrid-web';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, ViewChild, Output, Input, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
4
+
5
+ function syncGridInputs(grid, inputs) {
6
+ grid.data = inputs.data;
7
+ grid.columns = inputs.columns;
8
+ grid.config = inputs.config;
9
+ grid.theme = inputs.theme;
10
+ grid.ariaLabel = inputs.ariaLabel;
11
+ grid.ariaDescription = inputs.ariaDescription;
12
+ grid.screenReaderAnnouncements = inputs.screenReaderAnnouncements;
13
+ grid.viewportHeight = inputs.height;
14
+ grid.virtualRowHeight = inputs.rowHeight;
15
+ grid.overscanCount = inputs.overscan;
16
+ grid.columnOverscanCount = inputs.columnOverscan;
17
+ grid.bestFitSampleSize = inputs.bestFitSampleSize;
18
+ grid.quickSearchDebounceThreshold = inputs.quickSearchDebounceThreshold;
19
+ grid.quickSearchDebounceMs = inputs.quickSearchDebounceMs;
20
+ grid.columnStateStorageKey = inputs.columnStateStorageKey ?? null;
21
+ }
22
+
23
+ class DataGridComponent {
24
+ constructor() {
25
+ this.data = [];
26
+ this.columns = [];
27
+ this.config = {};
28
+ this.theme = 'light';
29
+ this.ariaLabel = 'Data grid';
30
+ this.ariaDescription = '';
31
+ this.screenReaderAnnouncements = true;
32
+ this.height = 320;
33
+ this.rowHeight = 36;
34
+ this.overscan = 4;
35
+ this.columnOverscan = 2;
36
+ this.bestFitSampleSize = 10;
37
+ this.quickSearchDebounceThreshold = 10_000;
38
+ this.quickSearchDebounceMs = 150;
39
+ this.columnStateChange = new EventEmitter();
40
+ this.columnReorder = new EventEmitter();
41
+ this.columnVisibilityChange = new EventEmitter();
42
+ }
43
+ get gridElement() {
44
+ return this.gridRef?.nativeElement ?? null;
45
+ }
46
+ ngAfterViewInit() {
47
+ this.syncInputs();
48
+ }
49
+ ngOnChanges(_changes) {
50
+ this.syncInputs();
51
+ }
52
+ handleColumnStateChange(event) {
53
+ this.columnStateChange.emit(event.detail);
54
+ }
55
+ handleColumnReorder(event) {
56
+ this.columnReorder.emit(event.detail);
57
+ }
58
+ handleColumnVisibilityChange(event) {
59
+ this.columnVisibilityChange.emit(event.detail);
60
+ }
61
+ getRowHeight(rowIndex) {
62
+ return this.requireGridElement().getRowHeight(rowIndex);
63
+ }
64
+ getColumnWidth(column) {
65
+ return this.requireGridElement().getColumnWidth(column);
66
+ }
67
+ setRowHeight(rowIndex, height) {
68
+ this.requireGridElement().setRowHeight(rowIndex, height);
69
+ }
70
+ resetRowHeight(rowIndex) {
71
+ this.requireGridElement().resetRowHeight(rowIndex);
72
+ }
73
+ resetAllRowHeights() {
74
+ this.requireGridElement().resetAllRowHeights();
75
+ }
76
+ setColumnWidth(columnKey, width) {
77
+ this.requireGridElement().setColumnWidth(columnKey, width);
78
+ }
79
+ resetColumnWidth(columnKey) {
80
+ this.requireGridElement().resetColumnWidth(columnKey);
81
+ }
82
+ resetAllColumnWidths() {
83
+ this.requireGridElement().resetAllColumnWidths();
84
+ }
85
+ moveColumn(columnKey, targetIndex) {
86
+ this.requireGridElement().moveColumn(columnKey, targetIndex);
87
+ }
88
+ getColumnOrder() {
89
+ return this.requireGridElement().getColumnOrder();
90
+ }
91
+ setColumnOrder(columnKeys) {
92
+ this.requireGridElement().setColumnOrder(columnKeys);
93
+ }
94
+ resetColumnOrder() {
95
+ this.requireGridElement().resetColumnOrder();
96
+ }
97
+ setColumnVisible(columnKey, visible) {
98
+ this.requireGridElement().setColumnVisible(columnKey, visible);
99
+ }
100
+ isColumnVisible(columnKey) {
101
+ return this.requireGridElement().isColumnVisible(columnKey);
102
+ }
103
+ getVisibleColumnKeys() {
104
+ return this.requireGridElement().getVisibleColumnKeys();
105
+ }
106
+ resetColumnVisibility() {
107
+ this.requireGridElement().resetColumnVisibility();
108
+ }
109
+ getColumnState() {
110
+ return this.requireGridElement().getColumnState();
111
+ }
112
+ setColumnState(state) {
113
+ this.requireGridElement().setColumnState(state);
114
+ }
115
+ resetColumnState() {
116
+ this.requireGridElement().resetColumnState();
117
+ }
118
+ bestFitColumn(columnKey) {
119
+ return this.requireGridElement().bestFitColumn(columnKey);
120
+ }
121
+ bestFitAllColumns() {
122
+ return this.requireGridElement().bestFitAllColumns();
123
+ }
124
+ copySelectedCells() {
125
+ return this.requireGridElement().copySelectedCells();
126
+ }
127
+ copySelectedRows() {
128
+ return this.requireGridElement().copySelectedRows();
129
+ }
130
+ setQuickSearch(query) {
131
+ this.requireGridElement().setQuickSearch(query);
132
+ }
133
+ clearQuickSearch() {
134
+ this.requireGridElement().clearQuickSearch();
135
+ }
136
+ getQuickSearch() {
137
+ return this.requireGridElement().getQuickSearch();
138
+ }
139
+ setFilter(filter) {
140
+ this.requireGridElement().setFilter(filter);
141
+ }
142
+ clearFilter(columnKey) {
143
+ this.requireGridElement().clearFilter(columnKey);
144
+ }
145
+ getFilters() {
146
+ return this.requireGridElement().getFilters();
147
+ }
148
+ setPage(pageIndex) {
149
+ this.requireGridElement().setPage(pageIndex);
150
+ }
151
+ setPageSize(pageSize) {
152
+ this.requireGridElement().setPageSize(pageSize);
153
+ }
154
+ getPagination() {
155
+ return this.requireGridElement().getPagination();
156
+ }
157
+ getTotalRowCount() {
158
+ return this.requireGridElement().getTotalRowCount();
159
+ }
160
+ selectRow(rowIndex, intent) {
161
+ this.requireGridElement().selectRow(rowIndex, intent);
162
+ }
163
+ selectAllRows() {
164
+ this.requireGridElement().selectAllRows();
165
+ }
166
+ clearSelection() {
167
+ this.requireGridElement().clearSelection();
168
+ }
169
+ getSelection() {
170
+ return this.requireGridElement().getSelection();
171
+ }
172
+ isRowSelected(rowIndex) {
173
+ return this.requireGridElement().isRowSelected(rowIndex);
174
+ }
175
+ isCellSelected(rowIndex, columnKey) {
176
+ return this.requireGridElement().isCellSelected(rowIndex, columnKey);
177
+ }
178
+ syncInputs() {
179
+ const grid = this.gridElement;
180
+ if (!grid)
181
+ return;
182
+ syncGridInputs(grid, this);
183
+ }
184
+ requireGridElement() {
185
+ const grid = this.gridElement;
186
+ if (!grid) {
187
+ throw new Error('LitGrid is not available before the Angular view is initialized.');
188
+ }
189
+ return grid;
190
+ }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DataGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.3", type: DataGridComponent, isStandalone: true, selector: "litgrid-data-grid", inputs: { data: "data", columns: "columns", config: "config", theme: "theme", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", screenReaderAnnouncements: "screenReaderAnnouncements", height: "height", rowHeight: "rowHeight", overscan: "overscan", columnOverscan: "columnOverscan", bestFitSampleSize: "bestFitSampleSize", quickSearchDebounceThreshold: "quickSearchDebounceThreshold", quickSearchDebounceMs: "quickSearchDebounceMs", columnStateStorageKey: "columnStateStorageKey" }, outputs: { columnStateChange: "columnStateChange", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
193
+ <yc-grid
194
+ #grid
195
+ (column-state-change)="handleColumnStateChange($event)"
196
+ (column-reorder)="handleColumnReorder($event)"
197
+ (column-visibility-change)="handleColumnVisibilityChange($event)"
198
+ ></yc-grid>
199
+ `, isInline: true, styles: [":host{display:block}\n"] }); }
200
+ }
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DataGridComponent, decorators: [{
202
+ type: Component,
203
+ args: [{ selector: 'litgrid-data-grid', standalone: true, template: `
204
+ <yc-grid
205
+ #grid
206
+ (column-state-change)="handleColumnStateChange($event)"
207
+ (column-reorder)="handleColumnReorder($event)"
208
+ (column-visibility-change)="handleColumnVisibilityChange($event)"
209
+ ></yc-grid>
210
+ `, schemas: [CUSTOM_ELEMENTS_SCHEMA], styles: [":host{display:block}\n"] }]
211
+ }], propDecorators: { data: [{
212
+ type: Input
213
+ }], columns: [{
214
+ type: Input
215
+ }], config: [{
216
+ type: Input
217
+ }], theme: [{
218
+ type: Input
219
+ }], ariaLabel: [{
220
+ type: Input
221
+ }], ariaDescription: [{
222
+ type: Input
223
+ }], screenReaderAnnouncements: [{
224
+ type: Input
225
+ }], height: [{
226
+ type: Input
227
+ }], rowHeight: [{
228
+ type: Input
229
+ }], overscan: [{
230
+ type: Input
231
+ }], columnOverscan: [{
232
+ type: Input
233
+ }], bestFitSampleSize: [{
234
+ type: Input
235
+ }], quickSearchDebounceThreshold: [{
236
+ type: Input
237
+ }], quickSearchDebounceMs: [{
238
+ type: Input
239
+ }], columnStateStorageKey: [{
240
+ type: Input
241
+ }], columnStateChange: [{
242
+ type: Output
243
+ }], columnReorder: [{
244
+ type: Output
245
+ }], columnVisibilityChange: [{
246
+ type: Output
247
+ }], gridRef: [{
248
+ type: ViewChild,
249
+ args: ['grid', { static: true }]
250
+ }] } });
251
+
252
+ /**
253
+ * Generated bundle index. Do not edit.
254
+ */
255
+
256
+ export { DataGridComponent };
257
+ //# sourceMappingURL=tipolox-litgrid-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipolox-litgrid-angular.mjs","sources":["../../../packages/grid-angular/src/gridBindings.ts","../../../packages/grid-angular/src/DataGridComponent.ts","../../../packages/grid-angular/src/tipolox-litgrid-angular.ts"],"sourcesContent":["import type {\n DataGridElement,\n GridColumn,\n GridConfig,\n GridTheme\n} from '@tipolox/litgrid-web'\n\nexport type AngularGridInputs = {\n data: unknown[]\n columns: GridColumn[]\n config: GridConfig\n theme: GridTheme\n ariaLabel: string\n ariaDescription: string\n screenReaderAnnouncements: boolean\n height: number\n rowHeight: number\n overscan: number\n columnOverscan: number\n bestFitSampleSize: number\n quickSearchDebounceThreshold: number\n quickSearchDebounceMs: number\n columnStateStorageKey?: string\n}\n\nexport function syncGridInputs(\n grid: DataGridElement,\n inputs: AngularGridInputs\n): void {\n grid.data = inputs.data\n grid.columns = inputs.columns\n grid.config = inputs.config\n grid.theme = inputs.theme\n grid.ariaLabel = inputs.ariaLabel\n grid.ariaDescription = inputs.ariaDescription\n grid.screenReaderAnnouncements = inputs.screenReaderAnnouncements\n grid.viewportHeight = inputs.height\n grid.virtualRowHeight = inputs.rowHeight\n grid.overscanCount = inputs.overscan\n grid.columnOverscanCount = inputs.columnOverscan\n grid.bestFitSampleSize = inputs.bestFitSampleSize\n grid.quickSearchDebounceThreshold = inputs.quickSearchDebounceThreshold\n grid.quickSearchDebounceMs = inputs.quickSearchDebounceMs\n grid.columnStateStorageKey = inputs.columnStateStorageKey ?? null\n}\n","import '@tipolox/litgrid-web'\nimport {\n AfterViewInit,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core'\nimport type {\n BestFitColumnWidth,\n ColumnReorderDetail,\n ColumnStateChangeDetail,\n ColumnVisibilityChangeDetail,\n DataGridElement,\n GridColumn,\n GridColumnState,\n GridConfig,\n GridFilter,\n GridPaginationState,\n GridSelection,\n GridTheme,\n SelectionIntent\n} from '@tipolox/litgrid-web'\nimport { syncGridInputs } from './gridBindings'\n\n@Component({\n selector: 'litgrid-data-grid',\n standalone: true,\n template: `\n <yc-grid\n #grid\n (column-state-change)=\"handleColumnStateChange($event)\"\n (column-reorder)=\"handleColumnReorder($event)\"\n (column-visibility-change)=\"handleColumnVisibilityChange($event)\"\n ></yc-grid>\n `,\n styles: `\n :host {\n display: block;\n }\n `,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class DataGridComponent implements AfterViewInit, OnChanges {\n @Input() data: unknown[] = []\n @Input() columns: GridColumn[] = []\n @Input() config: GridConfig = {}\n @Input() theme: GridTheme = 'light'\n @Input() ariaLabel = 'Data grid'\n @Input() ariaDescription = ''\n @Input() screenReaderAnnouncements = true\n @Input() height = 320\n @Input() rowHeight = 36\n @Input() overscan = 4\n @Input() columnOverscan = 2\n @Input() bestFitSampleSize = 10\n @Input() quickSearchDebounceThreshold = 10_000\n @Input() quickSearchDebounceMs = 150\n @Input() columnStateStorageKey?: string\n\n @Output() readonly columnStateChange = new EventEmitter<ColumnStateChangeDetail>()\n @Output() readonly columnReorder = new EventEmitter<ColumnReorderDetail>()\n @Output() readonly columnVisibilityChange = new EventEmitter<ColumnVisibilityChangeDetail>()\n\n @ViewChild('grid', { static: true }) private gridRef?: ElementRef<DataGridElement>\n\n get gridElement(): DataGridElement | null {\n return this.gridRef?.nativeElement ?? null\n }\n\n ngAfterViewInit(): void {\n this.syncInputs()\n }\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.syncInputs()\n }\n\n handleColumnStateChange(event: Event): void {\n this.columnStateChange.emit((event as CustomEvent<ColumnStateChangeDetail>).detail)\n }\n\n handleColumnReorder(event: Event): void {\n this.columnReorder.emit((event as CustomEvent<ColumnReorderDetail>).detail)\n }\n\n handleColumnVisibilityChange(event: Event): void {\n this.columnVisibilityChange.emit(\n (event as CustomEvent<ColumnVisibilityChangeDetail>).detail\n )\n }\n\n getRowHeight(rowIndex: number): number {\n return this.requireGridElement().getRowHeight(rowIndex)\n }\n\n getColumnWidth(column: GridColumn): number {\n return this.requireGridElement().getColumnWidth(column)\n }\n\n setRowHeight(rowIndex: number, height: number): void {\n this.requireGridElement().setRowHeight(rowIndex, height)\n }\n\n resetRowHeight(rowIndex: number): void {\n this.requireGridElement().resetRowHeight(rowIndex)\n }\n\n resetAllRowHeights(): void {\n this.requireGridElement().resetAllRowHeights()\n }\n\n setColumnWidth(columnKey: string, width: number): void {\n this.requireGridElement().setColumnWidth(columnKey, width)\n }\n\n resetColumnWidth(columnKey: string): void {\n this.requireGridElement().resetColumnWidth(columnKey)\n }\n\n resetAllColumnWidths(): void {\n this.requireGridElement().resetAllColumnWidths()\n }\n\n moveColumn(columnKey: string, targetIndex: number): void {\n this.requireGridElement().moveColumn(columnKey, targetIndex)\n }\n\n getColumnOrder(): string[] {\n return this.requireGridElement().getColumnOrder()\n }\n\n setColumnOrder(columnKeys: string[]): void {\n this.requireGridElement().setColumnOrder(columnKeys)\n }\n\n resetColumnOrder(): void {\n this.requireGridElement().resetColumnOrder()\n }\n\n setColumnVisible(columnKey: string, visible: boolean): void {\n this.requireGridElement().setColumnVisible(columnKey, visible)\n }\n\n isColumnVisible(columnKey: string): boolean {\n return this.requireGridElement().isColumnVisible(columnKey)\n }\n\n getVisibleColumnKeys(): string[] {\n return this.requireGridElement().getVisibleColumnKeys()\n }\n\n resetColumnVisibility(): void {\n this.requireGridElement().resetColumnVisibility()\n }\n\n getColumnState(): GridColumnState {\n return this.requireGridElement().getColumnState()\n }\n\n setColumnState(state: GridColumnState): void {\n this.requireGridElement().setColumnState(state)\n }\n\n resetColumnState(): void {\n this.requireGridElement().resetColumnState()\n }\n\n bestFitColumn(columnKey: string): number | null {\n return this.requireGridElement().bestFitColumn(columnKey)\n }\n\n bestFitAllColumns(): BestFitColumnWidth[] {\n return this.requireGridElement().bestFitAllColumns()\n }\n\n copySelectedCells(): Promise<boolean> {\n return this.requireGridElement().copySelectedCells()\n }\n\n copySelectedRows(): Promise<boolean> {\n return this.requireGridElement().copySelectedRows()\n }\n\n setQuickSearch(query: string): void {\n this.requireGridElement().setQuickSearch(query)\n }\n\n clearQuickSearch(): void {\n this.requireGridElement().clearQuickSearch()\n }\n\n getQuickSearch(): string {\n return this.requireGridElement().getQuickSearch()\n }\n\n setFilter(filter: GridFilter): void {\n this.requireGridElement().setFilter(filter)\n }\n\n clearFilter(columnKey?: string): void {\n this.requireGridElement().clearFilter(columnKey)\n }\n\n getFilters(): GridFilter[] {\n return this.requireGridElement().getFilters()\n }\n\n setPage(pageIndex: number): void {\n this.requireGridElement().setPage(pageIndex)\n }\n\n setPageSize(pageSize: number): void {\n this.requireGridElement().setPageSize(pageSize)\n }\n\n getPagination(): GridPaginationState {\n return this.requireGridElement().getPagination()\n }\n\n getTotalRowCount(): number {\n return this.requireGridElement().getTotalRowCount()\n }\n\n selectRow(rowIndex: number, intent?: SelectionIntent): void {\n this.requireGridElement().selectRow(rowIndex, intent)\n }\n\n selectAllRows(): void {\n this.requireGridElement().selectAllRows()\n }\n\n clearSelection(): void {\n this.requireGridElement().clearSelection()\n }\n\n getSelection(): GridSelection {\n return this.requireGridElement().getSelection()\n }\n\n isRowSelected(rowIndex: number): boolean {\n return this.requireGridElement().isRowSelected(rowIndex)\n }\n\n isCellSelected(rowIndex: number, columnKey: string): boolean {\n return this.requireGridElement().isCellSelected(rowIndex, columnKey)\n }\n\n private syncInputs(): void {\n const grid = this.gridElement\n if (!grid) return\n\n syncGridInputs(grid, this)\n }\n\n private requireGridElement(): DataGridElement {\n const grid = this.gridElement\n if (!grid) {\n throw new Error('LitGrid is not available before the Angular view is initialized.')\n }\n return grid\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@tipolox/litgrid-angular",
3
+ "version": "1.0.0",
4
+ "description": "Angular wrapper for LitGrid",
5
+ "sideEffects": true,
6
+ "peerDependencies": {
7
+ "@angular/common": ">=17.0.0",
8
+ "@angular/core": ">=17.0.0"
9
+ },
10
+ "dependencies": {
11
+ "@tipolox/litgrid-web": "^1.0.0",
12
+ "tslib": "^2.8.1"
13
+ },
14
+ "keywords": [
15
+ "angular",
16
+ "data-grid",
17
+ "web-components"
18
+ ],
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/tipolox/litgrid.git",
23
+ "directory": "packages/grid-angular"
24
+ },
25
+ "homepage": "https://github.com/tipolox/litgrid#readme",
26
+ "bugs": {
27
+ "url": "https://github.com/tipolox/litgrid/issues"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "module": "fesm2022/tipolox-litgrid-angular.mjs",
33
+ "typings": "types/tipolox-litgrid-angular.d.ts",
34
+ "exports": {
35
+ "./package.json": {
36
+ "default": "./package.json"
37
+ },
38
+ ".": {
39
+ "types": "./types/tipolox-litgrid-angular.d.ts",
40
+ "default": "./fesm2022/tipolox-litgrid-angular.mjs"
41
+ }
42
+ },
43
+ "type": "module"
44
+ }
@@ -0,0 +1,78 @@
1
+ import { GridColumn, GridConfig, GridTheme, ColumnStateChangeDetail, ColumnReorderDetail, ColumnVisibilityChangeDetail, DataGridElement, GridColumnState, BestFitColumnWidth, GridFilter, GridPaginationState, SelectionIntent, GridSelection } from '@tipolox/litgrid-web';
2
+ export { BestFitColumnWidth, ColumnReorderDetail, ColumnStateChangeDetail, ColumnVisibilityChangeDetail, DataGridElement, GridColumn, GridColumnState, GridConfig, GridFilter, GridPaginationState, GridSelection, GridTheme, SelectionIntent } from '@tipolox/litgrid-web';
3
+ import * as i0 from '@angular/core';
4
+ import { AfterViewInit, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
5
+
6
+ declare class DataGridComponent implements AfterViewInit, OnChanges {
7
+ data: unknown[];
8
+ columns: GridColumn[];
9
+ config: GridConfig;
10
+ theme: GridTheme;
11
+ ariaLabel: string;
12
+ ariaDescription: string;
13
+ screenReaderAnnouncements: boolean;
14
+ height: number;
15
+ rowHeight: number;
16
+ overscan: number;
17
+ columnOverscan: number;
18
+ bestFitSampleSize: number;
19
+ quickSearchDebounceThreshold: number;
20
+ quickSearchDebounceMs: number;
21
+ columnStateStorageKey?: string;
22
+ readonly columnStateChange: EventEmitter<ColumnStateChangeDetail>;
23
+ readonly columnReorder: EventEmitter<ColumnReorderDetail>;
24
+ readonly columnVisibilityChange: EventEmitter<ColumnVisibilityChangeDetail>;
25
+ private gridRef?;
26
+ get gridElement(): DataGridElement | null;
27
+ ngAfterViewInit(): void;
28
+ ngOnChanges(_changes: SimpleChanges): void;
29
+ handleColumnStateChange(event: Event): void;
30
+ handleColumnReorder(event: Event): void;
31
+ handleColumnVisibilityChange(event: Event): void;
32
+ getRowHeight(rowIndex: number): number;
33
+ getColumnWidth(column: GridColumn): number;
34
+ setRowHeight(rowIndex: number, height: number): void;
35
+ resetRowHeight(rowIndex: number): void;
36
+ resetAllRowHeights(): void;
37
+ setColumnWidth(columnKey: string, width: number): void;
38
+ resetColumnWidth(columnKey: string): void;
39
+ resetAllColumnWidths(): void;
40
+ moveColumn(columnKey: string, targetIndex: number): void;
41
+ getColumnOrder(): string[];
42
+ setColumnOrder(columnKeys: string[]): void;
43
+ resetColumnOrder(): void;
44
+ setColumnVisible(columnKey: string, visible: boolean): void;
45
+ isColumnVisible(columnKey: string): boolean;
46
+ getVisibleColumnKeys(): string[];
47
+ resetColumnVisibility(): void;
48
+ getColumnState(): GridColumnState;
49
+ setColumnState(state: GridColumnState): void;
50
+ resetColumnState(): void;
51
+ bestFitColumn(columnKey: string): number | null;
52
+ bestFitAllColumns(): BestFitColumnWidth[];
53
+ copySelectedCells(): Promise<boolean>;
54
+ copySelectedRows(): Promise<boolean>;
55
+ setQuickSearch(query: string): void;
56
+ clearQuickSearch(): void;
57
+ getQuickSearch(): string;
58
+ setFilter(filter: GridFilter): void;
59
+ clearFilter(columnKey?: string): void;
60
+ getFilters(): GridFilter[];
61
+ setPage(pageIndex: number): void;
62
+ setPageSize(pageSize: number): void;
63
+ getPagination(): GridPaginationState;
64
+ getTotalRowCount(): number;
65
+ selectRow(rowIndex: number, intent?: SelectionIntent): void;
66
+ selectAllRows(): void;
67
+ clearSelection(): void;
68
+ getSelection(): GridSelection;
69
+ isRowSelected(rowIndex: number): boolean;
70
+ isCellSelected(rowIndex: number, columnKey: string): boolean;
71
+ private syncInputs;
72
+ private requireGridElement;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "litgrid-data-grid", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "config": { "alias": "config"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescription": { "alias": "ariaDescription"; "required": false; }; "screenReaderAnnouncements": { "alias": "screenReaderAnnouncements"; "required": false; }; "height": { "alias": "height"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "overscan": { "alias": "overscan"; "required": false; }; "columnOverscan": { "alias": "columnOverscan"; "required": false; }; "bestFitSampleSize": { "alias": "bestFitSampleSize"; "required": false; }; "quickSearchDebounceThreshold": { "alias": "quickSearchDebounceThreshold"; "required": false; }; "quickSearchDebounceMs": { "alias": "quickSearchDebounceMs"; "required": false; }; "columnStateStorageKey": { "alias": "columnStateStorageKey"; "required": false; }; }, { "columnStateChange": "columnStateChange"; "columnReorder": "columnReorder"; "columnVisibilityChange": "columnVisibilityChange"; }, never, never, true, never>;
75
+ }
76
+
77
+ export { DataGridComponent };
78
+ //# sourceMappingURL=tipolox-litgrid-angular.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipolox-litgrid-angular.d.ts","sources":["../../../packages/grid-angular/src/DataGridComponent.ts"],"mappings":";;;;;AA8BA,cAkBa,iBAAkB,YAAW,aAAa,EAAE,SAAS;;aAE9C,UAAU;YACX,UAAU;WACX,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;gCAG2B,YAAA,CAAA,uBAAA;4BACJ,YAAA,CAAA,mBAAA;qCACS,YAAA,CAAA,4BAAA;;AAIzC,uBAAmB,eAAe;AAIlC;AAIA,0BAAsB,aAAa;AAInC,mCAA+B,KAAK;AAIpC,+BAA2B,KAAK;AAIhC,wCAAoC,KAAK;AAMzC;AAIA,2BAAuB,UAAU;;AAQjC;AAIA;;AAQA;AAIA;;;AAYA;AAIA;;AAQA;;AAQA;AAIA,sBAAkB,eAAe;AAIjC,0BAAsB,eAAe;AAIrC;AAIA;yBAIqB,kBAAkB;AAIvC,yBAAqB,OAAO;AAI5B,wBAAoB,OAAO;AAI3B;AAIA;AAIA;AAIA,sBAAkB,UAAU;AAI5B;kBAIc,UAAU;AAIxB;AAIA;AAIA,qBAAiB,mBAAmB;AAIpC;yCAIqC,eAAe;AAIpD;AAIA;AAIA,oBAAgB,aAAa;AAI7B;;AAQA;AAOA;yCApNW,iBAAiB;2CAAjB,iBAAiB;AA2N7B;;;;","names":[]}