read-excel-file 9.2.0 → 9.3.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.
Files changed (205) hide show
  1. package/.gitlab-ci.yml +1 -1
  2. package/CHANGELOG.md +5 -0
  3. package/README.md +153 -50
  4. package/bundle/read-excel-file.min.js +1 -1
  5. package/bundle/read-excel-file.min.js.map +1 -1
  6. package/bundle/read-excel-file.min.old.js +2 -0
  7. package/bundle/read-excel-file.min.old.js.map +1 -0
  8. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js +3 -0
  9. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
  10. package/commonjs/export/parseSheet.js +12 -9
  11. package/commonjs/export/parseSheet.js.map +1 -1
  12. package/commonjs/export/readSheetBrowser.js +6 -2
  13. package/commonjs/export/readSheetBrowser.js.map +1 -1
  14. package/commonjs/export/readSheetNode.js +6 -2
  15. package/commonjs/export/readSheetNode.js.map +1 -1
  16. package/commonjs/export/readSheetUniversal.js +14 -2
  17. package/commonjs/export/readSheetUniversal.js.map +1 -1
  18. package/commonjs/export/readSheetWebWorker.js +12 -2
  19. package/commonjs/export/readSheetWebWorker.js.map +1 -1
  20. package/commonjs/export/readXlsxFileBrowser.js +6 -2
  21. package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
  22. package/commonjs/export/readXlsxFileNode.js +6 -2
  23. package/commonjs/export/readXlsxFileNode.js.map +1 -1
  24. package/commonjs/export/readXlsxFileUniversal.js +14 -2
  25. package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
  26. package/commonjs/export/readXlsxFileWebWorker.js +12 -2
  27. package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
  28. package/commonjs/export/unpackXlsxFileBrowser.js +29 -6
  29. package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
  30. package/commonjs/export/unpackXlsxFileNode.js +6 -0
  31. package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
  32. package/commonjs/export/unpackXlsxFileUniversal.js +6 -0
  33. package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
  34. package/commonjs/export/unpackXlsxFileWebWorker.js +14 -0
  35. package/commonjs/export/unpackXlsxFileWebWorker.js.map +1 -0
  36. package/commonjs/parseSheetData/parseSheetData.js +6 -6
  37. package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
  38. package/commonjs/utility/checkpoint.js +33 -0
  39. package/commonjs/utility/checkpoint.js.map +1 -0
  40. package/commonjs/utility/isObject.js +15 -0
  41. package/commonjs/utility/isObject.js.map +1 -0
  42. package/commonjs/utility/isPromise.js +18 -0
  43. package/commonjs/utility/isPromise.js.map +1 -0
  44. package/commonjs/xlsx/convertCellsToData2dArray.js +0 -3
  45. package/commonjs/xlsx/convertCellsToData2dArray.js.map +1 -1
  46. package/commonjs/xlsx/isDateFormatStyle.js +2 -2
  47. package/commonjs/xlsx/isDateFormatStyle.js.map +1 -1
  48. package/commonjs/xlsx/parseCell.js +89 -24
  49. package/commonjs/xlsx/parseCell.js.map +1 -1
  50. package/{modules/xlsx/parseCellCoordinates.js → commonjs/xlsx/parseCellAddress.js} +18 -7
  51. package/commonjs/xlsx/parseCellAddress.js.map +1 -0
  52. package/commonjs/xlsx/parseCellValue.js +7 -23
  53. package/commonjs/xlsx/parseCellValue.js.map +1 -1
  54. package/commonjs/xlsx/parseFilePaths.js +31 -32
  55. package/commonjs/xlsx/parseFilePaths.js.map +1 -1
  56. package/commonjs/xlsx/parseNumber.js +20 -0
  57. package/commonjs/xlsx/parseNumber.js.map +1 -0
  58. package/commonjs/xlsx/parseSharedString.js +64 -0
  59. package/commonjs/xlsx/parseSharedString.js.map +1 -0
  60. package/commonjs/xlsx/parseSharedStrings.js +45 -5
  61. package/commonjs/xlsx/parseSharedStrings.js.map +1 -1
  62. package/commonjs/xlsx/parseSheet.js +93 -9
  63. package/commonjs/xlsx/parseSheet.js.map +1 -1
  64. package/commonjs/xlsx/parseSheetData.js +68 -0
  65. package/commonjs/xlsx/parseSheetData.js.map +1 -0
  66. package/commonjs/xlsx/parseSpreadsheetContents.js +244 -43
  67. package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
  68. package/commonjs/xlsx/parseSpreadsheetInfo.js +67 -36
  69. package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -1
  70. package/commonjs/xlsx/parseStyles.js +89 -36
  71. package/commonjs/xlsx/parseStyles.js.map +1 -1
  72. package/commonjs/xml/dom.js +2 -1
  73. package/commonjs/xml/dom.js.map +1 -1
  74. package/commonjs/xml/parseXmlStream.js +14 -0
  75. package/commonjs/xml/parseXmlStream.js.map +1 -0
  76. package/commonjs/xml/parseXmlStream.sax.js +109 -0
  77. package/commonjs/xml/parseXmlStream.sax.js.map +1 -0
  78. package/commonjs/xml/parseXmlStream.saxen.code.js +953 -0
  79. package/commonjs/xml/parseXmlStream.saxen.code.js.map +1 -0
  80. package/commonjs/xml/parseXmlStream.saxen.js +85 -0
  81. package/commonjs/xml/parseXmlStream.saxen.js.map +1 -0
  82. package/commonjs/xml/xlsx.js +75 -40
  83. package/commonjs/xml/xlsx.js.map +1 -1
  84. package/commonjs/zip/unzipFromArrayBuffer.js +5 -14
  85. package/commonjs/zip/unzipFromArrayBuffer.js.map +1 -1
  86. package/commonjs/zip/unzipFromStream.fflate.js +154 -25
  87. package/commonjs/zip/unzipFromStream.fflate.js.map +1 -1
  88. package/commonjs/zip/unzipFromStream.js.map +1 -1
  89. package/commonjs/zip/unzipFromStream.unzipper.js +37 -26
  90. package/commonjs/zip/unzipFromStream.unzipper.js.map +1 -1
  91. package/modules/export/convertValuesFromUint8ArraysToStrings.js +2 -0
  92. package/modules/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
  93. package/modules/export/parseSheet.js +12 -9
  94. package/modules/export/parseSheet.js.map +1 -1
  95. package/modules/export/readSheetBrowser.js +5 -2
  96. package/modules/export/readSheetBrowser.js.map +1 -1
  97. package/modules/export/readSheetNode.js +5 -2
  98. package/modules/export/readSheetNode.js.map +1 -1
  99. package/modules/export/readSheetUniversal.js +14 -2
  100. package/modules/export/readSheetUniversal.js.map +1 -1
  101. package/modules/export/readSheetWebWorker.js +12 -2
  102. package/modules/export/readSheetWebWorker.js.map +1 -1
  103. package/modules/export/readXlsxFileBrowser.js +5 -2
  104. package/modules/export/readXlsxFileBrowser.js.map +1 -1
  105. package/modules/export/readXlsxFileNode.js +5 -2
  106. package/modules/export/readXlsxFileNode.js.map +1 -1
  107. package/modules/export/readXlsxFileUniversal.js +14 -2
  108. package/modules/export/readXlsxFileUniversal.js.map +1 -1
  109. package/modules/export/readXlsxFileWebWorker.js +12 -2
  110. package/modules/export/readXlsxFileWebWorker.js.map +1 -1
  111. package/modules/export/unpackXlsxFileBrowser.js +26 -6
  112. package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
  113. package/modules/export/unpackXlsxFileNode.js +3 -0
  114. package/modules/export/unpackXlsxFileNode.js.map +1 -1
  115. package/modules/export/unpackXlsxFileUniversal.js +3 -0
  116. package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
  117. package/modules/export/unpackXlsxFileWebWorker.js +6 -0
  118. package/modules/export/unpackXlsxFileWebWorker.js.map +1 -0
  119. package/modules/parseSheetData/parseSheetData.js +4 -4
  120. package/modules/parseSheetData/parseSheetData.js.map +1 -1
  121. package/modules/utility/checkpoint.js +25 -0
  122. package/modules/utility/checkpoint.js.map +1 -0
  123. package/modules/utility/isObject.js +9 -0
  124. package/modules/utility/isObject.js.map +1 -0
  125. package/modules/utility/isPromise.js +12 -0
  126. package/modules/utility/isPromise.js.map +1 -0
  127. package/modules/xlsx/convertCellsToData2dArray.js +0 -3
  128. package/modules/xlsx/convertCellsToData2dArray.js.map +1 -1
  129. package/modules/xlsx/isDateFormatStyle.js +2 -2
  130. package/modules/xlsx/isDateFormatStyle.js.map +1 -1
  131. package/modules/xlsx/parseCell.js +85 -24
  132. package/modules/xlsx/parseCell.js.map +1 -1
  133. package/{commonjs/xlsx/parseCellCoordinates.js → modules/xlsx/parseCellAddress.js} +12 -13
  134. package/modules/xlsx/parseCellAddress.js.map +1 -0
  135. package/modules/xlsx/parseCellValue.js +7 -23
  136. package/modules/xlsx/parseCellValue.js.map +1 -1
  137. package/modules/xlsx/parseFilePaths.js +31 -33
  138. package/modules/xlsx/parseFilePaths.js.map +1 -1
  139. package/modules/xlsx/parseNumber.js +14 -0
  140. package/modules/xlsx/parseNumber.js.map +1 -0
  141. package/modules/xlsx/parseSharedString.js +55 -0
  142. package/modules/xlsx/parseSharedString.js.map +1 -0
  143. package/modules/xlsx/parseSharedStrings.js +46 -5
  144. package/modules/xlsx/parseSharedStrings.js.map +1 -1
  145. package/modules/xlsx/parseSheet.js +91 -9
  146. package/modules/xlsx/parseSheet.js.map +1 -1
  147. package/modules/xlsx/parseSheetData.js +55 -0
  148. package/modules/xlsx/parseSheetData.js.map +1 -0
  149. package/modules/xlsx/parseSpreadsheetContents.js +242 -43
  150. package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
  151. package/modules/xlsx/parseSpreadsheetInfo.js +67 -37
  152. package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -1
  153. package/modules/xlsx/parseStyles.js +88 -36
  154. package/modules/xlsx/parseStyles.js.map +1 -1
  155. package/modules/xml/dom.js +2 -1
  156. package/modules/xml/dom.js.map +1 -1
  157. package/modules/xml/parseXmlStream.js +18 -0
  158. package/modules/xml/parseXmlStream.js.map +1 -0
  159. package/modules/xml/parseXmlStream.sax.js +103 -0
  160. package/modules/xml/parseXmlStream.sax.js.map +1 -0
  161. package/modules/xml/parseXmlStream.saxen.code.js +947 -0
  162. package/modules/xml/parseXmlStream.saxen.code.js.map +1 -0
  163. package/modules/xml/parseXmlStream.saxen.js +79 -0
  164. package/modules/xml/parseXmlStream.saxen.js.map +1 -0
  165. package/modules/xml/xlsx.js +72 -36
  166. package/modules/xml/xlsx.js.map +1 -1
  167. package/modules/zip/unzipFromArrayBuffer.js +5 -14
  168. package/modules/zip/unzipFromArrayBuffer.js.map +1 -1
  169. package/modules/zip/unzipFromStream.fflate.js +157 -24
  170. package/modules/zip/unzipFromStream.fflate.js.map +1 -1
  171. package/modules/zip/unzipFromStream.js +56 -2
  172. package/modules/zip/unzipFromStream.js.map +1 -1
  173. package/modules/zip/unzipFromStream.unzipper.js +38 -26
  174. package/modules/zip/unzipFromStream.unzipper.js.map +1 -1
  175. package/package.json +4 -6
  176. package/commonjs/xlsx/parseCellCoordinates.js.map +0 -1
  177. package/commonjs/xlsx/parseCells.js +0 -34
  178. package/commonjs/xlsx/parseCells.js.map +0 -1
  179. package/commonjs/xlsx/parseSheetDimensions.js +0 -43
  180. package/commonjs/xlsx/parseSheetDimensions.js.map +0 -1
  181. package/commonjs/xml/xml.js +0 -13
  182. package/commonjs/xml/xml.js.map +0 -1
  183. package/commonjs/xml/xmlBrowser.js +0 -17
  184. package/commonjs/xml/xmlBrowser.js.map +0 -1
  185. package/commonjs/xml/xpath/xlsx-xpath.js +0 -92
  186. package/commonjs/xml/xpath/xlsx-xpath.js.map +0 -1
  187. package/commonjs/xml/xpath/xpathBrowser.js +0 -33
  188. package/commonjs/xml/xpath/xpathBrowser.js.map +0 -1
  189. package/commonjs/xml/xpath/xpathNode.js +0 -16
  190. package/commonjs/xml/xpath/xpathNode.js.map +0 -1
  191. package/modules/xlsx/parseCellCoordinates.js.map +0 -1
  192. package/modules/xlsx/parseCells.js +0 -27
  193. package/modules/xlsx/parseCells.js.map +0 -1
  194. package/modules/xlsx/parseSheetDimensions.js +0 -37
  195. package/modules/xlsx/parseSheetDimensions.js.map +0 -1
  196. package/modules/xml/xml.js +0 -7
  197. package/modules/xml/xml.js.map +0 -1
  198. package/modules/xml/xmlBrowser.js +0 -11
  199. package/modules/xml/xmlBrowser.js.map +0 -1
  200. package/modules/xml/xpath/xlsx-xpath.js +0 -73
  201. package/modules/xml/xpath/xlsx-xpath.js.map +0 -1
  202. package/modules/xml/xpath/xpathBrowser.js +0 -27
  203. package/modules/xml/xpath/xpathBrowser.js.map +0 -1
  204. package/modules/xml/xpath/xpathNode.js +0 -9
  205. package/modules/xml/xpath/xpathNode.js.map +0 -1
