@stenajs-webui/grid-export 14.1.1 → 15.0.0-alpha.10

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/index.es.js CHANGED
@@ -1,11 +1,12 @@
1
- import { useCallback, createElement, useState } from 'react';
1
+ import * as React from 'react';
2
+ import { useCallback, useState } from 'react';
2
3
  import zipcelx from 'zipcelx';
3
4
  import { formatColumnIdToHeaderCellLabel, createGroupConfigAndIdsForRows } from '@stenajs-webui/grid';
4
5
  import { flatten } from 'lodash';
5
6
  import { format } from 'date-fns';
6
7
  import { FlatButton } from '@stenajs-webui/elements';
7
8
  import { faFileDownload } from '@fortawesome/free-solid-svg-icons/faFileDownload';
8
- import { ClipboardItem, write } from 'clipboard-polyfill';
9
+ import * as clipboard from 'clipboard-polyfill';
9
10
 
10
11
  /*! *****************************************************************************
11
12
  Copyright (c) Microsoft Corporation.
@@ -60,15 +61,17 @@ function __generator(thisArg, body) {
60
61
  }
61
62
  }
62
63
 
63
- function __spreadArrays() {
64
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
65
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
66
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
67
- r[k] = a[j];
68
- return r;
64
+ function __spreadArray(to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
69
72
  }
70
73
 
71
- var transformTableHeaders = function (config, groupConfigs) {
74
+ var transformTableHeaders$1 = function (config, groupConfigs) {
72
75
  return flatten(groupConfigs.map(function (groupConfig) {
73
76
  return groupConfig.columnOrder.map(function (columnId) {
74
77
  var _a;
@@ -80,7 +83,7 @@ var transformTableHeaders = function (config, groupConfigs) {
80
83
  });
81
84
  }));
82
85
  };
83
- var transformGroupHeaders = function (groupConfigs) {
86
+ var transformGroupHeaders$1 = function (groupConfigs) {
84
87
  return flatten(groupConfigs.map(function (groupConfig) {
85
88
  return groupConfig.columnOrder.map(function (_, index) {
86
89
  var _a;
@@ -92,30 +95,30 @@ var transformGroupHeaders = function (groupConfigs) {
92
95
  }));
93
96
  };
94
97
 
95
- var transformItemToCell = function (item, itemValueResolver, itemLabelFormatter, formatter) {
98
+ var transformItemToCell$1 = function (item, itemValueResolver, itemLabelFormatter, formatter) {
96
99
  if (formatter) {
97
- return createCell(formatter(item));
100
+ return createCell$1(formatter(item));
98
101
  }
99
102
  var value = itemValueResolver(item);
100
103
  if (itemLabelFormatter) {
101
104
  var label = itemLabelFormatter === null || itemLabelFormatter === void 0 ? void 0 : itemLabelFormatter(value, item);
102
- return createCell(label);
105
+ return createCell$1(label);
103
106
  }
104
107
  if (typeof value === "number" || typeof value === "string") {
105
- return createCell(value);
108
+ return createCell$1(value);
106
109
  }
107
110
  if (typeof value === "boolean") {
108
- return createCell(value ? "Y" : "");
111
+ return createCell$1(value ? "Y" : "");
109
112
  }
110
113
  if (value instanceof Date) {
111
- return createCell(format(value, "yyyy-MM-dd HH:mm"));
114
+ return createCell$1(format(value, "yyyy-MM-dd HH:mm"));
112
115
  }
113
116
  if (value == null) {
114
- return createCell("");
117
+ return createCell$1("");
115
118
  }
116
- return createCell(String(value));
119
+ return createCell$1(String(value));
117
120
  };
118
- var createCell = function (value) {
121
+ var createCell$1 = function (value) {
119
122
  var type = typeof value === "number" ? "number" : "string";
120
123
  return {
121
124
  type: type,
@@ -123,17 +126,17 @@ var createCell = function (value) {
123
126
  };
124
127
  };
125
128
 
126
- var transformTableRow = function (item, config, groupConfigs, formatters) {
129
+ var transformTableRow$1 = function (item, config, groupConfigs, formatters) {
127
130
  return flatten(groupConfigs.map(function (groupConfig) {
128
131
  return groupConfig.columnOrder.map(function (columnId) {
129
- return transformCell(item, columnId, config, formatters);
132
+ return transformCell$1(item, columnId, config, formatters);
130
133
  });
131
134
  }));
132
135
  };
133
- var transformCell = function (item, columnId, config, formatters) {
136
+ var transformCell$1 = function (item, columnId, config, formatters) {
134
137
  var columnConfig = config.columns[columnId];
135
138
  var formatter = formatters === null || formatters === void 0 ? void 0 : formatters[columnId];
136
- return transformItemToCell(item, columnConfig.itemValueResolver, columnConfig.itemLabelFormatter, formatter);
139
+ return transformItemToCell$1(item, columnConfig.itemValueResolver, columnConfig.itemLabelFormatter, formatter);
137
140
  };
138
141
 
139
142
  var createZipcelxConfig = function (filename, config, items, formatters) {
@@ -141,15 +144,15 @@ var createZipcelxConfig = function (filename, config, items, formatters) {
141
144
  var headerRows = [];
142
145
  var groupConfigs = groupConfigsAndIds.map(function (p) { return p.groupConfig; });
143
146
  if ("columnGroups" in config) {
144
- headerRows.push(transformGroupHeaders(groupConfigs));
147
+ headerRows.push(transformGroupHeaders$1(groupConfigs));
145
148
  }
146
- headerRows.push(transformTableHeaders(config, groupConfigs));
149
+ headerRows.push(transformTableHeaders$1(config, groupConfigs));
147
150
  return {
148
151
  filename: filename,
149
152
  sheet: {
150
- data: __spreadArrays(headerRows, items.map(function (item) {
151
- return transformTableRow(item, config, groupConfigs, formatters);
152
- })),
153
+ data: __spreadArray(__spreadArray([], headerRows, true), items.map(function (item) {
154
+ return transformTableRow$1(item, config, groupConfigs, formatters);
155
+ }), true),
153
156
  },
154
157
  };
155
158
  };
@@ -184,7 +187,7 @@ var StandardTableExcelExportButton = function StandardTableExcelExportButton(_a)
184
187
  }
185
188
  });
186
189
  }); }, [config, items, filename, formatters]);
187
- return (createElement(FlatButton, { size: size, leftIcon: faFileDownload, onClick: onClickExportExcel, disabled: !items || !items.length }));
190
+ return (React.createElement(FlatButton, { size: size, leftIcon: faFileDownload, onClick: onClickExportExcel, disabled: !items || !items.length }));
188
191
  };
189
192
 
190
193
  var transformJustifyContentToTextAlign = function (justifyContent) {
@@ -204,7 +207,7 @@ var transformJustifyContentToTextAlign = function (justifyContent) {
204
207
  }
205
208
  };
206
209
 
207
- var transformTableHeaders$1 = function (config, groupConfigs) {
210
+ var transformTableHeaders = function (config, groupConfigs) {
208
211
  return flatten(groupConfigs.map(function (groupConfig) {
209
212
  return groupConfig.columnOrder.map(function (columnId) {
210
213
  var _a, _b;
@@ -217,37 +220,37 @@ var transformTableHeaders$1 = function (config, groupConfigs) {
217
220
  });
218
221
  }));
219
222
  };
220
- var transformGroupHeaders$1 = function (groupConfigs) {
223
+ var transformGroupHeaders = function (groupConfigs) {
221
224
  return flatten(groupConfigs.map(function (groupConfig) {
222
225
  var _a;
223
226
  return "<th style=\"text-align: left\" colspan=\"" + groupConfig.columnOrder.length + "\">" + ((_a = groupConfig.label) !== null && _a !== void 0 ? _a : "") + "</th>";
224
227
  }));
225
228
  };
226
229
 
227
- var transformItemToCell$1 = function (item, itemValueResolver, justifyContentCell, itemLabelFormatter, formatter) {
230
+ var transformItemToCell = function (item, itemValueResolver, justifyContentCell, itemLabelFormatter, formatter) {
228
231
  if (formatter) {
229
- return createCell$1(formatter(item), justifyContentCell);
232
+ return createCell(formatter(item), justifyContentCell);
230
233
  }
231
234
  var value = itemValueResolver(item);
232
235
  if (itemLabelFormatter) {
233
236
  var label = itemLabelFormatter === null || itemLabelFormatter === void 0 ? void 0 : itemLabelFormatter(value, item);
234
- return createCell$1(label, justifyContentCell);
237
+ return createCell(label, justifyContentCell);
235
238
  }
236
239
  if (typeof value === "number" || typeof value === "string") {
237
- return createCell$1(value, justifyContentCell);
240
+ return createCell(value, justifyContentCell);
238
241
  }
239
242
  if (typeof value === "boolean") {
240
- return createCell$1(value ? "Y" : "", justifyContentCell);
243
+ return createCell(value ? "Y" : "", justifyContentCell);
241
244
  }
242
245
  if (value instanceof Date) {
243
- return createCell$1(format(value, "yyyy-MM-dd HH:mm"), justifyContentCell);
246
+ return createCell(format(value, "yyyy-MM-dd HH:mm"), justifyContentCell);
244
247
  }
245
248
  if (value == null) {
246
- return createCell$1("", justifyContentCell);
249
+ return createCell("", justifyContentCell);
247
250
  }
248
- return createCell$1(String(value), justifyContentCell);
251
+ return createCell(String(value), justifyContentCell);
249
252
  };
250
- var createCell$1 = function (value, justifyContentCell) {
253
+ var createCell = function (value, justifyContentCell) {
251
254
  if (justifyContentCell) {
252
255
  var styleProperty = transformJustifyContentToTextAlign(justifyContentCell);
253
256
  return "<td" + (styleProperty ? ' style="' + styleProperty + '"' : "") + ">" + value + "</td>";
@@ -255,17 +258,17 @@ var createCell$1 = function (value, justifyContentCell) {
255
258
  return "<td>" + value + "</td>";
256
259
  };
257
260
 
258
- var transformTableRow$1 = function (item, config, groupConfigs, formatters) {
261
+ var transformTableRow = function (item, config, groupConfigs, formatters) {
259
262
  return flatten(groupConfigs.map(function (groupConfig) {
260
263
  return groupConfig.columnOrder.map(function (columnId) {
261
- return transformCell$1(item, columnId, config, formatters);
264
+ return transformCell(item, columnId, config, formatters);
262
265
  });
263
266
  })).join("");
264
267
  };
265
- var transformCell$1 = function (item, columnId, config, formatters) {
268
+ var transformCell = function (item, columnId, config, formatters) {
266
269
  var columnConfig = config.columns[columnId];
267
270
  var formatter = formatters === null || formatters === void 0 ? void 0 : formatters[columnId];
268
- return transformItemToCell$1(item, columnConfig.itemValueResolver, columnConfig.justifyContentCell, columnConfig.itemLabelFormatter, formatter);
271
+ return transformItemToCell(item, columnConfig.itemValueResolver, columnConfig.justifyContentCell, columnConfig.itemLabelFormatter, formatter);
269
272
  };
270
273
 
271
274
  var createHtmlConfig = function (config, items, formatters) {
@@ -273,14 +276,14 @@ var createHtmlConfig = function (config, items, formatters) {
273
276
  var headerRows = [];
274
277
  var groupConfigs = groupConfigsAndIds.map(function (p) { return p.groupConfig; });
275
278
  if ("columnGroups" in config) {
276
- headerRows.push(transformGroupHeaders$1(groupConfigs).join(""));
279
+ headerRows.push(transformGroupHeaders(groupConfigs).join(""));
277
280
  }
278
- headerRows.push(transformTableHeaders$1(config, groupConfigs).join(""));
281
+ headerRows.push(transformTableHeaders(config, groupConfigs).join(""));
279
282
  var header = "<thead>" + headerRows
280
283
  .map(function (headerRow) { return "<tr>" + headerRow + "</tr>"; })
281
284
  .join("") + "</thead>";
282
285
  var tbodyRows = items
283
- .map(function (item) { return transformTableRow$1(item, config, groupConfigs, formatters); })
286
+ .map(function (item) { return transformTableRow(item, config, groupConfigs, formatters); })
284
287
  .map(function (row) { return "<tr>" + row + "</tr>"; });
285
288
  var body = "<tbody>" + tbodyRows.join("") + "</tbody>";
286
289
  return "<table>" + header + body + "</table>";
@@ -304,10 +307,10 @@ function copyContentToClipboard(items, config, formatters, renderContent) {
304
307
  htmlToCopy = renderContent(htmlToCopy);
305
308
  }
306
309
  if (!htmlToCopy) return [3 /*break*/, 2];
