@corva/ui 3.22.3 → 3.22.5

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.
Files changed (61) hide show
  1. package/cjs-bundle/components/Attachment/index.js +1 -1
  2. package/cjs-bundle/components/Attachment/index.js.map +1 -1
  3. package/cjs-bundle/components/Avatar/index.js +1 -1
  4. package/cjs-bundle/components/Comment/index.js +1 -1
  5. package/cjs-bundle/components/Comment/index.js.map +1 -1
  6. package/cjs-bundle/components/CommentInput/index.js +1 -1
  7. package/cjs-bundle/components/CommentInput/index.js.map +1 -1
  8. package/cjs-bundle/components/CopyToClipboard/CopyToClipboard.js +1 -1
  9. package/cjs-bundle/components/FeedItem/FeedItem.js +1 -1
  10. package/cjs-bundle/components/FeedItem/FeedItem.js.map +1 -1
  11. package/cjs-bundle/components/FeedItem/FeedItemEditProvider/FeedItemEditModal.js +1 -1
  12. package/cjs-bundle/components/FeedItem/FeedItemEditProvider/FeedItemEditModal.js.map +1 -1
  13. package/cjs-bundle/components/FeedItem/components/Reactions.js +1 -1
  14. package/cjs-bundle/components/FeedItem/components/Reactions.js.map +1 -1
  15. package/cjs-bundle/components/FilePreview/index.js +1 -1
  16. package/cjs-bundle/components/FilePreview/index.js.map +1 -1
  17. package/cjs-bundle/components/OffsetWellChips/Chip.js +1 -1
  18. package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
  19. package/cjs-bundle/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
  20. package/cjs-bundle/components/PinnableFilters/effects/index.js +1 -1
  21. package/cjs-bundle/components/PinnableFilters/effects/index.js.map +1 -1
  22. package/cjs-bundle/components/WellSummary/WellSummaryItemValue.js +1 -1
  23. package/cjs-bundle/components/WellSummary/WellSummaryItemValue.js.map +1 -1
  24. package/cjs-bundle/componentsV2/Avatar/Avatar.js +1 -1
  25. package/cjs-bundle/componentsV2/Avatar/constants.js +1 -1
  26. package/cjs-bundle/config/highcharts/highcharts.js +1 -1
  27. package/cjs-bundle/config/highcharts/highcharts.js.map +1 -1
  28. package/cjs-bundle/utils/index.js +1 -1
  29. package/cjs-bundle/utils/index.js.map +1 -1
  30. package/cjs-bundle/utils/lasParser.js +1 -1
  31. package/cjs-bundle/utils/lasParser.js.map +1 -1
  32. package/cjs-bundle/utils/main.js +1 -1
  33. package/cjs-bundle/utils/main.js.map +1 -1
  34. package/cjs-bundle/utils/mapUnits.js +1 -1
  35. package/cjs-bundle/utils/mapUnits.js.map +1 -1
  36. package/cjs-bundle/utils/permissions.js +1 -1
  37. package/cjs-bundle/utils/permissions.js.map +1 -1
  38. package/components/OffsetWellPickerV2/components/Map/Map.js +1 -1
  39. package/components/OffsetWellPickerV2/components/Map/Map.js.map +1 -1
  40. package/components/PinnableFilters/effects/index.js +1 -1
  41. package/components/PinnableFilters/effects/index.js.map +1 -1
  42. package/componentsV2/CopyToClipboard/CopyToClipboard.js +1 -1
  43. package/config/highcharts/highcharts.d.ts.map +1 -1
  44. package/config/highcharts/highcharts.js +1 -1
  45. package/config/highcharts/highcharts.js.map +1 -1
  46. package/package.json +3 -3
  47. package/utils/lasParser.d.ts +2 -1
  48. package/utils/lasParser.js +1 -1
  49. package/utils/lasParser.js.map +1 -1
  50. package/utils/main.d.ts +53 -112
  51. package/utils/main.d.ts.map +1 -1
  52. package/utils/main.js +1 -1
  53. package/utils/main.js.map +1 -1
  54. package/utils/mapUnits.d.ts +1 -10
  55. package/utils/mapUnits.d.ts.map +1 -1
  56. package/utils/mapUnits.js +1 -1
  57. package/utils/mapUnits.js.map +1 -1
  58. package/utils/permissions.d.ts +2 -1
  59. package/utils/permissions.d.ts.map +1 -1
  60. package/utils/permissions.js +1 -1
  61. package/utils/permissions.js.map +1 -1
package/utils/main.d.ts CHANGED
@@ -1,116 +1,57 @@
1
+ export function formatValuePrecision(value: any): any;
2
+ export function downloadPDF(filename: any, pdfBlob: any): void;
3
+ export function unescapeLineBreaks(string?: string): string;
4
+ export function dataURLtoBlob(dataURL: string): Blob;
5
+ export function banchmarkTimer(name: string): any;
6
+ export function convertToPercent(value: number, sum: number): number;
7
+ export function parseNumberFromString(string: string): [type];
8
+ export function getLinesFrequency(linesAmount: number): number;
9
+ export function getAverageByColumnsForCSV(csv: string): any[];
10
+ export function intToRGB(i: any): string;
11
+ export function hashCode(str: any): number;
12
+ export function getColorFromString(str: string): string;
13
+ export function throttledEventListener(obj: any, type: any, callback: any, ctx: any): () => any;
14
+ export function getSnapshotForElement(elemId: string): string;
15
+ export function getAssetStatusColor(status: any): "#9e9e9e" | "#f44336" | "#ffeb3b" | "#2196f3" | "#4caf50";
16
+ export function closest(array: any[], value: number): number;
17
+ export function mathMax(a: any, b: any): any;
18
+ export function mathMin(a: any, b: any): any;
19
+ export function getOperationByType(operationType: number | null): object | undefined;
20
+ export function getUserFullName(user: any): string;
21
+ export function getNameInitials(name: any): any;
22
+ export function getS3BucketName(): "corva-files-qa" | "corva-files";
23
+ export function getS3FileUrl(bucket: any, fileName: any): string;
24
+ export function getFileNameWithExtensionFromPath(path?: string): string;
25
+ export function hexToRgbA(hex: any, alpha?: number): string;
26
+ export function truncateString(str: any, limit: any): any;
27
+ export function copyToClipboard(text: string): undefined;
1
28
  export default utils;