@@ -4,11 +4,51 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = parseSharedStrings;
7
- var _xlsx = require("../xml/xlsx.js");
8
- function parseSharedStrings(content, xml) {
9
- if (!content) {
10
- return [];
7
+ var _parseSharedString = require("./parseSharedString.js");
8
+ /**
9
+ * Parses `sharedStrings.xml` file.
10
+ * @param {string} content
11
+ * @param {function} parseXmlStream — SAX XML parser.
12
+ * @returns {Promise<string[]>}
13
+ */
14
+ function parseSharedStrings(content, parseXmlStream) {
15
+ return parseXmlStream(content, {
16
+ createInitialState: createInitialStateInSharedStrings,
17
+ onOpenTag: onOpenTagInSharedStrings,
18
+ onCloseTag: onCloseTagInSharedStrings,
19
+ onText: onTextInSharedStrings
20
+ }).then(function (state) {
21
+ return state.strings;
22
+ });
23
+ }
24
+ function createInitialStateInSharedStrings() {
25
+ return {
26
+ si: undefined,
27
+ strings: []
28
+ };
29
+ }
30
+
31
+ // In an XLSX `sharedStrings.xml` file, a <si/> (string item) element can have
32
+ // either a single child <t/> element (meaning that "rich formatting" is not used)
33
+ // or multiple child <r/> elements (meaning that "rich formatting" is used).
34
+ function onOpenTagInSharedStrings(tagName, attributes, state) {
35
+ if (tagName === 'si') {
36
+ state.si = (0, _parseSharedString.createInitialStateInSharedString)();
37
+ } else if (state.si) {
38
+ (0, _parseSharedString.onOpenTagInSharedString)(tagName, attributes, state.si);
39
+ }
40
+ }
41
+ function onCloseTagInSharedStrings(tagName, state) {
42
+ if (tagName === 'si') {
43
+ state.strings.push(state.si.string);
44
+ state.si = undefined;
45
+ } else if (state.si) {
46
+ (0, _parseSharedString.onCloseTagInSharedString)(tagName, state.si);
47
+ }
48
+ }
49
+ function onTextInSharedStrings(text, state) {
50
+ if (state.si) {
51
+ (0, _parseSharedString.onTextInSharedString)(text, state.si);
11
52
  }
12
- return (0, _xlsx.getSharedStrings)(xml.createDocument(content));
13
53
  }
14
54
  //# sourceMappingURL=parseSharedStrings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseSharedStrings.js","names":["_xlsx","require","parseSharedStrings","content","xml","getSharedStrings","createDocument"],"sources":["../../source/xlsx/parseSharedStrings.js"],"sourcesContent":["import {\r\n getSharedStrings\r\n} from '../xml/xlsx.js'\r\n\r\nexport default function parseSharedStrings(content, xml) {\r\n if (!content) {\r\n return []\r\n }\r\n return getSharedStrings(xml.createDocument(content))\r\n}"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIe,SAASC,kBAAkBA,CAACC,OAAO,EAAEC,GAAG,EAAE;EACvD,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,EAAE;EACX;EACA,OAAO,IAAAE,sBAAgB,EAACD,GAAG,CAACE,cAAc,CAACH,OAAO,CAAC,CAAC;AACtD"}
1
+ {"version":3,"file":"parseSharedStrings.js","names":["_parseSharedString","require","parseSharedStrings","content","parseXmlStream","createInitialState","createInitialStateInSharedStrings","onOpenTag","onOpenTagInSharedStrings","onCloseTag","onCloseTagInSharedStrings","onText","onTextInSharedStrings","then","state","strings","si","undefined","tagName","attributes","createInitialStateInSharedString","onOpenTagInSharedString","push","string","onCloseTagInSharedString","text","onTextInSharedString"],"sources":["../../source/xlsx/parseSharedStrings.js"],"sourcesContent":["import {\r\n onOpenTagInSharedString,\r\n onCloseTagInSharedString,\r\n onTextInSharedString,\r\n createInitialStateInSharedString\r\n} from './parseSharedString.js'\r\n\r\n/**\r\n * Parses `sharedStrings.xml` file.\r\n * @param {string} content\r\n * @param {function} parseXmlStream — SAX XML parser.\r\n * @returns {Promise<string[]>}\r\n */\r\nexport default function parseSharedStrings(content, parseXmlStream) {\r\n return parseXmlStream(content, {\r\n createInitialState: createInitialStateInSharedStrings,\r\n onOpenTag: onOpenTagInSharedStrings,\r\n onCloseTag: onCloseTagInSharedStrings,\r\n onText: onTextInSharedStrings\r\n }).then((state) => {\r\n return state.strings\r\n })\r\n}\r\n\r\nfunction createInitialStateInSharedStrings() {\r\n return {\r\n si: undefined,\r\n strings: []\r\n }\r\n}\r\n\r\n// In an XLSX `sharedStrings.xml` file, a <si/> (string item) element can have\r\n// either a single child <t/> element (meaning that \"rich formatting\" is not used)\r\n// or multiple child <r/> elements (meaning that \"rich formatting\" is used).\r\nfunction onOpenTagInSharedStrings(tagName, attributes, state) {\r\n if (tagName === 'si') {\r\n state.si = createInitialStateInSharedString()\r\n } else if (state.si) {\r\n onOpenTagInSharedString(tagName, attributes, state.si)\r\n }\r\n}\r\n\r\nfunction onCloseTagInSharedStrings(tagName, state) {\r\n if (tagName === 'si') {\r\n state.strings.push(state.si.string)\r\n state.si = undefined\r\n } else if (state.si) {\r\n onCloseTagInSharedString(tagName, state.si)\r\n }\r\n}\r\n\r\nfunction onTextInSharedStrings(text, state) {\r\n if (state.si) {\r\n onTextInSharedString(text, state.si)\r\n }\r\n}"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,kBAAkBA,CAACC,OAAO,EAAEC,cAAc,EAAE;EAClE,OAAOA,cAAc,CAACD,OAAO,EAAE;IAC7BE,kBAAkB,EAAEC,iCAAiC;IACrDC,SAAS,EAAEC,wBAAwB;IACnCC,UAAU,EAAEC,yBAAyB;IACrCC,MAAM,EAAEC;EACV,CAAC,CAAC,CAACC,IAAI,CAAC,UAACC,KAAK,EAAK;IACjB,OAAOA,KAAK,CAACC,OAAO;EACtB,CAAC,CAAC;AACJ;AAEA,SAAST,iCAAiCA,CAAA,EAAG;EAC3C,OAAO;IACLU,EAAE,EAAEC,SAAS;IACbF,OAAO,EAAE;EACX,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASP,wBAAwBA,CAACU,OAAO,EAAEC,UAAU,EAAEL,KAAK,EAAE;EAC5D,IAAII,OAAO,KAAK,IAAI,EAAE;IACpBJ,KAAK,CAACE,EAAE,GAAG,IAAAI,mDAAgC,EAAC,CAAC;EAC/C,CAAC,MAAM,IAAIN,KAAK,CAACE,EAAE,EAAE;IACnB,IAAAK,0CAAuB,EAACH,OAAO,EAAEC,UAAU,EAAEL,KAAK,CAACE,EAAE,CAAC;EACxD;AACF;AAEA,SAASN,yBAAyBA,CAACQ,OAAO,EAAEJ,KAAK,EAAE;EACjD,IAAII,OAAO,KAAK,IAAI,EAAE;IACpBJ,KAAK,CAACC,OAAO,CAACO,IAAI,CAACR,KAAK,CAACE,EAAE,CAACO,MAAM,CAAC;IACnCT,KAAK,CAACE,EAAE,GAAGC,SAAS;EACtB,CAAC,MAAM,IAAIH,KAAK,CAACE,EAAE,EAAE;IACnB,IAAAQ,2CAAwB,EAACN,OAAO,EAAEJ,KAAK,CAACE,EAAE,CAAC;EAC7C;AACF;AAEA,SAASJ,qBAAqBA,CAACa,IAAI,EAAEX,KAAK,EAAE;EAC1C,IAAIA,KAAK,CAACE,EAAE,EAAE;IACZ,IAAAU,uCAAoB,EAACD,IAAI,EAAEX,KAAK,CAACE,EAAE,CAAC;EACtC;AACF"}
@@ -1,21 +1,105 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports["default"] = parseSheet;
7
- var _parseCells = _interopRequireDefault(require("./parseCells.js"));
8
- var _parseSheetDimensions = _interopRequireDefault(require("./parseSheetDimensions.js"));
8
+ var _parseSheetData = _interopRequireWildcard(require("./parseSheetData.js"));
9
+ var _parseCellAddress = _interopRequireDefault(require("./parseCellAddress.js"));
9
10
  var _reconstructSheetDimensionsFromSheetCells = _interopRequireDefault(require("./reconstructSheetDimensionsFromSheetCells.js"));
10
11
  var _convertCellsToData2dArray = _interopRequireDefault(require("./convertCellsToData2dArray.js"));
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
- function parseSheet(content, xml, sharedStrings, styles, epoch1904, options) {
13
- var sheetDocument = xml.createDocument(content);
14
- var cells = (0, _parseCells["default"])(sheetDocument, sharedStrings, styles, epoch1904, options);
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+ 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."); }
17
+ 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); }
18
+ 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; }
19
+ 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; } }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+ /**
22
+ * Parses a `sheet.xml` file.
23
+ * @param {string} content
24
+ * @param {function} parseXmlStream — SAX XML parser.
25
+ * @param {object} options
26
+ * @returns {Promise<SheetData>}
27
+ */
28
+ function parseSheet(content, parseXmlStream, _ref) {
29
+ var sharedStrings = _ref.sharedStrings,
30
+ styles = _ref.styles,
31
+ epoch1904 = _ref.epoch1904,
32
+ options = _ref.options;
33
+ // When XML parser is finished, it returns a `state`
34
+ // where it has accumulated the cells it encountered during parsing.
35
+ // `getSheetData()` function reads the parser `state` and transforms it to `SheetData`.
36
+ var getSheetData = function getSheetData(state) {
37
+ var cells = (0, _parseSheetData["default"])(state.sheetData, sharedStrings, styles, epoch1904, options);
38
+ var dimensions = state.dimension ? parseSheetDimensionRef(state.dimension) : (0, _reconstructSheetDimensionsFromSheetCells["default"])(cells);
39
+ return (0, _convertCellsToData2dArray["default"])(cells, dimensions);
40
+ };
41
+ return parseXmlStream(content, {
42
+ createInitialState: createInitialStateInSheet,
43
+ onOpenTag: onOpenTagInSheet,
44
+ onCloseTag: onCloseTagInSheet,
45
+ onText: onTextInSheet
46
+ }).then(function (state) {
47
+ return getSheetData(state);
48
+ });
49
+ }
50
+ function createInitialStateInSheet() {
51
+ return {
52
+ dimension: undefined,
53
+ sheetData: undefined
54
+ };
55
+ }
56
+ function onOpenTagInSheet(tagName, attributes, state) {
57
+ if (tagName === 'dimension') {
58
+ state.dimension = attributes.ref;
59
+ } else if (tagName === 'sheetData') {
60
+ state.sheetData = (0, _parseSheetData.createInitialStateInSheetData)();
61
+ } else if (state.sheetData) {
62
+ (0, _parseSheetData.onOpenTagInSheetData)(tagName, attributes, state.sheetData);
63
+ }
64
+ }
65
+ function onCloseTagInSheet(tagName, state) {
66
+ if (state.sheetData) {
67
+ (0, _parseSheetData.onCloseTagInSheetData)(tagName, state.sheetData);
68
+ }
69
+ }
70
+ function onTextInSheet(text, state) {
71
+ if (state.sheetData) {
72
+ (0, _parseSheetData.onTextInSheetData)(text, state.sheetData);
73
+ }
74
+ }
15
75
 
