@3mo/data-grid 0.8.24 → 0.8.26-preview.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/dist/DataGrid.d.ts +19 -39
- package/dist/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +65 -207
- package/dist/DataGridCell.d.ts +1 -1
- package/dist/DataGridCell.d.ts.map +1 -1
- package/dist/DataGridCell.js +5 -1
- package/dist/DataGridColumn.d.ts.map +1 -1
- package/dist/DataGridColumn.js +4 -3
- package/dist/DataGridColumnsController.d.ts +26 -0
- package/dist/DataGridColumnsController.d.ts.map +1 -0
- package/dist/DataGridColumnsController.js +118 -0
- package/dist/DataGridDetailsController.d.ts +28 -0
- package/dist/DataGridDetailsController.d.ts.map +1 -0
- package/dist/DataGridDetailsController.js +63 -0
- package/dist/DataGridFooter.js +3 -3
- package/dist/DataGridHeader.d.ts.map +1 -1
- package/dist/DataGridHeader.js +11 -6
- package/dist/DataGridSelectionController.d.ts +13 -1
- package/dist/DataGridSelectionController.d.ts.map +1 -1
- package/dist/DataGridSelectionController.js +24 -2
- package/dist/DataGridSortingController.d.ts +1 -0
- package/dist/DataGridSortingController.d.ts.map +1 -1
- package/dist/DataGridSortingController.js +5 -2
- package/dist/DataRecord.d.ts +15 -0
- package/dist/DataRecord.d.ts.map +1 -0
- package/dist/DataRecord.js +25 -0
- package/dist/columns/DataGridColumnText.js +1 -1
- package/dist/columns/date-time/DataGridColumnDateTimeBase.js +1 -1
- package/dist/columns/number/DataGridColumnCurrency.js +1 -1
- package/dist/columns/number/DataGridColumnNumber.js +1 -1
- package/dist/columns/number/DataGridColumnPercent.js +1 -1
- package/dist/custom-elements.json +100 -307
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/rows/DataGridRow.d.ts +8 -17
- package/dist/rows/DataGridRow.d.ts.map +1 -1
- package/dist/rows/DataGridRow.js +46 -80
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/DataGrid.d.ts
CHANGED
|
@@ -4,15 +4,13 @@ import { InstanceofAttributeController } from '@3mo/instanceof-attribute-control
|
|
|
4
4
|
import { SlotController } from '@3mo/slot-controller';
|
|
5
5
|
import { ThemeController } from '@3mo/theme';
|
|
6
6
|
import { MediaQueryController } from '@3mo/media-query-observer';
|
|
7
|
-
import {
|
|
7
|
+
import { DataGridColumnsController } from './DataGridColumnsController.js';
|
|
8
|
+
import { DataGridSelectionBehaviorOnDataChange, DataGridSelectionController, DataGridSelectionMode } from './DataGridSelectionController.js';
|
|
8
9
|
import { DataGridSortingController, type DataGridRankedSortDefinition, type DataGridSorting } from './DataGridSortingController.js';
|
|
10
|
+
import { DataGridDetailsController } from './DataGridDetailsController.js';
|
|
9
11
|
import { DataGridSidePanelTab, type DataGridColumn, type DataGridCell, type DataGridRow } from './index.js';
|
|
12
|
+
import { DataRecord } from './DataRecord.js';
|
|
10
13
|
export type DataGridPagination = 'auto' | number;
|
|
11
|
-
export declare enum DataGridSelectionBehaviorOnDataChange {
|
|
12
|
-
Reset = "reset",
|
|
13
|
-
Prevent = "prevent",
|
|
14
|
-
Maintain = "maintain"
|
|
15
|
-
}
|
|
16
14
|
export declare enum DataGridEditability {
|
|
17
15
|
Never = "never",
|
|
18
16
|
Cell = "cell",
|
|
@@ -116,7 +114,6 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
116
114
|
subDataGridDataSelector?: KeyPathOf<TData>;
|
|
117
115
|
hasDataDetail?: (data: TData) => boolean;
|
|
118
116
|
detailsOnClick: boolean;
|
|
119
|
-
protected openDetailedData: TData[];
|
|
120
117
|
getRowContextMenuTemplate?: (data: Array<TData>) => HTMLTemplateResult;
|
|
121
118
|
primaryContextMenuItemOnDoubleClick: boolean;
|
|
122
119
|
editability: DataGridEditability;
|
|
@@ -134,30 +131,25 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
134
131
|
readonly rows: Array<DataGridRow<TData, TDetailsElement>>;
|
|
135
132
|
private readonly footer?;
|
|
136
133
|
private readonly sidePanel?;
|
|
137
|
-
private readonly columnsSlot?;
|
|
138
134
|
setPage(page: number): void;
|
|
139
|
-
handlePageChange(page: number): void;
|
|
140
135
|
setPagination(pagination?: DataGridPagination): void;
|
|
141
|
-
handlePaginationChange(pagination?: DataGridPagination): void;
|
|
142
136
|
setData(data: Array<TData>, selectionBehavior?: DataGridSelectionBehaviorOnDataChange): void;
|
|
143
137
|
get hasSelection(): boolean;
|
|
144
138
|
selectAll(...parameters: Parameters<typeof this.selectionController.selectAll>): void;
|
|
145
139
|
deselectAll(...parameters: Parameters<typeof this.selectionController.deselectAll>): void;
|
|
146
140
|
select(...parameters: Parameters<typeof this.selectionController.select>): void;
|
|
147
141
|
isSelectable(...parameters: Parameters<typeof this.selectionController.isSelectable>): boolean;
|
|
148
|
-
get detailedData(): TData[];
|
|
149
142
|
get hasDetails(): boolean;
|
|
150
|
-
getSubData(data: TData): Array<TData> | undefined;
|
|
151
|
-
hasDetail(data: TData): boolean;
|
|
152
143
|
get allRowDetailsOpen(): boolean;
|
|
153
|
-
openRowDetails(): void;
|
|
154
|
-
closeRowDetails(): void;
|
|
155
|
-
toggleRowDetails(): void;
|
|
144
|
+
openRowDetails(...parameters: Parameters<typeof this.detailsController.openAll>): void;
|
|
145
|
+
closeRowDetails(...parameters: Parameters<typeof this.detailsController.closeAll>): void;
|
|
146
|
+
toggleRowDetails(...parameters: Parameters<typeof this.detailsController.toggleAll>): void;
|
|
147
|
+
getSorting(...parameters: Parameters<typeof DataGridSortingController.prototype.get>): DataGridRankedSortDefinition<TData>[];
|
|
156
148
|
sort(...parameters: Parameters<typeof this.sortingController.set>): void;
|
|
157
149
|
unsort(...parameters: Parameters<typeof this.sortingController.reset>): void;
|
|
158
|
-
setColumns(
|
|
159
|
-
|
|
160
|
-
|
|
150
|
+
setColumns(...parameters: Parameters<typeof this.columnsController.setColumns>): void;
|
|
151
|
+
extractColumns(...parameters: Parameters<typeof this.columnsController.extractColumns>): void;
|
|
152
|
+
get visibleColumns(): DataGridColumn<TData, unknown>[];
|
|
161
153
|
getRow(data: TData): DataGridRow<TData, TDetailsElement> | undefined;
|
|
162
154
|
getCell(data: TData, column: DataGridColumn<TData, unknown>): DataGridCell<any, TData, TDetailsElement> | undefined;
|
|
163
155
|
handleEdit(data: TData, column: DataGridColumn<TData, unknown>, value: KeyPathValueOf<TData, KeyPathOf<TData>> | undefined): void;
|
|
@@ -180,9 +172,11 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
180
172
|
protected readonly slotController: SlotController;
|
|
181
173
|
protected readonly instanceofAttributeController: InstanceofAttributeController;
|
|
182
174
|
protected readonly smallScreenObserverController: MediaQueryController;
|
|
183
|
-
readonly themeController: ThemeController;
|
|
175
|
+
protected readonly themeController: ThemeController;
|
|
176
|
+
readonly columnsController: DataGridColumnsController<TData>;
|
|
184
177
|
readonly selectionController: DataGridSelectionController<TData>;
|
|
185
178
|
readonly sortingController: DataGridSortingController<TData>;
|
|
179
|
+
readonly detailsController: DataGridDetailsController<TData>;
|
|
186
180
|
readonly rowIntersectionObserver?: IntersectionObserver;
|
|
187
181
|
protected updated(...parameters: Parameters<Component['updated']>): void;
|
|
188
182
|
protected firstUpdated(props: PropertyValues): void;
|
|
@@ -202,10 +196,8 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
202
196
|
protected get dataGridTemplate(): HTMLTemplateResult;
|
|
203
197
|
protected get headerTemplate(): HTMLTemplateResult;
|
|
204
198
|
private get rowsTemplate();
|
|
205
|
-
getRowTemplate(
|
|
206
|
-
private handleRowDetailsOpenChange;
|
|
199
|
+
getRowTemplate(dataRecord: DataRecord<TData>, index?: number): import("lit-html").TemplateResult;
|
|
207
200
|
protected get footerTemplate(): HTMLTemplateResult;
|
|
208
|
-
get sumsData(): TData[];
|
|
209
201
|
get sumsTemplate(): HTMLTemplateResult;
|
|
210
202
|
protected get toolbarTemplate(): HTMLTemplateResult;
|
|
211
203
|
protected get toolbarDefaultTemplate(): HTMLTemplateResult;
|
|
@@ -213,26 +205,14 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
213
205
|
protected get sumDefaultTemplate(): HTMLTemplateResult;
|
|
214
206
|
protected get selectionToolbarTemplate(): HTMLTemplateResult;
|
|
215
207
|
protected get toolbarActionsTemplate(): HTMLTemplateResult;
|
|
216
|
-
private provideCssColumnsProperties;
|
|
217
|
-
readonly detailsColumnWidthInPixels = 0;
|
|
218
|
-
readonly selectionColumnWidthInPixels = 0;
|
|
219
|
-
readonly moreColumnWidthInPixels = 0;
|
|
220
|
-
get columnsWidths(): string[];
|
|
221
|
-
get detailsColumnWidth(): string | undefined;
|
|
222
|
-
get selectionColumnWidth(): string | undefined;
|
|
223
|
-
get dataColumnsWidths(): string[];
|
|
224
|
-
get moreColumnWidth(): string | undefined;
|
|
225
208
|
private lastScrollElementTop;
|
|
226
209
|
private handleScroll;
|
|
227
210
|
protected handlePointerDown(event: PointerEvent): void;
|
|
228
|
-
getSorting(): DataGridRankedSortDefinition<TData>[];
|
|
229
211
|
private getFlattenedData;
|
|
230
|
-
get
|
|
231
|
-
|
|
232
|
-
get
|
|
233
|
-
|
|
234
|
-
private get autoGeneratedColumns();
|
|
235
|
-
get visibleColumns(): DataGridColumn<TData, unknown>[];
|
|
212
|
+
get dataRecords(): Array<DataRecord<TData>>;
|
|
213
|
+
get renderDataRecords(): DataRecord<TData>[];
|
|
214
|
+
protected get dataSkip(): number;
|
|
215
|
+
protected get dataTake(): number;
|
|
236
216
|
}
|
|
237
217
|
declare global {
|
|
238
218
|
interface HTMLElementTagNameMap {
|
package/dist/DataGrid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../DataGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,
|
|
1
|
+
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../DataGrid.ts"],"names":[],"mappings":"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"}
|
package/dist/DataGrid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var DataGrid_1;
|
|
2
2
|
import { __decorate } from "tslib";
|
|
3
|
-
import { property, component, Component, html, css,
|
|
3
|
+
import { property, component, Component, html, css, query, ifDefined, event, style, literal, staticHtml, cache, eventOptions, queryAll, repeat, eventListener } from '@a11d/lit';
|
|
4
4
|
import { NotificationComponent } from '@a11d/lit-application';
|
|
5
5
|
import { LocalStorage } from '@a11d/local-storage';
|
|
6
6
|
import { InstanceofAttributeController } from '@3mo/instanceof-attribute-controller';
|
|
@@ -10,9 +10,12 @@ import { ThemeController } from '@3mo/theme';
|
|
|
10
10
|
import { observeMutation } from '@3mo/mutation-observer';
|
|
11
11
|
import { MediaQueryController } from '@3mo/media-query-observer';
|
|
12
12
|
import { Localizer } from '@3mo/localization';
|
|
13
|
-
import {
|
|
13
|
+
import { DataGridColumnsController } from './DataGridColumnsController.js';
|
|
14
|
+
import { DataGridSelectionBehaviorOnDataChange, DataGridSelectionController, DataGridSelectionMode } from './DataGridSelectionController.js';
|
|
14
15
|
import { DataGridSortingController } from './DataGridSortingController.js';
|
|
15
|
-
import {
|
|
16
|
+
import { DataGridDetailsController } from './DataGridDetailsController.js';
|
|
17
|
+
import { CsvGenerator, DataGridSidePanelTab } from './index.js';
|
|
18
|
+
import { DataRecord } from './DataRecord.js';
|
|
16
19
|
Localizer.register('en', {
|
|
17
20
|
'${count:pluralityNumber} entries selected': [
|
|
18
21
|
'1 entry selected',
|
|
@@ -30,12 +33,6 @@ Localizer.register('de', {
|
|
|
30
33
|
'More Filters': 'Weitere Filter',
|
|
31
34
|
'Deselect All': 'Alle deselektieren',
|
|
32
35
|
});
|
|
33
|
-
export var DataGridSelectionBehaviorOnDataChange;
|
|
34
|
-
(function (DataGridSelectionBehaviorOnDataChange) {
|
|
35
|
-
DataGridSelectionBehaviorOnDataChange["Reset"] = "reset";
|
|
36
|
-
DataGridSelectionBehaviorOnDataChange["Prevent"] = "prevent";
|
|
37
|
-
DataGridSelectionBehaviorOnDataChange["Maintain"] = "maintain";
|
|
38
|
-
})(DataGridSelectionBehaviorOnDataChange || (DataGridSelectionBehaviorOnDataChange = {}));
|
|
39
36
|
export var DataGridEditability;
|
|
40
37
|
(function (DataGridEditability) {
|
|
41
38
|
DataGridEditability["Never"] = "never";
|
|
@@ -118,7 +115,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
118
115
|
this.selectionBehaviorOnDataChange = DataGridSelectionBehaviorOnDataChange.Reset;
|
|
119
116
|
this.multipleDetails = false;
|
|
120
117
|
this.detailsOnClick = false;
|
|
121
|
-
this.openDetailedData = new Array();
|
|
122
118
|
this.primaryContextMenuItemOnDoubleClick = false;
|
|
123
119
|
this.editability = DataGridEditability.Never;
|
|
124
120
|
this.sidePanelHidden = false;
|
|
@@ -133,19 +129,18 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
133
129
|
this.hasSums;
|
|
134
130
|
this.hasFabs;
|
|
135
131
|
await new Promise(r => requestIdleCallback(r));
|
|
136
|
-
this.style.setProperty('--mo-data-grid-fab-slot-width', `${this.renderRoot
|
|
132
|
+
this.style.setProperty('--mo-data-grid-fab-slot-width', `${this.renderRoot?.querySelector('slot[name=fab]')?.getBoundingClientRect().width || 75}px`);
|
|
137
133
|
});
|
|
138
134
|
this.instanceofAttributeController = new InstanceofAttributeController(this);
|
|
139
135
|
this.smallScreenObserverController = new MediaQueryController(this, '(max-width: 768px)');
|
|
140
136
|
this.themeController = new ThemeController(this);
|
|
137
|
+
this.columnsController = new DataGridColumnsController(this);
|
|
141
138
|
this.selectionController = new DataGridSelectionController(this);
|
|
142
139
|
this.sortingController = new DataGridSortingController(this);
|
|
140
|
+
this.detailsController = new DataGridDetailsController(this);
|
|
143
141
|
this.splitterResizerTemplate = html `
|
|
144
142
|
<mo-splitter-resizer-line style='--mo-splitter-resizer-line-thickness: 1px; --mo-splitter-resizer-line-idle-background: var(--mo-color-transparent-gray-3); --mo-splitter-resizer-line-horizontal-transform: scaleX(5);'></mo-splitter-resizer-line>
|
|
145
143
|
`;
|
|
146
|
-
this.detailsColumnWidthInPixels = 0;
|
|
147
|
-
this.selectionColumnWidthInPixels = 0;
|
|
148
|
-
this.moreColumnWidthInPixels = 0;
|
|
149
144
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
150
145
|
this.lastScrollElementTop = 0;
|
|
151
146
|
}
|
|
@@ -153,26 +148,13 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
153
148
|
this.page = page;
|
|
154
149
|
this.pageChange.dispatch(page);
|
|
155
150
|
}
|
|
156
|
-
handlePageChange(page) {
|
|
157
|
-
this.setPage(page);
|
|
158
|
-
}
|
|
159
151
|
setPagination(pagination) {
|
|
160
152
|
this.pagination = pagination;
|
|
161
153
|
this.paginationChange.dispatch(pagination);
|
|
162
154
|
}
|
|
163
|
-
handlePaginationChange(pagination) {
|
|
164
|
-
this.setPagination(pagination);
|
|
165
|
-
}
|
|
166
155
|
setData(data, selectionBehavior = this.selectionBehaviorOnDataChange) {
|
|
167
156
|
this.data = data;
|
|
168
|
-
|
|
169
|
-
case DataGridSelectionBehaviorOnDataChange.Reset:
|
|
170
|
-
this.deselectAll();
|
|
171
|
-
break;
|
|
172
|
-
case DataGridSelectionBehaviorOnDataChange.Maintain:
|
|
173
|
-
this.selectionController.selectPreviouslySelectedData();
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
157
|
+
this.selectionController.handleDataChange(selectionBehavior);
|
|
176
158
|
this.dataChange.dispatch(data);
|
|
177
159
|
}
|
|
178
160
|
get hasSelection() {
|
|
@@ -190,64 +172,38 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
190
172
|
isSelectable(...parameters) {
|
|
191
173
|
return this.selectionController.isSelectable(...parameters);
|
|
192
174
|
}
|
|
193
|
-
get detailedData() {
|
|
194
|
-
return this.data.filter(data => this.hasDetail(data));
|
|
195
|
-
}
|
|
196
175
|
get hasDetails() {
|
|
197
|
-
return
|
|
198
|
-
|| this.data.some(d => !!this.getSubData(d));
|
|
199
|
-
}
|
|
200
|
-
getSubData(data) {
|
|
201
|
-
if (!this.subDataGridDataSelector) {
|
|
202
|
-
return undefined;
|
|
203
|
-
}
|
|
204
|
-
const subValue = getValueByKeyPath(data, this.subDataGridDataSelector);
|
|
205
|
-
return !Array.isArray(subValue) || !subValue.length
|
|
206
|
-
? undefined
|
|
207
|
-
: this.sortingController.toSorted(subValue);
|
|
208
|
-
}
|
|
209
|
-
hasDetail(data) {
|
|
210
|
-
return !!this.getSubData(data) || (this.hasDataDetail?.(data) ??
|
|
211
|
-
[undefined, html.nothing].includes(this.getRowDetailsTemplate?.(data)) === false);
|
|
176
|
+
return this.detailsController.hasDetails;
|
|
212
177
|
}
|
|
213
178
|
get allRowDetailsOpen() {
|
|
214
|
-
return this.
|
|
179
|
+
return this.detailsController.areAllOpen;
|
|
215
180
|
}
|
|
216
|
-
openRowDetails() {
|
|
217
|
-
|
|
181
|
+
openRowDetails(...parameters) {
|
|
182
|
+
return this.detailsController.openAll(...parameters);
|
|
218
183
|
}
|
|
219
|
-
closeRowDetails() {
|
|
220
|
-
this.
|
|
184
|
+
closeRowDetails(...parameters) {
|
|
185
|
+
return this.detailsController.closeAll(...parameters);
|
|
221
186
|
}
|
|
222
|
-
toggleRowDetails() {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
this.openRowDetails();
|
|
228
|
-
}
|
|
187
|
+
toggleRowDetails(...parameters) {
|
|
188
|
+
return this.detailsController.toggleAll(...parameters);
|
|
189
|
+
}
|
|
190
|
+
getSorting(...parameters) {
|
|
191
|
+
return this.sortingController.get(...parameters);
|
|
229
192
|
}
|
|
230
193
|
sort(...parameters) {
|
|
231
|
-
this.sortingController.set(...parameters);
|
|
194
|
+
return this.sortingController.set(...parameters);
|
|
232
195
|
}
|
|
233
196
|
unsort(...parameters) {
|
|
234
|
-
this.sortingController.reset(...parameters);
|
|
197
|
+
return this.sortingController.reset(...parameters);
|
|
235
198
|
}
|
|
236
|
-
setColumns(
|
|
237
|
-
this.
|
|
238
|
-
this.columnsChange.dispatch(columns);
|
|
239
|
-
this.requestUpdate();
|
|
199
|
+
setColumns(...parameters) {
|
|
200
|
+
return this.columnsController.setColumns(...parameters);
|
|
240
201
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
this.extractColumns();
|
|
244
|
-
}
|
|
202
|
+
extractColumns(...parameters) {
|
|
203
|
+
return this.columnsController.extractColumns(...parameters);
|
|
245
204
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
? this.elementExtractedColumns
|
|
249
|
-
: this.autoGeneratedColumns;
|
|
250
|
-
this.setColumns(extractedColumns);
|
|
205
|
+
get visibleColumns() {
|
|
206
|
+
return this.columnsController.visibleColumns;
|
|
251
207
|
}
|
|
252
208
|
getRow(data) {
|
|
253
209
|
return this.rows.find(r => r.data === data);
|
|
@@ -329,7 +285,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
329
285
|
return value;
|
|
330
286
|
}
|
|
331
287
|
get dataLength() {
|
|
332
|
-
return this.
|
|
288
|
+
return this.renderDataRecords.length;
|
|
333
289
|
}
|
|
334
290
|
get maxPage() {
|
|
335
291
|
return Math.ceil(this.dataLength / this.pageSize);
|
|
@@ -358,7 +314,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
358
314
|
}
|
|
359
315
|
firstUpdated(props) {
|
|
360
316
|
super.firstUpdated(props);
|
|
361
|
-
this.extractColumnsIfNotSetExplicitly();
|
|
362
317
|
this.cellEdit.subscribe(() => this.requestUpdate());
|
|
363
318
|
this.setPage(1);
|
|
364
319
|
}
|
|
@@ -379,6 +334,8 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
379
334
|
|
|
380
335
|
--mo-data-grid-sticky-part-color: var(--mo-color-surface);
|
|
381
336
|
|
|
337
|
+
--mo-data-grid-alternating-background: color-mix(in srgb, black var(--mo-data-grid-alternating-background-transparency), transparent 0%);
|
|
338
|
+
|
|
382
339
|
--mo-data-grid-selection-background: color-mix(in srgb, var(--mo-color-accent), transparent 50%);
|
|
383
340
|
display: flex;
|
|
384
341
|
flex-direction: column;
|
|
@@ -387,11 +344,11 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
387
344
|
}
|
|
388
345
|
|
|
389
346
|
:host([data-theme=light]) {
|
|
390
|
-
--mo-data-grid-alternating-background
|
|
347
|
+
--mo-data-grid-alternating-background-transparency : 5%;
|
|
391
348
|
}
|
|
392
349
|
|
|
393
350
|
:host([data-theme=dark]) {
|
|
394
|
-
--mo-data-grid-alternating-background:
|
|
351
|
+
--mo-data-grid-alternating-background-transparency: 20%;
|
|
395
352
|
}
|
|
396
353
|
|
|
397
354
|
:host([preventVerticalContentScroll]) mo-scroller {
|
|
@@ -599,7 +556,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
599
556
|
`;
|
|
600
557
|
}
|
|
601
558
|
get dataGridTemplate() {
|
|
602
|
-
this.provideCssColumnsProperties();
|
|
603
559
|
this.toggleAttribute('hasDetails', this.hasDetails);
|
|
604
560
|
return html `
|
|
605
561
|
<mo-grid rows='* auto' ${style({ position: 'relative', height: '100%' })}>
|
|
@@ -623,34 +579,17 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
623
579
|
}
|
|
624
580
|
get rowsTemplate() {
|
|
625
581
|
return html `
|
|
626
|
-
${repeat(this.
|
|
582
|
+
${repeat(this.renderDataRecords, record => record.data, (record, index) => this.getRowTemplate(record, index))}
|
|
627
583
|
`;
|
|
628
584
|
}
|
|
629
|
-
getRowTemplate(
|
|
585
|
+
getRowTemplate(dataRecord, index = 0) {
|
|
630
586
|
return staticHtml `
|
|
631
587
|
<${this.rowElementTag} part='row'
|
|
632
|
-
.
|
|
633
|
-
|
|
634
|
-
.data=${data}
|
|
635
|
-
index=${ifDefined(index)}
|
|
636
|
-
?data-grid-has-details=${this.hasDetails}
|
|
637
|
-
?selected=${live(this.selectedData.includes(data))}
|
|
638
|
-
?detailsOpen=${live(this.openDetailedData.includes(data))}
|
|
639
|
-
@detailsOpenChange=${(event) => this.handleRowDetailsOpenChange(data, event.detail)}
|
|
588
|
+
.dataRecord=${dataRecord}
|
|
589
|
+
?data-has-alternating-background=${this.hasAlternatingBackground && index % 2 === 1}
|
|
640
590
|
></${this.rowElementTag}>
|
|
641
591
|
`;
|
|
642
592
|
}
|
|
643
|
-
handleRowDetailsOpenChange(data, open) {
|
|
644
|
-
if (this.hasDetail(data) === false) {
|
|
645
|
-
return;
|
|
646
|
-
}
|
|
647
|
-
if (open && this.multipleDetails === false) {
|
|
648
|
-
this.closeRowDetails();
|
|
649
|
-
}
|
|
650
|
-
this.openDetailedData = open
|
|
651
|
-
? [...this.openDetailedData, data]
|
|
652
|
-
: this.openDetailedData.filter(d => d !== data);
|
|
653
|
-
}
|
|
654
593
|
get footerTemplate() {
|
|
655
594
|
return html `
|
|
656
595
|
<mo-flex ${style({ position: 'relative' })}>
|
|
@@ -665,9 +604,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
665
604
|
</mo-flex>
|
|
666
605
|
`;
|
|
667
606
|
}
|
|
668
|
-
get sumsData() {
|
|
669
|
-
return this.selectedData.length > 0 ? this.selectedData : this.renderData;
|
|
670
|
-
}
|
|
671
607
|
get sumsTemplate() {
|
|
672
608
|
return html `
|
|
673
609
|
${this.columns.map(c => c.sumTemplate)}
|
|
@@ -741,35 +677,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
741
677
|
></mo-icon-button>
|
|
742
678
|
`;
|
|
743
679
|
}
|
|
744
|
-
// The reason for not doing this in the CSS is that we need to trim all the 0px values out of the columns
|
|
745
|
-
// because the 'grid column gap' renders a gap no matter if the column is 0px or not
|
|
746
|
-
provideCssColumnsProperties() {
|
|
747
|
-
this.style.setProperty('--mo-data-grid-content-width', this.dataColumnsWidths.join(' '));
|
|
748
|
-
this.style.setProperty('--mo-data-grid-columns', this.columnsWidths.join(' '));
|
|
749
|
-
}
|
|
750
|
-
get columnsWidths() {
|
|
751
|
-
return [
|
|
752
|
-
this.detailsColumnWidth,
|
|
753
|
-
this.selectionColumnWidth,
|
|
754
|
-
...this.dataColumnsWidths,
|
|
755
|
-
'1fr',
|
|
756
|
-
this.moreColumnWidth
|
|
757
|
-
].filter((c) => c !== undefined);
|
|
758
|
-
}
|
|
759
|
-
get detailsColumnWidth() {
|
|
760
|
-
return !this.hasDetails ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-details-width');
|
|
761
|
-
}
|
|
762
|
-
get selectionColumnWidth() {
|
|
763
|
-
return !this.hasSelection || this.selectionCheckboxesHidden ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-selection-width');
|
|
764
|
-
}
|
|
765
|
-
get dataColumnsWidths() {
|
|
766
|
-
return this.visibleColumns
|
|
767
|
-
.map(c => c.width)
|
|
768
|
-
.filter((c) => c !== undefined);
|
|
769
|
-
}
|
|
770
|
-
get moreColumnWidth() {
|
|
771
|
-
return this.sidePanelHidden && !this.hasContextMenu ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-more-width');
|
|
772
|
-
}
|
|
773
680
|
handleScroll(e) {
|
|
774
681
|
if (this.preventFabCollapse === false) {
|
|
775
682
|
if (!e.composed) {
|
|
@@ -788,88 +695,50 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
788
695
|
handlePointerDown(event) {
|
|
789
696
|
this.rows.forEach(row => row.cells.forEach(cell => cell.handlePointerDown(event)));
|
|
790
697
|
}
|
|
791
|
-
getSorting() {
|
|
792
|
-
return this.sortingController.get();
|
|
793
|
-
}
|
|
794
698
|
*getFlattenedData() {
|
|
795
699
|
if (!this.subDataGridDataSelector) {
|
|
796
|
-
yield* this.data.map(
|
|
700
|
+
yield* this.sortingController.toSortedBy(this.data.map((data, index) => new DataRecord(this, { level: 0, index, data })), ({ data }) => data);
|
|
797
701
|
return;
|
|
798
702
|
}
|
|
799
703
|
const flatten = (data, level = 0) => {
|
|
800
704
|
const subData = getValueByKeyPath(data, this.subDataGridDataSelector);
|
|
705
|
+
const subDataRecords = !Array.isArray(subData)
|
|
706
|
+
? undefined
|
|
707
|
+
: this.sortingController
|
|
708
|
+
.toSortedBy(subData.map(data => new DataRecord(this, { level, data })), ({ data }) => data)
|
|
709
|
+
.flatMap(({ data }) => flatten(data, level + 1));
|
|
801
710
|
return [
|
|
802
|
-
{ data, level },
|
|
803
|
-
|
|
804
|
-
? []
|
|
805
|
-
: subData.flatMap(d => flatten(d, level + 1))
|
|
711
|
+
new DataRecord(this, { data, level, subData: subDataRecords }),
|
|
712
|
+
...(subDataRecords ?? [])
|
|
806
713
|
];
|
|
807
714
|
};
|
|
808
|
-
for (const data of this.data) {
|
|
715
|
+
for (const data of this.sortingController.toSorted(this.data)) {
|
|
809
716
|
yield* flatten(data);
|
|
810
717
|
}
|
|
811
718
|
return;
|
|
812
719
|
}
|
|
813
|
-
get
|
|
814
|
-
return [...this.getFlattenedData()]
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
720
|
+
get dataRecords() {
|
|
721
|
+
return [...this.getFlattenedData()]
|
|
722
|
+
.map((record, index) => {
|
|
723
|
+
// @ts-expect-error index is initialized here
|
|
724
|
+
record.index = index;
|
|
725
|
+
return record;
|
|
726
|
+
});
|
|
818
727
|
}
|
|
819
|
-
get
|
|
728
|
+
get renderDataRecords() {
|
|
729
|
+
const rootRecords = this.dataRecords.filter(r => r.level === 0);
|
|
820
730
|
if (this.hasPagination === false) {
|
|
821
|
-
return
|
|
731
|
+
return rootRecords;
|
|
822
732
|
}
|
|
823
|
-
const from =
|
|
824
|
-
const to = this.
|
|
825
|
-
return
|
|
733
|
+
const from = this.dataSkip;
|
|
734
|
+
const to = this.dataSkip + this.dataTake;
|
|
735
|
+
return rootRecords.slice(from, to);
|
|
826
736
|
}
|
|
827
|
-
get
|
|
828
|
-
|
|
829
|
-
return [];
|
|
830
|
-
}
|
|
831
|
-
const children = this.columnsSlot.children.length > 0 ? Array.from(this.columnsSlot.children) : undefined;
|
|
832
|
-
const assigned = this.columnsSlot.assignedElements().length > 0 ? Array.from(this.columnsSlot.assignedElements()) : undefined;
|
|
833
|
-
return Array.from(assigned ?? children ?? [])
|
|
834
|
-
.filter((c) => {
|
|
835
|
-
const isColumn = c instanceof DataGridColumnComponent;
|
|
836
|
-
if (isColumn) {
|
|
837
|
-
c.dataGrid = this;
|
|
838
|
-
}
|
|
839
|
-
return isColumn;
|
|
840
|
-
})
|
|
841
|
-
.map(c => c.column);
|
|
842
|
-
}
|
|
843
|
-
get autoGeneratedColumns() {
|
|
844
|
-
if (!this.dataLength) {
|
|
845
|
-
return [];
|
|
846
|
-
}
|
|
847
|
-
const getDefaultColumnElement = (value) => {
|
|
848
|
-
switch (typeof value) {
|
|
849
|
-
case 'number':
|
|
850
|
-
case 'bigint':
|
|
851
|
-
return 'mo-data-grid-column-number';
|
|
852
|
-
case 'boolean':
|
|
853
|
-
return 'mo-data-grid-column-boolean';
|
|
854
|
-
default:
|
|
855
|
-
return 'mo-data-grid-column-text';
|
|
856
|
-
}
|
|
857
|
-
};
|
|
858
|
-
const sampleData = this.data[0];
|
|
859
|
-
return Object.keys(sampleData || {})
|
|
860
|
-
.filter(key => !key.startsWith('_'))
|
|
861
|
-
.map(key => {
|
|
862
|
-
const columnElement = document.createElement(getDefaultColumnElement(getValueByKeyPath(sampleData, key)));
|
|
863
|
-
columnElement.heading = key.replace(/([A-Z])/g, ' $1').charAt(0).toUpperCase() + key.replace(/([A-Z])/g, ' $1').slice(1);
|
|
864
|
-
columnElement.dataSelector = key;
|
|
865
|
-
columnElement.dataGrid = this;
|
|
866
|
-
const column = columnElement.column;
|
|
867
|
-
columnElement.remove();
|
|
868
|
-
return column;
|
|
869
|
-
});
|
|
737
|
+
get dataSkip() {
|
|
738
|
+
return (this.page - 1) * this.pageSize;
|
|
870
739
|
}
|
|
871
|
-
get
|
|
872
|
-
return this.
|
|
740
|
+
get dataTake() {
|
|
741
|
+
return this.pageSize;
|
|
873
742
|
}
|
|
874
743
|
};
|
|
875
744
|
DataGrid.rowHeight = new LocalStorage('DataGrid.RowHeight', 35);
|
|
@@ -922,12 +791,7 @@ __decorate([
|
|
|
922
791
|
property({ type: Array })
|
|
923
792
|
], DataGrid.prototype, "data", void 0);
|
|
924
793
|
__decorate([
|
|
925
|
-
property({
|
|
926
|
-
type: Array,
|
|
927
|
-
updated() {
|
|
928
|
-
this.columns.forEach(column => column.dataGrid = this);
|
|
929
|
-
}
|
|
930
|
-
})
|
|
794
|
+
property({ type: Array })
|
|
931
795
|
], DataGrid.prototype, "columns", void 0);
|
|
932
796
|
__decorate([
|
|
933
797
|
property({ type: Boolean, reflect: true })
|
|
@@ -977,9 +841,6 @@ __decorate([
|
|
|
977
841
|
__decorate([
|
|
978
842
|
property({ type: Boolean })
|
|
979
843
|
], DataGrid.prototype, "detailsOnClick", void 0);
|
|
980
|
-
__decorate([
|
|
981
|
-
property({ type: Array })
|
|
982
|
-
], DataGrid.prototype, "openDetailedData", void 0);
|
|
983
844
|
__decorate([
|
|
984
845
|
property({ type: Object })
|
|
985
846
|
], DataGrid.prototype, "getRowContextMenuTemplate", void 0);
|
|
@@ -1043,9 +904,6 @@ __decorate([
|
|
|
1043
904
|
__decorate([
|
|
1044
905
|
query('mo-data-grid-side-panel')
|
|
1045
906
|
], DataGrid.prototype, "sidePanel", void 0);
|
|
1046
|
-
__decorate([
|
|
1047
|
-
query('slot[name=column]')
|
|
1048
|
-
], DataGrid.prototype, "columnsSlot", void 0);
|
|
1049
907
|
__decorate([
|
|
1050
908
|
eventOptions({ passive: true })
|
|
1051
909
|
], DataGrid.prototype, "handleScroll", null);
|
package/dist/DataGridCell.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare class DataGridCell<TValue extends KeyPathValueOf<TData>, TData =
|
|
|
12
12
|
column: DataGridColumn<TData, TValue>;
|
|
13
13
|
row: DataGridRow<TData, TDetailsElement>;
|
|
14
14
|
private editing;
|
|
15
|
-
get dataGrid(): import("./DataGrid.js").DataGrid<TData,
|
|
15
|
+
get dataGrid(): import("./DataGrid.js").DataGrid<TData, any>;
|
|
16
16
|
get data(): TData;
|
|
17
17
|
get dataSelector(): object extends TData ? string : TData extends readonly any[] ? Extract<keyof TData, `${number}`> | (Extract<keyof TData, `${number}`> extends infer T ? T extends Extract<keyof TData, `${number}`> ? T extends keyof TData ? `${T}.${object extends TData[T] ? string : TData[T] extends infer T_1 ? T_1 extends TData[T] ? T_1 extends readonly any[] ? Extract<keyof T_1, `${number}`> | (Extract<keyof T_1, `${number}`> extends infer T_2 ? T_2 extends Extract<keyof T_1, `${number}`> ? T_2 extends keyof T_1 ? never : never : never : never) : T_1 extends object ? Extract<keyof T_1, string> | (Extract<keyof T_1, string> extends infer T_3 ? T_3 extends Extract<keyof T_1, string> ? T_3 extends keyof T_1 ? never : never : never : never) : never : never : never}` : never : never : never) : TData extends object ? Extract<keyof TData, string> | (Extract<keyof TData, string> extends infer T_4 ? T_4 extends Extract<keyof TData, string> ? T_4 extends keyof TData ? `${T_4}.${object extends TData[T_4] ? string : TData[T_4] extends infer T_5 ? T_5 extends TData[T_4] ? T_5 extends readonly any[] ? Extract<keyof T_5, `${number}`> | (Extract<keyof T_5, `${number}`> extends infer T_6 ? T_6 extends Extract<keyof T_5, `${number}`> ? T_6 extends keyof T_5 ? never : never : never : never) : T_5 extends object ? Extract<keyof T_5, string> | (Extract<keyof T_5, string> extends infer T_7 ? T_7 extends Extract<keyof T_5, string> ? T_7 extends keyof T_5 ? never : never : never : never) : never : never : never}` : never : never : never) : never;
|
|
18
18
|
private get cellIndex();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridCell.d.ts","sourceRoot":"","sources":["../DataGridCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAA8B,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGrG,OAAO,EAAE,KAAK,cAAc,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAOvF;;;;;;GAMG;AACH,qBACa,YAAY,CAAC,MAAM,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IAC1H,KAAK,EAAG,MAAM,CAAA;IACd,MAAM,EAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACtC,GAAG,EAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAQlE,OAAO,CAAC,OAAO,CAAQ;IAE1B,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"DataGridCell.d.ts","sourceRoot":"","sources":["../DataGridCell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAA8B,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGrG,OAAO,EAAE,KAAK,cAAc,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAOvF;;;;;;GAMG;AACH,qBACa,YAAY,CAAC,MAAM,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IAC1H,KAAK,EAAG,MAAM,CAAA;IACd,MAAM,EAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACtC,GAAG,EAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAQlE,OAAO,CAAC,OAAO,CAAQ;IAE1B,IAAI,QAAQ,iDAA+B;IAC3C,IAAI,IAAI,UAA2B;IACnC,IAAI,YAAY,+/CAAsC;IAEtD,OAAO,KAAK,SAAS,GAAkD;IACvE,OAAO,KAAK,QAAQ,GAA0D;IAE9E,OAAO,KAAK,gBAAgB,GAAuD;IAEnF,OAAO,KAAK,UAAU,GAIrB;IAED,IAAI,SAAS,YAGZ;IAED,iBAAiB,CAAC,KAAK,EAAE,YAAY;IAMrC,iBAAiB,CAAC,KAAK,EAAE,UAAU;IAO7B,aAAa,CAAC,KAAK,EAAE,aAAa;IA2CxC,OAAO,CAAC,SAAS;IAWjB,WAAoB,MAAM,kCAoDzB;IAED,OAAO,KAAK,OAAO,GAAmC;IAEtD,cAAuB,QAAQ,uBAa9B;IAED,OAAO,KAAK,eAAe,GAI1B;IAQD,OAAO,KAAK,mBAAmB,GAE9B;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAC1C;CACD"}
|
package/dist/DataGridCell.js
CHANGED
|
@@ -109,7 +109,11 @@ let DataGridCell = class DataGridCell extends Component {
|
|
|
109
109
|
text-overflow: ellipsis;
|
|
110
110
|
font-size: var(--mo-data-grid-cell-font-size);
|
|
111
111
|
outline: none;
|
|
112
|
-
|
|
112
|
+
min-height: var(--mo-data-grid-row-height);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
:host(:not([isEditing])) {
|
|
116
|
+
line-height: var(--mo-data-grid-row-height);
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
:host(:not([isEditing]):focus) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumn.d.ts","sourceRoot":"","sources":["../DataGridColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,KAAK,GAAG,MAAM,SAAS,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAEhE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;AAE3D,qBAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAClD,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/B,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,EAAG,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAgB;IAEnE,SAAS,EAAE,uBAAuB,CAAU;IAC5C,MAAM,UAAQ;IAEd,QAAQ,UAAO;IAEf,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAE7B,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAC5C,IAAI,gBAAgB,+/CAAyD;IAC7E,IAAI,gBAAgB,CAAC,KAAK,4/CAAA,EAAoC;IAE9D,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEnE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAC5C,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;gBAEpC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAI1D,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO;IAMlD,OAAO,CAAC,cAAc,CAAC,CAAQ;IAC/B,IAAI,aAAa,WAAsC;IACvD,IAAI,aAAa,CAAC,KAAK,QAAA,EAGtB;IAED,OAAO,CAAC,aAAa,CAAQ;IAC7B,IAAI,YAAY,YAAgC;IAChD,IAAI,YAAY,CAAC,KAAK,SAAA,EAGrB;IAED,IAAI,iBAAiB,6FAIpB;IAED,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"DataGridColumn.d.ts","sourceRoot":"","sources":["../DataGridColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,KAAK,GAAG,MAAM,SAAS,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAEhE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;AAE3D,qBAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAClD,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/B,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,EAAG,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAgB;IAEnE,SAAS,EAAE,uBAAuB,CAAU;IAC5C,MAAM,UAAQ;IAEd,QAAQ,UAAO;IAEf,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAE7B,OAAO,CAAC,iBAAiB,CAAC,CAAkB;IAC5C,IAAI,gBAAgB,+/CAAyD;IAC7E,IAAI,gBAAgB,CAAC,KAAK,4/CAAA,EAAoC;IAE9D,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEnE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAC5C,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAEvE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;gBAEpC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAI1D,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO;IAMlD,OAAO,CAAC,cAAc,CAAC,CAAQ;IAC/B,IAAI,aAAa,WAAsC;IACvD,IAAI,aAAa,CAAC,KAAK,QAAA,EAGtB;IAED,OAAO,CAAC,aAAa,CAAQ;IAC7B,IAAI,YAAY,YAAgC;IAChD,IAAI,YAAY,CAAC,KAAK,SAAA,EAGrB;IAED,IAAI,iBAAiB,6FAIpB;IAED,IAAI,WAAW,mCAkBd;IAED,IAAI,uBAAuB,WA2B1B;CACD"}
|