1/* @license 2Papa Parse 3v5.0.2 4https://github.com/mholt/PapaParse 5License: MIT 6*/ 7!(function (e, t) { 8 "function" == typeof define && define.amd 9 ? define([], t) 10 : "object" == typeof module && "undefined" != typeof exports 11 ? (module.exports = t()) 12 : (e.Papa = t()); 13})(this, function s() { 14 "use strict"; 15 var f = 16 "undefined" != typeof self 17 ? self 18 : "undefined" != typeof window 19 ? window 20 : void 0 !== f 21 ? f 22 : {}; 23 var n = !f.document && !!f.postMessage, 24 o = n && /blob:/i.test((f.location || {}).protocol), 25 a = {}, 26 h = 0, 27 b = { 28 parse: function (e, t) { 29 var r = (t = t || {}).dynamicTyping || !1; 30 q(r) && ((t.dynamicTypingFunction = r), (r = {})); 31 if ( 32 ((t.dynamicTyping = r), 33 (t.transform = !!q(t.transform) && t.transform), 34 t.worker && b.WORKERS_SUPPORTED) 35 ) { 36 var i = (function () { 37 if (!b.WORKERS_SUPPORTED) return !1; 38 var e = 39 ((r = f.URL || f.webkitURL || null), 40 (i = s.toString()), 41 b.BLOB_URL || 42 (b.BLOB_URL = r.createObjectURL( 43 new Blob(["(", i, ")();"], { 44 type: "text/javascript", 45 }) 46 ))), 47 t = new f.Worker(e); 48 var r, i; 49 return (t.onmessage = _), (t.id = h++), (a[t.id] = t); 50 })(); 51 return ( 52 (i.userStep = t.step), 53 (i.userChunk = t.chunk), 54 (i.userComplete = t.complete), 55 (i.userError = t.error), 56 (t.step = q(t.step)), 57 (t.chunk = q(t.chunk)), 58 (t.complete = q(t.complete)), 59 (t.error = q(t.error)), 60 delete t.worker, 61 void i.postMessage({ 62 input: e, 63 config: t, 64 workerId: i.id, 65 }) 66 ); 67 } 68 var n = null; 69 b.NODE_STREAM_INPUT, 70 "string" == typeof e 71 ? (n = t.download ? new l(t) : new p(t)) 72 : !0 === e.readable && q(e.read) && q(e.on) 73 ? (n = new m(t)) 74 : ((f.File && e instanceof File) || 75 e instanceof Object) && 76 (n = new c(t)); 77 return n.stream(e); 78 }, 79 unparse: function (e, t) { 80 var i = !1, 81 _ = !0, 82 g = ",", 83 v = "\r\n", 84 n = '"', 85 s = n + n, 86 r = !1, 87 a = null; 88 !(function () { 89 if ("object" != typeof t) return; 90 "string" != typeof t.delimiter || 91 b.BAD_DELIMITERS.filter(function (e) { 92 return -1 !== t.delimiter.indexOf(e); 93 }).length || 94 (g = t.delimiter); 95 ("boolean" == typeof t.quotes || Array.isArray(t.quotes)) && 96 (i = t.quotes); 97 ("boolean" != typeof t.skipEmptyLines && 98 "string" != typeof t.skipEmptyLines) || 99 (r = t.skipEmptyLines); 100 "string" == typeof t.newline && (v = t.newline); 101 "string" == typeof t.quoteChar && (n = t.quoteChar); 102 "boolean" == typeof t.header && (_ = t.header); 103 if (Array.isArray(t.columns)) { 104 if (0 === t.columns.length) 105 throw new Error("Option columns is empty"); 106 a = t.columns; 107 } 108 void 0 !== t.escapeChar && (s = t.escapeChar + n); 109 })(); 110 var o = new RegExp(U(n), "g"); 111 "string" == typeof e && (e = JSON.parse(e)); 112 if (Array.isArray(e)) { 113 if (!e.length || Array.isArray(e[0])) return u(null, e, r); 114 if ("object" == typeof e[0]) return u(a || h(e[0]), e, r); 115 } else if ("object" == typeof e) 116 return ( 117 "string" == typeof e.data && 118 (e.data = JSON.parse(e.data)), 119 Array.isArray(e.data) && 120 (e.fields || (e.fields = e.meta && e.meta.fields), 121 e.fields || 122 (e.fields = Array.isArray(e.data[0]) 123 ? e.fields 124 : h(e.data[0])), 125 Array.isArray(e.data[0]) || 126 "object" == typeof e.data[0] || 127 (e.data = [e.data])), 128 u(e.fields || [], e.data || [], r) 129 ); 130 throw new Error("Unable to serialize unrecognized input"); 131 function h(e) { 132 if ("object" != typeof e) return []; 133 var t = []; 134 for (var r in e) t.push(r); 135 return t; 136 } 137 function u(e, t, r) { 138 var i = ""; 139 "string" == typeof e && (e = JSON.parse(e)), 140 "string" == typeof t && (t = JSON.parse(t)); 141 var n = Array.isArray(e) && 0 < e.length, 142 s = !Array.isArray(t[0]); 143 if (n && _) { 144 for (var a = 0; a < e.length; a++) 145 0 < a && (i += g), (i += y(e[a], a)); 146 0 < t.length && (i += v); 147 } 148 for (var o = 0; o < t.length; o++) { 149 var h = n ? e.length : t[o].length, 150 u = !1, 151 f = n 152 ? 0 === Object.keys(t[o]).length 153 : 0 === t[o].length; 154 if ( 155 (r && 156 !n && 157 (u = 158 "greedy" === r 159 ? "" === t[o].join("").trim() 160 : 1 === t[o].length && 161 0 === t[o][0].length), 162 "greedy" === r && n) 163 ) { 164 for (var d = [], l = 0; l < h; l++) { 165 var c = s ? e[l] : l; 166 d.push(t[o][c]); 167 } 168 u = "" === d.join("").trim(); 169 } 170 if (!u) { 171 for (var p = 0; p < h; p++) { 172 0 < p && !f && (i += g); 173 var m = n && s ? e[p] : p; 174 i += y(t[o][m], p); 175 } 176 o < t.length - 1 && 177 (!r || (0 < h && !f)) && 178 (i += v); 179 } 180 } 181 return i; 182 } 183 function y(e, t) { 184 if (null == e) return ""; 185 if (e.constructor === Date) 186 return JSON.stringify(e).slice(1, 25); 187 e = e.toString().replace(o, s); 188 var r = 189 ("boolean" == typeof i && i) || 190 (Array.isArray(i) && i[t]) || 191 (function (e, t) { 192 for (var r = 0; r < t.length; r++) 193 if (-1 < e.indexOf(t[r])) return !0; 194 return !1; 195 })(e, b.BAD_DELIMITERS) || 196 -1 < e.indexOf(g) || 197 " " === e.charAt(0) || 198 " " === e.charAt(e.length - 1); 199 return r ? n + e + n : e; 200 } 201 }, 202 }; 203 if ( 204 ((b.RECORD_SEP = String.fromCharCode(30)), 205 (b.UNIT_SEP = String.fromCharCode(31)), 206 (b.BYTE_ORDER_MARK = "\ufeff"), 207 (b.BAD_DELIMITERS = ["\r", "\n", '"', b.BYTE_ORDER_MARK]), 208 (b.WORKERS_SUPPORTED = !n && !!f.Worker), 209 (b.NODE_STREAM_INPUT = 1), 210 (b.LocalChunkSize = 10485760), 211 (b.RemoteChunkSize = 5242880), 212 (b.DefaultDelimiter = ","), 213 (b.Parser = E), 214 (b.ParserHandle = r), 215 (b.NetworkStreamer = l), 216 (b.FileStreamer = c), 217 (b.StringStreamer = p), 218 (b.ReadableStreamStreamer = m), 219 f.jQuery) 220 ) { 221 var d = f.jQuery; 222 d.fn.parse = function (o) { 223 var r = o.config || {}, 224 h = []; 225 return ( 226 this.each(function (e) { 227 if ( 228 !( 229 "INPUT" === d(this).prop("tagName").toUpperCase() && 230 "file" === d(this).attr("type").toLowerCase() && 231 f.FileReader 232 ) || 233 !this.files || 234 0 === this.files.length 235 ) 236 return !0; 237 for (var t = 0; t < this.files.length; t++) 238 h.push({ 239 file: this.files[t], 240 inputElem: this, 241 instanceConfig: d.extend({}, r), 242 }); 243 }), 244 e(), 245 this 246 ); 247 function e() { 248 if (0 !== h.length) { 249 var e, 250 t, 251 r, 252 i, 253 n = h[0]; 254 if (q(o.before)) { 255 var s = o.before(n.file, n.inputElem); 256 if ("object" == typeof s) { 257 if ("abort" === s.action) 258 return ( 259 (e = "AbortError"), 260 (t = n.file), 261 (r = n.inputElem), 262 (i = s.reason), 263 void ( 264 q(o.error) && 265 o.error({ name: e }, t, r, i) 266 ) 267 ); 268 if ("skip" === s.action) return void u(); 269 "object" == typeof s.config && 270 (n.instanceConfig = d.extend( 271 n.instanceConfig, 272 s.config 273 )); 274 } else if ("skip" === s) return void u(); 275 } 276 var a = n.instanceConfig.complete; 277 (n.instanceConfig.complete = function (e) { 278 q(a) && a(e, n.file, n.inputElem), u(); 279 }), 280 b.parse(n.file, n.instanceConfig); 281 } else q(o.complete) && o.complete(); 282 } 283 function u() { 284 h.splice(0, 1), e(); 285 } 286 }; 287 } 288 function u(e) { 289 (this._handle = null),
290 (this._finished = !1), 291 (this._completed = !1), 292 (this._halted = !1), 293 (this._input = null), 294 (this._baseIndex = 0), 295 (this._partialLine = ""), 296 (this._rowCount = 0), 297 (this._start = 0), 298 (this._nextChunk = null), 299 (this.isFirstChunk = !0), 300 (this._completeResults = { data: [], errors: [], meta: {} }), 301 function (e) { 302 var t = w(e); 303 (t.chunkSize = parseInt(t.chunkSize)), 304 e.step || e.chunk || (t.chunkSize = null); 305 (this._handle = new r(t)), 306 ((this._handle.streamer = this)._config = t); 307 }.call(this, e), 308 (this.parseChunk = function (e, t) { 309 if (this.isFirstChunk && q(this._config.beforeFirstChunk)) { 310 var r = this._config.beforeFirstChunk(e); 311 void 0 !== r && (e = r); 312 } 313 (this.isFirstChunk = !1), (this._halted = !1); 314 var i = this._partialLine + e; 315 this._partialLine = ""; 316 var n = this._handle.parse(i, this._baseIndex, !this._finished); 317 if (!this._handle.paused() && !this._handle.aborted()) { 318 var s = n.meta.cursor; 319 this._finished || 320 ((this._partialLine = i.substring(s - this._baseIndex)), 321 (this._baseIndex = s)), 322 n && n.data && (this._rowCount += n.data.length); 323 var a = 324 this._finished || 325 (this._config.preview && 326 this._rowCount >= this._config.preview); 327 if (o) 328 f.postMessage({ 329 results: n, 330 workerId: b.WORKER_ID, 331 finished: a, 332 }); 333 else if (q(this._config.chunk) && !t) { 334 if ( 335 (this._config.chunk(n, this._handle), 336 this._handle.paused() || this._handle.aborted()) 337 ) 338 return void (this._halted = !0); 339 (n = void 0), (this._completeResults = void 0); 340 } 341 return ( 342 this._config.step || 343 this._config.chunk || 344 ((this._completeResults.data = 345 this._completeResults.data.concat(n.data)), 346 (this._completeResults.errors = 347 this._completeResults.errors.concat(n.errors)), 348 (this._completeResults.meta = n.meta)), 349 this._completed || 350 !a || 351 !q(this._config.complete) || 352 (n && n.meta.aborted) || 353 (this._config.complete( 354 this._completeResults, 355 this._input 356 ), 357 (this._completed = !0)), 358 a || (n && n.meta.paused) || this._nextChunk(), 359 n 360 ); 361 } 362 this._halted = !0; 363 }), 364 (this._sendError = function (e) { 365 q(this._config.error) 366 ? this._config.error(e) 367 : o && 368 this._config.error && 369 f.postMessage({ 370 workerId: b.WORKER_ID, 371 error: e, 372 finished: !1, 373 }); 374 }); 375 } 376 function l(e) { 377 var i; 378 (e = e || {}).chunkSize || (e.chunkSize = b.RemoteChunkSize), 379 u.call(this, e), 380 (this._nextChunk = n 381 ? function () { 382 this._readChunk(), this._chunkLoaded(); 383 } 384 : function () { 385 this._readChunk(); 386 }), 387 (this.stream = function (e) { 388 (this._input = e), this._nextChunk(); 389 }), 390 (this._readChunk = function () { 391 if (this._finished) this._chunkLoaded(); 392 else { 393 if ( 394 ((i = new XMLHttpRequest()), 395 this._config.withCredentials && 396 (i.withCredentials = this._config.withCredentials), 397 n || 398 ((i.onload = y(this._chunkLoaded, this)),
399 (i.onerror = y(this._chunkError, this))), 400 i.open("GET", this._input, !n), 401 this._config.downloadRequestHeaders) 402 ) { 403 var e = this._config.downloadRequestHeaders; 404 for (var t in e) i.setRequestHeader(t, e[t]); 405 } 406 if (this._config.chunkSize) { 407 var r = this._start + this._config.chunkSize - 1; 408 i.setRequestHeader( 409 "Range", 410 "bytes=" + this._start + "-" + r 411 ); 412 } 413 try { 414 i.send(); 415 } catch (e) { 416 this._chunkError(e.message); 417 } 418 n && 0 === i.status 419 ? this._chunkError() 420 : (this._start += this._config.chunkSize); 421 } 422 }), 423 (this._chunkLoaded = function () { 424 4 === i.readyState && 425 (i.status < 200 || 400 <= i.status 426 ? this._chunkError() 427 : ((this._finished = 428 !this._config.chunkSize || 429 this._start > 430 (function (e) { 431 var t = 432 e.getResponseHeader("Content-Range"); 433 if (null === t) return -1; 434 return parseInt( 435 t.substr(t.lastIndexOf("/") + 1) 436 ); 437 })(i)), 438 this.parseChunk(i.responseText))); 439 }), 440 (this._chunkError = function (e) { 441 var t = i.statusText || e; 442 this._sendError(new Error(t)); 443 }); 444 } 445 function c(e) { 446 var i, n; 447 (e = e || {}).chunkSize || (e.chunkSize = b.LocalChunkSize), 448 u.call(this, e); 449 var s = "undefined" != typeof FileReader; 450 (this.stream = function (e) { 451 (this._input = e), 452 (n = e.slice || e.webkitSlice || e.mozSlice), 453 s 454 ? (((i = new FileReader()).onload = y( 455 this._chunkLoaded, 456 this 457 )), 458 (i.onerror = y(this._chunkError, this))) 459 : (i = new FileReaderSync()), 460 this._nextChunk(); 461 }), 462 (this._nextChunk = function () { 463 this._finished || 464 (this._config.preview && 465 !(this._rowCount < this._config.preview)) || 466 this._readChunk(); 467 }), 468 (this._readChunk = function () { 469 var e = this._input; 470 if (this._config.chunkSize) { 471 var t = Math.min( 472 this._start + this._config.chunkSize, 473 this._input.size 474 ); 475 e = n.call(e, this._start, t); 476 } 477 var r = i.readAsText(e, this._config.encoding); 478 s || this._chunkLoaded({ target: { result: r } }); 479 }), 480 (this._chunkLoaded = function (e) { 481 (this._start += this._config.chunkSize), 482 (this._finished = 483 !this._config.chunkSize || 484 this._start >= this._input.size), 485 this.parseChunk(e.target.result); 486 }), 487 (this._chunkError = function () { 488 this._sendError(i.error); 489 }); 490 } 491 function p(e) { 492 var r; 493 u.call(this, (e = e || {})), 494 (this.stream = function (e) { 495 return (r = e), this._nextChunk(); 496 }), 497 (this._nextChunk = function () { 498 if (!this._finished) { 499 var e = this._config.chunkSize, 500 t = e ? r.substr(0, e) : r; 501 return ( 502 (r = e ? r.substr(e) : ""), 503 (this._finished = !r), 504 this.parseChunk(t) 505 ); 506 } 507 }); 508 } 509 function m(e) { 510 u.call(this, (e = e || {})); 511 var t = [], 512 r = !0, 513 i = !1; 514 (this.pause = function () { 515 u.prototype.pause.apply(this, arguments), this._input.pause(); 516 }), 517 (this.resume = function () { 518 u.prototype.resume.apply(this, arguments), this._input.resume(); 519 }), 520 (this.stream = function (e) { 521 (this._input = e), 522 this._input.on("data", this._streamData), 523 this._input.on("end", this._streamEnd), 524 this._input.on("error", this._streamError); 525 }), 526 (this._checkIsFinished = function () { 527 i && 1 === t.length && (this._finished = !0); 528 }), 529 (this._nextChunk = function () { 530 this._checkIsFinished(), 531 t.length ? this.parseChunk(t.shift()) : (r = !0); 532 }), 533 (this._streamData = y(function (e) { 534 try { 535 t.push( 536 "string" == typeof e 537 ? e 538 : e.toString(this._config.encoding) 539 ), 540 r && 541 ((r = !1), 542 this._checkIsFinished(), 543 this.parseChunk(t.shift())); 544 } catch (e) { 545 this._streamError(e); 546 } 547 }, this)), 548 (this._streamError = y(function (e) { 549 this._streamCleanUp(), this._sendError(e); 550 }, this)), 551 (this._streamEnd = y(function () { 552 this._streamCleanUp(), (i = !0), this._streamData(""); 553 }, this)), 554 (this._streamCleanUp = y(function () { 555 this._input.removeListener("data", this._streamData), 556 this._input.removeListener("end", this._streamEnd), 557 this._input.removeListener("error", this._streamError); 558 }, this)); 559 } 560 function r(g) { 561 var a, 562 o, 563 h, 564 i = Math.pow(2, 53), 565 n = -i, 566 s = /^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i, 567 u = 568 /(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/, 569 t = this, 570 r = 0, 571 f = 0, 572 d = !1, 573 e = !1, 574 l = [], 575 c = { data: [], errors: [], meta: {} }; 576 if (q(g.step)) { 577 var p = g.step; 578 g.step = function (e) { 579 if (((c = e), _())) m(); 580 else { 581 if ((m(), 0 === c.data.length)) return; 582 (r += e.data.length), 583 g.preview && r > g.preview ? o.abort() : p(c, t); 584 } 585 }; 586 } 587 function v(e) { 588 return "greedy" === g.skipEmptyLines 589 ? "" === e.join("").trim() 590 : 1 === e.length && 0 === e[0].length; 591 } 592 function m() { 593 if ( 594 (c && 595 h && 596 (k( 597 "Delimiter", 598 "UndetectableDelimiter", 599 "Unable to auto-detect delimiting character; defaulted to '" + 600 b.DefaultDelimiter + 601 "'" 602 ), 603 (h = !1)), 604 g.skipEmptyLines) 605 ) 606 for (var e = 0; e < c.data.length; e++) 607 v(c.data[e]) && c.data.splice(e--, 1); 608 return ( 609 _() && 610 (function () { 611 if (!c) return; 612 function e(e) { 613 q(g.transformHeader) && (e = g.transformHeader(e)), 614 l.push(e); 615 } 616 if (Array.isArray(c.data[0])) { 617 for (var t = 0; _() && t < c.data.length; t++) 618 c.data[t].forEach(e); 619 c.data.splice(0, 1); 620 } else c.data.forEach(e); 621 })(), 622 (function () { 623 if (!c || (!g.header && !g.dynamicTyping && !g.transform)) 624 return c; 625 function e(e, t) { 626 var r, 627 i = g.header ? {} : []; 628 for (r = 0; r < e.length; r++) { 629 var n = r, 630 s = e[r]; 631 g.header && 632 (n = r >= l.length ? "__parsed_extra" : l[r]), 633 g.transform && (s = g.transform(s, n)), 634 (s = y(n, s)), 635 "__parsed_extra" === n 636 ? ((i[n] = i[n] || []), i[n].push(s)) 637 : (i[n] = s); 638 } 639 return ( 640 g.header && 641 (r > l.length 642 ? k( 643 "FieldMismatch", 644 "TooManyFields", 645 "Too many fields: expected " + 646 l.length + 647 " fields but parsed " + 648 r, 649 f + t 650 ) 651 : r < l.length && 652 k( 653 "FieldMismatch", 654 "TooFewFields", 655 "Too few fields: expected " + 656 l.length + 657 " fields but parsed " + 658 r, 659 f + t 660 )), 661 i 662 ); 663 } 664 var t = 1; 665 !c.data[0] || Array.isArray(c.data[0]) 666 ? ((c.data = c.data.map(e)), (t = c.data.length)) 667 : (c.data = e(c.data, 0)); 668 g.header && c.meta && (c.meta.fields = l); 669 return (f += t), c; 670 })() 671 ); 672 } 673 function _() { 674 return g.header && 0 === l.length; 675 } 676 function y(e, t) { 677 return ( 678 (r = e), 679 g.dynamicTypingFunction && 680 void 0 === g.dynamicTyping[r] && 681 (g.dynamicTyping[r] = g.dynamicTypingFunction(r)), 682 !0 === (g.dynamicTyping[r] || g.dynamicTyping) 683 ? "true" === t || 684 "TRUE" === t || 685 ("false" !== t && 686 "FALSE" !== t && 687 ((function (e) { 688 if (s.test(e)) { 689 var t = parseFloat(e); 690 if (n < t && t < i) return !0; 691 } 692 return !1; 693 })(t) 694 ? parseFloat(t) 695 : u.test(t) 696 ? new Date(t) 697 : "" === t 698 ? null 699 : t)) 700 : t 701 ); 702 var r; 703 } 704 function k(e, t, r, i) { 705 c.errors.push({ type: e, code: t, message: r, row: i }); 706 } 707 (this.parse = function (e, t, r) { 708 var i = g.quoteChar || '"'; 709 if ( 710 (g.newline || 711 (g.newline = (function (e, t) { 712 e = e.substr(0, 1048576); 713 var r = new RegExp(U(t) + "([^]*?)" + U(t), "gm"), 714 i = (e = e.replace(r, "")).split("\r"), 715 n = e.split("\n"), 716 s = 1 < n.length && n[0].length < i[0].length; 717 if (1 === i.length || s) return "\n"; 718 for (var a = 0, o = 0; o < i.length; o++) 719 "\n" === i[o][0] && a++; 720 return a >= i.length / 2 ? "\r\n" : "\r"; 721 })(e, i)), 722 (h = !1), 723 g.delimiter) 724 ) 725 q(g.delimiter) && 726 ((g.delimiter = g.delimiter(e)), 727 (c.meta.delimiter = g.delimiter)); 728 else { 729 var n = (function (e, t, r, i, n) { 730 var s, a, o, h; 731 n = n || [",", "\t", "|", ";", b.RECORD_SEP, b.UNIT_SEP]; 732 for (var u = 0; u < n.length; u++) { 733 var f = n[u], 734 d = 0, 735 l = 0, 736 c = 0; 737 o = void 0; 738 for ( 739 var p = new E({ 740 comments: i, 741 delimiter: f, 742 newline: t, 743 preview: 10, 744 }).parse(e), 745 m = 0; 746 m < p.data.length; 747 m++ 748 ) 749 if (r && v(p.data[m])) c++; 750 else { 751 var _ = p.data[m].length; 752 (l += _), 753 void 0 !== o 754 ? 0 < _ && 755 ((d += Math.abs(_ - o)), (o = _)) 756 : (o = _); 757 } 758 0 < p.data.length && (l /= p.data.length - c), 759 (void 0 === a || d <= a) && 760 (void 0 === h || h < l) && 761 1.99 < l && 762 ((a = d), (s = f), (h = l)); 763 } 764 return { 765 successful: !!(g.delimiter = s), 766 bestDelimiter: s, 767 }; 768 })( 769 e, 770 g.newline, 771 g.skipEmptyLines, 772 g.comments, 773 g.delimitersToGuess 774 ); 775 n.successful 776 ? (g.delimiter = n.bestDelimiter) 777 : ((h = !0), (g.delimiter = b.DefaultDelimiter)), 778 (c.meta.delimiter = g.delimiter); 779 } 780 var s = w(g); 781 return ( 782 g.preview && g.header && s.preview++, 783 (a = e), 784 (o = new E(s)), 785 (c = o.parse(a, t, r)), 786 m(), 787 d ? { meta: { paused: !0 } } : c || { meta: { paused: !1 } } 788 ); 789 }), 790 (this.paused = function () { 791 return d; 792 }), 793 (this.pause = function () { 794 (d = !0), o.abort(), (a = a.substr(o.g
794etCharIndex())); 795 }), 796 (this.resume = function () { 797 t.streamer._halted 798 ? ((d = !1), t.streamer.parseChunk(a, !0)) 799 : setTimeout(this.resume, 3); 800 }), 801 (this.aborted = function () { 802 return e; 803 }), 804 (this.abort = function () { 805 (e = !0), 806 o.abort(), 807 (c.meta.aborted = !0), 808 q(g.complete) && g.complete(c), 809 (a = ""); 810 }); 811 } 812 function U(e) { 813 return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 814 } 815 function E(e) { 816 var O, 817 D = (e = e || {}).delimiter, 818 I = e.newline, 819 T = e.comments, 820 A = e.step, 821 L = e.preview, 822 F = e.fastMode, 823 z = (O = void 0 === e.quoteChar ? '"' : e.quoteChar); 824 if ( 825 (void 0 !== e.escapeChar && (z = e.escapeChar), 826 ("string" != typeof D || -1 < b.BAD_DELIMITERS.indexOf(D)) && 827 (D = ","), 828 T === D) 829 ) 830 throw new Error("Comment character same as delimiter"); 831 !0 === T 832 ? (T = "#") 833 : ("string" != typeof T || -1 < b.BAD_DELIMITERS.indexOf(T)) && 834 (T = !1), 835 "\n" !== I && "\r" !== I && "\r\n" !== I && (I = "\n"); 836 var M = 0, 837 j = !1; 838 (this.parse = function (a, r, t) { 839 if ("string" != typeof a) throw new Error("Input must be a string"); 840 var i = a.length, 841 e = D.length, 842 n = I.length, 843 s = T.length, 844 o = q(A), 845 h = [], 846 u = [], 847 f = [], 848 d = (M = 0); 849 if (!a) return R(); 850 if (F || (!1 !== F && -1 === a.indexOf(O))) { 851 for (var l = a.split(I), c = 0; c < l.length; c++) { 852 if (((f = l[c]), (M += f.length), c !== l.length - 1)) 853 M += I.length; 854 else if (t) return R(); 855 if (!T || f.substr(0, s) !== T) { 856 if (o) { 857 if (((h = []), b(f.split(D)), S(), j)) return R(); 858 } else b(f.split(D)); 859 if (L && L <= c) return (h = h.slice(0, L)), R(!0); 860 } 861 } 862 return R(); 863 } 864 for ( 865 var p = a.indexOf(D, M), 866 m = a.indexOf(I, M), 867 _ = new RegExp(U(z) + U(O), "g"), 868 g = a.indexOf(O, M); 869 ; 870 871 ) 872 if (a[M] !== O) 873 if (T && 0 === f.length && a.substr(M, s) === T) { 874 if (-1 === m) return R(); 875 (M = m + n), 876 (m = a.indexOf(I, M)), 877 (p = a.indexOf(D, M)); 878 } else { 879 if (-1 !== p && (p < m || -1 === m)) { 880 if (-1 === g) { 881 f.push(a.substring(M, p)), 882 (M = p + e), 883 (p = a.indexOf(D, M)); 884 continue; 885 } 886 var v = x(p, g, m); 887 if (v && void 0 !== v.nextDelim) { 888 (p = v.nextDelim), 889 (g = v.quoteSearch), 890 f.push(a.substring(M, p)), 891 (M = p + e), 892 (p = a.indexOf(D, M)); 893 continue; 894 } 895 } 896 if (-1 === m) break; 897 if ( 898 (f.push(a.substring(M, m)), C(m + n), o && (S(), j)) 899 ) 900 return R(); 901 if (L && h.length >= L) return R(!0); 902 } 903 else 904 for (g = M, M++; ; ) { 905 if (-1 === (g = a.indexOf(O, g + 1))) 906 return ( 907 t || 908 u.push({ 909 type: "Quotes", 910 code: "MissingQuotes", 911 message: "Quoted field unterminated", 912 row: h.length, 913 index: M, 914 }), 915 w() 916 ); 917 if (g === i - 1) 918 return w(a.substring(M, g).replace(_, O)); 919 if (O !== z || a[g + 1] !== z) { 920 if (O === z || 0 === g || a[g - 1] !== z) { 921 var y = E(-1 === m ? p : Math.min(p, m)); 922 if (a[g + 1 + y] === D) { 923 f.push(a.substring(M, g).replace(_, O)), 924 a[(M = g + 1 + y + e)] !== O && 925 (g = a.indexOf(O, M)), 926 (p = a.indexOf(D, M)), 927 (m = a.indexOf(I, M)); 928 break; 929 } 930 var k = E(m); 931 if (a.substr(g + 1 + k, n) === I) { 932 if ( 933 (f.push( 934 a.substring(M, g).replace(_, O) 935 ), 936 C(g + 1 + k + n), 937 (p = a.indexOf(D, M)), 938 (g = a.indexOf(O, M)), 939 o && (S(), j)) 940 ) 941 return R(); 942 if (L && h.length >= L) return R(!0); 943 break; 944 } 945 u.push({ 946 type: "Quotes", 947 code: "InvalidQuotes", 948 message: 949 "Trailing quote on quoted field is malformed", 950 row: h.length, 951 index: M, 952 }), 953 g++; 954 } 955 } else g++; 956 } 957 return w(); 958 function b(e) { 959 h.push(e), (d = M); 960 } 961 function E(e) { 962 var t = 0; 963 if (-1 !== e) { 964 var r = a.substring(g + 1, e); 965 r && "" === r.trim() && (t = r.length); 966 } 967 return t; 968 } 969 function w(e) { 970 return ( 971 t || 972 (void 0 === e && (e = a.substr(M)), 973 f.push(e), 974 (M = i), 975 b(f), 976 o && S()), 977 R() 978 ); 979 } 980 function C(e) { 981 (M = e), b(f), (f = []), (m = a.indexOf(I, M)); 982 } 983 function R(e, t) { 984 return { 985 data: t || !1 ? h[0] : h, 986 errors: u, 987 meta: { 988 delimiter: D, 989 linebreak: I, 990 aborted: j, 991 truncated: !!e, 992 cursor: d + (r || 0), 993 }, 994 }; 995 } 996 function S() { 997 A(R(void 0, !0)), (h = []), (u = []); 998 } 999 function x(e, t, r) { 1000 var i = { nextDelim: void 0, quoteSearch: void 0 }, 1001 n = a.indexOf(O, t + 1); 1002 if (t < e && e < n && (n < r || -1 === r)) { 1003 var s = a.indexOf(D, n); 1004 if (-1 === s) return i; 1005 n < s && (n = a.indexOf(O, n + 1)), (i = x(s, n, r)); 1006 } else i = { nextDelim: e, quoteSearch: t }; 1007 return i; 1008 } 1009 }), 1010 (this.abort = function () { 1011 j = !0; 1012 }), 1013 (this.getCharIndex = function () { 1014 return M; 1015 }); 1016 } 1017 function _(e) { 1018 var t = e.data, 1019 r = a[t.workerId], 1020 i = !1; 1021 if (t.error) r.userError(t.error, t.file); 1022 else if (t.results && t.results.data) { 1023 var n = { 1024 abort: function () { 1025 (i = !0), 1026 g(t.workerId, { 1027 data: [], 1028 errors: [], 1029 meta: { aborted: !0 }, 1030 }); 1031 }, 1032 pause: v, 1033 resume: v, 1034 }; 1035 if (q(r.userStep)) { 1036 for ( 1037 var s = 0; 1038 s < t.results.data.length && 1039 (r.userStep( 1040 { 1041 data: t.results.data[s], 1042 errors: t.results.errors, 1043 meta: t.results.meta, 1044 }, 1045 n 1046 ), 1047 !i); 1048 s++ 1049 ); 1050 delete t.results; 1051 } else 1052 q(r.userChunk) && 1053 (r.userChunk(t.results, n, t.file), delete t.results); 1054 } 1055 t.finished && !i && g(t.workerId, t.results); 1056 } 1057 function g(e, t) { 1058 var r = a[e]; 1059 q(r.userComplete) && r.userComplete(t), r.terminate(), delete a[e]; 1060 } 1061 function v() { 1062 throw new Error("Not implemented."); 1063 } 1064 function w(e) { 1065 if ("object" != typeof e || null === e) return e; 1066 var t = Array.isArray(e) ? [] : {}; 1067 for (var r in e) t[r] = w(e[r]); 1068 return t; 1069 } 1070 function y(e, t) { 1071 return function () { 1072 e.apply(t, arguments); 1073 }; 1074 } 1075 function q(e) { 1076 return "function" == typeof e; 1077 } 1078 return ( 1079 o && 1080 (f.onmessage = function (e) { 1081 var t = e.data; 1082 void 0 === b.WORKER_ID && t && (b.WORKER_ID = t.workerId); 1083 if ("string" == typeof t.input) 1084 f.postMessage({ 1085 workerId: b.WORKER_ID, 1086 results: b.parse(t.input, t.config), 1087 finished: !0, 1088 }); 1089 else if ( 1090 (f.File && t.input instanceof File) || 1091 t.input instanceof Object 1092 ) { 1093 var r = b.parse(t.input, t.config); 1094 r && 1095 f.postMessage({ 1096 workerId: b.WORKER_ID, 1097 results: r, 1098 finished: !0, 1099 }); 1100 } 1101 }), 1102 ((l.prototype = Object.create(u.prototype)).constructor = l), 1103 ((c.prototype = Object.create(u.prototype)).constructor = c), 1104 ((p.prototype = Object.create(p.prototype)).constructor = p), 1105 ((m.prototype = Object.create(u.prototype)).constructor = m), 1106 b 1107 ); 1108});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.