@slickgrid-universal/excel-export 2.1.3 → 2.2.1

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.
Files changed (39) hide show
  1. package/dist/commonjs/excelExport.service.d.ts +33 -8
  2. package/dist/commonjs/excelExport.service.js +96 -80
  3. package/dist/commonjs/excelExport.service.js.map +1 -1
  4. package/dist/commonjs/excelUtils.d.ts +28 -0
  5. package/dist/commonjs/excelUtils.js +211 -0
  6. package/dist/commonjs/excelUtils.js.map +1 -0
  7. package/dist/commonjs/interfaces/excelStylesheet.interface.d.ts +18 -17
  8. package/dist/commonjs/interfaces/index.d.ts +0 -3
  9. package/dist/commonjs/interfaces/index.js +0 -3
  10. package/dist/commonjs/interfaces/index.js.map +1 -1
  11. package/dist/esm/excelExport.service.d.ts +33 -8
  12. package/dist/esm/excelExport.service.js +97 -81
  13. package/dist/esm/excelExport.service.js.map +1 -1
  14. package/dist/esm/excelUtils.d.ts +28 -0
  15. package/dist/esm/excelUtils.js +202 -0
  16. package/dist/esm/excelUtils.js.map +1 -0
  17. package/dist/esm/interfaces/excelStylesheet.interface.d.ts +18 -17
  18. package/dist/esm/interfaces/index.d.ts +0 -3
  19. package/dist/esm/interfaces/index.js +0 -3
  20. package/dist/esm/interfaces/index.js.map +1 -1
  21. package/package.json +3 -3
  22. package/dist/commonjs/interfaces/excelExportOption.interface.d.ts +0 -31
  23. package/dist/commonjs/interfaces/excelExportOption.interface.js +0 -3
  24. package/dist/commonjs/interfaces/excelExportOption.interface.js.map +0 -1
  25. package/dist/commonjs/interfaces/excelWorkbook.interface.d.ts +0 -16
  26. package/dist/commonjs/interfaces/excelWorkbook.interface.js +0 -3
  27. package/dist/commonjs/interfaces/excelWorkbook.interface.js.map +0 -1
  28. package/dist/commonjs/interfaces/excelWorksheet.interface.d.ts +0 -35
  29. package/dist/commonjs/interfaces/excelWorksheet.interface.js +0 -3
  30. package/dist/commonjs/interfaces/excelWorksheet.interface.js.map +0 -1
  31. package/dist/esm/interfaces/excelExportOption.interface.d.ts +0 -31
  32. package/dist/esm/interfaces/excelExportOption.interface.js +0 -2
  33. package/dist/esm/interfaces/excelExportOption.interface.js.map +0 -1
  34. package/dist/esm/interfaces/excelWorkbook.interface.d.ts +0 -16
  35. package/dist/esm/interfaces/excelWorkbook.interface.js +0 -2
  36. package/dist/esm/interfaces/excelWorkbook.interface.js.map +0 -1
  37. package/dist/esm/interfaces/excelWorksheet.interface.d.ts +0 -35
  38. package/dist/esm/interfaces/excelWorksheet.interface.js +0 -2
  39. package/dist/esm/interfaces/excelWorksheet.interface.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExcelFormatFromGridFormatter = exports.getNumericFormatterOptions = exports.getGroupTotalValue = exports.useCellFormatByFieldType = exports.getExcelNumberCallback = exports.getExcelSameInputDataCallback = void 0;