2
29
  declare namespace utils {
3
- function formatValuePrecision(value: any): any;
4
- function downloadPDF(filename: any, pdfBlob: any): void;
5
- /**
6
- * Unescape line break '\n' symbols. Summary and description of App may contain escaped
7
- * single '\\n' or multiple '\\n\\n...' line break symbols.
8
- * @param {String} - String to unescape
9
- * @return {String} - Unescaped string
10
- */
11
- function unescapeLineBreaks(string?: string): string;
12
- /**
13
- * Convert dataURL to Blob object.
14
- * @param dataURL {String} - dataURL string to convert
15
- * @returns {Blob} - result Blob object
16
- */
17
- function dataURLtoBlob(dataURL: string): Blob;
18
- /**
19
- * Timer for code banchmarks
20
- * @param {String} name - bame of timer
21
- * @return {Object} - object with timer stop method
22
- */
23
- function banchmarkTimer(name: string): any;
24
- /**
25
- * Get percent value
26
- * @param {number} value - target value
27
- * @param {number} sum - base value
28
- * @return {number} - percentage
29
- */
30
- function convertToPercent(value: number, sum: number): number;
31
- /**
32
- * Gets average by each column in CSV
33
- * @param {String} csv - CSV
34
- * @return {Array} - first element is headers, second element is averages
35
- */
36
- function getAverageByColumnsForCSV(csv: string): any[];
37
- /**
38
- * Parse number from string, if not number - returns 0
39
- * @param {String} string - string that may contain number
40
- * @return {[type]} - parsed number or 0
41
- */
42
- function parseNumberFromString(string: string): [type];
43
- /**
44
- * Get lines friquency to get from CSV
45
- * Helps to get from 1000 to 9999 lines from CSV to preven complex calculations
46
- * @param {Number} linesAmount - lines amount in CSV
47
- * @return {Number} - fines frequency
48
- */
49
- function getLinesFrequency(linesAmount: number): number;
50
- /**
51
- * Transform given string to a color (RGB)
52
- * @param {string} str
53
- * @returns {string}
54
- */
55
- function getColorFromString(str: string): string;
56
- /**
57
- * Transform given number to a color (RGB)
58
- * @param i
59
- * @returns {string}
60
- * @private
61
- */
62
- function intToRGB(i: any): string;
63
- /**
64
- * Transform given string to a hash code
65
- * @param str
66
- * @returns {number}
67
- * @private
68
- */
69
- function hashCode(str: any): number;
70
- /**
71
- * Optimize event handler via throttling
72
- * @param obj - event emitter (must have addEventListener method)
73
- * @param type - event type
74
- * @param callback - event handler
75
- * @param ctx - context for event handler execution
76
- * @returns {function()} - unsubscribe function
77
- */
78
- function throttledEventListener(obj: any, type: any, callback: any, ctx: any): () => any;
79
- /**
80
- * Get a snapshot for any DOM element on the page
81
- * @param elemId {string} - dom element id
82
- * @returns {string} - data URL for snapshot
83
- */
84
- function getSnapshotForElement(elemId: string): string;
85
- function getAssetStatusColor(status: any): "#9e9e9e" | "#f44336" | "#ffeb3b" | "#2196f3" | "#4caf50";
86
- /**
87
- * Finds closest to value in array of numbers
88
- * Source: https://stackoverflow.com/a/19277804/8337033
89
- * @param {array} array - array to find closest to value
90
- * @param {number} value - value to which find closest in array
91
- * @return {number} - closest to value in array
92
- */
93
- function closest(array: any[], value: number): number;
94
- function mathMax(a: any, b: any): any;
95
- function mathMin(a: any, b: any): any;
96
- /**
97
- * Gets operation by operation type
98
- * @param {number|null} operationType - operation type
99
- * @return {object|undefined} operation - operation
100
- */
101
- function getOperationByType(operationType: number | null): object | undefined;
102
- function getUserFullName(user: any): string;
103
- function getNameInitials(name: any): any;
104
- function getS3BucketName(): "corva-files-qa" | "corva-files";
105
- function getS3FileUrl(bucket: any, fileName: any): string;
106
- function getFileNameWithExtensionFromPath(path?: string): string;
107
- function hexToRgbA(hex: any, alpha?: number): string;
108
- function truncateString(str: any, limit: any): any;
109
- /**
110
- * Copies text to clipboard
111
- * @param {string} text - text to copy
112
- * @return {undefined}
113
- */
114
- function copyToClipboard(text: string): undefined;
30
+ export { formatValuePrecision };
31
+ export { downloadPDF };
32
+ export { unescapeLineBreaks };
33
+ export { dataURLtoBlob };
34
+ export { banchmarkTimer };
35
+ export { convertToPercent };
36
+ export { getAverageByColumnsForCSV };
37
+ export { getLinesFrequency };
38
+ export { getColorFromString };
39
+ export { intToRGB };
40
+ export { hashCode };
41
+ export { throttledEventListener };
42
+ export { getSnapshotForElement };
43
+ export { getAssetStatusColor };
44
+ export { closest };
45
+ export { mathMax };
46
+ export { mathMin };
47
+ export { getOperationByType };
48
+ export { getUserFullName };
49
+ export { getNameInitials };
50
+ export { getS3BucketName };
51
+ export { getS3FileUrl };
52
+ export { getFileNameWithExtensionFromPath };
53
+ export { hexToRgbA };
54
+ export { truncateString };
55
+ export { copyToClipboard };
115
56
  }
