updating to 0.9.4
This commit is contained in:
parent
97b962da9d
commit
ed56e28363
8
Makefile
8
Makefile
|
@ -3,4 +3,10 @@ update:
|
|||
git show master:dist/cpexcel.js > dist/cpexcel.js
|
||||
git show master:dist/xlsx.core.min.js > xlsx.core.min.js
|
||||
git show master:dist/xlsx.full.min.js > xlsx.full.min.js
|
||||
git show master:xlsx.js > xlsx.js
|
||||
git show master:xlsx.js > xlsx.js
|
||||
git show master:tests/core.js > tests/core.js
|
||||
git show master:tests/fixtures.js > tests/fixtures.js
|
||||
git show master:tests/fs_.js > tests/fs_.js
|
||||
git show master:tests/mocha.css > tests/mocha.css
|
||||
git show master:tests/mocha.js > tests/mocha.js
|
||||
git show master:tests/xhr-hack.js > tests/xhr-hack.js
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,45 @@
|
|||
var assert = function(bool) { if(!bool) { throw new Error("failed assert"); } };
|
||||
assert.deepEqualArray = function(x,y) {
|
||||
if(x.length != y.length) throw new Error("Length mismatch: " + x.length + " != " + y.length);
|
||||
for(var i = 0; i < x.length; ++i) assert.deepEqual(x[i], y[i]);
|
||||
};
|
||||
assert.deepEqual = function(x,y) {
|
||||
if(x == y) return true;
|
||||
if(Array.isArray(x) && Array.isArray(y) && x.length > 5) return assert.deepEqualArray(x,y);
|
||||
if(typeof x != 'object' || typeof y != 'object') throw new Error(x + " !== " + y);
|
||||
Object.keys(x).forEach(function(k) { assert.deepEqual(x[k], y[k]); });
|
||||
Object.keys(y).forEach(function(k) { assert.deepEqual(x[k], y[k]); });
|
||||
};
|
||||
assert.notEqual = function(x,y) { if(x == y) throw new Error(x + " == " + y); };
|
||||
assert.equal = function(x,y) { if(x != y) throw new Error(x + " !== " + y); };
|
||||
assert.throws = function(cb) { var pass = true; try { cb(); pass = false; } catch(e) { } if(!pass) throw new Error("Function did not throw"); };
|
||||
assert.doesNotThrow = function(cb) { var pass = true; try { cb(); } catch(e) { pass = false; } if(!pass) throw new Error("Function did throw"); };
|
||||
|
||||
function require(s) {
|
||||
switch(s) {
|
||||
case 'fs': return fs;
|
||||
case 'assert': return assert;
|
||||
case './': return XLSX;
|
||||
}
|
||||
if(s.slice(-5) == ".json") return JSON.parse(fs.readFileSync(s));
|
||||
}
|
||||
|
||||
var fs = {};
|
||||
fs.existsSync = function(p) { return !!fs[p]; };
|
||||
fs.readdirSync = function(p) { return Object.keys(fs).filter(function(n) {
|
||||
return fs.hasOwnProperty(n) && n.slice(-4) != "Sync"; });
|
||||
};
|
||||
fs.readFileSync = function(f, enc) {
|
||||
if(!fs[f]) throw "File not found: " + f;
|
||||
switch(enc) {
|
||||
case 'base64': return fs[f];
|
||||
case 'buffer':
|
||||
var o = atob(fs[f]), oo = [];
|
||||
for(var i = 0; i < o.length; ++i) oo[i] = o.charCodeAt(i);
|
||||
return oo;
|
||||
default: return atob(fs[f]);
|
||||
}
|
||||
};
|
||||
|
||||
fs.writeFileSync = function(f, d) { fs[f] = d; };
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>JS-XLSX Core Test Runner</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="mocha.css" />
|
||||
<link rel="icon" type="image/png" href="//oss.sheetjs.com/assets/img/logo.png" />
|
||||
<style>
|
||||
#t { font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px 60px; font-weight: bold; }
|
||||
#tt{ font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px 60px; }
|
||||
th { font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px 60px; font-weight: bold; text-align: left; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="t">JS-XLSX Browser-based Parsing Tests</h1>
|
||||
<table id="tt">
|
||||
<tr>
|
||||
<th>File Formats</th>
|
||||
<td><a href="http://github.com/SheetJS/js-xlsx">Library Source</a></td>
|
||||
<td><a href="http://SheetJS.github.io/js-xls">Interactive Demo</a></td>
|
||||
<td><a href="http://npm.im/xlsx">"xlsx" on npm</a></td>
|
||||
<td><a href="https://travis-ci.org/SheetJS/js-xlsx">node CI status</a></td>
|
||||
</tr>
|
||||
<tr><td colspan="5">Tests compiled from <a href="http://github.com/SheetJS/test_files">test_files repo</a> and are located at /test_files<br /></td></tr>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36810333-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
<script src="shim.js"></script>
|
||||
<script src="fs_.js"></script>
|
||||
<script src="fixtures.js"></script>
|
||||
<script src="xlsx.full.min.js"></script>
|
||||
<!--[if IE]>
|
||||
<script type="text/javascript" src="xhr-hack.js"></script>
|
||||
<![endif]-->
|
||||
<div id="mocha"></div>
|
||||
<script src="mocha.js"></script>
|
||||
<script>
|
||||
window.initMochaPhantomJS && window.initMochaPhantomJS();
|
||||
mocha.setup('bdd');
|
||||
</script>
|
||||
<script src="core.js"></script>
|
||||
<script>
|
||||
if(typeof mochaSaucePlease !== "undefined") mochaSaucePlease();
|
||||
else if(window.mochaPhantomJS) mochaPhantomJS.run();
|
||||
else mocha.run();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,260 @@
|
|||
@charset "utf-8";
|
||||
|
||||
body {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
#mocha {
|
||||
font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
margin: 60px 50px;
|
||||
}
|
||||
|
||||
#mocha ul, #mocha li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#mocha ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#mocha h1, #mocha h2 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#mocha h1 {
|
||||
margin-top: 15px;
|
||||
font-size: 1em;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
#mocha h1 a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha h1 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#mocha .suite .suite h1 {
|
||||
margin-top: 0;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
#mocha .hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha h2 {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#mocha .suite {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#mocha .test {
|
||||
margin-left: 15px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#mocha .test.pending:hover h2::after {
|
||||
content: '(pending)';
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
#mocha .test.pass.medium .duration {
|
||||
background: #C09853;
|
||||
}
|
||||
|
||||
#mocha .test.pass.slow .duration {
|
||||
background: #B94A48;
|
||||
}
|
||||
|
||||
#mocha .test.pass::before {
|
||||
content: '✓';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #00d6b2;
|
||||
}
|
||||
|
||||
#mocha .test.pass .duration {
|
||||
font-size: 9px;
|
||||
margin-left: 5px;
|
||||
padding: 2px 5px;
|
||||
color: white;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-ms-border-radius: 5px;
|
||||
-o-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#mocha .test.pass.fast .duration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha .test.pending {
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.pending::before {
|
||||
content: '◦';
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.fail {
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test.fail pre {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha .test.fail::before {
|
||||
content: '✖';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test pre.error {
|
||||
color: #c00;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#mocha .test pre {
|
||||
display: block;
|
||||
float: left;
|
||||
clear: left;
|
||||
font: 12px/1.5 monaco, monospace;
|
||||
margin: 5px;
|
||||
padding: 15px;
|
||||
border: 1px solid #eee;
|
||||
border-bottom-color: #ddd;
|
||||
-webkit-border-radius: 3px;
|
||||
-webkit-box-shadow: 0 1px 3px #eee;
|
||||
-moz-border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 3px #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#mocha .test h2 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#mocha .test a.replay {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
line-height: 15px;
|
||||
text-align: center;
|
||||
background: #eee;
|
||||
font-size: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
-webkit-transition: opacity 200ms;
|
||||
-moz-transition: opacity 200ms;
|
||||
transition: opacity 200ms;
|
||||
opacity: 0.3;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
#mocha .test:hover a.replay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#mocha-report.pass .test.fail {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.fail .test.pass {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.pending .test.pass,
|
||||
#mocha-report.pending .test.fail {
|
||||
display: none;
|
||||
}
|
||||
#mocha-report.pending .test.pass.pending {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#mocha-error {
|
||||
color: #c00;
|
||||
font-size: 1.5em;
|
||||
font-weight: 100;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#mocha-stats {
|
||||
position: fixed;
|
||||
top: 15px;
|
||||
right: 10px;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
color: #888;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#mocha-stats .progress {
|
||||
float: right;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#mocha-stats em {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha-stats a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha-stats a:hover {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#mocha-stats li {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
list-style: none;
|
||||
padding-top: 11px;
|
||||
}
|
||||
|
||||
#mocha-stats canvas {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#mocha code .comment { color: #ddd }
|
||||
#mocha code .init { color: #2F6FAD }
|
||||
#mocha code .string { color: #5890AD }
|
||||
#mocha code .keyword { color: #8A6343 }
|
||||
#mocha code .number { color: #2F6FAD }
|
||||
|
||||
@media screen and (max-device-width: 480px) {
|
||||
#mocha {
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#mocha #stats {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
../shim.js
|
|
@ -0,0 +1,17 @@
|
|||
var IEBinaryToArray_ByteStr_Script =
|
||||
"<!-- IEBinaryToArray_ByteStr -->\r\n"+
|
||||
"<script type='text/vbscript'>\r\n"+
|
||||
"Function IEBinaryToArray_ByteStr(Binary) : IEBinaryToArray_ByteStr = CStr(Binary) : End Function\r\n"+
|
||||
"Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
|
||||
" Dim lastIndex\r\n"+
|
||||
" lastIndex = LenB(Binary)\r\n"+
|
||||
" if lastIndex mod 2 Then\r\n"+
|
||||
" IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
|
||||
" Else\r\n"+
|
||||
" IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
|
||||
" End If\r\n"+
|
||||
"End Function\r\n"+
|
||||
"</script>\r\n";
|
||||
|
||||
document.write(IEBinaryToArray_ByteStr_Script);
|
||||
|
|
@ -0,0 +1 @@
|
|||
../xlsx.full.min.js
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue