@tipolox/litgrid-angular 1.1.0 → 1.2.1
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.
|
@@ -3,9 +3,14 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { EventEmitter, ViewChild, Output, Input, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
function syncGridInputs(grid, inputs) {
|
|
6
|
-
grid.data = inputs.data;
|
|
7
6
|
grid.columns = inputs.columns;
|
|
8
7
|
grid.config = inputs.config;
|
|
8
|
+
if (inputs.config.queryMode === 'external') {
|
|
9
|
+
if (inputs.externalState)
|
|
10
|
+
grid.externalState = inputs.externalState;
|
|
11
|
+
}
|
|
12
|
+
else
|
|
13
|
+
grid.data = inputs.data;
|
|
9
14
|
grid.theme = inputs.theme;
|
|
10
15
|
grid.ariaLabel = inputs.ariaLabel;
|
|
11
16
|
grid.ariaDescription = inputs.ariaDescription;
|
|
@@ -22,6 +27,7 @@ function syncGridInputs(grid, inputs) {
|
|
|
22
27
|
|
|
23
28
|
class DataGridComponent {
|
|
24
29
|
constructor() {
|
|
30
|
+
this.queryChange = new EventEmitter();
|
|
25
31
|
this.data = [];
|
|
26
32
|
this.columns = [];
|
|
27
33
|
this.config = {};
|
|
@@ -37,9 +43,19 @@ class DataGridComponent {
|
|
|
37
43
|
this.quickSearchDebounceThreshold = 10_000;
|
|
38
44
|
this.quickSearchDebounceMs = 150;
|
|
39
45
|
this.columnStateChange = new EventEmitter();
|
|
46
|
+
this.selectionChange = new EventEmitter();
|
|
40
47
|
this.columnReorder = new EventEmitter();
|
|
41
48
|
this.columnVisibilityChange = new EventEmitter();
|
|
42
49
|
}
|
|
50
|
+
handleQueryChange(event) {
|
|
51
|
+
if (event.target === this.gridElement)
|
|
52
|
+
this.queryChange.emit(event.detail);
|
|
53
|
+
}
|
|
54
|
+
setExternalState(state) { return this.requireGridElement().setExternalState(state); }
|
|
55
|
+
getQuery() { return this.requireGridElement().getQuery(); }
|
|
56
|
+
refreshQuery() { this.requireGridElement().refreshQuery(); }
|
|
57
|
+
sortBy(key, direction) { this.requireGridElement().sortBy(key, direction); }
|
|
58
|
+
clearSort() { this.requireGridElement().clearSort(); }
|
|
43
59
|
get gridElement() {
|
|
44
60
|
return this.gridRef?.nativeElement ?? null;
|
|
45
61
|
}
|
|
@@ -52,6 +68,15 @@ class DataGridComponent {
|
|
|
52
68
|
handleColumnStateChange(event) {
|
|
53
69
|
this.columnStateChange.emit(event.detail);
|
|
54
70
|
}
|
|
71
|
+
handleSelectionChange(event) {
|
|
72
|
+
this.selectionChange.emit(event.detail);
|
|
73
|
+
}
|
|
74
|
+
getSelectionSnapshot() {
|
|
75
|
+
return this.requireGridElement().getSelectionSnapshot();
|
|
76
|
+
}
|
|
77
|
+
selectRowByKey(key, intent) {
|
|
78
|
+
return this.requireGridElement().selectRowByKey(key, intent);
|
|
79
|
+
}
|
|
55
80
|
handleColumnReorder(event) {
|
|
56
81
|
this.columnReorder.emit(event.detail);
|
|
57
82
|
}
|
|
@@ -189,9 +214,11 @@ class DataGridComponent {
|
|
|
189
214
|
return grid;
|
|
190
215
|
}
|
|
191
216
|
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: `
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.3", type: DataGridComponent, isStandalone: true, selector: "litgrid-data-grid", inputs: { externalState: "externalState", 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: { queryChange: "queryChange", columnStateChange: "columnStateChange", selectionChange: "selectionChange", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
193
218
|
<yc-grid
|
|
194
219
|
#grid
|
|
220
|
+
(selection-change)="handleSelectionChange($event)"
|
|
221
|
+
(query-change)="handleQueryChange($event)"
|
|
195
222
|
(column-state-change)="handleColumnStateChange($event)"
|
|
196
223
|
(column-reorder)="handleColumnReorder($event)"
|
|
197
224
|
(column-visibility-change)="handleColumnVisibilityChange($event)"
|
|
@@ -203,12 +230,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
203
230
|
args: [{ selector: 'litgrid-data-grid', standalone: true, template: `
|
|
204
231
|
<yc-grid
|
|
205
232
|
#grid
|
|
233
|
+
(selection-change)="handleSelectionChange($event)"
|
|
234
|
+
(query-change)="handleQueryChange($event)"
|
|
206
235
|
(column-state-change)="handleColumnStateChange($event)"
|
|
207
236
|
(column-reorder)="handleColumnReorder($event)"
|
|
208
237
|
(column-visibility-change)="handleColumnVisibilityChange($event)"
|
|
209
238
|
></yc-grid>
|
|
210
239
|
`, schemas: [CUSTOM_ELEMENTS_SCHEMA], styles: [":host{display:block}\n"] }]
|
|
211
|
-
}], propDecorators: {
|
|
240
|
+
}], propDecorators: { externalState: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], queryChange: [{
|
|
243
|
+
type: Output
|
|
244
|
+
}], data: [{
|
|
212
245
|
type: Input
|
|
213
246
|
}], columns: [{
|
|
214
247
|
type: Input
|
|
@@ -240,6 +273,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
240
273
|
type: Input
|
|
241
274
|
}], columnStateChange: [{
|
|
242
275
|
type: Output
|
|
276
|
+
}], selectionChange: [{
|
|
277
|
+
type: Output
|
|
243
278
|
}], columnReorder: [{
|
|
244
279
|
type: Output
|
|
245
280
|
}], columnVisibilityChange: [{
|
|
@@ -1 +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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"}
|
|
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 GridExternalState,\n GridTheme\n} from '@tipolox/litgrid-web'\n\nexport type AngularGridInputs = {\n externalState?: GridExternalState\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.columns = inputs.columns\n grid.config = inputs.config\n if (inputs.config.queryMode === 'external') {\n if (inputs.externalState) grid.externalState = inputs.externalState\n } else grid.data = inputs.data\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 GridRowKey,\n SelectionChangeDetail,\n GridExternalState,\n GridQueryChangeDetail,\n GridQuerySnapshot,\n SortDirection,\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 (selection-change)=\"handleSelectionChange($event)\"\n (query-change)=\"handleQueryChange($event)\"\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() externalState?: GridExternalState\n @Output() readonly queryChange = new EventEmitter<GridQueryChangeDetail>()\n\n handleQueryChange(event: Event): void {\n if (event.target === this.gridElement) this.queryChange.emit((event as CustomEvent<GridQueryChangeDetail>).detail)\n }\n setExternalState(state: GridExternalState): boolean { return this.requireGridElement().setExternalState!(state) }\n getQuery(): GridQuerySnapshot { return this.requireGridElement().getQuery!() }\n refreshQuery(): void { this.requireGridElement().refreshQuery!() }\n sortBy(key: string, direction: SortDirection): void { this.requireGridElement().sortBy!(key, direction) }\n clearSort(): void { this.requireGridElement().clearSort!() }\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 selectionChange = new EventEmitter<SelectionChangeDetail>()\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 handleSelectionChange(event: Event): void {\n this.selectionChange.emit((event as CustomEvent<SelectionChangeDetail>).detail)\n }\n\n getSelectionSnapshot(): SelectionChangeDetail {\n return this.requireGridElement().getSelectionSnapshot()\n }\n\n selectRowByKey(key: GridRowKey, intent?: SelectionIntent): boolean {\n return this.requireGridElement().selectRowByKey(key, intent)\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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tipolox/litgrid-angular",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Angular wrapper for LitGrid",
|
|
5
5
|
"sideEffects": true,
|
|
6
6
|
"peerDependencies": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"@angular/core": ">=17.0.0"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@tipolox/litgrid-web": "^1.1
|
|
11
|
+
"@tipolox/litgrid-web": "^1.2.1",
|
|
12
12
|
"tslib": "^2.8.1"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as _tipolox_litgrid_core from '@tipolox/litgrid-core';
|
|
2
|
+
import { GridExternalState, GridQuerySnapshot, SortDirection, GridColumn, GridConfig, GridTheme, ColumnStateChangeDetail, ColumnReorderDetail, ColumnVisibilityChangeDetail, DataGridElement, SelectionChangeDetail, GridRowKey, SelectionIntent, GridColumnState, BestFitColumnWidth, GridFilter, GridPaginationState, GridSelection } from '@tipolox/litgrid-web';
|
|
3
|
+
export { BestFitColumnWidth, ColumnReorderDetail, ColumnStateChangeDetail, ColumnVisibilityChangeDetail, DataGridElement, GridColumn, GridColumnState, GridConfig, GridExternalState, GridExternalTotal, GridFilter, GridPaginationState, GridQuery, GridQueryChangeDetail, GridQueryFilter, GridQueryReason, GridQuerySnapshot, GridRowKey, GridSelection, GridTheme, SelectedRowSnapshot, SelectionChangeDetail, SelectionIntent, SortDirection } from '@tipolox/litgrid-web';
|
|
3
4
|
import * as i0 from '@angular/core';
|
|
4
5
|
import { AfterViewInit, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
|
|
5
6
|
|
|
6
7
|
declare class DataGridComponent implements AfterViewInit, OnChanges {
|
|
8
|
+
externalState?: GridExternalState;
|
|
9
|
+
readonly queryChange: EventEmitter<Readonly<{
|
|
10
|
+
requestId: number;
|
|
11
|
+
reason: _tipolox_litgrid_core.GridQueryReason;
|
|
12
|
+
query: _tipolox_litgrid_core.GridQuery;
|
|
13
|
+
}>>;
|
|
14
|
+
handleQueryChange(event: Event): void;
|
|
15
|
+
setExternalState(state: GridExternalState): boolean;
|
|
16
|
+
getQuery(): GridQuerySnapshot;
|
|
17
|
+
refreshQuery(): void;
|
|
18
|
+
sortBy(key: string, direction: SortDirection): void;
|
|
19
|
+
clearSort(): void;
|
|
7
20
|
data: unknown[];
|
|
8
21
|
columns: GridColumn[];
|
|
9
22
|
config: GridConfig;
|
|
@@ -20,6 +33,16 @@ declare class DataGridComponent implements AfterViewInit, OnChanges {
|
|
|
20
33
|
quickSearchDebounceMs: number;
|
|
21
34
|
columnStateStorageKey?: string;
|
|
22
35
|
readonly columnStateChange: EventEmitter<ColumnStateChangeDetail>;
|
|
36
|
+
readonly selectionChange: EventEmitter<Readonly<{
|
|
37
|
+
scopeKey?: string | number;
|
|
38
|
+
mode: _tipolox_litgrid_core.SelectionMode;
|
|
39
|
+
rowIndex: number | null;
|
|
40
|
+
columnKey: string | null;
|
|
41
|
+
anchorRowIndex: number | null;
|
|
42
|
+
rowIndexes: readonly number[];
|
|
43
|
+
cells: readonly string[];
|
|
44
|
+
rows: readonly _tipolox_litgrid_core.SelectedRowSnapshot[];
|
|
45
|
+
}>>;
|
|
23
46
|
readonly columnReorder: EventEmitter<ColumnReorderDetail>;
|
|
24
47
|
readonly columnVisibilityChange: EventEmitter<ColumnVisibilityChangeDetail>;
|
|
25
48
|
private gridRef?;
|
|
@@ -27,6 +50,9 @@ declare class DataGridComponent implements AfterViewInit, OnChanges {
|
|
|
27
50
|
ngAfterViewInit(): void;
|
|
28
51
|
ngOnChanges(_changes: SimpleChanges): void;
|
|
29
52
|
handleColumnStateChange(event: Event): void;
|
|
53
|
+
handleSelectionChange(event: Event): void;
|
|
54
|
+
getSelectionSnapshot(): SelectionChangeDetail;
|
|
55
|
+
selectRowByKey(key: GridRowKey, intent?: SelectionIntent): boolean;
|
|
30
56
|
handleColumnReorder(event: Event): void;
|
|
31
57
|
handleColumnVisibilityChange(event: Event): void;
|
|
32
58
|
getRowHeight(rowIndex: number): number;
|
|
@@ -71,7 +97,7 @@ declare class DataGridComponent implements AfterViewInit, OnChanges {
|
|
|
71
97
|
private syncInputs;
|
|
72
98
|
private requireGridElement;
|
|
73
99
|
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>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "litgrid-data-grid", never, { "externalState": { "alias": "externalState"; "required": false; }; "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; }; }, { "queryChange": "queryChange"; "columnStateChange": "columnStateChange"; "selectionChange": "selectionChange"; "columnReorder": "columnReorder"; "columnVisibilityChange": "columnVisibilityChange"; }, never, never, true, never>;
|
|
75
101
|
}
|
|
76
102
|
|
|
77
103
|
export { DataGridComponent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tipolox-litgrid-angular.d.ts","sources":["../../../packages/grid-angular/src/DataGridComponent.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tipolox-litgrid-angular.d.ts","sources":["../../../packages/grid-angular/src/DataGridComponent.ts"],"mappings":";;;;;;AAoCA,cAoBa,iBAAkB,YAAW,aAAa,EAAE,SAAS;oBACvC,iBAAiB;AAChC,0BAAoB,YAAA,CAAA,QAAA;;;;AAA4C;AAE1E,6BAAyB,KAAK;AAG9B,4BAAwB,iBAAiB;AACzC,gBAAY,iBAAiB;AAC7B;mCAC+B,aAAa;AAC5C;;aAEkB,UAAU;YACX,UAAU;WACX,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;gCAG2B,YAAA,CAAA,uBAAA;AAC1B,8BAAwB,YAAA,CAAA,QAAA;;;;;;;;;AAA4C;4BAC9C,YAAA,CAAA,mBAAA;qCACS,YAAA,CAAA,4BAAA;;AAIzC,uBAAmB,eAAe;AAIlC;AAIA,0BAAsB,aAAa;AAInC,mCAA+B,KAAK;AAIpC,iCAA6B,KAAK;AAIlC,4BAAwB,qBAAqB;wBAIzB,UAAU,WAAW,eAAe;AAIxD,+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;yCA5OW,iBAAiB;2CAAjB,iBAAiB;AAmP7B;;;;","names":[],"sourcesContent":["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 GridRowKey,\n SelectionChangeDetail,\n GridExternalState,\n GridQueryChangeDetail,\n GridQuerySnapshot,\n SortDirection,\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 (selection-change)=\"handleSelectionChange($event)\"\n (query-change)=\"handleQueryChange($event)\"\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() externalState?: GridExternalState\n @Output() readonly queryChange = new EventEmitter<GridQueryChangeDetail>()\n\n handleQueryChange(event: Event): void {\n if (event.target === this.gridElement) this.queryChange.emit((event as CustomEvent<GridQueryChangeDetail>).detail)\n }\n setExternalState(state: GridExternalState): boolean { return this.requireGridElement().setExternalState!(state) }\n getQuery(): GridQuerySnapshot { return this.requireGridElement().getQuery!() }\n refreshQuery(): void { this.requireGridElement().refreshQuery!() }\n sortBy(key: string, direction: SortDirection): void { this.requireGridElement().sortBy!(key, direction) }\n clearSort(): void { this.requireGridElement().clearSort!() }\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 selectionChange = new EventEmitter<SelectionChangeDetail>()\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 handleSelectionChange(event: Event): void {\n this.selectionChange.emit((event as CustomEvent<SelectionChangeDetail>).detail)\n }\n\n getSelectionSnapshot(): SelectionChangeDetail {\n return this.requireGridElement().getSelectionSnapshot()\n }\n\n selectRowByKey(key: GridRowKey, intent?: SelectionIntent): boolean {\n return this.requireGridElement().selectRowByKey(key, intent)\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"]}
|