116
57
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/utils/main.js"],"names":[],"mappings":";;IAyBE,+CAKC;IAED,wDAKC;IAED;;;;;OAKG;IACH,qDAEC;IAED;;;;OAIG;IACH,yCAFa,IAAI,CAWhB;IAED;;;;OAIG;IACH,2CASC;IAED;;;;;OAKG;IACH,iCAJY,MAAM,OACN,MAAM,GACN,MAAM,CAMjB;IAED;;;;OAIG;IACH,uDAmCC;IAED;;;;OAIG;IACH,gDAFY,CAAC,IAAI,CAAC,CAKjB;IAED;;;;;OAKG;IACH,wDAWC;IAED;;;;OAIG;IACH,iCAHY,MAAM,GACL,MAAM,CAIlB;IAED;;;;;OAKG;IACH,2BAHa,MAAM,CAQlB;IAED;;;;;OAKG;IACH,6BAHa,MAAM,CASlB;IAED;;;;;;;OAOG;IACH,+EAFa,SAAU,CAmBtB;IAED;;;;OAIG;IACH,uCAHkB,MAAM,GACX,MAAM,CASlB;IAED,qGAWC;IAED;;;;;;OAMG;IACH,sCAHY,MAAM,GACN,MAAM,CAMjB;IAED,sCAOC;IAED,sCAOC;IAED;;;;OAIG;IACH,2CAHY,MAAM,GAAC,IAAI,GACX,MAAM,GAAC,SAAS,CAM3B;IAED,4CAEC;IAED,yCAMC;IAED,6DAKC;IAED,0DAEC;IAED,iEAEC;IAED,qDAIC;IAED,mDAEC;IAED;;;;OAIG;IACH,+BAHY,MAAM,GACN,SAAS,CAuBpB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/utils/main.js"],"names":[],"mappings":"AAwBO,sDAKN;AAEM,+DAKN;AAQM,4DAEN;AAOM,gDAFM,IAAI,CAWhB;AAOM,kDASN;AAQM,wCAJK,MAAM,OACN,MAAM,GACN,MAAM,CAMjB;AAOM,uDAFK,CAAC,IAAI,CAAC,CAKjB;AAQM,+DAWN;AAOM,8DAmCN;AAQM,kCAHM,MAAM,CAQlB;AAQM,oCAHM,MAAM,CASlB;AAOM,wCAHK,MAAM,GACL,MAAM,CAIlB;AAUM,sFAFM,SAAU,CAmBtB;AAOM,8CAHW,MAAM,GACX,MAAM,CASlB;AAEM,4GAWN;AASM,6CAHK,MAAM,GACN,MAAM,CAMjB;AAEM,6CAON;AAEM,6CAON;AAOM,kDAHK,MAAM,GAAC,IAAI,GACX,MAAM,GAAC,SAAS,CAM3B;AAEM,mDAEN;AAEM,gDAMN;AAEM,oEAKN;AAEM,iEAEN;AAEM,wEAEN;AAEM,4DAIN;AAEM,0DAEN;AAOM,sCAHK,MAAM,GACN,SAAS,CAuBpB"}
package/utils/main.js CHANGED
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/toConsumableArray";import r from"@babel/runtime/regenerator";import n from"file-saver";import o from"chroma-js";import i from"lodash/round";import a from"lodash/isNaN";import u from"lodash/isNumber";import c from"html2canvas";import s from"@material-ui/core/colors/grey";import m from"@material-ui/core/colors/red";import l from"@material-ui/core/colors/yellow";import f from"@material-ui/core/colors/blue";import p from"@material-ui/core/colors/green";import{SUPPORTED_DRILLING_OPERATIONS as h,DEFAULT_DRILLING_OPERATION_TYPE as d}from"../constants/apps.js";var g=s[500],v=m[500],b=l[500],N=f[500],w=p[500],F={formatValuePrecision:function(e){return Number.isFinite(e)?e<100&&e>-100?e.formatNumeral("0,0.00"):e.formatNumeral("0,0.0"):e},downloadPDF:function(e,t){var r=new File([t],"".concat(e,".pdf"),{type:"application/pdf;charset=utf-8"});n.saveAs(r)},unescapeLineBreaks:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/\\n/g,"\n")},dataURLtoBlob:function(e){for(var t=window.atob(e.split(",")[1]),r=e.split(",")[0].split(":")[1].split(";")[0],n=new ArrayBuffer(t.length),o=new Uint8Array(n),i=0;i<t.length;i+=1)o[i]=t.charCodeAt(i);return new Blob([n],{type:r})},banchmarkTimer:function(e){var t=new Date;return{stop:function(){var r=(new Date).getTime()-t.getTime();console.info("Timer:",e,"finished in",r,"ms")}}},convertToPercent:function(e,t){return e&&Number.isFinite(t)&&0!==t?Math.round(100*e/t*100)/100:0},getAverageByColumnsForCSV:function(e){var r=this,n=e.split("\n"),o=n[0].split(","),c=n[1].split(",").map((function(e){return[r.parseNumberFromString(e)]})),s=this.getLinesFrequency(n.length);n.shift();var m=n.reduce((function(e,n,o){if(o%s==0){var i=n.split(",").map(r.parseNumberFromString);return e.map((function(e,r){var n=+i[r];return u(n)&&!a(n)&&n>0?[].concat(t(e),[n]):e}))}return e}),c).map((function(e){return e.reduce((function(e,t){return e+t}))/e.length}));return m.map((function(e,t){return{header:o[t],value:i(e,5)}}))},parseNumberFromString:function(e){var t=+e;return a(t)?0:t},getLinesFrequency:function(e){var t="".concat(e);if(t.length<=4)return 1;var r=t.slice(4).length;return 1*Math.pow(10,r)},getColorFromString:function(e){return this.intToRGB(this.hashCode(e))},intToRGB:function(e){var t=(16777215&e).toString(16).toUpperCase();return"00000".substring(0,6-t.length)+t},hashCode:function(e){for(var t=0,r=0;r<e.length;r+=1)t=e.charCodeAt(r)+((t<<5)-t);return t},throttledEventListener:function(e,t,r,n){var o=!1,i=function(){o||(o=!0,window.requestAnimationFrame((function(){r.call(n),o=!1})))};return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}},getSnapshotForElement:function(t){return e(r.mark((function e(){var n,o,i,a;return r.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=window.document.getElementById(t)){e.next=3;break}return e.abrupt("return",null);case 3:return o=n.clientHeight,i=n.clientWidth,e.next=6,c(n,{height:o,width:i,logging:!1});case 6:return a=e.sent,e.abrupt("return",a.toDataURL());case 8:case"end":return e.stop()}}),e)})))()},getAssetStatusColor:function(e){return"active"===e?w:"complete"===e?N:"paused"===e?b:"idle"===e||"unknown"===e?g:v},closest:function(e,t){return e.reduce((function(e,r){return Math.abs(r-t)<Math.abs(e-t)?r:e}))},mathMax:function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.max(e,t):e:t},mathMin:function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.min(e,t):e:t},getOperationByType:function(e){return Object.values(h).find((function(t){return t.value===e||d}))},getUserFullName:function(e){return e?"".concat(e.first_name," ").concat(e.last_name):""},getNameInitials:function(e){return e.split(" ").slice(0,2).map((function(e){return e.substr(0,1)})).join("")},getS3BucketName:function(){return"development"===process.env.REACT_APP_ENVIRONMENT||"qa"===process.env.REACT_APP_ENVIRONMENT?"corva-files-qa":"corva-files"},getS3FileUrl:function(e,t){return"https://".concat(e,".s3.amazonaws.com/").concat(t)},getFileNameWithExtensionFromPath:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split("?")[0].replace(/^.*[\\/]/,"")},hexToRgbA:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=o(e).rgba();return r[r.length-1]=t,"rgba(".concat(r.join(","),")")},truncateString:function(e,t){return e.length>t?"".concat(e.substr(0,t-1),"&hellip;"):e},copyToClipboard:function(e){if(navigator.clipboard)navigator.clipboard.writeText(e);else{var t=document.createElement("textarea");t.textContent=e,document.body.appendChild(t);var r=document.getSelection(),n=document.createRange();n.selectNode(t),r.removeAllRanges(),r.addRange(n),document.execCommand("copy"),r.removeAllRanges(),document.body.removeChild(t)}}};window.getSnapshotForElement=F.getSnapshotForElement;export{F as default};
1
+ import e from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/toConsumableArray";import n from"@babel/runtime/regenerator";import r from"file-saver";import o from"chroma-js";import i from"lodash/round";import a from"lodash/isNaN";import u from"lodash/isNumber";import c from"html2canvas";import l from"@material-ui/core/colors/grey";import s from"@material-ui/core/colors/red";import m from"@material-ui/core/colors/yellow";import f from"@material-ui/core/colors/blue";import p from"@material-ui/core/colors/green";import{SUPPORTED_DRILLING_OPERATIONS as d,DEFAULT_DRILLING_OPERATION_TYPE as h}from"../constants/apps.js";var g,v=l[500],b=s[500],w=m[500],N=f[500],y=p[500],F=function(e){return Number.isFinite(e)?e<100&&e>-100?e.formatNumeral("0,0.00"):e.formatNumeral("0,0.0"):e},A=function(e,t){var n=new File([t],"".concat(e,".pdf"),{type:"application/pdf;charset=utf-8"});r.saveAs(n)},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/\\n/g,"\n")},T=function(e){for(var t=window.atob(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(t.length),o=new Uint8Array(r),i=0;i<t.length;i+=1)o[i]=t.charCodeAt(i);return new Blob([r],{type:n})},E=function(e){var t=new Date;return{stop:function(){var n=(new Date).getTime()-t.getTime();console.info("Timer:",e,"finished in",n,"ms")}}},x=function(e,t){return e&&Number.isFinite(t)&&0!==t?Math.round(100*e/t*100)/100:0},R=function(e){var t=+e;return a(t)?0:t},M=function(e){var t="".concat(e);if(t.length<=4)return 1;var n=t.slice(4).length;return 1*Math.pow(10,n)},S=function(e){var n=e.split("\n"),r=n[0].split(","),o=n[1].split(",").map((function(e){return[R(e)]})),c=M(n.length);n.shift();var l=n.reduce((function(e,n,r){if(r%c==0){var o=n.split(",").map(R);return e.map((function(e,n){var r=+o[n];return u(r)&&!a(r)&&r>0?[].concat(t(e),[r]):e}))}return e}),o).map((function(e){return e.reduce((function(e,t){return e+t}))/e.length}));return l.map((function(e,t){return{header:r[t],value:i(e,5)}}))},B=function(e){var t=(16777215&e).toString(16).toUpperCase();return"00000".substring(0,6-t.length)+t},P=function(e){for(var t=0,n=0;n<e.length;n+=1)t=e.charCodeAt(n)+((t<<5)-t);return t},L=function(e){return B(P(e))},k=function(e,t,n,r){var o=!1,i=function(){o||(o=!0,window.requestAnimationFrame((function(){n.call(r),o=!1})))};return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}},U=(g=e(n.mark((function e(t){var r,o,i,a;return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=window.document.getElementById(t)){e.next=3;break}return e.abrupt("return",null);case 3:return o=r.clientHeight,i=r.clientWidth,e.next=6,c(r,{height:o,width:i,logging:!1});case 6:return a=e.sent,e.abrupt("return",a.toDataURL());case 8:case"end":return e.stop()}}),e)}))),function(e){return g.apply(this,arguments)}),_=function(e){return"active"===e?y:"complete"===e?N:"paused"===e?w:"idle"===e||"unknown"===e?v:b},j=function(e,t){return e.reduce((function(e,n){return Math.abs(n-t)<Math.abs(e-t)?n:e}))},q=function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.max(e,t):e:t},D=function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.min(e,t):e:t},I=function(e){return Object.values(d).find((function(t){return t.value===e||h}))},O=function(e){return e?"".concat(e.first_name," ").concat(e.last_name):""},V=function(e){return e.split(" ").slice(0,2).map((function(e){return e.substr(0,1)})).join("")},G=function(){return"development"===process.env.REACT_APP_ENVIRONMENT||"qa"===process.env.REACT_APP_ENVIRONMENT?"corva-files-qa":"corva-files"},W=function(e,t){return"https://".concat(e,".s3.amazonaws.com/").concat(t)},z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split("?")[0].replace(/^.*[\\/]/,"")},H=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=o(e).rgba();return n[n.length-1]=t,"rgba(".concat(n.join(","),")")},J=function(e,t){return e.length>t?"".concat(e.substr(0,t-1),"&hellip;"):e},K=function(e){if(navigator.clipboard)navigator.clipboard.writeText(e);else{var t=document.createElement("textarea");t.textContent=e,document.body.appendChild(t);var n=document.getSelection(),r=document.createRange();r.selectNode(t),n.removeAllRanges(),n.addRange(r),document.execCommand("copy"),n.removeAllRanges(),document.body.removeChild(t)}},Q={formatValuePrecision:F,downloadPDF:A,unescapeLineBreaks:C,dataURLtoBlob:T,banchmarkTimer:E,convertToPercent:x,getAverageByColumnsForCSV:S,getLinesFrequency:M,getColorFromString:L,intToRGB:B,hashCode:P,throttledEventListener:k,getSnapshotForElement:U,getAssetStatusColor:_,closest:j,mathMax:q,mathMin:D,getOperationByType:I,getUserFullName:O,getNameInitials:V,getS3BucketName:G,getS3FileUrl:W,getFileNameWithExtensionFromPath:z,hexToRgbA:H,truncateString:J,copyToClipboard:K};window.getSnapshotForElement=U;export{E as banchmarkTimer,j as closest,x as convertToPercent,K as copyToClipboard,T as dataURLtoBlob,Q as default,A as downloadPDF,F as formatValuePrecision,_ as getAssetStatusColor,S as getAverageByColumnsForCSV,L as getColorFromString,z as getFileNameWithExtensionFromPath,M as getLinesFrequency,V as getNameInitials,I as getOperationByType,G as getS3BucketName,W as getS3FileUrl,U as getSnapshotForElement,O as getUserFullName,P as hashCode,H as hexToRgbA,B as intToRGB,q as mathMax,D as mathMin,R as parseNumberFromString,k as throttledEventListener,J as truncateString,C as unescapeLineBreaks};
2
2
  //# sourceMappingURL=main.js.map