16
- // `dimensions` defines the spreadsheet area enclosing all non-empty cells.
17
- // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
18
- var dimensions = (0, _parseSheetDimensions["default"])(sheetDocument) || (0, _reconstructSheetDimensionsFromSheetCells["default"])(cells);
19
- return (0, _convertCellsToData2dArray["default"])(cells, dimensions);
76
+ /**
77
+ * Sheet "dimension" defines the spreadsheet area containing all non-empty cells.
78
+ * Any cells outside the "dimension" are considered empty and should be ignored.
79
+ * https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1
80
+ * @param {string} `ref` — The value of `<dimension ref/>` attribute.
81
+ * @returns {object[]} `undefined` or `[{ row, column }, { row, column }]` — "From row number and column number to row number and column number".
82
+ */
83
+ function parseSheetDimensionRef(ref) {
84
+ var dimensions = ref.split(':').map(_parseCellAddress["default"]).map(function (_ref2) {
85
+ var _ref3 = _slicedToArray(_ref2, 2),
86
+ row = _ref3[0],
87
+ column = _ref3[1];
88
+ return {
89
+ row: row,
90
+ column: column
91
+ };
92
+ });
93
+ // Sometimes there can be just a single cell as a spreadsheet's "dimensions".
94
+ // For example, the default "dimensions" in Apache POI library is "A1",
95
+ // meaning that only the first cell in the spreadsheet is used.
96
+ //
97
+ // A quote from Apache POI library:
98
+ // "Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1')."
99
+ //
100
+ if (dimensions.length === 1) {
101
+ dimensions = [dimensions[0], dimensions[0]];
102
+ }
103
+ return dimensions;
20
104
  }
