@3mo/data-grid 0.4.23 → 0.4.24
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/CsvGenerator.d.ts +1 -1
- package/dist/CsvGenerator.d.ts.map +1 -1
- package/dist/DataGrid.d.ts +7 -9
- package/dist/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +13 -18
- package/dist/DataGridSelectionController.d.ts +20 -0
- package/dist/DataGridSelectionController.d.ts.map +1 -0
- package/dist/DataGridSelectionController.js +78 -0
- package/dist/rows/DataGridRow.d.ts.map +1 -1
- package/dist/rows/DataGridRow.js +4 -42
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/CsvGenerator.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CsvGenerator.d.ts","sourceRoot":"","sources":["../CsvGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,qBAAa,YAAY;IACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"CsvGenerator.d.ts","sourceRoot":"","sources":["../CsvGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,qBAAa,YAAY;IACxB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CAWrD"}
|
package/dist/DataGrid.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { SlotController } from '@3mo/slot-controller';
|
|
|
5
5
|
import { ThemeController } from '@3mo/theme';
|
|
6
6
|
import { MediaQueryController } from '@3mo/media-query-observer';
|
|
7
7
|
import { DataGridSidePanelTab, type ColumnDefinition, type DataGridCell, type DataGridHeader, type DataGridRow } from './index.js';
|
|
8
|
+
import { DataGridSelectionController } from './DataGridSelectionController.js';
|
|
8
9
|
export type DataGridPagination = 'auto' | number;
|
|
9
10
|
export declare enum DataGridSelectionMode {
|
|
10
11
|
None = "none",
|
|
@@ -151,19 +152,16 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
151
152
|
private readonly footer?;
|
|
152
153
|
private readonly sidePanel?;
|
|
153
154
|
private readonly columnsSlot?;
|
|
154
|
-
lastActiveSelection?: {
|
|
155
|
-
data: TData;
|
|
156
|
-
selected: boolean;
|
|
157
|
-
};
|
|
158
155
|
setPage(page: number): void;
|
|
159
156
|
handlePageChange(page: number): void;
|
|
160
157
|
setPagination(pagination?: DataGridPagination): void;
|
|
161
158
|
handlePaginationChange(pagination?: DataGridPagination): void;
|
|
162
159
|
setData(data: Array<TData>, selectionBehavior?: DataGridSelectionBehaviorOnDataChange): void;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
get hasSelection(): boolean;
|
|
161
|
+
selectAll(...parameters: Parameters<typeof this.selectionController.selectAll>): void;
|
|
162
|
+
deselectAll(...parameters: Parameters<typeof this.selectionController.deselectAll>): void;
|
|
163
|
+
select(...parameters: Parameters<typeof this.selectionController.select>): void;
|
|
164
|
+
isSelectable(...parameters: Parameters<typeof this.selectionController.isSelectable>): boolean;
|
|
167
165
|
get detailedData(): TData[];
|
|
168
166
|
get hasDetails(): boolean;
|
|
169
167
|
hasDetail(data: TData): boolean;
|
|
@@ -180,7 +178,6 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
180
178
|
handleEdit(data: TData, dataSelector: KeyPathOf<TData>, value: KeyPathValueOf<TData, KeyPathOf<TData>> | undefined): void;
|
|
181
179
|
navigateToSidePanelTab(tab?: DataGridSidePanelTab): void;
|
|
182
180
|
exportExcelFile(): void;
|
|
183
|
-
get hasSelection(): boolean;
|
|
184
181
|
get hasContextMenu(): boolean;
|
|
185
182
|
get toolbarElements(): Element[];
|
|
186
183
|
get filterElements(): Element[];
|
|
@@ -199,6 +196,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
199
196
|
protected readonly instanceofAttributeController: InstanceofAttributeController;
|
|
200
197
|
protected readonly smallScreenObserverController: MediaQueryController;
|
|
201
198
|
readonly themeController: ThemeController;
|
|
199
|
+
readonly selectionController: DataGridSelectionController<TData>;
|
|
202
200
|
protected updated(...parameters: Parameters<Component['updated']>): void;
|
|
203
201
|
protected firstUpdated(props: PropertyValues): void;
|
|
204
202
|
static get styles(): import("@a11d/lit").CSSResult;
|
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,EAAqC,cAAc,EAA+C,kBAAkB,EAAS,MAAM,WAAW,CAAA;AAErL,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAIhE,OAAO,EAAgC,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAuB,KAAK,cAAc,EAAE,KAAK,WAAW,EAA0B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../DataGrid.ts"],"names":[],"mappings":"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"}
|
package/dist/DataGrid.js
CHANGED
|
@@ -13,6 +13,7 @@ import { observeResize } from '@3mo/resize-observer';
|
|
|
13
13
|
import { Localizer } from '@3mo/localization';
|
|
14
14
|
import { ContextMenu } from '@3mo/context-menu';
|
|
15
15
|
import { CsvGenerator, DataGridColumn, DataGridSidePanelTab } from './index.js';
|
|
16
|
+
import { DataGridSelectionController } from './DataGridSelectionController.js';
|
|
16
17
|
Localizer.register('en', {
|
|
17
18
|
'${count:pluralityNumber} entries selected': [
|
|
18
19
|
'1 entry selected',
|
|
@@ -150,6 +151,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
150
151
|
this.instanceofAttributeController = new InstanceofAttributeController(this);
|
|
151
152
|
this.smallScreenObserverController = new MediaQueryController(this, '(max-width: 768px)');
|
|
152
153
|
this.themeController = new ThemeController(this);
|
|
154
|
+
this.selectionController = new DataGridSelectionController(this);
|
|
153
155
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
154
156
|
this.lastScrollElementTop = 0;
|
|
155
157
|
this.handleScroll = (e) => {
|
|
@@ -195,24 +197,20 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
195
197
|
}
|
|
196
198
|
this.dataChange.dispatch(data);
|
|
197
199
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
this.select([...this.data]);
|
|
201
|
-
}
|
|
200
|
+
get hasSelection() {
|
|
201
|
+
return this.selectionController.hasSelection;
|
|
202
202
|
}
|
|
203
|
-
|
|
204
|
-
this.
|
|
203
|
+
selectAll(...parameters) {
|
|
204
|
+
return this.selectionController.selectAll(...parameters);
|
|
205
205
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
const selectableData = data.filter(d => this.isSelectable(d));
|
|
209
|
-
this.selectedData = selectableData;
|
|
210
|
-
this.selectionChange.dispatch(selectableData);
|
|
211
|
-
}
|
|
206
|
+
deselectAll(...parameters) {
|
|
207
|
+
return this.selectionController.deselectAll(...parameters);
|
|
212
208
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
209
|
+
select(...parameters) {
|
|
210
|
+
return this.selectionController.select(...parameters);
|
|
211
|
+
}
|
|
212
|
+
isSelectable(...parameters) {
|
|
213
|
+
return this.selectionController.isSelectable(...parameters);
|
|
216
214
|
}
|
|
217
215
|
get detailedData() {
|
|
218
216
|
return this.data.filter(data => this.hasDetail(data));
|
|
@@ -291,9 +289,6 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
291
289
|
throw error;
|
|
292
290
|
}
|
|
293
291
|
}
|
|
294
|
-
get hasSelection() {
|
|
295
|
-
return this.selectionMode !== DataGridSelectionMode.None;
|
|
296
|
-
}
|
|
297
292
|
get hasContextMenu() {
|
|
298
293
|
return this.getRowContextMenuTemplate !== undefined;
|
|
299
294
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Controller } from '@a11d/lit';
|
|
2
|
+
import { DataGrid } from './index.js';
|
|
3
|
+
export declare class DataGridSelectionController<TData> extends Controller {
|
|
4
|
+
private readonly dataGrid;
|
|
5
|
+
private lastActiveSelection?;
|
|
6
|
+
constructor(dataGrid: DataGrid<TData, any>);
|
|
7
|
+
private get mode();
|
|
8
|
+
private get data();
|
|
9
|
+
private set data(value);
|
|
10
|
+
private get selectedData();
|
|
11
|
+
private set selectedData(value);
|
|
12
|
+
get hasSelection(): boolean;
|
|
13
|
+
isSelectable(data: TData): boolean;
|
|
14
|
+
selectAll(): void;
|
|
15
|
+
deselectAll(): void;
|
|
16
|
+
select(data: Array<TData>): void;
|
|
17
|
+
setSelection(data: TData, selected: boolean): void;
|
|
18
|
+
private updateSelectionForMultipleModeWithShift;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=DataGridSelectionController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGridSelectionController.d.ts","sourceRoot":"","sources":["../DataGridSelectionController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAA;AAE5D,qBAAa,2BAA2B,CAAC,KAAK,CAAE,SAAQ,UAAU;IAGrD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,mBAAmB,CAAC,CAAoC;gBAEnC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IAI3D,OAAO,KAAK,IAAI,GAAyC;IAEzD,OAAO,KAAK,IAAI,GAAgC;IAChD,OAAO,KAAK,IAAI,QAAoC;IAEpD,OAAO,KAAK,YAAY,GAAwC;IAChE,OAAO,KAAK,YAAY,QAA4C;IAEpE,IAAI,YAAY,YAEf;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;IAIxB,SAAS;IAMT,WAAW;IAIX,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;IAQzB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO;IA+B3C,OAAO,CAAC,uCAAuC;CAW/C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { KeyboardController } from '@3mo/keyboard-controller';
|
|
2
|
+
import { Controller } from '@a11d/lit';
|
|
3
|
+
import { DataGridSelectionMode } from './index.js';
|
|
4
|
+
export class DataGridSelectionController extends Controller {
|
|
5
|
+
constructor(dataGrid) {
|
|
6
|
+
super(dataGrid);
|
|
7
|
+
this.dataGrid = dataGrid;
|
|
8
|
+
}
|
|
9
|
+
get mode() { return this.dataGrid.selectionMode; }
|
|
10
|
+
get data() { return this.dataGrid.data; }
|
|
11
|
+
set data(data) { this.dataGrid.data = data; }
|
|
12
|
+
get selectedData() { return this.dataGrid.selectedData; }
|
|
13
|
+
set selectedData(data) { this.dataGrid.selectedData = data; }
|
|
14
|
+
get hasSelection() {
|
|
15
|
+
return this.mode !== DataGridSelectionMode.None;
|
|
16
|
+
}
|
|
17
|
+
isSelectable(data) {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
return (_c = (_b = (_a = this.dataGrid).isDataSelectable) === null || _b === void 0 ? void 0 : _b.call(_a, data)) !== null && _c !== void 0 ? _c : true;
|
|
20
|
+
}
|
|
21
|
+
selectAll() {
|
|
22
|
+
if (this.mode === DataGridSelectionMode.Multiple) {
|
|
23
|
+
this.select([...this.data]);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
deselectAll() {
|
|
27
|
+
this.select([]);
|
|
28
|
+
}
|
|
29
|
+
select(data) {
|
|
30
|
+
if (this.hasSelection) {
|
|
31
|
+
const selectableData = data.filter(d => this.dataGrid.isSelectable(d));
|
|
32
|
+
this.selectedData = selectableData;
|
|
33
|
+
this.dataGrid.selectionChange.dispatch(selectableData);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
setSelection(data, selected) {
|
|
37
|
+
if (!this.hasSelection || !this.dataGrid.isSelectable(data)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const lastActiveSelection = this.lastActiveSelection;
|
|
41
|
+
let dataToSelect = this.selectedData;
|
|
42
|
+
if (this.mode === DataGridSelectionMode.Multiple && KeyboardController.shift && lastActiveSelection) {
|
|
43
|
+
dataToSelect = this.updateSelectionForMultipleModeWithShift(dataToSelect, data);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
if (selected) {
|
|
47
|
+
if (this.mode === DataGridSelectionMode.Multiple) {
|
|
48
|
+
if (this.dataGrid.selectionCheckboxesHidden) {
|
|
49
|
+
dataToSelect = [data];
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
dataToSelect = [...dataToSelect, data];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (this.mode === DataGridSelectionMode.Single) {
|
|
56
|
+
dataToSelect = [data];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
dataToSelect = dataToSelect.filter(d => d !== data);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.lastActiveSelection = { data, selected };
|
|
64
|
+
const deduplicatedDataToSelect = [...new Set(dataToSelect)];
|
|
65
|
+
this.select(deduplicatedDataToSelect);
|
|
66
|
+
}
|
|
67
|
+
updateSelectionForMultipleModeWithShift(dataToSelect, data) {
|
|
68
|
+
const lastActiveSelection = this.lastActiveSelection;
|
|
69
|
+
const indexes = [
|
|
70
|
+
this.data.findIndex(data => data === lastActiveSelection.data),
|
|
71
|
+
this.data.findIndex(d => d === data),
|
|
72
|
+
].sort((a, b) => a - b);
|
|
73
|
+
const range = this.data.slice(indexes[0], indexes[1] + 1);
|
|
74
|
+
return lastActiveSelection.selected
|
|
75
|
+
? [...dataToSelect, ...range]
|
|
76
|
+
: dataToSelect.filter(d => range.includes(d) === false);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridRow.d.ts","sourceRoot":"","sources":["../../rows/DataGridRow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAyB,kBAAkB,EAAqB,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"DataGridRow.d.ts","sourceRoot":"","sources":["../../rows/DataGridRow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAyB,kBAAkB,EAAqB,MAAM,WAAW,CAAA;AAElH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAyD,MAAM,aAAa,CAAA;AAE3G;;;;;;;;GAQG;AACH,8BAAsB,WAAW,CAAC,KAAK,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IACzG,QAAQ,CAAC,iBAAiB,EAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAE/B,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAA;IAEpE,QAAQ,EAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAC3C,IAAI,EAAG,KAAK,CAAA;IACI,QAAQ,UAAQ;IAazD,WAAW,UAAQ;IAEsB,SAAS,CAAC,eAAe,UAAQ;IAE7E,IAAI,cAAc,gCAEjB;cAEkB,WAAW;IAIrB,OAAO,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAQhE,SAAS,KAAK,UAAU,YAEvB;IAED,WAAoB,MAAM,kCAwFzB;IAED,cAAuB,QAAQ,uBAY9B;IAED,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,kBAAkB,CAAA;IAExD,SAAS,KAAK,uBAAuB,uBAepC;IAED,SAAS,KAAK,iBAAiB,uBAc9B;IAED,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAUlG,SAAS,KAAK,6BAA6B,uBAS1C;IAED,SAAS,KAAK,eAAe,uBAK5B;IAED,OAAO,CAAC,YAAY;IAKpB,SAAS,CAAC,kBAAkB;cAYZ,wBAAwB;cAKxB,wBAAwB;YAK1B,yCAAyC;IAQjD,eAAe,CAAC,UAAU,CAAC,EAAE,UAAU;IAwB7C,OAAO,KAAK,eAAe,GAI1B;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAEK,gBAAgB;IAKtB,SAAS,CAAC,aAAa;IAIvB,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO;CAIvC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;KACxC;CACD"}
|
package/dist/rows/DataGridRow.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { css, property, Component, html, queryAll, style, LitElement, event } from '@a11d/lit';
|
|
3
3
|
import { ContextMenu } from '@3mo/context-menu';
|
|
4
|
-
import { KeyboardController } from '@3mo/keyboard-controller';
|
|
5
4
|
import { DataGridPrimaryContextMenuItem, DataGridSelectionMode } from '../index.js';
|
|
6
5
|
/**
|
|
7
6
|
* @attr dataGrid
|
|
@@ -45,7 +44,7 @@ export class DataGridRow extends Component {
|
|
|
45
44
|
width: 100%;
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
:host(:hover) {
|
|
47
|
+
:host(:hover) #contentContainer {
|
|
49
48
|
color: inherit;
|
|
50
49
|
background: var(--mo-color-accent-transparent) !important;
|
|
51
50
|
}
|
|
@@ -69,10 +68,6 @@ export class DataGridRow extends Component {
|
|
|
69
68
|
transition: 250ms;
|
|
70
69
|
}
|
|
71
70
|
|
|
72
|
-
:host([detailsOpen]) #contentContainer {
|
|
73
|
-
background: var(--mo-data-grid-row-background-on-opened-detail-element, var(--mo-color-accent-transparent));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
71
|
:host([selected]) #contentContainer, :host([contextMenuOpen]) #contentContainer {
|
|
77
72
|
background: var(--mo-data-grid-selection-background) !important;
|
|
78
73
|
}
|
|
@@ -200,42 +195,9 @@ export class DataGridRow extends Component {
|
|
|
200
195
|
? html.nothing
|
|
201
196
|
: (_c = (_b = (_a = this.dataGrid).getRowDetailsTemplate) === null || _b === void 0 ? void 0 : _b.call(_a, this.data)) !== null && _c !== void 0 ? _c : html.nothing;
|
|
202
197
|
}
|
|
203
|
-
setSelection(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
const lastActiveSelection = this.dataGrid.lastActiveSelection;
|
|
207
|
-
let dataToSelect = this.dataGrid.selectedData;
|
|
208
|
-
if (this.dataGrid.selectionMode === DataGridSelectionMode.Multiple && KeyboardController.shift && lastActiveSelection) {
|
|
209
|
-
const indexes = [
|
|
210
|
-
this.dataGrid.data.findIndex(data => data === lastActiveSelection.data),
|
|
211
|
-
this.dataGrid.data.findIndex(data => data === this.data),
|
|
212
|
-
].sort((a, b) => a - b);
|
|
213
|
-
const range = this.dataGrid.data.slice(indexes[0], indexes[1] + 1);
|
|
214
|
-
dataToSelect = lastActiveSelection.selected
|
|
215
|
-
? [...dataToSelect, ...range]
|
|
216
|
-
: dataToSelect.filter(d => range.includes(d) === false);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
if (value) {
|
|
220
|
-
if (this.dataGrid.selectionMode === DataGridSelectionMode.Multiple) {
|
|
221
|
-
if (this.dataGrid.selectionCheckboxesHidden) {
|
|
222
|
-
dataToSelect = [this.data];
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
dataToSelect = [...dataToSelect, this.data];
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else if (this.dataGrid.selectionMode === DataGridSelectionMode.Single) {
|
|
229
|
-
dataToSelect = [this.data];
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
dataToSelect = dataToSelect.filter(data => data !== this.data);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
this.dataGrid.lastActiveSelection = { data: this.data, selected: value };
|
|
237
|
-
this.dataGrid.select(dataToSelect.filter((value, index, self) => self.indexOf(value) === index));
|
|
238
|
-
}
|
|
198
|
+
setSelection(selected) {
|
|
199
|
+
this.selected = selected;
|
|
200
|
+
this.dataGrid.selectionController.setSelection(this.data, selected);
|
|
239
201
|
}
|
|
240
202
|
handleContentClick() {
|
|
241
203
|
if (this.dataGrid.selectOnClick || this.dataGrid.selectionCheckboxesHidden) {
|