@corva/ui 3.22.3 → 3.22.4

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 (48) 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/WellSummary/WellSummaryItemValue.js +1 -1
  19. package/cjs-bundle/components/WellSummary/WellSummaryItemValue.js.map +1 -1
  20. package/cjs-bundle/componentsV2/Avatar/Avatar.js +1 -1
  21. package/cjs-bundle/componentsV2/Avatar/constants.js +1 -1
  22. package/cjs-bundle/utils/index.js +1 -1
  23. package/cjs-bundle/utils/index.js.map +1 -1
  24. package/cjs-bundle/utils/lasParser.js +1 -1
  25. package/cjs-bundle/utils/lasParser.js.map +1 -1
  26. package/cjs-bundle/utils/main.js +1 -1
  27. package/cjs-bundle/utils/main.js.map +1 -1
  28. package/cjs-bundle/utils/mapUnits.js +1 -1
  29. package/cjs-bundle/utils/mapUnits.js.map +1 -1
  30. package/cjs-bundle/utils/permissions.js +1 -1
  31. package/cjs-bundle/utils/permissions.js.map +1 -1
  32. package/componentsV2/CopyToClipboard/CopyToClipboard.js +1 -1
  33. package/package.json +1 -1
  34. package/utils/lasParser.d.ts +2 -1
  35. package/utils/lasParser.js +1 -1
  36. package/utils/lasParser.js.map +1 -1
  37. package/utils/main.d.ts +53 -112
  38. package/utils/main.d.ts.map +1 -1
  39. package/utils/main.js +1 -1
  40. package/utils/main.js.map +1 -1
  41. package/utils/mapUnits.d.ts +1 -10
  42. package/utils/mapUnits.d.ts.map +1 -1
  43. package/utils/mapUnits.js +1 -1
  44. package/utils/mapUnits.js.map +1 -1
  45. package/utils/permissions.d.ts +2 -1
  46. package/utils/permissions.d.ts.map +1 -1
  47. package/utils/permissions.js +1 -1
  48. package/utils/permissions.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WellSummaryItemValue.js","sources":["../../../../src/components/WellSummary/WellSummaryItemValue.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport PropTypes from 'prop-types';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { upperFirst } from 'lodash';\nimport moment from 'moment';\nimport classnames from 'classnames';\n\nimport UpArrowIcon from './assets/up_arrow.svg';\nimport LeftArrowIcon from './assets/left_arrow.svg';\n\nimport { DRILLING_WELL_SUMMARY, COMPLETION_WELL_SUMMARY, DRILLOUT_WELL_SUMMARY } from '~/constants';\nimport { BHASchematic } from '~/components/Drillstring';\nimport { schematic as schematicUtils } from '~/utils/drillstring';\nimport utils from '~/utils/main';\nimport { orDash } from '~/utils/formatting';\nimport { convertValue, getUnitDisplay } from '~/utils/convert';\nimport BitIcon from '~/assets/bit.svg';\nimport HoleDepthIcon from '~/assets/hole_depth.svg';\nimport DrilloutIcon from '~/assets/drillout.svg';\n\nconst useStyles = makeStyles({\n value: {\n fontSize: '14px',\n fontWeight: 500,\n },\n valueSuffix: {\n color: '#9E9E9E',\n },\n hasLeftMargin: {\n marginLeft: 4,\n },\n bhaRoot: {\n display: 'flex',\n alignItems: 'center',\n },\n bhaIdRoot: {\n backgroundColor: '#2196F3',\n borderRadius: '50%',\n marginRight: '8px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n realBhaRoot: {\n width: '16px',\n height: '16px',\n },\n bhaIdLabel: {\n fontWeight: 500,\n fontSize: '12px',\n },\n dummyBhaIdLabel: {\n paddingLeft: '4px',\n paddingRight: '4px',\n },\n bhaActiveIndicator: {\n fontSize: '12px',\n padding: '4px',\n fontWeight: 500,\n },\n nptRoot: {\n display: 'flex',\n alignItems: 'center',\n },\n rectIndicator: {\n width: '8px',\n height: '8px',\n backgroundColor: '#D32F2F',\n borderRadius: '2px',\n marginRight: '8px',\n },\n stageActual: {\n fontSize: '16px',\n },\n stagePercent: {\n color: '#9E9E9E',\n marginLeft: '4px',\n },\n fluidProppantType: {\n color: '#9E9E9E',\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'center',\n },\n rightImg: {\n marginRight: '4px',\n },\n centerImg: {\n marginLeft: '4px',\n marginRight: '4px',\n },\n rotate: {\n transform: 'rotate(180deg)',\n },\n profileRoot: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n profile: {\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n fontSize: '10px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '8px',\n backgroundSize: '20px 20px',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n },\n plugsIcon: { marginLeft: -8 },\n});\n\nfunction WellSummaryItemValue({ item, summaryData }) {\n const classes = useStyles();\n\n if (!summaryData) {\n return null;\n }\n\n // Hole depth for drilling\n if (item.key === DRILLING_WELL_SUMMARY.HOLE_DEPTH.key) {\n const { holeDepth } = item.dataGetter(summaryData);\n return Number.isFinite(holeDepth) ? (\n <div className={classes.valueWrapper}>\n <img src={HoleDepthIcon} alt=\"hole_depth\" className={classes.centerImg} />\n <span className={classnames(classes.value, classes.hasLeftMargin)}>\n {Math.floor(holeDepth)}’\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Bit/Hole depth for drilling\n if (item.key === DRILLING_WELL_SUMMARY.BIT_HOLE_DEPTH.key) {\n const { bitDepth, holeDepth } = item.dataGetter(summaryData);\n return [bitDepth, holeDepth].every(Number.isFinite) ? (\n <div className={classes.valueWrapper}>\n <img src={BitIcon} alt=\"bit_depth\" className={classes.rightImg} />\n <span className={classes.value}>{Math.floor(bitDepth)}’ / </span>\n <img src={HoleDepthIcon} alt=\"hole_depth\" className={classes.centerImg} />\n <span className={classes.value}>{Math.floor(holeDepth)}’</span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Divergence for drilling\n if (item.key === DRILLING_WELL_SUMMARY.DIVERGENCE.key) {\n const { distance, high, right } = item.dataGetter(summaryData);\n return [distance, high, right].every(Number.isFinite) ? (\n <div className={classes.valueWrapper}>\n <span className={classes.value}>\n {`${convertValue(distance, 'length', 'ft')} ${getUnitDisplay('length')}`}\n </span>\n <img\n src={UpArrowIcon}\n alt=\"up_arrow\"\n className={classnames(classes.centerImg, { [classes.rotate]: high < 0 })}\n />\n <span className={classes.value}>\n {`${Math.abs(convertValue(high, 'length', 'ft'))} ${getUnitDisplay('length')} ${\n high >= 0 ? 'High' : 'Low'\n }`}\n </span>\n <img\n src={LeftArrowIcon}\n alt=\"left_arrow\"\n className={classnames(classes.centerImg, { [classes.rotate]: right > 0 })}\n />\n <span className={classes.value}>\n {`${Math.abs(convertValue(right, 'length', 'ft'))} ${getUnitDisplay('length')} ${\n right > 0 ? 'Right' : 'Left'\n }`}\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Last Active for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.LAST_ACTIVE.key ||\n item.key === COMPLETION_WELL_SUMMARY.LAST_ACTIVE.key\n ) {\n const { timestamp } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {timestamp ? moment.unix(timestamp).format('MM/DD/YYYY HH:mm') : '-'}\n </Typography>\n );\n }\n\n // Last Current activity for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.CURRENT_ACTIVITY.key ||\n item.key === COMPLETION_WELL_SUMMARY.CURRENT_ACTIVITY.key\n ) {\n const { activityName } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>{orDash(upperFirst(activityName || '-'))}</Typography>\n );\n }\n\n // Current phase for drilling\n if (item.key === DRILLING_WELL_SUMMARY.PHASE.key) {\n const { phaseName } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(phaseName)}</Typography>;\n }\n\n // Hole section for drilling\n if (item.key === DRILLING_WELL_SUMMARY.HOLE_SECTION.key) {\n const { sectionName } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(sectionName)}</Typography>;\n }\n\n // Mud for drilling and drillout\n if ([DRILLING_WELL_SUMMARY.MUD.key, DRILLOUT_WELL_SUMMARY.MUD.key].includes(item.key)) {\n const { mudType, mudDensity } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {mudType || mudDensity ? (\n <>\n {mudType && `${mudType}, `}\n {mudDensity &&\n `${convertValue(mudDensity, 'density', 'ppg')} ${getUnitDisplay('density')}`}\n </>\n ) : (\n '-'\n )}\n </Typography>\n );\n }\n\n // NPT for drilling & completion\n if (item.key === DRILLING_WELL_SUMMARY.NPT.key || item.key === COMPLETION_WELL_SUMMARY.NPT.key) {\n const { nptType, startTime, endTime } = item.dataGetter(summaryData);\n\n return nptType && startTime && endTime ? (\n <div className={classes.nptRoot}>\n <div className={classes.rectIndicator} />\n <Typography className={classes.value}>\n {upperFirst(nptType)}: {((endTime - startTime) / 3600).fixFloat(1)} hr\n </Typography>\n </div>\n ) : (\n '-'\n );\n }\n\n // Operation summary for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.OPERATIONS_SUMMARY.key ||\n item.key === COMPLETION_WELL_SUMMARY.OPERATIONS_SUMMARY.key\n ) {\n const { dateTime, summary } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {dateTime ? moment.unix(dateTime).format('MM/DD/YYYY HH:mm') : '-'}\n <br />\n {summary}\n </Typography>\n );\n }\n\n // Stage for completion\n if (item.key === COMPLETION_WELL_SUMMARY.STAGE.key) {\n const { planned, actual } = item.dataGetter(summaryData);\n return actual && planned ? (\n <Typography className={classes.value}>\n <span className={classes.stageActual}>{actual}</span>\n <span>/</span>\n <span>{planned}</span>\n <span className={classes.stagePercent}>Stg {Math.floor((actual / planned) * 100)} %</span>\n </Typography>\n ) : (\n '-'\n );\n }\n\n // Fluids for completion\n if (item.key === COMPLETION_WELL_SUMMARY.FLUIDS.key) {\n const { fluids } = item.dataGetter(summaryData);\n return (\n <div>\n {fluids.length === 0\n ? '-'\n : fluids.map(({ type, amount, unit }) => (\n <Typography key={`${type}_${amount}`} className={classes.value}>\n <span className={classes.fluidProppantType}>{type} - </span>\n <span>{`${convertValue(amount, 'oil', unit)} ${getUnitDisplay('oil')}`}</span>\n </Typography>\n ))}\n </div>\n );\n }\n // Fluids for completion\n if (item.key === COMPLETION_WELL_SUMMARY.PROPPANTS.key) {\n const { proppants } = item.dataGetter(summaryData);\n return (\n <div>\n {proppants.length === 0\n ? '-'\n : proppants.map(({ type, amount, unit }) => (\n <Typography key={`${type}_${amount}`} className={classes.value}>\n <span className={classes.fluidProppantType}>{type} - </span>\n <span>{`${convertValue(amount, 'mass', unit)} ${getUnitDisplay('mass')}`}</span>\n </Typography>\n ))}\n </div>\n );\n }\n\n // Alert for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.ALERT.key ||\n item.key === COMPLETION_WELL_SUMMARY.ALERT.key\n ) {\n const { decisionPath } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(decisionPath)}</Typography>;\n }\n\n // App annotation for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.ANNOTATION.key ||\n item.key === COMPLETION_WELL_SUMMARY.ANNOTATION.key\n ) {\n const { firstName, lastName, profilePhoto, content } = item.dataGetter(summaryData);\n const fullName = `${firstName} ${lastName}`;\n const displayName = `${(firstName || '').charAt(0)}${(lastName || '').charAt(0)}`;\n\n return content ? (\n <div className={classes.profileRoot}>\n <div\n className={classes.profile}\n style={{\n backgroundColor: `#${utils.getColorFromString(fullName)}`,\n backgroundImage: `url(${profilePhoto})`,\n }}\n >\n {profilePhoto ? null : displayName}\n </div>\n <Typography className={classes.value}>{content}</Typography>\n </div>\n ) : (\n '-'\n );\n }\n\n // BHA for drilling and drillout\n if ([DRILLING_WELL_SUMMARY.BHA.key, DRILLOUT_WELL_SUMMARY.BHA.key].includes(item.key)) {\n const isDrilloutItem = DRILLOUT_WELL_SUMMARY.BHA.key === item.key;\n const { bhaId, components } = item.dataGetter(summaryData);\n const stringBhaId = (bhaId && String(bhaId)) || '-';\n const schematic =\n (bhaId && schematicUtils.getBHASchematic(components || [], isDrilloutItem)) || [];\n return (\n <div className={classes.bhaRoot}>\n <div\n className={classnames(classes.bhaIdRoot, {\n [classes.realBhaRoot]: !stringBhaId.includes('.'),\n })}\n >\n <Typography\n className={classnames(classes.bhaIdLabel, {\n [classes.dummyBhaIdLabel]: stringBhaId.includes('.'),\n })}\n >\n {stringBhaId}\n </Typography>\n </div>\n <BHASchematic schematic={schematic} containerHeight={20} containerWidth={120} />\n </div>\n );\n }\n\n // Casing for drilling\n if (item.key === DRILLING_WELL_SUMMARY.CASING.key) {\n const { outerDiameter } = item.dataGetter(summaryData);\n if (!outerDiameter) {\n return null;\n }\n return (\n <Typography className={classes.value}>\n {`${convertValue(outerDiameter, 'shortLength', 'in')} ${getUnitDisplay('shortLength')}`}\n </Typography>\n );\n }\n\n if (item.key === DRILLING_WELL_SUMMARY.BHA_COUNT.key) {\n const { count } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(count)}</Typography>;\n }\n\n if (item.key === COMPLETION_WELL_SUMMARY.STAGES_DESIGN.key) {\n const { totalNumberOfStages } = item.dataGetter(summaryData);\n return Number.isFinite(totalNumberOfStages) ? (\n <Typography className={classes.value}>\n -/{totalNumberOfStages} <span className={classes.valueSuffix}>Stg</span>\n </Typography>\n ) : (\n '-'\n );\n }\n\n if (item.key === COMPLETION_WELL_SUMMARY.PLUGS_DRILLED_COUNT.key) {\n const { plugsDrilledCount } = item.dataGetter(summaryData);\n\n return Number.isFinite(plugsDrilledCount) ? (\n <div className={classes.valueWrapper}>\n <img src={DrilloutIcon} alt=\"drillout\" className={classes.plugsIcon} />\n <span className={classnames(classes.value, classes.hasLeftMargin)}>\n {plugsDrilledCount}\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`${item.key} wasn't handled in WellSummaryItemValue. Returning null`);\n }\n\n return null;\n}\n\nWellSummaryItemValue.propTypes = {\n item: PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n icon: PropTypes.node,\n dataGetter: PropTypes.func,\n }).isRequired,\n summaryData: PropTypes.shape({}).isRequired,\n};\n\nexport default WellSummaryItemValue;\n"],"names":["HoleDepthIcon","useStyles","makeStyles","value","fontSize","fontWeight","valueSuffix","color","hasLeftMargin","marginLeft","bhaRoot","display","alignItems","bhaIdRoot","backgroundColor","borderRadius","marginRight","justifyContent","realBhaRoot","width","height","bhaIdLabel","dummyBhaIdLabel","paddingLeft","paddingRight","bhaActiveIndicator","padding","nptRoot","rectIndicator","stageActual","stagePercent","fluidProppantType","valueWrapper","rightImg","centerImg","rotate","transform","profileRoot","profile","backgroundSize","backgroundRepeat","backgroundPosition","plugsIcon","WellSummaryItemValue","_ref","item","summaryData","classes","key","DRILLING_WELL_SUMMARY","HOLE_DEPTH","holeDepth","dataGetter","Number","isFinite","_jsxs","className","children","_jsx","jsx","src","alt","jsxs","classnames","Math","floor","BIT_HOLE_DEPTH","_item$dataGetter2","bitDepth","every","DIVERGENCE","_item$dataGetter3","distance","high","right","concat","convertValue","getUnitDisplay","abs","LAST_ACTIVE","COMPLETION_WELL_SUMMARY","timestamp","Typography","moment","unix","format","CURRENT_ACTIVITY","activityName","orDash","upperFirst","PHASE","phaseName","HOLE_SECTION","sectionName","MUD","DRILLOUT_WELL_SUMMARY","includes","_item$dataGetter8","mudType","mudDensity","_Fragment","NPT","_item$dataGetter9","nptType","startTime","endTime","fixFloat","OPERATIONS_SUMMARY","_item$dataGetter10","dateTime","summary","STAGE","_item$dataGetter11","planned","actual","FLUIDS","fluids","length","map","_ref2","type","amount","unit","PROPPANTS","proppants","_ref3","ALERT","decisionPath","ANNOTATION","_item$dataGetter15","firstName","lastName","profilePhoto","content","fullName","displayName","charAt","style","utils","getColorFromString","backgroundImage","BHA","isDrilloutItem","_item$dataGetter16","bhaId","components","stringBhaId","String","schematic","schematicUtils","getBHASchematic","BHASchematic","containerHeight","containerWidth","CASING","outerDiameter","BHA_COUNT","count","STAGES_DESIGN","totalNumberOfStages","PLUGS_DRILLED_COUNT","plugsDrilledCount","process","env","NODE_ENV","Error","propTypes","PropTypes","shape","string","label","icon","node","func","isRequired"],"mappings":"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"}
1
+ {"version":3,"file":"WellSummaryItemValue.js","sources":["../../../../src/components/WellSummary/WellSummaryItemValue.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport PropTypes from 'prop-types';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { upperFirst } from 'lodash';\nimport moment from 'moment';\nimport classnames from 'classnames';\n\nimport UpArrowIcon from './assets/up_arrow.svg';\nimport LeftArrowIcon from './assets/left_arrow.svg';\n\nimport { DRILLING_WELL_SUMMARY, COMPLETION_WELL_SUMMARY, DRILLOUT_WELL_SUMMARY } from '~/constants';\nimport { BHASchematic } from '~/components/Drillstring';\nimport { schematic as schematicUtils } from '~/utils/drillstring';\nimport utils from '~/utils/main';\nimport { orDash } from '~/utils/formatting';\nimport { convertValue, getUnitDisplay } from '~/utils/convert';\nimport BitIcon from '~/assets/bit.svg';\nimport HoleDepthIcon from '~/assets/hole_depth.svg';\nimport DrilloutIcon from '~/assets/drillout.svg';\n\nconst useStyles = makeStyles({\n value: {\n fontSize: '14px',\n fontWeight: 500,\n },\n valueSuffix: {\n color: '#9E9E9E',\n },\n hasLeftMargin: {\n marginLeft: 4,\n },\n bhaRoot: {\n display: 'flex',\n alignItems: 'center',\n },\n bhaIdRoot: {\n backgroundColor: '#2196F3',\n borderRadius: '50%',\n marginRight: '8px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n realBhaRoot: {\n width: '16px',\n height: '16px',\n },\n bhaIdLabel: {\n fontWeight: 500,\n fontSize: '12px',\n },\n dummyBhaIdLabel: {\n paddingLeft: '4px',\n paddingRight: '4px',\n },\n bhaActiveIndicator: {\n fontSize: '12px',\n padding: '4px',\n fontWeight: 500,\n },\n nptRoot: {\n display: 'flex',\n alignItems: 'center',\n },\n rectIndicator: {\n width: '8px',\n height: '8px',\n backgroundColor: '#D32F2F',\n borderRadius: '2px',\n marginRight: '8px',\n },\n stageActual: {\n fontSize: '16px',\n },\n stagePercent: {\n color: '#9E9E9E',\n marginLeft: '4px',\n },\n fluidProppantType: {\n color: '#9E9E9E',\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'center',\n },\n rightImg: {\n marginRight: '4px',\n },\n centerImg: {\n marginLeft: '4px',\n marginRight: '4px',\n },\n rotate: {\n transform: 'rotate(180deg)',\n },\n profileRoot: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n profile: {\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n fontSize: '10px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '8px',\n backgroundSize: '20px 20px',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n },\n plugsIcon: { marginLeft: -8 },\n});\n\nfunction WellSummaryItemValue({ item, summaryData }) {\n const classes = useStyles();\n\n if (!summaryData) {\n return null;\n }\n\n // Hole depth for drilling\n if (item.key === DRILLING_WELL_SUMMARY.HOLE_DEPTH.key) {\n const { holeDepth } = item.dataGetter(summaryData);\n return Number.isFinite(holeDepth) ? (\n <div className={classes.valueWrapper}>\n <img src={HoleDepthIcon} alt=\"hole_depth\" className={classes.centerImg} />\n <span className={classnames(classes.value, classes.hasLeftMargin)}>\n {Math.floor(holeDepth)}’\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Bit/Hole depth for drilling\n if (item.key === DRILLING_WELL_SUMMARY.BIT_HOLE_DEPTH.key) {\n const { bitDepth, holeDepth } = item.dataGetter(summaryData);\n return [bitDepth, holeDepth].every(Number.isFinite) ? (\n <div className={classes.valueWrapper}>\n <img src={BitIcon} alt=\"bit_depth\" className={classes.rightImg} />\n <span className={classes.value}>{Math.floor(bitDepth)}’ / </span>\n <img src={HoleDepthIcon} alt=\"hole_depth\" className={classes.centerImg} />\n <span className={classes.value}>{Math.floor(holeDepth)}’</span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Divergence for drilling\n if (item.key === DRILLING_WELL_SUMMARY.DIVERGENCE.key) {\n const { distance, high, right } = item.dataGetter(summaryData);\n return [distance, high, right].every(Number.isFinite) ? (\n <div className={classes.valueWrapper}>\n <span className={classes.value}>\n {`${convertValue(distance, 'length', 'ft')} ${getUnitDisplay('length')}`}\n </span>\n <img\n src={UpArrowIcon}\n alt=\"up_arrow\"\n className={classnames(classes.centerImg, { [classes.rotate]: high < 0 })}\n />\n <span className={classes.value}>\n {`${Math.abs(convertValue(high, 'length', 'ft'))} ${getUnitDisplay('length')} ${\n high >= 0 ? 'High' : 'Low'\n }`}\n </span>\n <img\n src={LeftArrowIcon}\n alt=\"left_arrow\"\n className={classnames(classes.centerImg, { [classes.rotate]: right > 0 })}\n />\n <span className={classes.value}>\n {`${Math.abs(convertValue(right, 'length', 'ft'))} ${getUnitDisplay('length')} ${\n right > 0 ? 'Right' : 'Left'\n }`}\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n // Last Active for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.LAST_ACTIVE.key ||\n item.key === COMPLETION_WELL_SUMMARY.LAST_ACTIVE.key\n ) {\n const { timestamp } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {timestamp ? moment.unix(timestamp).format('MM/DD/YYYY HH:mm') : '-'}\n </Typography>\n );\n }\n\n // Last Current activity for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.CURRENT_ACTIVITY.key ||\n item.key === COMPLETION_WELL_SUMMARY.CURRENT_ACTIVITY.key\n ) {\n const { activityName } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>{orDash(upperFirst(activityName || '-'))}</Typography>\n );\n }\n\n // Current phase for drilling\n if (item.key === DRILLING_WELL_SUMMARY.PHASE.key) {\n const { phaseName } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(phaseName)}</Typography>;\n }\n\n // Hole section for drilling\n if (item.key === DRILLING_WELL_SUMMARY.HOLE_SECTION.key) {\n const { sectionName } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(sectionName)}</Typography>;\n }\n\n // Mud for drilling and drillout\n if ([DRILLING_WELL_SUMMARY.MUD.key, DRILLOUT_WELL_SUMMARY.MUD.key].includes(item.key)) {\n const { mudType, mudDensity } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {mudType || mudDensity ? (\n <>\n {mudType && `${mudType}, `}\n {mudDensity &&\n `${convertValue(mudDensity, 'density', 'ppg')} ${getUnitDisplay('density')}`}\n </>\n ) : (\n '-'\n )}\n </Typography>\n );\n }\n\n // NPT for drilling & completion\n if (item.key === DRILLING_WELL_SUMMARY.NPT.key || item.key === COMPLETION_WELL_SUMMARY.NPT.key) {\n const { nptType, startTime, endTime } = item.dataGetter(summaryData);\n\n return nptType && startTime && endTime ? (\n <div className={classes.nptRoot}>\n <div className={classes.rectIndicator} />\n <Typography className={classes.value}>\n {upperFirst(nptType)}: {((endTime - startTime) / 3600).fixFloat(1)} hr\n </Typography>\n </div>\n ) : (\n '-'\n );\n }\n\n // Operation summary for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.OPERATIONS_SUMMARY.key ||\n item.key === COMPLETION_WELL_SUMMARY.OPERATIONS_SUMMARY.key\n ) {\n const { dateTime, summary } = item.dataGetter(summaryData);\n return (\n <Typography className={classes.value}>\n {dateTime ? moment.unix(dateTime).format('MM/DD/YYYY HH:mm') : '-'}\n <br />\n {summary}\n </Typography>\n );\n }\n\n // Stage for completion\n if (item.key === COMPLETION_WELL_SUMMARY.STAGE.key) {\n const { planned, actual } = item.dataGetter(summaryData);\n return actual && planned ? (\n <Typography className={classes.value}>\n <span className={classes.stageActual}>{actual}</span>\n <span>/</span>\n <span>{planned}</span>\n <span className={classes.stagePercent}>Stg {Math.floor((actual / planned) * 100)} %</span>\n </Typography>\n ) : (\n '-'\n );\n }\n\n // Fluids for completion\n if (item.key === COMPLETION_WELL_SUMMARY.FLUIDS.key) {\n const { fluids } = item.dataGetter(summaryData);\n return (\n <div>\n {fluids.length === 0\n ? '-'\n : fluids.map(({ type, amount, unit }) => (\n <Typography key={`${type}_${amount}`} className={classes.value}>\n <span className={classes.fluidProppantType}>{type} - </span>\n <span>{`${convertValue(amount, 'oil', unit)} ${getUnitDisplay('oil')}`}</span>\n </Typography>\n ))}\n </div>\n );\n }\n // Fluids for completion\n if (item.key === COMPLETION_WELL_SUMMARY.PROPPANTS.key) {\n const { proppants } = item.dataGetter(summaryData);\n return (\n <div>\n {proppants.length === 0\n ? '-'\n : proppants.map(({ type, amount, unit }) => (\n <Typography key={`${type}_${amount}`} className={classes.value}>\n <span className={classes.fluidProppantType}>{type} - </span>\n <span>{`${convertValue(amount, 'mass', unit)} ${getUnitDisplay('mass')}`}</span>\n </Typography>\n ))}\n </div>\n );\n }\n\n // Alert for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.ALERT.key ||\n item.key === COMPLETION_WELL_SUMMARY.ALERT.key\n ) {\n const { decisionPath } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(decisionPath)}</Typography>;\n }\n\n // App annotation for drilling & completion\n if (\n item.key === DRILLING_WELL_SUMMARY.ANNOTATION.key ||\n item.key === COMPLETION_WELL_SUMMARY.ANNOTATION.key\n ) {\n const { firstName, lastName, profilePhoto, content } = item.dataGetter(summaryData);\n const fullName = `${firstName} ${lastName}`;\n const displayName = `${(firstName || '').charAt(0)}${(lastName || '').charAt(0)}`;\n\n return content ? (\n <div className={classes.profileRoot}>\n <div\n className={classes.profile}\n style={{\n backgroundColor: `#${utils.getColorFromString(fullName)}`,\n backgroundImage: `url(${profilePhoto})`,\n }}\n >\n {profilePhoto ? null : displayName}\n </div>\n <Typography className={classes.value}>{content}</Typography>\n </div>\n ) : (\n '-'\n );\n }\n\n // BHA for drilling and drillout\n if ([DRILLING_WELL_SUMMARY.BHA.key, DRILLOUT_WELL_SUMMARY.BHA.key].includes(item.key)) {\n const isDrilloutItem = DRILLOUT_WELL_SUMMARY.BHA.key === item.key;\n const { bhaId, components } = item.dataGetter(summaryData);\n const stringBhaId = (bhaId && String(bhaId)) || '-';\n const schematic =\n (bhaId && schematicUtils.getBHASchematic(components || [], isDrilloutItem)) || [];\n return (\n <div className={classes.bhaRoot}>\n <div\n className={classnames(classes.bhaIdRoot, {\n [classes.realBhaRoot]: !stringBhaId.includes('.'),\n })}\n >\n <Typography\n className={classnames(classes.bhaIdLabel, {\n [classes.dummyBhaIdLabel]: stringBhaId.includes('.'),\n })}\n >\n {stringBhaId}\n </Typography>\n </div>\n <BHASchematic schematic={schematic} containerHeight={20} containerWidth={120} />\n </div>\n );\n }\n\n // Casing for drilling\n if (item.key === DRILLING_WELL_SUMMARY.CASING.key) {\n const { outerDiameter } = item.dataGetter(summaryData);\n if (!outerDiameter) {\n return null;\n }\n return (\n <Typography className={classes.value}>\n {`${convertValue(outerDiameter, 'shortLength', 'in')} ${getUnitDisplay('shortLength')}`}\n </Typography>\n );\n }\n\n if (item.key === DRILLING_WELL_SUMMARY.BHA_COUNT.key) {\n const { count } = item.dataGetter(summaryData);\n return <Typography className={classes.value}>{orDash(count)}</Typography>;\n }\n\n if (item.key === COMPLETION_WELL_SUMMARY.STAGES_DESIGN.key) {\n const { totalNumberOfStages } = item.dataGetter(summaryData);\n return Number.isFinite(totalNumberOfStages) ? (\n <Typography className={classes.value}>\n -/{totalNumberOfStages} <span className={classes.valueSuffix}>Stg</span>\n </Typography>\n ) : (\n '-'\n );\n }\n\n if (item.key === COMPLETION_WELL_SUMMARY.PLUGS_DRILLED_COUNT.key) {\n const { plugsDrilledCount } = item.dataGetter(summaryData);\n\n return Number.isFinite(plugsDrilledCount) ? (\n <div className={classes.valueWrapper}>\n <img src={DrilloutIcon} alt=\"drillout\" className={classes.plugsIcon} />\n <span className={classnames(classes.value, classes.hasLeftMargin)}>\n {plugsDrilledCount}\n </span>\n </div>\n ) : (\n '-'\n );\n }\n\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`${item.key} wasn't handled in WellSummaryItemValue. Returning null`);\n }\n\n return null;\n}\n\nWellSummaryItemValue.propTypes = {\n item: PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n icon: PropTypes.node,\n dataGetter: PropTypes.func,\n }).isRequired,\n summaryData: PropTypes.shape({}).isRequired,\n};\n\nexport default WellSummaryItemValue;\n"],"names":["HoleDepthIcon","useStyles","makeStyles","value","fontSize","fontWeight","valueSuffix","color","hasLeftMargin","marginLeft","bhaRoot","display","alignItems","bhaIdRoot","backgroundColor","borderRadius","marginRight","justifyContent","realBhaRoot","width","height","bhaIdLabel","dummyBhaIdLabel","paddingLeft","paddingRight","bhaActiveIndicator","padding","nptRoot","rectIndicator","stageActual","stagePercent","fluidProppantType","valueWrapper","rightImg","centerImg","rotate","transform","profileRoot","profile","backgroundSize","backgroundRepeat","backgroundPosition","plugsIcon","WellSummaryItemValue","_ref","item","summaryData","classes","key","DRILLING_WELL_SUMMARY","HOLE_DEPTH","holeDepth","dataGetter","Number","isFinite","_jsxs","className","children","_jsx","jsx","src","alt","jsxs","classnames","Math","floor","BIT_HOLE_DEPTH","_item$dataGetter2","bitDepth","every","DIVERGENCE","_item$dataGetter3","distance","high","right","concat","convertValue","getUnitDisplay","abs","LAST_ACTIVE","COMPLETION_WELL_SUMMARY","timestamp","Typography","moment","unix","format","CURRENT_ACTIVITY","activityName","orDash","upperFirst","PHASE","phaseName","HOLE_SECTION","sectionName","MUD","DRILLOUT_WELL_SUMMARY","includes","_item$dataGetter8","mudType","mudDensity","_Fragment","NPT","_item$dataGetter9","nptType","startTime","endTime","fixFloat","OPERATIONS_SUMMARY","_item$dataGetter10","dateTime","summary","STAGE","_item$dataGetter11","planned","actual","FLUIDS","fluids","length","map","_ref2","type","amount","unit","PROPPANTS","proppants","_ref3","ALERT","decisionPath","ANNOTATION","_item$dataGetter15","firstName","lastName","profilePhoto","content","fullName","displayName","charAt","style","utils","getColorFromString","backgroundImage","BHA","isDrilloutItem","_item$dataGetter16","bhaId","components","stringBhaId","String","schematic","schematicUtils","getBHASchematic","BHASchematic","containerHeight","containerWidth","CASING","outerDiameter","BHA_COUNT","count","STAGES_DESIGN","totalNumberOfStages","PLUGS_DRILLED_COUNT","plugsDrilledCount","process","env","NODE_ENV","Error","propTypes","PropTypes","shape","string","label","icon","node","func","isRequired"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../ext-esm/tslib/tslib.es6.js'),t=require("react/jsx-runtime"),r=require("react"),a=require("classnames"),s=require("./constants.js"),i=require("./Avatar.scss.js"),n=require("../../utils/main.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=o(a),u=r.forwardRef((function(a,o){var u=a.testId,l=a.className,d=a.name,m=a.size,f=void 0===m?40:m,g=a.imageSrc,v=e.__rest(a,["testId","className","name","size","imageSrc"]),p=r.useMemo((function(){return{width:"".concat(f,"px"),height:"".concat(f,"px"),fontSize:"".concat(s.getFontSize(f),"px"),lineHeight:"".concat(f,"px"),backgroundColor:s.getColor(d),backgroundImage:g?"url(".concat(g,")"):void 0,color:g?"transparent":void 0}}),[f,g,d]);return t.jsx("div",e.__assign({},v,{ref:o,className:c.default(i.root,l),"data-testid":u,style:p,children:d&&n.getNameInitials(d)}))}));exports.Avatar=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../ext-esm/tslib/tslib.es6.js'),t=require("react/jsx-runtime"),r=require("react"),a=require("classnames"),s=require("./constants.js"),i=require("./Avatar.scss.js"),n=require("../../utils/main.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=o(a),u=r.forwardRef((function(a,o){var u=a.testId,l=a.className,d=a.name,m=a.size,f=void 0===m?40:m,g=a.imageSrc,v=e.__rest(a,["testId","className","name","size","imageSrc"]),p=r.useMemo((function(){return{width:"".concat(f,"px"),height:"".concat(f,"px"),fontSize:"".concat(s.getFontSize(f),"px"),lineHeight:"".concat(f,"px"),backgroundColor:s.getColor(d),backgroundImage:g?"url(".concat(g,")"):void 0,color:g?"transparent":void 0}}),[f,g,d]);return t.jsx("div",e.__assign({},v,{ref:o,className:c.default(i.root,l),"data-testid":u,style:p,children:d&&n.default.getNameInitials(d)}))}));exports.Avatar=u;
2
2
  //# sourceMappingURL=Avatar.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/main.js"),t=["#5F47A4","#9078C8","#DC74FD","#F695B5","#CB4F4F","#896F65","#F3AE96","#EE7850","#DDAE67","#A6CA72","#62893D","#91C9C4","#38818D","#77B5F1","#3F4C99","#919DA4"],r={0:0,24:12,32:14,40:16,48:20,128:64,200:80},n=Object.entries(r).map((function(e){var t=e[0],r=e[1];return[Number(t),r]})).sort((function(e,t){return e[0]-t[0]})).map((function(e){return{size:e[0],fontSize:e[1]}}));exports.ColorsArray=t,exports.SizeToFontSizeMap=r,exports.getColor=function(r){void 0===r&&(r="");var n=Math.abs(e.hashCode(r));return t[n%t.length]},exports.getFontSize=function(e){if(r[e])return r[e];var t=n.findIndex((function(t,r,n){var i=t.size;return e>i&&r<n.length-1&&e<n[r+1].size}));if(t<0)return e<n[0].size?n[0].fontSize:n.slice(-1)[0].fontSize;var i=n[t],o=n[t+1],s=(e-i.size)/(o.size-i.size);return i.fontSize+(o.fontSize-i.fontSize)*s};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../utils/main.js"),t=["#5F47A4","#9078C8","#DC74FD","#F695B5","#CB4F4F","#896F65","#F3AE96","#EE7850","#DDAE67","#A6CA72","#62893D","#91C9C4","#38818D","#77B5F1","#3F4C99","#919DA4"],r={0:0,24:12,32:14,40:16,48:20,128:64,200:80},n=Object.entries(r).map((function(e){var t=e[0],r=e[1];return[Number(t),r]})).sort((function(e,t){return e[0]-t[0]})).map((function(e){return{size:e[0],fontSize:e[1]}}));exports.ColorsArray=t,exports.SizeToFontSizeMap=r,exports.getColor=function(r){void 0===r&&(r="");var n=Math.abs(e.default.hashCode(r));return t[n%t.length]},exports.getFontSize=function(e){if(r[e])return r[e];var t=n.findIndex((function(t,r,n){var i=t.size;return e>i&&r<n.length-1&&e<n[r+1].size}));if(t<0)return e<n[0].size?n[0].fontSize:n.slice(-1)[0].fontSize;var i=n[t],o=n[t+1],s=(e-i.size)/(o.size-i.size);return i.fontSize+(o.fontSize-i.fontSize)*s};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("../components/UserMention/utils/index.js"),r=require("./StageDesignVActualUtils.js"),s=require("./alerts.js"),o=require("./audio.js"),i=require("./casing/index.js"),n=require("./chartSeries.js"),a=require("./completion.js"),p=require("./components.js"),u=require("./convert.js"),l=require("./csvExport.js"),c=require("./devcenter.js"),x=require("./drillstring/index.js"),g=require("./DrillstringUtils.js"),f=require("./FluidCheckUtils.js"),j=require("./formatting.js"),m=require("./ga.js"),q=require("./goals.js"),d=require("./goalsConfig/index.js"),y=require("./lasParser.js"),U=require("./main.js"),h=require("./mapUnits.js"),b=require("./mapbox.js"),v=require("./metrics/index.js"),S=require("./mobileDetect.js"),D=require("./nativeMessages.js"),C=require("./notifications.js"),O=require("./feed.js"),w=require("./permissions.js"),T=require("./reports.js"),P=require("./time.js"),N=require("./torqueAndHookloadUtils.js"),A=require("./accuracy.js"),I=require("./notificationToasts.js"),H=require("./devcenterToasts.js"),F=require("./convertKeys.js"),V=require("./dashboardReports.js"),B=require("./apps.js"),E=require("./themeVariables.js"),k=require("./env.js"),z=require("./fileExtension.js"),K=require("./jsonaDataFormatter.js"),L=require("./bha.js"),M=require("./localStorage.js"),_=require("./sharedDCStore.js"),W=require("./resolveWellHubSlug.js"),J=require("./delayedHighcharts.js"),R=require("./formatFileSize.js"),G=require("./delay.js"),Q=require("./charts/getChartHorizontalAxis.js"),X=require("./charts/getChartVerticalAxis.js");function Y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function Z(e){return Object.freeze({__proto__:null,default:e})}var $=Y(e),ee=Z(y),te=Z(U),re=Z(h),se=Z(w);function oe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}var ie={get:function(e,t){var r=e[t];return"function"==typeof r?function(){for(var t=arguments.length,s=new Array(t),o=0;o<t;o++)s[o]=arguments[o];return r.apply(e,s.map((function(e){return e.toJS?e.toJS():e})))}:r}};function ne(e){return new Proxy(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(r),!0).forEach((function(t){$.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oe(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e),ie)}var ae=u.convertArray,pe=u.convertValue,ue=u.getAllUnitTypes,le=u.getDefaultImperialUnit,ce=u.getDefaultUnits,xe=u.getUnitDescription,ge=u.getUnitDisplay,fe=u.getUnitPlural,je=u.getUnitPreference,me=u.getUnitsByType,qe=u.getUnitSingular,de=u.getUnitSystem,ye=u.updateUserUnits,Ue=u.getUserUnits,he=u.subscribeForUserUnitsUpdates,be=u.convertImmutables,ve=u.convertImmutablesByBatch,Se=u.getUniqueUnitsByType,De=ne(b),Ce=ne(p);exports.formatMentionText=t.formatMentionText,exports.isSuggestionsListOpened=t.isSuggestionsListOpened,exports.StageDesignVActualUtils=r,exports.alerts=s,exports.audio=o,exports.casing=i,exports.chartSeries=n,exports.completion=a,exports.convert=u,exports.csvExport=l,exports.devcenter=c,exports.drillstring=x,exports.drillstringUtils=g,exports.fluidCheckUtils=f,exports.formatting=j,exports.ga=m,exports.goals=q,exports.goalsConfig=d,exports.lasParser=ee,exports.main=te,exports.mapUnits=re,exports.metricsUtils=v,exports.mobileDetect=S,exports.nativeMessages=D,exports.notifications=C,exports.feed=O,exports.permissions=se,exports.reports=T,exports.time=P,exports.torqueAndHookloadUtils=N,exports.accuracy=A,exports.createNotification=I.createNotification,exports.removeNotification=I.removeNotification,exports.showErrorNotification=I.showErrorNotification,exports.showInfoNotification=I.showInfoNotification,exports.showNeutralNotification=I.showNeutralNotification,exports.showSuccessNotification=I.showSuccessNotification,exports.showWarningNotification=I.showWarningNotification,exports.showToast=H.showToast,exports.convertKeysToCamelCase=F.convertKeysToCamelCase,exports.convertKeysToSnakeCase=F.convertKeysToSnakeCase,exports.getConvertKeys=F.getConvertKeys,exports.dashboardReports=V,exports.apps=B,exports.themeVariables=E,exports.env=k,exports.fileExtension=z,exports.jsonaDataFormatter=K.jsonaDataFormatter,exports.bha=L,exports.getLocalStorageItem=M.getLocalStorageItem,exports.updateLocalStorageItem=M.updateLocalStorageItem,exports.sharedDCStore=_.sharedDCStore,exports.resolveWellHubSlug=W,exports.enableHighchartsDelayedTooltip=J.enableHighchartsDelayedTooltip,exports.formatFileSize=R.formatFileSize,exports.delay=G.delay,exports.getChartHorizontalAxis=Q.getChartHorizontalAxis,exports.getChartVerticalAxis=X.getChartVerticalAxis,exports.components=Ce,exports.convertArray=ae,exports.convertImmutables=be,exports.convertImmutablesByBatch=ve,exports.convertValue=pe,exports.getAllUnitTypes=ue,exports.getDefaultImperialUnit=le,exports.getDefaultUnits=ce,exports.getUniqueUnitsByType=Se,exports.getUnitDescription=xe,exports.getUnitDisplay=ge,exports.getUnitPlural=fe,exports.getUnitPreference=je,exports.getUnitSingular=qe,exports.getUnitSystem=de,exports.getUnitsByType=me,exports.getUserUnits=Ue,exports.mapbox=De,exports.subscribeForUserUnitsUpdates=he,exports.updateUserUnits=ye;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("../components/UserMention/utils/index.js"),r=require("./StageDesignVActualUtils.js"),s=require("./alerts.js"),o=require("./audio.js"),i=require("./casing/index.js"),a=require("./chartSeries.js"),n=require("./completion.js"),p=require("./components.js"),u=require("./convert.js"),c=require("./csvExport.js"),l=require("./devcenter.js"),x=require("./drillstring/index.js"),g=require("./DrillstringUtils.js"),j=require("./FluidCheckUtils.js"),f=require("./formatting.js"),m=require("./ga.js"),q=require("./goals.js"),d=require("./goalsConfig/index.js"),y=require("./lasParser.js"),U=require("./main.js"),h=require("./mapUnits.js"),v=require("./mapbox.js"),b=require("./metrics/index.js"),S=require("./mobileDetect.js"),D=require("./nativeMessages.js"),C=require("./notifications.js"),w=require("./feed.js"),O=require("./permissions.js"),T=require("./reports.js"),P=require("./time.js"),N=require("./torqueAndHookloadUtils.js"),A=require("./accuracy.js"),I=require("./notificationToasts.js"),H=require("./devcenterToasts.js"),F=require("./convertKeys.js"),V=require("./dashboardReports.js"),B=require("./apps.js"),E=require("./themeVariables.js"),k=require("./env.js"),K=require("./fileExtension.js"),z=require("./jsonaDataFormatter.js"),L=require("./bha.js"),M=require("./localStorage.js"),W=require("./sharedDCStore.js"),J=require("./resolveWellHubSlug.js"),R=require("./delayedHighcharts.js"),_=require("./formatFileSize.js"),G=require("./delay.js"),Q=require("./charts/getChartHorizontalAxis.js"),X=require("./charts/getChartVerticalAxis.js");function Y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Z=Y(e);function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}var ee={get:function(e,t){var r=e[t];return"function"==typeof r?function(){for(var t=arguments.length,s=new Array(t),o=0;o<t;o++)s[o]=arguments[o];return r.apply(e,s.map((function(e){return e.toJS?e.toJS():e})))}:r}};function te(e){return new Proxy(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$(Object(r),!0).forEach((function(t){Z.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e),ee)}var re=u.convertArray,se=u.convertValue,oe=u.getAllUnitTypes,ie=u.getDefaultImperialUnit,ae=u.getDefaultUnits,ne=u.getUnitDescription,pe=u.getUnitDisplay,ue=u.getUnitPlural,ce=u.getUnitPreference,le=u.getUnitsByType,xe=u.getUnitSingular,ge=u.getUnitSystem,je=u.updateUserUnits,fe=u.getUserUnits,me=u.subscribeForUserUnitsUpdates,qe=u.convertImmutables,de=u.convertImmutablesByBatch,ye=u.getUniqueUnitsByType,Ue=te(v),he=te(p);exports.formatMentionText=t.formatMentionText,exports.isSuggestionsListOpened=t.isSuggestionsListOpened,exports.StageDesignVActualUtils=r,exports.alerts=s,exports.audio=o,exports.casing=i,exports.chartSeries=a,exports.completion=n,exports.convert=u,exports.csvExport=c,exports.devcenter=l,exports.drillstring=x,exports.drillstringUtils=g,exports.fluidCheckUtils=j,exports.formatting=f,exports.ga=m,exports.goals=q,exports.goalsConfig=d,exports.lasParser=y,exports.main=U,exports.mapUnits=h,exports.metricsUtils=b,exports.mobileDetect=S,exports.nativeMessages=D,exports.notifications=C,exports.feed=w,exports.permissions=O,exports.reports=T,exports.time=P,exports.torqueAndHookloadUtils=N,exports.accuracy=A,exports.createNotification=I.createNotification,exports.removeNotification=I.removeNotification,exports.showErrorNotification=I.showErrorNotification,exports.showInfoNotification=I.showInfoNotification,exports.showNeutralNotification=I.showNeutralNotification,exports.showSuccessNotification=I.showSuccessNotification,exports.showWarningNotification=I.showWarningNotification,exports.showToast=H.showToast,exports.convertKeysToCamelCase=F.convertKeysToCamelCase,exports.convertKeysToSnakeCase=F.convertKeysToSnakeCase,exports.getConvertKeys=F.getConvertKeys,exports.dashboardReports=V,exports.apps=B,exports.themeVariables=E,exports.env=k,exports.fileExtension=K,exports.jsonaDataFormatter=z.jsonaDataFormatter,exports.bha=L,exports.getLocalStorageItem=M.getLocalStorageItem,exports.updateLocalStorageItem=M.updateLocalStorageItem,exports.sharedDCStore=W.sharedDCStore,exports.resolveWellHubSlug=J,exports.enableHighchartsDelayedTooltip=R.enableHighchartsDelayedTooltip,exports.formatFileSize=_.formatFileSize,exports.delay=G.delay,exports.getChartHorizontalAxis=Q.getChartHorizontalAxis,exports.getChartVerticalAxis=X.getChartVerticalAxis,exports.components=he,exports.convertArray=re,exports.convertImmutables=qe,exports.convertImmutablesByBatch=de,exports.convertValue=se,exports.getAllUnitTypes=oe,exports.getDefaultImperialUnit=ie,exports.getDefaultUnits=ae,exports.getUniqueUnitsByType=ye,exports.getUnitDescription=ne,exports.getUnitDisplay=pe,exports.getUnitPlural=ue,exports.getUnitPreference=ce,exports.getUnitSingular=xe,exports.getUnitSystem=ge,exports.getUnitsByType=le,exports.getUserUnits=fe,exports.mapbox=Ue,exports.subscribeForUserUnitsUpdates=me,exports.updateUserUnits=je;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/index.js"],"sourcesContent":["import { formatMentionText, isSuggestionsListOpened } from '../components/UserMention/utils';\n\nimport * as StageDesignVActualUtils from './StageDesignVActualUtils';\nimport * as alerts from './alerts';\nimport * as audio from './audio';\nimport * as casing from './casing';\nimport * as chartSeries from './chartSeries';\nimport * as completion from './completion';\nimport * as componentsFormerImmutable from './components';\nimport * as convert from './convert';\nimport * as csvExport from './csvExport';\nimport * as devcenter from './devcenter';\nimport * as drillstring from './drillstring';\nimport * as drillstringUtils from './DrillstringUtils';\nimport * as fluidCheckUtils from './FluidCheckUtils';\nimport * as formatting from './formatting';\nimport * as ga from './ga';\nimport * as goals from './goals';\nimport * as goalsConfig from './goalsConfig';\nimport * as lasParser from './lasParser';\nimport * as main from './main';\nimport * as mapUnits from './mapUnits';\nimport * as mapboxFormerImmutable from './mapbox';\nimport * as metricsUtils from './metrics';\nimport * as mobileDetect from './mobileDetect';\nimport * as nativeMessages from './nativeMessages';\nimport * as notifications from './notifications';\nimport * as feed from './feed';\nimport * as permissions from './permissions';\nimport * as reports from './reports';\nimport * as time from './time';\nimport * as torqueAndHookloadUtils from './torqueAndHookloadUtils';\nimport * as accuracy from './accuracy';\nimport {\n createNotification,\n removeNotification,\n showErrorNotification,\n showInfoNotification,\n showNeutralNotification,\n showSuccessNotification,\n showWarningNotification,\n} from './notificationToasts';\nimport { showToast } from './devcenterToasts';\nimport { convertKeysToCamelCase, convertKeysToSnakeCase, getConvertKeys } from './convertKeys';\nimport * as dashboardReports from './dashboardReports';\nimport * as apps from './apps';\nimport * as themeVariables from './themeVariables';\nimport * as env from './env';\nimport * as fileExtension from './fileExtension';\nimport { jsonaDataFormatter } from './jsonaDataFormatter';\nimport * as bha from './bha';\nimport { getLocalStorageItem, updateLocalStorageItem } from './localStorage';\nimport { sharedDCStore } from './sharedDCStore';\nimport resolveWellHubSlug from './resolveWellHubSlug';\nimport { enableHighchartsDelayedTooltip } from './delayedHighcharts';\nimport { formatFileSize } from './formatFileSize';\n\nconst backwardCompatibleHandler = {\n get(target, propKey) {\n const original = target[propKey];\n return typeof original === 'function'\n ? (...props) =>\n original.apply(\n target,\n props.map(prop => (prop.toJS ? prop.toJS() : prop))\n )\n : original;\n },\n};\n\nfunction getBackwardCompatibility(module) {\n return new Proxy({ ...module }, backwardCompatibleHandler);\n}\n\nconst {\n convertArray,\n convertValue,\n getAllUnitTypes,\n getDefaultImperialUnit,\n getDefaultUnits,\n getUnitDescription,\n getUnitDisplay,\n getUnitPlural,\n getUnitPreference,\n getUnitsByType,\n getUnitSingular,\n getUnitSystem,\n updateUserUnits,\n getUserUnits,\n subscribeForUserUnitsUpdates,\n convertImmutables,\n convertImmutablesByBatch,\n getUniqueUnitsByType,\n} = convert;\n\nconst mapbox = getBackwardCompatibility(mapboxFormerImmutable);\nconst components = getBackwardCompatibility(componentsFormerImmutable);\n\nexport {\n StageDesignVActualUtils,\n accuracy,\n alerts,\n apps,\n audio,\n bha,\n casing,\n chartSeries,\n enableHighchartsDelayedTooltip,\n completion,\n components,\n convert,\n convertArray,\n convertImmutables,\n convertImmutablesByBatch,\n convertKeysToCamelCase,\n convertKeysToSnakeCase,\n convertValue,\n createNotification,\n csvExport,\n dashboardReports,\n devcenter,\n drillstring,\n drillstringUtils,\n env,\n feed,\n fileExtension,\n fluidCheckUtils,\n formatting,\n ga,\n formatMentionText,\n getAllUnitTypes,\n getConvertKeys,\n getDefaultImperialUnit,\n getDefaultUnits,\n getLocalStorageItem,\n getUniqueUnitsByType,\n getUnitDescription,\n getUnitDisplay,\n getUnitPlural,\n getUnitPreference,\n getUnitSingular,\n getUnitSystem,\n getUnitsByType,\n getUserUnits,\n goals,\n goalsConfig,\n jsonaDataFormatter,\n lasParser,\n main,\n mapUnits,\n mapbox,\n metricsUtils,\n mobileDetect,\n nativeMessages,\n notifications,\n permissions,\n removeNotification,\n reports,\n resolveWellHubSlug,\n sharedDCStore,\n showErrorNotification,\n showInfoNotification,\n showNeutralNotification,\n showSuccessNotification,\n showToast,\n showWarningNotification,\n subscribeForUserUnitsUpdates,\n themeVariables,\n time,\n torqueAndHookloadUtils,\n updateLocalStorageItem,\n updateUserUnits,\n isSuggestionsListOpened,\n formatFileSize,\n};\n\nexport * from './delay';\nexport * from './charts';\n"],"names":["backwardCompatibleHandler","get","target","propKey","original","_len","arguments","length","props","Array","_key","apply","map","prop","toJS","getBackwardCompatibility","module","Proxy","_objectSpread","convertArray","convert","convertValue","getAllUnitTypes","getDefaultImperialUnit","getDefaultUnits","getUnitDescription","getUnitDisplay","getUnitPlural","getUnitPreference","getUnitsByType","getUnitSingular","getUnitSystem","updateUserUnits","getUserUnits","subscribeForUserUnitsUpdates","convertImmutables","convertImmutablesByBatch","getUniqueUnitsByType","mapbox","mapboxFormerImmutable","components","componentsFormerImmutable"],"mappings":"8hEAyDA,IAAMA,GAA4B,CAChCC,IAAIC,SAAAA,EAAQC,GACV,IAAMC,EAAWF,EAAOC,GACxB,MAA2B,mBAAbC,EACV,WAAA,IAAA,IAAAC,EAAAC,UAAAC,OAAIC,EAAK,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAALF,EAAKE,GAAAJ,UAAAI,GAAA,OACPN,EAASO,MACPT,EACAM,EAAMI,KAAI,SAAAC,GAAI,OAAKA,EAAKC,KAAOD,EAAKC,OAASD,CAAK,IACnD,EACHT,CACN,GAGF,SAASW,GAAyBC,GAChC,OAAO,IAAIC,+WAAKC,CAAA,CAAA,EAAMF,GAAUhB,GAClC,CAEA,IACEmB,GAkBEC,EAAAA,aAjBFC,GAiBED,EAAAA,aAhBFE,GAgBEF,EAAAA,gBAfFG,GAeEH,EAAAA,uBAdFI,GAcEJ,EAAAA,gBAbFK,GAaEL,EAAAA,mBAZFM,GAYEN,EAAAA,eAXFO,GAWEP,EAAAA,cAVFQ,GAUER,EAAAA,kBATFS,GASET,EAAAA,eARFU,GAQEV,EAAAA,gBAPFW,GAOEX,EAAAA,cANFY,GAMEZ,EAAAA,gBALFa,GAKEb,EAAAA,aAJFc,GAIEd,EAAAA,6BAHFe,GAGEf,EAAAA,kBAFFgB,GAEEhB,EAAAA,yBADFiB,GACEjB,EADkBiB,qBAGhBC,GAASvB,GAAyBwB,GAClCC,GAAazB,GAAyB0B"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/index.js"],"sourcesContent":["import { formatMentionText, isSuggestionsListOpened } from '../components/UserMention/utils';\n\nimport * as StageDesignVActualUtils from './StageDesignVActualUtils';\nimport * as alerts from './alerts';\nimport * as audio from './audio';\nimport * as casing from './casing';\nimport * as chartSeries from './chartSeries';\nimport * as completion from './completion';\nimport * as componentsFormerImmutable from './components';\nimport * as convert from './convert';\nimport * as csvExport from './csvExport';\nimport * as devcenter from './devcenter';\nimport * as drillstring from './drillstring';\nimport * as drillstringUtils from './DrillstringUtils';\nimport * as fluidCheckUtils from './FluidCheckUtils';\nimport * as formatting from './formatting';\nimport * as ga from './ga';\nimport * as goals from './goals';\nimport * as goalsConfig from './goalsConfig';\nimport * as lasParser from './lasParser';\nimport * as main from './main';\nimport * as mapUnits from './mapUnits';\nimport * as mapboxFormerImmutable from './mapbox';\nimport * as metricsUtils from './metrics';\nimport * as mobileDetect from './mobileDetect';\nimport * as nativeMessages from './nativeMessages';\nimport * as notifications from './notifications';\nimport * as feed from './feed';\nimport * as permissions from './permissions';\nimport * as reports from './reports';\nimport * as time from './time';\nimport * as torqueAndHookloadUtils from './torqueAndHookloadUtils';\nimport * as accuracy from './accuracy';\nimport {\n createNotification,\n removeNotification,\n showErrorNotification,\n showInfoNotification,\n showNeutralNotification,\n showSuccessNotification,\n showWarningNotification,\n} from './notificationToasts';\nimport { showToast } from './devcenterToasts';\nimport { convertKeysToCamelCase, convertKeysToSnakeCase, getConvertKeys } from './convertKeys';\nimport * as dashboardReports from './dashboardReports';\nimport * as apps from './apps';\nimport * as themeVariables from './themeVariables';\nimport * as env from './env';\nimport * as fileExtension from './fileExtension';\nimport { jsonaDataFormatter } from './jsonaDataFormatter';\nimport * as bha from './bha';\nimport { getLocalStorageItem, updateLocalStorageItem } from './localStorage';\nimport { sharedDCStore } from './sharedDCStore';\nimport resolveWellHubSlug from './resolveWellHubSlug';\nimport { enableHighchartsDelayedTooltip } from './delayedHighcharts';\nimport { formatFileSize } from './formatFileSize';\n\nconst backwardCompatibleHandler = {\n get(target, propKey) {\n const original = target[propKey];\n return typeof original === 'function'\n ? (...props) =>\n original.apply(\n target,\n props.map(prop => (prop.toJS ? prop.toJS() : prop))\n )\n : original;\n },\n};\n\nfunction getBackwardCompatibility(module) {\n return new Proxy({ ...module }, backwardCompatibleHandler);\n}\n\nconst {\n convertArray,\n convertValue,\n getAllUnitTypes,\n getDefaultImperialUnit,\n getDefaultUnits,\n getUnitDescription,\n getUnitDisplay,\n getUnitPlural,\n getUnitPreference,\n getUnitsByType,\n getUnitSingular,\n getUnitSystem,\n updateUserUnits,\n getUserUnits,\n subscribeForUserUnitsUpdates,\n convertImmutables,\n convertImmutablesByBatch,\n getUniqueUnitsByType,\n} = convert;\n\nconst mapbox = getBackwardCompatibility(mapboxFormerImmutable);\nconst components = getBackwardCompatibility(componentsFormerImmutable);\n\nexport {\n StageDesignVActualUtils,\n accuracy,\n alerts,\n apps,\n audio,\n bha,\n casing,\n chartSeries,\n enableHighchartsDelayedTooltip,\n completion,\n components,\n convert,\n convertArray,\n convertImmutables,\n convertImmutablesByBatch,\n convertKeysToCamelCase,\n convertKeysToSnakeCase,\n convertValue,\n createNotification,\n csvExport,\n dashboardReports,\n devcenter,\n drillstring,\n drillstringUtils,\n env,\n feed,\n fileExtension,\n fluidCheckUtils,\n formatting,\n ga,\n formatMentionText,\n getAllUnitTypes,\n getConvertKeys,\n getDefaultImperialUnit,\n getDefaultUnits,\n getLocalStorageItem,\n getUniqueUnitsByType,\n getUnitDescription,\n getUnitDisplay,\n getUnitPlural,\n getUnitPreference,\n getUnitSingular,\n getUnitSystem,\n getUnitsByType,\n getUserUnits,\n goals,\n goalsConfig,\n jsonaDataFormatter,\n lasParser,\n main,\n mapUnits,\n mapbox,\n metricsUtils,\n mobileDetect,\n nativeMessages,\n notifications,\n permissions,\n removeNotification,\n reports,\n resolveWellHubSlug,\n sharedDCStore,\n showErrorNotification,\n showInfoNotification,\n showNeutralNotification,\n showSuccessNotification,\n showToast,\n showWarningNotification,\n subscribeForUserUnitsUpdates,\n themeVariables,\n time,\n torqueAndHookloadUtils,\n updateLocalStorageItem,\n updateUserUnits,\n isSuggestionsListOpened,\n formatFileSize,\n};\n\nexport * from './delay';\nexport * from './charts';\n"],"names":["backwardCompatibleHandler","get","target","propKey","original","_len","arguments","length","props","Array","_key","apply","map","prop","toJS","getBackwardCompatibility","module","Proxy","_objectSpread","convertArray","convert","convertValue","getAllUnitTypes","getDefaultImperialUnit","getDefaultUnits","getUnitDescription","getUnitDisplay","getUnitPlural","getUnitPreference","getUnitsByType","getUnitSingular","getUnitSystem","updateUserUnits","getUserUnits","subscribeForUserUnitsUpdates","convertImmutables","convertImmutablesByBatch","getUniqueUnitsByType","mapbox","mapboxFormerImmutable","components","componentsFormerImmutable"],"mappings":"87DAyDA,IAAMA,GAA4B,CAChCC,IAAIC,SAAAA,EAAQC,GACV,IAAMC,EAAWF,EAAOC,GACxB,MAA2B,mBAAbC,EACV,WAAA,IAAA,IAAAC,EAAAC,UAAAC,OAAIC,EAAK,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAALF,EAAKE,GAAAJ,UAAAI,GAAA,OACPN,EAASO,MACPT,EACAM,EAAMI,KAAI,SAAAC,GAAI,OAAKA,EAAKC,KAAOD,EAAKC,OAASD,CAAK,IACnD,EACHT,CACN,GAGF,SAASW,GAAyBC,GAChC,OAAO,IAAIC,6WAAKC,CAAA,CAAA,EAAMF,GAAUhB,GAClC,CAEA,IACEmB,GAkBEC,EAAAA,aAjBFC,GAiBED,EAAAA,aAhBFE,GAgBEF,EAAAA,gBAfFG,GAeEH,EAAAA,uBAdFI,GAcEJ,EAAAA,gBAbFK,GAaEL,EAAAA,mBAZFM,GAYEN,EAAAA,eAXFO,GAWEP,EAAAA,cAVFQ,GAUER,EAAAA,kBATFS,GASET,EAAAA,eARFU,GAQEV,EAAAA,gBAPFW,GAOEX,EAAAA,cANFY,GAMEZ,EAAAA,gBALFa,GAKEb,EAAAA,aAJFc,GAIEd,EAAAA,6BAHFe,GAGEf,EAAAA,kBAFFgB,GAEEhB,EAAAA,yBADFiB,GACEjB,EADkBiB,qBAGhBC,GAASvB,GAAyBwB,GAClCC,GAAazB,GAAyB0B"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/createClass"),t=require("@babel/runtime/helpers/classCallCheck"),n=require("@babel/runtime/helpers/defineProperty");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=i(e),s=i(r),u=i(t),o=i(n);function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function f(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?l(Object(t),!0).forEach((function(r){o.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var c=s.default((function e(){var r=this;u.default(this,e),o.default(this,"getConfiguration",(function(e){var t=null,n=null,i=null,s=!1;e.forEach((function(e){if(e.toLowerCase().startsWith("~version"))s=!0;else if(e.toLowerCase().startsWith("~"))s=!1;else{if(s){var u=e.split(" ").filter(Boolean),o=a.default(u,3),l=o[0],f=o[1],c=o[2];switch(l){case"VERS.":t=f;break;case"WRAP.":n=f;break;case"DLM":i=c}}r.config={version:t,wrap:n,delimiter:i}}}))})),o.default(this,"parseHeaders",(function(e){var t=e.split("\n");r.getConfiguration(t);var n=!1;return t.reduce((function(e,r){if(r.toLowerCase().startsWith("~curve"))return n=!0,e;if(r.startsWith("~")&&(n=!1),n&&!r.startsWith("#")&&!r.startsWith("\r")){var t=r.split(" ").filter(Boolean);return t?e.push(t[0]):e}return e}),[])})),o.default(this,"parseData",(function(e,r,t){var n=e.split("\n"),i=!1;return n.reduce((function(e,n){if(n.toLowerCase().startsWith("~a"))return i=!0,e;if(n.startsWith("~")&&(i=!1),i){var a=n.split(/[\t\s,]/).filter(Boolean).reduce((function(e,n,i){var a=r[i],s=t.find((function(e){return e.parsingKey===a}));if(s){var u=s.innerKey;return f(f({},e),{},o.default({},u,parseFloat(n,2)))}return e}),{});return a.isEmpty()?e:e.push(a)}return e}),[])})),this.config={version:null,wrap:null,delimiter:null}}));module.exports=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/createClass"),t=require("@babel/runtime/helpers/classCallCheck"),n=require("@babel/runtime/helpers/defineProperty");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=i(e),s=i(r),u=i(t),o=i(n);function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function f(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?l(Object(t),!0).forEach((function(r){o.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var c=s.default((function e(){var r=this;u.default(this,e),o.default(this,"getConfiguration",(function(e){var t=null,n=null,i=null,s=!1;e.forEach((function(e){if(e.toLowerCase().startsWith("~version"))s=!0;else if(e.toLowerCase().startsWith("~"))s=!1;else{if(s){var u=e.split(" ").filter(Boolean),o=a.default(u,3),l=o[0],f=o[1],c=o[2];switch(l){case"VERS.":t=f;break;case"WRAP.":n=f;break;case"DLM":i=c}}r.config={version:t,wrap:n,delimiter:i}}}))})),o.default(this,"parseHeaders",(function(e){var t=e.split("\n");r.getConfiguration(t);var n=!1;return t.reduce((function(e,r){if(r.toLowerCase().startsWith("~curve"))return n=!0,e;if(r.startsWith("~")&&(n=!1),n&&!r.startsWith("#")&&!r.startsWith("\r")){var t=r.split(" ").filter(Boolean);return t?e.push(t[0]):e}return e}),[])})),o.default(this,"parseData",(function(e,r,t){var n=e.split("\n"),i=!1;return n.reduce((function(e,n){if(n.toLowerCase().startsWith("~a"))return i=!0,e;if(n.startsWith("~")&&(i=!1),i){var a=n.split(/[\t\s,]/).filter(Boolean).reduce((function(e,n,i){var a=r[i],s=t.find((function(e){return e.parsingKey===a}));if(s){var u=s.innerKey;return f(f({},e),{},o.default({},u,parseFloat(n,2)))}return e}),{});return a.isEmpty()?e:e.push(a)}return e}),[])})),this.config={version:null,wrap:null,delimiter:null}}));exports.LasParser=c,exports.default=c;
2
2
  //# sourceMappingURL=lasParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lasParser.js","sources":["../../../src/utils/lasParser.js"],"sourcesContent":["const VERSION_CONF_STR = 'VERS.';\nconst WRAP_CONF_STR = 'WRAP.';\nconst DELIMITER_CONF_STR = 'DLM';\n\nconst VERSION_SECTION_BEGINNING = '~version';\nconst COLUMNS_LINE_BEGINNING = '~curve';\nconst DATA_LINE_BEGINNING = '~a';\n\nexport default class LasParser {\n constructor() {\n this.config = {\n version: null,\n wrap: null,\n delimiter: null,\n };\n }\n\n getConfiguration = lines => {\n let version = null;\n let wrap = null;\n let delimiter = null;\n let flag = false;\n\n lines.forEach(line => {\n // NOTE: Detect the beginning of version section\n if (line.toLowerCase().startsWith(VERSION_SECTION_BEGINNING)) {\n flag = true;\n return;\n }\n\n // NOTE: Detect the beginning of other sections\n if (line.toLowerCase().startsWith('~')) {\n flag = false;\n return;\n }\n\n if (flag) {\n const configurationLine = line.split(' ').filter(Boolean);\n\n // NOTE: When parsing delimiter line, `value` will be '.' (DLM . -> LAS 3.0 format)\n const [key, value, dlmValue] = configurationLine;\n\n switch (key) {\n case VERSION_CONF_STR:\n version = value;\n break;\n case WRAP_CONF_STR:\n wrap = value;\n break;\n case DELIMITER_CONF_STR:\n delimiter = dlmValue;\n break;\n default:\n break;\n }\n }\n\n this.config = {\n version,\n wrap,\n delimiter,\n };\n });\n };\n\n parseHeaders = file => {\n const lines = file.split('\\n');\n\n this.getConfiguration(lines);\n\n let flag = false;\n\n return lines.reduce((accHeaders, line) => {\n if (line.toLowerCase().startsWith(COLUMNS_LINE_BEGINNING)) {\n flag = true;\n return accHeaders;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag && !line.startsWith('#') && !line.startsWith('\\r')) {\n const clearedLine = line.split(' ').filter(Boolean);\n if (!clearedLine) {\n return accHeaders;\n }\n\n return accHeaders.push(clearedLine[0]);\n }\n\n return accHeaders;\n }, []);\n };\n\n parseData = (file, parsedHeaders, keysForParsing) => {\n const lines = file.split('\\n');\n\n let flag = false;\n\n return lines.reduce((accData, line) => {\n if (line.toLowerCase().startsWith(DATA_LINE_BEGINNING)) {\n flag = true;\n return accData;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag) {\n // NOTE: Delimiters can be comma, space and tab.\n const headers = line.split(/[\\t\\s,]/).filter(Boolean);\n const dataPiece = headers.reduce((acc, item, index) => {\n const key = parsedHeaders[index];\n const parsingKeyItem = keysForParsing.find(keyItem => keyItem.parsingKey === key);\n\n if (parsingKeyItem) {\n const parsingKey = parsingKeyItem.innerKey;\n return {\n ...acc,\n [parsingKey]: parseFloat(item, 2),\n };\n }\n\n return acc;\n }, {});\n\n return dataPiece.isEmpty() ? accData : accData.push(dataPiece);\n }\n\n return accData;\n }, []);\n };\n}\n"],"names":["LasParser","_this","this","_classCallCheck","_defineProperty","lines","version","wrap","delimiter","flag","forEach","line","toLowerCase","startsWith","configurationLine","split","filter","Boolean","_configurationLine","_slicedToArray","key","value","dlmValue","config","file","getConfiguration","reduce","accHeaders","clearedLine","push","parsedHeaders","keysForParsing","accData","dataPiece","acc","item","index","parsingKeyItem","find","keyItem","parsingKey","innerKey","parseFloat","isEmpty"],"mappings":"w4BAAA,IAQqBA,aACnB,SAAcA,IAAA,IAAAC,EAAAC,KAAAC,UAAAD,KAAAF,GAAAI,EAAAA,QAQKF,KAAA,oBAAA,SAAAG,GACjB,IAAIC,EAAU,KACVC,EAAO,KACPC,EAAY,KACZC,GAAO,EAEXJ,EAAMK,SAAQ,SAAAC,GAEZ,GAAIA,EAAKC,cAAcC,WArBK,YAsB1BJ,GAAO,OAKT,GAAIE,EAAKC,cAAcC,WAAW,KAChCJ,GAAO,MADT,CAKA,GAAIA,EAAM,CACR,IAAMK,EAAoBH,EAAKI,MAAM,KAAKC,OAAOC,SAGjDC,EAAAC,EAAAA,QAA+BL,EAAiB,GAAzCM,EAAGF,EAAA,GAAEG,EAAKH,EAAA,GAAEI,EAAQJ,EAAA,GAE3B,OAAQE,GACN,IA3Ce,QA4Cbd,EAAUe,EACV,MACF,IA7CY,QA8CVd,EAAOc,EACP,MACF,IA/CiB,MAgDfb,EAAYc,EAKlB,CAEArB,EAAKsB,OAAS,CACZjB,QAAAA,EACAC,KAAAA,EACAC,UAAAA,EA1BF,CA4BF,OACDJ,EAAAA,QAEcF,KAAA,gBAAA,SAAAsB,GACb,IAAMnB,EAAQmB,EAAKT,MAAM,MAEzBd,EAAKwB,iBAAiBpB,GAEtB,IAAII,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACC,EAAYhB,GAC/B,GAAIA,EAAKC,cAAcC,WApEE,UAsEvB,OADAJ,GAAO,EACAkB,EAOT,GAJIhB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,IAASE,EAAKE,WAAW,OAASF,EAAKE,WAAW,MAAO,CAC3D,IAAMe,EAAcjB,EAAKI,MAAM,KAAKC,OAAOC,SAC3C,OAAKW,EAIED,EAAWE,KAAKD,EAAY,IAH1BD,CAIX,CAEA,OAAOA,CACR,GAAE,OACJvB,EAAA,QAAAF,KAAA,aAEW,SAACsB,EAAMM,EAAeC,GAChC,IAAM1B,EAAQmB,EAAKT,MAAM,MAErBN,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACM,EAASrB,GAC5B,GAAIA,EAAKC,cAAcC,WA/FD,MAiGpB,OADAJ,GAAO,EACAuB,EAOT,GAJIrB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,EAAM,CAER,IACMwB,EADUtB,EAAKI,MAAM,WAAWC,OAAOC,SACnBS,QAAO,SAACQ,EAAKC,EAAMC,GAC3C,IAAMhB,EAAMU,EAAcM,GACpBC,EAAiBN,EAAeO,MAAK,SAAAC,GAAO,OAAIA,EAAQC,aAAepB,KAE7E,GAAIiB,EAAgB,CAClB,IAAMG,EAAaH,EAAeI,SAClC,OACKP,EAAAA,EAAAA,CAAAA,EAAAA,mBACFM,EAAaE,WAAWP,EAAM,IAEnC,CAEA,OAAOD,CACR,GAAE,CAAE,GAEL,OAAOD,EAAUU,UAAYX,EAAUA,EAAQH,KAAKI,EACtD,CAEA,OAAOD,CACR,GAAE,OA1HH9B,KAAKqB,OAAS,CACZjB,QAAS,KACTC,KAAM,KACNC,UAAW,KAEf"}
1
+ {"version":3,"file":"lasParser.js","sources":["../../../src/utils/lasParser.js"],"sourcesContent":["const VERSION_CONF_STR = 'VERS.';\nconst WRAP_CONF_STR = 'WRAP.';\nconst DELIMITER_CONF_STR = 'DLM';\n\nconst VERSION_SECTION_BEGINNING = '~version';\nconst COLUMNS_LINE_BEGINNING = '~curve';\nconst DATA_LINE_BEGINNING = '~a';\n\nexport class LasParser {\n constructor() {\n this.config = {\n version: null,\n wrap: null,\n delimiter: null,\n };\n }\n\n getConfiguration = lines => {\n let version = null;\n let wrap = null;\n let delimiter = null;\n let flag = false;\n\n lines.forEach(line => {\n // NOTE: Detect the beginning of version section\n if (line.toLowerCase().startsWith(VERSION_SECTION_BEGINNING)) {\n flag = true;\n return;\n }\n\n // NOTE: Detect the beginning of other sections\n if (line.toLowerCase().startsWith('~')) {\n flag = false;\n return;\n }\n\n if (flag) {\n const configurationLine = line.split(' ').filter(Boolean);\n\n // NOTE: When parsing delimiter line, `value` will be '.' (DLM . -> LAS 3.0 format)\n const [key, value, dlmValue] = configurationLine;\n\n switch (key) {\n case VERSION_CONF_STR:\n version = value;\n break;\n case WRAP_CONF_STR:\n wrap = value;\n break;\n case DELIMITER_CONF_STR:\n delimiter = dlmValue;\n break;\n default:\n break;\n }\n }\n\n this.config = {\n version,\n wrap,\n delimiter,\n };\n });\n };\n\n parseHeaders = file => {\n const lines = file.split('\\n');\n\n this.getConfiguration(lines);\n\n let flag = false;\n\n return lines.reduce((accHeaders, line) => {\n if (line.toLowerCase().startsWith(COLUMNS_LINE_BEGINNING)) {\n flag = true;\n return accHeaders;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag && !line.startsWith('#') && !line.startsWith('\\r')) {\n const clearedLine = line.split(' ').filter(Boolean);\n if (!clearedLine) {\n return accHeaders;\n }\n\n return accHeaders.push(clearedLine[0]);\n }\n\n return accHeaders;\n }, []);\n };\n\n parseData = (file, parsedHeaders, keysForParsing) => {\n const lines = file.split('\\n');\n\n let flag = false;\n\n return lines.reduce((accData, line) => {\n if (line.toLowerCase().startsWith(DATA_LINE_BEGINNING)) {\n flag = true;\n return accData;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag) {\n // NOTE: Delimiters can be comma, space and tab.\n const headers = line.split(/[\\t\\s,]/).filter(Boolean);\n const dataPiece = headers.reduce((acc, item, index) => {\n const key = parsedHeaders[index];\n const parsingKeyItem = keysForParsing.find(keyItem => keyItem.parsingKey === key);\n\n if (parsingKeyItem) {\n const parsingKey = parsingKeyItem.innerKey;\n return {\n ...acc,\n [parsingKey]: parseFloat(item, 2),\n };\n }\n\n return acc;\n }, {});\n\n return dataPiece.isEmpty() ? accData : accData.push(dataPiece);\n }\n\n return accData;\n }, []);\n };\n}\n\nexport default LasParser;\n"],"names":["LasParser","_this","this","_classCallCheck","_defineProperty","lines","version","wrap","delimiter","flag","forEach","line","toLowerCase","startsWith","configurationLine","split","filter","Boolean","_configurationLine","_slicedToArray","key","value","dlmValue","config","file","getConfiguration","reduce","accHeaders","clearedLine","push","parsedHeaders","keysForParsing","accData","dataPiece","acc","item","index","parsingKeyItem","find","keyItem","parsingKey","innerKey","parseFloat","isEmpty"],"mappings":"+7BAAA,IAQaA,aACX,SAAcA,IAAA,IAAAC,EAAAC,KAAAC,UAAAD,KAAAF,GAAAI,EAAAA,QAQKF,KAAA,oBAAA,SAAAG,GACjB,IAAIC,EAAU,KACVC,EAAO,KACPC,EAAY,KACZC,GAAO,EAEXJ,EAAMK,SAAQ,SAAAC,GAEZ,GAAIA,EAAKC,cAAcC,WArBK,YAsB1BJ,GAAO,OAKT,GAAIE,EAAKC,cAAcC,WAAW,KAChCJ,GAAO,MADT,CAKA,GAAIA,EAAM,CACR,IAAMK,EAAoBH,EAAKI,MAAM,KAAKC,OAAOC,SAGjDC,EAAAC,EAAAA,QAA+BL,EAAiB,GAAzCM,EAAGF,EAAA,GAAEG,EAAKH,EAAA,GAAEI,EAAQJ,EAAA,GAE3B,OAAQE,GACN,IA3Ce,QA4Cbd,EAAUe,EACV,MACF,IA7CY,QA8CVd,EAAOc,EACP,MACF,IA/CiB,MAgDfb,EAAYc,EAKlB,CAEArB,EAAKsB,OAAS,CACZjB,QAAAA,EACAC,KAAAA,EACAC,UAAAA,EA1BF,CA4BF,OACDJ,EAAAA,QAEcF,KAAA,gBAAA,SAAAsB,GACb,IAAMnB,EAAQmB,EAAKT,MAAM,MAEzBd,EAAKwB,iBAAiBpB,GAEtB,IAAII,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACC,EAAYhB,GAC/B,GAAIA,EAAKC,cAAcC,WApEE,UAsEvB,OADAJ,GAAO,EACAkB,EAOT,GAJIhB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,IAASE,EAAKE,WAAW,OAASF,EAAKE,WAAW,MAAO,CAC3D,IAAMe,EAAcjB,EAAKI,MAAM,KAAKC,OAAOC,SAC3C,OAAKW,EAIED,EAAWE,KAAKD,EAAY,IAH1BD,CAIX,CAEA,OAAOA,CACR,GAAE,OACJvB,EAAA,QAAAF,KAAA,aAEW,SAACsB,EAAMM,EAAeC,GAChC,IAAM1B,EAAQmB,EAAKT,MAAM,MAErBN,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACM,EAASrB,GAC5B,GAAIA,EAAKC,cAAcC,WA/FD,MAiGpB,OADAJ,GAAO,EACAuB,EAOT,GAJIrB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,EAAM,CAER,IACMwB,EADUtB,EAAKI,MAAM,WAAWC,OAAOC,SACnBS,QAAO,SAACQ,EAAKC,EAAMC,GAC3C,IAAMhB,EAAMU,EAAcM,GACpBC,EAAiBN,EAAeO,MAAK,SAAAC,GAAO,OAAIA,EAAQC,aAAepB,KAE7E,GAAIiB,EAAgB,CAClB,IAAMG,EAAaH,EAAeI,SAClC,OACKP,EAAAA,EAAAA,CAAAA,EAAAA,mBACFM,EAAaE,WAAWP,EAAM,IAEnC,CAEA,OAAOD,CACR,GAAE,CAAE,GAEL,OAAOD,EAAUU,UAAYX,EAAUA,EAAQH,KAAKI,EACtD,CAEA,OAAOD,CACR,GAAE,OA1HH9B,KAAKqB,OAAS,CACZjB,QAAS,KACTC,KAAM,KACNC,UAAW,KAEf"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@babel/runtime/helpers/asyncToGenerator"),t=require("@babel/runtime/helpers/toConsumableArray"),r=require("@babel/runtime/regenerator"),n=require("file-saver"),a=require("chroma-js"),i=require("lodash/round"),o=require("lodash/isNaN"),u=require("lodash/isNumber"),c=require("html2canvas"),l=require("@material-ui/core/colors/grey"),s=require("@material-ui/core/colors/red"),f=require("@material-ui/core/colors/yellow"),m=require("@material-ui/core/colors/blue"),d=require("@material-ui/core/colors/green"),p=require("../constants/apps.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=h(e),v=h(t),b=h(r),N=h(n),F=h(a),w=h(i),T=h(o),q=h(u),E=h(c),y=h(l),A=h(s),R=h(f),C=h(m),S=h(d),L=y.default[500],P=A.default[500],x=R.default[500],_=C.default[500],B=S.default[500],I={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.default.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),a=new Uint8Array(n),i=0;i<t.length;i+=1)a[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 t=this,r=e.split("\n"),n=r[0].split(","),a=r[1].split(",").map((function(e){return[t.parseNumberFromString(e)]})),i=this.getLinesFrequency(r.length);r.shift();var o=r.reduce((function(e,r,n){if(n%i==0){var a=r.split(",").map(t.parseNumberFromString);return e.map((function(e,t){var r=+a[t];return q.default(r)&&!T.default(r)&&r>0?[].concat(v.default(e),[r]):e}))}return e}),a).map((function(e){return e.reduce((function(e,t){return e+t}))/e.length}));return o.map((function(e,t){return{header:n[t],value:w.default(e,5)}}))},parseNumberFromString:function(e){var t=+e;return T.default(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 a=!1,i=function(){a||(a=!0,window.requestAnimationFrame((function(){r.call(n),a=!1})))};return e.addEventListener(t,i),function(){e.removeEventListener(t,i)}},getSnapshotForElement:function(e){return g.default(b.default.mark((function t(){var r,n,a,i;return b.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=window.document.getElementById(e)){t.next=3;break}return t.abrupt("return",null);case 3:return n=r.clientHeight,a=r.clientWidth,t.next=6,E.default(r,{height:n,width:a,logging:!1});case 6:return i=t.sent,t.abrupt("return",i.toDataURL());case 8:case"end":return t.stop()}}),t)})))()},getAssetStatusColor:function(e){return"active"===e?B:"complete"===e?_:"paused"===e?x:"idle"===e||"unknown"===e?L:P},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(p.SUPPORTED_DRILLING_OPERATIONS).find((function(t){return t.value===e||p.DEFAULT_DRILLING_OPERATION_TYPE}))},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=F.default(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=I.getSnapshotForElement,module.exports=I;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/asyncToGenerator"),t=require("@babel/runtime/helpers/toConsumableArray"),r=require("@babel/runtime/regenerator"),n=require("file-saver"),o=require("chroma-js"),a=require("lodash/round"),i=require("lodash/isNaN"),u=require("lodash/isNumber"),s=require("html2canvas"),l=require("@material-ui/core/colors/grey"),c=require("@material-ui/core/colors/red"),p=require("@material-ui/core/colors/yellow"),f=require("@material-ui/core/colors/blue"),m=require("@material-ui/core/colors/green"),d=require("../constants/apps.js");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h,v=g(e),b=g(t),x=g(r),N=g(n),F=g(o),T=g(a),y=g(i),w=g(u),A=g(s),C=g(l),E=g(c),q=g(p),R=g(f),S=g(m),P=C.default[500],L=E.default[500],B=q.default[500],M=R.default[500],_=S.default[500],I=function(e){return Number.isFinite(e)?e<100&&e>-100?e.formatNumeral("0,0.00"):e.formatNumeral("0,0.0"):e},O=function(e,t){var r=new File([t],"".concat(e,".pdf"),{type:"application/pdf;charset=utf-8"});N.default.saveAs(r)},U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/\\n/g,"\n")},k=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),a=0;a<t.length;a+=1)o[a]=t.charCodeAt(a);return new Blob([n],{type:r})},D=function(e){var t=new Date;return{stop:function(){var r=(new Date).getTime()-t.getTime();console.info("Timer:",e,"finished in",r,"ms")}}},j=function(e,t){return e&&Number.isFinite(t)&&0!==t?Math.round(100*e/t*100)/100:0},V=function(e){var t=+e;return y.default(t)?0:t},G=function(e){var t="".concat(e);if(t.length<=4)return 1;var r=t.slice(4).length;return 1*Math.pow(10,r)},W=function(e){var t=e.split("\n"),r=t[0].split(","),n=t[1].split(",").map((function(e){return[V(e)]})),o=G(t.length);t.shift();var a=t.reduce((function(e,t,r){if(r%o==0){var n=t.split(",").map(V);return e.map((function(e,t){var r=+n[t];return w.default(r)&&!y.default(r)&&r>0?[].concat(b.default(e),[r]):e}))}return e}),n).map((function(e){return e.reduce((function(e,t){return e+t}))/e.length}));return a.map((function(e,t){return{header:r[t],value:T.default(e,5)}}))},z=function(e){var t=(16777215&e).toString(16).toUpperCase();return"00000".substring(0,6-t.length)+t},H=function(e){for(var t=0,r=0;r<e.length;r+=1)t=e.charCodeAt(r)+((t<<5)-t);return t},Y=function(e){return z(H(e))},J=function(e,t,r,n){var o=!1,a=function(){o||(o=!0,window.requestAnimationFrame((function(){r.call(n),o=!1})))};return e.addEventListener(t,a),function(){e.removeEventListener(t,a)}},K=(h=v.default(x.default.mark((function e(t){var r,n,o,a;return x.default.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 n=r.clientHeight,o=r.clientWidth,e.next=6,A.default(r,{height:n,width:o,logging:!1});case 6:return a=e.sent,e.abrupt("return",a.toDataURL());case 8:case"end":return e.stop()}}),e)}))),function(e){return h.apply(this,arguments)}),Q=function(e){return"active"===e?_:"complete"===e?M:"paused"===e?B:"idle"===e||"unknown"===e?P:L},X=function(e,t){return e.reduce((function(e,r){return Math.abs(r-t)<Math.abs(e-t)?r:e}))},Z=function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.max(e,t):e:t},$=function(e,t){return Number.isFinite(e)?Number.isFinite(t)?Math.min(e,t):e:t},ee=function(e){return Object.values(d.SUPPORTED_DRILLING_OPERATIONS).find((function(t){return t.value===e||d.DEFAULT_DRILLING_OPERATION_TYPE}))},te=function(e){return e?"".concat(e.first_name," ").concat(e.last_name):""},re=function(e){return e.split(" ").slice(0,2).map((function(e){return e.substr(0,1)})).join("")},ne=function(){return"development"===process.env.REACT_APP_ENVIRONMENT||"qa"===process.env.REACT_APP_ENVIRONMENT?"corva-files-qa":"corva-files"},oe=function(e,t){return"https://".concat(e,".s3.amazonaws.com/").concat(t)},ae=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split("?")[0].replace(/^.*[\\/]/,"")},ie=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=F.default(e).rgba();return r[r.length-1]=t,"rgba(".concat(r.join(","),")")},ue=function(e,t){return e.length>t?"".concat(e.substr(0,t-1),"&hellip;"):e},se=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)}},le={formatValuePrecision:I,downloadPDF:O,unescapeLineBreaks:U,dataURLtoBlob:k,banchmarkTimer:D,convertToPercent:j,getAverageByColumnsForCSV:W,getLinesFrequency:G,getColorFromString:Y,intToRGB:z,hashCode:H,throttledEventListener:J,getSnapshotForElement:K,getAssetStatusColor:Q,closest:X,mathMax:Z,mathMin:$,getOperationByType:ee,getUserFullName:te,getNameInitials:re,getS3BucketName:ne,getS3FileUrl:oe,getFileNameWithExtensionFromPath:ae,hexToRgbA:ie,truncateString:ue,copyToClipboard:se};window.getSnapshotForElement=K,exports.banchmarkTimer=D,exports.closest=X,exports.convertToPercent=j,exports.copyToClipboard=se,exports.dataURLtoBlob=k,exports.default=le,exports.downloadPDF=O,exports.formatValuePrecision=I,exports.getAssetStatusColor=Q,exports.getAverageByColumnsForCSV=W,exports.getColorFromString=Y,exports.getFileNameWithExtensionFromPath=ae,exports.getLinesFrequency=G,exports.getNameInitials=re,exports.getOperationByType=ee,exports.getS3BucketName=ne,exports.getS3FileUrl=oe,exports.getSnapshotForElement=K,exports.getUserFullName=te,exports.hashCode=H,exports.hexToRgbA=ie,exports.intToRGB=z,exports.mathMax=Z,exports.mathMin=$,exports.parseNumberFromString=V,exports.throttledEventListener=J,exports.truncateString=ue,exports.unescapeLineBreaks=U;
2
2
  //# sourceMappingURL=main.js.map
@@ -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,2 +1,2 @@
1
- "use strict";module.exports=function(e,t){return Object.keys(e).reduce((function(r,c){var n=e[c];return r[c]=n.label,"metrics"in n&&(r[c]+=" (".concat(t[n.metrics],")")),r}),{})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=function(e,t){return Object.keys(e).reduce((function(r,c){var n=e[c];return r[c]=n.label,"metrics"in n&&(r[c]+=" (".concat(t[n.metrics],")")),r}),{})};exports.default=e,exports.mapUnits=e;
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":["data","units","Object","keys","reduce","acc","key","field","label","metrics"],"mappings":"4BAUiB,SAACA,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":"oEAUO,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,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=e(require("lodash/get"));function n(e){return"admin"===e.role}var t={is_admin:n,is_corva_admin:function(e){return n(e)&&"corva"===r.default(e,["company","provider"],null)}};function o(e,r){if(r in t)return t[r](e);throw new Error("There is no rule ".concat(r,", please check the spelling"))}module.exports=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return r.reduce((function(r,n){return r&&o(e,n)}),!0)};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("lodash/get"));function n(e){return"admin"===e.role}var t={is_admin:n,is_corva_admin:function(e){return n(e)&&"corva"===r.default(e,["company","provider"],null)}};function o(e,r){if(r in t)return t[r](e);throw new Error("There is no rule ".concat(r,", please check the spelling"))}function i(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return r.reduce((function(r,n){return r&&o(e,n)}),!0)}exports.checkUserPermissions=i,exports.default=i;
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","permissions","reduce","isAllowed","rule"],"mappings":"oHAEA,SAASA,EAAQC,GACf,MAAqB,UAAdA,EAAKC,IACd,CAMA,IAAMC,EAAmB,CACvBC,SAAUJ,EACVK,eANF,SAAsBJ,GACpB,OAAOD,EAAQC,IAAsD,UAA7CK,EAAAA,QAAIL,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,gBAEe,SAA8BP,GAAwB,IAAlBS,yDAAc,GAC/D,OAAOA,EAAYC,QACjB,SAACC,EAAWC,GAAI,OAAKD,GAAaL,EAAyBN,EAAMY,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":"2KAEA,SAASA,EAAQC,GACf,MAAqB,UAAdA,EAAKC,IACd,CAMA,IAAMC,EAAmB,CACvBC,SAAUJ,EACVK,eANF,SAAsBJ,GACpB,OAAOD,EAAQC,IAAsD,UAA7CK,EAAAA,QAAIL,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"}
@@ -1,2 +1,2 @@
1
- import{jsx as o}from"react/jsx-runtime";import s from"classnames";import{useState as c,useRef as i,useCallback as n}from"react";import{Tooltip as t}from"../Tooltip/Tooltip.js";import{CopyIcon as m}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import r from"../../utils/main.js";import e from"./CopyToClipboard.scss.js";var p={large:24,medium:16,small:12},u=function(u){var l=u.text,a=u.tooltipDisabled,j=u.size,d=void 0===j?"medium":j,I=u.testId,C=u.className,h=u.tooltipTitle,F=void 0===h?"Copied":h,v=u.tooltipDuration,b=void 0===v?1500:v,f=u.tooltipPlacement,k=void 0===f?"bottom":f,x=c(!1),A=x[0],T=x[1],O=i(),P=n((function(){r.copyToClipboard(l),T(!0),clearTimeout(O.current),O.current=setTimeout((function(){return T(!1)}),b)}),[l,b]);return o(t,{title:F,disabled:a,open:A,placement:k,children:o("div",{className:s(e.root,C),"data-testid":I,onClick:P,children:o(m,{size:p[d]})})})};export{u as CopyToClipboard};
1
+ import{jsx as o}from"react/jsx-runtime";import s from"classnames";import{useState as c,useRef as i,useCallback as n}from"react";import{Tooltip as t}from"../Tooltip/Tooltip.js";import{CopyIcon as m}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import{copyToClipboard as r}from"../../utils/main.js";import e from"./CopyToClipboard.scss.js";var p={large:24,medium:16,small:12},u=function(u){var l=u.text,a=u.tooltipDisabled,j=u.size,I=void 0===j?"medium":j,d=u.testId,C=u.className,h=u.tooltipTitle,F=void 0===h?"Copied":h,v=u.tooltipDuration,f=void 0===v?1500:v,b=u.tooltipPlacement,k=void 0===b?"bottom":b,x=c(!1),A=x[0],T=x[1],O=i(),P=n((function(){r(l),T(!0),clearTimeout(O.current),O.current=setTimeout((function(){return T(!1)}),f)}),[l,f]);return o(t,{title:F,disabled:a,open:A,placement:k,children:o("div",{className:s(e.root,C),"data-testid":d,onClick:P,children:o(m,{size:p[I]})})})};export{u as CopyToClipboard};
2
2
  //# sourceMappingURL=CopyToClipboard.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corva/ui",
