ehsas_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) • 12.9 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("papaparse"),t=require("react"),n=require("jschardet");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(e),a=r(t),i=r(n),u=function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u.apply(this,arguments)};function c(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function l(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e}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 n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return e.some((function(e){return!s(t)&&e&&e.apply(void 0,l([t],n)),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 n="application/x-moz-file"===e.type||function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),a=o.replace(/\/.*$/,"");return n.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?r.toLowerCase().endsWith(t):t.endsWith("/*")?a===t.replace(/\/.*$/,""):o===t}))}return!0}(e,t);return[n,n?null:p(t)]}function g(e){return null!=e}var m=function(e){return{code:"file-too-large",message:"File is larger than ".concat(e," bytes")}},y=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 D(e){e.preventDefault()}function b(e,t){return o.default.parse(e,t)}function F(e,t){o.default.parse(e,Object.assign({},{download:!0},t))}function E(e,t){return void 0===t&&(t={}),o.default.unparse(e,t)}var w={Link:"link",Button:"button"};var C={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 P(e){var n=e.style,r=e.className,o=e.display,i=t.useState(0),u=i[0],c=i[1];return t.useEffect((function(){c(e.percentage)}),[e.percentage]),a.default.createElement("span",{style:Object.assign({},C.progressBar,C.fill,n,{width:"".concat(u,"%"),display:o}),className:r})}function B(e){var t=e.color,n=e.width,r=void 0===n?23:n,o=e.height,i=void 0===o?23:o;return a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:r,height:i,viewBox:"0 0 512 512"},a.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"}),a.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 x(){var e=function(e){var n=e.children,r=e.accept,p=void 0===r?k:r,b=e.config,F=void 0===b?{}:b,E=e.minSize,w=void 0===E?0:E,C=e.maxSize,x=void 0===C?1/0:C,R=e.maxFiles,A=void 0===R?1:R,L=e.disabled,j=void 0!==L&&L,T=e.noClick,z=void 0!==T&&T,M=e.noDrag,I=void 0!==M&&M,_=e.noDragEventsBubbling,K=void 0!==_&&_,N=e.noKeyboard,U=void 0!==N&&N,V=e.multiple,q=void 0!==V&&V,W=e.preventDropOnDocument,$=void 0===W||W,G=e.onUploadAccepted,H=e.validator,J=e.onUploadRejected,Q=e.onDragEnter,X=e.onDragOver,Y=e.onDragLeave,Z=t.useRef(null),ee=t.useRef(null),te=t.useRef([]),ne=t.useReducer(O,S),re=ne[0],oe=ne[1],ae=re.acceptedFile,ie=re.displayProgressBar,ue=re.progressBarPercentage,ce=re.draggedFiles,le=re.isFileDialogActive,se=function(e){ee.current&&ee.current.contains(e.target)||(e.preventDefault(),te.current=[])};t.useEffect((function(){return $&&(document.addEventListener("dragover",D,!1),document.addEventListener("drop",se,!1)),function(){$&&(document.removeEventListener("dragover",D),document.removeEventListener("drop",se))}}),[ee,$]);var fe=function(e){return j?null:e},de=function(e){return I?null:fe(e)},pe=function(e){K&&e.stopPropagation()},ve=function(e){e.preventDefault(e),e.persist(),pe(e)},ge=function(e){oe({displayProgressBar:e,type:"setDisplayProgressBar"})},me=function(e){oe({progressBarPercentage:e,type:"setProgressBarPercentage"})},ye=function(e){return a.default.createElement(P,u({display:ie,percentage:ue},e))},he=function(e){return a.default.createElement(B,u({},e))},De=t.useCallback((function(){Z.current&&re.displayProgressBar&&(oe({type:"openDialog"}),Z.current.value=null,Z.current.click())}),[oe]),be=function(){le&&setTimeout((function(){Z.current&&(Z.current.files.length||oe({type:"closeDialog"}))}),300)};t.useEffect((function(){return window.addEventListener("focus",be,!1),function(){window.removeEventListener("focus",be,!1)}}),[Z,le]);var Fe=t.useCallback((function(){var e;z||(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())}),[Z,z]),Ee=t.useCallback((function(e){if(ve(e),me(0),te.current=[],d(e)){if(s(e)&&!K)return;var t=[],n=[],r=e.target.files||e.dataTransfer&&e.dataTransfer.files;if(Array.from(r).forEach((function(e){var r=v(e,p),o=r[0],a=r[1],i=function(e,t,n){if(g(e.size))if(g(t)&&g(n)){if(e.size>n)return[!1,m(n)];if(e.size<t)return[!1,y(t)]}else{if(g(t)&&e.size<t)return[!1,y(t)];if(g(n)&&e.size>n)return[!1,m(n)]}return[!0,null]}(e,w,x),u=i[0],c=i[1],l=H?H(e):null;if(o&&u&&!l)t.push(e);else{var s=[a,c];l&&(s=s.concat(l)),n.push({file:e,errors:s.filter((function(e){return e}))})}})),(!q&&t.length>1||q&&A>=1&&t.length>A)&&(t.forEach((function(e){n.push({file:e,errors:[h]})})),t.splice(0)),oe({acceptedFiles:t,fileRejections:n,type:"setFiles"}),ge("block"),n.length>0&&J&&J(n,e),t.length>0&&G){var a={},u=[],c=[],l=[],f=new window.FileReader,D=0;t.forEach((function(e){oe({acceptedFile:e,type:"setFile"}),a={complete:(null==F?void 0:F.complete)||(null==F?void 0:F.step)?F.complete:function(){G({data:u,errors:c,meta:l},e)},step:(null==F?void 0:F.step)?F.step:function(t){if(u.push(t.data),t.errors.length>0&&c.push(t.errors),t.length>0&&l.push(t[0].meta),F&&F.preview){if(D=Math.round(u.length/F.preview*100),u.length===F.preview)G({data:u,errors:c,meta:l},e)}else{var n=t.meta.cursor,r=Math.round(n/e.size*100);if(r===D)return;D=r}me(D)}},a=Object.assign({},F,a),f.onload=function(e){F.encoding||(F.encoding=i.default.detect(e.target.result).encoding,a=Object.assign({},F,a)),o.default.parse(e.target.result,a)},f.onloadend=function(){setTimeout((function(){ge("none")}),2e3)},(null==F?void 0:F.encoding)?f.readAsText(e,F.encoding||"utf-8"):f.readAsBinaryString(e)}))}}}),[q,p,w,x,A,H,G]),we=t.useCallback((function(e){pe(e)}),[]),Ce=function(e){return U?null:fe(e)},Pe=t.useCallback((function(e){if(ve(e),te.current=l(l([],te.current),[e.target]),d(e)){if(s(e)&&!K)return;oe({draggedFiles:ce,isDragActive:!0,type:"setDraggedFiles"}),Q&&Q(e)}}),[Q,K]),Be=t.useCallback((function(e){ve(e);var t=d(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(e){}return t&&X&&X(e),!1}),[X,K]),ke=t.useCallback((function(e){ve(e);var t=te.current.filter((function(e){return ee.current&&ee.current.contains(e)})),n=t.indexOf(e.target);-1!==n&&t.splice(n,1),te.current=t,t.length>0||(oe({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),d(e)&&Y&&Y(e))}),[ee,Y,K]),xe=t.useCallback((function(e){ee.current&&ee.current.isEqualNode(e.target)&&("Space"!==e.key&&"Enter"!==e.key||(e.preventDefault(),De()))}),[ee,Z]),Se=t.useCallback((function(){oe({type:"focus"})}),[]),Oe=t.useCallback((function(){oe({type:"blur"})}),[]),Re=t.useMemo((function(){return function(e){void 0===e&&(e={});var t=e.onClick,n=void 0===t?function(){}:t,r=e.onDrop,o=void 0===r?function(){}:r,a=e.onDragOver,i=void 0===a?function(){}:a,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,m=e.onBlur,y=void 0===m?function(){}:m,h=e.onDragEnter,D=void 0===h?function(){}:h,b=c(e,["onClick","onDrop","onDragOver","onDragLeave","onKeyDown","onFocus","onBlur","onDragEnter"]);return u({onClick:fe(f(n,Fe)),onDrop:de(f(o,Ee)),onDragEnter:de(f(D,Pe)),onDragOver:de(f(i,Be)),onDragLeave:de(f(s,ke)),onKeyDown:Ce(f(p,xe)),onFocus:Ce(f(g,Se)),onBlur:Ce(f(y,Oe))},b)}}),[ee,xe,Se,Oe,Fe,Pe,Be,ke,Ee,U,I,j]),Ae=t.useMemo((function(){return function(e){var t;void 0===e&&(e={});var n=e.refKey,r=void 0===n?"ref":n,o=e.onChange,a=void 0===o?function(){}:o,i=e.onClick,l=void 0===i?function(){}:i,s=c(e,["refKey","onChange","onClick"]),d=((t={accept:p,multiple:q,type:"file",style:{display:"none"},onChange:fe(f(a,Ee)),onClick:fe(f(l,we)),autoComplete:"off",tabIndex:-1})[r]=Z,t);return u(u({},d),s)}}),[Z,p,Ee,j]),Le=t.useCallback((function(e){Z.current.value="",oe({type:"reset"}),e.stopPropagation()}),[]),je=t.useMemo((function(){return function(e){void 0===e&&(e={});var t=e.onClick,n=void 0===t?function(){}:t,r=c(e,["onClick"]);return u({onClick:fe(f(n,Le))},r)}}),[Le]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("input",u({},Ae())),n({getRootProps:Re,acceptedFile:ae,ProgressBar:ye,getRemoveFileProps:je,Remove:he}))};return t.useMemo((function(){return e}),[])}var S={displayProgressBar:"none",progressBarPercentage:0,isDragActive:!1,isFileDialogActive:!1,isFocused:!1,draggedFiles:[],acceptedFiles:[],acceptedFile:null};function O(e,t){switch(t.type){case"openDialog":return u(u({},e),{isFileDialogActive:!0});case"closeDialog":return u(u({},e),{isFileDialogActive:!1});case"setFiles":return u(u({},e),{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"setFile":return u(u({},e),{acceptedFile:t.acceptedFile});case"setDisplayProgressBar":return u(u({},e),{displayProgressBar:t.displayProgressBar});case"setProgressBarPercentage":return u(u({},e),{progressBarPercentage:t.progressBarPercentage});case"setDraggedFiles":var n=t.isDragActive,r=t.draggedFiles;return u(u({},e),{draggedFiles:r,isDragActive:n});case"focus":return u(u({},e),{isFocused:!0});case"blur":return u(u({},e),{isFocused:!1});case"reset":return u({},S);default:return e}}var R=o.default.BAD_DELIMITERS,A=o.default.RECORD_SEP,L=o.default.UNIT_SEP,j=o.default.WORKERS_SUPPORTED,T=o.default.LocalChunkSize,z=o.default.DefaultDelimiter;exports.BAD_DELIMITERS=R,exports.DefaultDelimiter=z,exports.LocalChunkSize=T,exports.RECORD_SEP=A,exports.UNIT_SEP=L,exports.WORKERS_SUPPORTED=j,exports.formatFileSize=function(e){var t=1024,n=1048576,r=1073741824;if(e<n){var o=Number((e/t).toFixed(0));return o<=0?e+" B":o+" KB"}return e<r?(e/n).toFixed(0)+" MB":e<1099511627776?(e/r).toFixed(0)+" GB":""},exports.lightenDarkenColor=function(e,t){var n=!1;"#"==e[0]&&(e=e.slice(1),n=!0);var r=parseInt(e,16),o=(r>>16)+t;o>255?o=255:o<0&&(o=0);var a=(r>>8&255)+t;a>255?a=255:a<0&&(a=0);var i=(255&r)+t;return i>255?i=255:i<0&&(i=0),(n?"#":"")+(i|a<<8|o<<16).toString(16)},exports.useCSVDownloader=function(){var e;return{CSVDownloader:(e=function(e){var t=e.children,n=e.data,r=void 0===n?{}:n,i=e.filename,u=e.type,c=void 0===u?w.Link:u,l=e.style,s=void 0===l?{}:l,f=e.className,d=void 0===f?"":f,p=e.bom,v=void 0!==p&&p,g=e.config,m=void 0===g?{}:g,y=function(){var e=v?"\ufeff":"",t=null,n=null;"function"==typeof r&&(r=r()),t="object"==typeof r?o.default.unparse(r,m):r;var a=new Blob(["".concat(e).concat(t)],{type:"text/csv;charset=utf-8;"}),u=window.navigator;n=u.msSaveBlob?u.msSaveBlob(a,"".concat(i,".csv")):window.URL.createObjectURL(a);var c=document.createElement("a");c.href=n,c.setAttribute("download","".concat(i,".csv")),c.click(),c.remove()};return a.default.createElement(a.default.Fragment,null,c===w.Button?a.default.createElement("button",{onClick:function(){return y()},style:s,className:d},t):a.default.createElement("a",{onClick:function(){return y()},style:s,className:d},t))},a.default.useMemo((function(){return e}),[])),Type:w}},exports.useCSVReader=function(){return{CSVReader:x()}},exports.usePapaParse=function(){return{readString:b,readRemoteFile:F,jsonToCSV:E}};