307
- item = new ClipboardItem({
310
+ item = new clipboard.ClipboardItem({
308
311
  "text/html": new Blob([htmlToCopy], { type: "text/html" }),
309
312
  });
310
- return [4 /*yield*/, write([item])];
313
+ return [4 /*yield*/, clipboard.write([item])];
311
314
  case 1:
312
315
  _a.sent();
313
316
  _a.label = 2;
@@ -333,7 +336,7 @@ function StandardTableHtmlCopyToClipboardButton(_a) {
333
336
  }
334
337
  });
335
338
  }); }, [config, items, formatters, numTimeToRevertLabel, renderContent]);
336
- return (createElement(FlatButton, { size: size, onClick: onClickExportHtml, disabled: !items || !items.length, label: contentCopied ? labelAfterCopy : label }));
339
+ return (React.createElement(FlatButton, { size: size, onClick: onClickExportHtml, disabled: !items || !items.length, label: contentCopied ? labelAfterCopy : label }));
337
340
  }
338
341
 
339
342
  export { StandardTableExcelExportButton, StandardTableHtmlCopyToClipboardButton, createHtmlConfig, createZipcelxConfig, downloadExcelForStandardTable };
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/features/grid-excel-export/transformers/HeaderTransformer.ts","../src/features/grid-excel-export/transformers/CellTransformer.ts","../src/features/grid-excel-export/transformers/RowTransformer.ts","../src/features/grid-excel-export/transformers/ConfigTransformer.ts","../src/features/grid-excel-export/util/ExcelDownloader.ts","../src/features/grid-excel-export/components/StandardTableExcelExportButton.tsx","../src/features/grid-copy-to-clipboard/transformers/AlignmentTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/HeaderTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/CellTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/RowTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/ConfigTransformer.ts","../src/features/grid-copy-to-clipboard/util/HtmlRenderer.ts","../src/features/grid-copy-to-clipboard/util/CopyContentToClipboard.ts","../src/features/grid-copy-to-clipboard/components/StandardTableHtmlCopyToClipboardButton.tsx"],"sourcesContent":["import {\n formatColumnIdToHeaderCellLabel,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXRow } from \"zipcelx\";\nimport { StandardTableColumnGroupConfig } from \"@stenajs-webui/grid\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n return {\n type: \"string\",\n value:\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId)),\n };\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((_, index) => {\n return {\n type: \"string\",\n value: index === 0 ? groupConfig.label ?? \"\" : \"\",\n };\n })\n )\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { ZipCelXCell } from \"zipcelx\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): ZipCelXCell => {\n if (formatter) {\n return createCell(formatter(item));\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\");\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"));\n }\n\n if (value == null) {\n return createCell(\"\");\n }\n\n return createCell(String(value));\n};\n\nconst createCell = (value: string | number): ZipCelXCell => {\n const type = typeof value === \"number\" ? \"number\" : \"string\";\n return {\n type,\n value,\n };\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXCell, ZipCelXRow } from \"zipcelx\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<ZipCelXCell>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n );\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXCell => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { ZipCelXConfig, ZipCelXRow } from \"zipcelx\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createZipcelxConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXConfig => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<ZipCelXRow> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs));\n\n return {\n filename,\n sheet: {\n data: [\n ...headerRows,\n ...items.map<ZipCelXRow>((item) =>\n transformTableRow(item, config, groupConfigs, formatters)\n ),\n ],\n },\n };\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport zipcelx from \"zipcelx\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createZipcelxConfig } from \"../transformers/ConfigTransformer\";\n\nexport const downloadExcelForStandardTable = async <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n const excelConfig = createZipcelxConfig(filename, config, items, formatters);\n await zipcelx(excelConfig);\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { downloadExcelForStandardTable } from \"../util/ExcelDownloader\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { faFileDownload } from \"@fortawesome/free-solid-svg-icons/faFileDownload\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\ninterface StandardTableExcelExportButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n filename?: string;\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n}\n\nexport const StandardTableExcelExportButton = function StandardTableExcelExportButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n size,\n items,\n filename = \"exported-spreadsheet\",\n formatters,\n}: StandardTableExcelExportButtonProps<TItem, TColumnKey, TColumnGroupKey>) {\n const onClickExportExcel = useCallback(async () => {\n if (items && items.length) {\n await downloadExcelForStandardTable(filename, config, items, formatters);\n }\n }, [config, items, filename, formatters]);\n\n return (\n <FlatButton\n size={size}\n leftIcon={faFileDownload}\n onClick={onClickExportExcel}\n disabled={!items || !items.length}\n />\n );\n};\n","export const transformJustifyContentToTextAlign = (\n justifyContent: string | undefined\n): string | undefined => {\n switch (justifyContent?.toLowerCase()) {\n case \"left\":\n case \"start\":\n case \"flex-start\":\n return \"text-align: left\";\n case \"right\":\n case \"end\":\n case \"flex-end\":\n return \"text-align: right\";\n case \"center\":\n return \"text-align: center\";\n default:\n return undefined;\n }\n};\n","import {\n formatColumnIdToHeaderCellLabel,\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n\n if (columnConfig.justifyContentHeader) {\n const styleProperty = transformJustifyContentToTextAlign(\n columnConfig.justifyContentHeader\n );\n return `<th${styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"}>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n }\n return `<th>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) => {\n return `<th style=\"text-align: left\" colspan=\"${\n groupConfig.columnOrder.length\n }\">${groupConfig.label ?? \"\"}</th>`;\n })\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n justifyContentCell: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"justifyContentCell\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): string => {\n if (formatter) {\n return createCell(formatter(item), justifyContentCell);\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label, justifyContentCell);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value, justifyContentCell);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\", justifyContentCell);\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"), justifyContentCell);\n }\n\n if (value == null) {\n return createCell(\"\", justifyContentCell);\n }\n\n return createCell(String(value), justifyContentCell);\n};\n\nconst createCell = (\n value: string | number,\n justifyContentCell: string | undefined\n): string => {\n if (justifyContentCell) {\n const styleProperty = transformJustifyContentToTextAlign(\n justifyContentCell\n );\n return `<td${\n styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"\n }>${value}</td>`;\n }\n return `<td>${value}</td>`;\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<string>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n ).join(\"\");\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.justifyContentCell,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createHtmlConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<string> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs).join(\"\"));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs).join(\"\"));\n const header = `<thead>${headerRows\n .map((headerRow) => `<tr>${headerRow}</tr>`)\n .join(\"\")}</thead>`;\n\n const tbodyRows = items\n .map((item) => transformTableRow(item, config, groupConfigs, formatters))\n .map((row) => `<tr>${row}</tr>`);\n\n const body = `<tbody>${tbodyRows.join(\"\")}</tbody>`;\n return `<table>${header}${body}</table>`;\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createHtmlConfig } from \"../transformers/ConfigTransformer\";\n\nexport const renderHtmlForStandardTable = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n return createHtmlConfig(config, items, formatters);\n};\n","import { renderHtmlForStandardTable } from \"./HtmlRenderer\";\nimport * as clipboard from \"clipboard-polyfill\";\nimport { StandardTableConfig } from \"@stenajs-webui/grid/dist/features/standard-table/config/StandardTableConfig\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport async function copyContentToClipboard<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n items: TItem[] | undefined,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?:\n | Partial<Record<TColumnKey, CustomCellFormatter<TItem>>>\n | undefined,\n renderContent?: (content: string) => string | null\n) {\n let htmlToCopy: string | null = \"\";\n\n if (items && items.length) {\n htmlToCopy = renderHtmlForStandardTable(config, items, formatters);\n }\n\n if (renderContent) {\n htmlToCopy = renderContent(htmlToCopy);\n }\n if (htmlToCopy) {\n const item = new clipboard.ClipboardItem({\n \"text/html\": new Blob([htmlToCopy], { type: \"text/html\" }),\n });\n\n await clipboard.write([item]);\n }\n}\n","import * as React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { copyContentToClipboard } from \"../util/CopyContentToClipboard\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport interface StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n renderContent?: (content: string) => string | null;\n label?: string;\n labelAfterCopy?: string;\n numTimeToRevertLabel?: number;\n}\n\nexport function StandardTableHtmlCopyToClipboardButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n renderContent,\n size,\n items,\n formatters,\n label = \"Copy to clipboard\",\n labelAfterCopy = \"Content copied!\",\n numTimeToRevertLabel = 2000,\n}: StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey,\n TColumnGroupKey\n>) {\n const [contentCopied, setContentCopied] = useState<boolean>(false);\n const onClickExportHtml = useCallback(async () => {\n await copyContentToClipboard(items, config, formatters, renderContent);\n\n setContentCopied(true);\n setTimeout(() => setContentCopied(false), numTimeToRevertLabel);\n }, [config, items, formatters, numTimeToRevertLabel, renderContent]);\n\n return (\n <FlatButton\n size={size}\n onClick={onClickExportHtml}\n disabled={!items || !items.length}\n label={contentCopied ? labelAfterCopy : label}\n />\n );\n}\n"],"names":["React.createElement","transformTableHeaders","transformGroupHeaders","transformItemToCell","createCell","transformTableRow","transformCell","clipboard.ClipboardItem","clipboard.write"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAM,qBAAqB,GAAG,UAKnC,MAA+D,EAC/D,YAA+D;IAE/D,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;QAC3B,OAAA,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,QAAQ;;YACnC,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,QACH,YAAY,CAAC,WAAW,mCACxB,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACpD,CAAC;SACH,CAAC;KAAA,CACH,CACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,qBAAqB,GAAG,UACnC,YAA+D;IAE/D,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;QAC3B,OAAA,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK;;YACnC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,KAAK,CAAC,SAAG,WAAW,CAAC,KAAK,mCAAI,EAAE,GAAG,EAAE;aAClD,CAAC;SACH,CAAC;KAAA,CACH,CACF,CAAC;AACJ,CAAC;;ACvCM,IAAM,mBAAmB,GAAG,UAKjC,IAAW,EACX,iBAIsB,EACtB,kBAMa,EACb,SAAsC;IAEtC,IAAI,SAAS,EAAE;QACb,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACpC;IAED,IAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,kBAAkB,EAAE;QACtB,IAAM,KAAK,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;QAC9B,OAAO,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;KACrC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE;QACzB,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;KACtD;IAED,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;KACvB;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,IAAM,UAAU,GAAG,UAAC,KAAsB;IACxC,IAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7D,OAAO;QACL,IAAI,MAAA;QACJ,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;;ACpDM,IAAM,iBAAiB,GAAG,UAK/B,IAAW,EACX,MAA+D,EAC/D,YAA+D,EAC/D,UAAoD;IAEpD,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;QAC3B,OAAA,WAAW,CAAC,WAAW,CAAC,GAAG,CAAc,UAAC,QAAQ;YAChD,OAAA,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;SAAA,CAClD;KAAA,CACF,CACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,aAAa,GAAG,UAK3B,IAAW,EACX,QAAoB,EACpB,MAA+D,EAC/D,UAAoD;IAEpD,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAM,SAAS,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,CAAC,CAAC;IACzC,OAAO,mBAAmB,CACxB,IAAI,EACJ,YAAY,CAAC,iBAAiB,EAC9B,YAAY,CAAC,kBAAkB,EAC/B,SAAS,CACV,CAAC;AACJ,CAAC;;IClCY,mBAAmB,GAAG,UAKjC,QAAgB,EAChB,MAA+D,EAC/D,KAAmB,EACnB,UAAoD;IAEpD,IAAM,kBAAkB,GAAG,8BAA8B,CACvD,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,EAC1D,kBAAkB,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,SAAS,EAClE,aAAa,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,SAAS,CACzD,CAAC;IAEF,IAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,GAAA,CAAC,CAAC;IAElE,IAAI,cAAc,IAAI,MAAM,EAAE;QAC5B,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;KACtD;IACD,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7D,OAAO;QACL,QAAQ,UAAA;QACR,KAAK,EAAE;YACL,IAAI,iBACC,UAAU,EACV,KAAK,CAAC,GAAG,CAAa,UAAC,IAAI;gBAC5B,OAAA,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC;aAAA,CAC1D,CACF;SACF;KACF,CAAC;AACJ;;IC1Ca,6BAA6B,GAAG,UAK3C,QAAgB,EAChB,MAA+D,EAC/D,KAAmB,EACnB,UAAoD;;;;;gBAE9C,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC7E,qBAAM,OAAO,CAAC,WAAW,CAAC,EAAA;;gBAA1B,SAA0B,CAAC;;;;;;ICKhB,8BAA8B,GAAG,SAAS,8BAA8B,CAInF,EAMwE;IAV5B,iBAyB7C;QApBC,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,gBAAiC,EAAjC,QAAQ,mBAAG,sBAAsB,KAAA,EACjC,UAAU,gBAAA;IAEV,IAAM,kBAAkB,GAAG,WAAW,CAAC;;;;0BACjC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA,EAArB,wBAAqB;oBACvB,qBAAM,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAAA;;oBAAxE,SAAwE,CAAC;;;;;SAE5E,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1C,QACEA,cAAC,UAAU,IACT,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GACjC,EACF;AACJ;;AC9CO,IAAM,kCAAkC,GAAG,UAChD,cAAkC;IAElC,QAAQ,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW;QACjC,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,YAAY;YACf,OAAO,kBAAkB,CAAC;QAC5B,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,oBAAoB,CAAC;QAC9B;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;;ACTM,IAAMC,uBAAqB,GAAG,UAKnC,MAA+D,EAC/D,YAA+D;IAE/D,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;QAC3B,OAAA,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,QAAQ;;YACnC,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBACrC,IAAM,aAAa,GAAG,kCAAkC,CACtD,YAAY,CAAC,oBAAoB,CAClC,CAAC;gBACF,OAAO,SAAM,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,GAAG,GAAG,EAAE,iBAChE,YAAY,CAAC,WAAW,mCACxB,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAC5C,CAAC;aACT;YACD,OAAO,gBACL,YAAY,CAAC,WAAW,mCACxB,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAC5C,CAAC;SACT,CAAC;KAAA,CACH,CACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAMC,uBAAqB,GAAG,UACnC,YAA+D;IAE/D,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;;QAC3B,OAAO,8CACL,WAAW,CAAC,WAAW,CAAC,MAAM,kBAC3B,WAAW,CAAC,KAAK,mCAAI,EAAE,WAAO,CAAC;KACrC,CAAC,CACH,CAAC;AACJ,CAAC;;AC5CM,IAAMC,qBAAmB,GAAG,UAKjC,IAAW,EACX,iBAIsB,EACtB,kBAIuB,EACvB,kBAMa,EACb,SAAsC;IAEtC,IAAI,SAAS,EAAE;QACb,OAAOC,YAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;KACxD;IAED,IAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,kBAAkB,EAAE;QACtB,IAAM,KAAK,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,OAAOA,YAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;KAC9C;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAOA,YAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;KAC9C;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;QAC9B,OAAOA,YAAU,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;KACzD;IAED,IAAI,KAAK,YAAY,IAAI,EAAE;QACzB,OAAOA,YAAU,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;KAC1E;IAED,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAOA,YAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;KAC3C;IAED,OAAOA,YAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,IAAMA,YAAU,GAAG,UACjB,KAAsB,EACtB,kBAAsC;IAEtC,IAAI,kBAAkB,EAAE;QACtB,IAAM,aAAa,GAAG,kCAAkC,CACtD,kBAAkB,CACnB,CAAC;QACF,OAAO,SACL,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,GAAG,GAAG,EAAE,UACnD,KAAK,UAAO,CAAC;KAClB;IACD,OAAO,SAAO,KAAK,UAAO,CAAC;AAC7B,CAAC;;ACjEM,IAAMC,mBAAiB,GAAG,UAK/B,IAAW,EACX,MAA+D,EAC/D,YAA+D,EAC/D,UAAoD;IAEpD,OAAO,OAAO,CACZ,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW;QAC3B,OAAA,WAAW,CAAC,WAAW,CAAC,GAAG,CAAS,UAAC,QAAQ;YAC3C,OAAAC,eAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;SAAA,CAClD;KAAA,CACF,CACF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC,CAAC;AAEK,IAAMA,eAAa,GAAG,UAK3B,IAAW,EACX,QAAoB,EACpB,MAA+D,EAC/D,UAAoD;IAEpD,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAM,SAAS,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,CAAC,CAAC;IACzC,OAAOH,qBAAmB,CACxB,IAAI,EACJ,YAAY,CAAC,iBAAiB,EAC9B,YAAY,CAAC,kBAAkB,EAC/B,YAAY,CAAC,kBAAkB,EAC/B,SAAS,CACV,CAAC;AACJ,CAAC;;ICnCY,gBAAgB,GAAG,UAK9B,MAA+D,EAC/D,KAAmB,EACnB,UAAoD;IAEpD,IAAM,kBAAkB,GAAG,8BAA8B,CACvD,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,EAC1D,kBAAkB,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,GAAG,SAAS,EAClE,aAAa,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,SAAS,CACzD,CAAC;IAEF,IAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,IAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,GAAA,CAAC,CAAC;IAElE,IAAI,cAAc,IAAI,MAAM,EAAE;QAC5B,UAAU,CAAC,IAAI,CAACD,uBAAqB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/D;IACD,UAAU,CAAC,IAAI,CAACD,uBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,IAAM,MAAM,GAAG,YAAU,UAAU;SAChC,GAAG,CAAC,UAAC,SAAS,IAAK,OAAA,SAAO,SAAS,UAAO,GAAA,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,aAAU,CAAC;IAEtB,IAAM,SAAS,GAAG,KAAK;SACpB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAAI,mBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,GAAA,CAAC;SACxE,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,SAAO,GAAG,UAAO,GAAA,CAAC,CAAC;IAEnC,IAAM,IAAI,GAAG,YAAU,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAU,CAAC;IACpD,OAAO,YAAU,MAAM,GAAG,IAAI,aAAU,CAAC;AAC3C;;ACvCO,IAAM,0BAA0B,GAAG,UAKxC,MAA+D,EAC/D,KAAmB,EACnB,UAAoD;IAEpD,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;;SCTqB,sBAAsB,CAK1C,KAA0B,EAC1B,MAA+D,EAC/D,UAEa,EACb,aAAkD;;;;;;oBAE9C,UAAU,GAAkB,EAAE,CAAC;oBAEnC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;wBACzB,UAAU,GAAG,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;qBACpE;oBAED,IAAI,aAAa,EAAE;wBACjB,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;qBACxC;yBACG,UAAU,EAAV,wBAAU;oBACN,IAAI,GAAG,IAAIE,aAAuB,CAAC;wBACvC,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qBAC3D,CAAC,CAAC;oBAEH,qBAAMC,KAAe,CAAC,CAAC,IAAI,CAAC,CAAC,EAAA;;oBAA7B,SAA6B,CAAC;;;;;;;;SCRlB,sCAAsC,CAIpD,EAaD;IAjBD,iBAkCC;QA7BC,MAAM,YAAA,EACN,aAAa,mBAAA,EACb,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,aAA2B,EAA3B,KAAK,mBAAG,mBAAmB,KAAA,EAC3B,sBAAkC,EAAlC,cAAc,mBAAG,iBAAiB,KAAA,EAClC,4BAA2B,EAA3B,oBAAoB,mBAAG,IAAI,KAAA;IAMrB,IAAA,KAAoC,QAAQ,CAAU,KAAK,CAAC,EAA3D,aAAa,QAAA,EAAE,gBAAgB,QAA4B,CAAC;IACnE,IAAM,iBAAiB,GAAG,WAAW,CAAC;;;wBACpC,qBAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAA;;oBAAtE,SAAsE,CAAC;oBAEvE,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvB,UAAU,CAAC,cAAM,OAAA,gBAAgB,CAAC,KAAK,CAAC,GAAA,EAAE,oBAAoB,CAAC,CAAC;;;;SACjE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;IAErE,QACER,cAAC,UAAU,IACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EACjC,KAAK,EAAE,aAAa,GAAG,cAAc,GAAG,KAAK,GAC7C,EACF;AACJ;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/features/grid-excel-export/transformers/HeaderTransformer.ts","../src/features/grid-excel-export/transformers/CellTransformer.ts","../src/features/grid-excel-export/transformers/RowTransformer.ts","../src/features/grid-excel-export/transformers/ConfigTransformer.ts","../src/features/grid-excel-export/util/ExcelDownloader.ts","../src/features/grid-excel-export/components/StandardTableExcelExportButton.tsx","../src/features/grid-copy-to-clipboard/transformers/AlignmentTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/HeaderTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/CellTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/RowTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/ConfigTransformer.ts","../src/features/grid-copy-to-clipboard/util/HtmlRenderer.ts","../src/features/grid-copy-to-clipboard/util/CopyContentToClipboard.ts","../src/features/grid-copy-to-clipboard/components/StandardTableHtmlCopyToClipboardButton.tsx"],"sourcesContent":["import {\n formatColumnIdToHeaderCellLabel,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXRow } from \"zipcelx\";\nimport { StandardTableColumnGroupConfig } from \"@stenajs-webui/grid\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n return {\n type: \"string\",\n value:\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId)),\n };\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((_, index) => {\n return {\n type: \"string\",\n value: index === 0 ? groupConfig.label ?? \"\" : \"\",\n };\n })\n )\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { ZipCelXCell } from \"zipcelx\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): ZipCelXCell => {\n if (formatter) {\n return createCell(formatter(item));\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\");\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"));\n }\n\n if (value == null) {\n return createCell(\"\");\n }\n\n return createCell(String(value));\n};\n\nconst createCell = (value: string | number): ZipCelXCell => {\n const type = typeof value === \"number\" ? \"number\" : \"string\";\n return {\n type,\n value,\n };\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXCell, ZipCelXRow } from \"zipcelx\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<ZipCelXCell>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n );\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXCell => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { ZipCelXConfig, ZipCelXRow } from \"zipcelx\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createZipcelxConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXConfig => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<ZipCelXRow> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs));\n\n return {\n filename,\n sheet: {\n data: [\n ...headerRows,\n ...items.map<ZipCelXRow>((item) =>\n transformTableRow(item, config, groupConfigs, formatters)\n ),\n ],\n },\n };\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport zipcelx from \"zipcelx\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createZipcelxConfig } from \"../transformers/ConfigTransformer\";\n\nexport const downloadExcelForStandardTable = async <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n const excelConfig = createZipcelxConfig(filename, config, items, formatters);\n await zipcelx(excelConfig);\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { downloadExcelForStandardTable } from \"../util/ExcelDownloader\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { faFileDownload } from \"@fortawesome/free-solid-svg-icons/faFileDownload\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\ninterface StandardTableExcelExportButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n filename?: string;\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n}\n\nexport const StandardTableExcelExportButton = function StandardTableExcelExportButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n size,\n items,\n filename = \"exported-spreadsheet\",\n formatters,\n}: StandardTableExcelExportButtonProps<TItem, TColumnKey, TColumnGroupKey>) {\n const onClickExportExcel = useCallback(async () => {\n if (items && items.length) {\n await downloadExcelForStandardTable(filename, config, items, formatters);\n }\n }, [config, items, filename, formatters]);\n\n return (\n <FlatButton\n size={size}\n leftIcon={faFileDownload}\n onClick={onClickExportExcel}\n disabled={!items || !items.length}\n />\n );\n};\n","export const transformJustifyContentToTextAlign = (\n justifyContent: string | undefined\n): string | undefined => {\n switch (justifyContent?.toLowerCase()) {\n case \"left\":\n case \"start\":\n case \"flex-start\":\n return \"text-align: left\";\n case \"right\":\n case \"end\":\n case \"flex-end\":\n return \"text-align: right\";\n case \"center\":\n return \"text-align: center\";\n default:\n return undefined;\n }\n};\n","import {\n formatColumnIdToHeaderCellLabel,\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n\n if (columnConfig.justifyContentHeader) {\n const styleProperty = transformJustifyContentToTextAlign(\n columnConfig.justifyContentHeader\n );\n return `<th${styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"}>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n }\n return `<th>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) => {\n return `<th style=\"text-align: left\" colspan=\"${\n groupConfig.columnOrder.length\n }\">${groupConfig.label ?? \"\"}</th>`;\n })\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n justifyContentCell: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"justifyContentCell\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): string => {\n if (formatter) {\n return createCell(formatter(item), justifyContentCell);\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label, justifyContentCell);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value, justifyContentCell);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\", justifyContentCell);\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"), justifyContentCell);\n }\n\n if (value == null) {\n return createCell(\"\", justifyContentCell);\n }\n\n return createCell(String(value), justifyContentCell);\n};\n\nconst createCell = (\n value: string | number,\n justifyContentCell: string | undefined\n): string => {\n if (justifyContentCell) {\n const styleProperty = transformJustifyContentToTextAlign(\n justifyContentCell\n );\n return `<td${\n styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"\n }>${value}</td>`;\n }\n return `<td>${value}</td>`;\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<string>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n ).join(\"\");\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.justifyContentCell,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createHtmlConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<string> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs).join(\"\"));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs).join(\"\"));\n const header = `<thead>${headerRows\n .map((headerRow) => `<tr>${headerRow}</tr>`)\n .join(\"\")}</thead>`;\n\n const tbodyRows = items\n .map((item) => transformTableRow(item, config, groupConfigs, formatters))\n .map((row) => `<tr>${row}</tr>`);\n\n const body = `<tbody>${tbodyRows.join(\"\")}</tbody>`;\n return `<table>${header}${body}</table>`;\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createHtmlConfig } from \"../transformers/ConfigTransformer\";\n\nexport const renderHtmlForStandardTable = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n return createHtmlConfig(config, items, formatters);\n};\n","import { renderHtmlForStandardTable } from \"./HtmlRenderer\";\nimport * as clipboard from \"clipboard-polyfill\";\nimport { StandardTableConfig } from \"@stenajs-webui/grid/dist/features/standard-table/config/StandardTableConfig\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport async function copyContentToClipboard<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n items: TItem[] | undefined,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?:\n | Partial<Record<TColumnKey, CustomCellFormatter<TItem>>>\n | undefined,\n renderContent?: (content: string) => string | null\n) {\n let htmlToCopy: string | null = \"\";\n\n if (items && items.length) {\n htmlToCopy = renderHtmlForStandardTable(config, items, formatters);\n }\n\n if (renderContent) {\n htmlToCopy = renderContent(htmlToCopy);\n }\n if (htmlToCopy) {\n const item = new clipboard.ClipboardItem({\n \"text/html\": new Blob([htmlToCopy], { type: \"text/html\" }),\n });\n\n await clipboard.write([item]);\n }\n}\n","import * as React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { copyContentToClipboard } from \"../util/CopyContentToClipboard\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport interface StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n renderContent?: (content: string) => string | null;\n label?: string;\n labelAfterCopy?: string;\n numTimeToRevertLabel?: number;\n}\n\nexport function StandardTableHtmlCopyToClipboardButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n renderContent,\n size,\n items,\n formatters,\n label = \"Copy to clipboard\",\n labelAfterCopy = \"Content copied!\",\n numTimeToRevertLabel = 2000,\n}: StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey,\n TColumnGroupKey\n>) {\n const [contentCopied, setContentCopied] = useState<boolean>(false);\n const onClickExportHtml = useCallback(async () => {\n await copyContentToClipboard(items, config, formatters, renderContent);\n\n setContentCopied(true);\n setTimeout(() => setContentCopied(false), numTimeToRevertLabel);\n }, [config, items, formatters, numTimeToRevertLabel, renderContent]);\n\n return (\n <FlatButton\n size={size}\n onClick={onClickExportHtml}\n disabled={!items || !items.length}\n label={contentCopied ? labelAfterCopy : label}\n />\n );\n}\n"],"names":["transformTableHeaders","transformGroupHeaders","transformItemToCell","createCell","transformTableRow","transformCell"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,7 +13,27 @@ var clipboard = require('clipboard-polyfill');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
+ function _interopNamespace(e) {
17
+ if (e && e.__esModule) return e;
18
+ var n = Object.create(null);
19
+ if (e) {
20
+ Object.keys(e).forEach(function (k) {
21
+ if (k !== 'default') {
22
+ var d = Object.getOwnPropertyDescriptor(e, k);
23
+ Object.defineProperty(n, k, d.get ? d : {
24
+ enumerable: true,
25
+ get: function () { return e[k]; }
26
+ });
27
+ }
28
+ });
29
+ }
30
+ n["default"] = e;
31
+ return Object.freeze(n);
32
+ }
33
+
34
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
16
35
  var zipcelx__default = /*#__PURE__*/_interopDefaultLegacy(zipcelx);
36
+ var clipboard__namespace = /*#__PURE__*/_interopNamespace(clipboard);
17
37
 
18
38
  /*! *****************************************************************************
19
39
  Copyright (c) Microsoft Corporation.
@@ -68,15 +88,17 @@ function __generator(thisArg, body) {
68
88
  }
69
89
  }
70
90
 
71
- function __spreadArrays() {
72
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
73
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
74
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
75
- r[k] = a[j];
76
- return r;
91
+ function __spreadArray(to, from, pack) {
92
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
93
+ if (ar || !(i in from)) {
94
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
95
+ ar[i] = from[i];
96
+ }
97
+ }
98
+ return to.concat(ar || Array.prototype.slice.call(from));
77
99
  }
78
100
 
79
- var transformTableHeaders = function (config, groupConfigs) {
101
+ var transformTableHeaders$1 = function (config, groupConfigs) {
80
102
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
81
103
  return groupConfig.columnOrder.map(function (columnId) {
82
104
  var _a;
@@ -88,7 +110,7 @@ var transformTableHeaders = function (config, groupConfigs) {
88
110
  });
89
111
  }));
90
112
  };
91
- var transformGroupHeaders = function (groupConfigs) {
113
+ var transformGroupHeaders$1 = function (groupConfigs) {
92
114
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
93
115
  return groupConfig.columnOrder.map(function (_, index) {
94
116
  var _a;
@@ -100,30 +122,30 @@ var transformGroupHeaders = function (groupConfigs) {
100
122
  }));
101
123
  };
102
124
 
103
- var transformItemToCell = function (item, itemValueResolver, itemLabelFormatter, formatter) {
125
+ var transformItemToCell$1 = function (item, itemValueResolver, itemLabelFormatter, formatter) {
104
126
  if (formatter) {
105
- return createCell(formatter(item));
127
+ return createCell$1(formatter(item));
106
128
  }
107
129
  var value = itemValueResolver(item);
108
130
  if (itemLabelFormatter) {
109
131
  var label = itemLabelFormatter === null || itemLabelFormatter === void 0 ? void 0 : itemLabelFormatter(value, item);
110
- return createCell(label);
132
+ return createCell$1(label);
111
133
  }
112
134
  if (typeof value === "number" || typeof value === "string") {
113
- return createCell(value);
135
+ return createCell$1(value);
114
136
  }
115
137
  if (typeof value === "boolean") {
116
- return createCell(value ? "Y" : "");
138
+ return createCell$1(value ? "Y" : "");
117
139
  }
118
140
  if (value instanceof Date) {
119
- return createCell(dateFns.format(value, "yyyy-MM-dd HH:mm"));
141
+ return createCell$1(dateFns.format(value, "yyyy-MM-dd HH:mm"));
120
142
  }
121
143
  if (value == null) {
122
- return createCell("");
144
+ return createCell$1("");
123
145
  }
124
- return createCell(String(value));
146
+ return createCell$1(String(value));
125
147
  };
126
- var createCell = function (value) {
148
+ var createCell$1 = function (value) {
127
149
  var type = typeof value === "number" ? "number" : "string";
128
150
  return {
129
151
  type: type,
@@ -131,17 +153,17 @@ var createCell = function (value) {
131
153
  };
132
154
  };
133
155
 
134
- var transformTableRow = function (item, config, groupConfigs, formatters) {
156
+ var transformTableRow$1 = function (item, config, groupConfigs, formatters) {
135
157
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
136
158
  return groupConfig.columnOrder.map(function (columnId) {
137
- return transformCell(item, columnId, config, formatters);
159
+ return transformCell$1(item, columnId, config, formatters);
138
160
  });
139
161
  }));
140
162
  };
141
- var transformCell = function (item, columnId, config, formatters) {
163
+ var transformCell$1 = function (item, columnId, config, formatters) {
142
164
  var columnConfig = config.columns[columnId];
143
165
  var formatter = formatters === null || formatters === void 0 ? void 0 : formatters[columnId];
144
- return transformItemToCell(item, columnConfig.itemValueResolver, columnConfig.itemLabelFormatter, formatter);
166
+ return transformItemToCell$1(item, columnConfig.itemValueResolver, columnConfig.itemLabelFormatter, formatter);
145
167
  };
146
168
 
147
169
  var createZipcelxConfig = function (filename, config, items, formatters) {
@@ -149,15 +171,15 @@ var createZipcelxConfig = function (filename, config, items, formatters) {
149
171
  var headerRows = [];
150
172
  var groupConfigs = groupConfigsAndIds.map(function (p) { return p.groupConfig; });
151
173
  if ("columnGroups" in config) {
152
- headerRows.push(transformGroupHeaders(groupConfigs));
174
+ headerRows.push(transformGroupHeaders$1(groupConfigs));
153
175
  }
154
- headerRows.push(transformTableHeaders(config, groupConfigs));
176
+ headerRows.push(transformTableHeaders$1(config, groupConfigs));
155
177
  return {
156
178
  filename: filename,
157
179
  sheet: {
158
- data: __spreadArrays(headerRows, items.map(function (item) {
159
- return transformTableRow(item, config, groupConfigs, formatters);
160
- })),
180
+ data: __spreadArray(__spreadArray([], headerRows, true), items.map(function (item) {
181
+ return transformTableRow$1(item, config, groupConfigs, formatters);
182
+ }), true),
161
183
  },
162
184
  };
163
185
  };
@@ -168,7 +190,7 @@ var downloadExcelForStandardTable = function (filename, config, items, formatter
168
190
  switch (_a.label) {
169
191
  case 0:
170
192
  excelConfig = createZipcelxConfig(filename, config, items, formatters);
171
- return [4 /*yield*/, zipcelx__default['default'](excelConfig)];
193
+ return [4 /*yield*/, zipcelx__default["default"](excelConfig)];
172
194
  case 1:
173
195
  _a.sent();
174
196
  return [2 /*return*/];
@@ -192,7 +214,7 @@ var StandardTableExcelExportButton = function StandardTableExcelExportButton(_a)
192
214
  }
193
215
  });
