@corva/ui 3.31.0-1 → 3.31.0-2
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("file-saver"));function r(t,e,r){var n;return Object.keys(t).forEach((function(o){-1!==e[r].toLowerCase().indexOf(o)&&(n=t[o])})),n}function n(t,e,r,n){for(var o="",c=0;c<t.length;c+=1)e[r[c]]?o+=n+e[r[c]]:o+=r[c],o+=c<t.length-1?",":"";t.length>0&&(o+="\n");for(var a=0;a<t.length;a+=1)o+=t[a],o+=a<t.length-1?",":"";return o}function o(t,e,r,c){var a=[],l=[],
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("file-saver"));function r(t,e,r){var n;return Object.keys(t).forEach((function(o){-1!==e[r].toLowerCase().indexOf(o)&&(n=t[o])})),n}function n(t,e,r,n){for(var o="",c=0;c<t.length;c+=1)e[r[c]]?o+=n+e[r[c]]:o+=r[c],o+=c<t.length-1?",":"";t.length>0&&(o+="\n");for(var a=0;a<t.length;a+=1)o+=t[a],o+=a<t.length-1?",":"";return o}function o(t,e,r,c){var a=[],l=[],i="",f="";return c||(c=""),"[object Array]"===Object.prototype.toString.call(t)?function(t,e,r,n){if(!t||0===t.length)return"";for(var c="",a=Object.keys(t[0]),l=a.length,i=l,f=[],u=!1,s=0;s<t.length;s+=1)for(var p=0;p<l;p+=1)"[object Array]"===Object.prototype.toString.call(t[s][a[p]])&&(i=p);if(e)for(var v=0;v<i;v+=1)e[a[v]]?f[v]=n+e[a[v]]:f[v]=a[v];"\n"!==c[c.length-1]&&(c+="\n");for(var h=0;h<t.length;h+=1){if(!h||u){for(var g=0;g<i;g+=1)e&&(c+=f[g]),c+=g<i-1?",":"";c+="\n"}for(var b=0;b<l;b+=1)if("[object Array]"===Object.prototype.toString.call(t[h][a[b]])){u=!0;var d=r&&r[a[b]]?"".concat(r[a[b]]," "):"";c+="\n".concat(o(t[h][a[b]],e,r,n+d))}else(t[h][a[b]]||0===t[h][a[b]])&&(c+=t[h][a[b]]),c+=b<l-1?",":"";c+="\n"}return c}(t,e,r,c):(Object.keys(t).forEach((function(u){"[object Array]"===Object.prototype.toString.call(t[u])?(i+=n(a,e,l,c),a=[],l=[],"\n"!==i[i.length-1]&&(i+="\n"),f=r&&r[u]?"".concat(r[u]," "):"",i+=o(t[u],e,r,c+f)):"[object Object]"===Object.prototype.toString.call(t[u])?(i+=n(a,e,l,c),a=[],l=[],i.length>0&&"\n"!==i[i.length-1]&&(i+="\n"),f=r&&r[u]?"".concat(r[u]," "):"",i+=o(t[u],e,r,c+f)):t[u]&&t[u].toString().length>0&&(a.push(t[u]),l.push(u))})),"\n"!==i[i.length-1]&&(i+="\n"),(i+=n(a,e,l,c)).trim())}exports.concatCsv=function(t){return t.reduce((function(t,e){var r=e.title,n=e.csv;return"".concat(t,"\n").concat(r).concat(n)}),"")},exports.convertCsvToJson=function(t,e,n,o,c){try{var a,l,i,f=t.split(/[\r\n]+/),u=[],s=f.length,p=0;for(a=0;a<f.length;a+=1){var v=f[a].split(",");for(u[a]=[],l=0;l<v.length;l+=1){var h=void 0;0===a?(h=r(e,v,l),p+=1):h=1===a?n[v[l]]:parseFloat(v[l]),u[a][l]=h}}var g={},b=[],d=f[0].split(",");for(a=0;a<p/2;a+=1){for(b=[],l=2;l<s;l+=1){var j={};for(i=0;i<2;i+=1)j[u[1][2*a+i]]=u[l][2*a+i];b.push(j)}var y=(x=d[2*a],S=void 0,(S=x.match(/(\d+\.?\d*)\s*FF/i))?parseFloat(S[1]):0),O={openhole_friction_factor:y,casing_friction_factor:y,points:b,title:d[2*a]};[].push(O);var _=u[0][2*a]?u[0][2*a]:"pick_up";g[_]||(g[_]=[]),g[_].push(O)}return 0===Object.keys(g).length?null:{data:{curves:g},effective_depth:o,end_depth:c}}catch(t){return null}var x,S},exports.convertJsonToCsv=o,exports.downloadFile=function(t,r){var n=new Blob([r],{type:"text/plain;charset=utf-8"});e.default.saveAs(n,t)};
|
|
2
2
|
//# sourceMappingURL=csvExport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csvExport.js","sources":["../../../src/utils/csvExport.js"],"sourcesContent":["import FileSaver from 'file-saver';\n\nexport function downloadFile(filename, text) {\n const blob = new Blob([text], { type: 'text/plain;charset=utf-8' });\n FileSaver.saveAs(blob, filename);\n}\n\nfunction findTitle(firstTitles, currentline, j) {\n const titles = Object.keys(firstTitles);\n let result;\n titles.forEach(item => {\n if (currentline[j].toLowerCase().indexOf(item) !== -1) {\n result = firstTitles[item];\n }\n });\n return result;\n}\n\nexport function convertCsvToJson(csv, firstTitles, secondTitles, effectiveDepth, endDepth) {\n try {\n const lines = csv.split(/[\\r\\n]+/);\n const array = [];\n let i;\n let j;\n let k;\n const rowNumber = lines.length;\n let columnNumber = 0;\n\n for (i = 0; i < lines.length; i += 1) {\n const currentline = lines[i].split(',');\n array[i] = [];\n for (j = 0; j < currentline.length; j += 1) {\n let value;\n if (i === 0) {\n value = findTitle(firstTitles, currentline, j);\n columnNumber += 1;\n } else if (i === 1) {\n value = secondTitles[currentline[j]];\n } else {\n value = parseFloat(currentline[j]);\n }\n array[i][j] = value;\n }\n }\n\n const objLength = 2;\n const result = {};\n let points = [];\n let off = 0;\n\n const headers = lines[0].split(',');\n for (i = 0; i < columnNumber / objLength; i += 1) {\n points = [];\n\n for (j = 2; j < rowNumber; j += 1) {\n const obj = {};\n for (k = 0; k < objLength; k += 1) {\n obj[array[1][i * objLength + k]] = array[j][i * objLength + k];\n }\n points.push(obj);\n }\n\n const dataLine = {\n openhole_friction_factor: off,\n casing_friction_factor: off,\n points,\n title: headers[i * objLength],\n };\n off += 1;\n\n const linesArray = [];\n linesArray.push(dataLine);\n const serieName = array[0][i * objLength] ? array[0][i * objLength] : 'pick_up';\n\n if (!result[serieName]) {\n result[serieName] = [];\n }\n result[serieName].push(dataLine);\n }\n\n if (Object.keys(result).length === 0) {\n return null;\n }\n\n const dataObject = {\n data: {\n curves: result,\n },\n effective_depth: effectiveDepth,\n end_depth: endDepth,\n };\n return dataObject;\n } catch (err) {\n return null;\n }\n}\n\nfunction writeResults(array, titles, titlesArray, prefix) {\n let result = '';\n for (let i = 0; i < array.length; i += 1) {\n if (titles[titlesArray[i]]) {\n result += prefix + titles[titlesArray[i]];\n } else {\n result += titlesArray[i];\n }\n result += i < array.length - 1 ? ',' : '';\n }\n\n if (array.length > 0) {\n result += '\\n';\n }\n for (let i = 0; i < array.length; i += 1) {\n result += array[i];\n result += i < array.length - 1 ? ',' : '';\n }\n return result;\n}\n\n/* eslint-disable no-param-reassign */\nexport function convertJsonToCsv(obj, titles, markers, prefix) {\n let array = [];\n let titlesArray = [];\n let result = '';\n let addPrefix = '';\n if (!prefix) {\n prefix = '';\n }\n\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n return processArray(obj, titles, markers, prefix); // eslint-disable-line no-use-before-define\n }\n\n const keys = Object.keys(obj);\n\n keys.forEach(key => {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result.length > 0 && result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (obj[key] && obj[key].toString().length > 0) {\n array.push(obj[key]);\n titlesArray.push(key);\n }\n });\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n result += writeResults(array, titles, titlesArray, prefix);\n return result.trim();\n}\n/* eslint-enable no-param-reassign */\n\nexport function concatCsv(list) {\n return list.reduce((acc, { title, csv }) => {\n return `${acc}\\n${title}${csv}`;\n }, '');\n}\n\nfunction processArray(obj, titles, markers, prefix) {\n if (!obj || obj.length === 0) {\n return '';\n }\n let result = '';\n const keys = Object.keys(obj[0]);\n const columns = keys.length;\n let columnsNew = columns;\n const newTitles = [];\n let internalArray = false;\n\n for (let i = 0; i < obj.length; i += 1) {\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n columnsNew = j;\n }\n }\n }\n\n if (titles) {\n for (let i = 0; i < columnsNew; i += 1) {\n if (titles[keys[i]]) {\n newTitles[i] = prefix + titles[keys[i]];\n } else {\n newTitles[i] = keys[i];\n }\n }\n }\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n for (let i = 0; i < obj.length; i += 1) {\n if (!i || internalArray) {\n for (let k = 0; k < columnsNew; k += 1) {\n if (titles) {\n result += newTitles[k];\n }\n result += k < columnsNew - 1 ? ',' : '';\n }\n result += '\\n';\n }\n\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n internalArray = true;\n const addPrefix = markers && markers[keys[j]] ? `${markers[keys[j]]} ` : '';\n result += `\\n${convertJsonToCsv(obj[i][keys[j]], titles, markers, prefix + addPrefix)}`;\n } else {\n if (obj[i][keys[j]] || obj[i][keys[j]] === 0) {\n result += obj[i][keys[j]];\n }\n result += j < columns - 1 ? ',' : '';\n }\n }\n result += '\\n';\n }\n return result;\n}\n"],"names":["findTitle","firstTitles","currentline","j","result","Object","keys","forEach","item","toLowerCase","indexOf","writeResults","array","titles","titlesArray","prefix","i","length","convertJsonToCsv","obj","markers","addPrefix","prototype","toString","call","columns","columnsNew","newTitles","internalArray","k","concat","processArray","key","push","trim","list","reduce","acc","_ref","title","csv","secondTitles","effectiveDepth","endDepth","lines","split","rowNumber","columnNumber","value","parseFloat","points","off","headers","dataLine","openhole_friction_factor","casing_friction_factor","serieName","data","curves","effective_depth","end_depth","err","filename","text","blob","Blob","type","FileSaver","saveAs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csvExport.js","sources":["../../../src/utils/csvExport.js"],"sourcesContent":["import FileSaver from 'file-saver';\n\nexport function downloadFile(filename, text) {\n const blob = new Blob([text], { type: 'text/plain;charset=utf-8' });\n FileSaver.saveAs(blob, filename);\n}\n\nfunction findTitle(firstTitles, currentline, j) {\n const titles = Object.keys(firstTitles);\n let result;\n titles.forEach(item => {\n if (currentline[j].toLowerCase().indexOf(item) !== -1) {\n result = firstTitles[item];\n }\n });\n return result;\n}\n\nfunction extractFrictionFactor(headerText) {\n const match = headerText.match(/(\\d+\\.?\\d*)\\s*FF/i);\n return match ? parseFloat(match[1]) : 0;\n}\n\nexport function convertCsvToJson(csv, firstTitles, secondTitles, effectiveDepth, endDepth) {\n try {\n const lines = csv.split(/[\\r\\n]+/);\n const array = [];\n let i;\n let j;\n let k;\n const rowNumber = lines.length;\n let columnNumber = 0;\n\n for (i = 0; i < lines.length; i += 1) {\n const currentline = lines[i].split(',');\n array[i] = [];\n for (j = 0; j < currentline.length; j += 1) {\n let value;\n if (i === 0) {\n value = findTitle(firstTitles, currentline, j);\n columnNumber += 1;\n } else if (i === 1) {\n value = secondTitles[currentline[j]];\n } else {\n value = parseFloat(currentline[j]);\n }\n array[i][j] = value;\n }\n }\n\n const objLength = 2;\n const result = {};\n let points = [];\n\n const headers = lines[0].split(',');\n for (i = 0; i < columnNumber / objLength; i += 1) {\n points = [];\n\n for (j = 2; j < rowNumber; j += 1) {\n const obj = {};\n for (k = 0; k < objLength; k += 1) {\n obj[array[1][i * objLength + k]] = array[j][i * objLength + k];\n }\n points.push(obj);\n }\n\n const frictionFactor = extractFrictionFactor(headers[i * objLength]);\n\n const dataLine = {\n openhole_friction_factor: frictionFactor,\n casing_friction_factor: frictionFactor,\n points,\n title: headers[i * objLength],\n };\n\n const linesArray = [];\n linesArray.push(dataLine);\n const serieName = array[0][i * objLength] ? array[0][i * objLength] : 'pick_up';\n\n if (!result[serieName]) {\n result[serieName] = [];\n }\n result[serieName].push(dataLine);\n }\n\n if (Object.keys(result).length === 0) {\n return null;\n }\n\n const dataObject = {\n data: {\n curves: result,\n },\n effective_depth: effectiveDepth,\n end_depth: endDepth,\n };\n return dataObject;\n } catch (err) {\n return null;\n }\n}\n\nfunction writeResults(array, titles, titlesArray, prefix) {\n let result = '';\n for (let i = 0; i < array.length; i += 1) {\n if (titles[titlesArray[i]]) {\n result += prefix + titles[titlesArray[i]];\n } else {\n result += titlesArray[i];\n }\n result += i < array.length - 1 ? ',' : '';\n }\n\n if (array.length > 0) {\n result += '\\n';\n }\n for (let i = 0; i < array.length; i += 1) {\n result += array[i];\n result += i < array.length - 1 ? ',' : '';\n }\n return result;\n}\n\n/* eslint-disable no-param-reassign */\nexport function convertJsonToCsv(obj, titles, markers, prefix) {\n let array = [];\n let titlesArray = [];\n let result = '';\n let addPrefix = '';\n if (!prefix) {\n prefix = '';\n }\n\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n return processArray(obj, titles, markers, prefix); // eslint-disable-line no-use-before-define\n }\n\n const keys = Object.keys(obj);\n\n keys.forEach(key => {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result.length > 0 && result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (obj[key] && obj[key].toString().length > 0) {\n array.push(obj[key]);\n titlesArray.push(key);\n }\n });\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n result += writeResults(array, titles, titlesArray, prefix);\n return result.trim();\n}\n/* eslint-enable no-param-reassign */\n\nexport function concatCsv(list) {\n return list.reduce((acc, { title, csv }) => {\n return `${acc}\\n${title}${csv}`;\n }, '');\n}\n\nfunction processArray(obj, titles, markers, prefix) {\n if (!obj || obj.length === 0) {\n return '';\n }\n let result = '';\n const keys = Object.keys(obj[0]);\n const columns = keys.length;\n let columnsNew = columns;\n const newTitles = [];\n let internalArray = false;\n\n for (let i = 0; i < obj.length; i += 1) {\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n columnsNew = j;\n }\n }\n }\n\n if (titles) {\n for (let i = 0; i < columnsNew; i += 1) {\n if (titles[keys[i]]) {\n newTitles[i] = prefix + titles[keys[i]];\n } else {\n newTitles[i] = keys[i];\n }\n }\n }\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n for (let i = 0; i < obj.length; i += 1) {\n if (!i || internalArray) {\n for (let k = 0; k < columnsNew; k += 1) {\n if (titles) {\n result += newTitles[k];\n }\n result += k < columnsNew - 1 ? ',' : '';\n }\n result += '\\n';\n }\n\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n internalArray = true;\n const addPrefix = markers && markers[keys[j]] ? `${markers[keys[j]]} ` : '';\n result += `\\n${convertJsonToCsv(obj[i][keys[j]], titles, markers, prefix + addPrefix)}`;\n } else {\n if (obj[i][keys[j]] || obj[i][keys[j]] === 0) {\n result += obj[i][keys[j]];\n }\n result += j < columns - 1 ? ',' : '';\n }\n }\n result += '\\n';\n }\n return result;\n}\n"],"names":["findTitle","firstTitles","currentline","j","result","Object","keys","forEach","item","toLowerCase","indexOf","writeResults","array","titles","titlesArray","prefix","i","length","convertJsonToCsv","obj","markers","addPrefix","prototype","toString","call","columns","columnsNew","newTitles","internalArray","k","concat","processArray","key","push","trim","list","reduce","acc","_ref","title","csv","secondTitles","effectiveDepth","endDepth","lines","split","rowNumber","columnNumber","value","parseFloat","points","headers","frictionFactor","headerText","match","dataLine","openhole_friction_factor","casing_friction_factor","serieName","data","curves","effective_depth","end_depth","err","filename","text","blob","Blob","type","FileSaver","saveAs"],"mappings":"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"}
|
package/package.json
CHANGED
package/utils/csvExport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csvExport.d.ts","sourceRoot":"","sources":["../../src/utils/csvExport.js"],"names":[],"mappings":"AAEA,6DAGC;
|
|
1
|
+
{"version":3,"file":"csvExport.d.ts","sourceRoot":"","sources":["../../src/utils/csvExport.js"],"names":[],"mappings":"AAEA,6DAGC;AAkBD;;;;;;EA6EC;AAwBD,2FA+CC;AAGD,0CAIC"}
|
package/utils/csvExport.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"file-saver";function r(r,n){var e=new Blob([n],{type:"text/plain;charset=utf-8"});t.saveAs(e,r)}function n(t,r,n){var e;return Object.keys(t).forEach((function(o){-1!==r[n].toLowerCase().indexOf(o)&&(e=t[o])})),e}function e(t,r,e,o,c){try{var a,l,f
|
|
1
|
+
import t from"file-saver";function r(r,n){var e=new Blob([n],{type:"text/plain;charset=utf-8"});t.saveAs(e,r)}function n(t,r,n){var e;return Object.keys(t).forEach((function(o){-1!==r[n].toLowerCase().indexOf(o)&&(e=t[o])})),e}function e(t,r,e,o,c){try{var a,l,i,f=t.split(/[\r\n]+/),h=[],p=f.length,u=0;for(a=0;a<f.length;a+=1){var v=f[a].split(",");for(h[a]=[],l=0;l<v.length;l+=1){var g=void 0;0===a?(g=n(r,v,l),u+=1):g=1===a?e[v[l]]:parseFloat(v[l]),h[a][l]=g}}var s={},b=[],j=f[0].split(",");for(a=0;a<u/2;a+=1){for(b=[],l=2;l<p;l+=1){var y={};for(i=0;i<2;i+=1)y[h[1][2*a+i]]=h[l][2*a+i];b.push(y)}var O=(S=j[2*a],k=void 0,(k=S.match(/(\d+\.?\d*)\s*FF/i))?parseFloat(k[1]):0),d={openhole_friction_factor:O,casing_friction_factor:O,points:b,title:j[2*a]};[].push(d);var _=h[0][2*a]?h[0][2*a]:"pick_up";s[_]||(s[_]=[]),s[_].push(d)}return 0===Object.keys(s).length?null:{data:{curves:s},effective_depth:o,end_depth:c}}catch(t){return null}var S,k}function o(t,r,n,e){for(var o="",c=0;c<t.length;c+=1)r[n[c]]?o+=e+r[n[c]]:o+=n[c],o+=c<t.length-1?",":"";t.length>0&&(o+="\n");for(var a=0;a<t.length;a+=1)o+=t[a],o+=a<t.length-1?",":"";return o}function c(t,r,n,e){var a=[],l=[],i="",f="";return e||(e=""),"[object Array]"===Object.prototype.toString.call(t)?function(t,r,n,e){if(!t||0===t.length)return"";for(var o="",a=Object.keys(t[0]),l=a.length,i=l,f=[],h=!1,p=0;p<t.length;p+=1)for(var u=0;u<l;u+=1)"[object Array]"===Object.prototype.toString.call(t[p][a[u]])&&(i=u);if(r)for(var v=0;v<i;v+=1)r[a[v]]?f[v]=e+r[a[v]]:f[v]=a[v];"\n"!==o[o.length-1]&&(o+="\n");for(var g=0;g<t.length;g+=1){if(!g||h){for(var s=0;s<i;s+=1)r&&(o+=f[s]),o+=s<i-1?",":"";o+="\n"}for(var b=0;b<l;b+=1)if("[object Array]"===Object.prototype.toString.call(t[g][a[b]])){h=!0;var j=n&&n[a[b]]?"".concat(n[a[b]]," "):"";o+="\n".concat(c(t[g][a[b]],r,n,e+j))}else(t[g][a[b]]||0===t[g][a[b]])&&(o+=t[g][a[b]]),o+=b<l-1?",":"";o+="\n"}return o}(t,r,n,e):(Object.keys(t).forEach((function(h){"[object Array]"===Object.prototype.toString.call(t[h])?(i+=o(a,r,l,e),a=[],l=[],"\n"!==i[i.length-1]&&(i+="\n"),f=n&&n[h]?"".concat(n[h]," "):"",i+=c(t[h],r,n,e+f)):"[object Object]"===Object.prototype.toString.call(t[h])?(i+=o(a,r,l,e),a=[],l=[],i.length>0&&"\n"!==i[i.length-1]&&(i+="\n"),f=n&&n[h]?"".concat(n[h]," "):"",i+=c(t[h],r,n,e+f)):t[h]&&t[h].toString().length>0&&(a.push(t[h]),l.push(h))})),"\n"!==i[i.length-1]&&(i+="\n"),(i+=o(a,r,l,e)).trim())}function a(t){return t.reduce((function(t,r){var n=r.title,e=r.csv;return"".concat(t,"\n").concat(n).concat(e)}),"")}export{a as concatCsv,e as convertCsvToJson,c as convertJsonToCsv,r as downloadFile};
|
|
2
2
|
//# sourceMappingURL=csvExport.js.map
|
package/utils/csvExport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csvExport.js","sources":["../../src/utils/csvExport.js"],"sourcesContent":["import FileSaver from 'file-saver';\n\nexport function downloadFile(filename, text) {\n const blob = new Blob([text], { type: 'text/plain;charset=utf-8' });\n FileSaver.saveAs(blob, filename);\n}\n\nfunction findTitle(firstTitles, currentline, j) {\n const titles = Object.keys(firstTitles);\n let result;\n titles.forEach(item => {\n if (currentline[j].toLowerCase().indexOf(item) !== -1) {\n result = firstTitles[item];\n }\n });\n return result;\n}\n\nexport function convertCsvToJson(csv, firstTitles, secondTitles, effectiveDepth, endDepth) {\n try {\n const lines = csv.split(/[\\r\\n]+/);\n const array = [];\n let i;\n let j;\n let k;\n const rowNumber = lines.length;\n let columnNumber = 0;\n\n for (i = 0; i < lines.length; i += 1) {\n const currentline = lines[i].split(',');\n array[i] = [];\n for (j = 0; j < currentline.length; j += 1) {\n let value;\n if (i === 0) {\n value = findTitle(firstTitles, currentline, j);\n columnNumber += 1;\n } else if (i === 1) {\n value = secondTitles[currentline[j]];\n } else {\n value = parseFloat(currentline[j]);\n }\n array[i][j] = value;\n }\n }\n\n const objLength = 2;\n const result = {};\n let points = [];\n let off = 0;\n\n const headers = lines[0].split(',');\n for (i = 0; i < columnNumber / objLength; i += 1) {\n points = [];\n\n for (j = 2; j < rowNumber; j += 1) {\n const obj = {};\n for (k = 0; k < objLength; k += 1) {\n obj[array[1][i * objLength + k]] = array[j][i * objLength + k];\n }\n points.push(obj);\n }\n\n const dataLine = {\n openhole_friction_factor: off,\n casing_friction_factor: off,\n points,\n title: headers[i * objLength],\n };\n off += 1;\n\n const linesArray = [];\n linesArray.push(dataLine);\n const serieName = array[0][i * objLength] ? array[0][i * objLength] : 'pick_up';\n\n if (!result[serieName]) {\n result[serieName] = [];\n }\n result[serieName].push(dataLine);\n }\n\n if (Object.keys(result).length === 0) {\n return null;\n }\n\n const dataObject = {\n data: {\n curves: result,\n },\n effective_depth: effectiveDepth,\n end_depth: endDepth,\n };\n return dataObject;\n } catch (err) {\n return null;\n }\n}\n\nfunction writeResults(array, titles, titlesArray, prefix) {\n let result = '';\n for (let i = 0; i < array.length; i += 1) {\n if (titles[titlesArray[i]]) {\n result += prefix + titles[titlesArray[i]];\n } else {\n result += titlesArray[i];\n }\n result += i < array.length - 1 ? ',' : '';\n }\n\n if (array.length > 0) {\n result += '\\n';\n }\n for (let i = 0; i < array.length; i += 1) {\n result += array[i];\n result += i < array.length - 1 ? ',' : '';\n }\n return result;\n}\n\n/* eslint-disable no-param-reassign */\nexport function convertJsonToCsv(obj, titles, markers, prefix) {\n let array = [];\n let titlesArray = [];\n let result = '';\n let addPrefix = '';\n if (!prefix) {\n prefix = '';\n }\n\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n return processArray(obj, titles, markers, prefix); // eslint-disable-line no-use-before-define\n }\n\n const keys = Object.keys(obj);\n\n keys.forEach(key => {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result.length > 0 && result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (obj[key] && obj[key].toString().length > 0) {\n array.push(obj[key]);\n titlesArray.push(key);\n }\n });\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n result += writeResults(array, titles, titlesArray, prefix);\n return result.trim();\n}\n/* eslint-enable no-param-reassign */\n\nexport function concatCsv(list) {\n return list.reduce((acc, { title, csv }) => {\n return `${acc}\\n${title}${csv}`;\n }, '');\n}\n\nfunction processArray(obj, titles, markers, prefix) {\n if (!obj || obj.length === 0) {\n return '';\n }\n let result = '';\n const keys = Object.keys(obj[0]);\n const columns = keys.length;\n let columnsNew = columns;\n const newTitles = [];\n let internalArray = false;\n\n for (let i = 0; i < obj.length; i += 1) {\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n columnsNew = j;\n }\n }\n }\n\n if (titles) {\n for (let i = 0; i < columnsNew; i += 1) {\n if (titles[keys[i]]) {\n newTitles[i] = prefix + titles[keys[i]];\n } else {\n newTitles[i] = keys[i];\n }\n }\n }\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n for (let i = 0; i < obj.length; i += 1) {\n if (!i || internalArray) {\n for (let k = 0; k < columnsNew; k += 1) {\n if (titles) {\n result += newTitles[k];\n }\n result += k < columnsNew - 1 ? ',' : '';\n }\n result += '\\n';\n }\n\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n internalArray = true;\n const addPrefix = markers && markers[keys[j]] ? `${markers[keys[j]]} ` : '';\n result += `\\n${convertJsonToCsv(obj[i][keys[j]], titles, markers, prefix + addPrefix)}`;\n } else {\n if (obj[i][keys[j]] || obj[i][keys[j]] === 0) {\n result += obj[i][keys[j]];\n }\n result += j < columns - 1 ? ',' : '';\n }\n }\n result += '\\n';\n }\n return result;\n}\n"],"names":["downloadFile","filename","text","blob","Blob","type","FileSaver","saveAs","findTitle","firstTitles","currentline","j","result","Object","keys","forEach","item","toLowerCase","indexOf","convertCsvToJson","csv","secondTitles","effectiveDepth","endDepth","i","k","lines","split","array","rowNumber","length","columnNumber","value","parseFloat","points","off","headers","obj","push","dataLine","openhole_friction_factor","casing_friction_factor","title","serieName","data","curves","effective_depth","end_depth","err","writeResults","titles","titlesArray","prefix","convertJsonToCsv","markers","addPrefix","prototype","toString","call","columns","columnsNew","newTitles","internalArray","concat","processArray","key","trim","concatCsv","list","reduce","acc","_ref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"csvExport.js","sources":["../../src/utils/csvExport.js"],"sourcesContent":["import FileSaver from 'file-saver';\n\nexport function downloadFile(filename, text) {\n const blob = new Blob([text], { type: 'text/plain;charset=utf-8' });\n FileSaver.saveAs(blob, filename);\n}\n\nfunction findTitle(firstTitles, currentline, j) {\n const titles = Object.keys(firstTitles);\n let result;\n titles.forEach(item => {\n if (currentline[j].toLowerCase().indexOf(item) !== -1) {\n result = firstTitles[item];\n }\n });\n return result;\n}\n\nfunction extractFrictionFactor(headerText) {\n const match = headerText.match(/(\\d+\\.?\\d*)\\s*FF/i);\n return match ? parseFloat(match[1]) : 0;\n}\n\nexport function convertCsvToJson(csv, firstTitles, secondTitles, effectiveDepth, endDepth) {\n try {\n const lines = csv.split(/[\\r\\n]+/);\n const array = [];\n let i;\n let j;\n let k;\n const rowNumber = lines.length;\n let columnNumber = 0;\n\n for (i = 0; i < lines.length; i += 1) {\n const currentline = lines[i].split(',');\n array[i] = [];\n for (j = 0; j < currentline.length; j += 1) {\n let value;\n if (i === 0) {\n value = findTitle(firstTitles, currentline, j);\n columnNumber += 1;\n } else if (i === 1) {\n value = secondTitles[currentline[j]];\n } else {\n value = parseFloat(currentline[j]);\n }\n array[i][j] = value;\n }\n }\n\n const objLength = 2;\n const result = {};\n let points = [];\n\n const headers = lines[0].split(',');\n for (i = 0; i < columnNumber / objLength; i += 1) {\n points = [];\n\n for (j = 2; j < rowNumber; j += 1) {\n const obj = {};\n for (k = 0; k < objLength; k += 1) {\n obj[array[1][i * objLength + k]] = array[j][i * objLength + k];\n }\n points.push(obj);\n }\n\n const frictionFactor = extractFrictionFactor(headers[i * objLength]);\n\n const dataLine = {\n openhole_friction_factor: frictionFactor,\n casing_friction_factor: frictionFactor,\n points,\n title: headers[i * objLength],\n };\n\n const linesArray = [];\n linesArray.push(dataLine);\n const serieName = array[0][i * objLength] ? array[0][i * objLength] : 'pick_up';\n\n if (!result[serieName]) {\n result[serieName] = [];\n }\n result[serieName].push(dataLine);\n }\n\n if (Object.keys(result).length === 0) {\n return null;\n }\n\n const dataObject = {\n data: {\n curves: result,\n },\n effective_depth: effectiveDepth,\n end_depth: endDepth,\n };\n return dataObject;\n } catch (err) {\n return null;\n }\n}\n\nfunction writeResults(array, titles, titlesArray, prefix) {\n let result = '';\n for (let i = 0; i < array.length; i += 1) {\n if (titles[titlesArray[i]]) {\n result += prefix + titles[titlesArray[i]];\n } else {\n result += titlesArray[i];\n }\n result += i < array.length - 1 ? ',' : '';\n }\n\n if (array.length > 0) {\n result += '\\n';\n }\n for (let i = 0; i < array.length; i += 1) {\n result += array[i];\n result += i < array.length - 1 ? ',' : '';\n }\n return result;\n}\n\n/* eslint-disable no-param-reassign */\nexport function convertJsonToCsv(obj, titles, markers, prefix) {\n let array = [];\n let titlesArray = [];\n let result = '';\n let addPrefix = '';\n if (!prefix) {\n prefix = '';\n }\n\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n return processArray(obj, titles, markers, prefix); // eslint-disable-line no-use-before-define\n }\n\n const keys = Object.keys(obj);\n\n keys.forEach(key => {\n if (Object.prototype.toString.call(obj[key]) === '[object Array]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n result += writeResults(array, titles, titlesArray, prefix);\n array = [];\n titlesArray = [];\n\n if (result.length > 0 && result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n addPrefix = markers && markers[key] ? `${markers[key]} ` : '';\n result += convertJsonToCsv(obj[key], titles, markers, prefix + addPrefix);\n } else if (obj[key] && obj[key].toString().length > 0) {\n array.push(obj[key]);\n titlesArray.push(key);\n }\n });\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n result += writeResults(array, titles, titlesArray, prefix);\n return result.trim();\n}\n/* eslint-enable no-param-reassign */\n\nexport function concatCsv(list) {\n return list.reduce((acc, { title, csv }) => {\n return `${acc}\\n${title}${csv}`;\n }, '');\n}\n\nfunction processArray(obj, titles, markers, prefix) {\n if (!obj || obj.length === 0) {\n return '';\n }\n let result = '';\n const keys = Object.keys(obj[0]);\n const columns = keys.length;\n let columnsNew = columns;\n const newTitles = [];\n let internalArray = false;\n\n for (let i = 0; i < obj.length; i += 1) {\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n columnsNew = j;\n }\n }\n }\n\n if (titles) {\n for (let i = 0; i < columnsNew; i += 1) {\n if (titles[keys[i]]) {\n newTitles[i] = prefix + titles[keys[i]];\n } else {\n newTitles[i] = keys[i];\n }\n }\n }\n\n if (result[result.length - 1] !== '\\n') {\n result += '\\n';\n }\n for (let i = 0; i < obj.length; i += 1) {\n if (!i || internalArray) {\n for (let k = 0; k < columnsNew; k += 1) {\n if (titles) {\n result += newTitles[k];\n }\n result += k < columnsNew - 1 ? ',' : '';\n }\n result += '\\n';\n }\n\n for (let j = 0; j < columns; j += 1) {\n if (Object.prototype.toString.call(obj[i][keys[j]]) === '[object Array]') {\n internalArray = true;\n const addPrefix = markers && markers[keys[j]] ? `${markers[keys[j]]} ` : '';\n result += `\\n${convertJsonToCsv(obj[i][keys[j]], titles, markers, prefix + addPrefix)}`;\n } else {\n if (obj[i][keys[j]] || obj[i][keys[j]] === 0) {\n result += obj[i][keys[j]];\n }\n result += j < columns - 1 ? ',' : '';\n }\n }\n result += '\\n';\n }\n return result;\n}\n"],"names":["downloadFile","filename","text","blob","Blob","type","FileSaver","saveAs","findTitle","firstTitles","currentline","j","result","Object","keys","forEach","item","toLowerCase","indexOf","convertCsvToJson","csv","secondTitles","effectiveDepth","endDepth","i","k","lines","split","array","rowNumber","length","columnNumber","value","parseFloat","points","headers","obj","push","frictionFactor","headerText","match","dataLine","openhole_friction_factor","casing_friction_factor","title","serieName","data","curves","effective_depth","end_depth","err","writeResults","titles","titlesArray","prefix","convertJsonToCsv","markers","addPrefix","prototype","toString","call","columns","columnsNew","newTitles","internalArray","concat","processArray","key","trim","concatCsv","list","reduce","acc","_ref"],"mappings":"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"}
|