3
- "version": "3.22.3",
3
+ "version": "3.22.4",
4
4
  "description": "Shared components/utils for Corva ui projects",
5
5
  "keywords": [
6
6
  "corva-ui"
@@ -1,4 +1,4 @@
1
- export default class LasParser {
1
+ export class LasParser {
2
2
  config: {
3
3
  version: any;
4
4
  wrap: any;
@@ -8,4 +8,5 @@ export default class LasParser {
8
8
  parseHeaders: (file: any) => any;
9
9
  parseData: (file: any, parsedHeaders: any, keysForParsing: any) => any;
10
10
  }
11
+ export default LasParser;
11
12
  //# sourceMappingURL=lasParser.d.ts.map
@@ -1,2 +1,2 @@
1
- import r from"@babel/runtime/helpers/slicedToArray";import e from"@babel/runtime/helpers/createClass";import t from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/defineProperty";function i(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function s(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?i(Object(t),!0).forEach((function(e){n(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var o=e((function e(){var i=this;t(this,e),n(this,"getConfiguration",(function(e){var t=null,n=null,s=null,o=!1;e.forEach((function(e){if(e.toLowerCase().startsWith("~version"))o=!0;else if(e.toLowerCase().startsWith("~"))o=!1;else{if(o){var a=e.split(" ").filter(Boolean),l=r(a,3),u=l[0],c=l[1],f=l[2];switch(u){case"VERS.":t=c;break;case"WRAP.":n=c;break;case"DLM":s=f}}i.config={version:t,wrap:n,delimiter:s}}}))})),n(this,"parseHeaders",(function(r){var e=r.split("\n");i.getConfiguration(e);var t=!1;return e.reduce((function(r,e){if(e.toLowerCase().startsWith("~curve"))return t=!0,r;if(e.startsWith("~")&&(t=!1),t&&!e.startsWith("#")&&!e.startsWith("\r")){var n=e.split(" ").filter(Boolean);return n?r.push(n[0]):r}return r}),[])})),n(this,"parseData",(function(r,e,t){var i=r.split("\n"),o=!1;return i.reduce((function(r,i){if(i.toLowerCase().startsWith("~a"))return o=!0,r;if(i.startsWith("~")&&(o=!1),o){var a=i.split(/[\t\s,]/).filter(Boolean).reduce((function(r,i,o){var a=e[o],l=t.find((function(r){return r.parsingKey===a}));if(l){var u=l.innerKey;return s(s({},r),{},n({},u,parseFloat(i,2)))}return r}),{});return a.isEmpty()?r:r.push(a)}return r}),[])})),this.config={version:null,wrap:null,delimiter:null}}));export{o as default};
1
+ import r from"@babel/runtime/helpers/slicedToArray";import e from"@babel/runtime/helpers/createClass";import t from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/defineProperty";function i(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function s(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?i(Object(t),!0).forEach((function(e){n(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var o=e((function e(){var i=this;t(this,e),n(this,"getConfiguration",(function(e){var t=null,n=null,s=null,o=!1;e.forEach((function(e){if(e.toLowerCase().startsWith("~version"))o=!0;else if(e.toLowerCase().startsWith("~"))o=!1;else{if(o){var a=e.split(" ").filter(Boolean),l=r(a,3),u=l[0],c=l[1],f=l[2];switch(u){case"VERS.":t=c;break;case"WRAP.":n=c;break;case"DLM":s=f}}i.config={version:t,wrap:n,delimiter:s}}}))})),n(this,"parseHeaders",(function(r){var e=r.split("\n");i.getConfiguration(e);var t=!1;return e.reduce((function(r,e){if(e.toLowerCase().startsWith("~curve"))return t=!0,r;if(e.startsWith("~")&&(t=!1),t&&!e.startsWith("#")&&!e.startsWith("\r")){var n=e.split(" ").filter(Boolean);return n?r.push(n[0]):r}return r}),[])})),n(this,"parseData",(function(r,e,t){var i=r.split("\n"),o=!1;return i.reduce((function(r,i){if(i.toLowerCase().startsWith("~a"))return o=!0,r;if(i.startsWith("~")&&(o=!1),o){var a=i.split(/[\t\s,]/).filter(Boolean).reduce((function(r,i,o){var a=e[o],l=t.find((function(r){return r.parsingKey===a}));if(l){var u=l.innerKey;return s(s({},r),{},n({},u,parseFloat(i,2)))}return r}),{});return a.isEmpty()?r:r.push(a)}return r}),[])})),this.config={version:null,wrap:null,delimiter:null}}));export{o as LasParser,o as default};
2
2
  //# sourceMappingURL=lasParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lasParser.js","sources":["../../src/utils/lasParser.js"],"sourcesContent":["const VERSION_CONF_STR = 'VERS.';\nconst WRAP_CONF_STR = 'WRAP.';\nconst DELIMITER_CONF_STR = 'DLM';\n\nconst VERSION_SECTION_BEGINNING = '~version';\nconst COLUMNS_LINE_BEGINNING = '~curve';\nconst DATA_LINE_BEGINNING = '~a';\n\nexport default class LasParser {\n constructor() {\n this.config = {\n version: null,\n wrap: null,\n delimiter: null,\n };\n }\n\n getConfiguration = lines => {\n let version = null;\n let wrap = null;\n let delimiter = null;\n let flag = false;\n\n lines.forEach(line => {\n // NOTE: Detect the beginning of version section\n if (line.toLowerCase().startsWith(VERSION_SECTION_BEGINNING)) {\n flag = true;\n return;\n }\n\n // NOTE: Detect the beginning of other sections\n if (line.toLowerCase().startsWith('~')) {\n flag = false;\n return;\n }\n\n if (flag) {\n const configurationLine = line.split(' ').filter(Boolean);\n\n // NOTE: When parsing delimiter line, `value` will be '.' (DLM . -> LAS 3.0 format)\n const [key, value, dlmValue] = configurationLine;\n\n switch (key) {\n case VERSION_CONF_STR:\n version = value;\n break;\n case WRAP_CONF_STR:\n wrap = value;\n break;\n case DELIMITER_CONF_STR:\n delimiter = dlmValue;\n break;\n default:\n break;\n }\n }\n\n this.config = {\n version,\n wrap,\n delimiter,\n };\n });\n };\n\n parseHeaders = file => {\n const lines = file.split('\\n');\n\n this.getConfiguration(lines);\n\n let flag = false;\n\n return lines.reduce((accHeaders, line) => {\n if (line.toLowerCase().startsWith(COLUMNS_LINE_BEGINNING)) {\n flag = true;\n return accHeaders;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag && !line.startsWith('#') && !line.startsWith('\\r')) {\n const clearedLine = line.split(' ').filter(Boolean);\n if (!clearedLine) {\n return accHeaders;\n }\n\n return accHeaders.push(clearedLine[0]);\n }\n\n return accHeaders;\n }, []);\n };\n\n parseData = (file, parsedHeaders, keysForParsing) => {\n const lines = file.split('\\n');\n\n let flag = false;\n\n return lines.reduce((accData, line) => {\n if (line.toLowerCase().startsWith(DATA_LINE_BEGINNING)) {\n flag = true;\n return accData;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag) {\n // NOTE: Delimiters can be comma, space and tab.\n const headers = line.split(/[\\t\\s,]/).filter(Boolean);\n const dataPiece = headers.reduce((acc, item, index) => {\n const key = parsedHeaders[index];\n const parsingKeyItem = keysForParsing.find(keyItem => keyItem.parsingKey === key);\n\n if (parsingKeyItem) {\n const parsingKey = parsingKeyItem.innerKey;\n return {\n ...acc,\n [parsingKey]: parseFloat(item, 2),\n };\n }\n\n return acc;\n }, {});\n\n return dataPiece.isEmpty() ? accData : accData.push(dataPiece);\n }\n\n return accData;\n }, []);\n };\n}\n"],"names":["LasParser","_this","this","_classCallCheck","_defineProperty","lines","version","wrap","delimiter","flag","forEach","line","toLowerCase","startsWith","configurationLine","split","filter","Boolean","_configurationLine","_slicedToArray","key","value","dlmValue","config","file","getConfiguration","reduce","accHeaders","clearedLine","push","parsedHeaders","keysForParsing","accData","dataPiece","acc","item","index","parsingKeyItem","find","keyItem","parsingKey","innerKey","parseFloat","isEmpty"],"mappings":"+wBAAA,IAQqBA,KACnB,SAAcA,IAAA,IAAAC,EAAAC,KAAAC,EAAAD,KAAAF,GAAAI,EAQKF,KAAA,oBAAA,SAAAG,GACjB,IAAIC,EAAU,KACVC,EAAO,KACPC,EAAY,KACZC,GAAO,EAEXJ,EAAMK,SAAQ,SAAAC,GAEZ,GAAIA,EAAKC,cAAcC,WArBK,YAsB1BJ,GAAO,OAKT,GAAIE,EAAKC,cAAcC,WAAW,KAChCJ,GAAO,MADT,CAKA,GAAIA,EAAM,CACR,IAAMK,EAAoBH,EAAKI,MAAM,KAAKC,OAAOC,SAGjDC,EAAAC,EAA+BL,EAAiB,GAAzCM,EAAGF,EAAA,GAAEG,EAAKH,EAAA,GAAEI,EAAQJ,EAAA,GAE3B,OAAQE,GACN,IA3Ce,QA4Cbd,EAAUe,EACV,MACF,IA7CY,QA8CVd,EAAOc,EACP,MACF,IA/CiB,MAgDfb,EAAYc,EAKlB,CAEArB,EAAKsB,OAAS,CACZjB,QAAAA,EACAC,KAAAA,EACAC,UAAAA,EA1BF,CA4BF,OACDJ,EAEcF,KAAA,gBAAA,SAAAsB,GACb,IAAMnB,EAAQmB,EAAKT,MAAM,MAEzBd,EAAKwB,iBAAiBpB,GAEtB,IAAII,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACC,EAAYhB,GAC/B,GAAIA,EAAKC,cAAcC,WApEE,UAsEvB,OADAJ,GAAO,EACAkB,EAOT,GAJIhB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,IAASE,EAAKE,WAAW,OAASF,EAAKE,WAAW,MAAO,CAC3D,IAAMe,EAAcjB,EAAKI,MAAM,KAAKC,OAAOC,SAC3C,OAAKW,EAIED,EAAWE,KAAKD,EAAY,IAH1BD,CAIX,CAEA,OAAOA,CACR,GAAE,OACJvB,EAAAF,KAAA,aAEW,SAACsB,EAAMM,EAAeC,GAChC,IAAM1B,EAAQmB,EAAKT,MAAM,MAErBN,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACM,EAASrB,GAC5B,GAAIA,EAAKC,cAAcC,WA/FD,MAiGpB,OADAJ,GAAO,EACAuB,EAOT,GAJIrB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,EAAM,CAER,IACMwB,EADUtB,EAAKI,MAAM,WAAWC,OAAOC,SACnBS,QAAO,SAACQ,EAAKC,EAAMC,GAC3C,IAAMhB,EAAMU,EAAcM,GACpBC,EAAiBN,EAAeO,MAAK,SAAAC,GAAO,OAAIA,EAAQC,aAAepB,KAE7E,GAAIiB,EAAgB,CAClB,IAAMG,EAAaH,EAAeI,SAClC,OACKP,EAAAA,EAAAA,CAAAA,EAAAA,WACFM,EAAaE,WAAWP,EAAM,IAEnC,CAEA,OAAOD,CACR,GAAE,CAAE,GAEL,OAAOD,EAAUU,UAAYX,EAAUA,EAAQH,KAAKI,EACtD,CAEA,OAAOD,CACR,GAAE,OA1HH9B,KAAKqB,OAAS,CACZjB,QAAS,KACTC,KAAM,KACNC,UAAW,KAEf"}
1
+ {"version":3,"file":"lasParser.js","sources":["../../src/utils/lasParser.js"],"sourcesContent":["const VERSION_CONF_STR = 'VERS.';\nconst WRAP_CONF_STR = 'WRAP.';\nconst DELIMITER_CONF_STR = 'DLM';\n\nconst VERSION_SECTION_BEGINNING = '~version';\nconst COLUMNS_LINE_BEGINNING = '~curve';\nconst DATA_LINE_BEGINNING = '~a';\n\nexport class LasParser {\n constructor() {\n this.config = {\n version: null,\n wrap: null,\n delimiter: null,\n };\n }\n\n getConfiguration = lines => {\n let version = null;\n let wrap = null;\n let delimiter = null;\n let flag = false;\n\n lines.forEach(line => {\n // NOTE: Detect the beginning of version section\n if (line.toLowerCase().startsWith(VERSION_SECTION_BEGINNING)) {\n flag = true;\n return;\n }\n\n // NOTE: Detect the beginning of other sections\n if (line.toLowerCase().startsWith('~')) {\n flag = false;\n return;\n }\n\n if (flag) {\n const configurationLine = line.split(' ').filter(Boolean);\n\n // NOTE: When parsing delimiter line, `value` will be '.' (DLM . -> LAS 3.0 format)\n const [key, value, dlmValue] = configurationLine;\n\n switch (key) {\n case VERSION_CONF_STR:\n version = value;\n break;\n case WRAP_CONF_STR:\n wrap = value;\n break;\n case DELIMITER_CONF_STR:\n delimiter = dlmValue;\n break;\n default:\n break;\n }\n }\n\n this.config = {\n version,\n wrap,\n delimiter,\n };\n });\n };\n\n parseHeaders = file => {\n const lines = file.split('\\n');\n\n this.getConfiguration(lines);\n\n let flag = false;\n\n return lines.reduce((accHeaders, line) => {\n if (line.toLowerCase().startsWith(COLUMNS_LINE_BEGINNING)) {\n flag = true;\n return accHeaders;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag && !line.startsWith('#') && !line.startsWith('\\r')) {\n const clearedLine = line.split(' ').filter(Boolean);\n if (!clearedLine) {\n return accHeaders;\n }\n\n return accHeaders.push(clearedLine[0]);\n }\n\n return accHeaders;\n }, []);\n };\n\n parseData = (file, parsedHeaders, keysForParsing) => {\n const lines = file.split('\\n');\n\n let flag = false;\n\n return lines.reduce((accData, line) => {\n if (line.toLowerCase().startsWith(DATA_LINE_BEGINNING)) {\n flag = true;\n return accData;\n }\n\n if (line.startsWith('~')) {\n flag = false;\n }\n\n if (flag) {\n // NOTE: Delimiters can be comma, space and tab.\n const headers = line.split(/[\\t\\s,]/).filter(Boolean);\n const dataPiece = headers.reduce((acc, item, index) => {\n const key = parsedHeaders[index];\n const parsingKeyItem = keysForParsing.find(keyItem => keyItem.parsingKey === key);\n\n if (parsingKeyItem) {\n const parsingKey = parsingKeyItem.innerKey;\n return {\n ...acc,\n [parsingKey]: parseFloat(item, 2),\n };\n }\n\n return acc;\n }, {});\n\n return dataPiece.isEmpty() ? accData : accData.push(dataPiece);\n }\n\n return accData;\n }, []);\n };\n}\n\nexport default LasParser;\n"],"names":["LasParser","_this","this","_classCallCheck","_defineProperty","lines","version","wrap","delimiter","flag","forEach","line","toLowerCase","startsWith","configurationLine","split","filter","Boolean","_configurationLine","_slicedToArray","key","value","dlmValue","config","file","getConfiguration","reduce","accHeaders","clearedLine","push","parsedHeaders","keysForParsing","accData","dataPiece","acc","item","index","parsingKeyItem","find","keyItem","parsingKey","innerKey","parseFloat","isEmpty"],"mappings":"+wBAAA,IAQaA,KACX,SAAcA,IAAA,IAAAC,EAAAC,KAAAC,EAAAD,KAAAF,GAAAI,EAQKF,KAAA,oBAAA,SAAAG,GACjB,IAAIC,EAAU,KACVC,EAAO,KACPC,EAAY,KACZC,GAAO,EAEXJ,EAAMK,SAAQ,SAAAC,GAEZ,GAAIA,EAAKC,cAAcC,WArBK,YAsB1BJ,GAAO,OAKT,GAAIE,EAAKC,cAAcC,WAAW,KAChCJ,GAAO,MADT,CAKA,GAAIA,EAAM,CACR,IAAMK,EAAoBH,EAAKI,MAAM,KAAKC,OAAOC,SAGjDC,EAAAC,EAA+BL,EAAiB,GAAzCM,EAAGF,EAAA,GAAEG,EAAKH,EAAA,GAAEI,EAAQJ,EAAA,GAE3B,OAAQE,GACN,IA3Ce,QA4Cbd,EAAUe,EACV,MACF,IA7CY,QA8CVd,EAAOc,EACP,MACF,IA/CiB,MAgDfb,EAAYc,EAKlB,CAEArB,EAAKsB,OAAS,CACZjB,QAAAA,EACAC,KAAAA,EACAC,UAAAA,EA1BF,CA4BF,OACDJ,EAEcF,KAAA,gBAAA,SAAAsB,GACb,IAAMnB,EAAQmB,EAAKT,MAAM,MAEzBd,EAAKwB,iBAAiBpB,GAEtB,IAAII,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACC,EAAYhB,GAC/B,GAAIA,EAAKC,cAAcC,WApEE,UAsEvB,OADAJ,GAAO,EACAkB,EAOT,GAJIhB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,IAASE,EAAKE,WAAW,OAASF,EAAKE,WAAW,MAAO,CAC3D,IAAMe,EAAcjB,EAAKI,MAAM,KAAKC,OAAOC,SAC3C,OAAKW,EAIED,EAAWE,KAAKD,EAAY,IAH1BD,CAIX,CAEA,OAAOA,CACR,GAAE,OACJvB,EAAAF,KAAA,aAEW,SAACsB,EAAMM,EAAeC,GAChC,IAAM1B,EAAQmB,EAAKT,MAAM,MAErBN,GAAO,EAEX,OAAOJ,EAAMqB,QAAO,SAACM,EAASrB,GAC5B,GAAIA,EAAKC,cAAcC,WA/FD,MAiGpB,OADAJ,GAAO,EACAuB,EAOT,GAJIrB,EAAKE,WAAW,OAClBJ,GAAO,GAGLA,EAAM,CAER,IACMwB,EADUtB,EAAKI,MAAM,WAAWC,OAAOC,SACnBS,QAAO,SAACQ,EAAKC,EAAMC,GAC3C,IAAMhB,EAAMU,EAAcM,GACpBC,EAAiBN,EAAeO,MAAK,SAAAC,GAAO,OAAIA,EAAQC,aAAepB,KAE7E,GAAIiB,EAAgB,CAClB,IAAMG,EAAaH,EAAeI,SAClC,OACKP,EAAAA,EAAAA,CAAAA,EAAAA,WACFM,EAAaE,WAAWP,EAAM,IAEnC,CAEA,OAAOD,CACR,GAAE,CAAE,GAEL,OAAOD,EAAUU,UAAYX,EAAUA,EAAQH,KAAKI,EACtD,CAEA,OAAOD,CACR,GAAE,OA1HH9B,KAAKqB,OAAS,CACZjB,QAAS,KACTC,KAAM,KACNC,UAAW,KAEf"}