{"version":3,"file":"js/406-a3554c66c06a6d67fc55.js","mappings":"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","sources":["webpack://biostatus/./app/javascript/bundles/common/components/BarcodeScanner.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Camera.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Digital.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Manage.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Shield.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/TrashCan.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Upload.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/Truck.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Icons/OpenCircleCheck.jsx","webpack://biostatus/./app/javascript/bundles/common/components/TestImageCapture.jsx","webpack://biostatus/./app/javascript/bundles/common/components/Webcam.jsx","webpack://biostatus/./app/javascript/bundles/shared_labs/components/PhotoBypassFields.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport * as ScanditSDK from 'scandit-sdk';\n\nconst BarcodeScanner = ({\n onScan,\n containerClassName = 'col-sm-10 col-md-6',\n}) => {\n useEffect(() => {\n ScanditSDK.configure(gon?.scandit_api_key, {\n engineLocation: 'https://cdn.jsdelivr.net/npm/scandit-sdk@5.x/build',\n }).then(() => {\n return ScanditSDK.BarcodePicker.create(\n document.getElementById('barcode-picker'),\n {\n playSoundOnScan: true,\n vibrateOnScan: true,\n videoFit: ScanditSDK.BarcodePicker.ObjectFit.COVER,\n },\n ).then((picker) => {\n window.barcodePicker = picker;\n picker.applyScanSettings(\n new ScanditSDK.ScanSettings({\n enabledSymbologies: [\n ScanditSDK.Barcode.Symbology.CODE128,\n ScanditSDK.Barcode.Symbology.DATA_MATRIX,\n ScanditSDK.Barcode.Symbology.QR,\n ScanditSDK.Barcode.Symbology.UPCA,\n ScanditSDK.Barcode.Symbology.UPCE,\n ScanditSDK.Barcode.Symbology.EAN8,\n ScanditSDK.Barcode.Symbology.EAN13,\n ScanditSDK.Barcode.Symbology.PDF417,\n ],\n codeDuplicateFilter: -1,\n }),\n );\n picker\n .on('scan', (scanResult) => {\n picker.pauseScanning();\n const barcode = scanResult.barcodes[0].data.replace('\\u001D', ''); // Sanitize input\n onScan(barcode);\n picker.destroy();\n })\n .on('scanError', console.error);\n });\n });\n return () => {\n if (window.barcodePicker) {\n window.barcodePicker.destroy();\n }\n };\n }, []);\n return (\n <div>\n <div className=\"row\">\n <div className={`center ${containerClassName}`}>\n <div\n id=\"scan-content\"\n className=\"content\"\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n id=\"barcode-picker\"\n className=\"barcode-picker\"\n style={{\n zIndex: '10',\n width: '100%',\n height: '250px',\n boxSizing: 'border-box',\n border: '1px solid rgba(0, 0, 0, 0.26)',\n padding: '2px',\n }}\n ></div>\n <br />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default BarcodeScanner;\n","import React from 'react';\n\nconst Camera = ({ color = '#000000', ...props }) => (\n <svg\n viewBox=\"0 0 16 15\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"M0.585786 3.08579C0.960859 2.71071 1.46957 2.5 2 2.5H3.586C3.85119 2.49994 4.10551 2.39455 4.293 2.207L5.414 1.086C5.78899 0.710901 6.29761 0.500113 6.828 0.5H9.172C9.70239 0.500113 10.211 0.710901 10.586 1.086L11.707 2.207C11.8945 2.39455 12.1488 2.49994 12.414 2.5H14C14.5304 2.5 15.0391 2.71071 15.4142 3.08579C15.7893 3.46086 16 3.96957 16 4.5V12.5C16 13.0304 15.7893 13.5391 15.4142 13.9142C15.0391 14.2893 14.5304 14.5 14 14.5H2C1.46957 14.5 0.960859 14.2893 0.585786 13.9142C0.210714 13.5391 0 13.0304 0 12.5V4.5C0 3.96957 0.210714 3.46086 0.585786 3.08579ZM9.14805 11.2716C8.78407 11.4224 8.39397 11.5 8 11.5C7.20435 11.5 6.44129 11.1839 5.87868 10.6213C5.31607 10.0587 5 9.29565 5 8.5C5 7.70435 5.31607 6.94129 5.87868 6.37868C6.44129 5.81607 7.20435 5.5 8 5.5C8.39397 5.5 8.78407 5.5776 9.14805 5.72836C9.51203 5.87913 9.84274 6.1001 10.1213 6.37868C10.3999 6.65726 10.6209 6.98797 10.7716 7.35195C10.9224 7.71593 11 8.10603 11 8.5C11 8.89397 10.9224 9.28407 10.7716 9.64805C10.6209 10.012 10.3999 10.3427 10.1213 10.6213C9.84274 10.8999 9.51203 11.1209 9.14805 11.2716ZM2.25 5.5C2.66421 5.5 3 5.16421 3 4.75C3 4.33579 2.66421 4 2.25 4C1.83579 4 1.5 4.33579 1.5 4.75C1.5 5.16421 1.83579 5.5 2.25 5.5Z\"\n />\n </svg>\n);\n\nexport default Camera;\n","import React from 'react';\n\nconst Digital = ({ color = '#000000', ...props }) => (\n <svg\n viewBox=\"0 0 16 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"M0 2.5C0 1.96957 0.210714 1.46086 0.585786 1.08579C0.960859 0.710714 1.46957 0.5 2 0.5H14C14.5304 0.5 15.0391 0.710714 15.4142 1.08579C15.7893 1.46086 16 1.96957 16 2.5V4.5C16 5.03043 15.7893 5.53914 15.4142 5.91421C15.0391 6.28929 14.5304 6.5 14 6.5H2C1.46957 6.5 0.960859 6.28929 0.585786 5.91421C0.210714 5.53914 0 5.03043 0 4.5V2.5ZM14 3.5C14 3.76522 13.8946 4.01957 13.7071 4.20711C13.5196 4.39464 13.2652 4.5 13 4.5C12.7348 4.5 12.4804 4.39464 12.2929 4.20711C12.1054 4.01957 12 3.76522 12 3.5C12 3.23478 12.1054 2.98043 12.2929 2.79289C12.4804 2.60536 12.7348 2.5 13 2.5C13.2652 2.5 13.5196 2.60536 13.7071 2.79289C13.8946 2.98043 14 3.23478 14 3.5ZM0 10.5C0 9.96957 0.210714 9.46086 0.585786 9.08579C0.960859 8.71071 1.46957 8.5 2 8.5H14C14.5304 8.5 15.0391 8.71071 15.4142 9.08579C15.7893 9.46086 16 9.96957 16 10.5V12.5C16 13.0304 15.7893 13.5391 15.4142 13.9142C15.0391 14.2893 14.5304 14.5 14 14.5H2C1.46957 14.5 0.960859 14.2893 0.585786 13.9142C0.210714 13.5391 0 13.0304 0 12.5V10.5ZM14 11.5C14 11.7652 13.8946 12.0196 13.7071 12.2071C13.5196 12.3946 13.2652 12.5 13 12.5C12.7348 12.5 12.4804 12.3946 12.2929 12.2071C12.1054 12.0196 12 11.7652 12 11.5C12 11.2348 12.1054 10.9804 12.2929 10.7929C12.4804 10.6054 12.7348 10.5 13 10.5C13.2652 10.5 13.5196 10.6054 13.7071 10.7929C13.8946 10.9804 14 11.2348 14 11.5Z\"\n />\n </svg>\n);\n\nexport default Digital;\n","import React from 'react';\n\nconst Manage = ({ color = '#000000', ...props }) => (\n <svg\n viewBox=\"0 0 16 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"M2.99991 1.5C2.99991 1.23478 2.89456 0.98043 2.70702 0.792893C2.51948 0.605357 2.26513 0.5 1.99991 0.5C1.7347 0.5 1.48034 0.605357 1.29281 0.792893C1.10527 0.98043 0.999912 1.23478 0.999912 1.5V8.768C0.695897 8.94354 0.443444 9.19602 0.267924 9.50004C0.0924035 9.80407 0 10.1489 0 10.5C0 10.8511 0.0924035 11.1959 0.267924 11.5C0.443444 11.804 0.695897 12.0565 0.999912 12.232V13.5C0.999912 13.7652 1.10527 14.0196 1.29281 14.2071C1.48034 14.3946 1.7347 14.5 1.99991 14.5C2.26513 14.5 2.51948 14.3946 2.70702 14.2071C2.89456 14.0196 2.99991 13.7652 2.99991 13.5V12.232C3.30393 12.0565 3.55638 11.804 3.7319 11.5C3.90742 11.1959 3.99982 10.8511 3.99982 10.5C3.99982 10.1489 3.90742 9.80407 3.7319 9.50004C3.55638 9.19602 3.30393 8.94354 2.99991 8.768V1.5ZM8.99991 1.5C8.99991 1.23478 8.89456 0.98043 8.70702 0.792893C8.51948 0.605357 8.26513 0.5 7.99991 0.5C7.7347 0.5 7.48034 0.605357 7.29281 0.792893C7.10527 0.98043 6.99991 1.23478 6.99991 1.5V2.768C6.6959 2.94354 6.44344 3.19602 6.26792 3.50004C6.0924 3.80407 6 4.14894 6 4.5C6 4.85106 6.0924 5.19593 6.26792 5.49996C6.44344 5.80398 6.6959 6.05646 6.99991 6.232V13.5C6.99991 13.7652 7.10527 14.0196 7.29281 14.2071C7.48034 14.3946 7.7347 14.5 7.99991 14.5C8.26513 14.5 8.51948 14.3946 8.70702 14.2071C8.89456 14.0196 8.99991 13.7652 8.99991 13.5V6.232C9.30393 6.05646 9.55638 5.80398 9.7319 5.49996C9.90742 5.19593 9.99982 4.85106 9.99982 4.5C9.99982 4.14894 9.90742 3.80407 9.7319 3.50004C9.55638 3.19602 9.30393 2.94354 8.99991 2.768V1.5ZM13.9999 0.5C14.2651 0.5 14.5195 0.605357 14.707 0.792893C14.8946 0.98043 14.9999 1.23478 14.9999 1.5V8.768C15.3039 8.94354 15.5564 9.19602 15.7319 9.50004C15.9074 9.80407 15.9998 10.1489 15.9998 10.5C15.9998 10.8511 15.9074 11.1959 15.7319 11.5C15.5564 11.804 15.3039 12.0565 14.9999 12.232V13.5C14.9999 13.7652 14.8946 14.0196 14.707 14.2071C14.5195 14.3946 14.2651 14.5 13.9999 14.5C13.7347 14.5 13.4803 14.3946 13.2928 14.2071C13.1053 14.0196 12.9999 13.7652 12.9999 13.5V12.232C12.6959 12.0565 12.4434 11.804 12.2679 11.5C12.0924 11.1959 12 10.8511 12 10.5C12 10.1489 12.0924 9.80407 12.2679 9.50004C12.4434 9.19602 12.6959 8.94354 12.9999 8.768V1.5C12.9999 1.23478 13.1053 0.98043 13.2928 0.792893C13.4803 0.605357 13.7347 0.5 13.9999 0.5Z\"\n />\n </svg>\n);\n\nexport default Manage;\n","import React from 'react';\n\nconst Shield = ({ color = '#000000', ...props }) => (\n <svg\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"M0.166 3.48522C3.06114 3.45004 5.84481 2.3893 8 0.5C10.155 2.38965 12.9387 3.45075 15.834 3.4862C15.944 4.12135 16 4.77605 16 5.44149C16 10.5471 12.66 14.8906 8 16.5C3.34 14.8896 0 10.5462 0 5.44052C0 4.77409 0.0569999 4.12135 0.166 3.48522Z\"\n />\n </svg>\n);\n\nexport default Shield;\n","import React from 'react';\n\nconst TrashCan = ({ color = '#000000', ...props }) => (\n <svg \n fill=\"none\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n width=\"12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g fill=\"#2862fa\">\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"m4.83317 5.83325c.32217 0 .58333.26117.58333.58334v3.5c0 .32221-.26116.58331-.58333.58331s-.58333-.2611-.58333-.58331v-3.5c0-.32217.26116-.58334.58333-.58334z\"\n />\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"m7.74984 9.91659v-3.5c0-.32217-.26117-.58334-.58334-.58334-.32216 0-.58333.26117-.58333.58334v3.5c0 .32221.26117.58331.58333.58331.32217 0 .58334-.2611.58334-.58331z\"\n />\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"m3.08317 2.91659v-.58334c0-.46413.18438-.90925.51256-1.23743.32819-.328194.77331-.512568 1.23744-.512568h2.33333c.46413 0 .90925.184374 1.23744.512568.32819.32818.51256.7733.51256 1.23743v.58334h2.3333c.3222 0 .5834.26116.5834.58333 0 .32216-.2612.58333-.5834.58333h-.5833v7.58335c0 .4641-.1844.9092-.5126 1.2374-.32815.3282-.77327.5126-1.2374.5126h-5.83333c-.46413 0-.90925-.1844-1.23744-.5126s-.51256-.7733-.51256-1.2374v-7.58335h-.583333c-.322166 0-.583333-.26117-.583333-.58333 0-.32217.261167-.58333.583333-.58333zm1.33752-.99582c.1094-.10939.25777-.17085.41248-.17085h2.33333c.15471 0 .30309.06146.41248.17085.1094.1094.17086.25777.17086.41248v.58334h-3.5v-.58334c0-.15471.06146-.30308.17085-.41248zm-1.92085 2.16248v7.58335c0 .1547.06146.3031.17085.4125.1094.1094.25777.1708.41248.1708h5.83333c.15471 0 .30309-.0614.41248-.1708.1094-.1094.17086-.2578.17086-.4125v-7.58335z\"\n />\n </g>\n </svg>\n);\n\nexport default TrashCan;\n","import React from 'react';\n\nconst Upload = ({ color = '#000000', ...props }) => (\n <svg\n viewBox=\"0 0 14 17\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }}\n d=\"M0 15.4999C0 15.2347 0.105357 14.9803 0.292893 14.7928C0.48043 14.6053 0.734784 14.4999 1 14.4999H13C13.2652 14.4999 13.5196 14.6053 13.7071 14.7928C13.8946 14.9803 14 15.2347 14 15.4999C14 15.7651 13.8946 16.0195 13.7071 16.207C13.5196 16.3946 13.2652 16.4999 13 16.4999H1C0.734784 16.4999 0.48043 16.3946 0.292893 16.207C0.105357 16.0195 0 15.7651 0 15.4999ZM3.293 5.20691C3.10553 5.01938 3.00021 4.76507 3.00021 4.49991C3.00021 4.23474 3.10553 3.98044 3.293 3.79291L6.293 0.792908C6.48053 0.605437 6.73484 0.500122 7 0.500122C7.26516 0.500122 7.51947 0.605437 7.707 0.792908L10.707 3.79291C10.8892 3.98151 10.99 4.23411 10.9877 4.49631C10.9854 4.75851 10.8802 5.00932 10.6948 5.19473C10.5094 5.38014 10.2586 5.4853 9.9964 5.48758C9.7342 5.48986 9.4816 5.38907 9.293 5.20691L8 3.91391V11.4999C8 11.7651 7.89464 12.0195 7.70711 12.207C7.51957 12.3946 7.26522 12.4999 7 12.4999C6.73478 12.4999 6.48043 12.3946 6.29289 12.207C6.10536 12.0195 6 11.7651 6 11.4999V3.91391L4.707 5.20691C4.51947 5.39438 4.26516 5.49969 4 5.49969C3.73484 5.49969 3.48053 5.39438 3.293 5.20691Z\"\n />\n </svg>\n);\n\nexport default Upload;\n","import React from 'react';\n\nexport const Truck = ({ color = '#2862FA', ...props }) => (\n <svg\n width=\"24\"\n height=\"20\"\n viewBox=\"0 0 24 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M1 0C0.447715 0 0 0.447715 0 1V14C0 14.5523 0.447715 15 1 15H2.33682C2.12085 15.4546 2 15.9632 2 16.5C2 18.433 3.567 20 5.5 20C7.433 20 9 18.433 9 16.5C9 15.9632 8.87915 15.4546 8.66318 15H15.3368C15.1208 15.4546 15 15.9632 15 16.5C15 18.433 16.567 20 18.5 20C20.433 20 22 18.433 22 16.5C22 15.9632 21.8792 15.4546 21.6632 15H23C23.5523 15 24 14.5523 24 14V9C24 8.73478 23.8946 8.48043 23.7071 8.29289L20.7071 5.29289C20.5196 5.10536 20.2652 5 20 5H17V1C17 0.447715 16.5523 0 16 0H1ZM22 13V9.41421L19.5858 7H17V13H22ZM18.5 15C17.6716 15 17 15.6716 17 16.5C17 17.3284 17.6716 18 18.5 18C19.3284 18 20 17.3284 20 16.5C20 15.6716 19.3284 15 18.5 15ZM4 16.5C4 15.6716 4.67157 15 5.5 15C6.32843 15 7 15.6716 7 16.5C7 17.3284 6.32843 18 5.5 18C4.67157 18 4 17.3284 4 16.5ZM15 13H2V2H15V13Z\"\n style={{\n fill: color,\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n stroke: 'none',\n }}\n />\n </svg>\n);\n\nexport default Truck;\n","import React from 'react';\n\nexport const OpenCircleCheck = ({ color = '#2E948E', ...props }) => (\n <svg\n width=\"40\"\n height=\"38\"\n viewBox=\"0 0 40 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M18.0166 9.21542C19.9096 8.78771 21.8902 8.9834 23.663 9.77329C24.1675 9.99807 24.7587 9.77134 24.9834 9.26687C25.2082 8.76239 24.9815 8.17122 24.477 7.94644C22.3103 6.98101 19.8896 6.74184 17.5758 7.2646C15.2621 7.78736 13.1793 9.04404 11.6381 10.8472C10.0969 12.6504 9.17992 14.9035 9.02384 17.2704C8.86777 19.6373 9.48099 21.9913 10.7721 23.9812C12.0631 25.9711 13.9628 27.4904 16.1879 28.3125C18.413 29.1345 20.8442 29.2153 23.1189 28.5427C25.3936 27.8702 27.39 26.4803 28.8103 24.5804C30.2306 22.6806 30.9986 20.3725 31 18.0004V17.0799C31 16.5276 30.5523 16.0799 30 16.0799C29.4477 16.0799 29 16.5276 29 17.0799V17.9993C28.9989 19.9401 28.3705 21.8285 27.2084 23.3829C26.0464 24.9374 24.413 26.0745 22.5518 26.6248C20.6907 27.1751 18.7015 27.109 16.881 26.4364C15.0605 25.7638 13.5062 24.5208 12.4499 22.8927C11.3935 21.2645 10.8918 19.3386 11.0195 17.402C11.1472 15.4654 11.8975 13.622 13.1585 12.1467C14.4194 10.6713 16.1235 9.64314 18.0166 9.21542Z\"\n fill={color}\n />\n <path\n d=\"M30.7075 10.7066C31.0978 10.3159 31.0975 9.68275 30.7068 9.29242C30.316 8.90209 29.6829 8.90241 29.2925 9.29313L19.9996 18.5953L17.7071 16.3028C17.3166 15.9122 16.6834 15.9122 16.2929 16.3028C15.9024 16.6933 15.9024 17.3265 16.2929 17.717L19.2929 20.717C19.4805 20.9046 19.7349 21.0099 20.0003 21.0099C20.2656 21.0098 20.52 20.9043 20.7075 20.7166L30.7075 10.7066Z\"\n fill={color}\n />\n </svg>\n);\n\nexport default OpenCircleCheck;\n","import React, { useState } from 'react';\nimport { Button, Card } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Webcam from './Webcam';\nimport PhotoBypassFields, { PhotoBypassButtons } from '../../shared_labs/components/PhotoBypassFields';\n\nconst UploadImage = ({ setImageData }) => {\n const [fileName, setFileName] = useState('');\n\n const updateTestImageData = (file) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => setImageData(reader.result);\n };\n\n return (\n <div className=\"my-3 d-flex flex-column align-items-center\">\n <span>OR</span>\n <div className=\"rounded bg-light my-2\">\n <label htmlFor=\"consentFile\" className=\"btn btn-outline-primary m-0\">\n Upload\n </label>\n </div>\n {fileName && (\n <span\n className=\"text-muted ms-2 w-100\"\n style={{\n textOverflow: 'ellipsis',\n overflowX: 'hidden',\n whiteSpace: 'nowrap',\n }}\n >\n {fileName}\n </span>\n )}\n <input\n id=\"consentFile\"\n className=\"d-none\"\n type=\"file\"\n accept=\"image/*;capture=camera\"\n onChange={(e) => {\n setFileName(e.target.files[0].name);\n updateTestImageData(e.target.files[0]);\n }}\n />\n </div>\n );\n};\n\nconst TestImageCapture = ({\n allowPictureUpload = false,\n edit,\n locked,\n setTestImageData,\n test,\n ...props\n}) => {\n const testImageData = test.test_image_base64;\n const [capture, setCapture] = useState(false);\n const displayBypassPhotoFields = test?.test_configuration?.require_lab_photo && !!test?.administration;\n\n return (\n <React.Fragment>\n {displayBypassPhotoFields ? (\n <PhotoBypassFields\n locked={locked}\n test={test}\n {...props}\n />\n ) : (\n <>\n <Card\n className=\"overflow-hidden justify-content-center\"\n style={{\n minHeight: 160,\n backgroundColor: !edit ? '#F5F5F5' : '#FFF',\n ...(capture || testImageData || test.test_image?.url\n ? { height: 'unset' }\n : { maxHeight: 200 }),\n }}\n >\n {capture ? (\n <Webcam\n setImageData={setTestImageData}\n setShow={setCapture}\n style={{ width: '100%', height: 'auto' }}\n />\n ) : testImageData || test.test_image?.url ? (\n <div>\n <img\n src={testImageData || test.test_image.url}\n className=\"shared-labs-webcam-image\"\n style={edit ? {} : { opacity: 0.5 }}\n />\n {edit && (\n <div className=\"my-1 p-2 d-flex justify-content-around\">\n <Button\n variant=\"outline-primary\"\n onClick={() => setCapture(true)}\n >\n Retake\n </Button>\n </div>\n )}\n </div>\n ) : edit ? (\n <React.Fragment>\n <div\n className=\"d-flex flex-column align-items-center justify-content-center h-100 click-to-take-photo\"\n style={{ border: 'none', maxWidth: 'unset' }}\n onClick={() => setCapture(true)}\n >\n <FontAwesomeIcon icon={'camera'} style={{ fontSize: '3em' }} />\n <span>Take a photo</span>\n </div>\n </React.Fragment>\n ) : (\n <div\n className=\"d-flex flex-column align-items-center justify-content-center h-100\"\n style={{ color: '#C4C4C4' }}\n >\n <FontAwesomeIcon icon={'camera'} style={{ fontSize: '3em' }} />\n <span>No photo uploaded</span>\n </div>\n )}\n </Card>\n {!capture && edit && allowPictureUpload && (\n <UploadImage setImageData={setTestImageData} />\n )}\n </>\n )}\n <PhotoBypassButtons\n displayBypassPhotoFields={displayBypassPhotoFields}\n locked={locked}\n test={test}\n {...props}\n />\n </React.Fragment>\n );\n};\n\nexport default TestImageCapture;\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport Button from 'react-bootstrap/Button';\nimport Webcam from 'react-webcam';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCamera } from '@fortawesome/pro-regular-svg-icons';\nimport { faCircleXmark, faRotate, faRightLeft } from '@fortawesome/pro-solid-svg-icons';\n\nexport default ({ setImageData, setShow, guideImage, style={} }) => {\n const webcamRef = useRef(null);\n const [showFrontCamera, setCameraView] = useState(false);\n const [deviceIndex, setDeviceIndex] = useState(0);\n const [deviceId, setDeviceId] = useState(null);\n const [devices, setDevices] = useState([]);\n const capture = useCallback(\n () => {\n const imageData = webcamRef.current.getScreenshot();\n setImageData(imageData);\n setShow(false);\n },\n [webcamRef]\n );\n\n const handleDevices = useCallback((mediaDevices) => {\n setDevices(mediaDevices.filter(({ kind }) => kind === \"videoinput\"));\n }, [setDevices]);\n\n useEffect(() => {\n navigator.mediaDevices.enumerateDevices().then(handleDevices);\n }, [handleDevices]);\n\n return (\n <div>\n <div style={{margin: \"0 auto\", maxWidth: 500, position: 'relative'}}>\n <FontAwesomeIcon\n className=\"pointer text-white\"\n icon={faCircleXmark}\n onClick={() => setShow(false)}\n style={{\n position: 'absolute',\n right: '10px',\n transform: 'translateY(10px)',\n zIndex: 999,\n }}\n />\n <div className=\"camera-wrapper\">\n {guideImage && (\n <div className=\"camera-image-overlay\">\n <img src={guideImage} />\n </div>\n )}\n <Webcam\n audio={false}\n ref={webcamRef}\n screenshotFormat=\"image/jpeg\"\n style={style}\n videoConstraints={{\n width: 500,\n height: 500,\n deviceId: devices[deviceIndex % devices.length],\n facingMode: showFrontCamera ? \"user\" : \"environment\"\n }}\n />\n <div className=\"clearfix\"></div>\n </div>\n </div>\n <div className=\"my-1 p-2 d-flex justify-content-around\" style={{ gap: 12 }}>\n <Button\n className=\"flex-grow-1\"\n style={{ minWidth: 120 }}\n onClick={capture}\n >\n <FontAwesomeIcon icon={faCamera} />\n </Button>\n <Button\n className=\"flex-grow-1\"\n variant=\"outline-primary\"\n style={{ minWidth: 120 }}\n onClick={() => setCameraView(!showFrontCamera)}\n >\n <FontAwesomeIcon icon={faRotate} />\n </Button>\n {\n devices.length > 1 && \n <Button\n className=\"flex-grow-1\"\n variant=\"outline-primary\"\n style={{ minWidth: 120 }}\n onClick={() => setDeviceIndex(deviceIndex + 1)}\n >\n <FontAwesomeIcon icon={faRightLeft} />\n </Button>\n }\n </div>\n </div>\n );\n};\n\n","import React from 'react';\nimport { Button } from 'react-bootstrap'\nimport FloatingLabelInput from '../../common/components/FloatingLabelInput';\nimport FloatingLabelSelect from '../../common/components/FloatingLabelSelect';\n\nexport const PhotoBypassButtons = ({\n displayBypassPhotoFields,\n locked,\n requireLabPhoto,\n setTest,\n test,\n}) => {\n if (!requireLabPhoto || locked) return <span></span>;\n return (\n <>\n {displayBypassPhotoFields ? (\n <Button\n className=\"my-2\"\n onClick={() => {\n const clonedTest = { ...test, dirty: true, };\n delete clonedTest[\"administration\"];\n setTest(clonedTest);\n }}\n size=\"sm\"\n variant=\"outline-secondary\"\n >\n Take a photo instead\n </Button>\n ) : (\n <Button\n className=\"my-2\"\n onClick={() => {\n setTest({\n ...test,\n dirty: true,\n administration: {}\n })\n }}\n size=\"sm\"\n variant=\"outline-secondary\"\n >\n Not able to upload a photo?\n </Button>\n )}\n </>\n );\n};\n\nconst PhotoBypassFields = ({\n locked,\n photoBypassReason,\n photoBypassCustomReason,\n setTest,\n test,\n}) => {\n\n const photoBypassReasonOptions = test?.options?.photo_bypass_reason_options &&\n Object.entries(test.options.photo_bypass_reason_options).map(([k,v]) => {\n return { value: k, label: v };\n });\n\n return (\n <div className=\"notes-area my-3\">\n <label className=\"no-select form-label mx-2 my-3\">Select a reason why you can't upload a photo</label>\n <FloatingLabelSelect\n filledValue={photoBypassReason}\n isDisabled={locked}\n label=\"Reason *\"\n onChange={(e) => {\n setTest({\n ...test,\n dirty: true,\n administration: {\n photo_bypass_reason: e.value,\n }\n })\n }}\n options={photoBypassReasonOptions}\n value={photoBypassReasonOptions.filter(o => o.value === photoBypassReason)}\n />\n {photoBypassReason === \"other\" && (\n <div className=\"my-3\">\n <FloatingLabelInput\n isDisabled={locked}\n label=\"Please provide further explanation *\"\n onChange={(e) => {\n setTest({\n ...test,\n dirty: true,\n administration: {\n ...test.administration,\n photo_bypass_custom_reason: e.target.value,\n }\n })\n }}\n value={photoBypassCustomReason}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default PhotoBypassFields;\n"],"names":["_ref","onScan","_ref$containerClassNa","containerClassName","useEffect","_gon","ScanditSDK","gon","scandit_api_key","engineLocation","then","create","document","getElementById","playSoundOnScan","vibrateOnScan","videoFit","ObjectFit","COVER","picker","window","barcodePicker","applyScanSettings","enabledSymbologies","Symbology","CODE128","DATA_MATRIX","QR","UPCA","UPCE","EAN8","EAN13","PDF417","codeDuplicateFilter","on","scanResult","pauseScanning","barcode","barcodes","data","replace","destroy","console","error","React","className","concat","id","style","display","flexDirection","zIndex","width","height","boxSizing","border","padding","_ref$color","color","props","_objectWithoutProperties","_excluded","Object","assign","viewBox","xmlns","fill","fillRule","clipRule","d","UploadImage","setImageData","_useState2","_slicedToArray","useState","fileName","setFileName","htmlFor","textOverflow","overflowX","whiteSpace","type","accept","onChange","e","file","reader","target","files","name","FileReader","readAsDataURL","onload","result","_ref2","_test$test_configurat","_test$test_image","_test$test_image2","_ref2$allowPictureUpl","allowPictureUpload","edit","locked","setTestImageData","test","testImageData","test_image_base64","_useState4","capture","setCapture","displayBypassPhotoFields","test_configuration","require_lab_photo","administration","PhotoBypassFields","Card","_objectSpread","minHeight","backgroundColor","test_image","url","maxHeight","Webcam","setShow","src","opacity","Button","variant","onClick","maxWidth","FontAwesomeIcon","icon","fontSize","PhotoBypassButtons","guideImage","_ref$style","webcamRef","useRef","showFrontCamera","setCameraView","deviceIndex","setDeviceIndex","_useState6","_useState8","devices","setDevices","useCallback","imageData","current","getScreenshot","handleDevices","mediaDevices","filter","kind","navigator","enumerateDevices","margin","position","faCircleXmark","right","transform","audio","ref","screenshotFormat","videoConstraints","deviceId","length","facingMode","gap","minWidth","faCamera","faRotate","faRightLeft","requireLabPhoto","setTest","clonedTest","dirty","size","_test$options","photoBypassReason","photoBypassCustomReason","photoBypassReasonOptions","options","photo_bypass_reason_options","entries","map","_ref3","_ref4","value","label","FloatingLabelSelect","filledValue","isDisabled","photo_bypass_reason","o","FloatingLabelInput","photo_bypass_custom_reason"],"sourceRoot":""}