4
+ const common_1 = require("@slickgrid-universal/common");
5
+ // define all type of potential excel data function callbacks
6
+ const getExcelSameInputDataCallback = (data) => data;
7
+ exports.getExcelSameInputDataCallback = getExcelSameInputDataCallback;
8
+ const getExcelNumberCallback = (data, _col, excelFormatterId) => ({
9
+ value: (0, common_1.isNumber)(data) ? +data : data,
10
+ metadata: { style: excelFormatterId }
11
+ });
12
+ exports.getExcelNumberCallback = getExcelNumberCallback;
13
+ /** use different Excel Stylesheet Format as per the Field Type */
14
+ function useCellFormatByFieldType(stylesheet, stylesheetFormatters, columnDef, grid) {
15
+ const fieldType = (0, common_1.getColumnFieldType)(columnDef);
16
+ let stylesheetFormatterId;
17
+ let callback = exports.getExcelSameInputDataCallback;
18
+ if (fieldType === common_1.FieldType.number) {
19
+ stylesheetFormatterId = getExcelFormatFromGridFormatter(stylesheet, stylesheetFormatters, columnDef, grid, 'cell').stylesheetFormatter.id;
20
+ callback = exports.getExcelNumberCallback;
21
+ }
22
+ return { stylesheetFormatterId, getDataValueParser: callback };
23
+ }
24
+ exports.useCellFormatByFieldType = useCellFormatByFieldType;
25
+ function getGroupTotalValue(totals, columnDef, groupType) {
26
+ var _a, _b;
27
+ return (_b = (_a = totals === null || totals === void 0 ? void 0 : totals[groupType]) === null || _a === void 0 ? void 0 : _a[columnDef.field]) !== null && _b !== void 0 ? _b : 0;
28
+ }
29
+ exports.getGroupTotalValue = getGroupTotalValue;
30
+ /** Get numeric formatter options when defined or use default values (minDecimal, maxDecimal, thousandSeparator, decimalSeparator, wrapNegativeNumber) */
31
+ function getNumericFormatterOptions(columnDef, grid, formatterType) {
32
+ let dataType;
33
+ if (formatterType === 'group') {
34
+ switch (columnDef.groupTotalsFormatter) {
35
+ case common_1.GroupTotalFormatters.avgTotalsCurrency:
36
+ case common_1.GroupTotalFormatters.avgTotalsDollar:
37
+ case common_1.GroupTotalFormatters.sumTotalsCurrency:
38
+ case common_1.GroupTotalFormatters.sumTotalsCurrencyColored:
39
+ case common_1.GroupTotalFormatters.sumTotalsDollar:
40
+ case common_1.GroupTotalFormatters.sumTotalsDollarBold:
41
+ case common_1.GroupTotalFormatters.sumTotalsDollarColored:
42
+ case common_1.GroupTotalFormatters.sumTotalsDollarColoredBold:
43
+ dataType = 'currency';
44
+ break;
45
+ case common_1.GroupTotalFormatters.avgTotalsPercentage:
46
+ dataType = 'percent';
47
+ break;
48
+ case common_1.GroupTotalFormatters.avgTotals:
49
+ case common_1.GroupTotalFormatters.minTotals:
50
+ case common_1.GroupTotalFormatters.maxTotals:
51
+ case common_1.GroupTotalFormatters.sumTotals:
52
+ case common_1.GroupTotalFormatters.sumTotalsColored:
53
+ case common_1.GroupTotalFormatters.sumTotalsBold:
54
+ default:
55
+ // side note, formatters are using "regular" without any decimal limits (min, max),
56
+ // however in Excel export with custom format that doesn't work so well, we should use "decimal" to at least show optional decimals with "##"
57
+ dataType = 'decimal';
58
+ break;
59
+ }
60
+ }
61
+ else {
62
+ switch (columnDef.formatter) {
63
+ case common_1.Formatters.currency:
64
+ case common_1.Formatters.dollar:
65
+ case common_1.Formatters.dollarColored:
66
+ case common_1.Formatters.dollarColoredBold:
67
+ dataType = 'currency';
68
+ break;
69
+ case common_1.Formatters.percent:
70
+ case common_1.Formatters.percentComplete:
71
+ case common_1.Formatters.percentCompleteBar:
72
+ case common_1.Formatters.percentCompleteBarWithText:
73
+ case common_1.Formatters.percentSymbol:
74
+ dataType = 'percent';
75
+ break;
76
+ case common_1.Formatters.decimal:
77
+ default:
78
+ // use "decimal" instead of "regular" to show optional decimals "##" in Excel
79
+ dataType = 'decimal';
80
+ break;
81
+ }
82
+ }
83
+ return (0, common_1.retrieveFormatterOptions)(columnDef, grid, dataType, formatterType);
84
+ }
85
+ exports.getNumericFormatterOptions = getNumericFormatterOptions;
86
+ function getExcelFormatFromGridFormatter(stylesheet, stylesheetFormatters, columnDef, grid, formatterType) {
87
+ let format = '';
88
+ let groupType = '';
89
+ let stylesheetFormatter;
90
+ const fieldType = (0, common_1.getColumnFieldType)(columnDef);
91
+ if (formatterType === 'group') {
92
+ switch (columnDef.groupTotalsFormatter) {
93
+ case common_1.GroupTotalFormatters.avgTotals:
94
+ case common_1.GroupTotalFormatters.avgTotalsCurrency:
95
+ case common_1.GroupTotalFormatters.avgTotalsDollar:
96
+ case common_1.GroupTotalFormatters.avgTotalsPercentage:
97
+ groupType = 'avg';
98
+ break;
99
+ case common_1.GroupTotalFormatters.minTotals:
100
+ groupType = 'min';
101
+ break;
102
+ case common_1.GroupTotalFormatters.maxTotals:
103
+ groupType = 'max';
104
+ break;
105
+ case common_1.GroupTotalFormatters.sumTotals:
106
+ case common_1.GroupTotalFormatters.sumTotalsBold:
107
+ case common_1.GroupTotalFormatters.sumTotalsColored:
108
+ case common_1.GroupTotalFormatters.sumTotalsCurrency:
109
+ case common_1.GroupTotalFormatters.sumTotalsCurrencyColored:
110
+ case common_1.GroupTotalFormatters.sumTotalsDollar:
111
+ case common_1.GroupTotalFormatters.sumTotalsDollarColoredBold:
112
+ case common_1.GroupTotalFormatters.sumTotalsDollarColored:
113
+ case common_1.GroupTotalFormatters.sumTotalsDollarBold:
114
+ groupType = 'sum';
115
+ break;
116
+ default:
117
+ stylesheetFormatter = stylesheetFormatters.numberFormatter;
118
+ break;
119
+ }
120
+ }
121
+ else {
122
+ switch (fieldType) {
123
+ case common_1.FieldType.number:
124
+ switch (columnDef.formatter) {
125
+ case common_1.Formatters.currency:
126
+ case common_1.Formatters.decimal:
127
+ case common_1.Formatters.dollar:
128
+ case common_1.Formatters.dollarColored:
129
+ case common_1.Formatters.dollarColoredBold:
130
+ case common_1.Formatters.percent:
131
+ case common_1.Formatters.percentComplete:
132
+ case common_1.Formatters.percentCompleteBar:
133
+ case common_1.Formatters.percentCompleteBarWithText:
134
+ case common_1.Formatters.percentSymbol:
135
+ format = createExcelFormatFromGridFormatter(columnDef, grid, 'cell');
136
+ break;
137
+ default:
138
+ stylesheetFormatter = stylesheetFormatters.numberFormatter;
139
+ break;
140
+ }
141
+ break;
142
+ }
143
+ }
144
+ if (!stylesheetFormatter && (columnDef.formatter || columnDef.groupTotalsFormatter)) {
145
+ format = createExcelFormatFromGridFormatter(columnDef, grid, formatterType, groupType);
146
+ if (!stylesheetFormatters.hasOwnProperty(format)) {
147
+ stylesheetFormatters[format] = stylesheet.createFormat({ format }); // save new formatter with its format as a prop key
148
+ }
149
+ stylesheetFormatter = stylesheetFormatters[format];
150
+ }
151
+ return { stylesheetFormatter: stylesheetFormatter, groupType };
152
+ }
153
+ exports.getExcelFormatFromGridFormatter = getExcelFormatFromGridFormatter;
154
+ // --
155
+ // private functions
156
+ // ------------------
157
+ function createFormatFromNumber(formattedVal) {
158
+ // full number syntax can have up to 7 sections, for example::
159
+ // Total: ($10,420.55 USD) Expensed
160
+ const [
161
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
162
+ _, prefix, openBraquet, symbolPrefix, number, symbolSuffix, closingBraquet, suffix] = (formattedVal === null || formattedVal === void 0 ? void 0 : formattedVal.match(/^([^\d\(\-]*)([\(]?)([^\d]*)([\-]?[\w]]?[\d\s]*[.,\d]*[\d]*[^)\s\%]?)([^\d.,)]*)([\)]?)([^\d]*)$/i)) || [];
163
+ // we use 1 so that they won't be removed when rounding numbers, however Excel uses 0 and # symbol
164
+ // replace 1's by 0's (required numbers) and replace 2's by "#" (optional numbers)
165
+ const replacedNumber = (number || '').replace(/1/g, '0').replace(/[2]/g, '#');
166
+ const format = [
167
+ escapeQuotes(prefix !== null && prefix !== void 0 ? prefix : ''),
168
+ openBraquet !== null && openBraquet !== void 0 ? openBraquet : '',
169
+ escapeQuotes(symbolPrefix !== null && symbolPrefix !== void 0 ? symbolPrefix : ''),
170
+ replacedNumber,
171
+ escapeQuotes(symbolSuffix !== null && symbolSuffix !== void 0 ? symbolSuffix : ''),
172
+ closingBraquet !== null && closingBraquet !== void 0 ? closingBraquet : '',
173
+ escapeQuotes(suffix !== null && suffix !== void 0 ? suffix : '')
174
+ ].join('');
175
+ return format.replace(',', '\,');
176
+ }
177
+ function createExcelFormatFromGridFormatter(columnDef, grid, formatterType, groupType = '') {
178
+ let outputFormat = '';
179
+ let positiveFormat = '';
180
+ let negativeFormat = '';
181
+ const { minDecimal, maxDecimal, thousandSeparator } = getNumericFormatterOptions(columnDef, grid, formatterType);
182
+ const leftInteger = thousandSeparator ? '2220' : '0';
183
+ const testingNo = parseFloat(`${leftInteger}.${excelTestingDecimalNumberPadding(minDecimal, maxDecimal)}`);
184
+ if (formatterType === 'group' && columnDef.groupTotalsFormatter) {
185
+ positiveFormat = (0, common_1.sanitizeHtmlToText)(columnDef.groupTotalsFormatter({ [groupType]: { [columnDef.field]: testingNo } }, columnDef, grid));
186
+ negativeFormat = (0, common_1.sanitizeHtmlToText)(columnDef.groupTotalsFormatter({ [groupType]: { [columnDef.field]: -testingNo } }, columnDef, grid));
187
+ }
188
+ else if (columnDef.formatter) {
189
+ positiveFormat = (0, common_1.sanitizeHtmlToText)(columnDef.formatter(0, 0, testingNo, columnDef, {}, grid));
190
+ negativeFormat = (0, common_1.sanitizeHtmlToText)(columnDef.formatter(0, 0, -testingNo, columnDef, {}, grid));
191
+ }
192
+ if (positiveFormat && negativeFormat) {
193
+ outputFormat = createFormatFromNumber(positiveFormat) + ';' + createFormatFromNumber(negativeFormat);
194
+ }
195
+ return outputFormat;
196
+ }
197
+ function escapeQuotes(val) {
198
+ return val ? `"${val}"` : val;
199
+ }
200
+ /** Get number format for a number cell, for example { minDecimal: 2, maxDecimal: 5 } will return "00###" */
201
+ function excelTestingDecimalNumberPadding(minDecimal, maxDecimal) {
202
+ return textPadding('1', minDecimal) + textPadding('2', maxDecimal - minDecimal);
203
+ }
204
+ function textPadding(numberStr, count) {
205
+ let output = '';
206
+ for (let i = 0; i < count; i++) {
207
+ output += numberStr;
208
+ }
209
+ return output;
210
+ }
211
+ //# sourceMappingURL=excelUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excelUtils.js","sourceRoot":"","sources":["../../src/excelUtils.ts"],"names":[],"mappings":";;;AAAA,wDAaqC;AAIrC,6DAA6D;AACtD,MAAM,6BAA6B,GAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;AAArE,QAAA,6BAA6B,iCAAwC;AAC3E,MAAM,sBAAsB,GAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC7F,KAAK,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;IACpC,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;CACtC,CAAC,CAAC;AAHU,QAAA,sBAAsB,0BAGhC;AAEH,kEAAkE;AAClE,SAAgB,wBAAwB,CAAC,UAA2B,EAAE,oBAAyB,EAAE,SAAiB,EAAE,IAAe;IACjI,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,CAAC;IAChD,IAAI,qBAAyC,CAAC;IAC9C,IAAI,QAAQ,GAAyB,qCAA6B,CAAC;IAEnE,IAAI,SAAS,KAAK,kBAAS,CAAC,MAAM,EAAE;QAClC,qBAAqB,GAAG,+BAA+B,CAAC,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1I,QAAQ,GAAG,8BAAsB,CAAC;KACnC;IACD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;AACjE,CAAC;AAVD,4DAUC;AAED,SAAgB,kBAAkB,CAAC,MAAW,EAAE,SAAiB,EAAE,SAAiB;;IAClF,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,SAAS,CAAC,0CAAG,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,CAAC;AACrD,CAAC;AAFD,gDAEC;AAED,yJAAyJ;AACzJ,SAAgB,0BAA0B,CAAC,SAAiB,EAAE,IAAe,EAAE,aAA4B;IACzG,IAAI,QAAwD,CAAC;IAE7D,IAAI,aAAa,KAAK,OAAO,EAAE;QAC7B,QAAQ,SAAS,CAAC,oBAAoB,EAAE;YACtC,KAAK,6BAAoB,CAAC,iBAAiB,CAAC;YAC5C,KAAK,6BAAoB,CAAC,eAAe,CAAC;YAC1C,KAAK,6BAAoB,CAAC,iBAAiB,CAAC;YAC5C,KAAK,6BAAoB,CAAC,wBAAwB,CAAC;YACnD,KAAK,6BAAoB,CAAC,eAAe,CAAC;YAC1C,KAAK,6BAAoB,CAAC,mBAAmB,CAAC;YAC9C,KAAK,6BAAoB,CAAC,sBAAsB,CAAC;YACjD,KAAK,6BAAoB,CAAC,0BAA0B;gBAClD,QAAQ,GAAG,UAAU,CAAC;gBACtB,MAAM;YACR,KAAK,6BAAoB,CAAC,mBAAmB;gBAC3C,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,6BAAoB,CAAC,aAAa,CAAC;YACxC;gBACE,mFAAmF;gBACnF,6IAA6I;gBAC7I,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;SACT;KACF;SAAM;QACL,QAAQ,SAAS,CAAC,SAAS,EAAE;YAC3B,KAAK,mBAAU,CAAC,QAAQ,CAAC;YACzB,KAAK,mBAAU,CAAC,MAAM,CAAC;YACvB,KAAK,mBAAU,CAAC,aAAa,CAAC;YAC9B,KAAK,mBAAU,CAAC,iBAAiB;gBAC/B,QAAQ,GAAG,UAAU,CAAC;gBACtB,MAAM;YACR,KAAK,mBAAU,CAAC,OAAO,CAAC;YACxB,KAAK,mBAAU,CAAC,eAAe,CAAC;YAChC,KAAK,mBAAU,CAAC,kBAAkB,CAAC;YACnC,KAAK,mBAAU,CAAC,0BAA0B,CAAC;YAC3C,KAAK,mBAAU,CAAC,aAAa;gBAC3B,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,mBAAU,CAAC,OAAO,CAAC;YACxB;gBACE,6EAA6E;gBAC7E,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;SACT;KACF;IACD,OAAO,IAAA,iCAAwB,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC5E,CAAC;AArDD,gEAqDC;AAED,SAAgB,+BAA+B,CAAC,UAA2B,EAAE,oBAAyB,EAAE,SAAiB,EAAE,IAAe,EAAE,aAA4B;IACtK,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,mBAA+C,CAAC;IACpD,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,aAAa,KAAK,OAAO,EAAE;QAC7B,QAAQ,SAAS,CAAC,oBAAoB,EAAE;YACtC,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,iBAAiB,CAAC;YAC5C,KAAK,6BAAoB,CAAC,eAAe,CAAC;YAC1C,KAAK,6BAAoB,CAAC,mBAAmB;gBAC3C,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,6BAAoB,CAAC,SAAS;gBACjC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,6BAAoB,CAAC,SAAS;gBACjC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,6BAAoB,CAAC,SAAS,CAAC;YACpC,KAAK,6BAAoB,CAAC,aAAa,CAAC;YACxC,KAAK,6BAAoB,CAAC,gBAAgB,CAAC;YAC3C,KAAK,6BAAoB,CAAC,iBAAiB,CAAC;YAC5C,KAAK,6BAAoB,CAAC,wBAAwB,CAAC;YACnD,KAAK,6BAAoB,CAAC,eAAe,CAAC;YAC1C,KAAK,6BAAoB,CAAC,0BAA0B,CAAC;YACrD,KAAK,6BAAoB,CAAC,sBAAsB,CAAC;YACjD,KAAK,6BAAoB,CAAC,mBAAmB;gBAC3C,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR;gBACE,mBAAmB,GAAG,oBAAoB,CAAC,eAAe,CAAC;gBAC3D,MAAM;SACT;KACF;SAAM;QACL,QAAQ,SAAS,EAAE;YACjB,KAAK,kBAAS,CAAC,MAAM;gBACnB,QAAQ,SAAS,CAAC,SAAS,EAAE;oBAC3B,KAAK,mBAAU,CAAC,QAAQ,CAAC;oBACzB,KAAK,mBAAU,CAAC,OAAO,CAAC;oBACxB,KAAK,mBAAU,CAAC,MAAM,CAAC;oBACvB,KAAK,mBAAU,CAAC,aAAa,CAAC;oBAC9B,KAAK,mBAAU,CAAC,iBAAiB,CAAC;oBAClC,KAAK,mBAAU,CAAC,OAAO,CAAC;oBACxB,KAAK,mBAAU,CAAC,eAAe,CAAC;oBAChC,KAAK,mBAAU,CAAC,kBAAkB,CAAC;oBACnC,KAAK,mBAAU,CAAC,0BAA0B,CAAC;oBAC3C,KAAK,mBAAU,CAAC,aAAa;wBAC3B,MAAM,GAAG,kCAAkC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;wBACrE,MAAM;oBACR;wBACE,mBAAmB,GAAG,oBAAoB,CAAC,eAAe,CAAC;wBAC3D,MAAM;iBACT;gBACD,MAAM;SACT;KACF;IAED,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,oBAAoB,CAAC,EAAE;QACnF,MAAM,GAAG,kCAAkC,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAChD,oBAAoB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,mDAAmD;SACxH;QACD,mBAAmB,GAAG,oBAAoB,CAAC,MAAM,CAAmB,CAAC;KACtE;IACD,OAAO,EAAE,mBAAmB,EAAE,mBAAqC,EAAE,SAAS,EAAE,CAAC;AACnF,CAAC;AAnED,0EAmEC;AAED,KAAK;AACL,oBAAoB;AACpB,qBAAqB;AAErB,SAAS,sBAAsB,CAAC,YAAoB;IAClD,8DAA8D;IAC9D,mCAAmC;IACnC,MAAM;IACJ,6DAA6D;IAC7D,CAAC,EACD,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,cAAc,EACd,MAAM,CACP,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,mGAAmG,CAAC,KAAI,EAAE,CAAC;IAEnI,kGAAkG;IAClG,kFAAkF;IAClF,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAG;QACb,YAAY,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QAC1B,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE;QACjB,YAAY,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC;QAChC,cAAc;QACd,YAAY,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC;QAChC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE;QACpB,YAAY,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;KAC3B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,kCAAkC,CAAC,SAAiB,EAAE,IAAe,EAAE,aAA4B,EAAE,SAAS,GAAG,EAAE;IAC1H,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACjH,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,WAAW,IAAI,gCAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAE3G,IAAI,aAAa,KAAK,OAAO,IAAI,SAAS,CAAC,oBAAoB,EAAE;QAC/D,cAAc,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACxI,cAAc,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;KAC1I;SAAM,IAAI,SAAS,CAAC,SAAS,EAAE;QAC9B,cAAc,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAW,CAAC,CAAC;QACzG,cAAc,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAW,CAAC,CAAC;KAC3G;IACD,IAAI,cAAc,IAAI,cAAc,EAAE;QACpC,YAAY,GAAG,sBAAsB,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;KACtG;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AAED,4GAA4G;AAC5G,SAAS,gCAAgC,CAAC,UAAkB,EAAE,UAAkB;IAC9E,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB,EAAE,KAAa;IACnD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,IAAI,SAAS,CAAC;KACrB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,32 +1,33 @@
1
+ import { ExcelAlignmentStyle, ExcelBorderStyle, ExcelColorStyle, ExcelCustomStyling, ExcelFillStyle, ExcelFontStyle } from '@slickgrid-universal/common';
1
2
  export interface ExcelStylesheet {
2
- createFill: (instructions: any) => any;
3
+ createBorderFormatter: (border: ExcelBorderStyle) => any;
4
+ createDifferentialStyle: (instructions: ExcelCustomStyling) => any;
5
+ createFill: (instructions: ExcelFillStyle) => any;
6
+ createFontStyle: (instructions: ExcelFontStyle) => any;
7
+ createFormat: (instructions: ExcelCustomStyling) => any;
8
+ createNumberFormatter: (format: string) => any;
3
9
  createSimpleFormatter: (type: any) => any;
4
- createFormat: (instructions: any) => any;
5
- createNumberFormatter: (instructions: any) => any;
6
- createDifferentialStyle: (instructions: any) => any;
7
10
  createTableStyle: (instructions: any) => any;
8
- createBorderFormatter: (border: any) => any;
9
- exportCellFormatElement: (doc: any, instructions: any) => any;
10
- exportAlignment: (doc: any, alignmentData: any) => any;
11
- createFontStyle: (instructions: any) => any;
12
- exportBorder: (doc: any, data: any[]) => any;
11
+ exportAlignment: (doc: any, alignmentData: ExcelAlignmentStyle) => any;
12
+ exportBorder: (doc: any, data: any[]) => ExcelBorderStyle;
13
13
  exportBorders: (doc: any) => any;
14
- exportColor: (doc: any, color: any) => any;
15
- exportFont: (doc: any, fd: any) => any;
16
- exportFonts: (doc: any) => any;
14
+ exportCellFormatElement: (doc: any, instructions: ExcelCustomStyling) => any;
15
+ exportCellStyles: (doc: any) => any;
16
+ exportColor: (doc: any, color: ExcelColorStyle) => any;
17
+ exportDifferentialStyles: (doc: any) => any;
18
+ exportDFX: (doc: any, style: any) => any;
17
19
  exportFill: (doc: any, fd: any) => any;
18
20
  exportFills: (doc: any) => any;
21
+ exportFont: (doc: any, fd: any) => any;
22
+ exportFonts: (doc: any) => any;
19
23
  exportGradientFill: (doc: any, data: any[]) => any;
20
- exportPatternFill: (doc: any, data: any[]) => any;
21
24
  exportNumberFormatter: (doc: any, fd: any) => any;
22
25
  exportNumberFormatters: (doc: any) => any;
23
- exportCellStyles: (doc: any) => any;
24
- exportDifferentialStyles: (doc: any) => any;
25
26
  exportMasterCellFormats: (doc: any) => any;
26
27
  exportMasterCellStyles: (doc: any) => any;
28
+ exportPatternFill: (doc: any, data: any[]) => any;
29
+ exportProtection: (doc: any, protectionData: any) => any;
27
30
  exportTableStyle: (doc: any, style: any) => any;
28
31
  exportTableStyles: (doc: any) => any;
29
- exportProtection: (doc: any, protectionData: any) => any;
30
- exportDFX: (doc: any, style: any) => any;
31
32
  toXML: () => any;
32
33
  }