194
216
  }); }, [config, items, filename, formatters]);
195
- return (React.createElement(elements.FlatButton, { size: size, leftIcon: faFileDownload.faFileDownload, onClick: onClickExportExcel, disabled: !items || !items.length }));
217
+ return (React__namespace.createElement(elements.FlatButton, { size: size, leftIcon: faFileDownload.faFileDownload, onClick: onClickExportExcel, disabled: !items || !items.length }));
196
218
  };
197
219
 
198
220
  var transformJustifyContentToTextAlign = function (justifyContent) {
@@ -212,7 +234,7 @@ var transformJustifyContentToTextAlign = function (justifyContent) {
212
234
  }
213
235
  };
214
236
 
215
- var transformTableHeaders$1 = function (config, groupConfigs) {
237
+ var transformTableHeaders = function (config, groupConfigs) {
216
238
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
217
239
  return groupConfig.columnOrder.map(function (columnId) {
218
240
  var _a, _b;
@@ -225,37 +247,37 @@ var transformTableHeaders$1 = function (config, groupConfigs) {
225
247
  });
226
248
  }));
227
249
  };
228
- var transformGroupHeaders$1 = function (groupConfigs) {
250
+ var transformGroupHeaders = function (groupConfigs) {
229
251
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
230
252
  var _a;
231
253
  return "<th style=\"text-align: left\" colspan=\"" + groupConfig.columnOrder.length + "\">" + ((_a = groupConfig.label) !== null && _a !== void 0 ? _a : "") + "</th>";
232
254
  }));
