www/jqwidgets/jqxexport.js

Sat, 25 Sep 2021 10:42:54 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 25 Sep 2021 10:42:54 +0200
changeset 778
e64fd38c469c
parent 733
67bf19c50fcc
permissions
-rw-r--r--

If during styles import the CATEGORY_NUMBER is empty, insert 0 in the database instead.

733
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /* tslint:disable */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 /* eslint-disable */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 (function ($) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 window.jqxToDash = function(value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 return value.split(/(?=[A-Z])/).join('-').toLowerCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 class DataExporter {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 constructor(exportDetails, groupBy, filterBy, conditionalFormatting) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 if (!exportDetails) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 exportDetails = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 /*
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 * "style" object definition (all properties are optional):
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 *
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * «any valid CSS property» - applied to whole table
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * header (Object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 * «any valid CSS property» - applied to header cells
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 * «any column name» (Object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 * «any valid CSS property» - applied to particular column header cell
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 * columns (Object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 * «any valid CSS property» - applied to column cells
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 * «any column name» (Object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 * «any valid CSS property» - applied to the cells of particular column
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 * format - applicable to numeric and date columns
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 * «n» (Object), where «n» is a row index (related to use of "ConditionalFormatting" object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 * background
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 * border
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 * color
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 * rows (Object)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 * «any valid CSS property» - applied to rows
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 * alternationCount
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 * alternationStart
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 * alternationEnd
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 * alternationIndex«n»Color, where «n» is an integer
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 * alternationIndex«n»BorderColor, where «n» is an integer
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 * alternationIndex«n»BackgroundColor, where «n» is an integer
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 * «n» (Object), where «n» is a row index
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 * «any valid CSS property» - applied to particular row
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 that.style = exportDetails.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 that.header = exportDetails.header;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 that.exportHeader = exportDetails.exportHeader || true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 that.hierarchical = exportDetails.hierarchical;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 that.expandChar = exportDetails.expandChar || '+';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 that.collapseChar = exportDetails.collapseChar || '-';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 that.pageOrientation = exportDetails.pageOrientation;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 if (!that.hierarchical && groupBy && groupBy.length > 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 that.groupBy = groupBy;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 that.mergedCells = exportDetails.mergedCells;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 if (!that.groupBy && filterBy && Object.keys(filterBy).length > 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 that.filterBy = filterBy;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 if (conditionalFormatting) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 that.conditionalFormatting = conditionalFormatting;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 that.timeBetween1900And1970 = new Date(1970, 0, 1).getTime() - new Date(1900, 0, 1).getTime();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 * Generates and downloads a file.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 downloadFile(data, type, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 let file;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 if (!fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 return data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 if (data instanceof Blob) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 file = data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 file = new Blob([data], { type: type });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 if (window.navigator.msSaveOrOpenBlob) { // Edge
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 window.navigator.msSaveOrOpenBlob(file, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 else { // Chrome, Firefox, Safari
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 const a = document.createElement('a'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 url = URL.createObjectURL(file);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 a.href = url;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 a.download = fileName;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 a.style.position = 'absolute';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 a.style.visibility = 'hidden';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 document.body.appendChild(a);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 a.click();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 setTimeout(function () {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 document.body.removeChild(a);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 window.URL.revokeObjectURL(url);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 }, 0);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 * Exports data.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 exportData(data, format, fileName, callback) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 that.actualHierarchy = that.hierarchical;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 format = format.toLowerCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 if (that.exportHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 if (that.header) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122 data = data.slice(0);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 if (data.length === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 that.actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 that.processComplexHeader(that.header, data, format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 else if (data.length === 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 that.actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 if (data.length === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 // eslint-disable-next-line
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 console.warn('No data to export.');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141 if (format === 'xlsx') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 that.xlsxStartIndex = that.complexHeader ? that.complexHeader.length : +that.exportHeader;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 if (that.actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146 data = that.processHierarchicalData(data, format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149 that.getDatafields(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 if (fileName && fileName.slice(fileName.length - format.length - 1, fileName.length) !== '.' + format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152 fileName += '.' + format;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 let output = null;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 switch (format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 case 'csv':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 output = that.exportToCSVAndTSV(data, { delimiter: ', ', MIME: 'text/csv', toRemove: 2 }, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 case 'html':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 output = that.exportToHTML(data, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 case 'jpeg':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 case 'png':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 that.exportToImage(data, fileName, format, callback);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 case 'json':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 output = that.exportToJSON(data, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
170 case 'pdf':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 output = that.exportToPDF(data, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 case 'tsv':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174 output = that.exportToCSVAndTSV(data, { delimiter: '\t', MIME: 'text/tab-separated-values', toRemove: 1 }, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 case 'xlsx':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 output = that.exportToXLSX(data, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 case 'xml':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 output = that.exportToXML(data, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 if (callback && output) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 callback(output);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 delete that.complexHeader;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190 return output;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 * Exports to CSV and TSV.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 exportToCSVAndTSV(data, formatOptions, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
197 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 datafields = that.datafields;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199 let stringResult = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201 for (let i = 0; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202 const currentRecord = data[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 let stringifiedCurrentRecord = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206 if (that.actualHierarchy && j === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207 stringifiedCurrentRecord += ('""' + formatOptions.delimiter).repeat(currentRecord._level - 1) +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
208 '"' + currentRecord[datafields[j]] + '"' + formatOptions.delimiter +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
209 ('""' + formatOptions.delimiter).repeat(that.maxLevel - currentRecord._level);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
210 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
211 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
212
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
213 stringifiedCurrentRecord += '"' + currentRecord[datafields[j]] + '"' + formatOptions.delimiter;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
214 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
215
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
216 stringifiedCurrentRecord = stringifiedCurrentRecord.slice(0, stringifiedCurrentRecord.length - formatOptions.toRemove) + '\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
217 stringResult += stringifiedCurrentRecord;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
218 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
219
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
220 return this.downloadFile(stringResult, formatOptions.MIME, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
221 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
222
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
223 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
224 * Exports to HTML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
225 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
226 exportToHTML(data, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
227 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
228 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
229 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
230 let header = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
231 startIndex = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
232 html2canvas = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
233
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
234 data = that.processGroupingInformation(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
235 that.data = data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
236
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
237 if (that.exportHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
238 header = that.getHTMLHeader(datafields, data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
239 startIndex = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
240 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
241
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
242 if (arguments[2]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
243 const scripts = Array.from(document.getElementsByTagName('script')),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
244 html2canvasScript = scripts.find(script => script.src.indexOf('html2canvas') !== -1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
245 html2canvas = `<script type="text/javascript" src="${html2canvasScript.src}"></script>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
246 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
247
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
248 let htmlContent = `<!DOCTYPE html>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
249 <html>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
250 <head>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
251 <meta charset="UTF-8">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
252 <style type="text/css">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
253 ${that.getRowStyle()}${that.getColumnStyle()}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
254 </style>${html2canvas}${that.toggleableFunctionality()}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
255 </head>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
256 <body>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
257 <table${that.getTableStyle()}>${header}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
258 <tbody>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
259
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
260 const mergedMainCells = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
261 mergedSecondaryCells = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
262 groupsHandled = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
263
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
264 that.getMergedCellsInfo(mergedMainCells, mergedSecondaryCells);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
265
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
266 mainLoop:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
267 for (let i = startIndex; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
268 const currentRecord = data[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
269 row = i - startIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
270 let n = that.getAlternationIndex(row, ' rowN'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
271 toCollapse = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
272 level = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
273 groupId = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
274 outlineLevel = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
275
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
276 if (that.actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
277 if (currentRecord._collapsed) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
278 toCollapse = ' collapsed';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
279 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
280
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
281 level = ` level="${currentRecord._level}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
282 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
283 else if (that.groupBy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
284 for (let k = 0; k < that.groupBy.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
285 const datafield = that.groupBy[k],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
286 currentGroup = currentRecord[datafield],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
287 currentGroupLabel = that.groups[datafield][currentGroup];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
288
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
289 groupId += currentGroup;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
290
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
291 if (groupsHandled.indexOf(groupId) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
292 htmlContent += ` <tr class="row">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
293 <td class="column group" style="padding-left: ${outlineLevel * 25}px;" colspan="${that.datafields.length}">${currentGroupLabel}</td>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
294 </tr>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
295 groupsHandled.push(groupId);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
296 i--;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
297 continue mainLoop;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
298 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
299
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
300 outlineLevel++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
301 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
302 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
303
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
304 let currentContent = ` <tr class="row row${row}${n}${toCollapse}"${level}`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
305
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
306 if (!fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
307 currentContent += ' style="page-break-inside: avoid;"'
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
308 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
309
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
310 currentContent += '>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
311
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
312 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
313 const cellCode = j + ',' + (row);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
314 let colspan = 1, rowspan = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
315
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
316 if (mergedMainCells[cellCode]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
317 colspan = mergedMainCells[cellCode].colspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
318 rowspan = mergedMainCells[cellCode].rowspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
319 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
320 else if (mergedSecondaryCells[cellCode]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
321 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
322 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
323
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
324 const datafield = datafields[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
325 let value = currentRecord[datafield],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
326 indent = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
327
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
328 if (that.actualHierarchy && j === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
329 let sign = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
330
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
331 if (currentRecord._expanded) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
332 sign = that.collapseChar;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
333 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
334 else if (currentRecord._expanded === false) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
335 sign = that.expandChar;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
336 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
337
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
338 indent = `<div class="toggle-element" style="margin-left: ${25 * (currentRecord._level - 1) + 5}px;" expanded>${sign}</div>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
339 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
340
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
341 value = that.getFormattedValue(value, datafield);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
342
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
343 let css = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
344
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
345 if (style && style.columns && style.columns[datafield] && style.columns[datafield][row]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
346 const uniqueStyle = style.columns[datafield][row];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
347
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
348 css += `border-color: ${uniqueStyle.border}; background-color: ${uniqueStyle.background}; color: ${uniqueStyle.color};"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
349 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
350
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
351 if (j === 0 && outlineLevel > 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
352 css += `padding-left: ${(outlineLevel - 1) * 25}px;"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
353 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
354
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
355 if (css) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
356 css = ` style="${css}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
357 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
358
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
359 currentContent += ` <td class="column column${datafield}"${css} colspan="${colspan}" rowspan="${rowspan}">${indent + value}</td>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
360 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
361
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
362 htmlContent += currentContent + ' </tr>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
363 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
364
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
365 htmlContent += ` </tbody>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
366 </table>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
367 </body>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
368 </html>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
369
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
370 if (arguments[2]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
371 return htmlContent;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
372 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
373
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
374 return this.downloadFile(htmlContent, 'text/html', fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
375 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
376
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
377 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
378 * Exports to an image (PNG/JPEG).
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
379 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
380 exportToImage(data, fileName, fileExtension, callback) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
381 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
382
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
383 try {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
384 html2canvas;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
385 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
386 catch (error) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
387 throw new Error('jqx-grid: Missing reference to \'html2canvas.min.js\'.');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
388 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
389
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
390 let imageData = null;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
391
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
392 const htmlContent = that.exportToHTML(data, fileName, true),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
393 iframe = document.createElement('iframe');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
394
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
395 iframe.style.position = 'absolute';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
396 iframe.style.top = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
397 iframe.style.left = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
398 iframe.style.border = 'none';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
399 iframe.style.width = '100%';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
400 iframe.style.height = '100%';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
401 iframe.style.opacity = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
402
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
403 document.body.appendChild(iframe);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
404
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
405 iframe.contentDocument.write(htmlContent);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
406
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
407 function checkIframePopulated() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
408 if (!iframe.contentDocument.body || !iframe.contentDocument.body.firstElementChild) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
409 requestAnimationFrame(checkIframePopulated);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
410 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
411 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
412 iframe.contentWindow.html2canvas(iframe.contentDocument.body.firstElementChild).then(canvas => {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
413 const draw = $.jqxDraw(document.createElement('div'));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
414
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
415 imageData = canvas.toDataURL('image/png');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
416
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
417 if (callback) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
418 callback(imageData);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
419 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
420 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
421 document.body.appendChild(canvas);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
422 draw.exportImage(undefined, canvas, fileExtension, fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
423 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
424
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
425 iframe.remove();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
426 canvas.remove();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
427 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
428 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
429 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
430
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
431 checkIframePopulated();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
432
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
433 return imageData;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
434 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
435
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
436 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
437 * Gets merged cells information (for use in HTML and PDF export).
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
438 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
439 getMergedCellsInfo(mergedMainCells, mergedSecondaryCells, mapping) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
440 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
441
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
442 if (!that.mergedCells) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
443 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
444 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
445
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
446 const multipleTables = mapping && mapping[that.datafields.length - 1] !== 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
447
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
448 that.mergedCellsPDF = that.mergedCells.slice(0);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
449
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
450 for (let i = 0; i < that.mergedCellsPDF.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
451 const cellDefinition = that.mergedCellsPDF[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
452 let colspan = cellDefinition.colspan,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
453 rowspan = cellDefinition.rowspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
454
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
455 if (rowspan < 2 && colspan < 2) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
456 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
457 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
458
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
459 const row = cellDefinition.cell[1];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
460 let col = cellDefinition.cell[0];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
461
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
462 if (multipleTables && colspan > 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
463 const startTable = mapping[col],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
464 endTable = mapping[col + colspan - 1],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
465 splitCells = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
466
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
467 if (endTable > startTable) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
468 let currentTable = startTable,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
469 currentColumn = col,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
470 overal = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
471
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
472 mainLoop:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
473 for (let i = startTable; i <= endTable; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
474 let start = currentColumn,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
475 span = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
476
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
477 while (mapping[currentColumn] === currentTable) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
478 currentColumn++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
479 overal++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
480 span++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
481
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
482 if (overal === colspan) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
483 splitCells.push({ start: start, span: span });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
484 break mainLoop;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
485 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
486 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
487
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
488 splitCells.push({ start: start, span: span });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
489 currentTable = mapping[currentColumn];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
490 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
491
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
492 colspan = splitCells[0].span;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
493
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
494 for (let i = 1; i < splitCells.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
495 that.mergedCellsPDF.push({ cell: [splitCells[i].start, row], colspan: splitCells[i].span, rowspan: rowspan, originalCell: col });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
496 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
497 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
498 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
499
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
500 for (let j = col; j < col + colspan; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
501 for (let k = row; k < row + rowspan; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
502 const code = j + ',' + k;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
503
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
504 if (j === col && k === row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
505 mergedMainCells[code] = { colspan: colspan, rowspan: rowspan, originalCell: cellDefinition.originalCell };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
506 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
507 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
508
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
509 mergedSecondaryCells[code] = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
510 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
511 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
512 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
513 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
514
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
515 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
516 * Gets alternation index.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
517 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
518 getAlternationIndex(row, prefix) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
519 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
520
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
521 if (!that.style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
522 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
523 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
524
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
525 const rowsDefinition = that.style.rows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
526 alternationCount = rowsDefinition && rowsDefinition.alternationCount;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
527
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
528 if (alternationCount &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
529 (((rowsDefinition.alternationStart === undefined || row >= rowsDefinition.alternationStart) &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
530 (rowsDefinition.alternationEnd === undefined || row <= rowsDefinition.alternationEnd)) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
531 rowsDefinition.alternationStart === rowsDefinition.alternationEnd)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
532 return prefix + (row % rowsDefinition.alternationCount);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
533 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
534
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
535 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
536 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
537
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
538 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
539 * Gets formatted numeric or date value (for use in HTML and PDF export).
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
540 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
541 getFormattedValue(value, datafield) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
542 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
543 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
544
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
545 if (datafield && style && style.columns &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
546 style.columns[datafield] && style.columns[datafield].format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
547 if (typeof value === 'number') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
548 return that.formatNumber(value, style.columns[datafield].format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
549 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
550 else if (value instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
551 return that.formatDate(value, style.columns[datafield].format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
552 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
553 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
554 else if (value instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
555 return that.formatDate(value, 'd');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
556 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
557
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
558 return value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
559 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
560
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
561 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
562 * Exports to JSON.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
563 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
564 exportToJSON(data, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
565 return this.downloadFile(JSON.stringify(data, this.datafields.concat('rows')), 'application/json', fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
566 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
567
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
568 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
569 * Exports to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
570 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
571 exportToPDF(data, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
572 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
573 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
574 startIndex = +that.exportHeader,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
575 groupsHandled = [],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
576 mergedMainCells = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
577 mergedSecondaryCells = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
578 mapping = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
579 headerRows = startIndex ? that.complexHeader ? that.complexHeader.length : 1 : 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
580 docDefinition = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
581 pageOrientation: that.pageOrientation || 'portrait'
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
582 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
583 let header = [], content = [], tables;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
584
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
585 function createTableRow() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
586 let tableRow = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
587
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
588 for (let i = 0; i < tables.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
589 tableRow.push([]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
590 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
591
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
592 return tableRow;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
593 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
594
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
595 data = that.processGroupingInformation(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
596 that.data = data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
597 that.headerRows = headerRows;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
598 that.getPDFStyle();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
599
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
600 const styleInfo = that.styleInfo;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
601
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
602 tables = styleInfo ? that.wrapPDFColumns(docDefinition, mapping) : [{ body: header, datafields: datafields }];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
603
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
604 if (startIndex) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
605 header = that.getPDFHeader(datafields, tables, mapping);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
606 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
607
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
608 that.getMergedCellsInfo(mergedMainCells, mergedSecondaryCells, mapping);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
609
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
610 mainLoop:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
611 for (let i = startIndex; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
612 const currentRecord = data[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
613 let groupId = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
614 outlineLevel = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
615
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
616 if (that.groupBy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
617 for (let k = 0; k < that.groupBy.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
618 const datafield = that.groupBy[k],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
619 currentGroup = currentRecord[datafield],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
620 currentGroupLabel = that.groups[datafield][currentGroup];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
621
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
622 groupId += currentGroup;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
623
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
624 if (groupsHandled.indexOf(groupId) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
625 that.createGroupHeaderRow(tables, { text: currentGroupLabel, style: ['row', 'cell', 'group'], marginLeft: outlineLevel * 7.5 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
626 groupsHandled.push(groupId);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
627 i--;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
628 continue mainLoop;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
629 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
630
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
631 outlineLevel++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
632 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
633 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
634
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
635 const tableRow = createTableRow(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
636 row = i - startIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
637 let n = that.getAlternationIndex(row, '');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
638
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
639 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
640 const datafield = datafields[j],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
641 entry = { style: ['row', 'row' + row, 'cell', 'cell' + datafield] },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
642 tableIndex = mapping[j] || 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
643
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
644 if (n !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
645 entry.style.splice(1, 0, 'rowN' + n);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
646 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
647
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
648 if (that.mergedCellsPDF) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
649 const cellCode = j + ',' + row,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
650 mergeInfo = mergedMainCells[cellCode];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
651
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
652 if (mergeInfo) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
653 entry.colSpan = mergeInfo.colspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
654 entry.rowSpan = mergeInfo.rowspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
655
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
656 if (mergeInfo.originalCell !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
657 entry.text = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
658 entry.style[entry.style.length - 1] = 'cell' + datafields[mergeInfo.originalCell];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
659 tableRow[tableIndex].push(entry);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
660 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
661 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
662 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
663 else if (mergedSecondaryCells[cellCode]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
664 tableRow[tableIndex].push({});
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
665 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
666 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
667 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
668
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
669 const value = that.getFormattedValue(currentRecord[datafield], datafield);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
670
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
671 entry.text = value.toString();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
672 that.getUniqueStylePDF(entry, datafield, row);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
673 that.setIndentation(entry, { j: j, currentRecord: currentRecord, value: value, outlineLevel: outlineLevel });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
674 tableRow[tableIndex].push(entry);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
675 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
676
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
677 for (let k = 0; k < tables.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
678 tables[k].body.push(tableRow[k]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
679 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
680 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
681
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
682 if (styleInfo) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
683 for (let i = 0; i < tables.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
684 const body = tables[i].body;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
685
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
686 for (let j = headerRows - 1; j >= 0; j--) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
687 body.unshift(header[i][j]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
688 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
689
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
690 content.push({
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
691 table: {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
692 headerRows: headerRows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
693 widths: tables[i].widths,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
694 heights: function (row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
695 if (styleInfo.heights[row]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
696 return styleInfo.heights[row];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
697 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
698
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
699 if (styleInfo.defaultHeight) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
700 return styleInfo.defaultHeight;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
701 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
702 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
703 body: body
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
704 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
705 pageBreak: 'after'
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
706 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
707 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
708
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
709 delete content[tables.length - 1].pageBreak;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
710 docDefinition.styles = styleInfo.styles;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
711 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
712 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
713 const body = tables[0].body;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
714
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
715 for (let j = headerRows - 1; j >= 0; j--) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
716 body.unshift(header[0][j]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
717 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
718
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
719 content = [{ table: { headerRows: headerRows, body: body } }];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
720 docDefinition.styles = { header: { bold: true }, group: { bold: true } };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
721 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
722
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
723 docDefinition.content = content;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
724 pdfMake.createPdf(docDefinition).download(fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
725
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
726 delete that.mergedCellsPDF;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
727 delete that.styleInfo;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
728 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
729
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
730 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
731 * Gets the header content when exporting to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
732 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
733 getPDFStyle() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
734 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
735 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
736
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
737 if (!style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
738 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
739 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
740
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
741 const sampleRecord = that.data[0],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
742 headerDefinition = style.header,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
743 columnsDefinition = style.columns,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
744 rowsDefinition = style.rows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
745 styleInfo = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
746 heights: [],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
747 widths: Array(that.datafields.length).fill('*'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
748 styles: {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
749 header: {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
750 row: {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
751 cell: {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
752 group: { fillColor: '#FFFFFF', color: '#000000', bold: true }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
753 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
754 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
755
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
756 that.styleInfo = styleInfo;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
757
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
758 function processStyleDefinition(definition, type) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
759 if (!definition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
760 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
761 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
762
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
763 for (let prop in definition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
764 if (!definition.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
765 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
766 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
767
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
768 if (sampleRecord[prop] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
769 if (prop === 'height' && type === 'header') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
770 for (let i = 0; i < that.headerRows; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
771 styleInfo.heights[i] = (parseInt(definition[prop], 10) / that.headerRows) / 1.57;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
772 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
773 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
774 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
775 that.storePDFStyle({ prop: prop, value: definition[prop], toUpdate: type });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
776 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
777 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
778 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
779 for (let columnProp in definition[prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
780 if (!isNaN(columnProp) || !definition[prop].hasOwnProperty(columnProp)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
781 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
782 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
783
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
784 const value = definition[prop][columnProp],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
785 index = that.datafields.indexOf(prop);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
786
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
787 if (columnProp === 'width' && styleInfo.widths[index] === '*') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
788 styleInfo.widths[index] = parseFloat(value);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
789 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
790 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
791 that.storePDFStyle({ prop: columnProp, value: value, toUpdate: type + prop });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
792 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
793 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
794 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
795 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
796 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
797
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
798 processStyleDefinition(headerDefinition, 'header');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
799 processStyleDefinition(columnsDefinition, 'cell');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
800
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
801 if (!rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
802 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
803 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
804
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
805 for (let prop in rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
806 if (!rowsDefinition.hasOwnProperty(prop) || prop.indexOf('alt') !== -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
807 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
808 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
809
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
810 const value = rowsDefinition[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
811
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
812 if (!isNaN(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
813 for (let rowProp in value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
814 if (value.hasOwnProperty(rowProp)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
815 if (rowProp === 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
816 styleInfo.heights[parseFloat(prop) + that.headerRows] = parseFloat(value[rowProp]) / 1.57;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
817 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
818 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
819 that.storePDFStyle({ prop: rowProp, value: value[rowProp], toUpdate: 'row' + prop });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
820 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
821 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
822 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
823
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
824 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
825 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
826
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
827 if (prop === 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
828 styleInfo.defaultHeight = parseFloat(value) / 1.57;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
829 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
830 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
831 that.storePDFStyle({ prop: prop, value: value, toUpdate: 'row' });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
832 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
833 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
834
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
835 if (!rowsDefinition.alternationCount) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
836 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
837 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
838
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
839 for (let i = 0; i < rowsDefinition.alternationCount; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
840 const styleN = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
841
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
842 if (rowsDefinition[`alternationIndex${i}Color`]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
843 styleN.color = rowsDefinition[`alternationIndex${i}Color`];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
844 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
845
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
846 if (rowsDefinition[`alternationIndex${i}BackgroundColor`]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
847 styleN.fillColor = rowsDefinition[`alternationIndex${i}BackgroundColor`];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
848 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
849
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
850 styleInfo.styles['rowN' + i] = styleN;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
851 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
852 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
853
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
854 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
855 * Stores style in object to be applied to generated PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
856 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
857 storePDFStyle(details) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
858 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
859 let objectToUpdate = that.styleInfo.styles[details.toUpdate];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
860
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
861 if (!objectToUpdate) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
862 objectToUpdate = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
863 that.styleInfo.styles[details.toUpdate] = objectToUpdate;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
864 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
865
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
866 let value = details.value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
867
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
868 switch (details.prop) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
869 case 'backgroundColor':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
870 objectToUpdate.fillColor = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
871 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
872 case 'color':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
873 objectToUpdate.color = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
874 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
875 case 'fontSize':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
876 objectToUpdate.fontSize = parseFloat(value);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
877 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
878 case 'fontStyle':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
879 if (value === 'italic') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
880 objectToUpdate.italics = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
881 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
882
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
883 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
884 case 'fontWeight':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
885 if (value === 'bold') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
886 objectToUpdate.bold = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
887 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
888
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
889 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
890 case 'textAlign':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
891 objectToUpdate.alignment = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
892 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
893 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
894 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
895
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
896 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
897 * Enables column wrapping when exporting to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
898 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
899 wrapPDFColumns(docDefinition, mapping) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
900 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
901 styleInfo = this.styleInfo,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
902 maxPerPage = docDefinition.pageOrientation === 'portrait' ? 775 : 1155, // maximum of 775px (portrait) or 1155px (landscape) per A4 page
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
903 tables = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
904 let currentPage = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
905
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
906 for (let i = 0; i < styleInfo.widths.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
907 let currentWidth = styleInfo.widths[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
908 numericWidth = currentWidth;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
909
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
910 if (currentWidth === '*') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
911 numericWidth = 150;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
912 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
913 else if (currentWidth >= maxPerPage) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
914 numericWidth = maxPerPage
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
915 currentWidth = '*';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
916 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
917 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
918 currentWidth /= 1.57;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
919 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
920
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
921 if (tables[currentPage] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
922 const body = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
923
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
924 tables[currentPage] = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
925 body: body,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
926 width: numericWidth,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
927 widths: [currentWidth],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
928 datafields: [that.datafields[i]]
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
929 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
930 mapping[i] = currentPage;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
931 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
932 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
933
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
934 const table = tables[currentPage];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
935
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
936 if (table.width + numericWidth > maxPerPage) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
937 currentPage++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
938 i--;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
939 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
940 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
941
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
942 mapping[i] = currentPage;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
943 table.width += numericWidth;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
944 table.widths.push(currentWidth);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
945 table.datafields.push(that.datafields[i]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
946 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
947
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
948 return tables;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
949 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
950
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
951 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
952 * Gets the header content when exporting to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
953 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
954 getPDFHeader(datafields, tables, mapping) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
955 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
956 headerArray = [],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
957 headerRows = that.headerRows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
958 headerStructure = that.complexHeader ? that.complexHeader : [Object.values(that.data[0])],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
959 headers = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
960 let result = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
961
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
962 for (let i = 0; i < headerRows; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
963 const row = headerStructure[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
964
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
965 for (let k = 0; k < row.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
966 let tableIndex = mapping[k] || 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
967
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
968 if (!headers[tableIndex]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
969 headers[tableIndex] = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
970 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
971
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
972 if (!headers[tableIndex][i]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
973 headers[tableIndex][i] = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
974 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
975
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
976 headers[tableIndex][i].push(row[k]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
977 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
978 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
979
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
980 function processHeader(header, result, table) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
981 for (let j = 0; j < headerRows; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
982 const row = header[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
983 const tableRow = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
984
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
985 for (let k = 0; k < row.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
986 const currentLabel = row[k];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
987 let colspan = 1, rowspan = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
988
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
989 if ((row[k - 1] && row[k - 1] === currentLabel) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
990 (header[j - 1] && (header[j - 1][k] === currentLabel))) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
991 tableRow.push({});
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
992 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
993 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
994
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
995 let iterator = k + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
996
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
997 while (row[iterator] && row[iterator] === row[iterator - 1]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
998 colspan++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
999 iterator++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1000 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1001
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1002 iterator = j + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1003
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1004 while (header[iterator] && header[iterator][k] === currentLabel) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1005 rowspan++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1006 iterator++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1007 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1008
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1009 const datafield = j === headerRows - 1 || rowspan + j === headerRows ?
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1010 table.datafields[k] : null,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1011 entry = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1012 text: currentLabel, colSpan: colspan, rowSpan: rowspan
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1013 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1014
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1015 if (!datafield) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1016 entry.alignment = 'center';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1017 entry.style = 'header';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1018 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1019 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1020 entry.style = ['header', 'header' + datafield];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1021 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1022
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1023 tableRow.push(entry);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1024 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1025
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1026 result.push(tableRow);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1027 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1028 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1029
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1030 for (let i = 0; i < tables.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1031 result = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1032 processHeader(headers[i], result, tables[i]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1033 headerArray.push(result);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1034 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1035
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1036 return headerArray;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1037 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1038
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1039 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1040 * Creates group header rows when exporting to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1041 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1042 createGroupHeaderRow(tables, entryTemplate) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1043 for (let i = 0; i < tables.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1044 const entry = Object.assign({}, entryTemplate),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1045 colspan = tables[i].datafields.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1046 tableRow = [entry];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1047
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1048 entry.colSpan = colspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1049 tableRow.length = colspan;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1050 tableRow.fill({}, 1, colspan - 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1051
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1052 tables[i].body.push(tableRow);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1053 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1054 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1055
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1056 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1057 * Gets unique cell style when exporting to PDF.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1058 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1059 getUniqueStylePDF(entry, datafield, row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1060 const style = this.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1061
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1062 function toHex(background) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1063 const parts = /rgba\((\d+),(\d+),(\d+)\,(\d*.\d+|\d+)\)/gi.exec(background.replace(/\s/g, '')),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1064 r = parseFloat(parts[1]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1065 g = parseFloat(parts[2]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1066 b = parseFloat(parts[3]).toString(16).toUpperCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1067
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1068 return '#' + ('0').repeat(2 - r.length) + r +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1069 ('0').repeat(2 - g.length) + g +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1070 ('0').repeat(2 - b.length) + b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1071 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1072
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1073 if (!style || !style.columns || !style.columns[datafield]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1074 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1075 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1076
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1077 const uniqueStyle = style.columns[datafield][row];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1078
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1079 if (!uniqueStyle) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1080 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1081 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1082
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1083 entry.fillColor = toHex(uniqueStyle.background);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1084 entry.color = uniqueStyle.color.toLowerCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1085 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1086
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1087 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1088 * Sets the indentation of a PDF cell.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1089 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1090 setIndentation(entry, details) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1091 if (details.j !== 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1092 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1093 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1094
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1095 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1096
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1097 if (that.actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1098 const currentRecord = details.currentRecord;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1099
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1100 if (currentRecord._expanded !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1101 entry.marginLeft = 25 * (currentRecord._level - 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1102 entry.text = that.collapseChar + ' ' + details.value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1103 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1104 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1105 entry.marginLeft = 25 * (currentRecord._level - 1) + 6;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1106 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1107 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1108 else if (details.outlineLevel > 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1109 entry.marginLeft = (details.outlineLevel - 1) * 7.5;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1110 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1111 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1112
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1113 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1114 * Exports to XLSX.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1115 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1116 exportToXLSX(data, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1117 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1118 let style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1119
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1120 data = that.processGroupingInformation(data, true);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1121 that.data = data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1122 that.getColumnsArray();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1123
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1124 that.complexHeaderMergedCells = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1125
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1126 if (that.complexHeaderMergeInfo) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1127 for (let cell in that.complexHeaderMergeInfo) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1128 if (that.complexHeaderMergeInfo.hasOwnProperty(cell)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1129 const currentEntry = that.complexHeaderMergeInfo[cell];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1130
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1131 if (currentEntry.from[0] === currentEntry.to[0] &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1132 currentEntry.from[1] === currentEntry.to[1]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1133 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1134 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1135
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1136 that.complexHeaderMergedCells.push({
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1137 from: that.columnsArray[currentEntry.from[1]] + (currentEntry.from[0] + 1),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1138 to: that.columnsArray[currentEntry.to[1]] + (currentEntry.to[0] + 1)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1139 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1140 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1141 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1142 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1143
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1144 that.getConditionalFormatting();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1145
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1146 if (!style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1147 style = that.generateDefaultStyle(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1148 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1149
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1150 const sharedStrings = that.generateSharedStrings(data),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1151 sharedStringsCollection = sharedStrings.collection,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1152 sharedStringsXML = sharedStrings.xml,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1153 stylesXML = that.generateStyles(style),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1154 sheet1XML = that.groupBy ? that.generateSheet1WithGrouping(data, sharedStringsCollection) :
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1155 that.generateSheet1(data, sharedStringsCollection),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1156 auxiliaryFiles = that.generateAuxiliaryFiles(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1157
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1158 // eslint-disable-next-line
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1159 zip = new JSZip(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1160 _rels = zip.folder('_rels'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1161 docProps = zip.folder('docProps'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1162 xl = zip.folder('xl'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1163 xl_rels = xl.folder('_rels'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1164 theme = xl.folder('theme'),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1165 worksheets = xl.folder('worksheets');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1166
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1167 _rels.file('.rels', auxiliaryFiles._relsRels);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1168 docProps.file('app.xml', auxiliaryFiles.docPropsAppXml);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1169 docProps.file('core.xml', auxiliaryFiles.docPropsCoreXml);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1170 xl_rels.file('workbook.xml.rels', auxiliaryFiles.xl_relsWorkbookXmlRels);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1171 theme.file('theme1.xml', auxiliaryFiles.xlThemeTheme1Xml);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1172 worksheets.file('sheet1.xml', sheet1XML);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1173 xl.file('sharedStrings.xml', sharedStringsXML);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1174 xl.file('styles.xml', stylesXML);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1175 xl.file('workbook.xml', auxiliaryFiles.xlWorkbookXml);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1176 zip.file('[Content_Types].xml', auxiliaryFiles.Content_TypesXml);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1177
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1178 zip.generateAsync({
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1179 type: 'blob',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1180 mimeType:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1181 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1182 })
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1183 .then(function (content) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1184 return that.downloadFile(content, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1185 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1186
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1187 delete that.conditionalFormattingXLSX;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1188 delete that.complexHeaderMergeInfo;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1189 delete that.defaultRowHeight;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1190 delete that.rowHeight;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1191 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1192
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1193 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1194 * Processes grouping information.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1195 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1196 processGroupingInformation(data, xlsx) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1197 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1198
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1199 if (!that.groupBy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1200 return data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1201 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1202
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1203 let header;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1204
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1205 data = data.slice(0);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1206
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1207 if (that.exportHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1208 if (xlsx && that.complexHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1209 header = data.slice(0, that.complexHeader.length);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1210 data.splice(0, that.complexHeader.length);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1211 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1212 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1213 header = [data[0]];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1214 data.splice(0, 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1215 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1216 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1217
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1218 if (data.length > 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1219 const getCompareFunction = function (a, knownDataType) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1220 // gets data type of column (not necessary if the Grid provides this information)
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1221 const dataType = knownDataType || typeof a;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1222 let compareFunction;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1223
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1224 switch (dataType) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1225 case 'string':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1226 compareFunction = new Intl.Collator().compare;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1227 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1228 case 'number':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1229 compareFunction = function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1230 return a - b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1231 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1232 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1233 case 'boolean':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1234 case 'bool':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1235 compareFunction = function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1236 if (a === b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1237 return 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1238 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1239 else if (a === false) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1240 return -1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1241 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1242 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1243 return 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1244 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1245 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1246 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1247 case 'date':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1248 case 'time':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1249 case 'dateTime':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1250 if (a instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1251 compareFunction = function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1252 return a.compare(b);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1253 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1254 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1255 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1256 case 'object':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1257 if (a instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1258 compareFunction = function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1259 return a.getTime() - b.getTime();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1260 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1261 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1262
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1263
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1264 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1265 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1266
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1267 return compareFunction;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1268 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1269
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1270 const sortByMultipleColumns = function (dataSource, sortColumns, directions, customSortingCallback) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1271 if (!dataSource || !(Array.isArray(dataSource)) || dataSource.length === 0 ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1272 !sortColumns || Array.isArray(sortColumns) && sortColumns.length === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1273 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1274 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1275
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1276 if (typeof sortColumns === 'string') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1277 sortColumns = [sortColumns];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1278 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1279
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1280 const directionCoefficients = [],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1281 compareFunctions = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1282
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1283 if (directions === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1284 directions = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1285 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1286
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1287 for (let i = 0; i < sortColumns.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1288 if (directions[i] === undefined || directions[i] === 'asc' || directions[i] === 'ascending') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1289 directionCoefficients[i] = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1290 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1291 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1292 directionCoefficients[i] = -1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1293 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1294
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1295 compareFunctions[i] = getCompareFunction(dataSource[0][sortColumns[i]]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1296 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1297
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1298 if (customSortingCallback) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1299 customSortingCallback(dataSource, sortColumns, directions, compareFunctions);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1300 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1301 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1302
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1303 dataSource.sort(function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1304 for (let i = 0; i < sortColumns.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1305 const result = compareFunctions[i](a[sortColumns[i]], b[sortColumns[i]]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1306
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1307 if (result === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1308 if (sortColumns[i + 1]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1309 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1310 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1311 else if (a._index !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1312 // makes sorting stable
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1313 return (a._index - b._index) * directionCoefficients[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1314 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1315
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1316 return 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1317 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1318
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1319 return result * directionCoefficients[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1320 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1321 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1322 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1323
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1324 sortByMultipleColumns(data, that.groupBy);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1325 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1326
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1327 if (header) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1328 data = header.concat(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1329 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1330
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1331 that.getGroupLabels(data);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1332
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1333 return data;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1334 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1335
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1336 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1337 * Exports to XML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1338 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1339 exportToXML(data, fileName) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1340 const datafields = this.datafields.slice(0);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1341 let xmlContent = '<?xml version="1.0" encoding="UTF-8" ?>\n<table>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1342
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1343 if (datafields.indexOf('rows') === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1344 datafields.push('rows');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1345 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1346
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1347 function recursion(records, indent) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1348 let content = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1349
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1350 for (let i = 0; i < records.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1351 const currentRecord = records[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1352
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1353 content += indent + '<row>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1354
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1355 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1356 const datafield = datafields[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1357
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1358 if (datafield === 'rows') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1359 if (!currentRecord.rows) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1360 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1361 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1362
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1363 content += `${indent} <rows>\n${recursion(currentRecord.rows, indent + ' ')}${indent} </rows>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1364 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1365 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1366
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1367 content += indent + ` <${datafield}>${currentRecord[datafield]}</${datafield}>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1368 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1369
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1370 content += indent + '</row>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1371 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1372
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1373 return content;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1374 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1375
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1376 xmlContent += recursion(data, ' ') + '</table>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1377
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1378 return this.downloadFile(xmlContent, 'application/xml', fileName);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1379 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1380
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1381 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1382 * Formats a date.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1383 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1384 formatDate(value, format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1385 var date = $.jqx.formatDate(value, format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1386
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1387 return date;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1388 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1389
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1390 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1391 * Formats a number.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1392 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1393 formatNumber(value, format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1394 var number = $.jqx.formatNumber(value, format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1395
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1396 return number;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1397 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1398
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1399 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1400 * Generates auxiliary files necessary for XLSX.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1401 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1402 generateAuxiliaryFiles() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1403 // _rels\.rels
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1404 const _relsRels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1405 <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1406
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1407 // docProps\app.xml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1408 const docPropsAppXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1409 <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Microsoft Excel</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>Worksheets</vt:lpstr></vt:variant><vt:variant><vt:i4>1</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="1" baseType="lpstr"><vt:lpstr>Sheet1</vt:lpstr></vt:vector></TitlesOfParts><Company></Company><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>16.0300</AppVersion></Properties>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1410
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1411 // docProps\core.xml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1412 const now = new Date().toISOString(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1413 docPropsCoreXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1414 <cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>Smart HTML Elements</dc:creator><cp:lastModifiedBy>Smart HTML Elements</cp:lastModifiedBy><dcterms:created xsi:type="dcterms:W3CDTF">${now}</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">${now}</dcterms:modified></cp:coreProperties>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1415
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1416 // xl\_rels\workbook.xml.rels
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1417 const xl_relsWorkbookXmlRels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1418 <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/></Relationships>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1419
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1420 // xl\theme\theme1.xml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1421 const xlThemeTheme1Xml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1422 <a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="44546A"/></a:dk2><a:lt2><a:srgbClr val="E7E6E6"/></a:lt2><a:accent1><a:srgbClr val="4472C4"/></a:accent1><a:accent2><a:srgbClr val="ED7D31"/></a:accent2><a:accent3><a:srgbClr val="A5A5A5"/></a:accent3><a:accent4><a:srgbClr val="FFC000"/></a:accent4><a:accent5><a:srgbClr val="5B9BD5"/></a:accent5><a:accent6><a:srgbClr val="70AD47"/></a:accent6><a:hlink><a:srgbClr val="0563C1"/></a:hlink><a:folHlink><a:srgbClr val="954F72"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Calibri Light" panose="020F0302020204030204"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="游ゴシック Light"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="等线 Light"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/><a:font script="Armn" typeface="Arial"/><a:font script="Bugi" typeface="Leelawadee UI"/><a:font script="Bopo" typeface="Microsoft JhengHei"/><a:font script="Java" typeface="Javanese Text"/><a:font script="Lisu" typeface="Segoe UI"/><a:font script="Mymr" typeface="Myanmar Text"/><a:font script="Nkoo" typeface="Ebrima"/><a:font script="Olck" typeface="Nirmala UI"/><a:font script="Osma" typeface="Ebrima"/><a:font script="Phag" typeface="Phagspa"/><a:font script="Syrn" typeface="Estrangelo Edessa"/><a:font script="Syrj" typeface="Estrangelo Edessa"/><a:font script="Syre" typeface="Estrangelo Edessa"/><a:font script="Sora" typeface="Nirmala UI"/><a:font script="Tale" typeface="Microsoft Tai Le"/><a:font script="Talu" typeface="Microsoft New Tai Lue"/><a:font script="Tfng" typeface="Ebrima"/></a:majorFont><a:minorFont><a:latin typeface="Calibri" panose="020F0502020204030204"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="游ゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="等线"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Arial"/><a:font script="Hebr" typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/><a:font script="Armn" typeface="Arial"/><a:font script="Bugi" typeface="Leelawadee UI"/><a:font script="Bopo" typeface="Microsoft JhengHei"/><a:font script="Java" typeface="Javanese Text"/><a:font script="Lisu" typeface="Segoe UI"/><a:font script="Mymr" typeface="Myanmar Text"/><a:font script="Nkoo" typeface="Ebrima"/><a:font script="Olck" typeface="Nirmala UI"/><a:font script="Osma" typeface="Ebrima"/><a:font script="Phag" typeface="Phagspa"/><a:font script="Syrn" typeface="Estrangelo Edessa"/><a:font script="Syrj" typeface="Estrangelo Edessa"/><a:font script="Syre" typeface="Estrangelo Edessa"/><a:font script="Sora" typeface="Nirmala UI"/><a:font script="Tale" typeface="Microsoft Tai Le"/><a:font script="Talu" typeface="Microsoft New Tai Lue"/><a:font script="Tfng" typeface="Ebrima"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:lumMod val="110000"/><a:satMod val="105000"/><a:tint val="67000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="103000"/><a:tint val="73000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="109000"/><a:tint val="81000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:satMod val="103000"/><a:lumMod val="102000"/><a:tint val="94000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:satMod val="110000"/><a:lumMod val="100000"/><a:shade val="100000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="99000"/><a:satMod val="120000"/><a:shade val="78000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="6350" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln><a:ln w="12700" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln><a:ln w="19050" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="57150" dist="19050" dir="5400000" algn="ctr" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="63000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:solidFill><a:schemeClr val="phClr"><a:tint val="95000"/><a:satMod val="170000"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="93000"/><a:satMod val="150000"/><a:shade val="98000"/><a:lumMod val="102000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:tint val="98000"/><a:satMod val="130000"/><a:shade val="90000"/><a:lumMod val="103000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="63000"/><a:satMod val="120000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/><a:extLst><a:ext uri="{05A4C25C-085E-4340-85A3-A5531E510DB2}"><thm15:themeFamily xmlns:thm15="http://schemas.microsoft.com/office/thememl/2012/main" name="Office Theme" id="{62F939B6-93AF-4DB8-9C6B-D6C7DFDC589F}" vid="{4A3C46E8-61CC-4603-A589-7422A47A8E4A}"/></a:ext></a:extLst></a:theme>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1423
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1424 // xl\workbook.xml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1425 const xlWorkbookXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1426 <workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15 xr xr6 xr10 xr2" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr6="http://schemas.microsoft.com/office/spreadsheetml/2016/revision6" xmlns:xr10="http://schemas.microsoft.com/office/spreadsheetml/2016/revision10" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2"><fileVersion appName="xl" lastEdited="7" lowestEdited="7" rupBuild="20325"/><workbookPr defaultThemeVersion="166925"/><mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice Requires="x15"><x15ac:absPath url="C:\Users\jqwidgets\Desktop\" xmlns:x15ac="http://schemas.microsoft.com/office/spreadsheetml/2010/11/ac"/></mc:Choice></mc:AlternateContent><xr:revisionPtr revIDLastSave="0" documentId="13_ncr:1_{0DEDCB6D-5403-4CD8-AAA5-59B6D238A8B6}" xr6:coauthVersionLast="34" xr6:coauthVersionMax="34" xr10:uidLastSave="{00000000-0000-0000-0000-000000000000}"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="19200" windowHeight="6950" xr2:uid="{0CB664E6-3800-4A88-B158-B46A682E7484}"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="179021"/><extLst><ext uri="{140A7094-0E35-4892-8432-C4D2E57EDEB5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:workbookPr chartTrackingRefBase="1"/></ext></extLst></workbook>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1427
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1428 // [Content_Types].xml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1429 const Content_TypesXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1430 <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="bin" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings"/><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1431
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1432 return {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1433 _relsRels: _relsRels,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1434 docPropsAppXml: docPropsAppXml,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1435 docPropsCoreXml: docPropsCoreXml,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1436 xl_relsWorkbookXmlRels: xl_relsWorkbookXmlRels,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1437 xlThemeTheme1Xml: xlThemeTheme1Xml,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1438 xlWorkbookXml: xlWorkbookXml,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1439 Content_TypesXml: Content_TypesXml
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1440 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1441 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1442
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1443 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1444 * Generates default style object (for use in XLSX export).
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1445 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1446 generateDefaultStyle(data) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1447 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1448 defaultStyle = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1449 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1450 firstRecord = that.complexHeader ? data[that.complexHeader.length] : data[+that.exportHeader];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1451
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1452 if (!firstRecord) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1453 return defaultStyle;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1454 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1455
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1456 for (let i = 0; i < datafields.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1457 const sampleValue = firstRecord[datafields[i]];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1458
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1459 if (sampleValue instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1460 if (!defaultStyle.columns) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1461 defaultStyle.columns = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1462 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1463
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1464 defaultStyle.columns[datafields[i]] = { format: 'd' };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1465 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1466 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1467
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1468 return defaultStyle;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1469 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1470
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1471 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1472 * Generates group row.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1473 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1474 generateGroupRow(details) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1475 const rowNumber = details.rowNumber,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1476 from = 'A' + rowNumber,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1477 recordXML = ` <row r="${rowNumber}" outlineLevel="${details.outlineLevel}" spans="1:${details.numberOfColumns}"${this.getCustomRowHeight(rowNumber - 1)} x14ac:dyDescent="0.45">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1478 <c r="${from}" t="s" s="0">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1479 <v>${details.sharedStringIndex}</v>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1480 </c>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1481 </row>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1482
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1483 details.mergedCells.push({ from: from, to: this.columnsArray[details.numberOfColumns - 1] + rowNumber });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1484
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1485 return recordXML;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1486 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1487
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1488 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1489 * Generates sharedStrings.xml.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1490 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1491 generateSharedStrings(data) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1492 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1493 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1494 collection = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1495 let xml = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1496 count = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1497 uniqueCount = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1498
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1499 function addSharedString(currentValue) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1500 count++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1501
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1502 if (collection.indexOf(currentValue) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1503 uniqueCount++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1504 collection.push(currentValue);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1505
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1506 currentValue = currentValue.replace(/&(?!amp;)/g, '&amp;');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1507 currentValue = currentValue.replace(/'/g, '&apos;');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1508 currentValue = currentValue.replace(/"/g, '&quot;');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1509 currentValue = currentValue.replace(/>/g, '&gt;');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1510 currentValue = currentValue.replace(/</g, '&lt;');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1511
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1512 xml += `<si><t>${currentValue}</t></si>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1513 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1514 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1515
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1516 for (let i = 0; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1517 const currentRecord = data[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1518
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1519 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1520 let currentValue = currentRecord[datafields[j]];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1521
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1522 if (typeof currentValue !== 'string') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1523 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1524 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1525
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1526 addSharedString(currentValue);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1527 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1528 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1529
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1530 if (that.groupLabels) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1531 for (let i = 0; i < that.groupLabels.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1532 addSharedString(that.groupLabels[i]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1533 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1534 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1535
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1536 xml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1537 <sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="${count}" uniqueCount="${uniqueCount}">${xml}</sst>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1538
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1539 return { collection: collection, xml: xml };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1540 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1541
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1542 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1543 * Generates sheet1.xml.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1544 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1545 generateSheet1(data, sharedStrings) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1546 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1547 numberOfColumns = that.columnsArray.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1548 numberOfRows = data.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1549 dimensionEnd = that.columnsArray[numberOfColumns - 1] + numberOfRows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1550 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1551 autoFilter = that.getFilters(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1552 mergedCells = [].concat(that.complexHeaderMergedCells);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1553
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1554 let xmlContent = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1555 <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xr:uid="{7F25248B-C640-4C64-AD47-C0EA0E5D90D0}">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1556 <sheetPr filterMode="${autoFilter !== ''}" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1557 <dimension ref="A1:${dimensionEnd}" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1558 <sheetViews>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1559 <sheetView tabSelected="1" workbookViewId="0" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1560 </sheetViews>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1561 <sheetFormatPr defaultRowHeight="14.5" x14ac:dyDescent="0.35" />${that.getCustomColumnWidths()}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1562 <sheetData>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1563
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1564 function r(col, row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1565 return that.columnsArray[col] + row;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1566 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1567
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1568 for (let i = 0; i <= data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1569 const currentRecord = data[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1570 rowNumber = i + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1571 let collapsed = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1572
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1573 if (that.actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1574 const previousRecord = data[i - 1];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1575
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1576 if (previousRecord && previousRecord._collapsed &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1577 (!currentRecord || previousRecord._level > currentRecord._level)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1578 collapsed = ' collapsed="true"';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1579 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1580 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1581
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1582 if (i === data.length) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1583 if (collapsed) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1584 xmlContent += ` <row r="${rowNumber}" outlineLevel="${Math.max(data[i - 1]._level - 2, 0)}" hidden="false" collapsed="true" />\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1585 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1586
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1587 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1588 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1589
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1590 let recordXML = ` <row r="${rowNumber}"${that.getOutlineLevel(currentRecord)} hidden="${currentRecord._hidden || currentRecord._collapsed || false}"${collapsed} spans="1:${numberOfColumns}"${that.getCustomRowHeight(rowNumber - 1)} x14ac:dyDescent="0.45">\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1591
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1592 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1593 const s = that.getXLSXCellStyle(r(j, rowNumber));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1594
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1595 recordXML += that.getActualCellData(currentRecord[datafields[j]], { r: r(j, rowNumber), s: s }, sharedStrings);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1596 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1597
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1598 recordXML += ' </row>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1599 xmlContent += recordXML;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1600 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1601
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1602 xmlContent += ` </sheetData>${that.conditionalFormattingXLSX.conditions}${autoFilter}${that.getMergedCells(mergedCells)}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1603 <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1604 <pageSetup paperSize="9" orientation="portrait" r:id="rId1" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1605 </worksheet>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1606
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1607 return xmlContent;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1608 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1609
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1610 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1611 * Generates sheet1.xml with grouping.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1612 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1613 generateSheet1WithGrouping(data, sharedStrings) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1614 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1615 numberOfColumns = that.columnsArray.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1616 numberOfRows = data.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1617 dimensionEnd = that.columnsArray[numberOfColumns - 1] + numberOfRows,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1618 datafields = that.datafields,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1619 mergedCells = [].concat(that.complexHeaderMergedCells);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1620
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1621 let xmlContent = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1622 <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xr:uid="{7F25248B-C640-4C64-AD47-C0EA0E5D90D0}">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1623 <dimension ref="A1:${dimensionEnd}" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1624 <sheetViews>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1625 <sheetView tabSelected="1" workbookViewId="0" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1626 </sheetViews>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1627 <sheetFormatPr defaultRowHeight="14.5" x14ac:dyDescent="0.35" />${that.getCustomColumnWidths()}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1628 <sheetData>\n`,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1629 rowNumberCorrection = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1630 groupsHandled = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1631
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1632 function r(col, row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1633 return that.columnsArray[col] + row;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1634 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1635
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1636 mainLoop:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1637 for (let i = 0; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1638 const currentRecord = data[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1639 rowNumber = i + 1 + rowNumberCorrection;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1640 let outlineLevel = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1641 outlineXML = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1642
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1643 if (!that.exportHeader ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1644 (!that.complexHeader && i !== 0) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1645 (that.complexHeader && i >= that.complexHeader.length)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1646 let groupId = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1647
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1648 for (let k = 0; k < that.groupBy.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1649 const datafield = that.groupBy[k],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1650 currentGroup = currentRecord[datafield],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1651 currentGroupLabel = that.groups[datafield][currentGroup];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1652
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1653 groupId += currentGroup;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1654
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1655 if (groupsHandled.indexOf(groupId) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1656 let sharedStringIndex = sharedStrings.indexOf(currentGroupLabel);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1657
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1658 xmlContent += that.generateGroupRow({
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1659 rowNumber: rowNumber,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1660 outlineLevel: outlineLevel,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1661 numberOfColumns: numberOfColumns,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1662 sharedStringIndex: sharedStringIndex,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1663 mergedCells: mergedCells
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1664 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1665 groupsHandled.push(groupId);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1666 i--;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1667 rowNumberCorrection++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1668 continue mainLoop;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1669 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1670
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1671 outlineLevel++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1672 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1673
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1674 outlineXML = ` outlineLevel="${outlineLevel}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1675 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1676
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1677 let recordXML = ` <row r="${rowNumber}"${outlineXML} spans="1:${numberOfColumns}"${that.getCustomRowHeight(rowNumber - 1)} x14ac:dyDescent="0.45">\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1678
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1679 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1680 const s = that.getXLSXCellStyle(r(j, i + 1));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1681
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1682 recordXML += that.getActualCellData(currentRecord[datafields[j]], { r: r(j, rowNumber), s: s }, sharedStrings);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1683 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1684
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1685 recordXML += ' </row>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1686 xmlContent += recordXML;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1687 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1688
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1689 xmlContent += ` </sheetData>${that.getMergedCells(mergedCells)}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1690 <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1691 <pageSetup paperSize="9" orientation="portrait" r:id="rId1" />
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1692 </worksheet>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1693
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1694 return xmlContent;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1695 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1696
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1697 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1698 * Gets actual spreadsheet cell data.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1699 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1700 getActualCellData(currentValue, details, sharedStrings) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1701 const r = details.r,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1702 s = details.s || ' s="0"';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1703
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1704 if (typeof currentValue === 'string') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1705 return ` <c r="${r}" t="s"${s}>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1706 <v>${sharedStrings.indexOf(currentValue)}</v>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1707 </c>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1708 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1709
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1710 if (typeof currentValue === 'boolean') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1711 return ` <c r="${r}" t="b"${s}>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1712 <v>${+currentValue}</v>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1713 </c>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1714 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1715
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1716 if (currentValue instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1717 const excelDate = (currentValue.getTime() + this.timeBetween1900And1970) / 86400000 + 2;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1718
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1719 return ` <c r="${r}"${s}>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1720 <v>${excelDate}</v>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1721 </c>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1722 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1723
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1724 // numeric cells
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1725 return ` <c r="${r}"${s}>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1726 <v>${currentValue}</v>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1727 </c>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1728 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1729
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1730 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1731 * Gets column labels.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1732 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1733 getColumnsArray() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1734 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1735 numberOfColumns = that.datafields.length,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1736 columnsCollection = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1737
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1738 function getIterator(i) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1739 if (i < 26) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1740 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1741 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1742
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1743 return String.fromCharCode(64 + Math.floor(i / 26));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1744 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1745
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1746 for (let i = 0; i < numberOfColumns; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1747 columnsCollection.push(getIterator(i) + String.fromCharCode(65 + (i < 26 ? i : i % 26)));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1748 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1749
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1750 that.columnsArray = columnsCollection;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1751 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1752
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1753 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1754 * Gets column style.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1755 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1756 getColumnStyle() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1757 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1758 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1759
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1760 if (!style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1761 return ` .header { border: 1px solid black; padding: 5px; }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1762 .column { border: 1px solid black; padding: 5px; }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1763 .group { background-color: #FFFFFF; color: #000000; font-weight: bold; }`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1764 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1765
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1766 const styles = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1767 header: 'border: 1px solid black; padding: 5px; ',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1768 column: 'white-space: nowrap; overflow: hidden; border: 1px solid black; padding: 5px; ',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1769 group: 'background-color: #FFFFFF; color: #000000; font-weight: bold; '
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1770 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1771 sampleRecord = that.data[0];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1772 let generatedStyle = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1773
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1774 const headerDefinition = style.header || {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1775
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1776 for (let prop in headerDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1777 if (!headerDefinition.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1778 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1779 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1780
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1781 const value = headerDefinition[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1782
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1783 if (sampleRecord[prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1784 if (!styles['header' + prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1785 styles['header' + prop] = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1786 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1787
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1788 for (let columnProp in value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1789 if (value.hasOwnProperty(columnProp)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1790 const css = window.jqxToDash(columnProp) + ': ' + value[columnProp] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1791
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1792 styles['header' + prop] += css;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1793
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1794 if (columnProp === 'width') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1795 if (!styles['column' + prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1796 styles['column' + prop] = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1797 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1798
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1799 styles['column' + prop] += css;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1800 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1801 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1802 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1803
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1804 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1805 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1806
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1807 if (prop === 'height' && that.complexHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1808 styles.header += 'height: ' + parseInt(headerDefinition[prop], 10) / that.complexHeader.length + 'px; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1809 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1810 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1811 styles.header += window.jqxToDash(prop) + ': ' + headerDefinition[prop] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1812 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1813 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1814
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1815 const columnsDefinition = style.columns || {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1816
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1817 for (let prop in columnsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1818 if (!columnsDefinition.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1819 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1820 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1821
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1822 const value = columnsDefinition[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1823
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1824 if (sampleRecord[prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1825 if (!styles['column' + prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1826 styles['column' + prop] = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1827 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1828
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1829 for (let columnProp in value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1830 if (isNaN(columnProp) && value.hasOwnProperty(columnProp) && columnProp !== 'format') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1831 styles['column' + prop] += window.jqxToDash(columnProp) + ': ' + value[columnProp] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1832 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1833 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1834
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1835 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1836 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1837
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1838 styles.column += window.jqxToDash(prop) + ': ' + value + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1839 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1840
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1841 for (let prop in styles) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1842 if (styles.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1843 generatedStyle += ` .${prop} { ${styles[prop]}}\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1844 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1845 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1846
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1847 return generatedStyle;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1848 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1849
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1850 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1851 * Gets custom column widths.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1852 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1853 getCustomColumnWidths() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1854 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1855
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1856 if (!that.style || !that.columnWidth || that.columnWidth.length === 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1857 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1858 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1859
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1860 let xml = '\n <cols>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1861
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1862 for (let i = 0; i < that.columnWidth.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1863 let width = that.columnWidth[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1864
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1865 if (width !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1866 width = Math.round(parseFloat(width)) / 11;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1867 xml += ` <col min="${i + 1}" max="${i + 1}" width="${width}" customWidth="1" />\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1868 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1869 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1870
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1871 xml += ' </cols>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1872
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1873 return xml;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1874 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1875
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1876 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1877 * Returns customFilter tag.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1878 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1879 getCustomFilter(value, condition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1880 let operator = 'equal',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1881 val;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1882
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1883 if (value instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1884 value = (value.getTime() + this.timeBetween1900And1970) / 86400000 + 2;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1885 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1886
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1887 condition = condition.toUpperCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1888
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1889 switch (condition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1890 case 'EMPTY':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1891 val = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1892 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1893 case 'NOT_EMPTY':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1894 val = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1895 operator = 'notEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1896 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1897 case 'CONTAINS':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1898 case 'CONTAINS_CASE_SENSITIVE':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1899 val = `*${value}*`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1900 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1901 case 'DOES_NOT_CONTAIN':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1902 case 'DOES_NOT_CONTAIN_CASE_SENSITIVE':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1903 val = `*${value}*`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1904 operator = 'notEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1905 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1906 case 'STARTS_WITH':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1907 case 'STARTS_WITH_CASE_SENSITIVE':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1908 val = `${value}*`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1909 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1910 case 'ENDS_WITH':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1911 case 'ENDS_WITH_CASE_SENSITIVE':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1912 val = `*${value}`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1913 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1914 case 'EQUAL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1915 case 'EQUAL_CASE_SENSITIVE':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1916 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1917 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1918 case 'NULL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1919 val = null;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1920 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1921 case 'NOT_NULL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1922 val = null;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1923 operator = 'notEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1924 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1925 case 'NOT_EQUAL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1926 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1927 operator = 'notEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1928 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1929 case 'LESS_THAN':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1930 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1931 operator = 'lessThan';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1932 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1933 case 'LESS_THAN_OR_EQUAL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1934 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1935 operator = 'lessThanOrEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1936 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1937 case 'GREATER_THAN':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1938 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1939 operator = 'greaterThan';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1940 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1941 case 'GREATER_THAN_OR_EQUAL':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1942 val = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1943 operator = 'greaterThanOrEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1944 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1945 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1946
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1947 return ` <customFilter val="${val}" operator="${operator}"/>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1948 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1949
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1950 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1951 * Gets custom row height.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1952 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1953 getCustomRowHeight(row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1954 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1955
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1956 if (that.style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1957 return that.rowHeight[row] || that.defaultRowHeight || '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1958 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1959
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1960 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1961 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1962
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1963 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1964 * Gets datafields.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1965 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1966 getDatafields(data) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1967 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1968 sampleRecord = data[0],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1969 datafields = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1970
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1971 for (let prop in sampleRecord) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1972 if (sampleRecord.hasOwnProperty(prop) && prop.charAt(0) !== '_') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1973 datafields.push(prop);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1974 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1975 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1976
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1977 that.datafields = datafields;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1978 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1979
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1980 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1981 * Returns autoFilter XML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1982 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1983 getFilters() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1984 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1985 filterBy = that.filterBy;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1986
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1987 if (!filterBy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1988 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1989 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1990
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1991 let xml = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1992
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1993 for (let datafield in filterBy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1994 if (filterBy.hasOwnProperty(datafield)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1995 const colId = that.datafields.indexOf(datafield);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1996
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1997 if (colId === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1998 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1999 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2000
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2001 const filterDetails = filterBy[datafield],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2002 filters = filterDetails.filters;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2003
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2004 xml += ` <filterColumn colId="${colId}">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2005 <customFilters and="${!filterDetails.operator}">\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2006
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2007 for (let i = 0; i < filters.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2008 xml += that.getCustomFilter(filters[i].value, filters[i].condition);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2009 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2010
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2011 xml += ` </customFilters>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2012 </filterColumn>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2013 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2014 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2015
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2016 if (!xml) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2017 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2018 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2019
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2020 xml = `\n <autoFilter ref="A1:${that.columnsArray[that.columnsArray.length - 1] + that.data.length}">\n${xml}\n </autoFilter>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2021 return xml;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2022 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2023
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2024 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2025 * Gets group labels based on data.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2026 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2027 getGroupLabels(data) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2028 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2029 startIndex = that.xlsxStartIndex !== undefined ? that.xlsxStartIndex : +that.exportHeader,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2030 groups = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2031 groupLabels = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2032
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2033 for (let i = startIndex; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2034 const currentRecord = data[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2035
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2036 for (let j = 0; j < that.groupBy.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2037 const datafield = that.groupBy[j],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2038 currentValue = currentRecord[datafield];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2039 let group = groups[datafield];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2040
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2041 if (group === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2042 groups[datafield] = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2043 group = groups[datafield];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2044 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2045
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2046 if (group[currentValue] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2047 group[currentValue] = (that.exportHeader ? data[startIndex - 1][datafield] : datafield) + ': ' + currentValue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2048 groupLabels.push(group[currentValue]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2049 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2050 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2051 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2052
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2053 that.groups = groups;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2054 that.groupLabels = groupLabels;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2055 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2056
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2057 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2058 * Gets the header content when exporting to HTML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2059 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2060 getHTMLHeader(datafields, data) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2061 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2062 let header = '\n <thead>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2063
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2064 if (!that.complexHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2065 header += ' <tr>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2066
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2067 for (let j = 0; j < datafields.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2068 const datafield = datafields[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2069
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2070 header += ` <th class="header header${datafield}">${data[0][datafield]}</th>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2071 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2072
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2073 header += ' </tr>\n </thead>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2074 return header;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2075 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2076
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2077 for (let j = 0; j < that.complexHeader.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2078 const row = that.complexHeader[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2079
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2080 header += ' <tr>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2081
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2082 for (let k = 0; k < row.length; k++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2083 const currentLabel = row[k];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2084 let colspan = 1, rowspan = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2085
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2086 if ((row[k - 1] && row[k - 1] === currentLabel) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2087 (that.complexHeader[j - 1] && (that.complexHeader[j - 1][k] === currentLabel))) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2088 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2089 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2090
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2091 let iterator = k + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2092
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2093 while (row[iterator] && row[iterator] === row[iterator - 1]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2094 colspan++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2095 iterator++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2096 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2097
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2098 iterator = j + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2099
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2100 while (that.complexHeader[iterator] && that.complexHeader[iterator][k] === currentLabel) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2101 rowspan++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2102 iterator++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2103 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2104
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2105 const datafield = j === that.complexHeader.length - 1 || rowspan + j === that.complexHeader.length ?
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2106 ' header' + datafields[k] : '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2107
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2108 header += ` <th class="header${datafield}" colspan="${colspan}" rowspan="${rowspan}">${currentLabel}</th>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2109 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2110
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2111 header += ' </tr>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2112 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2113
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2114 header += ' </thead>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2115 return header;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2116 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2117
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2118 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2119 * Gets conditional formatting XML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2120 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2121 getConditionalFormatting() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2122 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2123 conditionalFormatting = that.conditionalFormatting;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2124
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2125 if (!conditionalFormatting) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2126 that.conditionalFormattingXLSX = { conditions: '', styles: '' };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2127 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2128 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2129
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2130 const dxfCodes = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2131 let conditionsXml = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2132 stylesXml = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2133
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2134 for (let i = conditionalFormatting.length - 1; i >= 0; i--) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2135 const columnFormat = conditionalFormatting[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2136 columnLetter = that.columnsArray[that.datafields.indexOf(columnFormat.column)],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2137 startCell = columnLetter + (that.xlsxStartIndex + 1),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2138 sqref = startCell + ':' + columnLetter + (that.data.length),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2139 dxfCode = columnFormat.background + columnFormat.color,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2140 attr = that.getConditionalAttributes(columnFormat, startCell);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2141 let dxfId = dxfCodes.indexOf(dxfCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2142
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2143 if (dxfId === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2144 const newDxf = ` <dxf>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2145 <font>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2146 <b val="0"/>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2147 <i val="0"/>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2148 <color rgb="${columnFormat.color === 'White' ? 'FFFFFFFF' : 'FF000000'}"/>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2149 <sz val="10"/>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2150 </font>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2151 <fill>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2152 <patternFill>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2153 <bgColor rgb="${that.toARGB(columnFormat.background)}"/>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2154 </patternFill>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2155 </fill>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2156 </dxf>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2157
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2158 stylesXml += newDxf;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2159 dxfId = dxfCodes.length;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2160 dxfCodes.push(dxfCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2161 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2162
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2163 conditionsXml += ` <conditionalFormatting sqref="${sqref}">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2164 <cfRule dxfId="${dxfId}" text="${attr.text}" rank="${attr.rank}" percent="${attr.percent}" bottom="${attr.bottom}" equalAverage="${attr.equalAverage}" aboveAverage="${attr.aboveAverage}"${attr.operator}${attr.timePeriod} priority="${i + 2}" type="${attr.type}">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2165 ${attr.formula} </cfRule>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2166 </conditionalFormatting>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2167 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2168
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2169 stylesXml = ` <dxfs count="${dxfCodes.length}">\n${stylesXml} </dxfs>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2170
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2171 that.conditionalFormattingXLSX = { conditions: conditionsXml, styles: stylesXml };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2172 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2173
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2174 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2175 * Gets conditional formatting XML attributes.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2176 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2177 getConditionalAttributes(columnFormat, startCell) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2178 let condition = columnFormat.condition,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2179 comparator = columnFormat.comparator,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2180 text = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2181 rank = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2182 percent = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2183 bottom = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2184 equalAverage = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2185 aboveAverage = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2186 operator = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2187 timePeriod = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2188 type = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2189 formula = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2190
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2191 switch (condition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2192 case 'equal':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2193 operator = 'equal';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2194 type = 'cellIs';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2195 formula = ` <formula>${comparator}</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2196 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2197 case 'lessThan':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2198 operator = 'lessThan';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2199 type = 'cellIs';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2200 formula = ` <formula>${comparator}</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2201 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2202 case 'greaterThan':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2203 operator = 'greaterThan';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2204 type = 'cellIs';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2205 formula = ` <formula>${comparator}</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2206 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2207 case 'notEqual':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2208 operator = 'notEqual';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2209 type = 'cellIs';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2210 formula = ` <formula>${comparator}</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2211 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2212 case 'between':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2213 operator = 'between';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2214 type = 'cellIs';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2215 formula = ` <formula>${columnFormat.min}</formula>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2216 <formula>${columnFormat.max}</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2217 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2218 case 'duplicate':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2219 type = 'duplicateValues';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2220 formula = ' <formula>0</formula>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2221 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2222 case 'topNItems':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2223 rank = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2224 type = 'top10';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2225 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2226 case 'bottomNItems':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2227 rank = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2228 bottom = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2229 type = 'top10';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2230 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2231 case 'topNPercent':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2232 rank = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2233 percent = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2234 type = 'top10';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2235 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2236 case 'bottomNPercent':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2237 rank = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2238 percent = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2239 bottom = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2240 type = 'top10';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2241 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2242 case 'aboveAverage':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2243 aboveAverage = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2244 type = 'aboveAverage';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2245 formula = ' <formula>0</formula>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2246 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2247 case 'belowAverage':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2248 type = 'aboveAverage';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2249 formula = ' <formula>0</formula>\n';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2250 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2251 case 'contains':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2252 text = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2253 operator = 'containsText';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2254 type = 'containsText';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2255 formula = ` <formula>NOT(ISERROR(SEARCH("${comparator}",${startCell})))</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2256 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2257 case 'doesNotContain':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2258 text = comparator;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2259 operator = 'notContains';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2260 type = 'notContainsText';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2261 formula = ` <formula>ISERROR(SEARCH("${comparator}",${startCell}))</formula>\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2262 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2263 case 'dateOccur':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2264 timePeriod = ` timePeriod="${comparator}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2265 type = 'timePeriod';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2266 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2267 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2268
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2269 if (operator) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2270 operator = ` operator="${operator}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2271 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2272
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2273 return {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2274 text: text,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2275 rank: rank,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2276 percent: percent,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2277 bottom: bottom,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2278 equalAverage: equalAverage,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2279 aboveAverage: aboveAverage,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2280 operator: operator,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2281 timePeriod: timePeriod,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2282 type: type,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2283 formula: formula
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2284 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2285 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2286
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2287 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2288 * Gets merged cells XML.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2289 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2290 getMergedCells(mergedCells) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2291 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2292
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2293 let mergeCellsXml = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2294
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2295 for (let i = 0; i < mergedCells.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2296 if (mergedCells[i].from === mergedCells[i].to) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2297 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2298 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2299
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2300 mergeCellsXml += `\n <mergeCell ref="${mergedCells[i].from}:${mergedCells[i].to}" />\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2301 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2302
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2303 if (that.mergedCells) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2304 for (let i = 0; i < that.mergedCells.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2305 const cellDefinition = that.mergedCells[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2306
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2307 if (cellDefinition.rowspan < 2 && cellDefinition.colspan < 2) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2308 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2309 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2310
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2311 const from = that.columnsArray[cellDefinition.cell[0]] + (cellDefinition.cell[1] + that.xlsxStartIndex + 1),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2312 to = that.columnsArray[cellDefinition.cell[0] + cellDefinition.colspan - 1] + (cellDefinition.cell[1] + that.xlsxStartIndex + cellDefinition.rowspan);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2313
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2314 mergeCellsXml += `\n <mergeCell ref="${from}:${to}" />\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2315 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2316 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2317
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2318 if (mergeCellsXml) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2319 mergeCellsXml = `\n <mergeCells count="${mergedCells.length}">${mergeCellsXml} </mergeCells>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2320 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2321
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2322 return mergeCellsXml;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2323 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2324
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2325 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2326 * Gets numFmt index.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2327 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2328 getNumFmtIndex(format, numFmts) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2329 let index = numFmts.collection.indexOf(format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2330
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2331 if (index === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2332 index = numFmts.collection.length + 100;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2333 numFmts.collection.push(format);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2334 numFmts.xml += `<numFmt numFmtId="${index}" formatCode="${format}"/>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2335 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2336 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2337 index += 100;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2338 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2339
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2340 return index;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2341 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2342
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2343 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2344 * Returns outlineLevel.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2345 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2346 getOutlineLevel(record) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2347 if (!this.actualHierarchy || record._level === 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2348 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2349 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2350
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2351 return ` outlineLevel="${record._level - 1}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2352 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2353
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2354 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2355 * Gets row style.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2356 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2357 getRowStyle() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2358 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2359 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2360
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2361 if (!style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2362 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2363 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2364
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2365 const rowsDefinition = style.rows;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2366
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2367 if (!rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2368 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2369 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2370
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2371 const styles = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2372 row: ''
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2373 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2374 let generatedStyle = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2375
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2376 for (let prop in rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2377 if (!rowsDefinition.hasOwnProperty(prop) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2378 prop === 'alternationCount' ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2379 prop === 'alternationStart' ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2380 prop === 'alternationEnd') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2381 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2382 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2383
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2384 const value = rowsDefinition[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2385
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2386 if (prop.indexOf('alt') !== -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2387 const i = prop.slice(16, 17),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2388 property = prop.slice(17);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2389
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2390 if (!styles['rowN' + i]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2391 styles['rowN' + i] = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2392 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2393
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2394 if (property === 'Color') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2395 styles['rowN' + i] += 'color : ' + value + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2396 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2397 else if (property === 'BorderColor') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2398 styles['rowN' + i] += 'border-color : ' + value + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2399 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2400 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2401 styles['rowN' + i] += 'background-color : ' + value + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2402 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2403
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2404 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2405 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2406
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2407 if (!isNaN(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2408 if (!styles['row' + prop]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2409 styles['row' + prop] = '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2410 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2411
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2412 for (let rowProp in value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2413 if (value.hasOwnProperty(rowProp)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2414 styles['row' + prop] += window.jqxToDash(rowProp) + ': ' + value[rowProp] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2415 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2416 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2417
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2418 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2419 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2420
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2421 styles.row += window.jqxToDash(prop) + ': ' + rowsDefinition[prop] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2422 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2423
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2424 let keys = Object.keys(styles);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2425
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2426 keys.sort(function (a, b) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2427 if (a === 'row') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2428 return -1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2429 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2430
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2431 if (b === 'row') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2432 return 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2433 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2434
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2435 const aIsNum = !isNaN(a.slice(3)),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2436 bIsNum = !isNaN(b.slice(3));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2437
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2438 if (aIsNum && !bIsNum) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2439 return 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2440 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2441
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2442 if (!aIsNum && bIsNum) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2443 return -1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2444 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2445
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2446 return +(a < b);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2447 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2448
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2449 for (let i = 0; i < keys.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2450 generatedStyle += ` .${keys[i]} { ${styles[keys[i]]}}\n`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2451 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2452
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2453 return generatedStyle;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2454 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2455
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2456 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2457 * Gets table style.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2458 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2459 getTableStyle() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2460 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2461 style = that.style;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2462
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2463 if (!style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2464 return ' style="table-layout: fixed; border: 1px solid black; border-collapse: collapse;"';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2465 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2466
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2467 let generatedStyle = 'table-layout: fixed; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2468
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2469 for (let prop in style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2470 if (style.hasOwnProperty(prop) && ['header', 'columns', 'rows'].indexOf(prop) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2471 generatedStyle += window.jqxToDash(prop) + ': ' + style[prop] + '; ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2472 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2473 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2474
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2475 if (generatedStyle) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2476 generatedStyle = ' style="' + generatedStyle + '"';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2477 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2478
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2479 return generatedStyle;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2480 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2481
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2482 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2483 * Gets the "s" (style) attribute of an XLSX cell.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2484 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2485 getXLSXCellStyle(r) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2486 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2487
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2488 if (that.cellStyleMapping[r] !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2489 return ` s="${that.cellStyleMapping[r]}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2490 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2491
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2492 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2493 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2494
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2495 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2496 * Gets the "s" (style) attribute of an XLSX cell.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2497 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2498 getXLSXFormat(format, cellValue) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2499 if (typeof cellValue === 'number') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2500 let precision = parseFloat(format.slice(1)) || 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2501 precisionCode = precision > 0 ? '.' + ('0').repeat(precision) : '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2502
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2503 format = format.slice(0, 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2504
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2505 switch (format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2506 case 'C':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2507 case 'c':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2508 return '\$#,0' + precisionCode;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2509 case 'D':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2510 case 'd':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2511 if (precision) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2512 return ('0').repeat(precision);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2513 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2514
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2515 return '0';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2516 case 'E':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2517 case 'e':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2518 return '0' + precisionCode + format + '000';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2519 case 'F':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2520 case 'f':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2521 return '0' + precisionCode;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2522 case 'N':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2523 case 'n':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2524 return '#,0' + precisionCode;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2525 case 'P':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2526 case 'p':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2527 return '#,0' + precisionCode + ' %';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2528 default:
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2529 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2530 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2531 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2532 else if (cellValue instanceof Date) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2533 switch (format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2534 case 'd':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2535 return 'm/d/yyyy';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2536 case 'D':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2537 return 'nnnnmmmm dd, yyyy';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2538 case 't':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2539 return 'h:m AM/PM';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2540 case 'T':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2541 return 'h:mm:ss AM/PM';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2542 case 'f':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2543 return 'nnnnmmmm dd, yyyy h:m AM/PM';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2544 case 'F':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2545 return 'nnnnmmmm dd, yyyy h:mm:ss AM/PM';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2546 case 'M':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2547 return 'mmmm d';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2548 case 'Y':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2549 return 'yyyy mmmm';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2550 case 'FP':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2551 case 'PP':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2552 return 'yyyy-mm-dd hh:mm:ss';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2553 case 'FT':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2554 case 'PT':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2555 return 'hh:mm:ss';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2556 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2557
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2558 format = format.replace(/f|u|n|p|e|a|x|o/gi, '');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2559 format = format.replace(/tt/gi, 'AM/PM');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2560 format = format.replace(/:{2,}|:\s|:$|\.$/g, '');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2561 format = format.trim();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2562 return format;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2563 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2564 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2565
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2566 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2567 * Processes column styles.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2568 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2569 processColumnStyle(style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2570 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2571 headerDefinition = style.header,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2572 columnsDefinition = style.columns,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2573 sampleRecord = that.data[0],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2574 startIndex = that.xlsxStartIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2575
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2576 that.columnWidth = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2577
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2578 if (startIndex && headerDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2579 for (let i = 0; i < that.columnsArray.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2580 const columnLetter = that.columnsArray[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2581 cell = columnLetter + startIndex,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2582 columnSpecific = headerDefinition[that.datafields[i]];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2583
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2584 for (let prop in headerDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2585 if (headerDefinition.hasOwnProperty(prop) && sampleRecord[prop] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2586 if (that.complexHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2587 for (let j = 0; j < that.complexHeader.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2588 if (prop === 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2589 that.rowHeight[j] = ` ht="${(parseFloat(headerDefinition.height) / that.complexHeader.length) / 2}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2590 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2591 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2592 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2593 that.storeCellStyle(columnLetter + (j + 1), prop, headerDefinition[prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2594 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2595 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2596 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2597 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2598 if (prop === 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2599 that.rowHeight[0] = ` ht="${parseFloat(headerDefinition.height) / 2}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2600 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2601 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2602
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2603 that.storeCellStyle(cell, prop, headerDefinition[prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2604 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2605 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2606 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2607
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2608 if (!columnSpecific) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2609 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2610 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2611
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2612 for (let prop in columnSpecific) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2613 if (columnSpecific.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2614 if (prop === 'width') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2615 that.columnWidth[i] = columnSpecific.width;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2616 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2617 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2618
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2619 that.storeCellStyle(cell, prop, columnSpecific[prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2620 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2621 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2622 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2623 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2624 else if (headerDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2625 for (let i = 0; i < that.columnsArray.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2626 const columnSpecific = headerDefinition[that.datafields[i]];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2627
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2628 if (columnSpecific && columnSpecific.width !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2629 that.columnWidth[i] = columnSpecific.width;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2630 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2631 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2632 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2633
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2634 if (!columnsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2635 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2636 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2637
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2638 for (let i = startIndex; i < that.data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2639 for (let j = 0; j < that.columnsArray.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2640 const columnLetter = that.columnsArray[j],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2641 cell = columnLetter + (i + 1),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2642 datafield = that.datafields[j],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2643 columnSpecific = columnsDefinition[datafield];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2644
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2645 for (let prop in columnsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2646 if (columnsDefinition.hasOwnProperty(prop) && sampleRecord[prop] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2647 that.storeCellStyle(cell, prop, columnsDefinition[prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2648 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2649 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2650
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2651 if (!columnSpecific) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2652 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2653 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2654
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2655 for (let prop in columnSpecific) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2656 if (!isNaN(prop) || !columnSpecific.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2657 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2658 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2659
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2660 that.storeCellStyle(cell, prop, columnSpecific[prop], that.data[i][datafield]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2661 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2662 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2663 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2664 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2665
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2666 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2667 * Processes complex header object.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2668 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2669 processComplexHeader(header, data, format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2670 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2671 flatHeader = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2672 processGrouping = ['html', 'jpeg', 'pdf', 'png', 'xlsx'].indexOf(format) !== -1 && header.columngroups,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2673 datafieldMapping = [],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2674 columnGroupHierarchy = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2675 complexHeader = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2676 let headerDepth = 0;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2677
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2678 function getColumnGroup(columnGroup) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2679 for (let i = 0; i < header.columngroups.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2680 const currentGroupDefinition = header.columngroups[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2681
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2682 if (currentGroupDefinition.name === columnGroup) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2683 return currentGroupDefinition;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2684 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2685 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2686 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2687
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2688 function getColumnGroupHierarchy(groupDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2689 const columnGroups = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2690
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2691 while (groupDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2692 columnGroups.unshift(groupDefinition.label);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2693
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2694 if (groupDefinition.parentGroup) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2695 groupDefinition = getColumnGroup(groupDefinition.parentGroup);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2696 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2697 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2698 return columnGroups;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2699 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2700 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2701 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2702
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2703 if (processGrouping) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2704 for (let i = 0; i < header.columngroups.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2705 const currentGroupDefinition = header.columngroups[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2706 groupHierarchy = getColumnGroupHierarchy(currentGroupDefinition);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2707
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2708 columnGroupHierarchy[currentGroupDefinition.name] = groupHierarchy;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2709 headerDepth = Math.max(headerDepth, groupHierarchy.length);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2710 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2711
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2712 headerDepth++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2713
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2714 for (let i = 0; i < headerDepth; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2715 complexHeader[i] = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2716 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2717 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2718
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2719 for (let i = 0; i < header.columns.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2720 const currentColumn = header.columns[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2721
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2722 flatHeader[currentColumn.dataField] = currentColumn.label;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2723
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2724 if (!processGrouping) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2725 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2726 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2727
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2728 datafieldMapping[i] = currentColumn.dataField;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2729 complexHeader[headerDepth - 1][i] = currentColumn.label;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2730
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2731 if (!currentColumn.columnGroup) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2732 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2733 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2734
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2735 const columnGroups = columnGroupHierarchy[currentColumn.columnGroup];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2736
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2737 for (let j = 0; j < columnGroups.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2738 complexHeader[j][i] = columnGroups[j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2739 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2740 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2741
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2742 if (complexHeader.length > 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2743 const numberOfDatafields = Object.keys(flatHeader).length;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2744
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2745 for (let i = 0; i < headerDepth - 1; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2746 const entry = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2747
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2748 for (let j = 0; j < numberOfDatafields; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2749 if (complexHeader[i][j] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2750 let iterator = i + 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2751
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2752 while (complexHeader[iterator][j] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2753 iterator++;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2754 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2755
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2756 complexHeader[i][j] = complexHeader[iterator][j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2757 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2758
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2759 entry[datafieldMapping[j]] = complexHeader[i][j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2760 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2761
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2762 if (format === 'xlsx') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2763 data.splice(i, 0, entry);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2764 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2765 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2766
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2767 that.complexHeader = complexHeader;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2768
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2769 if (format !== 'xlsx') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2770 data.unshift(flatHeader);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2771 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2772 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2773 data.splice(headerDepth - 1, 0, flatHeader);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2774
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2775 const toMerge = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2776
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2777 for (let i = 0; i < headerDepth; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2778 for (let j = 0; j < numberOfDatafields; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2779 const label = complexHeader[i][j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2780
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2781 if (!toMerge[label]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2782 toMerge[label] = { from: [i, j] };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2783 toMerge[label].to = toMerge[label].from;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2784 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2785 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2786 toMerge[label].to = [i, j];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2787 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2788 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2789 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2790
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2791 that.complexHeaderMergeInfo = toMerge;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2792 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2793 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2794 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2795 data.unshift(flatHeader);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2796 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2797 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2798
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2799 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2800 * Processes hierarchical data.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2801 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2802 processHierarchicalData(data, format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2803 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2804 startIndex = format !== 'xlsx' ? +that.exportHeader : that.xlsxStartIndex,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2805 siblingGroups = {},
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2806 processedData = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2807 let maxLevel = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2808 actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2809
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2810 function process(parentKey, level, collapsed) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2811 const group = siblingGroups[parentKey];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2812
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2813 maxLevel = Math.max(maxLevel, level);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2814
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2815 if (group === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2816 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2817 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2818
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2819 for (let i = 0; i < group.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2820 const currentRecord = group[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2821 keyDataField = currentRecord._keyDataField;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2822
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2823 currentRecord._collapsed = collapsed;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2824 currentRecord._level = level;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2825 processedData.push(currentRecord);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2826
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2827 if (siblingGroups[keyDataField]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2828 actualHierarchy = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2829 currentRecord._expanded = currentRecord._expanded !== undefined ? currentRecord._expanded : true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2830 process(keyDataField, level + 1, collapsed || !currentRecord._expanded);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2831 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2832 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2833 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2834
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2835 function processJSONXML(parentKey, level, parent) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2836 const group = siblingGroups[parentKey];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2837
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2838 maxLevel = Math.max(maxLevel, level);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2839
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2840 if (group === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2841 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2842 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2843
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2844 for (let i = 0; i < group.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2845 const currentRecord = group[i],
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2846 keyDataField = currentRecord._keyDataField;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2847 let cleanedRecord;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2848
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2849 if (format === 'json') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2850 cleanedRecord = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2851
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2852 for (let prop in currentRecord) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2853 if (currentRecord.hasOwnProperty(prop) && prop.charAt(0) !== '_') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2854 cleanedRecord[prop] = currentRecord[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2855 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2856 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2857 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2858 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2859 cleanedRecord = Object.assign({}, currentRecord);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2860 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2861
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2862 parent.push(cleanedRecord);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2863
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2864 if (siblingGroups[keyDataField]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2865 actualHierarchy = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2866 cleanedRecord.rows = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2867 processJSONXML(keyDataField, level + 1, cleanedRecord.rows);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2868 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2869 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2870 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2871
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2872 if (data[startIndex]._keyDataField === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2873 return that.processNestedData(data, format, startIndex);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2874 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2875
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2876 for (let i = startIndex; i < data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2877 const currentRecord = Object.assign({}, data[i]),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2878 parentKey = currentRecord._parentDataField;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2879
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2880 if (siblingGroups[parentKey] === undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2881 siblingGroups[parentKey] = [currentRecord];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2882 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2883 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2884 siblingGroups[parentKey].push(currentRecord);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2885 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2886 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2887
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2888 if (startIndex) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2889 for (let i = 0; i < startIndex; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2890 processedData.push(Object.assign({}, data[i]));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2891
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2892 if (['json', 'pdf', 'xml'].indexOf(format) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2893 processedData[i]._level = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2894 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2895 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2896 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2897
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2898 if (format !== 'json' && format !== 'xml') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2899 process(null, 1, false);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2900 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2901 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2902 processJSONXML(null, 1, processedData);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2903 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2904
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2905 if (!actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2906 that.actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2907 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2908
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2909 that.maxLevel = maxLevel;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2910 return processedData;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2911 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2912
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2913 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2914 * Processes nested hierarchical data.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2915 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2916 processNestedData(data, format, startIndex) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2917 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2918 processedData = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2919 let maxLevel = 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2920 actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2921
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2922 function process(start, children, level, collapsed) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2923 maxLevel = Math.max(maxLevel, level);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2924
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2925 for (let i = start; i < children.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2926 const currentRecord = Object.assign({}, children[i]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2927
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2928 currentRecord._collapsed = collapsed;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2929 currentRecord._level = level;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2930 processedData.push(currentRecord);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2931
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2932 if (currentRecord.children && currentRecord.children.length > 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2933 actualHierarchy = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2934 currentRecord._expanded = currentRecord._expanded !== undefined ? currentRecord._expanded : true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2935 process(0, currentRecord.children, level + 1, collapsed || !currentRecord._expanded);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2936 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2937
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2938 delete currentRecord.children;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2939 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2940 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2941
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2942 function processJSONXML(start, children, rows, level) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2943 maxLevel = Math.max(maxLevel, level);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2944
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2945 for (let i = start; i < children.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2946 const currentRecord = Object.assign({}, children[i]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2947
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2948 if (level === 1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2949 processedData[i] = currentRecord;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2950 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2951 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2952 rows[i] = currentRecord;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2953 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2954
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2955 if (currentRecord.children && currentRecord.children.length > 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2956 actualHierarchy = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2957 currentRecord.rows = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2958 processJSONXML(0, currentRecord.children, currentRecord.rows, level + 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2959 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2960
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2961 delete currentRecord.children;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2962 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2963 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2964
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2965 if (startIndex) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2966 for (let i = 0; i < startIndex; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2967 processedData.push(Object.assign({}, data[i]));
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2968
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2969 if (['json', 'pdf', 'xml'].indexOf(format) === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2970 processedData[i]._level = 1;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2971 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2972 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2973 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2974
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2975 if (format !== 'json' && format !== 'xml') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2976 process(startIndex, data, 1, false);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2977 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2978 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2979 processJSONXML(startIndex, data, undefined, 1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2980 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2981
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2982 if (!actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2983 that.actualHierarchy = false;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2984 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2985
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2986 that.maxLevel = maxLevel;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2987 return processedData;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2988 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2989
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2990 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2991 * Processes row styles.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2992 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2993 processRowStyle(style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2994 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2995 rowsDefinition = style.rows;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2996
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2997 that.rowHeight = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2998
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2999 if (!rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3000 return;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3001 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3002
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3003 const startIndex = that.xlsxStartIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3004
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3005 function applyToRowCells(row, prop, value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3006 for (let j = 0; j < that.columnsArray.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3007 const currentCell = that.columnsArray[j] + (row + 1 + startIndex);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3008
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3009 that.storeCellStyle(currentCell, prop, value);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3010 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3011 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3012
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3013 if (rowsDefinition.height) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3014 that.defaultRowHeight = ` ht="${parseFloat(rowsDefinition.height) / 2}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3015 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3016
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3017 for (let i = startIndex; i < that.data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3018 const row = i - startIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3019
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3020 for (let prop in rowsDefinition) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3021 if (rowsDefinition.hasOwnProperty(prop) &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3022 prop.indexOf('alt') === -1 &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3023 isNaN(prop) &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3024 prop !== 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3025 applyToRowCells(row, prop, rowsDefinition[prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3026 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3027 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3028
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3029 if (rowsDefinition.alternationCount &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3030 (((rowsDefinition.alternationStart === undefined || row >= rowsDefinition.alternationStart) &&
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3031 (rowsDefinition.alternationEnd === undefined || row <= rowsDefinition.alternationEnd)) ||
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3032 rowsDefinition.alternationStart === rowsDefinition.alternationEnd)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3033 const start = rowsDefinition.alternationStart || 0,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3034 i = (row - start) % rowsDefinition.alternationCount;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3035
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3036 if (rowsDefinition[`alternationIndex${i}Color`]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3037 applyToRowCells(row, 'color', rowsDefinition[`alternationIndex${i}Color`]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3038 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3039
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3040 if (rowsDefinition[`alternationIndex${i}BorderColor`]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3041 applyToRowCells(row, 'borderColor', rowsDefinition[`alternationIndex${i}BorderColor`]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3042 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3043
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3044 if (rowsDefinition[`alternationIndex${i}BackgroundColor`]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3045 applyToRowCells(row, 'backgroundColor', rowsDefinition[`alternationIndex${i}BackgroundColor`]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3046 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3047 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3048
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3049 if (rowsDefinition[row]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3050 for (let prop in rowsDefinition[row]) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3051 if (rowsDefinition[row].hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3052 if (prop === 'height') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3053 that.rowHeight[i] = ` ht="${parseFloat(rowsDefinition[row].height) / 2}"`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3054 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3055 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3056
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3057 applyToRowCells(row, prop, rowsDefinition[row][prop]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3058 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3059 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3060 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3061 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3062 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3063
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3064 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3065 * Stores cell style in "styleMap" object.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3066 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3067 storeCellStyle(cell, prop, value) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3068 const that = this,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3069 cellMap = that.styleMap[cell];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3070
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3071 switch (prop) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3072 case 'backgroundColor':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3073 cellMap.fills.fgColor = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3074 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3075 case 'color':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3076 cellMap.fonts.color = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3077 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3078 case 'fontFamily':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3079 cellMap.fonts.name = value.replace(/"/g, '\'');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3080 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3081 case 'fontSize':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3082 cellMap.fonts.sz = parseFloat(value);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3083 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3084 case 'fontStyle':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3085 if (value === 'italic') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3086 cellMap.fonts.i = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3087 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3088 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3089 delete cellMap.fonts.i;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3090 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3091
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3092 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3093 case 'fontWeight':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3094 if (value === 'bold') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3095 cellMap.fonts.b = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3096 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3097 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3098 delete cellMap.fonts.b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3099 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3100
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3101 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3102 case 'numFmt': {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3103 cellMap.numFmt = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3104 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3105 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3106 case 'textAlign':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3107 cellMap.alignment.horizontal = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3108 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3109 case 'textDecoration':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3110 if (value === 'underline') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3111 cellMap.fonts.u = true;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3112 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3113 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3114 delete cellMap.fonts.u;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3115 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3116
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3117 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3118 case 'verticalAlign':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3119 if (value === 'middle') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3120 value = 'center';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3121 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3122
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3123 cellMap.alignment.vertical = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3124 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3125 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3126 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3127
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3128 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3129 * Returns an Alpha Red Green Blue color value.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3130 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3131 toARGB(color) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3132 color = color.replace(/\s/g, '');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3133
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3134 const rgbResult = /rgb\((\d+),(\d+),(\d+)\)/gi.exec(color);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3135
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3136 if (rgbResult !== null) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3137 const r = parseFloat(rgbResult[1]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3138 g = parseFloat(rgbResult[2]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3139 b = parseFloat(rgbResult[3]).toString(16).toUpperCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3140
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3141 return 'FF' + ('0').repeat(2 - r.length) + r +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3142 ('0').repeat(2 - g.length) + g +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3143 ('0').repeat(2 - b.length) + b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3144 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3145
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3146 const rgbaResult = /rgba\((\d+),(\d+),(\d+)\,(\d*.\d+|\d+)\)/gi.exec(color);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3147
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3148 if (rgbaResult !== null) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3149 const a = Math.round(parseFloat(rgbaResult[4]) * 255).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3150 r = parseFloat(rgbaResult[1]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3151 g = parseFloat(rgbaResult[2]).toString(16).toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3152 b = parseFloat(rgbaResult[3]).toString(16).toUpperCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3153
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3154 return ('0').repeat(2 - a.length) + a +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3155 ('0').repeat(2 - r.length) + r +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3156 ('0').repeat(2 - g.length) + g +
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3157 ('0').repeat(2 - b.length) + b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3158 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3159
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3160 const shortHexResult = /^#(.)(.)(.)$/gi.exec(color);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3161
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3162 if (shortHexResult !== null) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3163 const r = shortHexResult[1].toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3164 g = shortHexResult[2].toUpperCase(),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3165 b = shortHexResult[3].toUpperCase();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3166
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3167 return 'FF' + r + r + g + g + b + b;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3168 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3169
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3170 return 'FF' + color.toUpperCase().slice(1);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3171 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3172
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3173 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3174 * Adds toggleable functionality.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3175 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3176 toggleableFunctionality() {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3177 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3178
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3179 if (!that.actualHierarchy) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3180 return '';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3181 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3182
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3183 return `\n <style type="text/css">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3184 .toggle-element {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3185 width: 5px;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3186 height: 1px;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3187 padding-right: 5px;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3188 float: left;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3189 text-align: right;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3190 cursor: pointer;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3191 user-select: none;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3192 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3193
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3194 .collapsed {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3195 display: none;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3196 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3197 </style>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3198 <script type="text/javascript">
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3199 window.onload = function () {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3200 var expandChar = '${that.expandChar}',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3201 collapseChar = '${that.collapseChar}',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3202 toggleElements = document.getElementsByClassName('toggle-element');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3203
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3204 function getParent(child) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3205 var prevSibling = child.previousElementSibling;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3206
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3207 while (prevSibling) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3208 if (child.getAttribute('level') > prevSibling.getAttribute('level')) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3209 return prevSibling;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3210 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3211
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3212 prevSibling = prevSibling.previousElementSibling;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3213 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3214
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3215 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3216
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3217 function getFirstCollapsedAncestor(child) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3218 var parent = getParent(child);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3219
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3220 while (parent) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3221 if (parent.firstElementChild.firstElementChild.innerHTML === expandChar) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3222 return parent;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3223 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3224
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3225 parent = getParent(parent);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3226 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3227 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3228
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3229 for (var i = 0; i < toggleElements.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3230 toggleElements[i].addEventListener('click', function (event) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3231 var expanded = this.innerHTML === collapseChar,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3232 row = this.parentElement.parentElement,
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3233 sibling = row.nextElementSibling;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3234
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3235 if (expanded) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3236 this.innerHTML = expandChar;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3237 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3238 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3239 this.innerHTML = collapseChar;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3240 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3241
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3242 while (sibling && row.getAttribute('level') < sibling.getAttribute('level')) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3243 if (expanded) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3244 sibling.style.display = 'none';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3245 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3246 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3247 var firstCollapsedAncestor = getFirstCollapsedAncestor(sibling);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3248
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3249 if (!firstCollapsedAncestor || firstCollapsedAncestor === row) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3250 sibling.classList.remove('collapsed');
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3251 sibling.style.display = null;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3252 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3253
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3254 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3255
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3256 sibling = sibling.nextElementSibling;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3257 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3258 });
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3259 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3260 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3261 </script>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3262 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3263
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3264 /**
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3265 * Generates styles.xml.
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3266 */
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3267 generateStyles(style) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3268 const that = this;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3269
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3270 that.cellStyleMapping = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3271
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3272 if (Object.keys(style).length === 0 && !that.complexHeader) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3273 // default style
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3274 return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3275 <styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2 xr" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision"><fonts count="1" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><charset val="204"/><scheme val="minor"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>${that.conditionalFormattingXLSX.styles || '<dxfs count="0"/>'}<tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3276 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3277
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3278 that.styleMap = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3279
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3280 for (let i = 0; i < that.data.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3281 for (let j = 0; j < that.columnsArray.length; j++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3282 that.styleMap[that.columnsArray[j] + (i + 1)] = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3283 numFmts: {}, fonts: {}, fills: {}, borders: {}, alignment: {}
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3284 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3285 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3286 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3287
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3288 if (style && style.columns) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3289 for (let i = 0; i < that.columnsArray.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3290 const datafield = that.datafields[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3291
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3292 if (!style.columns[datafield] || !style.columns[datafield].format) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3293 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3294 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3295
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3296 const XLSXFormat = that.getXLSXFormat(style.columns[datafield].format, that.data[that.data.length - 1][datafield]);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3297
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3298 if (XLSXFormat) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3299 style.columns[datafield].numFmt = XLSXFormat;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3300 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3301 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3302 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3303
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3304 that.processRowStyle(style);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3305 that.processColumnStyle(style);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3306
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3307 const cellAliases = {};
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3308
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3309 for (let i = 0; i < that.complexHeaderMergedCells.length; i++) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3310 const currentCell = that.complexHeaderMergedCells[i];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3311
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3312 if (parseFloat(currentCell.to[1]) === that.complexHeader.length) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3313 cellAliases[currentCell.to] = currentCell.from;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3314 continue;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3315 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3316
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3317 that.styleMap[currentCell.from].alignment.horizontal = 'center';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3318 that.styleMap[currentCell.from].alignment.vertical = 'center';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3319 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3320
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3321 const fonts = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3322 xml: '<font><sz val="11" /><color theme="1" /><name val="Calibri" /><family val="2" /><charset val="204" /><scheme val="minor" /></font>',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3323 collection: ['default']
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3324 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3325 fills = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3326 xml: '<fill><patternFill patternType="none" /></fill><fill><patternFill patternType="gray125" /></fill>',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3327 collection: ['default', 'gray125']
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3328 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3329 numFmts = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3330 xml: '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3331 collection: []
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3332 },
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3333 cellXfs = {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3334 xml: '<xf fontId="0" fillId="0" borderId="1"/>',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3335 collection: ['default']
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3336 };
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3337
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3338 for (let i = 0; i < that.data.length; i++) { // iterate rows
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3339 for (let j = 0; j < that.columnsArray.length; j++) { // iterate columns
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3340 const currentCell = that.columnsArray[j] + (i + 1),
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3341 currentCellStyle = that.styleMap[currentCell];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3342 let currentFont = '', currentFill = '', currentAlignment = '',
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3343 currentFontCode = [], currentFillCode = [], currentAlignmentCode = [], xf = [];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3344
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3345 for (let prop in currentCellStyle.fonts) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3346 if (currentCellStyle.fonts.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3347 const value = currentCellStyle.fonts[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3348
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3349 switch (prop) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3350 case 'color':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3351 currentFontCode[0] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3352 currentFont += `<color rgb="${that.toARGB(value)}" />`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3353 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3354 case 'name':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3355 currentFontCode[1] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3356 currentFont += `<name val="${value}" />`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3357 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3358 case 'sz':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3359 currentFontCode[2] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3360 currentFont += `<sz val="${value}" />`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3361 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3362 case 'i':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3363 currentFontCode[3] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3364 currentFont += '<i />';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3365 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3366 case 'b':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3367 currentFontCode[4] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3368 currentFont += '<b />';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3369 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3370 case 'u':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3371 currentFontCode[5] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3372 currentFont += '<u />';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3373 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3374 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3375 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3376 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3377
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3378 for (let prop in currentCellStyle.fills) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3379 if (currentCellStyle.fills.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3380 const value = currentCellStyle.fills[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3381
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3382 switch (prop) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3383 case 'fgColor':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3384 currentFillCode[0] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3385 currentFill += `<fgColor rgb="${that.toARGB(value)}" />`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3386 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3387 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3388 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3389 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3390
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3391 for (let prop in currentCellStyle.alignment) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3392 if (currentCellStyle.alignment.hasOwnProperty(prop)) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3393 const value = currentCellStyle.alignment[prop];
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3394
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3395 switch (prop) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3396 case 'horizontal':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3397 currentAlignmentCode[0] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3398 currentAlignment += `horizontal="${value}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3399 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3400 case 'vertical':
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3401 currentAlignmentCode[1] = value;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3402 currentAlignment += `vertical="${value}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3403 break;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3404 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3405 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3406 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3407
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3408 currentFontCode = currentFontCode.toString();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3409 currentFillCode = currentFillCode.toString();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3410
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3411 if (currentFont !== '') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3412 let fontIndex = fonts.collection.indexOf(currentFontCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3413
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3414 if (fontIndex === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3415 fontIndex = fonts.collection.length;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3416
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3417 fonts.xml += '<font>' + currentFont + '</font>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3418 fonts.collection.push(currentFontCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3419 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3420
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3421 xf[0] = fontIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3422 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3423
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3424 if (currentFill !== '') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3425 let fillIndex = fills.collection.indexOf(currentFillCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3426
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3427 if (fillIndex === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3428 fillIndex = fills.collection.length;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3429
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3430 fills.xml += '<fill><patternFill patternType="solid">' + currentFill + '</patternFill></fill>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3431 fills.collection.push(currentFillCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3432 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3433
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3434 xf[1] = fillIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3435 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3436
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3437 if (currentAlignmentCode.length > 0) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3438 xf[2] = currentAlignment;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3439 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3440
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3441 if (currentCellStyle.numFmt !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3442 xf[3] = that.getNumFmtIndex(currentCellStyle.numFmt, numFmts);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3443 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3444
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3445 const xfCode = xf.toString();
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3446
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3447 if (xfCode !== '') {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3448 let xfIndex = cellXfs.collection.indexOf(xfCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3449
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3450 if (xfIndex === -1) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3451 let newXfXML = '<xf ';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3452
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3453 xfIndex = cellXfs.collection.length;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3454
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3455 if (xf[0] !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3456 newXfXML += `fontId="${xf[0]}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3457 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3458
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3459 if (xf[1] !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3460 newXfXML += `fillId="${xf[1]}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3461 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3462
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3463 if (xf[3] !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3464 newXfXML += `numFmtId="${xf[3]}" `;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3465 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3466
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3467 if (xf[2] !== undefined) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3468 newXfXML += `applyAlignment="1" borderId="1"><alignment ${currentAlignment}/></xf>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3469 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3470 else {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3471 newXfXML += ' borderId="1"/>';
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3472 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3473
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3474 cellXfs.xml += newXfXML;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3475 cellXfs.collection.push(xfCode);
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3476 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3477
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3478 that.cellStyleMapping[cellAliases[currentCell] || currentCell] = xfIndex;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3479 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3480 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3481 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3482
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3483 if (numFmts.collection.length) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3484 numFmts.xml = `<numFmts count="${numFmts.collection.length}">${numFmts.xml}</numFmts>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3485 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3486
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3487 return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3488 <styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2 xr" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision">${numFmts.xml}<fonts count="${fonts.collection.length}" x14ac:knownFonts="1">${fonts.xml}</fonts><fills count="${fills.collection.length}">${fills.xml}</fills><borders count="2"><border><left/><right/><top/><bottom/></border><border><left style="hair"/><right style="hair"/><top style="hair"/><bottom style="hair"/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="${cellXfs.collection.length}">${cellXfs.xml}</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>${that.conditionalFormattingXLSX.styles}<dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>`;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3489 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3490 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3491
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3492 if ($.jqx && $.jqx.dataAdapter) {
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3493 $.jqx.dataAdapter.DataExporter = DataExporter;
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3494 }
67bf19c50fcc Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3495 })(jqxBaseFramework);

mercurial