@@ -1,6 +1,3 @@
1
1
  export * from './excelCellFormat.interface';
2
- export * from './excelExportOption.interface';
3
2
  export * from './excelMetadata.interface';
4
3
  export * from './excelStylesheet.interface';
5
- export * from './excelWorkbook.interface';
6
- export * from './excelWorksheet.interface';
@@ -15,9 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./excelCellFormat.interface"), exports);
18
- __exportStar(require("./excelExportOption.interface"), exports);
19
18
  __exportStar(require("./excelMetadata.interface"), exports);
20
19
  __exportStar(require("./excelStylesheet.interface"), exports);
21
- __exportStar(require("./excelWorkbook.interface"), exports);
22
- __exportStar(require("./excelWorksheet.interface"), exports);
23
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,gEAA8C;AAC9C,4DAA0C;AAC1C,8DAA4C;AAC5C,4DAA0C;AAC1C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,4DAA0C;AAC1C,8DAA4C"}
@@ -1,6 +1,6 @@
1
- import * as moment_ from 'moment-mini';
2
- import { Column, ContainerService, ExcelExportService as BaseExcelExportService, ExternalResource, FileType, FieldType, GridOption, KeyTitlePair, Locale, PubSubService, SlickDataView, SlickGrid, TranslaterService } from '@slickgrid-universal/common';
3
- import { ExcelCellFormat, ExcelExportOption, ExcelMetadata, ExcelStylesheet, ExcelWorkbook, ExcelWorksheet } from './interfaces/index';
1
+ import { Column, ContainerService, ExcelExportService as BaseExcelExportService, ExcelExportOption, ExternalResource, ExcelWorkbook, ExcelWorksheet, FileType, GetDataValueCallback, GetGroupTotalValueCallback, GridOption, KeyTitlePair, Locale, PubSubService, SlickDataView, SlickGrid, TranslaterService } from '@slickgrid-universal/common';
2
+ import { ExcelCellFormat, ExcelMetadata, ExcelStylesheet } from './interfaces/index';
3
+ import { ExcelFormatter } from './excelUtils';
4
4
  export declare class ExcelExportService implements ExternalResource, BaseExcelExportService {
5
5
  protected _fileFormat: FileType;
6
6
  protected _grid: SlickGrid;
@@ -16,14 +16,41 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
16
16
  protected _pubSubService: PubSubService | null;
17
17
  protected _translaterService: TranslaterService | undefined;
18
18
  protected _workbook: ExcelWorkbook;
19
+ protected _regularCellExcelFormats: {
20
+ [fieldId: string]: {
21
+ stylesheetFormatterId?: number;
22
+ getDataValueParser: GetDataValueCallback;
23
+ };
24
+ };
25
+ protected _groupTotalExcelFormats: {
26
+ [fieldId: string]: {
27
+ groupType: string;
28
+ stylesheetFormatter?: ExcelFormatter;
29
+ getGroupTotalParser?: GetGroupTotalValueCallback;
30
+ };
31
+ };
19
32
  /** ExcelExportService class name which is use to find service instance in the external registered services */
20
33
  readonly className = "ExcelExportService";
21
- constructor();
22
34
  protected get _datasetIdPropName(): string;
23
35
  /** Getter of SlickGrid DataView object */
24
36
  get _dataView(): SlickDataView;
25
37
  /** Getter for the Grid Options pulled through the Grid Object */
26
38
  protected get _gridOptions(): GridOption;
39
+ get stylesheet(): ExcelStylesheet;
40
+ get stylesheetFormats(): any;
41
+ get groupTotalExcelFormats(): {
42
+ [fieldId: string]: {
43
+ groupType: string;
44
+ stylesheetFormatter?: ExcelFormatter | undefined;
45
+ getGroupTotalParser?: GetGroupTotalValueCallback | undefined;
46
+ };
47
+ };
48
+ get regularCellExcelFormats(): {
49
+ [fieldId: string]: {
50
+ stylesheetFormatterId?: number | undefined;
51
+ getDataValueParser: GetDataValueCallback;
52
+ };
53
+ };
27
54
  dispose(): void;
28
55
  /**
29
56
  * Initialize the Export Service
@@ -61,8 +88,6 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
61
88
  blob: Blob;
62
89
  data: any[];
63
90
  }): void;
64
- /** use different Excel Stylesheet Format as per the Field Type */
65
- useCellFormatByFieldType(data: string | Date | moment_.Moment, fieldType: typeof FieldType[keyof typeof FieldType]): ExcelCellFormat | string;
66
91
  protected getDataOutput(): Array<string[] | ExcelCellFormat[]>;
67
92
  /** Get each column style including a style for the width of each column */
68
93
  protected getColumnStyles(columns: Column[]): any[];
@@ -89,7 +114,7 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
89
114
  /**
90
115
  * Get all the grid row data and return that as an output string
91
116
  */
92
- protected pushAllGridRowDataToArray(originalDaraArray: Array<string[] | ExcelCellFormat[]>, columns: Column[]): Array<string[] | ExcelCellFormat[]>;
117
+ protected pushAllGridRowDataToArray(originalDaraArray: Array<Array<string | ExcelCellFormat | number>>, columns: Column[]): Array<Array<string | ExcelCellFormat | number>>;
93
118
  /**
94
119
  * Get the data of a regular row (a row without grouping)
95
120
  * @param {Array<Object>} columns - column definitions
@@ -107,5 +132,5 @@ export declare class ExcelExportService implements ExternalResource, BaseExcelEx
107
132
  * For example if we grouped by "salesRep" and we have a Sum Aggregator on "sales", then the returned output would be:: ["Sum 123$"]
108
133
  * @param itemObj
109
134
  */
110
- protected readGroupedTotalRows(columns: Column[], itemObj: any): string[];
135
+ protected readGroupedTotalRows(columns: Column[], itemObj: any): Array<ExcelCellFormat | string | number>;
111
136
  }