react-papaparse
Version:
The fastest in-browser CSV (or delimited text) parser for React. It is full of useful features such as CSVReader, CSVDownloader, readString, jsonToCSV, readRemoteFile, ... etc.
2 lines (1 loc) • 14.6 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("papaparse"),t=require("react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=r(e),o=r(t),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function u(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{c(n.next(e))}catch(e){a(e)}}function u(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,u)}c((n=n.apply(e,t||[])).next())}))}function c(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}function l(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;function s(e){return"function"==typeof e.isPropagationStopped?e.isPropagationStopped():void 0!==e.cancelBubble&&e.cancelBubble}function f(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];return e.some((function(e){return!s(t)&&e&&e.apply(void 0,l([t],r,!1)),s(t)}))}}function d(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,(function(e){return"Files"===e||"application/x-moz-file"===e})):!!e.target&&!!e.target.files}var p=function(e){e=Array.isArray(e)&&1===e.length?e[0]:e;var t=Array.isArray(e)?"one of ".concat(e.join(", ")):e;return{code:"file-invalid-type",message:"File type must be ".concat(t)}};function v(e,t){var r="application/x-moz-file"===e.type||function(e,t){if(e&&t){var r=Array.isArray(t)?t:t.split(","),n=e.name||"",o=(e.type||"").toLowerCase(),a=o.replace(/\/.*$/,"");return r.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?n.toLowerCase().endsWith(t):t.endsWith("/*")?a===t.replace(/\/.*$/,""):o===t}))}return!0}(e,t);return[r,r?null:p(t)]}function g(e){return null!=e}var y=function(e){return{code:"file-too-large",message:"File is larger than ".concat(e," bytes")}},m=function(e){return{code:"file-too-small",message:"File is smaller than ".concat(e," bytes")}},h={code:"too-many-files",message:"Too many files"};function b(e){e.preventDefault()}function D(e,t){return n.default.parse(e,t)}function w(e,t){n.default.parse(e,Object.assign({},{download:!0},t))}function E(e,t){return void 0===t&&(t={}),n.default.unparse(e,t)}var F={Link:"link",Button:"button"};var x={progressBar:{borderRadius:3,boxShadow:"inset 0 1px 3px rgba(0, 0, 0, .2)",bottom:14,width:"100%"},button:{position:"inherit",width:"100%"},fill:{backgroundColor:"#659cef",borderRadius:3,height:10,transition:"width 500ms ease-in-out"}};function C(e){var r=e.style,n=e.className,a=e.display,i=t.useState(0),u=i[0],c=i[1];return t.useEffect((function(){c(e.percentage)}),[e.percentage]),o.default.createElement("span",{style:Object.assign({},x.progressBar,x.fill,r,{width:"".concat(u,"%"),display:a}),className:n})}function P(e){var t=e.color,r=e.width,n=void 0===r?23:r,a=e.height,i=void 0===a?23:a;return o.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:n,height:i,viewBox:"0 0 512 512"},o.default.createElement("path",{fill:t,d:"M504.1 256C504.1 119 393 7.9 256 7.9S7.9 119 7.9 256 119 504.1 256 504.1 504.1 393 504.1 256z"}),o.default.createElement("path",{fill:"#FFF",d:"M285 256l72.5-84.2c7.9-9.2 6.9-23-2.3-31-9.2-7.9-23-6.9-30.9 2.3L256 222.4l-68.2-79.2c-7.9-9.2-21.8-10.2-31-2.3-9.2 7.9-10.2 21.8-2.3 31L227 256l-72.5 84.2c-7.9 9.2-6.9 23 2.3 31 4.1 3.6 9.2 5.3 14.3 5.3 6.2 0 12.3-2.6 16.6-7.6l68.2-79.2 68.2 79.2c4.3 5 10.5 7.6 16.6 7.6 5.1 0 10.2-1.7 14.3-5.3 9.2-7.9 10.2-21.8 2.3-31L285 256z"}))}var k="text/csv, .csv, application/vnd.ms-excel";function S(){var e=function(e){var r=e.children,u=e.accept,c=void 0===u?k:u,p=e.config,D=void 0===p?{}:p,w=e.minSize,E=void 0===w?0:w,F=e.maxSize,x=void 0===F?1/0:F,S=e.maxFiles,R=void 0===S?1:S,A=e.disabled,L=void 0!==A&&A,T=e.noClick,j=void 0!==T&&T,z=e.noDrag,M=void 0!==z&&z,I=e.noDragEventsBubbling,_=void 0!==I&&I,K=e.noKeyboard,N=void 0!==K&&K,U=e.multiple,V=void 0!==U&&U,q=e.required,W=void 0!==q&&q,G=e.preventDropOnDocument,$=void 0===G||G,H=e.onUploadAccepted,J=e.validator,Q=e.onUploadRejected,X=e.onDragEnter,Y=e.onDragOver,Z=e.onDragLeave,ee=t.useRef(null),te=t.useRef(null),re=t.useRef([]),ne=t.useReducer(O,B),oe=ne[0],ae=ne[1],ie=oe.acceptedFile,ue=oe.displayProgressBar,ce=oe.progressBarPercentage,le=oe.draggedFiles,se=oe.isFileDialogActive,fe=function(e){te.current&&te.current.contains(e.target)||(e.preventDefault(),re.current=[])};t.useEffect((function(){return $&&(document.addEventListener("dragover",b,!1),document.addEventListener("drop",fe,!1)),function(){$&&(document.removeEventListener("dragover",b),document.removeEventListener("drop",fe))}}),[te,$]);var de=function(e){return L?null:e},pe=function(e){return M?null:de(e)},ve=function(e){_&&e.stopPropagation()},ge=function(e){e.preventDefault(e),e.persist(),ve(e)},ye=function(e){ae({displayProgressBar:e,type:"setDisplayProgressBar"})},me=function(e){ae({progressBarPercentage:e,type:"setProgressBarPercentage"})},he=function(e){return o.default.createElement(C,a({display:ue,percentage:ce},e))},be=function(e){return o.default.createElement(P,a({},e))},De=t.useCallback((function(){ee.current&&oe.displayProgressBar&&(ae({type:"openDialog"}),ee.current.value=null,ee.current.click())}),[ae]),we=function(){se&&setTimeout((function(){ee.current&&(ee.current.files.length||ae({type:"closeDialog"}))}),300)};t.useEffect((function(){return window.addEventListener("focus",we,!1),function(){window.removeEventListener("focus",we,!1)}}),[ee,se]);var Ee=t.useCallback((function(){var e;j||(void 0===e&&(e=window.navigator.userAgent),function(e){return-1!==e.indexOf("MSIE")||-1!==e.indexOf("Trident/")}(e)||function(e){return-1!==e.indexOf("Edge/")}(e)?setTimeout(De,0):De())}),[ee,j]),Fe=t.useCallback((function(e){if(ge(e),me(0),re.current=[],d(e)){if(s(e)&&!_)return;var t=[],r=[],o=e.target.files||e.dataTransfer&&e.dataTransfer.files;if(Array.from(o).forEach((function(e){var n=v(e,c),o=n[0],a=n[1],i=function(e,t,r){if(g(e.size))if(g(t)&&g(r)){if(e.size>r)return[!1,y(r)];if(e.size<t)return[!1,m(t)]}else{if(g(t)&&e.size<t)return[!1,m(t)];if(g(r)&&e.size>r)return[!1,y(r)]}return[!0,null]}(e,E,x),u=i[0],l=i[1],s=J?J(e):null;if(o&&u&&!s)t.push(e);else{var f=[a,l];s&&(f=f.concat(s)),r.push({file:e,errors:f.filter((function(e){return e}))})}})),(!V&&t.length>1||V&&R>=1&&t.length>R)&&(t.forEach((function(e){r.push({file:e,errors:[h]})})),t.splice(0)),ae({acceptedFiles:t,fileRejections:r,type:"setFiles"}),ye("block"),r.length>0&&Q&&Q(r,e),t.length>0&&H){var a={},i=[],u=[],l=[],f=new window.FileReader,p=0;t.forEach((function(e){ae({acceptedFile:e,type:"setFile"}),a={complete:(null==D?void 0:D.complete)||(null==D?void 0:D.step)?D.complete:function(){H({data:i,errors:u,meta:l},e)},step:(null==D?void 0:D.step)?D.step:function(t){if(i.push(t.data),t.errors.length>0&&u.push(t.errors),t.length>0&&l.push(t[0].meta),D&&D.preview){if(p=Math.round(i.length/D.preview*100),i.length===D.preview)H({data:i,errors:u,meta:l},e)}else{var r=t.meta.cursor,n=Math.round(r/e.size*100);if(n===p)return;p=n}me(p)}},a=Object.assign({},D,a),f.onload=function(e){n.default.parse(e.target.result,a)},f.onloadend=function(){setTimeout((function(){ye("none")}),2e3)},f.readAsText(e,D.encoding||"utf-8")}))}}}),[V,c,E,x,R,J,H]),xe=t.useCallback((function(e){ve(e)}),[]),Ce=function(e){return N?null:de(e)},Pe=t.useCallback((function(e){if(ge(e),re.current=l(l([],re.current,!0),[e.target],!1),d(e)){if(s(e)&&!_)return;ae({draggedFiles:le,isDragActive:!0,type:"setDraggedFiles"}),X&&X(e)}}),[X,_]),ke=t.useCallback((function(e){ge(e);var t=d(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(e){}return t&&Y&&Y(e),!1}),[Y,_]),Se=t.useCallback((function(e){ge(e);var t=re.current.filter((function(e){return te.current&&te.current.contains(e)})),r=t.indexOf(e.target);-1!==r&&t.splice(r,1),re.current=t,t.length>0||(ae({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),d(e)&&Z&&Z(e))}),[te,Z,_]),Be=t.useCallback((function(e){te.current&&te.current.isEqualNode(e.target)&&("Space"!==e.key&&"Enter"!==e.key||(e.preventDefault(),De()))}),[te,ee]),Oe=t.useCallback((function(){ae({type:"focus"})}),[]),Re=t.useCallback((function(){ae({type:"blur"})}),[]),Ae=t.useMemo((function(){return function(e){void 0===e&&(e={});var t=e.onClick,r=void 0===t?function(){}:t,n=e.onDrop,o=void 0===n?function(){}:n,u=e.onDragOver,c=void 0===u?function(){}:u,l=e.onDragLeave,s=void 0===l?function(){}:l,d=e.onKeyDown,p=void 0===d?function(){}:d,v=e.onFocus,g=void 0===v?function(){}:v,y=e.onBlur,m=void 0===y?function(){}:y,h=e.onDragEnter,b=void 0===h?function(){}:h,D=i(e,["onClick","onDrop","onDragOver","onDragLeave","onKeyDown","onFocus","onBlur","onDragEnter"]);return a({onClick:de(f(r,Ee)),onDrop:pe(f(o,Fe)),onDragEnter:pe(f(b,Pe)),onDragOver:pe(f(c,ke)),onDragLeave:pe(f(s,Se)),onKeyDown:Ce(f(p,Be)),onFocus:Ce(f(g,Oe)),onBlur:Ce(f(m,Re))},D)}}),[te,Be,Oe,Re,Ee,Pe,ke,Se,Fe,N,M,L]),Le=t.useMemo((function(){return function(e){var t;void 0===e&&(e={});var r=e.refKey,n=void 0===r?"ref":r,o=e.onChange,u=void 0===o?function(){}:o,l=e.onClick,s=void 0===l?function(){}:l,d=i(e,["refKey","onChange","onClick"]),p=((t={accept:c,multiple:V,required:W,type:"file",style:{display:"none"},onChange:de(f(u,Fe)),onClick:de(f(s,xe)),autoComplete:"off",tabIndex:-1})[n]=ee,t);return a(a({},p),d)}}),[ee,c,Fe,L]),Te=t.useCallback((function(e){ee.current.value="",ae({type:"reset"}),e.stopPropagation()}),[]),je=t.useMemo((function(){return function(e){void 0===e&&(e={});var t=e.onClick,r=void 0===t?function(){}:t,n=i(e,["onClick"]);return a({onClick:de(f(r,Te))},n)}}),[Te]);return o.default.createElement(o.default.Fragment,null,o.default.createElement("input",a({},Le())),r({getRootProps:Ae,acceptedFile:ie,ProgressBar:he,getRemoveFileProps:je,Remove:be}))};return t.useMemo((function(){return e}),[])}var B={displayProgressBar:"none",progressBarPercentage:0,isDragActive:!1,isFileDialogActive:!1,isFocused:!1,draggedFiles:[],acceptedFiles:[],acceptedFile:null};function O(e,t){switch(t.type){case"openDialog":return a(a({},e),{isFileDialogActive:!0});case"closeDialog":return a(a({},e),{isFileDialogActive:!1});case"setFiles":return a(a({},e),{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"setFile":return a(a({},e),{acceptedFile:t.acceptedFile});case"setDisplayProgressBar":return a(a({},e),{displayProgressBar:t.displayProgressBar});case"setProgressBarPercentage":return a(a({},e),{progressBarPercentage:t.progressBarPercentage});case"setDraggedFiles":var r=t.isDragActive,n=t.draggedFiles;return a(a({},e),{draggedFiles:n,isDragActive:r});case"focus":return a(a({},e),{isFocused:!0});case"blur":return a(a({},e),{isFocused:!1});case"reset":return a({},B);default:return e}}var R=n.default.BAD_DELIMITERS,A=n.default.RECORD_SEP,L=n.default.UNIT_SEP,T=n.default.WORKERS_SUPPORTED,j=n.default.LocalChunkSize,z=n.default.DefaultDelimiter;exports.BAD_DELIMITERS=R,exports.DefaultDelimiter=z,exports.LocalChunkSize=j,exports.RECORD_SEP=A,exports.UNIT_SEP=L,exports.WORKERS_SUPPORTED=T,exports.formatFileSize=function(e){var t=1024,r=1048576,n=1073741824;if(e<r){var o=Number((e/t).toFixed(0));return o<=0?e+" B":o+" KB"}return e<n?(e/r).toFixed(0)+" MB":e<1099511627776?(e/n).toFixed(0)+" GB":""},exports.jsonToCSV=E,exports.lightenDarkenColor=function(e,t){var r=!1;"#"==e[0]&&(e=e.slice(1),r=!0);var n=parseInt(e,16),o=(n>>16)+t;o>255?o=255:o<0&&(o=0);var a=(n>>8&255)+t;a>255?a=255:a<0&&(a=0);var i=(255&n)+t;return i>255?i=255:i<0&&(i=0),(r?"#":"")+(i|a<<8|o<<16).toString(16)},exports.readRemoteFile=w,exports.readString=D,exports.useCSVDownloader=function(){return{CSVDownloader:function(){var e=this,t=function(t){var r=t.children,a=t.data,i=void 0===a?{}:a,l=t.filename,s=t.type,f=void 0===s?F.Link:s,d=t.style,p=void 0===d?{}:d,v=t.className,g=void 0===v?"":v,y=t.bom,m=void 0!==y&&y,h=t.config,b=void 0===h?{}:h,D=function(){return u(e,void 0,void 0,(function(){var e,t,r,o,a,u;return c(this,(function(c){switch(c.label){case 0:return e=m?"\ufeff":"",t=null,r=null,"function"!=typeof i?[3,2]:[4,i()];case 1:i=c.sent(),c.label=2;case 2:return t="object"==typeof i?n.default.unparse(i,b):i,o=new Blob(["".concat(e).concat(t)],{type:"text/csv;charset=utf-8;"}),a=window.navigator,r=a.msSaveBlob?a.msSaveBlob(o,"".concat(l,".csv")):window.URL.createObjectURL(o),(u=document.createElement("a")).href=r,u.setAttribute("download","".concat(l,".csv")),u.click(),u.remove(),[2]}}))}))};return o.default.createElement(o.default.Fragment,null,f===F.Button?o.default.createElement("button",{onClick:function(){return D()},style:p,className:g},r):o.default.createElement("a",{onClick:function(){return D()},style:p,className:g},r))};return o.default.useMemo((function(){return t}),[])}(),Type:F}},exports.useCSVReader=function(){return{CSVReader:S()}},exports.usePapaParse=function(){return{readString:D,readRemoteFile:w,jsonToCSV:E}};