@3mo/data-grid 0.8.25 → 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 -34
- package/dist/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +64 -193
- 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 +3 -1
- package/dist/DataGridSelectionController.d.ts.map +1 -1
- package/dist/DataGridSelectionController.js +4 -1
- 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,9 +4,12 @@ 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
14
|
export declare enum DataGridEditability {
|
|
12
15
|
Never = "never",
|
|
@@ -111,7 +114,6 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
111
114
|
subDataGridDataSelector?: KeyPathOf<TData>;
|
|
112
115
|
hasDataDetail?: (data: TData) => boolean;
|
|
113
116
|
detailsOnClick: boolean;
|
|
114
|
-
protected openDetailedData: TData[];
|
|
115
117
|
getRowContextMenuTemplate?: (data: Array<TData>) => HTMLTemplateResult;
|
|
116
118
|
primaryContextMenuItemOnDoubleClick: boolean;
|
|
117
119
|
editability: DataGridEditability;
|
|
@@ -129,30 +131,25 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
129
131
|
readonly rows: Array<DataGridRow<TData, TDetailsElement>>;
|
|
130
132
|
private readonly footer?;
|
|
131
133
|
private readonly sidePanel?;
|
|
132
|
-
private readonly columnsSlot?;
|
|
133
134
|
setPage(page: number): void;
|
|
134
|
-
handlePageChange(page: number): void;
|
|
135
135
|
setPagination(pagination?: DataGridPagination): void;
|
|
136
|
-
handlePaginationChange(pagination?: DataGridPagination): void;
|
|
137
136
|
setData(data: Array<TData>, selectionBehavior?: DataGridSelectionBehaviorOnDataChange): void;
|
|
138
137
|
get hasSelection(): boolean;
|
|
139
138
|
selectAll(...parameters: Parameters<typeof this.selectionController.selectAll>): void;
|
|
140
139
|
deselectAll(...parameters: Parameters<typeof this.selectionController.deselectAll>): void;
|
|
141
140
|
select(...parameters: Parameters<typeof this.selectionController.select>): void;
|
|
142
141
|
isSelectable(...parameters: Parameters<typeof this.selectionController.isSelectable>): boolean;
|
|
143
|
-
get detailedData(): TData[];
|
|
144
142
|
get hasDetails(): boolean;
|
|
145
|
-
getSubData(data: TData): Array<TData> | undefined;
|
|
146
|
-
hasDetail(data: TData): boolean;
|
|
147
143
|
get allRowDetailsOpen(): boolean;
|
|
148
|
-
openRowDetails(): void;
|
|
149
|
-
closeRowDetails(): void;
|
|
150
|
-
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>[];
|
|
151
148
|
sort(...parameters: Parameters<typeof this.sortingController.set>): void;
|
|
152
149
|
unsort(...parameters: Parameters<typeof this.sortingController.reset>): void;
|
|
153
|
-
setColumns(
|
|
154
|
-
|
|
155
|
-
|
|
150
|
+
setColumns(...parameters: Parameters<typeof this.columnsController.setColumns>): void;
|
|
151
|
+
extractColumns(...parameters: Parameters<typeof this.columnsController.extractColumns>): void;
|
|
152
|
+
get visibleColumns(): DataGridColumn<TData, unknown>[];
|
|
156
153
|
getRow(data: TData): DataGridRow<TData, TDetailsElement> | undefined;
|
|
157
154
|
getCell(data: TData, column: DataGridColumn<TData, unknown>): DataGridCell<any, TData, TDetailsElement> | undefined;
|
|
158
155
|
handleEdit(data: TData, column: DataGridColumn<TData, unknown>, value: KeyPathValueOf<TData, KeyPathOf<TData>> | undefined): void;
|
|
@@ -175,9 +172,11 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
175
172
|
protected readonly slotController: SlotController;
|
|
176
173
|
protected readonly instanceofAttributeController: InstanceofAttributeController;
|
|
177
174
|
protected readonly smallScreenObserverController: MediaQueryController;
|
|
178
|
-
readonly themeController: ThemeController;
|
|
175
|
+
protected readonly themeController: ThemeController;
|
|
176
|
+
readonly columnsController: DataGridColumnsController<TData>;
|
|
179
177
|
readonly selectionController: DataGridSelectionController<TData>;
|
|
180
178
|
readonly sortingController: DataGridSortingController<TData>;
|
|
179
|
+
readonly detailsController: DataGridDetailsController<TData>;
|
|
181
180
|
readonly rowIntersectionObserver?: IntersectionObserver;
|
|
182
181
|
protected updated(...parameters: Parameters<Component['updated']>): void;
|
|
183
182
|
protected firstUpdated(props: PropertyValues): void;
|
|
@@ -197,10 +196,8 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
197
196
|
protected get dataGridTemplate(): HTMLTemplateResult;
|
|
198
197
|
protected get headerTemplate(): HTMLTemplateResult;
|
|
199
198
|
private get rowsTemplate();
|
|
200
|
-
getRowTemplate(
|
|
201
|
-
private handleRowDetailsOpenChange;
|
|
199
|
+
getRowTemplate(dataRecord: DataRecord<TData>, index?: number): import("lit-html").TemplateResult;
|
|
202
200
|
protected get footerTemplate(): HTMLTemplateResult;
|
|
203
|
-
get sumsData(): TData[];
|
|
204
201
|
get sumsTemplate(): HTMLTemplateResult;
|
|
205
202
|
protected get toolbarTemplate(): HTMLTemplateResult;
|
|
206
203
|
protected get toolbarDefaultTemplate(): HTMLTemplateResult;
|
|
@@ -208,26 +205,14 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
208
205
|
protected get sumDefaultTemplate(): HTMLTemplateResult;
|
|
209
206
|
protected get selectionToolbarTemplate(): HTMLTemplateResult;
|
|
210
207
|
protected get toolbarActionsTemplate(): HTMLTemplateResult;
|
|
211
|
-
private provideCssColumnsProperties;
|
|
212
|
-
readonly detailsColumnWidthInPixels = 0;
|
|
213
|
-
readonly selectionColumnWidthInPixels = 0;
|
|
214
|
-
readonly moreColumnWidthInPixels = 0;
|
|
215
|
-
get columnsWidths(): string[];
|
|
216
|
-
get detailsColumnWidth(): string | undefined;
|
|
217
|
-
get selectionColumnWidth(): string | undefined;
|
|
218
|
-
get dataColumnsWidths(): string[];
|
|
219
|
-
get moreColumnWidth(): string | undefined;
|
|
220
208
|
private lastScrollElementTop;
|
|
221
209
|
private handleScroll;
|
|
222
210
|
protected handlePointerDown(event: PointerEvent): void;
|
|
223
|
-
getSorting(): DataGridRankedSortDefinition<TData>[];
|
|
224
211
|
private getFlattenedData;
|
|
225
|
-
get
|
|
226
|
-
|
|
227
|
-
get
|
|
228
|
-
|
|
229
|
-
private get autoGeneratedColumns();
|
|
230
|
-
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;
|
|
231
216
|
}
|
|
232
217
|
declare global {
|
|
233
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',
|
|
@@ -112,7 +115,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
112
115
|
this.selectionBehaviorOnDataChange = DataGridSelectionBehaviorOnDataChange.Reset;
|
|
113
116
|
this.multipleDetails = false;
|
|
114
117
|
this.detailsOnClick = false;
|
|
115
|
-
this.openDetailedData = new Array();
|
|
116
118
|
this.primaryContextMenuItemOnDoubleClick = false;
|
|
117
119
|
this.editability = DataGridEditability.Never;
|
|
118
120
|
this.sidePanelHidden = false;
|
|
@@ -127,19 +129,18 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
127
129
|
this.hasSums;
|
|
128
130
|
this.hasFabs;
|
|
129
131
|
await new Promise(r => requestIdleCallback(r));
|
|
130
|
-
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`);
|
|
131
133
|
});
|
|
132
134
|
this.instanceofAttributeController = new InstanceofAttributeController(this);
|
|
133
135
|
this.smallScreenObserverController = new MediaQueryController(this, '(max-width: 768px)');
|
|
134
136
|
this.themeController = new ThemeController(this);
|
|
137
|
+
this.columnsController = new DataGridColumnsController(this);
|
|
135
138
|
this.selectionController = new DataGridSelectionController(this);
|
|
136
139
|
this.sortingController = new DataGridSortingController(this);
|
|
140
|
+
this.detailsController = new DataGridDetailsController(this);
|
|
137
141
|
this.splitterResizerTemplate = html `
|
|
138
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>
|
|
139
143
|
`;
|
|
140
|
-
this.detailsColumnWidthInPixels = 0;
|
|
141
|
-
this.selectionColumnWidthInPixels = 0;
|
|
142
|
-
this.moreColumnWidthInPixels = 0;
|
|
143
144
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
144
145
|
this.lastScrollElementTop = 0;
|
|
145
146
|
}
|
|
@@ -147,16 +148,10 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
147
148
|
this.page = page;
|
|
148
149
|
this.pageChange.dispatch(page);
|
|
149
150
|
}
|
|
150
|
-
handlePageChange(page) {
|
|
151
|
-
this.setPage(page);
|
|
152
|
-
}
|
|
153
151
|
setPagination(pagination) {
|
|
154
152
|
this.pagination = pagination;
|
|
155
153
|
this.paginationChange.dispatch(pagination);
|
|
156
154
|
}
|
|
157
|
-
handlePaginationChange(pagination) {
|
|
158
|
-
this.setPagination(pagination);
|
|
159
|
-
}
|
|
160
155
|
setData(data, selectionBehavior = this.selectionBehaviorOnDataChange) {
|
|
161
156
|
this.data = data;
|
|
162
157
|
this.selectionController.handleDataChange(selectionBehavior);
|
|
@@ -177,64 +172,38 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
177
172
|
isSelectable(...parameters) {
|
|
178
173
|
return this.selectionController.isSelectable(...parameters);
|
|
179
174
|
}
|
|
180
|
-
get detailedData() {
|
|
181
|
-
return this.data.filter(data => this.hasDetail(data));
|
|
182
|
-
}
|
|
183
175
|
get hasDetails() {
|
|
184
|
-
return
|
|
185
|
-
|| this.data.some(d => !!this.getSubData(d));
|
|
186
|
-
}
|
|
187
|
-
getSubData(data) {
|
|
188
|
-
if (!this.subDataGridDataSelector) {
|
|
189
|
-
return undefined;
|
|
190
|
-
}
|
|
191
|
-
const subValue = getValueByKeyPath(data, this.subDataGridDataSelector);
|
|
192
|
-
return !Array.isArray(subValue) || !subValue.length
|
|
193
|
-
? undefined
|
|
194
|
-
: this.sortingController.toSorted(subValue);
|
|
195
|
-
}
|
|
196
|
-
hasDetail(data) {
|
|
197
|
-
return !!this.getSubData(data) || (this.hasDataDetail?.(data) ??
|
|
198
|
-
[undefined, html.nothing].includes(this.getRowDetailsTemplate?.(data)) === false);
|
|
176
|
+
return this.detailsController.hasDetails;
|
|
199
177
|
}
|
|
200
178
|
get allRowDetailsOpen() {
|
|
201
|
-
return this.
|
|
179
|
+
return this.detailsController.areAllOpen;
|
|
202
180
|
}
|
|
203
|
-
openRowDetails() {
|
|
204
|
-
|
|
181
|
+
openRowDetails(...parameters) {
|
|
182
|
+
return this.detailsController.openAll(...parameters);
|
|
205
183
|
}
|
|
206
|
-
closeRowDetails() {
|
|
207
|
-
this.
|
|
184
|
+
closeRowDetails(...parameters) {
|
|
185
|
+
return this.detailsController.closeAll(...parameters);
|
|
208
186
|
}
|
|
209
|
-
toggleRowDetails() {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
this.openRowDetails();
|
|
215
|
-
}
|
|
187
|
+
toggleRowDetails(...parameters) {
|
|
188
|
+
return this.detailsController.toggleAll(...parameters);
|
|
189
|
+
}
|
|
190
|
+
getSorting(...parameters) {
|
|
191
|
+
return this.sortingController.get(...parameters);
|
|
216
192
|
}
|
|
217
193
|
sort(...parameters) {
|
|
218
|
-
this.sortingController.set(...parameters);
|
|
194
|
+
return this.sortingController.set(...parameters);
|
|
219
195
|
}
|
|
220
196
|
unsort(...parameters) {
|
|
221
|
-
this.sortingController.reset(...parameters);
|
|
197
|
+
return this.sortingController.reset(...parameters);
|
|
222
198
|
}
|
|
223
|
-
setColumns(
|
|
224
|
-
this.
|
|
225
|
-
this.columnsChange.dispatch(columns);
|
|
226
|
-
this.requestUpdate();
|
|
199
|
+
setColumns(...parameters) {
|
|
200
|
+
return this.columnsController.setColumns(...parameters);
|
|
227
201
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
this.extractColumns();
|
|
231
|
-
}
|
|
202
|
+
extractColumns(...parameters) {
|
|
203
|
+
return this.columnsController.extractColumns(...parameters);
|
|
232
204
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
? this.elementExtractedColumns
|
|
236
|
-
: this.autoGeneratedColumns;
|
|
237
|
-
this.setColumns(extractedColumns);
|
|
205
|
+
get visibleColumns() {
|
|
206
|
+
return this.columnsController.visibleColumns;
|
|
238
207
|
}
|
|
239
208
|
getRow(data) {
|
|
240
209
|
return this.rows.find(r => r.data === data);
|
|
@@ -316,7 +285,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
316
285
|
return value;
|
|
317
286
|
}
|
|
318
287
|
get dataLength() {
|
|
319
|
-
return this.
|
|
288
|
+
return this.renderDataRecords.length;
|
|
320
289
|
}
|
|
321
290
|
get maxPage() {
|
|
322
291
|
return Math.ceil(this.dataLength / this.pageSize);
|
|
@@ -345,7 +314,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
345
314
|
}
|
|
346
315
|
firstUpdated(props) {
|
|
347
316
|
super.firstUpdated(props);
|
|
348
|
-
this.extractColumnsIfNotSetExplicitly();
|
|
349
317
|
this.cellEdit.subscribe(() => this.requestUpdate());
|
|
350
318
|
this.setPage(1);
|
|
351
319
|
}
|
|
@@ -366,6 +334,8 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
366
334
|
|
|
367
335
|
--mo-data-grid-sticky-part-color: var(--mo-color-surface);
|
|
368
336
|
|
|
337
|
+
--mo-data-grid-alternating-background: color-mix(in srgb, black var(--mo-data-grid-alternating-background-transparency), transparent 0%);
|
|
338
|
+
|
|
369
339
|
--mo-data-grid-selection-background: color-mix(in srgb, var(--mo-color-accent), transparent 50%);
|
|
370
340
|
display: flex;
|
|
371
341
|
flex-direction: column;
|
|
@@ -374,11 +344,11 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
374
344
|
}
|
|
375
345
|
|
|
376
346
|
:host([data-theme=light]) {
|
|
377
|
-
--mo-data-grid-alternating-background
|
|
347
|
+
--mo-data-grid-alternating-background-transparency : 5%;
|
|
378
348
|
}
|
|
379
349
|
|
|
380
350
|
:host([data-theme=dark]) {
|
|
381
|
-
--mo-data-grid-alternating-background:
|
|
351
|
+
--mo-data-grid-alternating-background-transparency: 20%;
|
|
382
352
|
}
|
|
383
353
|
|
|
384
354
|
:host([preventVerticalContentScroll]) mo-scroller {
|
|
@@ -586,7 +556,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
586
556
|
`;
|
|
587
557
|
}
|
|
588
558
|
get dataGridTemplate() {
|
|
589
|
-
this.provideCssColumnsProperties();
|
|
590
559
|
this.toggleAttribute('hasDetails', this.hasDetails);
|
|
591
560
|
return html `
|
|
592
561
|
<mo-grid rows='* auto' ${style({ position: 'relative', height: '100%' })}>
|
|
@@ -610,34 +579,17 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
610
579
|
}
|
|
611
580
|
get rowsTemplate() {
|
|
612
581
|
return html `
|
|
613
|
-
${repeat(this.
|
|
582
|
+
${repeat(this.renderDataRecords, record => record.data, (record, index) => this.getRowTemplate(record, index))}
|
|
614
583
|
`;
|
|
615
584
|
}
|
|
616
|
-
getRowTemplate(
|
|
585
|
+
getRowTemplate(dataRecord, index = 0) {
|
|
617
586
|
return staticHtml `
|
|
618
587
|
<${this.rowElementTag} part='row'
|
|
619
|
-
.
|
|
620
|
-
|
|
621
|
-
.data=${data}
|
|
622
|
-
index=${ifDefined(index)}
|
|
623
|
-
?data-grid-has-details=${this.hasDetails}
|
|
624
|
-
?selected=${live(this.selectedData.includes(data))}
|
|
625
|
-
?detailsOpen=${live(this.openDetailedData.includes(data))}
|
|
626
|
-
@detailsOpenChange=${(event) => this.handleRowDetailsOpenChange(data, event.detail)}
|
|
588
|
+
.dataRecord=${dataRecord}
|
|
589
|
+
?data-has-alternating-background=${this.hasAlternatingBackground && index % 2 === 1}
|
|
627
590
|
></${this.rowElementTag}>
|
|
628
591
|
`;
|
|
629
592
|
}
|
|
630
|
-
handleRowDetailsOpenChange(data, open) {
|
|
631
|
-
if (this.hasDetail(data) === false) {
|
|
632
|
-
return;
|
|
633
|
-
}
|
|
634
|
-
if (open && this.multipleDetails === false) {
|
|
635
|
-
this.closeRowDetails();
|
|
636
|
-
}
|
|
637
|
-
this.openDetailedData = open
|
|
638
|
-
? [...this.openDetailedData, data]
|
|
639
|
-
: this.openDetailedData.filter(d => d !== data);
|
|
640
|
-
}
|
|
641
593
|
get footerTemplate() {
|
|
642
594
|
return html `
|
|
643
595
|
<mo-flex ${style({ position: 'relative' })}>
|
|
@@ -652,9 +604,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
652
604
|
</mo-flex>
|
|
653
605
|
`;
|
|
654
606
|
}
|
|
655
|
-
get sumsData() {
|
|
656
|
-
return this.selectedData.length > 0 ? this.selectedData : this.renderData;
|
|
657
|
-
}
|
|
658
607
|
get sumsTemplate() {
|
|
659
608
|
return html `
|
|
660
609
|
${this.columns.map(c => c.sumTemplate)}
|
|
@@ -728,35 +677,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
728
677
|
></mo-icon-button>
|
|
729
678
|
`;
|
|
730
679
|
}
|
|
731
|
-
// The reason for not doing this in the CSS is that we need to trim all the 0px values out of the columns
|
|
732
|
-
// because the 'grid column gap' renders a gap no matter if the column is 0px or not
|
|
733
|
-
provideCssColumnsProperties() {
|
|
734
|
-
this.style.setProperty('--mo-data-grid-content-width', this.dataColumnsWidths.join(' '));
|
|
735
|
-
this.style.setProperty('--mo-data-grid-columns', this.columnsWidths.join(' '));
|
|
736
|
-
}
|
|
737
|
-
get columnsWidths() {
|
|
738
|
-
return [
|
|
739
|
-
this.detailsColumnWidth,
|
|
740
|
-
this.selectionColumnWidth,
|
|
741
|
-
...this.dataColumnsWidths,
|
|
742
|
-
'1fr',
|
|
743
|
-
this.moreColumnWidth
|
|
744
|
-
].filter((c) => c !== undefined);
|
|
745
|
-
}
|
|
746
|
-
get detailsColumnWidth() {
|
|
747
|
-
return !this.hasDetails ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-details-width');
|
|
748
|
-
}
|
|
749
|
-
get selectionColumnWidth() {
|
|
750
|
-
return !this.hasSelection || this.selectionCheckboxesHidden ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-selection-width');
|
|
751
|
-
}
|
|
752
|
-
get dataColumnsWidths() {
|
|
753
|
-
return this.visibleColumns
|
|
754
|
-
.map(c => c.width)
|
|
755
|
-
.filter((c) => c !== undefined);
|
|
756
|
-
}
|
|
757
|
-
get moreColumnWidth() {
|
|
758
|
-
return this.sidePanelHidden && !this.hasContextMenu ? undefined : window.getComputedStyle(this).getPropertyValue('--mo-data-grid-column-more-width');
|
|
759
|
-
}
|
|
760
680
|
handleScroll(e) {
|
|
761
681
|
if (this.preventFabCollapse === false) {
|
|
762
682
|
if (!e.composed) {
|
|
@@ -775,88 +695,50 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
775
695
|
handlePointerDown(event) {
|
|
776
696
|
this.rows.forEach(row => row.cells.forEach(cell => cell.handlePointerDown(event)));
|
|
777
697
|
}
|
|
778
|
-
getSorting() {
|
|
779
|
-
return this.sortingController.get();
|
|
780
|
-
}
|
|
781
698
|
*getFlattenedData() {
|
|
782
699
|
if (!this.subDataGridDataSelector) {
|
|
783
|
-
yield* this.data.map(
|
|
700
|
+
yield* this.sortingController.toSortedBy(this.data.map((data, index) => new DataRecord(this, { level: 0, index, data })), ({ data }) => data);
|
|
784
701
|
return;
|
|
785
702
|
}
|
|
786
703
|
const flatten = (data, level = 0) => {
|
|
787
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));
|
|
788
710
|
return [
|
|
789
|
-
{ data, level },
|
|
790
|
-
|
|
791
|
-
? []
|
|
792
|
-
: subData.flatMap(d => flatten(d, level + 1))
|
|
711
|
+
new DataRecord(this, { data, level, subData: subDataRecords }),
|
|
712
|
+
...(subDataRecords ?? [])
|
|
793
713
|
];
|
|
794
714
|
};
|
|
795
|
-
for (const data of this.data) {
|
|
715
|
+
for (const data of this.sortingController.toSorted(this.data)) {
|
|
796
716
|
yield* flatten(data);
|
|
797
717
|
}
|
|
798
718
|
return;
|
|
799
719
|
}
|
|
800
|
-
get
|
|
801
|
-
return [...this.getFlattenedData()]
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
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
|
+
});
|
|
805
727
|
}
|
|
806
|
-
get
|
|
728
|
+
get renderDataRecords() {
|
|
729
|
+
const rootRecords = this.dataRecords.filter(r => r.level === 0);
|
|
807
730
|
if (this.hasPagination === false) {
|
|
808
|
-
return
|
|
731
|
+
return rootRecords;
|
|
809
732
|
}
|
|
810
|
-
const from =
|
|
811
|
-
const to = this.
|
|
812
|
-
return
|
|
733
|
+
const from = this.dataSkip;
|
|
734
|
+
const to = this.dataSkip + this.dataTake;
|
|
735
|
+
return rootRecords.slice(from, to);
|
|
813
736
|
}
|
|
814
|
-
get
|
|
815
|
-
|
|
816
|
-
return [];
|
|
817
|
-
}
|
|
818
|
-
const children = this.columnsSlot.children.length > 0 ? Array.from(this.columnsSlot.children) : undefined;
|
|
819
|
-
const assigned = this.columnsSlot.assignedElements().length > 0 ? Array.from(this.columnsSlot.assignedElements()) : undefined;
|
|
820
|
-
return Array.from(assigned ?? children ?? [])
|
|
821
|
-
.filter((c) => {
|
|
822
|
-
const isColumn = c instanceof DataGridColumnComponent;
|
|
823
|
-
if (isColumn) {
|
|
824
|
-
c.dataGrid = this;
|
|
825
|
-
}
|
|
826
|
-
return isColumn;
|
|
827
|
-
})
|
|
828
|
-
.map(c => c.column);
|
|
829
|
-
}
|
|
830
|
-
get autoGeneratedColumns() {
|
|
831
|
-
if (!this.dataLength) {
|
|
832
|
-
return [];
|
|
833
|
-
}
|
|
834
|
-
const getDefaultColumnElement = (value) => {
|
|
835
|
-
switch (typeof value) {
|
|
836
|
-
case 'number':
|
|
837
|
-
case 'bigint':
|
|
838
|
-
return 'mo-data-grid-column-number';
|
|
839
|
-
case 'boolean':
|
|
840
|
-
return 'mo-data-grid-column-boolean';
|
|
841
|
-
default:
|
|
842
|
-
return 'mo-data-grid-column-text';
|
|
843
|
-
}
|
|
844
|
-
};
|
|
845
|
-
const sampleData = this.data[0];
|
|
846
|
-
return Object.keys(sampleData || {})
|
|
847
|
-
.filter(key => !key.startsWith('_'))
|
|
848
|
-
.map(key => {
|
|
849
|
-
const columnElement = document.createElement(getDefaultColumnElement(getValueByKeyPath(sampleData, key)));
|
|
850
|
-
columnElement.heading = key.replace(/([A-Z])/g, ' $1').charAt(0).toUpperCase() + key.replace(/([A-Z])/g, ' $1').slice(1);
|
|
851
|
-
columnElement.dataSelector = key;
|
|
852
|
-
columnElement.dataGrid = this;
|
|
853
|
-
const column = columnElement.column;
|
|
854
|
-
columnElement.remove();
|
|
855
|
-
return column;
|
|
856
|
-
});
|
|
737
|
+
get dataSkip() {
|
|
738
|
+
return (this.page - 1) * this.pageSize;
|
|
857
739
|
}
|
|
858
|
-
get
|
|
859
|
-
return this.
|
|
740
|
+
get dataTake() {
|
|
741
|
+
return this.pageSize;
|
|
860
742
|
}
|
|
861
743
|
};
|
|
862
744
|
DataGrid.rowHeight = new LocalStorage('DataGrid.RowHeight', 35);
|
|
@@ -909,12 +791,7 @@ __decorate([
|
|
|
909
791
|
property({ type: Array })
|
|
910
792
|
], DataGrid.prototype, "data", void 0);
|
|
911
793
|
__decorate([
|
|
912
|
-
property({
|
|
913
|
-
type: Array,
|
|
914
|
-
updated() {
|
|
915
|
-
this.columns.forEach(column => column.dataGrid = this);
|
|
916
|
-
}
|
|
917
|
-
})
|
|
794
|
+
property({ type: Array })
|
|
918
795
|
], DataGrid.prototype, "columns", void 0);
|
|
919
796
|
__decorate([
|
|
920
797
|
property({ type: Boolean, reflect: true })
|
|
@@ -964,9 +841,6 @@ __decorate([
|
|
|
964
841
|
__decorate([
|
|
965
842
|
property({ type: Boolean })
|
|
966
843
|
], DataGrid.prototype, "detailsOnClick", void 0);
|
|
967
|
-
__decorate([
|
|
968
|
-
property({ type: Array })
|
|
969
|
-
], DataGrid.prototype, "openDetailedData", void 0);
|
|
970
844
|
__decorate([
|
|
971
845
|
property({ type: Object })
|
|
972
846
|
], DataGrid.prototype, "getRowContextMenuTemplate", void 0);
|
|
@@ -1030,9 +904,6 @@ __decorate([
|
|
|
1030
904
|
__decorate([
|
|
1031
905
|
query('mo-data-grid-side-panel')
|
|
1032
906
|
], DataGrid.prototype, "sidePanel", void 0);
|
|
1033
|
-
__decorate([
|
|
1034
|
-
query('slot[name=column]')
|
|
1035
|
-
], DataGrid.prototype, "columnsSlot", void 0);
|
|
1036
907
|
__decorate([
|
|
1037
908
|
eventOptions({ passive: true })
|
|
1038
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"}
|
package/dist/DataGridColumn.js
CHANGED
|
@@ -36,7 +36,8 @@ export class DataGridColumn {
|
|
|
36
36
|
if (!this.dataGrid || this.sumHeading === undefined || this.getSumTemplate === undefined) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
-
const
|
|
39
|
+
const sumsData = this.dataGrid.selectedData.length ? this.dataGrid.selectedData : this.dataGrid.renderDataRecords.map(r => r.data);
|
|
40
|
+
const sum = sumsData
|
|
40
41
|
.map(data => parseFloat(getValueByKeyPath(data, this.dataSelector)))
|
|
41
42
|
.filter(n => isNaN(n) === false)
|
|
42
43
|
.reduce(((a, b) => a + b), 0)
|
|
@@ -58,8 +59,8 @@ export class DataGridColumn {
|
|
|
58
59
|
.map(c => c.widthInPixels)
|
|
59
60
|
.filter(x => x !== undefined)
|
|
60
61
|
.reduce((a, b) => a + b, 0);
|
|
61
|
-
const start = `${dataGrid.selectionColumnWidthInPixels + dataGrid.detailsColumnWidthInPixels + calculate('start')}px`;
|
|
62
|
-
const end = `${calculate('end') + dataGrid.moreColumnWidthInPixels}px`;
|
|
62
|
+
const start = `${dataGrid.columnsController.selectionColumnWidthInPixels + dataGrid.columnsController.detailsColumnWidthInPixels + calculate('start')}px`;
|
|
63
|
+
const end = `${calculate('end') + dataGrid.columnsController.moreColumnWidthInPixels}px`;
|
|
63
64
|
switch (this.sticky) {
|
|
64
65
|
case 'start':
|
|
65
66
|
return `${start} auto`;
|