233
255
  };
234
256
 
235
- var transformItemToCell$1 = function (item, itemValueResolver, justifyContentCell, itemLabelFormatter, formatter) {
257
+ var transformItemToCell = function (item, itemValueResolver, justifyContentCell, itemLabelFormatter, formatter) {
236
258
  if (formatter) {
237
- return createCell$1(formatter(item), justifyContentCell);
259
+ return createCell(formatter(item), justifyContentCell);
238
260
  }
239
261
  var value = itemValueResolver(item);
240
262
  if (itemLabelFormatter) {
241
263
  var label = itemLabelFormatter === null || itemLabelFormatter === void 0 ? void 0 : itemLabelFormatter(value, item);
242
- return createCell$1(label, justifyContentCell);
264
+ return createCell(label, justifyContentCell);
243
265
  }
244
266
  if (typeof value === "number" || typeof value === "string") {
245
- return createCell$1(value, justifyContentCell);
267
+ return createCell(value, justifyContentCell);
246
268
  }
247
269
  if (typeof value === "boolean") {
248
- return createCell$1(value ? "Y" : "", justifyContentCell);
270
+ return createCell(value ? "Y" : "", justifyContentCell);
249
271
  }
250
272
  if (value instanceof Date) {
251
- return createCell$1(dateFns.format(value, "yyyy-MM-dd HH:mm"), justifyContentCell);
273
+ return createCell(dateFns.format(value, "yyyy-MM-dd HH:mm"), justifyContentCell);
252
274
  }
253
275
  if (value == null) {
254
- return createCell$1("", justifyContentCell);
276
+ return createCell("", justifyContentCell);
255
277
  }
256
- return createCell$1(String(value), justifyContentCell);
278
+ return createCell(String(value), justifyContentCell);
257
279
  };
258
- var createCell$1 = function (value, justifyContentCell) {
280
+ var createCell = function (value, justifyContentCell) {
259
281
  if (justifyContentCell) {
260
282
  var styleProperty = transformJustifyContentToTextAlign(justifyContentCell);
261
283
  return "<td" + (styleProperty ? ' style="' + styleProperty + '"' : "") + ">" + value + "</td>";
@@ -263,17 +285,17 @@ var createCell$1 = function (value, justifyContentCell) {
263
285
  return "<td>" + value + "</td>";
264
286
  };
265
287
 
266
- var transformTableRow$1 = function (item, config, groupConfigs, formatters) {
288
+ var transformTableRow = function (item, config, groupConfigs, formatters) {
267
289
  return lodash.flatten(groupConfigs.map(function (groupConfig) {
268
290
  return groupConfig.columnOrder.map(function (columnId) {
269
- return transformCell$1(item, columnId, config, formatters);
291
+ return transformCell(item, columnId, config, formatters);
270
292
  });
271
293
  })).join("");
272
294
  };
273
- var transformCell$1 = function (item, columnId, config, formatters) {
295
+ var transformCell = function (item, columnId, config, formatters) {
274
296
  var columnConfig = config.columns[columnId];
275
297
  var formatter = formatters === null || formatters === void 0 ? void 0 : formatters[columnId];
276
- return transformItemToCell$1(item, columnConfig.itemValueResolver, columnConfig.justifyContentCell, columnConfig.itemLabelFormatter, formatter);
298
+ return transformItemToCell(item, columnConfig.itemValueResolver, columnConfig.justifyContentCell, columnConfig.itemLabelFormatter, formatter);
277
299
  };
278
300
 
279
301
  var createHtmlConfig = function (config, items, formatters) {
@@ -281,14 +303,14 @@ var createHtmlConfig = function (config, items, formatters) {
281
303
  var headerRows = [];
282
304
  var groupConfigs = groupConfigsAndIds.map(function (p) { return p.groupConfig; });
283
305
  if ("columnGroups" in config) {
284
- headerRows.push(transformGroupHeaders$1(groupConfigs).join(""));
306
+ headerRows.push(transformGroupHeaders(groupConfigs).join(""));
285
307
  }
286
- headerRows.push(transformTableHeaders$1(config, groupConfigs).join(""));
308
+ headerRows.push(transformTableHeaders(config, groupConfigs).join(""));
287
309
  var header = "<thead>" + headerRows
288
310
  .map(function (headerRow) { return "<tr>" + headerRow + "</tr>"; })
289
311
  .join("") + "</thead>";
290
312
  var tbodyRows = items
291
- .map(function (item) { return transformTableRow$1(item, config, groupConfigs, formatters); })
313
+ .map(function (item) { return transformTableRow(item, config, groupConfigs, formatters); })
292
314
  .map(function (row) { return "<tr>" + row + "</tr>"; });
293
315
  var body = "<tbody>" + tbodyRows.join("") + "</tbody>";
294
316
  return "<table>" + header + body + "</table>";
@@ -312,10 +334,10 @@ function copyContentToClipboard(items, config, formatters, renderContent) {
312
334
  htmlToCopy = renderContent(htmlToCopy);
313
335
  }
314
336
  if (!htmlToCopy) return [3 /*break*/, 2];
315
- item = new clipboard.ClipboardItem({
337
+ item = new clipboard__namespace.ClipboardItem({
316
338
  "text/html": new Blob([htmlToCopy], { type: "text/html" }),
317
339
  });
318
- return [4 /*yield*/, clipboard.write([item])];
340
+ return [4 /*yield*/, clipboard__namespace.write([item])];
319
341
  case 1:
320
342
  _a.sent();
321
343
  _a.label = 2;
@@ -341,7 +363,7 @@ function StandardTableHtmlCopyToClipboardButton(_a) {
341
363
  }
342
364
  });
343
365
  }); }, [config, items, formatters, numTimeToRevertLabel, renderContent]);
344
- return (React.createElement(elements.FlatButton, { size: size, onClick: onClickExportHtml, disabled: !items || !items.length, label: contentCopied ? labelAfterCopy : label }));
366
+ return (React__namespace.createElement(elements.FlatButton, { size: size, onClick: onClickExportHtml, disabled: !items || !items.length, label: contentCopied ? labelAfterCopy : label }));
345
367
  }
346
368
 
347
369
  exports.StandardTableExcelExportButton = StandardTableExcelExportButton;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/features/grid-excel-export/transformers/HeaderTransformer.ts","../src/features/grid-excel-export/transformers/CellTransformer.ts","../src/features/grid-excel-export/transformers/RowTransformer.ts","../src/features/grid-excel-export/transformers/ConfigTransformer.ts","../src/features/grid-excel-export/util/ExcelDownloader.ts","../src/features/grid-excel-export/components/StandardTableExcelExportButton.tsx","../src/features/grid-copy-to-clipboard/transformers/AlignmentTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/HeaderTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/CellTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/RowTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/ConfigTransformer.ts","../src/features/grid-copy-to-clipboard/util/HtmlRenderer.ts","../src/features/grid-copy-to-clipboard/util/CopyContentToClipboard.ts","../src/features/grid-copy-to-clipboard/components/StandardTableHtmlCopyToClipboardButton.tsx"],"sourcesContent":["import {\n formatColumnIdToHeaderCellLabel,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXRow } from \"zipcelx\";\nimport { StandardTableColumnGroupConfig } from \"@stenajs-webui/grid\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n return {\n type: \"string\",\n value:\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId)),\n };\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((_, index) => {\n return {\n type: \"string\",\n value: index === 0 ? groupConfig.label ?? \"\" : \"\",\n };\n })\n )\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { ZipCelXCell } from \"zipcelx\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): ZipCelXCell => {\n if (formatter) {\n return createCell(formatter(item));\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\");\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"));\n }\n\n if (value == null) {\n return createCell(\"\");\n }\n\n return createCell(String(value));\n};\n\nconst createCell = (value: string | number): ZipCelXCell => {\n const type = typeof value === \"number\" ? \"number\" : \"string\";\n return {\n type,\n value,\n };\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXCell, ZipCelXRow } from \"zipcelx\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<ZipCelXCell>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n );\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXCell => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { ZipCelXConfig, ZipCelXRow } from \"zipcelx\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createZipcelxConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXConfig => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<ZipCelXRow> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs));\n\n return {\n filename,\n sheet: {\n data: [\n ...headerRows,\n ...items.map<ZipCelXRow>((item) =>\n transformTableRow(item, config, groupConfigs, formatters)\n ),\n ],\n },\n };\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport zipcelx from \"zipcelx\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createZipcelxConfig } from \"../transformers/ConfigTransformer\";\n\nexport const downloadExcelForStandardTable = async <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n const excelConfig = createZipcelxConfig(filename, config, items, formatters);\n await zipcelx(excelConfig);\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { downloadExcelForStandardTable } from \"../util/ExcelDownloader\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { faFileDownload } from \"@fortawesome/free-solid-svg-icons/faFileDownload\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\ninterface StandardTableExcelExportButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n filename?: string;\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n}\n\nexport const StandardTableExcelExportButton = function StandardTableExcelExportButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n size,\n items,\n filename = \"exported-spreadsheet\",\n formatters,\n}: StandardTableExcelExportButtonProps<TItem, TColumnKey, TColumnGroupKey>) {\n const onClickExportExcel = useCallback(async () => {\n if (items && items.length) {\n await downloadExcelForStandardTable(filename, config, items, formatters);\n }\n }, [config, items, filename, formatters]);\n\n return (\n <FlatButton\n size={size}\n leftIcon={faFileDownload}\n onClick={onClickExportExcel}\n disabled={!items || !items.length}\n />\n );\n};\n","export const transformJustifyContentToTextAlign = (\n justifyContent: string | undefined\n): string | undefined => {\n switch (justifyContent?.toLowerCase()) {\n case \"left\":\n case \"start\":\n case \"flex-start\":\n return \"text-align: left\";\n case \"right\":\n case \"end\":\n case \"flex-end\":\n return \"text-align: right\";\n case \"center\":\n return \"text-align: center\";\n default:\n return undefined;\n }\n};\n","import {\n formatColumnIdToHeaderCellLabel,\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n\n if (columnConfig.justifyContentHeader) {\n const styleProperty = transformJustifyContentToTextAlign(\n columnConfig.justifyContentHeader\n );\n return `<th${styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"}>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n }\n return `<th>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) => {\n return `<th style=\"text-align: left\" colspan=\"${\n groupConfig.columnOrder.length\n }\">${groupConfig.label ?? \"\"}</th>`;\n })\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n justifyContentCell: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"justifyContentCell\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): string => {\n if (formatter) {\n return createCell(formatter(item), justifyContentCell);\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label, justifyContentCell);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value, justifyContentCell);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\", justifyContentCell);\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"), justifyContentCell);\n }\n\n if (value == null) {\n return createCell(\"\", justifyContentCell);\n }\n\n return createCell(String(value), justifyContentCell);\n};\n\nconst createCell = (\n value: string | number,\n justifyContentCell: string | undefined\n): string => {\n if (justifyContentCell) {\n const styleProperty = transformJustifyContentToTextAlign(\n justifyContentCell\n );\n return `<td${\n styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"\n }>${value}</td>`;\n }\n return `<td>${value}</td>`;\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<string>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n ).join(\"\");\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.justifyContentCell,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createHtmlConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<string> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs).join(\"\"));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs).join(\"\"));\n const header = `<thead>${headerRows\n .map((headerRow) => `<tr>${headerRow}</tr>`)\n .join(\"\")}</thead>`;\n\n const tbodyRows = items\n .map((item) => transformTableRow(item, config, groupConfigs, formatters))\n .map((row) => `<tr>${row}</tr>`);\n\n const body = `<tbody>${tbodyRows.join(\"\")}</tbody>`;\n return `<table>${header}${body}</table>`;\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createHtmlConfig } from \"../transformers/ConfigTransformer\";\n\nexport const renderHtmlForStandardTable = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n return createHtmlConfig(config, items, formatters);\n};\n","import { renderHtmlForStandardTable } from \"./HtmlRenderer\";\nimport * as clipboard from \"clipboard-polyfill\";\nimport { StandardTableConfig } from \"@stenajs-webui/grid/dist/features/standard-table/config/StandardTableConfig\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport async function copyContentToClipboard<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n items: TItem[] | undefined,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?:\n | Partial<Record<TColumnKey, CustomCellFormatter<TItem>>>\n | undefined,\n renderContent?: (content: string) => string | null\n) {\n let htmlToCopy: string | null = \"\";\n\n if (items && items.length) {\n htmlToCopy = renderHtmlForStandardTable(config, items, formatters);\n }\n\n if (renderContent) {\n htmlToCopy = renderContent(htmlToCopy);\n }\n if (htmlToCopy) {\n const item = new clipboard.ClipboardItem({\n \"text/html\": new Blob([htmlToCopy], { type: \"text/html\" }),\n });\n\n await clipboard.write([item]);\n }\n}\n","import * as React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { copyContentToClipboard } from \"../util/CopyContentToClipboard\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport interface StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n renderContent?: (content: string) => string | null;\n label?: string;\n labelAfterCopy?: string;\n numTimeToRevertLabel?: number;\n}\n\nexport function StandardTableHtmlCopyToClipboardButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n renderContent,\n size,\n items,\n formatters,\n label = \"Copy to clipboard\",\n labelAfterCopy = \"Content copied!\",\n numTimeToRevertLabel = 2000,\n}: StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey,\n TColumnGroupKey\n>) {\n const [contentCopied, setContentCopied] = useState<boolean>(false);\n const onClickExportHtml = useCallback(async () => {\n await copyContentToClipboard(items, config, formatters, renderContent);\n\n setContentCopied(true);\n setTimeout(() => setContentCopied(false), numTimeToRevertLabel);\n }, [config, items, formatters, numTimeToRevertLabel, renderContent]);\n\n return (\n <FlatButton\n size={size}\n onClick={onClickExportHtml}\n disabled={!items || !items.length}\n label={contentCopied ? labelAfterCopy : label}\n />\n );\n}\n"],"names":["flatten","formatColumnIdToHeaderCellLabel","format","createGroupConfigAndIdsForRows","zipcelx","useCallback","React.createElement","FlatButton","faFileDownload","transformTableHeaders","transformGroupHeaders","transformItemToCell","createCell","transformTableRow","transformCell","clipboard.ClipboardItem","clipboard.write","useState"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/features/grid-excel-export/transformers/HeaderTransformer.ts","../src/features/grid-excel-export/transformers/CellTransformer.ts","../src/features/grid-excel-export/transformers/RowTransformer.ts","../src/features/grid-excel-export/transformers/ConfigTransformer.ts","../src/features/grid-excel-export/util/ExcelDownloader.ts","../src/features/grid-excel-export/components/StandardTableExcelExportButton.tsx","../src/features/grid-copy-to-clipboard/transformers/AlignmentTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/HeaderTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/CellTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/RowTransformer.ts","../src/features/grid-copy-to-clipboard/transformers/ConfigTransformer.ts","../src/features/grid-copy-to-clipboard/util/HtmlRenderer.ts","../src/features/grid-copy-to-clipboard/util/CopyContentToClipboard.ts","../src/features/grid-copy-to-clipboard/components/StandardTableHtmlCopyToClipboardButton.tsx"],"sourcesContent":["import {\n formatColumnIdToHeaderCellLabel,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXRow } from \"zipcelx\";\nimport { StandardTableColumnGroupConfig } from \"@stenajs-webui/grid\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n return {\n type: \"string\",\n value:\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId)),\n };\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((_, index) => {\n return {\n type: \"string\",\n value: index === 0 ? groupConfig.label ?? \"\" : \"\",\n };\n })\n )\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { ZipCelXCell } from \"zipcelx\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): ZipCelXCell => {\n if (formatter) {\n return createCell(formatter(item));\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\");\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"));\n }\n\n if (value == null) {\n return createCell(\"\");\n }\n\n return createCell(String(value));\n};\n\nconst createCell = (value: string | number): ZipCelXCell => {\n const type = typeof value === \"number\" ? \"number\" : \"string\";\n return {\n type,\n value,\n };\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { ZipCelXCell, ZipCelXRow } from \"zipcelx\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXRow => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<ZipCelXCell>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n );\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXCell => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { ZipCelXConfig, ZipCelXRow } from \"zipcelx\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createZipcelxConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): ZipCelXConfig => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<ZipCelXRow> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs));\n\n return {\n filename,\n sheet: {\n data: [\n ...headerRows,\n ...items.map<ZipCelXRow>((item) =>\n transformTableRow(item, config, groupConfigs, formatters)\n ),\n ],\n },\n };\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport zipcelx from \"zipcelx\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createZipcelxConfig } from \"../transformers/ConfigTransformer\";\n\nexport const downloadExcelForStandardTable = async <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n filename: string,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n const excelConfig = createZipcelxConfig(filename, config, items, formatters);\n await zipcelx(excelConfig);\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { downloadExcelForStandardTable } from \"../util/ExcelDownloader\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { faFileDownload } from \"@fortawesome/free-solid-svg-icons/faFileDownload\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\ninterface StandardTableExcelExportButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n filename?: string;\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n}\n\nexport const StandardTableExcelExportButton = function StandardTableExcelExportButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n size,\n items,\n filename = \"exported-spreadsheet\",\n formatters,\n}: StandardTableExcelExportButtonProps<TItem, TColumnKey, TColumnGroupKey>) {\n const onClickExportExcel = useCallback(async () => {\n if (items && items.length) {\n await downloadExcelForStandardTable(filename, config, items, formatters);\n }\n }, [config, items, filename, formatters]);\n\n return (\n <FlatButton\n size={size}\n leftIcon={faFileDownload}\n onClick={onClickExportExcel}\n disabled={!items || !items.length}\n />\n );\n};\n","export const transformJustifyContentToTextAlign = (\n justifyContent: string | undefined\n): string | undefined => {\n switch (justifyContent?.toLowerCase()) {\n case \"left\":\n case \"start\":\n case \"flex-start\":\n return \"text-align: left\";\n case \"right\":\n case \"end\":\n case \"flex-end\":\n return \"text-align: right\";\n case \"center\":\n return \"text-align: center\";\n default:\n return undefined;\n }\n};\n","import {\n formatColumnIdToHeaderCellLabel,\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformTableHeaders = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map((columnId) => {\n const columnConfig = config.columns[columnId];\n\n if (columnConfig.justifyContentHeader) {\n const styleProperty = transformJustifyContentToTextAlign(\n columnConfig.justifyContentHeader\n );\n return `<th${styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"}>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n }\n return `<th>${\n columnConfig.columnLabel ??\n formatColumnIdToHeaderCellLabel(String(columnId))\n }</th>`;\n })\n )\n );\n};\n\nexport const transformGroupHeaders = <TColumnKey extends string>(\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>\n): string[] => {\n return flatten(\n groupConfigs.map((groupConfig) => {\n return `<th style=\"text-align: left\" colspan=\"${\n groupConfig.columnOrder.length\n }\">${groupConfig.label ?? \"\"}</th>`;\n })\n );\n};\n","import { StandardTableColumnConfig } from \"@stenajs-webui/grid\";\nimport { format } from \"date-fns\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\nimport { transformJustifyContentToTextAlign } from \"./AlignmentTransformer\";\n\nexport const transformItemToCell = <\n TItem,\n TItemValue,\n TColumnKey extends string\n>(\n item: TItem,\n itemValueResolver: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemValueResolver\"],\n justifyContentCell: StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"justifyContentCell\"],\n itemLabelFormatter:\n | StandardTableColumnConfig<\n TItem,\n TItemValue,\n TColumnKey\n >[\"itemLabelFormatter\"]\n | undefined,\n formatter?: CustomCellFormatter<TItem>\n): string => {\n if (formatter) {\n return createCell(formatter(item), justifyContentCell);\n }\n\n const value = itemValueResolver(item);\n\n if (itemLabelFormatter) {\n const label = itemLabelFormatter?.(value, item);\n return createCell(label, justifyContentCell);\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n return createCell(value, justifyContentCell);\n }\n\n if (typeof value === \"boolean\") {\n return createCell(value ? \"Y\" : \"\", justifyContentCell);\n }\n\n if (value instanceof Date) {\n return createCell(format(value, \"yyyy-MM-dd HH:mm\"), justifyContentCell);\n }\n\n if (value == null) {\n return createCell(\"\", justifyContentCell);\n }\n\n return createCell(String(value), justifyContentCell);\n};\n\nconst createCell = (\n value: string | number,\n justifyContentCell: string | undefined\n): string => {\n if (justifyContentCell) {\n const styleProperty = transformJustifyContentToTextAlign(\n justifyContentCell\n );\n return `<td${\n styleProperty ? ' style=\"' + styleProperty + '\"' : \"\"\n }>${value}</td>`;\n }\n return `<td>${value}</td>`;\n};\n","import {\n StandardTableColumnGroupConfig,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport { flatten } from \"lodash\";\nimport { transformItemToCell } from \"./CellTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const transformTableRow = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n groupConfigs: Array<StandardTableColumnGroupConfig<TColumnKey>>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n return flatten(\n groupConfigs.map((groupConfig) =>\n groupConfig.columnOrder.map<string>((columnId) =>\n transformCell(item, columnId, config, formatters)\n )\n )\n ).join(\"\");\n};\n\nexport const transformCell = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n item: TItem,\n columnId: TColumnKey,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const columnConfig = config.columns[columnId];\n const formatter = formatters?.[columnId];\n return transformItemToCell(\n item,\n columnConfig.itemValueResolver,\n columnConfig.justifyContentCell,\n columnConfig.itemLabelFormatter,\n formatter\n );\n};\n","import {\n createGroupConfigAndIdsForRows,\n StandardTableConfig,\n} from \"@stenajs-webui/grid\";\nimport {\n transformGroupHeaders,\n transformTableHeaders,\n} from \"./HeaderTransformer\";\nimport { transformTableRow } from \"./RowTransformer\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport const createHtmlConfig = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n): string => {\n const groupConfigsAndIds = createGroupConfigAndIdsForRows(\n \"columnGroups\" in config ? config.columnGroups : undefined,\n \"columnGroupOrder\" in config ? config.columnGroupOrder : undefined,\n \"columnOrder\" in config ? config.columnOrder : undefined\n );\n\n const headerRows: Array<string> = [];\n const groupConfigs = groupConfigsAndIds.map((p) => p.groupConfig);\n\n if (\"columnGroups\" in config) {\n headerRows.push(transformGroupHeaders(groupConfigs).join(\"\"));\n }\n headerRows.push(transformTableHeaders(config, groupConfigs).join(\"\"));\n const header = `<thead>${headerRows\n .map((headerRow) => `<tr>${headerRow}</tr>`)\n .join(\"\")}</thead>`;\n\n const tbodyRows = items\n .map((item) => transformTableRow(item, config, groupConfigs, formatters))\n .map((row) => `<tr>${row}</tr>`);\n\n const body = `<tbody>${tbodyRows.join(\"\")}</tbody>`;\n return `<table>${header}${body}</table>`;\n};\n","import { StandardTableConfig } from \"@stenajs-webui/grid\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\nimport { createHtmlConfig } from \"../transformers/ConfigTransformer\";\n\nexport const renderHtmlForStandardTable = <\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n items: Array<TItem>,\n formatters?: CustomCellFormatters<TItem, TColumnKey>\n) => {\n return createHtmlConfig(config, items, formatters);\n};\n","import { renderHtmlForStandardTable } from \"./HtmlRenderer\";\nimport * as clipboard from \"clipboard-polyfill\";\nimport { StandardTableConfig } from \"@stenajs-webui/grid/dist/features/standard-table/config/StandardTableConfig\";\nimport { CustomCellFormatter } from \"../../../common/CellFormatters\";\n\nexport async function copyContentToClipboard<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>(\n items: TItem[] | undefined,\n config: StandardTableConfig<TItem, TColumnKey, TColumnGroupKey>,\n formatters?:\n | Partial<Record<TColumnKey, CustomCellFormatter<TItem>>>\n | undefined,\n renderContent?: (content: string) => string | null\n) {\n let htmlToCopy: string | null = \"\";\n\n if (items && items.length) {\n htmlToCopy = renderHtmlForStandardTable(config, items, formatters);\n }\n\n if (renderContent) {\n htmlToCopy = renderContent(htmlToCopy);\n }\n if (htmlToCopy) {\n const item = new clipboard.ClipboardItem({\n \"text/html\": new Blob([htmlToCopy], { type: \"text/html\" }),\n });\n\n await clipboard.write([item]);\n }\n}\n","import * as React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { StandardTableProps } from \"@stenajs-webui/grid\";\nimport { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport { copyContentToClipboard } from \"../util/CopyContentToClipboard\";\nimport { CustomCellFormatters } from \"../../../common/CellFormatters\";\n\nexport interface StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n> extends Pick<\n StandardTableProps<TItem, TColumnKey, TColumnGroupKey>,\n \"config\" | \"items\"\n >,\n Pick<FlatButtonProps, \"size\"> {\n formatters?: CustomCellFormatters<TItem, TColumnKey>;\n renderContent?: (content: string) => string | null;\n label?: string;\n labelAfterCopy?: string;\n numTimeToRevertLabel?: number;\n}\n\nexport function StandardTableHtmlCopyToClipboardButton<\n TItem,\n TColumnKey extends string,\n TColumnGroupKey extends string\n>({\n config,\n renderContent,\n size,\n items,\n formatters,\n label = \"Copy to clipboard\",\n labelAfterCopy = \"Content copied!\",\n numTimeToRevertLabel = 2000,\n}: StandardTableHtmlCopyToClipboardButtonProps<\n TItem,\n TColumnKey,\n TColumnGroupKey\n>) {\n const [contentCopied, setContentCopied] = useState<boolean>(false);\n const onClickExportHtml = useCallback(async () => {\n await copyContentToClipboard(items, config, formatters, renderContent);\n\n setContentCopied(true);\n setTimeout(() => setContentCopied(false), numTimeToRevertLabel);\n }, [config, items, formatters, numTimeToRevertLabel, renderContent]);\n\n return (\n <FlatButton\n size={size}\n onClick={onClickExportHtml}\n disabled={!items || !items.length}\n label={contentCopied ? labelAfterCopy : label}\n />\n );\n}\n"],"names":["transformTableHeaders","flatten","formatColumnIdToHeaderCellLabel","transformGroupHeaders","transformItemToCell","createCell","format","transformTableRow","transformCell","createGroupConfigAndIdsForRows","zipcelx","useCallback","React","FlatButton","faFileDownload","clipboard","useState"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/grid-export",
3
- "version": "14.1.1",
3
+ "version": "15.0.0-alpha.10",
4
4
  "description": "",
5
5
  "author": "mattias800",
6
6
  "license": "MIT",
@@ -19,7 +19,6 @@
19
19
  },
