read-excel-file 5.7.1 → 5.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +45 -19
- package/bundle/read-excel-file.min.js +1 -1
- package/bundle/read-excel-file.min.js.map +1 -1
- package/commonjs/read/coordinates.js +7 -10
- package/commonjs/read/coordinates.js.map +1 -1
- package/commonjs/read/dropEmptyColumns.js +6 -18
- package/commonjs/read/dropEmptyColumns.js.map +1 -1
- package/commonjs/read/dropEmptyColumns.test.js.map +1 -1
- package/commonjs/read/dropEmptyRows.js +11 -23
- package/commonjs/read/dropEmptyRows.js.map +1 -1
- package/commonjs/read/dropEmptyRows.test.js.map +1 -1
- package/commonjs/read/getData.js +31 -43
- package/commonjs/read/getData.js.map +1 -1
- package/commonjs/read/isDateTimestamp.js +51 -40
- package/commonjs/read/isDateTimestamp.js.map +1 -1
- package/commonjs/read/parseCell.js +3 -10
- package/commonjs/read/parseCell.js.map +1 -1
- package/commonjs/read/parseCellValue.js +28 -59
- package/commonjs/read/parseCellValue.js.map +1 -1
- package/commonjs/read/parseCells.js +3 -7
- package/commonjs/read/parseCells.js.map +1 -1
- package/commonjs/read/parseDate.js +5 -5
- package/commonjs/read/parseDate.js.map +1 -1
- package/commonjs/read/parseDate.test.js.map +1 -1
- package/commonjs/read/parseDimensions.js +6 -18
- package/commonjs/read/parseDimensions.js.map +1 -1
- package/commonjs/read/parseFilePaths.js +4 -11
- package/commonjs/read/parseFilePaths.js.map +1 -1
- package/commonjs/read/parseProperties.js +6 -8
- package/commonjs/read/parseProperties.js.map +1 -1
- package/commonjs/read/parseSharedStrings.js +0 -3
- package/commonjs/read/parseSharedStrings.js.map +1 -1
- package/commonjs/read/parseSheet.js +3 -7
- package/commonjs/read/parseSheet.js.map +1 -1
- package/commonjs/read/parseStyles.js +13 -21
- package/commonjs/read/parseStyles.js.map +1 -1
- package/commonjs/read/readSheetNamesBrowser.js +0 -3
- package/commonjs/read/readSheetNamesBrowser.js.map +1 -1
- package/commonjs/read/readSheetNamesNode.js +0 -3
- package/commonjs/read/readSheetNamesNode.js.map +1 -1
- package/commonjs/read/readSheetNamesNode.test.js.map +1 -1
- package/commonjs/read/readSheetNamesWebWorker.js +0 -3
- package/commonjs/read/readSheetNamesWebWorker.js.map +1 -1
- package/commonjs/read/readXlsx.js +34 -42
- package/commonjs/read/readXlsx.js.map +1 -1
- package/commonjs/read/readXlsxFileBrowser.js +0 -5
- package/commonjs/read/readXlsxFileBrowser.js.map +1 -1
- package/commonjs/read/readXlsxFileContents.js +12 -22
- package/commonjs/read/readXlsxFileContents.js.map +1 -1
- package/commonjs/read/readXlsxFileNode.js +0 -5
- package/commonjs/read/readXlsxFileNode.js.map +1 -1
- package/commonjs/read/readXlsxFileNode.test.js.map +1 -1
- package/commonjs/read/readXlsxFileWebWorker.js +0 -5
- package/commonjs/read/readXlsxFileWebWorker.js.map +1 -1
- package/commonjs/read/schema/convertMapToSchema.js +1 -8
- package/commonjs/read/schema/convertMapToSchema.js.map +1 -1
- package/commonjs/read/schema/convertMapToSchema.test.js.map +1 -1
- package/commonjs/read/schema/convertToJson.js +143 -142
- package/commonjs/read/schema/convertToJson.js.map +1 -1
- package/commonjs/read/schema/convertToJson.legacy.js +60 -0
- package/commonjs/read/schema/convertToJson.legacy.js.map +1 -0
- package/commonjs/read/schema/convertToJson.legacy.test.js.map +1 -0
- package/commonjs/read/schema/convertToJson.spreadsheet.js +25 -0
- package/commonjs/read/schema/convertToJson.spreadsheet.js.map +1 -0
- package/commonjs/read/schema/convertToJson.spreadsheet.test.js.map +1 -0
- package/commonjs/read/schema/convertToJson.test.js.map +1 -1
- package/commonjs/read/unpackXlsxFileBrowser.js +3 -9
- package/commonjs/read/unpackXlsxFileBrowser.js.map +1 -1
- package/commonjs/read/unpackXlsxFileNode.js +9 -15
- package/commonjs/read/unpackXlsxFileNode.js.map +1 -1
- package/commonjs/types/Boolean.js +0 -4
- package/commonjs/types/Boolean.js.map +1 -1
- package/commonjs/types/Date.js +0 -12
- package/commonjs/types/Date.js.map +1 -1
- package/commonjs/types/Email.js +0 -7
- package/commonjs/types/Email.js.map +1 -1
- package/commonjs/types/Email.test.js.map +1 -1
- package/commonjs/types/Integer.js +0 -7
- package/commonjs/types/Integer.js.map +1 -1
- package/commonjs/types/Integer.test.js.map +1 -1
- package/commonjs/types/InvalidError.js +8 -28
- package/commonjs/types/InvalidError.js.map +1 -1
- package/commonjs/types/Number.js +2 -10
- package/commonjs/types/Number.js.map +1 -1
- package/commonjs/types/String.js +4 -11
- package/commonjs/types/String.js.map +1 -1
- package/commonjs/types/URL.js +5 -8
- package/commonjs/types/URL.js.map +1 -1
- package/commonjs/types/URL.test.js.map +1 -1
- package/commonjs/xml/dom.js +6 -25
- package/commonjs/xml/dom.js.map +1 -1
- package/commonjs/xml/xlsx.js +1 -24
- package/commonjs/xml/xlsx.js.map +1 -1
- package/commonjs/xml/xml.js +1 -4
- package/commonjs/xml/xml.js.map +1 -1
- package/commonjs/xml/xmlBrowser.js +1 -2
- package/commonjs/xml/xmlBrowser.js.map +1 -1
- package/commonjs/xml/xpath/xlsx-xpath.js +3 -16
- package/commonjs/xml/xpath/xlsx-xpath.js.map +1 -1
- package/commonjs/xml/xpath/xpathBrowser.js +3 -5
- package/commonjs/xml/xpath/xpathBrowser.js.map +1 -1
- package/commonjs/xml/xpath/xpathNode.js +1 -5
- package/commonjs/xml/xpath/xpathNode.js.map +1 -1
- package/map/index.cjs +2 -0
- package/map/index.cjs.js +7 -0
- package/map/index.d.ts +11 -0
- package/map/index.js +1 -0
- package/map/package.json +17 -0
- package/modules/read/coordinates.js +7 -8
- package/modules/read/coordinates.js.map +1 -1
- package/modules/read/dropEmptyColumns.js +6 -17
- package/modules/read/dropEmptyColumns.js.map +1 -1
- package/modules/read/dropEmptyColumns.test.js.map +1 -1
- package/modules/read/dropEmptyRows.js +11 -22
- package/modules/read/dropEmptyRows.js.map +1 -1
- package/modules/read/dropEmptyRows.test.js.map +1 -1
- package/modules/read/getData.js +31 -39
- package/modules/read/getData.js.map +1 -1
- package/modules/read/isDateTimestamp.js +52 -39
- package/modules/read/isDateTimestamp.js.map +1 -1
- package/modules/read/parseCell.js +6 -6
- package/modules/read/parseCell.js.map +1 -1
- package/modules/read/parseCellValue.js +30 -55
- package/modules/read/parseCellValue.js.map +1 -1
- package/modules/read/parseCells.js +3 -3
- package/modules/read/parseCells.js.map +1 -1
- package/modules/read/parseDate.js +5 -4
- package/modules/read/parseDate.js.map +1 -1
- package/modules/read/parseDate.test.js.map +1 -1
- package/modules/read/parseDimensions.js +9 -17
- package/modules/read/parseDimensions.js.map +1 -1
- package/modules/read/parseFilePaths.js +5 -10
- package/modules/read/parseFilePaths.js.map +1 -1
- package/modules/read/parseProperties.js +8 -7
- package/modules/read/parseProperties.js.map +1 -1
- package/modules/read/parseSharedStrings.js +0 -1
- package/modules/read/parseSharedStrings.js.map +1 -1
- package/modules/read/parseSheet.js +3 -2
- package/modules/read/parseSheet.js.map +1 -1
- package/modules/read/parseStyles.js +16 -21
- package/modules/read/parseStyles.js.map +1 -1
- package/modules/read/readSheetNamesBrowser.js +1 -1
- package/modules/read/readSheetNamesBrowser.js.map +1 -1
- package/modules/read/readSheetNamesNode.js +1 -1
- package/modules/read/readSheetNamesNode.js.map +1 -1
- package/modules/read/readSheetNamesNode.test.js.map +1 -1
- package/modules/read/readSheetNamesWebWorker.js +1 -1
- package/modules/read/readSheetNamesWebWorker.js.map +1 -1
- package/modules/read/readXlsx.js +37 -35
- package/modules/read/readXlsx.js.map +1 -1
- package/modules/read/readXlsxFileBrowser.js +1 -1
- package/modules/read/readXlsxFileBrowser.js.map +1 -1
- package/modules/read/readXlsxFileContents.js +12 -17
- package/modules/read/readXlsxFileContents.js.map +1 -1
- package/modules/read/readXlsxFileNode.js +1 -1
- package/modules/read/readXlsxFileNode.js.map +1 -1
- package/modules/read/readXlsxFileNode.test.js.map +1 -1
- package/modules/read/readXlsxFileWebWorker.js +1 -1
- package/modules/read/readXlsxFileWebWorker.js.map +1 -1
- package/modules/read/schema/convertMapToSchema.js +1 -7
- package/modules/read/schema/convertMapToSchema.js.map +1 -1
- package/modules/read/schema/convertMapToSchema.test.js.map +1 -1
- package/modules/read/schema/convertToJson.js +143 -133
- package/modules/read/schema/convertToJson.js.map +1 -1
- package/modules/read/schema/convertToJson.legacy.js +53 -0
- package/modules/read/schema/convertToJson.legacy.js.map +1 -0
- package/modules/read/schema/convertToJson.legacy.test.js.map +1 -0
- package/modules/read/schema/convertToJson.spreadsheet.js +19 -0
- package/modules/read/schema/convertToJson.spreadsheet.js.map +1 -0
- package/modules/read/schema/convertToJson.spreadsheet.test.js.map +1 -0
- package/modules/read/schema/convertToJson.test.js.map +1 -1
- package/modules/read/unpackXlsxFileBrowser.js +4 -7
- package/modules/read/unpackXlsxFileBrowser.js.map +1 -1
- package/modules/read/unpackXlsxFileNode.js +9 -7
- package/modules/read/unpackXlsxFileNode.js.map +1 -1
- package/modules/types/Boolean.js +0 -1
- package/modules/types/Boolean.js.map +1 -1
- package/modules/types/Date.js +0 -8
- package/modules/types/Date.js.map +1 -1
- package/modules/types/Email.js +0 -2
- package/modules/types/Email.js.map +1 -1
- package/modules/types/Email.test.js.map +1 -1
- package/modules/types/Integer.js +0 -2
- package/modules/types/Integer.js.map +1 -1
- package/modules/types/Integer.test.js.map +1 -1
- package/modules/types/InvalidError.js +7 -25
- package/modules/types/InvalidError.js.map +1 -1
- package/modules/types/Number.js +2 -7
- package/modules/types/Number.js.map +1 -1
- package/modules/types/String.js +4 -8
- package/modules/types/String.js.map +1 -1
- package/modules/types/URL.js +5 -4
- package/modules/types/URL.js.map +1 -1
- package/modules/types/URL.test.js.map +1 -1
- package/modules/xml/dom.js +6 -18
- package/modules/xml/dom.js.map +1 -1
- package/modules/xml/xlsx.js +4 -13
- package/modules/xml/xlsx.js.map +1 -1
- package/modules/xml/xml.js.map +1 -1
- package/modules/xml/xmlBrowser.js.map +1 -1
- package/modules/xml/xpath/xlsx-xpath.js +2 -1
- package/modules/xml/xpath/xlsx-xpath.js.map +1 -1
- package/modules/xml/xpath/xpathBrowser.js +3 -4
- package/modules/xml/xpath/xpathBrowser.js.map +1 -1
- package/modules/xml/xpath/xpathNode.js +1 -0
- package/modules/xml/xpath/xpathNode.js.map +1 -1
- package/package.json +6 -1
- package/schema/index.cjs +2 -2
- package/schema/index.cjs.js +2 -2
- package/schema/index.d.ts +7 -2
- package/schema/index.js +1 -1
- package/types.d.ts +25 -2
|
@@ -7,12 +7,10 @@ exports.calculateDimensions = calculateDimensions;
|
|
|
7
7
|
exports.parseCellCoordinates = parseCellCoordinates;
|
|
8
8
|
// Maps "A1"-like coordinates to `{ row, column }` numeric coordinates.
|
|
9
9
|
var LETTERS = ["", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
|
|
10
|
-
|
|
11
10
|
function calculateDimensions(cells) {
|
|
12
11
|
var comparator = function comparator(a, b) {
|
|
13
12
|
return a - b;
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
var allRows = cells.map(function (cell) {
|
|
17
15
|
return cell.row;
|
|
18
16
|
}).sort(comparator);
|
|
@@ -30,29 +28,28 @@ function calculateDimensions(cells) {
|
|
|
30
28
|
row: maxRow,
|
|
31
29
|
column: maxCol
|
|
32
30
|
}];
|
|
33
|
-
}
|
|
34
|
-
// Examples: "A" -> 1, "B" -> 2, "Z" -> 26, "AA" -> 27, etc.
|
|
35
|
-
|
|
31
|
+
}
|
|
36
32
|
|
|
33
|
+
// Converts a letter coordinate to a digit coordinate.
|
|
34
|
+
// Examples: "A" -> 1, "B" -> 2, "Z" -> 26, "AA" -> 27, etc.
|
|
37
35
|
function columnLettersToNumber(columnLetters) {
|
|
38
36
|
// `for ... of ...` would require Babel polyfill for iterating a string.
|
|
39
37
|
var n = 0;
|
|
40
38
|
var i = 0;
|
|
41
|
-
|
|
42
39
|
while (i < columnLetters.length) {
|
|
43
40
|
n *= 26;
|
|
44
41
|
n += LETTERS.indexOf(columnLetters[i]);
|
|
45
42
|
i++;
|
|
46
43
|
}
|
|
47
|
-
|
|
48
44
|
return n;
|
|
49
45
|
}
|
|
50
|
-
|
|
51
46
|
function parseCellCoordinates(coords) {
|
|
52
47
|
// Coordinate examples: "AA2091", "R988", "B1".
|
|
53
48
|
coords = coords.split(/(\d+)/);
|
|
54
|
-
return [
|
|
55
|
-
|
|
49
|
+
return [
|
|
50
|
+
// Row.
|
|
51
|
+
parseInt(coords[1]),
|
|
52
|
+
// Column.
|
|
56
53
|
columnLettersToNumber(coords[0].trim())];
|
|
57
54
|
}
|
|
58
55
|
//# sourceMappingURL=coordinates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinates.js","names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"sources":["../../source/read/coordinates.js"],"sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"mappings":";;;;;;;AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"coordinates.js","names":["LETTERS","calculateDimensions","cells","comparator","a","b","allRows","map","cell","row","sort","allCols","column","minRow","maxRow","length","minCol","maxCol","columnLettersToNumber","columnLetters","n","i","indexOf","parseCellCoordinates","coords","split","parseInt","trim"],"sources":["../../source/read/coordinates.js"],"sourcesContent":["// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\r\nconst LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"]\r\n\r\nexport function calculateDimensions (cells) {\r\n const comparator = (a, b) => a - b\r\n const allRows = cells.map(cell => cell.row).sort(comparator)\r\n const allCols = cells.map(cell => cell.column).sort(comparator)\r\n const minRow = allRows[0]\r\n const maxRow = allRows[allRows.length - 1]\r\n const minCol = allCols[0]\r\n const maxCol = allCols[allCols.length - 1]\r\n\r\n return [\r\n { row: minRow, column: minCol },\r\n { row: maxRow, column: maxCol }\r\n ]\r\n}\r\n\r\n// Converts a letter coordinate to a digit coordinate.\r\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\r\nfunction columnLettersToNumber(columnLetters) {\r\n // `for ... of ...` would require Babel polyfill for iterating a string.\r\n let n = 0\r\n let i = 0\r\n while (i < columnLetters.length) {\r\n n *= 26\r\n n += LETTERS.indexOf(columnLetters[i])\r\n i++\r\n }\r\n return n\r\n}\r\n\r\nexport function parseCellCoordinates(coords) {\r\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\r\n coords = coords.split(/(\\d+)/)\r\n return [\r\n // Row.\r\n parseInt(coords[1]),\r\n // Column.\r\n columnLettersToNumber(coords[0].trim())\r\n ]\r\n}"],"mappings":";;;;;;;AAAA;AACA,IAAMA,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAE/I,SAASC,mBAAmBA,CAAEC,KAAK,EAAE;EAC1C,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,CAAC,EAAEC,CAAC;IAAA,OAAKD,CAAC,GAAGC,CAAC;EAAA;EAClC,IAAMC,OAAO,GAAGJ,KAAK,CAACK,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACC,GAAG;EAAA,EAAC,CAACC,IAAI,CAACP,UAAU,CAAC;EAC5D,IAAMQ,OAAO,GAAGT,KAAK,CAACK,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACI,MAAM;EAAA,EAAC,CAACF,IAAI,CAACP,UAAU,CAAC;EAC/D,IAAMU,MAAM,GAAGP,OAAO,CAAC,CAAC,CAAC;EACzB,IAAMQ,MAAM,GAAGR,OAAO,CAACA,OAAO,CAACS,MAAM,GAAG,CAAC,CAAC;EAC1C,IAAMC,MAAM,GAAGL,OAAO,CAAC,CAAC,CAAC;EACzB,IAAMM,MAAM,GAAGN,OAAO,CAACA,OAAO,CAACI,MAAM,GAAG,CAAC,CAAC;EAE1C,OAAO,CACL;IAAEN,GAAG,EAAEI,MAAM;IAAED,MAAM,EAAEI;EAAO,CAAC,EAC/B;IAAEP,GAAG,EAAEK,MAAM;IAAEF,MAAM,EAAEK;EAAO,CAAC,CAChC;AACH;;AAEA;AACA;AACA,SAASC,qBAAqBA,CAACC,aAAa,EAAE;EAC5C;EACA,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGF,aAAa,CAACJ,MAAM,EAAE;IAC/BK,CAAC,IAAI,EAAE;IACPA,CAAC,IAAIpB,OAAO,CAACsB,OAAO,CAACH,aAAa,CAACE,CAAC,CAAC,CAAC;IACtCA,CAAC,EAAE;EACL;EACA,OAAOD,CAAC;AACV;AAEO,SAASG,oBAAoBA,CAACC,MAAM,EAAE;EAC3C;EACAA,MAAM,GAAGA,MAAM,CAACC,KAAK,CAAC,OAAO,CAAC;EAC9B,OAAO;EACL;EACAC,QAAQ,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC;EACnB;EACAN,qBAAqB,CAACM,MAAM,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,CAAC,CAAC,CACxC;AACH"}
|
|
@@ -4,38 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = dropEmptyColumns;
|
|
7
|
-
|
|
8
7
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
|
|
10
8
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
|
|
12
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
13
|
-
|
|
9
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
10
|
function dropEmptyColumns(data) {
|
|
15
11
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
_ref$accessor = _ref.accessor,
|
|
13
|
+
accessor = _ref$accessor === void 0 ? function (_) {
|
|
14
|
+
return _;
|
|
15
|
+
} : _ref$accessor,
|
|
16
|
+
onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;
|
|
22
17
|
var i = data[0].length - 1;
|
|
23
|
-
|
|
24
18
|
while (i >= 0) {
|
|
25
19
|
var empty = true;
|
|
26
|
-
|
|
27
20
|
for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {
|
|
28
21
|
var row = _step.value;
|
|
29
|
-
|
|
30
22
|
if (accessor(row[i]) !== null) {
|
|
31
23
|
empty = false;
|
|
32
24
|
break;
|
|
33
25
|
}
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
if (empty) {
|
|
37
28
|
var j = 0;
|
|
38
|
-
|
|
39
29
|
while (j < data.length) {
|
|
40
30
|
data[j].splice(i, 1);
|
|
41
31
|
j++;
|
|
@@ -43,10 +33,8 @@ function dropEmptyColumns(data) {
|
|
|
43
33
|
} else if (onlyTrimAtTheEnd) {
|
|
44
34
|
break;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
i--;
|
|
48
37
|
}
|
|
49
|
-
|
|
50
38
|
return data;
|
|
51
39
|
}
|
|
52
40
|
//# sourceMappingURL=dropEmptyColumns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropEmptyColumns.js","names":["dropEmptyColumns","data","accessor","_","onlyTrimAtTheEnd","i","
|
|
1
|
+
{"version":3,"file":"dropEmptyColumns.js","names":["dropEmptyColumns","data","_ref","arguments","length","undefined","_ref$accessor","accessor","_","onlyTrimAtTheEnd","i","empty","_iterator","_createForOfIteratorHelperLoose","_step","done","row","value","j","splice"],"sources":["../../source/read/dropEmptyColumns.js"],"sourcesContent":["export default function dropEmptyColumns(data, {\r\n accessor = _ => _,\r\n onlyTrimAtTheEnd\r\n} = {}) {\r\n let i = data[0].length - 1\r\n while (i >= 0) {\r\n let empty = true\r\n for (const row of data) {\r\n if (accessor(row[i]) !== null) {\r\n empty = false\r\n break\r\n }\r\n }\r\n if (empty) {\r\n let j = 0;\r\n while (j < data.length) {\r\n data[j].splice(i, 1)\r\n j++\r\n }\r\n } else if (onlyTrimAtTheEnd) {\r\n break\r\n }\r\n i--\r\n }\r\n return data\r\n}"],"mappings":";;;;;;;;;AAAe,SAASA,gBAAgBA,CAACC,IAAI,EAGrC;EAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAAAG,aAAA,GAAAJ,IAAA,CAFJK,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,UAAAE,CAAC;MAAA,OAAIA,CAAC;IAAA,IAAAF,aAAA;IACjBG,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;EAEhB,IAAIC,CAAC,GAAGT,IAAI,CAAC,CAAC,CAAC,CAACG,MAAM,GAAG,CAAC;EAC1B,OAAOM,CAAC,IAAI,CAAC,EAAE;IACb,IAAIC,KAAK,GAAG,IAAI;IAChB,SAAAC,SAAA,GAAAC,+BAAA,CAAkBZ,IAAI,GAAAa,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAAbC,GAAG,GAAAF,KAAA,CAAAG,KAAA;MACZ,IAAIV,QAAQ,CAACS,GAAG,CAACN,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7BC,KAAK,GAAG,KAAK;QACb;MACF;IACF;IACA,IAAIA,KAAK,EAAE;MACT,IAAIO,CAAC,GAAG,CAAC;MACT,OAAOA,CAAC,GAAGjB,IAAI,CAACG,MAAM,EAAE;QACtBH,IAAI,CAACiB,CAAC,CAAC,CAACC,MAAM,CAACT,CAAC,EAAE,CAAC,CAAC;QACpBQ,CAAC,EAAE;MACL;IACF,CAAC,MAAM,IAAIT,gBAAgB,EAAE;MAC3B;IACF;IACAC,CAAC,EAAE;EACL;EACA,OAAOT,IAAI;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropEmptyColumns.test.js","names":["describe","it","dropEmptyColumns","onlyTrimAtTheEnd","should","deep","equal"],"sources":["../../source/read/dropEmptyColumns.test.js"],"sourcesContent":["import dropEmptyColumns from './dropEmptyColumns.js'\r\n\r\ndescribe('dropEmptyColumns', () => {\r\n\tit('should drop empty columns (only at the end)', () => {\r\n\t\tdropEmptyColumns([\r\n\t\t\t[null, 'A', 'B', 'C', null, null],\r\n\t\t\t[null, 'D', null, null, null, null],\r\n\t\t\t[null, null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G', null]\r\n\t\t], {\r\n\t\t\tonlyTrimAtTheEnd: true\r\n\t\t})\r\n\t\t.should.deep.equal([\r\n\t\t\t[null, 'A', 'B', 'C', null],\r\n\t\t\t[null, 'D', null, null, null],\r\n\t\t\t[null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should drop empty columns', () => {\r\n\t\tdropEmptyColumns([\r\n\t\t\t[null, 'A', 'B', 'C', null, null],\r\n\t\t\t[null, 'D', null, null, null, null],\r\n\t\t\t[null, null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G', null]\r\n\t\t])\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C', null],\r\n\t\t\t['D', null, null, null],\r\n\t\t\t[null, null, null, null],\r\n\t\t\t[null, 'E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n})"],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"dropEmptyColumns.test.js","names":["_dropEmptyColumns","_interopRequireDefault","require","obj","__esModule","describe","it","dropEmptyColumns","onlyTrimAtTheEnd","should","deep","equal"],"sources":["../../source/read/dropEmptyColumns.test.js"],"sourcesContent":["import dropEmptyColumns from './dropEmptyColumns.js'\r\n\r\ndescribe('dropEmptyColumns', () => {\r\n\tit('should drop empty columns (only at the end)', () => {\r\n\t\tdropEmptyColumns([\r\n\t\t\t[null, 'A', 'B', 'C', null, null],\r\n\t\t\t[null, 'D', null, null, null, null],\r\n\t\t\t[null, null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G', null]\r\n\t\t], {\r\n\t\t\tonlyTrimAtTheEnd: true\r\n\t\t})\r\n\t\t.should.deep.equal([\r\n\t\t\t[null, 'A', 'B', 'C', null],\r\n\t\t\t[null, 'D', null, null, null],\r\n\t\t\t[null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should drop empty columns', () => {\r\n\t\tdropEmptyColumns([\r\n\t\t\t[null, 'A', 'B', 'C', null, null],\r\n\t\t\t[null, 'D', null, null, null, null],\r\n\t\t\t[null, null, null, null, null, null],\r\n\t\t\t[null, null, 'E', 'F', 'G', null]\r\n\t\t])\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C', null],\r\n\t\t\t['D', null, null, null],\r\n\t\t\t[null, null, null, null],\r\n\t\t\t[null, 'E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n})"],"mappings":";;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAoD,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEpDE,QAAQ,CAAC,kBAAkB,EAAE,YAAM;EAClCC,EAAE,CAAC,6CAA6C,EAAE,YAAM;IACvD,IAAAC,4BAAgB,EAAC,CAChB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACnC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACpC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CACjC,EAAE;MACFC,gBAAgB,EAAE;IACnB,CAAC,CAAC,CACDC,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAC3B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC7B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAC9B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC3B,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,2BAA2B,EAAE,YAAM;IACrC,IAAAC,4BAAgB,EAAC,CAChB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACjC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACnC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACpC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CACjC,CAAC,CACDE,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EACrB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACvB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACxB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACrB,CAAC;EACH,CAAC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -4,52 +4,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = dropEmptyRows;
|
|
7
|
-
|
|
8
7
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
|
|
10
8
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
|
|
12
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
13
|
-
|
|
9
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
10
|
function dropEmptyRows(data) {
|
|
15
11
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
rowIndexMap = _ref.rowIndexMap,
|
|
13
|
+
_ref$accessor = _ref.accessor,
|
|
14
|
+
accessor = _ref$accessor === void 0 ? function (_) {
|
|
15
|
+
return _;
|
|
16
|
+
} : _ref$accessor,
|
|
17
|
+
onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;
|
|
23
18
|
// Drop empty rows.
|
|
24
19
|
var i = data.length - 1;
|
|
25
|
-
|
|
26
20
|
while (i >= 0) {
|
|
27
21
|
// Check if the row is empty.
|
|
28
22
|
var empty = true;
|
|
29
|
-
|
|
30
23
|
for (var _iterator = _createForOfIteratorHelperLoose(data[i]), _step; !(_step = _iterator()).done;) {
|
|
31
24
|
var cell = _step.value;
|
|
32
|
-
|
|
33
25
|
if (accessor(cell) !== null) {
|
|
34
26
|
empty = false;
|
|
35
27
|
break;
|
|
36
28
|
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
}
|
|
30
|
+
// Remove the empty row.
|
|
40
31
|
if (empty) {
|
|
41
32
|
data.splice(i, 1);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
rowMap.splice(i, 1);
|
|
33
|
+
if (rowIndexMap) {
|
|
34
|
+
rowIndexMap.splice(i, 1);
|
|
45
35
|
}
|
|
46
36
|
} else if (onlyTrimAtTheEnd) {
|
|
47
37
|
break;
|
|
48
38
|
}
|
|
49
|
-
|
|
50
39
|
i--;
|
|
51
40
|
}
|
|
52
|
-
|
|
53
41
|
return data;
|
|
54
42
|
}
|
|
55
43
|
//# sourceMappingURL=dropEmptyRows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropEmptyRows.js","names":["dropEmptyRows","data","
|
|
1
|
+
{"version":3,"file":"dropEmptyRows.js","names":["dropEmptyRows","data","_ref","arguments","length","undefined","rowIndexMap","_ref$accessor","accessor","_","onlyTrimAtTheEnd","i","empty","_iterator","_createForOfIteratorHelperLoose","_step","done","cell","value","splice"],"sources":["../../source/read/dropEmptyRows.js"],"sourcesContent":["export default function dropEmptyRows(data, {\r\n rowIndexMap,\r\n accessor = _ => _,\r\n onlyTrimAtTheEnd\r\n} = {}) {\r\n // Drop empty rows.\r\n let i = data.length - 1\r\n while (i >= 0) {\r\n // Check if the row is empty.\r\n let empty = true\r\n for (const cell of data[i]) {\r\n if (accessor(cell) !== null) {\r\n empty = false\r\n break\r\n }\r\n }\r\n // Remove the empty row.\r\n if (empty) {\r\n data.splice(i, 1)\r\n if (rowIndexMap) {\r\n rowIndexMap.splice(i, 1)\r\n }\r\n } else if (onlyTrimAtTheEnd) {\r\n break\r\n }\r\n i--\r\n }\r\n return data\r\n}"],"mappings":";;;;;;;;;AAAe,SAASA,aAAaA,CAACC,IAAI,EAIlC;EAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAHJG,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IAAAC,aAAA,GAAAL,IAAA,CACXM,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,UAAAE,CAAC;MAAA,OAAIA,CAAC;IAAA,IAAAF,aAAA;IACjBG,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;EAEhB;EACA,IAAIC,CAAC,GAAGV,IAAI,CAACG,MAAM,GAAG,CAAC;EACvB,OAAOO,CAAC,IAAI,CAAC,EAAE;IACb;IACA,IAAIC,KAAK,GAAG,IAAI;IAChB,SAAAC,SAAA,GAAAC,+BAAA,CAAmBb,IAAI,CAACU,CAAC,CAAC,GAAAI,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE;MAAA,IAAjBC,IAAI,GAAAF,KAAA,CAAAG,KAAA;MACb,IAAIV,QAAQ,CAACS,IAAI,CAAC,KAAK,IAAI,EAAE;QAC3BL,KAAK,GAAG,KAAK;QACb;MACF;IACF;IACA;IACA,IAAIA,KAAK,EAAE;MACTX,IAAI,CAACkB,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MACjB,IAAIL,WAAW,EAAE;QACfA,WAAW,CAACa,MAAM,CAACR,CAAC,EAAE,CAAC,CAAC;MAC1B;IACF,CAAC,MAAM,IAAID,gBAAgB,EAAE;MAC3B;IACF;IACAC,CAAC,EAAE;EACL;EACA,OAAOV,IAAI;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropEmptyRows.test.js","names":["describe","it","dropEmptyRows","onlyTrimAtTheEnd","should","deep","equal","
|
|
1
|
+
{"version":3,"file":"dropEmptyRows.test.js","names":["_dropEmptyRows","_interopRequireDefault","require","obj","__esModule","describe","it","dropEmptyRows","onlyTrimAtTheEnd","should","deep","equal","rowIndexMap"],"sources":["../../source/read/dropEmptyRows.test.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\n\r\ndescribe('dropEmptyRows', () => {\r\n\tit('should drop empty rows (only at the end)', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t], {\r\n\t\t\tonlyTrimAtTheEnd: true\r\n\t\t})\r\n\t\t.should.deep.equal([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should drop empty rows', () => {\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G'],\r\n\t\t\t[null, null, null]\r\n\t\t])\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\t})\r\n\r\n\tit('should generate row map when dropping empty rows', () => {\r\n\t\tconst rowIndexMap = [0, 1, 2, 3, 4]\r\n\r\n\t\tdropEmptyRows([\r\n\t\t\t[null, null, null],\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t[null, null, null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t],\r\n\t\t{ rowIndexMap })\r\n\t\t.should.deep.equal([\r\n\t\t\t['A', 'B', 'C'],\r\n\t\t\t[null, 'D', null],\r\n\t\t\t['E', 'F', 'G']\r\n\t\t])\r\n\r\n\t\trowIndexMap.should.deep.equal([1, 2, 4])\r\n\t})\r\n})"],"mappings":";;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAE9CE,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC/BC,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACpD,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,EAAE;MACFC,gBAAgB,EAAE;IACnB,CAAC,CAAC,CACDC,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,wBAAwB,EAAE,YAAM;IAClC,IAAAC,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAClB,CAAC,CACDE,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;EACH,CAAC,CAAC;EAEFL,EAAE,CAAC,kDAAkD,EAAE,YAAM;IAC5D,IAAMM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnC,IAAAL,yBAAa,EAAC,CACb,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,EACD;MAAEK,WAAW,EAAXA;IAAY,CAAC,CAAC,CACfH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACf,CAAC;IAEFC,WAAW,CAACH,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACzC,CAAC,CAAC;AACH,CAAC,CAAC"}
|
package/commonjs/read/getData.js
CHANGED
|
@@ -4,65 +4,53 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = getData;
|
|
7
|
-
|
|
8
7
|
var _dropEmptyRows = _interopRequireDefault(require("./dropEmptyRows.js"));
|
|
9
|
-
|
|
10
8
|
var _dropEmptyColumns = _interopRequireDefault(require("./dropEmptyColumns.js"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
10
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
-
|
|
16
11
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
-
|
|
18
12
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
-
|
|
20
13
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
25
|
-
|
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
26
16
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
-
|
|
28
17
|
function getData(sheet, options) {
|
|
29
18
|
var dimensions = sheet.dimensions,
|
|
30
|
-
|
|
19
|
+
cells = sheet.cells;
|
|
31
20
|
|
|
21
|
+
// If the sheet is empty.
|
|
32
22
|
if (cells.length === 0) {
|
|
33
23
|
return [];
|
|
34
24
|
}
|
|
35
|
-
|
|
36
25
|
var _dimensions = _slicedToArray(dimensions, 2),
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
leftTop = _dimensions[0],
|
|
27
|
+
rightBottom = _dimensions[1];
|
|
28
|
+
|
|
29
|
+
// Don't discard empty rows or columns at the start.
|
|
39
30
|
// https://github.com/catamphetamine/read-excel-file/issues/102
|
|
40
31
|
// const colsCount = (rightBottom.column - leftTop.column) + 1
|
|
41
32
|
// const rowsCount = (rightBottom.row - leftTop.row) + 1
|
|
42
33
|
|
|
43
|
-
|
|
44
34
|
var colsCount = rightBottom.column;
|
|
45
|
-
var rowsCount = rightBottom.row;
|
|
35
|
+
var rowsCount = rightBottom.row;
|
|
46
36
|
|
|
37
|
+
// Initialize spreadsheet data structure.
|
|
47
38
|
var data = new Array(rowsCount);
|
|
48
39
|
var i = 0;
|
|
49
|
-
|
|
50
40
|
while (i < rowsCount) {
|
|
51
41
|
data[i] = new Array(colsCount);
|
|
52
42
|
var j = 0;
|
|
53
|
-
|
|
54
43
|
while (j < colsCount) {
|
|
55
44
|
data[i][j] = null;
|
|
56
45
|
j++;
|
|
57
46
|
}
|
|
58
|
-
|
|
59
47
|
i++;
|
|
60
|
-
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Fill in spreadsheet `data`.
|
|
61
51
|
// (this code implies that `cells` aren't necessarily sorted by row and column:
|
|
62
52
|
// maybe that's not correct, this piece code was initially copy-pasted
|
|
63
53
|
// from some other library that used `XPath`)
|
|
64
|
-
|
|
65
|
-
|
|
66
54
|
for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {
|
|
67
55
|
var cell = _step.value;
|
|
68
56
|
// Don't discard empty rows or columns at the start.
|
|
@@ -70,37 +58,37 @@ function getData(sheet, options) {
|
|
|
70
58
|
// const rowIndex = cell.row - leftTop.row
|
|
71
59
|
// const columnIndex = cell.column - leftTop.column
|
|
72
60
|
var rowIndex = cell.row - 1;
|
|
73
|
-
var columnIndex = cell.column - 1;
|
|
74
|
-
|
|
61
|
+
var columnIndex = cell.column - 1;
|
|
62
|
+
// Ignore the data in the cell if it's outside of the spreadsheet's "dimensions".
|
|
75
63
|
if (columnIndex < colsCount && rowIndex < rowsCount) {
|
|
76
64
|
data[rowIndex][columnIndex] = cell.value;
|
|
77
65
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var rowMap = options.rowMap;
|
|
82
|
-
|
|
83
|
-
if (rowMap) {
|
|
84
|
-
var _i2 = 0;
|
|
66
|
+
}
|
|
85
67
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
68
|
+
// Fill in the row map.
|
|
69
|
+
var rowIndexMap = options.rowMap;
|
|
70
|
+
if (rowIndexMap) {
|
|
71
|
+
var _i = 0;
|
|
72
|
+
while (_i < data.length) {
|
|
73
|
+
rowIndexMap[_i] = _i;
|
|
74
|
+
_i++;
|
|
89
75
|
}
|
|
90
|
-
}
|
|
91
|
-
|
|
76
|
+
}
|
|
92
77
|
|
|
78
|
+
// Drop empty columns or rows.
|
|
93
79
|
data = (0, _dropEmptyRows["default"])((0, _dropEmptyColumns["default"])(data, {
|
|
94
80
|
onlyTrimAtTheEnd: true
|
|
95
81
|
}), {
|
|
96
82
|
onlyTrimAtTheEnd: true,
|
|
97
|
-
|
|
98
|
-
});
|
|
83
|
+
rowIndexMap: rowIndexMap
|
|
84
|
+
});
|
|
99
85
|
|
|
86
|
+
// Optionally transform data before applying `schema`.
|
|
100
87
|
if (options.transformData) {
|
|
101
|
-
data = options.transformData(data);
|
|
88
|
+
data = options.transformData(data);
|
|
89
|
+
// data = options.transformData(data, {
|
|
102
90
|
// dropEmptyRowsAndColumns(data) {
|
|
103
|
-
// return dropEmptyRows(dropEmptyColumns(data), {
|
|
91
|
+
// return dropEmptyRows(dropEmptyColumns(data), { rowIndexMap })
|
|
104
92
|
// }
|
|
105
93
|
// })
|
|
106
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getData.js","names":["getData","sheet","options","dimensions","cells","
|
|
1
|
+
{"version":3,"file":"getData.js","names":["_dropEmptyRows","_interopRequireDefault","require","_dropEmptyColumns","obj","__esModule","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","r","l","t","e","u","a","f","push","getData","sheet","options","dimensions","cells","_dimensions","leftTop","rightBottom","colsCount","column","rowsCount","row","data","j","_iterator","_step","cell","rowIndex","columnIndex","rowIndexMap","rowMap","dropEmptyRows","dropEmptyColumns","onlyTrimAtTheEnd","transformData"],"sources":["../../source/read/getData.js"],"sourcesContent":["import dropEmptyRows from './dropEmptyRows.js'\r\nimport dropEmptyColumns from './dropEmptyColumns.js'\r\n\r\nexport default function getData(sheet, options) {\r\n const { dimensions, cells } = sheet\r\n\r\n // If the sheet is empty.\r\n if (cells.length === 0) {\r\n return []\r\n }\r\n\r\n const [leftTop, rightBottom] = dimensions\r\n\r\n // Don't discard empty rows or columns at the start.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const colsCount = (rightBottom.column - leftTop.column) + 1\r\n // const rowsCount = (rightBottom.row - leftTop.row) + 1\r\n\r\n const colsCount = rightBottom.column\r\n const rowsCount = rightBottom.row\r\n\r\n // Initialize spreadsheet data structure.\r\n let data = new Array(rowsCount)\r\n let i = 0\r\n while (i < rowsCount) {\r\n data[i] = new Array(colsCount)\r\n let j = 0\r\n while (j < colsCount) {\r\n data[i][j] = null\r\n j++\r\n }\r\n i++\r\n }\r\n\r\n // Fill in spreadsheet `data`.\r\n // (this code implies that `cells` aren't necessarily sorted by row and column:\r\n // maybe that's not correct, this piece code was initially copy-pasted\r\n // from some other library that used `XPath`)\r\n for (const cell of cells) {\r\n // Don't discard empty rows or columns at the start.\r\n // https://github.com/catamphetamine/read-excel-file/issues/102\r\n // const rowIndex = cell.row - leftTop.row\r\n // const columnIndex = cell.column - leftTop.column\r\n const rowIndex = cell.row - 1\r\n const columnIndex = cell.column - 1\r\n // Ignore the data in the cell if it's outside of the spreadsheet's \"dimensions\".\r\n if (columnIndex < colsCount && rowIndex < rowsCount) {\r\n data[rowIndex][columnIndex] = cell.value\r\n }\r\n }\r\n\r\n // Fill in the row map.\r\n const { rowMap: rowIndexMap } = options\r\n if (rowIndexMap) {\r\n let i = 0\r\n while (i < data.length) {\r\n rowIndexMap[i] = i\r\n i++\r\n }\r\n }\r\n\r\n // Drop empty columns or rows.\r\n data = dropEmptyRows(\r\n dropEmptyColumns(data, { onlyTrimAtTheEnd: true }),\r\n { onlyTrimAtTheEnd: true, rowIndexMap }\r\n )\r\n\r\n // Optionally transform data before applying `schema`.\r\n if (options.transformData) {\r\n data = options.transformData(data)\r\n // data = options.transformData(data, {\r\n // dropEmptyRowsAndColumns(data) {\r\n // return dropEmptyRows(dropEmptyColumns(data), { rowIndexMap })\r\n // }\r\n // })\r\n }\r\n\r\n return data\r\n}"],"mappings":"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"}
|