21
105
  //# sourceMappingURL=parseSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseSheet.js","names":["_parseCells","_interopRequireDefault","require","_parseSheetDimensions","_reconstructSheetDimensionsFromSheetCells","_convertCellsToData2dArray","obj","__esModule","parseSheet","content","xml","sharedStrings","styles","epoch1904","options","sheetDocument","createDocument","cells","parseCells","dimensions","parseSheetDimensions","reconstructSheetDimensionsFromSheetCells","convertSheetToData2dArray"],"sources":["../../source/xlsx/parseSheet.js"],"sourcesContent":["import parseCells from './parseCells.js'\r\nimport parseSheetDimensions from './parseSheetDimensions.js'\r\nimport reconstructSheetDimensionsFromSheetCells from './reconstructSheetDimensionsFromSheetCells.js'\r\nimport convertSheetToData2dArray from './convertCellsToData2dArray.js'\r\n\r\nexport default function parseSheet(content, xml, sharedStrings, styles, epoch1904, options) {\r\n const sheetDocument = xml.createDocument(content)\r\n\r\n const cells = parseCells(sheetDocument, sharedStrings, styles, epoch1904, options)\r\n\r\n // `dimensions` defines the spreadsheet area enclosing all non-empty cells.\r\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\n const dimensions = parseSheetDimensions(sheetDocument) || reconstructSheetDimensionsFromSheetCells(cells)\r\n\r\n return convertSheetToData2dArray(cells, dimensions)\r\n}"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,yCAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,0BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAsE,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEvD,SAASE,UAAUA,CAACC,OAAO,EAAEC,GAAG,EAAEC,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAE;EAC1F,IAAMC,aAAa,GAAGL,GAAG,CAACM,cAAc,CAACP,OAAO,CAAC;EAEjD,IAAMQ,KAAK,GAAG,IAAAC,sBAAU,EAACH,aAAa,EAAEJ,aAAa,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,CAAC;;EAElF;EACA;EACA,IAAMK,UAAU,GAAG,IAAAC,gCAAoB,EAACL,aAAa,CAAC,IAAI,IAAAM,oDAAwC,EAACJ,KAAK,CAAC;EAEzG,OAAO,IAAAK,qCAAyB,EAACL,KAAK,EAAEE,UAAU,CAAC;AACrD"}