20
20
  "scripts": {
21
21
  "test": "jest",
22
- "test:watch": "react-scripts-ts test --env=jsdom",
23
22
  "build": "rollup -c",
24
23
  "start": "rollup -c -w",
25
24
  "clean": "rm -rf dist",
@@ -29,12 +28,12 @@
29
28
  },
30
29
  "dependencies": {
31
30
  "@fortawesome/free-solid-svg-icons": ">=5.15.3",
32
- "@stenajs-webui/core": "14.1.1",
33
- "@stenajs-webui/elements": "14.1.1",
34
- "@stenajs-webui/grid": "14.1.1",
31
+ "@stenajs-webui/core": "15.0.0-alpha.10",
32
+ "@stenajs-webui/elements": "15.0.0-alpha.10",
33
+ "@stenajs-webui/grid": "15.0.0-alpha.10",
35
34
  "@types/zipcelx": "^1.5.0",
36
35
  "clipboard-polyfill": "^3.0.2",
37
- "date-fns": "2.16.1",
36
+ "date-fns": "2.26.0",
38
37
  "zipcelx": "^1.6.2"
39
38
  },
40
39
  "peerDependencies": {
@@ -57,5 +56,5 @@
57
56
  "files": [
58
57
  "dist"
59
58
  ],
60
- "gitHead": "874166b4dd1b2520a14aad99a6c57fb783a9c363"
59
+ "gitHead": "8f037313b4dcab0e80a779a2122455b3235087d4"
61
60
  }