@3mo/data-grid 0.10.4 → 0.10.6-beta.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/CsvGenerator.d.ts +4 -1
- package/dist/CsvGenerator.d.ts.map +1 -1
- package/dist/CsvGenerator.js +67 -23
- package/dist/DataGrid.d.ts +3 -2
- package/dist/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +47 -8
- package/dist/DataGridColumn.d.ts +2 -0
- package/dist/DataGridColumn.d.ts.map +1 -1
- package/dist/DataGridFooter.d.ts.map +1 -1
- package/dist/DataGridFooter.js +6 -23
- package/dist/DataGridPrimaryContextMenuItem.js +1 -1
- package/dist/columns/DataGridColumnBoolean.d.ts +1 -0
- package/dist/columns/DataGridColumnBoolean.d.ts.map +1 -1
- package/dist/columns/DataGridColumnBoolean.js +3 -0
- package/dist/columns/DataGridColumnComponent.d.ts +2 -0
- package/dist/columns/DataGridColumnComponent.d.ts.map +1 -1
- package/dist/columns/DataGridColumnComponent.js +9 -0
- package/dist/columns/DataGridColumnImage.d.ts +2 -0
- package/dist/columns/DataGridColumnImage.d.ts.map +1 -1
- package/dist/columns/DataGridColumnImage.js +12 -5
- package/dist/columns/date-time/DataGridColumnDate.d.ts +1 -0
- package/dist/columns/date-time/DataGridColumnDate.d.ts.map +1 -1
- package/dist/columns/date-time/DataGridColumnDate.js +3 -0
- package/dist/columns/date-time/DataGridColumnDateTime.d.ts +1 -0
- package/dist/columns/date-time/DataGridColumnDateTime.d.ts.map +1 -1
- package/dist/columns/date-time/DataGridColumnDateTime.js +3 -0
- package/dist/columns/number/DataGridColumnCurrency.d.ts +3 -0
- package/dist/columns/number/DataGridColumnCurrency.d.ts.map +1 -1
- package/dist/columns/number/DataGridColumnCurrency.js +16 -0
- package/dist/columns/number/DataGridColumnPercent.d.ts +1 -0
- package/dist/columns/number/DataGridColumnPercent.d.ts.map +1 -1
- package/dist/columns/number/DataGridColumnPercent.js +3 -0
- package/dist/custom-elements.json +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/rows/DataGridRow.d.ts.map +1 -1
- package/dist/rows/DataGridRow.js +0 -9
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/dist/excel.svg.d.ts +0 -3
- package/dist/excel.svg.d.ts.map +0 -1
- package/dist/excel.svg.js +0 -48
package/dist/CsvGenerator.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { DataGrid } from './DataGrid.js';
|
|
2
2
|
export declare class CsvGenerator {
|
|
3
|
-
static
|
|
3
|
+
private static readonly itemsPerPage;
|
|
4
|
+
private static fetchAll;
|
|
5
|
+
private static sanitize;
|
|
6
|
+
static generate: <TData>(dataGrid: DataGrid<TData, any>, didUpdate?: (progress: number) => void) => Promise<void>;
|
|
4
7
|
}
|
|
5
8
|
//# sourceMappingURL=CsvGenerator.d.ts.map
|
|
@@ -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,
|
|
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,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAO;IAE3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAuBtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAUtB;IAED,MAAM,CAAC,QAAQ,GAAU,KAAK,YACnB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,cAClB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,mBA+CtC;CACD"}
|
package/dist/CsvGenerator.js
CHANGED
|
@@ -1,26 +1,70 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { Downloader } from '@3mo/downloader';
|
|
2
3
|
export class CsvGenerator {
|
|
3
|
-
static generate(dataGrid) {
|
|
4
|
-
const flattenedData = [...dataGrid['getFlattenedData']()];
|
|
5
|
-
const maxLevel = Math.max(...flattenedData.map(d => d.level));
|
|
6
|
-
const [firstHeading, ...restHeadings] = dataGrid.visibleColumns.map(c => c.heading);
|
|
7
|
-
const rows = [
|
|
8
|
-
[firstHeading, ...Array.from({ length: maxLevel }).fill(''), ...restHeadings],
|
|
9
|
-
...flattenedData.map(d => {
|
|
10
|
-
const nestedPadding = Array.from({ length: d.level }).fill('');
|
|
11
|
-
const childrenPadding = Array.from({ length: maxLevel - d.level }).fill('');
|
|
12
|
-
const [first, ...rest] = dataGrid.visibleColumns.flatMap(column => getValueByKeyPath(d.data, column.dataSelector));
|
|
13
|
-
return [
|
|
14
|
-
...nestedPadding,
|
|
15
|
-
first,
|
|
16
|
-
...childrenPadding,
|
|
17
|
-
...rest
|
|
18
|
-
];
|
|
19
|
-
})
|
|
20
|
-
];
|
|
21
|
-
const csv = rows.map(row => row.join(',')).join('\n');
|
|
22
|
-
// @ts-expect-error manifest can be undefined
|
|
23
|
-
const fileName = (globalThis.manifest?.short_name ?? '') + 'Export'.replace(/ /g, '_');
|
|
24
|
-
Downloader.download(`data:text/csv;charset=utf-8,${encodeURIComponent(csv)}`, `${fileName}.csv`);
|
|
25
|
-
}
|
|
26
4
|
}
|
|
5
|
+
_a = CsvGenerator;
|
|
6
|
+
CsvGenerator.itemsPerPage = 1000;
|
|
7
|
+
CsvGenerator.fetchAll = async (dataGrid, didUpdate) => {
|
|
8
|
+
if (!('fetch' in dataGrid)) {
|
|
9
|
+
return dataGrid.data;
|
|
10
|
+
}
|
|
11
|
+
const values = new Array();
|
|
12
|
+
const pages = Math.ceil(dataGrid.dataLength / _a.itemsPerPage);
|
|
13
|
+
for (let i = 0; i < pages; i++) {
|
|
14
|
+
const data = await dataGrid.fetch({
|
|
15
|
+
...dataGrid.parameters,
|
|
16
|
+
page: i + 1,
|
|
17
|
+
perPage: _a.itemsPerPage,
|
|
18
|
+
});
|
|
19
|
+
values.push(...data instanceof Array ? data : data.data);
|
|
20
|
+
didUpdate?.((i + 1) / pages);
|
|
21
|
+
}
|
|
22
|
+
return values;
|
|
23
|
+
};
|
|
24
|
+
CsvGenerator.sanitize = (value) => {
|
|
25
|
+
if (typeof value !== 'string') {
|
|
26
|
+
value = String(value);
|
|
27
|
+
}
|
|
28
|
+
if (value.includes(',')) {
|
|
29
|
+
value = `"${value.replaceAll('"', '""')}"`;
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
CsvGenerator.generate = async (dataGrid, didUpdate) => {
|
|
34
|
+
const flattenedData = [...dataGrid.flattenData(await _a.fetchAll(dataGrid, progress => didUpdate?.(progress * 0.5)))];
|
|
35
|
+
const progressEntryPoint = 'fetch' in dataGrid ? 0.5 : 0;
|
|
36
|
+
const progressScale = 'fetch' in dataGrid ? 0.5 : 1;
|
|
37
|
+
const maxLevel = Math.max(...flattenedData.map(d => d.level));
|
|
38
|
+
const [firstHeading, ...restHeadings] = dataGrid.visibleColumns
|
|
39
|
+
.flatMap(c => {
|
|
40
|
+
const formattedOrVoid = c.formatHeaderForCsv?.();
|
|
41
|
+
return formattedOrVoid === undefined ? [] : new Array().concat(formattedOrVoid).map(_a.sanitize);
|
|
42
|
+
});
|
|
43
|
+
const rows = [
|
|
44
|
+
[firstHeading, ...Array.from({ length: maxLevel }).fill(firstHeading), ...restHeadings],
|
|
45
|
+
...flattenedData.map(d => {
|
|
46
|
+
const nestedPadding = Array.from({ length: d.level }).fill('');
|
|
47
|
+
const childrenPadding = Array.from({ length: maxLevel - d.level }).fill('');
|
|
48
|
+
const [first, ...rest] = dataGrid.visibleColumns
|
|
49
|
+
.flatMap((column, i, array) => {
|
|
50
|
+
didUpdate?.(progressEntryPoint + ((i + 1) / array.length) * progressScale);
|
|
51
|
+
const value = getValueByKeyPath(d.data, column.dataSelector);
|
|
52
|
+
const formattedOrVoid = column.formatValueForCsv?.(value, d.data);
|
|
53
|
+
return formattedOrVoid === undefined ? [] : new Array().concat(formattedOrVoid).map(_a.sanitize);
|
|
54
|
+
});
|
|
55
|
+
return [
|
|
56
|
+
...nestedPadding,
|
|
57
|
+
first,
|
|
58
|
+
...childrenPadding,
|
|
59
|
+
...rest
|
|
60
|
+
];
|
|
61
|
+
})
|
|
62
|
+
];
|
|
63
|
+
const formatted = rows.map(row => row.join(',')).join('\n');
|
|
64
|
+
const fileName = [
|
|
65
|
+
'3MO',
|
|
66
|
+
document.title.split(' | ')[0]?.toLowerCase(),
|
|
67
|
+
new Date().toISOString().replace(/[-:.T]/g, '').slice(0, 14),
|
|
68
|
+
].filter(Boolean).join('_');
|
|
69
|
+
Downloader.download(`data:text/csv;charset=utf-8,${encodeURIComponent(formatted)}`, `${fileName}.csv`);
|
|
70
|
+
};
|
package/dist/DataGrid.d.ts
CHANGED
|
@@ -131,6 +131,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
131
131
|
readonly rows: Array<DataGridRow<TData, TDetailsElement>>;
|
|
132
132
|
private readonly footer?;
|
|
133
133
|
private readonly sidePanel?;
|
|
134
|
+
isGenerating: boolean;
|
|
134
135
|
setPage(page: number): void;
|
|
135
136
|
setPagination(pagination?: DataGridPagination): void;
|
|
136
137
|
setData(data: Array<TData>, selectionBehavior?: DataGridSelectionBehaviorOnDataChange): void;
|
|
@@ -156,7 +157,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
156
157
|
getCell(data: TData, column: DataGridColumn<TData, unknown>): DataGridCell<any, TData, TDetailsElement> | undefined;
|
|
157
158
|
handleEdit(data: TData, column: DataGridColumn<TData, unknown>, value: KeyPathValueOf<TData, KeyPathOf<TData>> | undefined): void;
|
|
158
159
|
navigateToSidePanelTab(tab?: DataGridSidePanelTab): void;
|
|
159
|
-
exportExcelFile(): void
|
|
160
|
+
exportExcelFile(): Promise<void>;
|
|
160
161
|
get hasContextMenu(): boolean;
|
|
161
162
|
get toolbarElements(): Element[];
|
|
162
163
|
get filterElements(): Element[];
|
|
@@ -212,7 +213,7 @@ export declare class DataGrid<TData, TDetailsElement extends Element | undefined
|
|
|
212
213
|
private lastScrollElementTop;
|
|
213
214
|
private handleScroll;
|
|
214
215
|
protected handlePointerDown(event: PointerEvent): void;
|
|
215
|
-
|
|
216
|
+
flattenData(values?: TData[]): Generator<DataRecord<TData>, void, undefined>;
|
|
216
217
|
get dataRecords(): Array<DataRecord<TData>>;
|
|
217
218
|
get renderDataRecords(): DataRecord<TData>[];
|
|
218
219
|
protected get dataSkip(): number;
|
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,EAA+B,KAAK,cAAc,EAAqC,KAAK,kBAAkB,
|
|
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, query, ifDefined, event, style, literal, staticHtml, cache, eventOptions, queryAll, repeat, eventListener } from '@a11d/lit';
|
|
3
|
+
import { property, component, Component, html, css, query, ifDefined, event, style, literal, staticHtml, cache, eventOptions, queryAll, repeat, eventListener, state } 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';
|
|
@@ -16,6 +16,7 @@ import { DataGridSortingController } from './DataGridSortingController.js';
|
|
|
16
16
|
import { DataGridDetailsController } from './DataGridDetailsController.js';
|
|
17
17
|
import { CsvGenerator, DataGridSidePanelTab, DataGridContextMenuController } from './index.js';
|
|
18
18
|
import { DataRecord } from './DataRecord.js';
|
|
19
|
+
import { GenericDialog } from '@3mo/standard-dialogs';
|
|
19
20
|
Localizer.dictionaries.add('de', {
|
|
20
21
|
'Exporting excel file': 'Die Excel-Datei wird exportiert',
|
|
21
22
|
'No results': 'Kein Ergebnis',
|
|
@@ -112,6 +113,7 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
112
113
|
this.exportable = false;
|
|
113
114
|
this.cellFontSize = DataGrid_1.cellRelativeFontSize.value;
|
|
114
115
|
this.rowHeight = DataGrid_1.rowHeight.value;
|
|
116
|
+
this.isGenerating = false;
|
|
115
117
|
this.slotController = new SlotController(this, async () => {
|
|
116
118
|
this.hasSums;
|
|
117
119
|
this.hasFabs;
|
|
@@ -218,15 +220,49 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
218
220
|
this.sidePanelTab = tab;
|
|
219
221
|
!tab ? this.sidePanelClose.dispatch() : this.sidePanelOpen.dispatch(tab);
|
|
220
222
|
}
|
|
221
|
-
exportExcelFile() {
|
|
223
|
+
async exportExcelFile() {
|
|
224
|
+
let progress = 0;
|
|
225
|
+
const dataGrid = this;
|
|
222
226
|
try {
|
|
223
|
-
|
|
224
|
-
|
|
227
|
+
this.isGenerating = true;
|
|
228
|
+
let didGenerate = false;
|
|
229
|
+
await new GenericDialog({
|
|
230
|
+
heading: t('Exporting excel file'),
|
|
231
|
+
primaryButtonText: '',
|
|
232
|
+
secondaryButtonText: '',
|
|
233
|
+
content() {
|
|
234
|
+
const dialog = this.renderRoot.querySelector('mo-dialog');
|
|
235
|
+
if (dialog) {
|
|
236
|
+
dialog.primaryOnEnter = false;
|
|
237
|
+
}
|
|
238
|
+
const progressChanged = (currentProgress) => {
|
|
239
|
+
progress = Math.max(currentProgress, 0.05);
|
|
240
|
+
if (progress === 1) {
|
|
241
|
+
setTimeout(() => this['close'](), 1000);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
this.requestUpdate();
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
if (!didGenerate) {
|
|
248
|
+
didGenerate = true;
|
|
249
|
+
CsvGenerator.generate(dataGrid, progressChanged);
|
|
250
|
+
}
|
|
251
|
+
return html `
|
|
252
|
+
<mo-flex alignItems='center' justifyContent='center'>
|
|
253
|
+
<mo-circular-progress .progress=${progress}></mo-circular-progress>
|
|
254
|
+
</mo-flex>
|
|
255
|
+
`;
|
|
256
|
+
}
|
|
257
|
+
}).confirm();
|
|
225
258
|
}
|
|
226
259
|
catch (error) {
|
|
227
260
|
NotificationComponent.notifyError(error.message);
|
|
228
261
|
throw error;
|
|
229
262
|
}
|
|
263
|
+
finally {
|
|
264
|
+
this.isGenerating = false;
|
|
265
|
+
}
|
|
230
266
|
}
|
|
231
267
|
get hasContextMenu() {
|
|
232
268
|
return this.contextMenuController.hasContextMenu;
|
|
@@ -626,9 +662,9 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
626
662
|
handlePointerDown(event) {
|
|
627
663
|
this.rows.forEach(row => row.cells.forEach(cell => cell.handlePointerDown(event)));
|
|
628
664
|
}
|
|
629
|
-
*
|
|
665
|
+
*flattenData(values = this.data) {
|
|
630
666
|
if (!this.subDataGridDataSelector) {
|
|
631
|
-
yield* this.sortingController.toSortedBy(
|
|
667
|
+
yield* this.sortingController.toSortedBy(values.map((data, index) => new DataRecord(this, { level: 0, index, data })), ({ data }) => data);
|
|
632
668
|
return;
|
|
633
669
|
}
|
|
634
670
|
const flatten = (data, level = 0) => {
|
|
@@ -643,13 +679,13 @@ let DataGrid = DataGrid_1 = class DataGrid extends Component {
|
|
|
643
679
|
...(subDataRecords ?? [])
|
|
644
680
|
];
|
|
645
681
|
};
|
|
646
|
-
for (const data of this.sortingController.toSorted(
|
|
682
|
+
for (const data of this.sortingController.toSorted(values)) {
|
|
647
683
|
yield* flatten(data);
|
|
648
684
|
}
|
|
649
685
|
return;
|
|
650
686
|
}
|
|
651
687
|
get dataRecords() {
|
|
652
|
-
return [...this.
|
|
688
|
+
return [...this.flattenData()]
|
|
653
689
|
.map((record, index) => {
|
|
654
690
|
// @ts-expect-error index is initialized here
|
|
655
691
|
record.index = index;
|
|
@@ -833,6 +869,9 @@ __decorate([
|
|
|
833
869
|
__decorate([
|
|
834
870
|
query('mo-data-grid-side-panel')
|
|
835
871
|
], DataGrid.prototype, "sidePanel", void 0);
|
|
872
|
+
__decorate([
|
|
873
|
+
state()
|
|
874
|
+
], DataGrid.prototype, "isGenerating", void 0);
|
|
836
875
|
__decorate([
|
|
837
876
|
eventOptions({ passive: true })
|
|
838
877
|
], DataGrid.prototype, "handleScroll", null);
|
package/dist/DataGridColumn.d.ts
CHANGED
|
@@ -34,5 +34,7 @@ export declare class DataGridColumn<TData, TValue = unknown> {
|
|
|
34
34
|
get sortingDefinition(): import("./DataGridSortingController.js").DataGridRankedSortDefinition<TData> | undefined;
|
|
35
35
|
get sumTemplate(): HTMLTemplateResult | undefined;
|
|
36
36
|
get stickyColumnInsetInline(): string;
|
|
37
|
+
formatValueForCsv?(value: any, data: TData): string | string[];
|
|
38
|
+
formatHeaderForCsv?(): string | string[];
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=DataGridColumn.d.ts.map
|
|
@@ -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,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,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;IAEpB,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,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO;IAMpD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;IAIzD,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;
|
|
1
|
+
{"version":3,"file":"DataGridColumn.d.ts","sourceRoot":"","sources":["../DataGridColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,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;IAEpB,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,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO;IAMpD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;IAIzD,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;IAED,iBAAiB,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE;IAC9D,kBAAkB,CAAC,IAAI,MAAM,GAAG,MAAM,EAAE;CACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridFooter.d.ts","sourceRoot":"","sources":["../DataGridFooter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,EAAkC,MAAM,WAAW,CAAA;AAI1F,OAAO,EAAE,KAAK,QAAQ,EAA2B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"DataGridFooter.d.ts","sourceRoot":"","sources":["../DataGridFooter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,SAAS,EAAkC,MAAM,WAAW,CAAA;AAI1F,OAAO,EAAE,KAAK,QAAQ,EAA2B,MAAM,YAAY,CAAA;AAanE;;;;GAIG;AACH,qBACa,cAAc,CAAC,KAAK,CAAE,SAAQ,SAAS;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAoE;IAEzE,QAAQ,EAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAE/B,IAAI,SAAI;IAWjC,OAAO,CAAC,gBAAgB,CAAQ;IAET,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAExE,WAAoB,MAAM,kCAiEzB;IAED,cAAuB,QAAQ,0CAe9B;IAED,OAAO,KAAK,kBAAkB,GA0C7B;IAED,OAAO,KAAK,sBAAsB,GA6BjC;IAED,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,KAAK,cAAc,GAQzB;IAED,OAAO,CAAC,OAAO;CAaf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,qBAAqB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;KAC9C;CACD"}
|
package/dist/DataGridFooter.js
CHANGED
|
@@ -3,10 +3,9 @@ import { __decorate } from "tslib";
|
|
|
3
3
|
import { component, property, Component, css, state, html, query, style } from '@a11d/lit';
|
|
4
4
|
import { DirectionsByLanguage, Localizer } from '@3mo/localization';
|
|
5
5
|
import { TooltipPlacement, tooltip } from '@3mo/tooltip';
|
|
6
|
-
import excelSvg from './excel.svg.js';
|
|
7
6
|
Localizer.dictionaries.add('de', {
|
|
8
7
|
'${page:number} of ${maxPage:number}': '${page} von ${maxPage}',
|
|
9
|
-
'Export
|
|
8
|
+
'Export to CSV': 'Ansicht nach CSV exportieren',
|
|
10
9
|
'Auto': 'Auto'
|
|
11
10
|
});
|
|
12
11
|
Localizer.dictionaries.add('fa', {
|
|
@@ -194,27 +193,11 @@ let DataGridFooter = DataGridFooter_1 = class DataGridFooter extends Component {
|
|
|
194
193
|
}
|
|
195
194
|
get exportTemplate() {
|
|
196
195
|
return !this.dataGrid.exportable ? html.nothing : html `
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
transition: .25s;
|
|
203
|
-
-webkit-filter: grayscale(100%);
|
|
204
|
-
filter: grayscale(100%);
|
|
205
|
-
cursor: pointer;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
#export:hover {
|
|
209
|
-
-webkit-filter: grayscale(0%);
|
|
210
|
-
filter: grayscale(0%);
|
|
211
|
-
}
|
|
212
|
-
</style>
|
|
213
|
-
<img id='export'
|
|
214
|
-
src=${`data:image/svg+xml,${encodeURIComponent(excelSvg)}`}
|
|
215
|
-
${tooltip(t('Export current view to Excel'), TooltipPlacement.BlockStart)}
|
|
216
|
-
@click=${() => this.dataGrid.exportExcelFile()}
|
|
217
|
-
/>
|
|
196
|
+
<mo-icon-button dense icon='download_for_offline'
|
|
197
|
+
${tooltip(t('Export to CSV'), TooltipPlacement.BlockStart)}
|
|
198
|
+
${style({ color: 'var(--mo-color-green)', fontSize: '24px', opacity: this.dataGrid.isGenerating ? '0.5' : undefined })}
|
|
199
|
+
@click=${() => this.dataGrid.isGenerating ? undefined : this.dataGrid.exportExcelFile()}
|
|
200
|
+
></mo-icon-button>
|
|
218
201
|
`;
|
|
219
202
|
}
|
|
220
203
|
setPage(value) {
|
|
@@ -15,6 +15,7 @@ export declare class DataGridColumnBoolean<TData> extends DataGridColumnComponen
|
|
|
15
15
|
falseIconColor: string;
|
|
16
16
|
getContentTemplate(value: boolean | undefined, _data: TData): import("lit-html").HTMLTemplateResult;
|
|
17
17
|
getEditContentTemplate(value: boolean | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
18
|
+
formatValueForCsv(value: boolean): "1" | "0";
|
|
18
19
|
}
|
|
19
20
|
declare global {
|
|
20
21
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnBoolean.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE;;;;;;;GAOG;AACH,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5E,QAAQ,EAAE,YAAY,CAAS;IAC/B,SAAS,EAAE,YAAY,CAAU;IAEjC,aAAa,SAA2B;IACxC,cAAc,SAAyB;IAGnD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAQ3D,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"DataGridColumnBoolean.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE;;;;;;;GAOG;AACH,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5E,QAAQ,EAAE,YAAY,CAAS;IAC/B,SAAS,EAAE,YAAY,CAAU;IAEjC,aAAa,SAA2B;IACxC,cAAc,SAAyB;IAGnD,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAQ3D,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAUrD,iBAAiB,CAAC,KAAK,EAAE,OAAO;CAGzC;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,6BAA6B,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;KAC7D;CACD"}
|
|
@@ -31,5 +31,7 @@ export declare abstract class DataGridColumnComponent<TData, TValue> extends Com
|
|
|
31
31
|
protected handleEdit(value: TValue | undefined, data: TData): void;
|
|
32
32
|
connectedCallback(): void;
|
|
33
33
|
protected updated(): void;
|
|
34
|
+
formatValueForCsv(value: any, data: TData): string | string[];
|
|
35
|
+
formatHeaderForCsv(): string | string[];
|
|
34
36
|
}
|
|
35
37
|
//# sourceMappingURL=DataGridColumnComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnComponent.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,KAAK,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE9G;;;;;;;;;;;GAWG;AACH,8BAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,SAAS;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;IAE3D,KAAK,SAAgB;IACK,MAAM,UAAQ;IACxC,MAAM,CAAC,EAAE,oBAAoB,CAAA;IACZ,OAAO,SAAK;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,uBAAuB,CAAU;IAC5C,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACpB,WAAW,UAAQ;IAO5D,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAElD,IAAI,MAAM,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"DataGridColumnComponent.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,KAAK,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE9G;;;;;;;;;;;GAWG;AACH,8BAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAE,SAAQ,SAAS;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;IAE3D,KAAK,SAAgB;IACK,MAAM,UAAQ;IACxC,MAAM,CAAC,EAAE,oBAAoB,CAAA;IACZ,OAAO,SAAK;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,uBAAuB,CAAU;IAC5C,YAAY,EAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACpB,WAAW,UAAQ;IAO5D,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAQ;IAElD,IAAI,MAAM,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAkB1C;IAED,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IACvF,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB;IAE5F,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAIlD,iBAAiB;cAOP,OAAO;IAK1B,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE;IAK7D,kBAAkB,IAAI,MAAM,GAAG,MAAM,EAAE;CAGvC"}
|
|
@@ -36,6 +36,8 @@ export class DataGridColumnComponent extends Component {
|
|
|
36
36
|
sticky: this.sticky,
|
|
37
37
|
width: this.width,
|
|
38
38
|
sortable: !this.nonSortable,
|
|
39
|
+
formatValueForCsv: (value, data) => this.formatValueForCsv(value, data),
|
|
40
|
+
formatHeaderForCsv: () => this.formatHeaderForCsv(),
|
|
39
41
|
editable: this.getEditContentTemplate !== undefined && (typeof nonEditable !== 'function' ? !nonEditable : x => !nonEditable(x)),
|
|
40
42
|
getContentTemplate: this.getContentTemplate.bind(this),
|
|
41
43
|
getEditContentTemplate: this.getEditContentTemplate?.bind(this),
|
|
@@ -54,6 +56,13 @@ export class DataGridColumnComponent extends Component {
|
|
|
54
56
|
this.dataGrid?.extractColumns();
|
|
55
57
|
this.dataGrid?.requestUpdate();
|
|
56
58
|
}
|
|
59
|
+
formatValueForCsv(value, data) {
|
|
60
|
+
data;
|
|
61
|
+
return value === undefined || value === null ? '' : String(value);
|
|
62
|
+
}
|
|
63
|
+
formatHeaderForCsv() {
|
|
64
|
+
return this.heading.length < 3 && this.description ? this.description : this.heading;
|
|
65
|
+
}
|
|
57
66
|
}
|
|
58
67
|
__decorate([
|
|
59
68
|
property({ type: Object })
|
|
@@ -8,8 +8,10 @@ export declare class DataGridColumnImage<TData> extends DataGridColumnComponent<
|
|
|
8
8
|
tooltipSelector?: KeyPathOf<TData> | ((data: TData) => string | undefined);
|
|
9
9
|
nonSortable: boolean;
|
|
10
10
|
nonEditable: boolean;
|
|
11
|
+
private getTooltipText;
|
|
11
12
|
getContentTemplate(value: string | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
12
13
|
getEditContentTemplate: undefined;
|
|
14
|
+
formatValueForCsv(value: string, data: TData): string;
|
|
13
15
|
}
|
|
14
16
|
declare global {
|
|
15
17
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnImage.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnImage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAGtE;;;;GAIG;AACH,qBACa,mBAAmB,CAAC,KAAK,CAAE,SAAQ,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;IACzE,eAAe,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAC,CAAA;IAE7E,WAAW,UAAO;IAClB,WAAW,UAAO;IAE3B,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"DataGridColumnImage.d.ts","sourceRoot":"","sources":["../../columns/DataGridColumnImage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAGtE;;;;GAIG;AACH,qBACa,mBAAmB,CAAC,KAAK,CAAE,SAAQ,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;IACzE,eAAe,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAC,CAAA;IAE7E,WAAW,UAAO;IAClB,WAAW,UAAO;IAE3B,OAAO,CAAC,cAAc,CAMrB;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAkBhD,sBAAsB,YAAY;IAElC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;CAIrD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,2BAA2B,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;KACzD;CACD"}
|
|
@@ -12,17 +12,20 @@ let DataGridColumnImage = class DataGridColumnImage extends DataGridColumnCompon
|
|
|
12
12
|
super(...arguments);
|
|
13
13
|
this.nonSortable = true;
|
|
14
14
|
this.nonEditable = true;
|
|
15
|
+
this.getTooltipText = (data) => {
|
|
16
|
+
return !this.tooltipSelector
|
|
17
|
+
? undefined
|
|
18
|
+
: typeof this.tooltipSelector === 'function'
|
|
19
|
+
? this.tooltipSelector(data)
|
|
20
|
+
: getValueByKeyPath(data, this.tooltipSelector);
|
|
21
|
+
};
|
|
15
22
|
this.getEditContentTemplate = undefined;
|
|
16
23
|
}
|
|
17
24
|
getContentTemplate(value, data) {
|
|
18
25
|
if (!value) {
|
|
19
26
|
return html.nothing;
|
|
20
27
|
}
|
|
21
|
-
const tooltipText =
|
|
22
|
-
? undefined
|
|
23
|
-
: typeof this.tooltipSelector === 'function'
|
|
24
|
-
? this.tooltipSelector(data)
|
|
25
|
-
: getValueByKeyPath(data, this.tooltipSelector);
|
|
28
|
+
const tooltipText = this.getTooltipText(data);
|
|
26
29
|
return !value ? html.nothing : html `
|
|
27
30
|
<img
|
|
28
31
|
${tooltipText ? tooltip(tooltipText) : html.nothing}
|
|
@@ -33,6 +36,10 @@ let DataGridColumnImage = class DataGridColumnImage extends DataGridColumnCompon
|
|
|
33
36
|
/>
|
|
34
37
|
`;
|
|
35
38
|
}
|
|
39
|
+
formatValueForCsv(value, data) {
|
|
40
|
+
value;
|
|
41
|
+
return this.getTooltipText(data) ?? '';
|
|
42
|
+
}
|
|
36
43
|
};
|
|
37
44
|
__decorate([
|
|
38
45
|
property()
|
|
@@ -3,6 +3,7 @@ import { DataGridColumnDateTimeBase } from './DataGridColumnDateTimeBase.js';
|
|
|
3
3
|
export declare class DataGridColumnDate<TData> extends DataGridColumnDateTimeBase<TData, Date> {
|
|
4
4
|
getContentTemplate(value: Date | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
5
5
|
readonly fieldTag: import("lit-html/static.js").StaticValue;
|
|
6
|
+
formatValueForCsv(value: Date | undefined): string;
|
|
6
7
|
}
|
|
7
8
|
declare global {
|
|
8
9
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnDate.d.ts","sourceRoot":"","sources":["../../../columns/date-time/DataGridColumnDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,wCAAwC;AACxC,qBACa,kBAAkB,CAAC,KAAK,CAAE,SAAQ,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC;IACrF,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAKvD,SAAkB,QAAQ,2CAAyB;
|
|
1
|
+
{"version":3,"file":"DataGridColumnDate.d.ts","sourceRoot":"","sources":["../../../columns/date-time/DataGridColumnDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,wCAAwC;AACxC,qBACa,kBAAkB,CAAC,KAAK,CAAE,SAAQ,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC;IACrF,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAKvD,SAAkB,QAAQ,2CAAyB;IAE1C,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS;CAGlD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,0BAA0B,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;KACvD;CACD"}
|
|
@@ -11,6 +11,9 @@ let DataGridColumnDate = class DataGridColumnDate extends DataGridColumnDateTime
|
|
|
11
11
|
data;
|
|
12
12
|
return html `${value ? value.formatAsDate(this.formatOptionsValue) ?? '' : ''}`;
|
|
13
13
|
}
|
|
14
|
+
formatValueForCsv(value) {
|
|
15
|
+
return !value ? '' : value.toISOString().split('T')[0];
|
|
16
|
+
}
|
|
14
17
|
};
|
|
15
18
|
DataGridColumnDate = __decorate([
|
|
16
19
|
component('mo-data-grid-column-date')
|
|
@@ -3,6 +3,7 @@ import { DataGridColumnDateTimeBase } from './DataGridColumnDateTimeBase.js';
|
|
|
3
3
|
export declare class DataGridColumnDateTime<TData> extends DataGridColumnDateTimeBase<TData, Date> {
|
|
4
4
|
getContentTemplate(value: Date | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
5
5
|
readonly fieldTag: import("lit-html/static.js").StaticValue;
|
|
6
|
+
formatValueForCsv(value: Date | undefined): string;
|
|
6
7
|
}
|
|
7
8
|
declare global {
|
|
8
9
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnDateTime.d.ts","sourceRoot":"","sources":["../../../columns/date-time/DataGridColumnDateTime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,6CAA6C;AAC7C,qBACa,sBAAsB,CAAC,KAAK,CAAE,SAAQ,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC;IACzF,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAKvD,SAAkB,QAAQ,2CAA8B;
|
|
1
|
+
{"version":3,"file":"DataGridColumnDateTime.d.ts","sourceRoot":"","sources":["../../../columns/date-time/DataGridColumnDateTime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAE5E,6CAA6C;AAC7C,qBACa,sBAAsB,CAAC,KAAK,CAAE,SAAQ,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC;IACzF,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAKvD,SAAkB,QAAQ,2CAA8B;IAE/C,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS;CAGlD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,+BAA+B,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAA;KAChE;CACD"}
|
|
@@ -11,6 +11,9 @@ let DataGridColumnDateTime = class DataGridColumnDateTime extends DataGridColumn
|
|
|
11
11
|
data;
|
|
12
12
|
return html `${value ? value.format(this.formatOptionsValue) ?? '' : ''}`;
|
|
13
13
|
}
|
|
14
|
+
formatValueForCsv(value) {
|
|
15
|
+
return !value ? '' : value.toISOString().replace('T', ' ').split('.')[0];
|
|
16
|
+
}
|
|
14
17
|
};
|
|
15
18
|
DataGridColumnDateTime = __decorate([
|
|
16
19
|
component('mo-data-grid-column-date-time')
|
|
@@ -10,10 +10,13 @@ export declare class DataGridColumnCurrency<TData> extends DataGridColumnNumberB
|
|
|
10
10
|
static defaultCurrency?: Currency;
|
|
11
11
|
currency?: Currency;
|
|
12
12
|
currencyDataSelector?: KeyPathOf<TData>;
|
|
13
|
+
exchangeRateDataSelector?: KeyPathOf<TData>;
|
|
13
14
|
private getCurrency;
|
|
14
15
|
getContentTemplate(value: number | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
15
16
|
getEditContentTemplate(value: number | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
16
17
|
getSumTemplate(sum: number): import("lit-html").HTMLTemplateResult;
|
|
18
|
+
formatHeaderForCsv(): string[];
|
|
19
|
+
formatValueForCsv(value: unknown, data: TData): any[];
|
|
17
20
|
}
|
|
18
21
|
declare global {
|
|
19
22
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnCurrency.d.ts","sourceRoot":"","sources":["../../../columns/number/DataGridColumnCurrency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAqB,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"DataGridColumnCurrency.d.ts","sourceRoot":"","sources":["../../../columns/number/DataGridColumnCurrency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAqB,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAOxE;;;;;EAKE;AACF,qBACa,sBAAsB,CAAC,KAAK,CAAE,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACjF,MAAM,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAA;IAEuC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAC/E,oBAAoB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IAEvC,wBAAwB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IAEvD,OAAO,CAAC,WAAW;IAMnB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAIzD,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAU7D,cAAc,CAAC,GAAG,EAAE,MAAM;IAMjB,kBAAkB;IAIlB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK;CAOtD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,8BAA8B,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAA;KAC/D;CACD"}
|
|
@@ -4,6 +4,10 @@ import { component, html, ifDefined, property } from '@a11d/lit';
|
|
|
4
4
|
import { Currency } from '@3mo/localization';
|
|
5
5
|
import { FieldCurrency } from '@3mo/number-fields';
|
|
6
6
|
import { DataGridColumnNumberBase } from './DataGridColumnNumberBase.js';
|
|
7
|
+
import { Localizer } from '@3mo/localization';
|
|
8
|
+
Localizer.dictionaries.add('de', {
|
|
9
|
+
'Currency': 'Währung',
|
|
10
|
+
});
|
|
7
11
|
/**
|
|
8
12
|
* @element mo-data-grid-column-currency
|
|
9
13
|
*
|
|
@@ -33,6 +37,15 @@ let DataGridColumnCurrency = DataGridColumnCurrency_1 = class DataGridColumnCurr
|
|
|
33
37
|
<span style='font-weight: 500'>${sum.formatAsCurrency(this.currency ?? DataGridColumnCurrency_1.defaultCurrency)}</span>
|
|
34
38
|
`;
|
|
35
39
|
}
|
|
40
|
+
formatHeaderForCsv() {
|
|
41
|
+
return [this.heading.length < 3 && this.description ? this.description : this.heading, '' + t('Currency')];
|
|
42
|
+
}
|
|
43
|
+
formatValueForCsv(value, data) {
|
|
44
|
+
if (value === undefined || value === null) {
|
|
45
|
+
return ['', ''];
|
|
46
|
+
}
|
|
47
|
+
return [value, this.getCurrency(data).code];
|
|
48
|
+
}
|
|
36
49
|
};
|
|
37
50
|
__decorate([
|
|
38
51
|
property({ type: Object, converter: FieldCurrency.currencyConverter })
|
|
@@ -40,6 +53,9 @@ __decorate([
|
|
|
40
53
|
__decorate([
|
|
41
54
|
property()
|
|
42
55
|
], DataGridColumnCurrency.prototype, "currencyDataSelector", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
property()
|
|
58
|
+
], DataGridColumnCurrency.prototype, "exchangeRateDataSelector", void 0);
|
|
43
59
|
DataGridColumnCurrency = DataGridColumnCurrency_1 = __decorate([
|
|
44
60
|
component('mo-data-grid-column-currency')
|
|
45
61
|
], DataGridColumnCurrency);
|
|
@@ -4,6 +4,7 @@ export declare class DataGridColumnPercent<TData> extends DataGridColumnNumberBa
|
|
|
4
4
|
getContentTemplate(value: number | undefined, _data: TData): import("lit-html").HTMLTemplateResult;
|
|
5
5
|
getEditContentTemplate(value: number | undefined, data: TData): import("lit-html").HTMLTemplateResult;
|
|
6
6
|
getSumTemplate(sum: number): import("lit-html").HTMLTemplateResult;
|
|
7
|
+
formatHeaderForCsv(): string;
|
|
7
8
|
}
|
|
8
9
|
declare global {
|
|
9
10
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridColumnPercent.d.ts","sourceRoot":"","sources":["../../../columns/number/DataGridColumnPercent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAExE,2CAA2C;AAC3C,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAEhF,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAI1D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAS7D,cAAc,CAAC,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"DataGridColumnPercent.d.ts","sourceRoot":"","sources":["../../../columns/number/DataGridColumnPercent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAExE,2CAA2C;AAC3C,qBACa,qBAAqB,CAAC,KAAK,CAAE,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IAEhF,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK;IAI1D,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;IAS7D,cAAc,CAAC,GAAG,EAAE,MAAM;IAIjB,kBAAkB;CAG3B;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,6BAA6B,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;KAC7D;CACD"}
|
|
@@ -18,6 +18,9 @@ let DataGridColumnPercent = class DataGridColumnPercent extends DataGridColumnNu
|
|
|
18
18
|
getSumTemplate(sum) {
|
|
19
19
|
return html `${sum.formatAsPercent()}`;
|
|
20
20
|
}
|
|
21
|
+
formatHeaderForCsv() {
|
|
22
|
+
return `${this.heading.length < 3 && this.description ? this.description : this.heading} (%)`;
|
|
23
|
+
}
|
|
21
24
|
};
|
|
22
25
|
DataGridColumnPercent = __decorate([
|
|
23
26
|
component('mo-data-grid-column-percent')
|