1
+ {"version":3,"file":"parseSheet.js","names":["_parseSheetData","_interopRequireWildcard","require","_parseCellAddress","_interopRequireDefault","_reconstructSheetDimensionsFromSheetCells","_convertCellsToData2dArray","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","parseSheet","content","parseXmlStream","_ref","sharedStrings","styles","epoch1904","options","getSheetData","state","cells","parseSheetData","sheetData","dimensions","dimension","parseSheetDimensionRef","reconstructSheetDimensionsFromSheetCells","convertSheetToData2dArray","createInitialState","createInitialStateInSheet","onOpenTag","onOpenTagInSheet","onCloseTag","onCloseTagInSheet","onText","onTextInSheet","then","undefined","tagName","attributes","ref","createInitialStateInSheetData","onOpenTagInSheetData","onCloseTagInSheetData","text","onTextInSheetData","split","map","parseCellAddress","_ref2","_ref3","row","column"],"sources":["../../source/xlsx/parseSheet.js"],"sourcesContent":["import parseSheetData, {\r\n createInitialStateInSheetData,\r\n onOpenTagInSheetData,\r\n onCloseTagInSheetData,\r\n onTextInSheetData\r\n} from './parseSheetData.js'\r\n\r\nimport parseCellAddress from './parseCellAddress.js'\r\n\r\nimport reconstructSheetDimensionsFromSheetCells from './reconstructSheetDimensionsFromSheetCells.js'\r\nimport convertSheetToData2dArray from './convertCellsToData2dArray.js'\r\n\r\n/**\r\n * Parses a `sheet.xml` file.\r\n * @param {string} content\r\n * @param {function} parseXmlStream — SAX XML parser.\r\n * @param {object} options\r\n * @returns {Promise<SheetData>}\r\n */\r\nexport default function parseSheet(content, parseXmlStream, { sharedStrings, styles, epoch1904, options }) {\r\n // When XML parser is finished, it returns a `state`\r\n // where it has accumulated the cells it encountered during parsing.\r\n // `getSheetData()` function reads the parser `state` and transforms it to `SheetData`.\r\n const getSheetData = (state) => {\r\n const cells = parseSheetData(state.sheetData, sharedStrings, styles, epoch1904, options)\r\n const dimensions = state.dimension\r\n ? parseSheetDimensionRef(state.dimension)\r\n : reconstructSheetDimensionsFromSheetCells(cells)\r\n return convertSheetToData2dArray(cells, dimensions)\r\n }\r\n\r\n return parseXmlStream(content, {\r\n createInitialState: createInitialStateInSheet,\r\n onOpenTag: onOpenTagInSheet,\r\n onCloseTag: onCloseTagInSheet,\r\n onText: onTextInSheet\r\n }).then((state) => {\r\n return getSheetData(state)\r\n })\r\n}\r\n\r\nfunction createInitialStateInSheet() {\r\n return {\r\n dimension: undefined,\r\n sheetData: undefined\r\n }\r\n}\r\n\r\nfunction onOpenTagInSheet(tagName, attributes, state) {\r\n if (tagName === 'dimension') {\r\n state.dimension = attributes.ref\r\n } else if (tagName === 'sheetData') {\r\n state.sheetData = createInitialStateInSheetData()\r\n } else if (state.sheetData) {\r\n onOpenTagInSheetData(tagName, attributes, state.sheetData)\r\n }\r\n}\r\n\r\nfunction onCloseTagInSheet(tagName, state) {\r\n if (state.sheetData) {\r\n onCloseTagInSheetData(tagName, state.sheetData)\r\n }\r\n}\r\n\r\nfunction onTextInSheet(text, state) {\r\n if (state.sheetData) {\r\n onTextInSheetData(text, state.sheetData)\r\n }\r\n}\r\n\r\n/**\r\n * Sheet \"dimension\" defines the spreadsheet area containing all non-empty cells.\r\n * Any cells outside the \"dimension\" are considered empty and should be ignored.\r\n * https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\r\n * @param {string} `ref` — The value of `<dimension ref/>` attribute.\r\n * @returns {object[]} `undefined` or `[{ row, column }, { row, column }]` — \"From row number and column number to row number and column number\".\r\n */\r\nfunction parseSheetDimensionRef(ref) {\r\n let dimensions = ref.split(':').map(parseCellAddress).map(\r\n ([row, column]) => ({ row, column })\r\n )\r\n // Sometimes there can be just a single cell as a spreadsheet's \"dimensions\".\r\n // For example, the default \"dimensions\" in Apache POI library is \"A1\",\r\n // meaning that only the first cell in the spreadsheet is used.\r\n //\r\n // A quote from Apache POI library:\r\n // \"Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1').\"\r\n //\r\n if (dimensions.length === 1) {\r\n dimensions = [dimensions[0], dimensions[0]]\r\n }\r\n return dimensions\r\n}"],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createInitialStateInSheetData = createInitialStateInSheetData;
8
+ exports["default"] = parseSheetData;
9
+ exports.onCloseTagInSheetData = onCloseTagInSheetData;
10
+ exports.onOpenTagInSheetData = onOpenTagInSheetData;
11
+ exports.onTextInSheetData = onTextInSheetData;
12
+ var _parseCell = _interopRequireWildcard(require("./parseCell.js"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ function parseSheetData(state, sharedStrings, styles, epoch1904, options) {
16
+ return state.cells.map(function (_ref) {
17
+ var attributes = _ref.attributes,
18
+ value = _ref.value,
19
+ inlineString = _ref.inlineString;
20
+ return (0, _parseCell["default"])(attributes, value, inlineString, sharedStrings, styles, epoch1904, options);
21
+ });
22
+ }
23
+ function createInitialStateInSheetData() {
24
+ return {
25
+ c: undefined,
26
+ cells: []
27
+ };
28
+ }
29
+ function onOpenTagInSheetData(tagName, attributes, state) {
30
+ if (tagName === 'c') {
31
+ state.c = (0, _parseCell.createInitialStateInCell)();
32
+ state.c.attributes = attributes;
33
+ } else if (state.c) {
34
+ (0, _parseCell.onOpenTagInCell)(tagName, attributes, state.c);
35
+ }
36
+ }
37
+ function onCloseTagInSheetData(tagName, state) {
38
+ if (tagName === 'c') {
39
+ state.cells.push({
40
+ attributes: state.c.attributes,
41
+ value: state.c.value,
42
+ inlineString: state.c.inlineString
43
+ });
44
+ state.c = undefined;
45
+ } else if (state.c) {
46
+ (0, _parseCell.onCloseTagInCell)(tagName, state.c);
47
+ }
48
+ }
49
+ function onTextInSheetData(text, state) {
50
+ if (state.c) {
51
+ (0, _parseCell.onTextInCell)(text, state.c);
52
+ }
53
+ }
54
+
55
+ // Here, it could also parse "merged cells" and then return them in some special way.
56
+ // But then it's not clear what should be the way to return such merged cells.
57
+ // I.e. should it just return it as a duplicate value in each one of the merged cells?
58
+ // Or should it keep the current behavior of only returning the value of the top-most left-most cell
59
+ // and then just return `null` for the rest of the cells in a "merged cells" group?
60
+ // Perhaps the latter (current) approach is the most sensible one, so there's no need
61
+ // to change anything.
62
+ //
63
+ // const mergedCells = getMergedCellCoordinates(sheetDocument)
64
+ // for (const mergedCell of mergedCells) {
65
+ // const [from, to] = mergedCell.split(':').map(parseCellAddress)
66
+ // console.log('Merged Cell.', 'From:', from, 'To:', to)
67
+ // }
68
+ //# sourceMappingURL=parseSheetData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseSheetData.js","names":["_parseCell","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","parseSheetData","state","sharedStrings","styles","epoch1904","options","cells","map","_ref","attributes","value","inlineString","parseCell","createInitialStateInSheetData","c","undefined","onOpenTagInSheetData","tagName","createInitialStateInCell","onOpenTagInCell","onCloseTagInSheetData","push","onCloseTagInCell","onTextInSheetData","text","onTextInCell"],"sources":["../../source/xlsx/parseSheetData.js"],"sourcesContent":["import parseCell, {\r\n createInitialStateInCell,\r\n onOpenTagInCell,\r\n onCloseTagInCell,\r\n onTextInCell\r\n} from './parseCell.js'\r\n\r\nexport default function parseSheetData(state, sharedStrings, styles, epoch1904, options) {\r\n return state.cells.map(({ attributes, value, inlineString }) => {\r\n return parseCell(\r\n attributes,\r\n value,\r\n inlineString,\r\n sharedStrings,\r\n styles,\r\n epoch1904,\r\n options\r\n )\r\n })\r\n}\r\n\r\nexport function createInitialStateInSheetData() {\r\n return {\r\n c: undefined,\r\n cells: []\r\n }\r\n}\r\n\r\nexport function onOpenTagInSheetData(tagName, attributes, state) {\r\n if (tagName === 'c') {\r\n state.c = createInitialStateInCell()\r\n state.c.attributes = attributes\r\n } else if (state.c) {\r\n onOpenTagInCell(tagName, attributes, state.c)\r\n }\r\n}\r\n\r\nexport function onCloseTagInSheetData(tagName, state) {\r\n if (tagName === 'c') {\r\n state.cells.push({\r\n attributes: state.c.attributes,\r\n value: state.c.value,\r\n inlineString: state.c.inlineString\r\n })\r\n state.c = undefined\r\n } else if (state.c) {\r\n onCloseTagInCell(tagName, state.c)\r\n }\r\n}\r\n\r\nexport function onTextInSheetData(text, state) {\r\n if (state.c) {\r\n onTextInCell(text, state.c)\r\n }\r\n}\r\n\r\n// Here, it could also parse \"merged cells\" and then return them in some special way.\r\n// But then it's not clear what should be the way to return such merged cells.\r\n// I.e. should it just return it as a duplicate value in each one of the merged cells?\r\n// Or should it keep the current behavior of only returning the value of the top-most left-most cell\r\n// and then just return `null` for the rest of the cells in a \"merged cells\" group?\r\n// Perhaps the latter (current) approach is the most sensible one, so there's no need\r\n// to change anything.\r\n//\r\n// const mergedCells = getMergedCellCoordinates(sheetDocument)\r\n// for (const mergedCell of mergedCells) {\r\n// const [from, to] = mergedCell.split(':').map(parseCellAddress)\r\n// console.log('Merged Cell.', 'From:', from, 'To:', to)\r\n// }"],"mappings":"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"}