package/utils/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../../src/utils/main.js"],"sourcesContent":["import FileSaver from 'file-saver';\nimport chroma from 'chroma-js';\nimport round from 'lodash/round';\nimport isNaN from 'lodash/isNaN';\nimport isNumber from 'lodash/isNumber';\n/**\n * TODO: html2canvas - is used in order to take snapshots for DOM elements.\n * It must be removed after moving snapshot functionality to the back-end\n */\nimport html2canvas from 'html2canvas';\nimport grey from '@material-ui/core/colors/grey';\nimport red from '@material-ui/core/colors/red';\nimport yellow from '@material-ui/core/colors/yellow';\nimport blue from '@material-ui/core/colors/blue';\nimport green from '@material-ui/core/colors/green';\n\nimport { SUPPORTED_DRILLING_OPERATIONS, DEFAULT_DRILLING_OPERATION_TYPE } from '~/constants/apps';\n\nconst grey500 = grey['500'];\nconst red500 = red['500'];\nconst yellow500 = yellow['500'];\nconst blue500 = blue['500'];\nconst green500 = green['500'];\n\nconst utils = {\n formatValuePrecision(value) {\n if (!Number.isFinite(value)) return value;\n\n const displayMorePrecise = value < 100 && value > -100;\n return displayMorePrecise ? value.formatNumeral('0,0.00') : value.formatNumeral('0,0.0');\n },\n\n downloadPDF(filename, pdfBlob) {\n const pdf = new File([pdfBlob], `${filename}.pdf`, {\n type: 'application/pdf;charset=utf-8',\n });\n FileSaver.saveAs(pdf);\n },\n\n /**\n * Unescape line break '\\n' symbols. Summary and description of App may contain escaped\n * single '\\\\n' or multiple '\\\\n\\\\n...' line break symbols.\n * @param {String} - String to unescape\n * @return {String} - Unescaped string\n */\n unescapeLineBreaks(string = '') {\n return string.replace(/\\\\n/g, '\\n');\n },\n\n /**\n * Convert dataURL to Blob object.\n * @param dataURL {String} - dataURL string to convert\n * @returns {Blob} - result Blob object\n */\n dataURLtoBlob(dataURL) {\n const byteString = window.atob(dataURL.split(',')[1]);\n const mimeString = dataURL.split(',')[0].split(':')[1].split(';')[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i += 1) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n },\n\n /**\n * Timer for code banchmarks\n * @param {String} name - bame of timer\n * @return {Object} - object with timer stop method\n */\n banchmarkTimer(name) {\n const start = new Date();\n return {\n stop() {\n const end = new Date();\n const time = end.getTime() - start.getTime();\n console.info('Timer:', name, 'finished in', time, 'ms'); // eslint-disable-line no-console\n },\n };\n },\n\n /**\n * Get percent value\n * @param {number} value - target value\n * @param {number} sum - base value\n * @return {number} - percentage\n */\n convertToPercent(value, sum) {\n return value && Number.isFinite(sum) && sum !== 0\n ? Math.round(((value * 100) / sum) * 100) / 100\n : 0;\n },\n\n /**\n * Gets average by each column in CSV\n * @param {String} csv - CSV\n * @return {Array} - first element is headers, second element is averages\n */\n getAverageByColumnsForCSV(csv) {\n const lines = csv.split('\\n');\n\n const headers = lines[0].split(',');\n const initAverages = lines[1].split(',').map(string => [this.parseNumberFromString(string)]);\n const linesFrequency = this.getLinesFrequency(lines.length);\n\n lines.shift(); // NOTE: Remove CSV headers\n\n const averages = lines\n .reduce((averagesAccum, line, index) => {\n if (index % linesFrequency === 0) {\n // NOTE: every 'linesFrequency' line\n const numbers = line.split(',').map(this.parseNumberFromString);\n\n return averagesAccum.map((averagesArr, i) => {\n const number = +numbers[i];\n return isNumber(number) && !isNaN(number) && number > 0\n ? [...averagesArr, number]\n : averagesArr;\n });\n }\n return averagesAccum;\n }, initAverages)\n .map(averagesArr => {\n const sum = averagesArr.reduce((a, b) => a + b);\n return sum / averagesArr.length;\n });\n\n const maxDigitsAfterComa = 5;\n\n return averages.map((average, index) => ({\n header: headers[index],\n value: round(average, maxDigitsAfterComa),\n }));\n },\n\n /**\n * Parse number from string, if not number - returns 0\n * @param {String} string - string that may contain number\n * @return {[type]} - parsed number or 0\n */\n parseNumberFromString(string) {\n const number = +string;\n return isNaN(number) ? 0 : number;\n },\n\n /**\n * Get lines friquency to get from CSV\n * Helps to get from 1000 to 9999 lines from CSV to preven complex calculations\n * @param {Number} linesAmount - lines amount in CSV\n * @return {Number} - fines frequency\n */\n getLinesFrequency(linesAmount) {\n const linesFrequency = 1;\n const linesAmountString = `${linesAmount}`;\n const maxDigits = 4; // NOTE: linesAmount <= 9999\n\n if (linesAmountString.length <= maxDigits) {\n return linesFrequency;\n }\n const amountOfDigitsAfterThird = linesAmountString.slice(maxDigits).length;\n const numberWithSameAmountOfZeroes = 10 ** amountOfDigitsAfterThird;\n return linesFrequency * numberWithSameAmountOfZeroes;\n },\n\n /**\n * Transform given string to a color (RGB)\n * @param {string} str\n * @returns {string}\n */\n getColorFromString(str) {\n return this.intToRGB(this.hashCode(str));\n },\n\n /**\n * Transform given number to a color (RGB)\n * @param i\n * @returns {string}\n * @private\n */\n intToRGB(i) {\n const c = (i & 0x00ffffff) // eslint-disable-line no-bitwise\n .toString(16)\n .toUpperCase();\n return '00000'.substring(0, 6 - c.length) + c;\n },\n\n /**\n * Transform given string to a hash code\n * @param str\n * @returns {number}\n * @private\n */\n hashCode(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i += 1) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash); // eslint-disable-line no-bitwise\n }\n return hash;\n },\n\n /**\n * Optimize event handler via throttling\n * @param obj - event emitter (must have addEventListener method)\n * @param type - event type\n * @param callback - event handler\n * @param ctx - context for event handler execution\n * @returns {function()} - unsubscribe function\n */\n throttledEventListener(obj, type, callback, ctx) {\n let running = false;\n\n const func = function eventListener() {\n if (running) return;\n running = true;\n window.requestAnimationFrame(() => {\n callback.call(ctx);\n running = false;\n });\n };\n\n obj.addEventListener(type, func);\n\n return () => {\n obj.removeEventListener(type, func);\n };\n },\n\n /**\n * Get a snapshot for any DOM element on the page\n * @param elemId {string} - dom element id\n * @returns {string} - data URL for snapshot\n */\n async getSnapshotForElement(elemId) {\n const elem = window.document.getElementById(elemId);\n if (!elem) return null;\n\n const { clientHeight: height, clientWidth: width } = elem;\n const canvas = await html2canvas(elem, { height, width, logging: false });\n return canvas.toDataURL();\n },\n\n getAssetStatusColor(status) {\n if (status === 'active') {\n return green500;\n } else if (status === 'complete') {\n return blue500;\n } else if (status === 'paused') {\n return yellow500;\n } else if (status === 'idle' || status === 'unknown') {\n return grey500;\n }\n return red500;\n },\n\n /**\n * Finds closest to value in array of numbers\n * Source: https://stackoverflow.com/a/19277804/8337033\n * @param {array} array - array to find closest to value\n * @param {number} value - value to which find closest in array\n * @return {number} - closest to value in array\n */\n closest(array, value) {\n return array.reduce((currentClosest, arrayItem) =>\n Math.abs(arrayItem - value) < Math.abs(currentClosest - value) ? arrayItem : currentClosest\n );\n },\n\n mathMax(a, b) {\n if (!Number.isFinite(a)) {\n return b;\n } else if (!Number.isFinite(b)) {\n return a;\n }\n return Math.max(a, b);\n },\n\n mathMin(a, b) {\n if (!Number.isFinite(a)) {\n return b;\n } else if (!Number.isFinite(b)) {\n return a;\n }\n return Math.min(a, b);\n },\n\n /**\n * Gets operation by operation type\n * @param {number|null} operationType - operation type\n * @return {object|undefined} operation - operation\n */\n getOperationByType(operationType) {\n return Object.values(SUPPORTED_DRILLING_OPERATIONS).find(\n ({ value }) => value === operationType || DEFAULT_DRILLING_OPERATION_TYPE\n );\n },\n\n getUserFullName(user) {\n return user ? `${user.first_name} ${user.last_name}` : '';\n },\n\n getNameInitials(name) {\n return name\n .split(' ')\n .slice(0, 2)\n .map(part => part.substr(0, 1))\n .join('');\n },\n\n getS3BucketName() {\n return process.env.REACT_APP_ENVIRONMENT === 'development' ||\n process.env.REACT_APP_ENVIRONMENT === 'qa'\n ? 'corva-files-qa'\n : 'corva-files';\n },\n\n getS3FileUrl(bucket, fileName) {\n return `https://${bucket}.s3.amazonaws.com/${fileName}`;\n },\n\n getFileNameWithExtensionFromPath(path = '') {\n return path.split('?')[0].replace(/^.*[\\\\/]/, '');\n },\n\n hexToRgbA(hex, alpha = 1) {\n const rgba = chroma(hex).rgba();\n rgba[rgba.length - 1] = alpha;\n return `rgba(${rgba.join(',')})`;\n },\n\n truncateString(str, limit) {\n return str.length > limit ? `${str.substr(0, limit - 1)}&hellip;` : str;\n },\n\n /**\n * Copies text to clipboard\n * @param {string} text - text to copy\n * @return {undefined}\n */\n copyToClipboard(text) {\n // NOTE: it doesn't work if page is served from insecure origin like http://app.local.corva.ai\n if (navigator.clipboard) {\n navigator.clipboard.writeText(text);\n return;\n }\n\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n document.body.appendChild(textarea);\n\n const selection = document.getSelection();\n const range = document.createRange();\n range.selectNode(textarea);\n selection.removeAllRanges();\n selection.addRange(range);\n\n document.execCommand('copy');\n\n selection.removeAllRanges();\n document.body.removeChild(textarea);\n },\n};\n\n/**\n * Enable that for \"HTML to image\" service\n */\nwindow.getSnapshotForElement = utils.getSnapshotForElement;\n\nexport default utils;\n"],"names":["grey500","grey","red500","red","yellow500","yellow","blue500","blue","green500","green","utils","formatValuePrecision","value","Number","isFinite","formatNumeral","downloadPDF","filename","pdfBlob","pdf","File","type","FileSaver","saveAs","unescapeLineBreaks","string","replace","dataURLtoBlob","dataURL","byteString","window","atob","split","mimeString","ab","ArrayBuffer","length","ia","Uint8Array","i","charCodeAt","Blob","banchmarkTimer","name","start","Date","stop","time","getTime","console","info","convertToPercent","sum","Math","round","getAverageByColumnsForCSV","csv","_this","this","lines","headers","initAverages","map","parseNumberFromString","linesFrequency","getLinesFrequency","shift","averages","reduce","averagesAccum","line","index","numbers","averagesArr","number","isNumber","isNaN","concat","_toConsumableArray","a","b","average","header","linesAmount","linesAmountString","amountOfDigitsAfterThird","slice","pow","getColorFromString","str","intToRGB","hashCode","c","toString","toUpperCase","substring","hash","throttledEventListener","obj","callback","ctx","running","func","requestAnimationFrame","call","addEventListener","removeEventListener","getSnapshotForElement","elemId","_asyncToGenerator","_regeneratorRuntime","mark","_callee","elem","height","width","canvas","wrap","_context","prev","next","document","getElementById","abrupt","clientHeight","clientWidth","html2canvas","logging","sent","toDataURL","getAssetStatusColor","status","closest","array","currentClosest","arrayItem","abs","mathMax","max","mathMin","min","getOperationByType","operationType","Object","values","SUPPORTED_DRILLING_OPERATIONS","find","_ref","DEFAULT_DRILLING_OPERATION_TYPE","getUserFullName","user","first_name","last_name","getNameInitials","part","substr","join","getS3BucketName","process","env","REACT_APP_ENVIRONMENT","getS3FileUrl","bucket","fileName","getFileNameWithExtensionFromPath","path","hexToRgbA","hex","alpha","rgba","chroma","truncateString","limit","copyToClipboard","text","navigator","clipboard","writeText","textarea","createElement","textContent","body","appendChild","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","execCommand","removeChild"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../../src/utils/main.js"],"sourcesContent":["import FileSaver from 'file-saver';\nimport chroma from 'chroma-js';\nimport round from 'lodash/round';\nimport isNaN from 'lodash/isNaN';\nimport isNumber from 'lodash/isNumber';\n/**\n * TODO: html2canvas - is used in order to take snapshots for DOM elements.\n * It must be removed after moving snapshot functionality to the back-end\n */\nimport html2canvas from 'html2canvas';\nimport grey from '@material-ui/core/colors/grey';\nimport red from '@material-ui/core/colors/red';\nimport yellow from '@material-ui/core/colors/yellow';\nimport blue from '@material-ui/core/colors/blue';\nimport green from '@material-ui/core/colors/green';\n\nimport { SUPPORTED_DRILLING_OPERATIONS, DEFAULT_DRILLING_OPERATION_TYPE } from '~/constants/apps';\n\nconst grey500 = grey['500'];\nconst red500 = red['500'];\nconst yellow500 = yellow['500'];\nconst blue500 = blue['500'];\nconst green500 = green['500'];\n\nexport const formatValuePrecision = value => {\n if (!Number.isFinite(value)) return value;\n\n const displayMorePrecise = value < 100 && value > -100;\n return displayMorePrecise ? value.formatNumeral('0,0.00') : value.formatNumeral('0,0.0');\n};\n\nexport const downloadPDF = (filename, pdfBlob) => {\n const pdf = new File([pdfBlob], `${filename}.pdf`, {\n type: 'application/pdf;charset=utf-8',\n });\n FileSaver.saveAs(pdf);\n};\n\n/**\n * Unescape line break '\\n' symbols. Summary and description of App may contain escaped\n * single '\\\\n' or multiple '\\\\n\\\\n...' line break symbols.\n * @param {String} - String to unescape\n * @return {String} - Unescaped string\n */\nexport const unescapeLineBreaks = (string = '') => {\n return string.replace(/\\\\n/g, '\\n');\n};\n\n/**\n * Convert dataURL to Blob object.\n * @param dataURL {String} - dataURL string to convert\n * @returns {Blob} - result Blob object\n */\nexport const dataURLtoBlob = dataURL => {\n const byteString = window.atob(dataURL.split(',')[1]);\n const mimeString = dataURL.split(',')[0].split(':')[1].split(';')[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i += 1) {\n ia[i] = byteString.charCodeAt(i);\n }\n return new Blob([ab], { type: mimeString });\n};\n\n/**\n * Timer for code banchmarks\n * @param {String} name - bame of timer\n * @return {Object} - object with timer stop method\n */\nexport const banchmarkTimer = name => {\n const start = new Date();\n return {\n stop() {\n const end = new Date();\n const time = end.getTime() - start.getTime();\n console.info('Timer:', name, 'finished in', time, 'ms'); // eslint-disable-line no-console\n },\n };\n};\n\n/**\n * Get percent value\n * @param {number} value - target value\n * @param {number} sum - base value\n * @return {number} - percentage\n */\nexport const convertToPercent = (value, sum) => {\n return value && Number.isFinite(sum) && sum !== 0\n ? Math.round(((value * 100) / sum) * 100) / 100\n : 0;\n};\n\n/**\n * Parse number from string, if not number - returns 0\n * @param {String} string - string that may contain number\n * @return {[type]} - parsed number or 0\n */\nexport const parseNumberFromString = string => {\n const number = +string;\n return isNaN(number) ? 0 : number;\n};\n\n/**\n * Get lines friquency to get from CSV\n * Helps to get from 1000 to 9999 lines from CSV to preven complex calculations\n * @param {Number} linesAmount - lines amount in CSV\n * @return {Number} - fines frequency\n */\nexport const getLinesFrequency = linesAmount => {\n const linesFrequency = 1;\n const linesAmountString = `${linesAmount}`;\n const maxDigits = 4; // NOTE: linesAmount <= 9999\n\n if (linesAmountString.length <= maxDigits) {\n return linesFrequency;\n }\n const amountOfDigitsAfterThird = linesAmountString.slice(maxDigits).length;\n const numberWithSameAmountOfZeroes = 10 ** amountOfDigitsAfterThird;\n return linesFrequency * numberWithSameAmountOfZeroes;\n};\n\n/**\n * Gets average by each column in CSV\n * @param {String} csv - CSV\n * @return {Array} - first element is headers, second element is averages\n */\nexport const getAverageByColumnsForCSV = csv => {\n const lines = csv.split('\\n');\n\n const headers = lines[0].split(',');\n const initAverages = lines[1].split(',').map(string => [parseNumberFromString(string)]);\n const linesFrequency = getLinesFrequency(lines.length);\n\n lines.shift(); // NOTE: Remove CSV headers\n\n const averages = lines\n .reduce((averagesAccum, line, index) => {\n if (index % linesFrequency === 0) {\n // NOTE: every 'linesFrequency' line\n const numbers = line.split(',').map(parseNumberFromString);\n\n return averagesAccum.map((averagesArr, i) => {\n const number = +numbers[i];\n return isNumber(number) && !isNaN(number) && number > 0\n ? [...averagesArr, number]\n : averagesArr;\n });\n }\n return averagesAccum;\n }, initAverages)\n .map(averagesArr => {\n const sum = averagesArr.reduce((a, b) => a + b);\n return sum / averagesArr.length;\n });\n\n const maxDigitsAfterComa = 5;\n\n return averages.map((average, index) => ({\n header: headers[index],\n value: round(average, maxDigitsAfterComa),\n }));\n};\n\n/**\n * Transform given number to a color (RGB)\n * @param i\n * @returns {string}\n * @private\n */\nexport const intToRGB = i => {\n const c = (i & 0x00ffffff) // eslint-disable-line no-bitwise\n .toString(16)\n .toUpperCase();\n return '00000'.substring(0, 6 - c.length) + c;\n};\n\n/**\n * Transform given string to a hash code\n * @param str\n * @returns {number}\n * @private\n */\nexport const hashCode = str => {\n let hash = 0;\n for (let i = 0; i < str.length; i += 1) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash); // eslint-disable-line no-bitwise\n }\n return hash;\n};\n\n/**\n * Transform given string to a color (RGB)\n * @param {string} str\n * @returns {string}\n */\nexport const getColorFromString = str => {\n return intToRGB(hashCode(str));\n};\n\n/**\n * Optimize event handler via throttling\n * @param obj - event emitter (must have addEventListener method)\n * @param type - event type\n * @param callback - event handler\n * @param ctx - context for event handler execution\n * @returns {function()} - unsubscribe function\n */\nexport const throttledEventListener = (obj, type, callback, ctx) => {\n let running = false;\n\n const func = function eventListener() {\n if (running) return;\n running = true;\n window.requestAnimationFrame(() => {\n callback.call(ctx);\n running = false;\n });\n };\n\n obj.addEventListener(type, func);\n\n return () => {\n obj.removeEventListener(type, func);\n };\n};\n\n/**\n * Get a snapshot for any DOM element on the page\n * @param elemId {string} - dom element id\n * @returns {string} - data URL for snapshot\n */\nexport const getSnapshotForElement = async elemId => {\n const elem = window.document.getElementById(elemId);\n if (!elem) return null;\n\n const { clientHeight: height, clientWidth: width } = elem;\n const canvas = await html2canvas(elem, { height, width, logging: false });\n return canvas.toDataURL();\n};\n\nexport const getAssetStatusColor = status => {\n if (status === 'active') {\n return green500;\n } else if (status === 'complete') {\n return blue500;\n } else if (status === 'paused') {\n return yellow500;\n } else if (status === 'idle' || status === 'unknown') {\n return grey500;\n }\n return red500;\n};\n\n/**\n * Finds closest to value in array of numbers\n * Source: https://stackoverflow.com/a/19277804/8337033\n * @param {array} array - array to find closest to value\n * @param {number} value - value to which find closest in array\n * @return {number} - closest to value in array\n */\nexport const closest = (array, value) => {\n return array.reduce((currentClosest, arrayItem) =>\n Math.abs(arrayItem - value) < Math.abs(currentClosest - value) ? arrayItem : currentClosest\n );\n};\n\nexport const mathMax = (a, b) => {\n if (!Number.isFinite(a)) {\n return b;\n } else if (!Number.isFinite(b)) {\n return a;\n }\n return Math.max(a, b);\n};\n\nexport const mathMin = (a, b) => {\n if (!Number.isFinite(a)) {\n return b;\n } else if (!Number.isFinite(b)) {\n return a;\n }\n return Math.min(a, b);\n};\n\n/**\n * Gets operation by operation type\n * @param {number|null} operationType - operation type\n * @return {object|undefined} operation - operation\n */\nexport const getOperationByType = operationType => {\n return Object.values(SUPPORTED_DRILLING_OPERATIONS).find(\n ({ value }) => value === operationType || DEFAULT_DRILLING_OPERATION_TYPE\n );\n};\n\nexport const getUserFullName = user => {\n return user ? `${user.first_name} ${user.last_name}` : '';\n};\n\nexport const getNameInitials = name => {\n return name\n .split(' ')\n .slice(0, 2)\n .map(part => part.substr(0, 1))\n .join('');\n};\n\nexport const getS3BucketName = () => {\n return process.env.REACT_APP_ENVIRONMENT === 'development' ||\n process.env.REACT_APP_ENVIRONMENT === 'qa'\n ? 'corva-files-qa'\n : 'corva-files';\n};\n\nexport const getS3FileUrl = (bucket, fileName) => {\n return `https://${bucket}.s3.amazonaws.com/${fileName}`;\n};\n\nexport const getFileNameWithExtensionFromPath = (path = '') => {\n return path.split('?')[0].replace(/^.*[\\\\/]/, '');\n};\n\nexport const hexToRgbA = (hex, alpha = 1) => {\n const rgba = chroma(hex).rgba();\n rgba[rgba.length - 1] = alpha;\n return `rgba(${rgba.join(',')})`;\n};\n\nexport const truncateString = (str, limit) => {\n return str.length > limit ? `${str.substr(0, limit - 1)}&hellip;` : str;\n};\n\n/**\n * Copies text to clipboard\n * @param {string} text - text to copy\n * @return {undefined}\n */\nexport const copyToClipboard = text => {\n // NOTE: it doesn't work if page is served from insecure origin like http://app.local.corva.ai\n if (navigator.clipboard) {\n navigator.clipboard.writeText(text);\n return;\n }\n\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n document.body.appendChild(textarea);\n\n const selection = document.getSelection();\n const range = document.createRange();\n range.selectNode(textarea);\n selection.removeAllRanges();\n selection.addRange(range);\n\n document.execCommand('copy');\n\n selection.removeAllRanges();\n document.body.removeChild(textarea);\n};\n\nconst utils = {\n formatValuePrecision,\n downloadPDF,\n unescapeLineBreaks,\n dataURLtoBlob,\n banchmarkTimer,\n convertToPercent,\n getAverageByColumnsForCSV,\n getLinesFrequency,\n getColorFromString,\n intToRGB,\n hashCode,\n throttledEventListener,\n getSnapshotForElement,\n getAssetStatusColor,\n closest,\n mathMax,\n mathMin,\n getOperationByType,\n getUserFullName,\n getNameInitials,\n getS3BucketName,\n getS3FileUrl,\n getFileNameWithExtensionFromPath,\n hexToRgbA,\n truncateString,\n copyToClipboard,\n};\n\n/**\n * Enable that for \"HTML to image\" service\n */\nwindow.getSnapshotForElement = getSnapshotForElement;\n\nexport default utils;\n"],"names":["_ref","grey500","grey","red500","red","yellow500","yellow","blue500","blue","green500","green","formatValuePrecision","value","Number","isFinite","formatNumeral","downloadPDF","filename","pdfBlob","pdf","File","type","FileSaver","saveAs","unescapeLineBreaks","string","replace","dataURLtoBlob","dataURL","byteString","window","atob","split","mimeString","ab","ArrayBuffer","length","ia","Uint8Array","i","charCodeAt","Blob","banchmarkTimer","name","start","Date","stop","time","getTime","console","info","convertToPercent","sum","Math","round","parseNumberFromString","number","isNaN","getLinesFrequency","linesAmount","linesAmountString","amountOfDigitsAfterThird","slice","pow","getAverageByColumnsForCSV","csv","lines","headers","initAverages","map","linesFrequency","shift","averages","reduce","averagesAccum","line","index","numbers","averagesArr","isNumber","concat","_toConsumableArray","a","b","average","header","intToRGB","c","toString","toUpperCase","substring","hashCode","str","hash","getColorFromString","throttledEventListener","obj","callback","ctx","running","func","requestAnimationFrame","call","addEventListener","removeEventListener","getSnapshotForElement","_asyncToGenerator","_regeneratorRuntime","mark","elemId","elem","height","width","canvas","wrap","_context","prev","next","document","getElementById","abrupt","clientHeight","clientWidth","html2canvas","logging","sent","toDataURL","_callee","_x","apply","this","arguments","getAssetStatusColor","status","closest","array","currentClosest","arrayItem","abs","mathMax","max","mathMin","min","getOperationByType","operationType","Object","values","SUPPORTED_DRILLING_OPERATIONS","find","_ref2","DEFAULT_DRILLING_OPERATION_TYPE","getUserFullName","user","first_name","last_name","getNameInitials","part","substr","join","getS3BucketName","process","env","REACT_APP_ENVIRONMENT","getS3FileUrl","bucket","fileName","getFileNameWithExtensionFromPath","path","hexToRgbA","hex","alpha","rgba","chroma","truncateString","limit","copyToClipboard","text","navigator","clipboard","writeText","textarea","createElement","textContent","body","appendChild","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","execCommand","removeChild","utils"],"mappings":"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"}
@@ -1,12 +1,3 @@
1
+ export function mapUnits(data: any, units: any): any;
1
2
  export default mapUnits;
2
- /**
3
- * Map titles(labels) with respective metrics
4
- * @param {Object} data - object with titles/labels and metrics: { footage: {
5
- * label: 'Some text',
6
- * metrics: 'length',
7
- * } }
8
- * @param {Object} units - object with metrics: { length: 'meters' }
9
- * @return {Object} - Formatted object with titles(labels) and respective metrics
10
- */
11
- declare function mapUnits(data: any, units: any): any;
12
3
  //# sourceMappingURL=mapUnits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapUnits.d.ts","sourceRoot":"","sources":["../../src/utils/mapUnits.js"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,sDAUQ"}
1
+ {"version":3,"file":"mapUnits.d.ts","sourceRoot":"","sources":["../../src/utils/mapUnits.js"],"names":[],"mappings":"AAUO,qDAUC"}
package/utils/mapUnits.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=function(e,r){return Object.keys(e).reduce((function(t,c){var n=e[c];return t[c]=n.label,"metrics"in n&&(t[c]+=" (".concat(r[n.metrics],")")),t}),{})};export{e as default};
1
+ var e=function(e,r){return Object.keys(e).reduce((function(t,c){var n=e[c];return t[c]=n.label,"metrics"in n&&(t[c]+=" (".concat(r[n.metrics],")")),t}),{})};export{e as default,e as mapUnits};
2
2
  //# sourceMappingURL=mapUnits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapUnits.js","sources":["../../src/utils/mapUnits.js"],"sourcesContent":["/**\n * Map titles(labels) with respective metrics\n * @param {Object} data - object with titles/labels and metrics: { footage: {\n * label: 'Some text',\n * metrics: 'length',\n * } }\n * @param {Object} units - object with metrics: { length: 'meters' }\n * @return {Object} - Formatted object with titles(labels) and respective metrics\n */\n\nconst mapUnits = (data, units) =>\n Object.keys(data).reduce((acc, key) => {\n const field = data[key];\n acc[key] = field.label;\n\n if ('metrics' in field) {\n acc[key] += ` (${units[field.metrics]})`;\n }\n\n return acc;\n }, {});\n\nexport default mapUnits;\n"],"names":["mapUnits","data","units","Object","keys","reduce","acc","key","field","label","metrics"],"mappings":"AAUA,IAAMA,EAAW,SAACC,EAAMC,GAAK,OAC3BC,OAAOC,KAAKH,GAAMI,QAAO,SAACC,EAAKC,GAC7B,IAAMC,EAAQP,EAAKM,GAOnB,OANAD,EAAIC,GAAOC,EAAMC,MAEb,YAAaD,IACfF,EAAIC,IAAaL,KAAAA,OAAAA,EAAMM,EAAME,SAAW,MAGnCJ,CACR,GAAE,CAAE,EAAC"}
1
+ {"version":3,"file":"mapUnits.js","sources":["../../src/utils/mapUnits.js"],"sourcesContent":["/**\n * Map titles(labels) with respective metrics\n * @param {Object} data - object with titles/labels and metrics: { footage: {\n * label: 'Some text',\n * metrics: 'length',\n * } }\n * @param {Object} units - object with metrics: { length: 'meters' }\n * @return {Object} - Formatted object with titles(labels) and respective metrics\n */\n\nexport const mapUnits = (data, units) =>\n Object.keys(data).reduce((acc, key) => {\n const field = data[key];\n acc[key] = field.label;\n\n if ('metrics' in field) {\n acc[key] += ` (${units[field.metrics]})`;\n }\n\n return acc;\n }, {});\n\nexport default mapUnits;\n"],"names":["mapUnits","data","units","Object","keys","reduce","acc","key","field","label","metrics"],"mappings":"AAUO,IAAMA,EAAW,SAACC,EAAMC,GAAK,OAClCC,OAAOC,KAAKH,GAAMI,QAAO,SAACC,EAAKC,GAC7B,IAAMC,EAAQP,EAAKM,GAOnB,OANAD,EAAIC,GAAOC,EAAMC,MAEb,YAAaD,IACfF,EAAIC,IAAaL,KAAAA,OAAAA,EAAMM,EAAME,SAAW,MAGnCJ,CACR,GAAE,CAAE,EAAC"}
@@ -1,2 +1,3 @@
1
- export default function checkUserPermissions(user: any, permissions?: any[]): any;
1
+ export function checkUserPermissions(user: any, permissions?: any[]): any;
2
+ export default checkUserPermissions;
2
3
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/utils/permissions.js"],"names":[],"mappings":"AAuBA,kFAKC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/utils/permissions.js"],"names":[],"mappings":"AAuBA,0EAKC"}
@@ -1,2 +1,2 @@
1
- import r from"lodash/get";function n(r){return"admin"===r.role}var e={is_admin:n,is_corva_admin:function(e){return n(e)&&"corva"===r(e,["company","provider"],null)}};function o(r,n){if(n in e)return e[n](r);throw new Error("There is no rule ".concat(n,", please check the spelling"))}function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.reduce((function(n,e){return n&&o(r,e)}),!0)}export{t as default};
1
+ import r from"lodash/get";function n(r){return"admin"===r.role}var e={is_admin:n,is_corva_admin:function(e){return n(e)&&"corva"===r(e,["company","provider"],null)}};function o(r,n){if(n in e)return e[n](r);throw new Error("There is no rule ".concat(n,", please check the spelling"))}function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.reduce((function(n,e){return n&&o(r,e)}),!0)}export{t as checkUserPermissions,t as default};
2
2
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sources":["../../src/utils/permissions.js"],"sourcesContent":["import get from 'lodash/get';\n\nfunction isAdmin(user) {\n return user.role === 'admin';\n}\n\nfunction isCorvaAdmin(user) {\n return isAdmin(user) && get(user, ['company', 'provider'], null) === 'corva';\n}\n\nconst PERMISSION_RULES = {\n is_admin: isAdmin,\n is_corva_admin: isCorvaAdmin,\n};\n\nfunction checkUserPermissionByKey(user, key) {\n if (key in PERMISSION_RULES) {\n return PERMISSION_RULES[key](user);\n }\n\n throw new Error(`There is no rule ${key}, please check the spelling`);\n}\n\nexport default function checkUserPermissions(user, permissions = []) {\n return permissions.reduce(\n (isAllowed, rule) => isAllowed && checkUserPermissionByKey(user, rule),\n true\n );\n}\n"],"names":["isAdmin","user","role","PERMISSION_RULES","is_admin","is_corva_admin","get","checkUserPermissionByKey","key","Error","checkUserPermissions","permissions","reduce","isAllowed","rule"],"mappings":"0BAEA,SAASA,EAAQC,GACf,MAAqB,UAAdA,EAAKC,IACd,CAMA,IAAMC,EAAmB,CACvBC,SAAUJ,EACVK,eANF,SAAsBJ,GACpB,OAAOD,EAAQC,IAAsD,UAA7CK,EAAIL,EAAM,CAAC,UAAW,YAAa,KAC7D,GAOA,SAASM,EAAyBN,EAAMO,GACtC,GAAIA,KAAOL,EACT,OAAOA,EAAiBK,GAAKP,GAG/B,MAAM,IAAIQ,MAA0BD,oBAAAA,OAAAA,EAAiC,+BACvE,CAEe,SAASE,EAAqBT,GAAwB,IAAlBU,yDAAc,GAC/D,OAAOA,EAAYC,QACjB,SAACC,EAAWC,GAAI,OAAKD,GAAaN,EAAyBN,EAAMa,EAAK,IACtE,EAEJ"}
1
+ {"version":3,"file":"permissions.js","sources":["../../src/utils/permissions.js"],"sourcesContent":["import get from 'lodash/get';\n\nfunction isAdmin(user) {\n return user.role === 'admin';\n}\n\nfunction isCorvaAdmin(user) {\n return isAdmin(user) && get(user, ['company', 'provider'], null) === 'corva';\n}\n\nconst PERMISSION_RULES = {\n is_admin: isAdmin,\n is_corva_admin: isCorvaAdmin,\n};\n\nfunction checkUserPermissionByKey(user, key) {\n if (key in PERMISSION_RULES) {\n return PERMISSION_RULES[key](user);\n }\n\n throw new Error(`There is no rule ${key}, please check the spelling`);\n}\n\nexport function checkUserPermissions(user, permissions = []) {\n return permissions.reduce(\n (isAllowed, rule) => isAllowed && checkUserPermissionByKey(user, rule),\n true\n );\n}\n\nexport default checkUserPermissions;\n"],"names":["isAdmin","user","role","PERMISSION_RULES","is_admin","is_corva_admin","get","checkUserPermissionByKey","key","Error","checkUserPermissions","permissions","reduce","isAllowed","rule"],"mappings":"0BAEA,SAASA,EAAQC,GACf,MAAqB,UAAdA,EAAKC,IACd,CAMA,IAAMC,EAAmB,CACvBC,SAAUJ,EACVK,eANF,SAAsBJ,GACpB,OAAOD,EAAQC,IAAsD,UAA7CK,EAAIL,EAAM,CAAC,UAAW,YAAa,KAC7D,GAOA,SAASM,EAAyBN,EAAMO,GACtC,GAAIA,KAAOL,EACT,OAAOA,EAAiBK,GAAKP,GAG/B,MAAM,IAAIQ,MAA0BD,oBAAAA,OAAAA,EAAiC,+BACvE,CAEO,SAASE,EAAqBT,GAAwB,IAAlBU,yDAAc,GACvD,OAAOA,EAAYC,QACjB,SAACC,EAAWC,GAAI,OAAKD,GAAaN,EAAyBN,EAAMa,EAAK,IACtE,EAEJ"}