{"version":3,"file":"js/3298-7f4b5573b553958633b4.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/ir.module.scss?8924","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/ir.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/lib/oex-template.js","webpack://AYTM/./app/_stock/webpack/lib/common/google-cloud-url.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"emptyDiv\":\"ir-module__emptyDiv___HHLLT swidget-global-span\",\"pictureTakerCapture\":\"ir-module__pictureTakerCapture___2g-Pu swidget-global-span\",\"instruction\":\"ir-module__instruction___2__D- swidget-global-span\",\"component\":\"ir-module__component___1n1zw swidget-question-ir\",\"video\":\"ir-module__video___2rg6W\",\"desktop\":\"ir-module__desktop___1drK5\",\"pictureTaker\":\"ir-module__pictureTaker___1vzUa\",\"input\":\"ir-module__input___2GuFf\",\"upload\":\"ir-module__upload___20Pnc\",\"browse\":\"ir-module__browse___3q3JU\",\"submit\":\"ir-module__submit___5EC31\",\"allDone\":\"ir-module__allDone___5t6hD\",\"newShot\":\"ir-module__newShot___EwpS2\",\"container\":\"ir-module__container___9k3I2\",\"imageContainer\":\"ir-module__imageContainer___26ij7 swidget-question-ir-image\",\"image\":\"ir-module__image___1gqmM\",\"imageSmall\":\"ir-module__imageSmall___1nBps\",\"error\":\"ir-module__error___3qU9L\",\"mobile\":\"ir-module__mobile___2uA9G\",\"fields\":\"ir-module__fields___3haZL\",\"light\":\"ir-module__light___3MOwC\",\"hasImage\":\"ir-module__hasImage___tl-qh\",\"capture\":\"ir-module__capture___2ZyVl\",\"loader\":\"ir-module__loader___2jhUl\",\"smallInstruction\":\"ir-module__smallInstruction___NQ6Bh\",\"qrTaker\":\"ir-module__qrTaker___2MXp5\",\"dataDiv\":\"ir-module__dataDiv___3rOmS\",\"data\":\"ir-module__data___2I66p\",\"errorText\":\"ir-module__errorText___3EDK1\",\"inputDiv\":\"ir-module__inputDiv___1mWWe\",\"clearFix\":\"ir-module__clearFix___1izaD\"};","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, List } from 'immutable'\nimport autobind from 'autobind-decorator'\n\nimport Question from './_base'\nimport Select from '@aytm/lib/rfd-ui/components/basic/select'\nimport Label from '@aytm/lib/rfd-ui/components/basic/label'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\nimport Webcam from '@aytm/lib/rfd-ui/components/basic/webcam'\nimport QrReader from 'react-qr-reader'\nimport getCSRFToken from '@aytm/lib/csrf-token'\nimport OEX_TEMPLATE from '@aytm/app/swidget/questions/lib/oex-template'\n\nimport QrCodeImage from '@aytm/app/swidget/questions/images/qrcode.png'\n\nimport locale from '@aytm/app/swidget/questions/locale'\nimport exceptionReporter from '@aytm/lib/common/exception-reporter'\n\nimport style from '@aytm/app/swidget/questions/styles/ir.module.scss'\nimport railsPostFetch from '@aytm/lib/common/rails-post-fetch'\nimport fetch from 'isomorphic-fetch'\nimport FormattedInput from '@aytm/lib/rfd-ui/components/basic/formatted-input'\nimport { createFormatter } from '@aytm/lib/rfd-ui/lib/masked-input'\nimport { unescapeHTML } from '@aytm/lib/common/func'\nimport { headersFromGoogleUploadUrl } from '@aytm/lib/common/google-cloud-url'\n\nexport class IRTheme extends Component {\n static propTypes = {\n accentColorRGB: PropTypes.object,\n accentColor: PropTypes.string,\n columns: PropTypes.number\n }\n\n shouldComponentUpdate(nextProps, _nextState) {\n return nextProps.accentColor !== this.currentAccentColor || nextProps.columns !== this.columns\n }\n\n render() {\n const accentColor = this.props.accentColor\n\n this.currentAccentColor = accentColor\n\n return (\n \n )\n }\n}\n\nexport default class ir extends Question {\n static propTypes = Object.assign(Question.propTypes, {\n uploadUrl: PropTypes.string\n })\n\n constructor(props) {\n super(props)\n this.asset_token = null\n this.webcam = null\n this.qrScanner = null\n this.locale = locale(props.locale).getIn(['questions', 'ir'])\n this.state = {\n ...this.state,\n mode: 'cam',\n legacyMode: false,\n qrValue: null,\n loading: false,\n analyzing: false,\n error: false,\n hasPicture: false,\n hasCaptured: false,\n countDown: 0,\n devices: List([]),\n qrMode: 'environment',\n eg: '',\n answer: Map({ uid: null, c: '' })\n }\n this.updateAnswer(this.state.answer)\n this.input = null\n }\n\n @autobind\n addGlobalEvents() {\n // if (\"function\" == typeof this.removeGlobalEvents) this.removeGlobalEvents();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n super.UNSAFE_componentWillReceiveProps(nextProps)\n }\n\n componentDidMount() {\n super.componentDidMount()\n\n const { theme } = this.props\n 'mobile' === theme && this.addGlobalEvents()\n\n if (window.flutter_webview) window.flutter_webview.postMessage(JSON.stringify({ name: 'requestPhotoPermission' }))\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n\n // const {theme} = this.props;\n // (theme == 'mobile') && this.removeGlobalEvents();\n }\n\n @autobind\n getFormatter() {\n return this.formatter\n ? this.formatter\n : (() => {\n const answerMask =\n '' === this.props.questionSchema.get('mask') || !this.props.questionSchema.get('mask')\n ? '_[1+]'\n : this.props.questionSchema.get('mask')\n this.formatter = createFormatter(unescapeHTML(answerMask))\n return this.formatter\n })()\n }\n\n @autobind\n handleScannerError() {\n this.updateAnswer(this.state.answer.set('c', ''))\n this.setState({ qrValue: '' })\n }\n\n @autobind\n handleScan(data) {\n if (data) {\n this.updateAnswer(this.state.answer.set('c', data))\n this.setState({\n mode: 'pic',\n imageSrc: this.qrScanner.els.canvas.toDataURL(),\n hasPicture: true,\n qrValue: data,\n hasCaptured: true\n })\n } else {\n // this.answer = this.answer.set('c', '')\n if (this.state.mode != 'pic') this.setState({ qrValue: '' })\n }\n }\n\n @autobind\n getError() {\n return this.oexError ? this.oexError : (() => this.formatter.validInputExample())()\n }\n\n @autobind\n changeText(text, valid) {\n const { answer, qrValue, mode } = this.state\n const { questionSchema } = this.props\n const manualEntry = questionSchema.get('allow_manual_entry')\n if (!manualEntry) return\n const customHint = OEX_TEMPLATE.find(\n rule => rule.mask == questionSchema.get('mask') && rule.text == questionSchema.get('text')\n )\n this.updateAnswer(\n answer\n .set('c', valid.empty ? '' : qrValue ? qrValue : text)\n .set('mode', mode)\n .set('valid', valid.valid)\n )\n this.setState({ eg: valid.valid ? '' : customHint ? customHint.hint : this.getError(), qrValue: text })\n }\n\n @autobind\n enableWebcam() {\n this.setState({ hasCamera: this.webcam && this.webcam.state.hasUserMedia && this.webcam.stream.active })\n }\n\n @autobind\n setRef(webcam) {\n if (webcam) this.webcam = webcam\n }\n\n @autobind\n setQRRef(qr) {\n if (qr) this.qrScanner = qr\n }\n\n @autobind\n getAShot() {\n const screenShot = this.webcam.getScreenshot()\n if (screenShot.length < 10) return\n this.setState(\n { mode: 'pic', imageSrc: screenShot, hasCaptured: true, analyzing: false, cantAnalyze: false },\n () => {\n this.updateAnswer(this.state.answer.set('mode', 'pic'))\n }\n )\n }\n\n @autobind\n showCamera() {\n this.setState(\n {\n mode: 'cam',\n legacyMode: false,\n qrValue: null,\n error: false,\n errorMessage: '',\n hasPicture: false,\n hasCaptured: false,\n wrongFormat: false,\n cantAnalyze: false,\n fileSrc: null\n },\n () => {\n this.updateAnswer(Map({ uid: null, c: '' }))\n }\n )\n }\n\n // response: [{id: 'q1a1', c: 'hello world'}]\n backendResponse(answerModel) {\n if (!answerModel) return []\n\n const uid = answerModel.get('uid')\n const comment = answerModel.get('c')\n\n const response = { id: this.props.questionSchema.get('id') }\n if (uid) response.uid = uid\n if ('' !== comment) response.c = comment\n return [response]\n }\n\n @autobind\n chooseFile() {\n const { questionSchema } = this.props\n this.updateAnswer(Map({ uid: null, c: '', mode: 'cam' }))\n questionSchema.get('qr_code') && !questionSchema.get('any_file')\n ? this.setState({ legacyMode: true }, () => {\n this.qrScanner.openImageDialog()\n })\n : (() => {\n if (this.input) {\n this.input.value = null\n this.input.click()\n }\n })()\n }\n\n @autobind\n clearFile() {\n this.setState(\n {\n mode: 'cam',\n legacyMode: true,\n qrValue: null,\n error: false,\n errorMessage: '',\n hasPicture: false,\n hasCaptured: false,\n fileSrc: null,\n imageSrc: null\n },\n () => {\n this.updateAnswer(Map({ uid: null, c: '', mode: 'cam' }))\n }\n )\n }\n\n @autobind\n getOrientation(file, callback) {\n const reader = new FileReader()\n reader.onload = event => {\n const view = new DataView(event.target.result)\n if (view.getUint16(0, false) != 0xffd8) {\n return callback(-2)\n }\n const length = view.byteLength\n let offset = 2\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8) return callback(-1)\n const marker = view.getUint16(offset, false)\n offset += 2\n if (0xffe1 == marker) {\n if (view.getUint32((offset += 2), false) != 0x45786966) {\n return callback(-1)\n }\n\n const little = 0x4949 == view.getUint16((offset += 6), false)\n offset += view.getUint32(offset + 4, little)\n const tags = view.getUint16(offset, little)\n offset += 2\n for (let i = 0; i < tags; i++) {\n if (0x0112 == view.getUint16(offset + i * 12, little)) {\n return callback(view.getUint16(offset + i * 12 + 8, little))\n }\n }\n } else if ((marker & 0xff00) != 0xff00) {\n break\n } else {\n offset += view.getUint16(offset, false)\n }\n }\n return callback(-1)\n }\n reader.readAsArrayBuffer(file)\n }\n\n validate(answer) {\n const { questionSchema } = this.props\n const { mode } = this.state\n let valid = false\n\n if (questionSchema.get('optional') && mode != 'pic') return Map({ valid: true })\n if ('pic' == mode && answer.get('uid')) {\n if (questionSchema.get('qr_code') && !questionSchema.get('any_file') && answer.get('uid')) {\n if (questionSchema.get('allow_manual_entry')) {\n if (answer.get('c')) valid = answer.get('valid')\n } else {\n valid = true\n }\n } else {\n valid = true\n }\n }\n return Map({ valid: valid })\n }\n\n @autobind\n resetOrientation(srcBase64, srcOrientation, callback) {\n const img = new Image()\n\n img.onload = () => {\n const width = img.width\n const height = img.height\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n // set proper canvas dimensions before transform & export\n if (4 < srcOrientation && srcOrientation < 9) {\n canvas.width = height\n canvas.height = width\n } else {\n canvas.width = width\n canvas.height = height\n }\n\n // transform context before drawing image\n switch (srcOrientation) {\n case 2:\n ctx.transform(-1, 0, 0, 1, width, 0)\n break\n case 3:\n ctx.transform(-1, 0, 0, -1, width, height)\n break\n case 4:\n ctx.transform(1, 0, 0, -1, 0, height)\n break\n case 5:\n ctx.transform(0, 1, 1, 0, 0, 0)\n break\n case 6:\n ctx.transform(0, 1, -1, 0, height, 0)\n break\n case 7:\n ctx.transform(0, -1, -1, 0, height, width)\n break\n case 8:\n ctx.transform(0, -1, 1, 0, 0, width)\n break\n default:\n break\n }\n\n // draw image\n ctx.drawImage(img, 0, 0)\n\n // export base64\n callback(canvas.toDataURL())\n }\n\n img.src = srcBase64\n }\n\n @autobind\n getFile() {\n const { questionSchema, actionResize } = this.props\n const anyFile = questionSchema.get('any_file')\n const file = this.input.files[0]\n if (!file) return\n this.setState({ wrongFormat: false, cantAnalyze: false, eg: '' })\n if (\n !anyFile &&\n !['jpg', 'jpeg', 'png', 'tif', 'tiff', 'heif', 'gif', 'bmp', 'pdf', 'svg', 'webp'].reduce(\n (prev, next) => prev || file.type.includes(next),\n false\n )\n ) {\n this.setState({ wrongFormat: true })\n exceptionReporter('Image uploading: unknown format', 'swidget')\n return\n }\n if (!anyFile && (!file || (!file.type.includes('image') && !file.type.includes('pdf')))) return\n if (questionSchema.get('qr_code') && !questionSchema.get('any_file'))\n this.setState({ legacyMode: true }, () => {\n this.qrScanner.openImageDialog()\n })\n else {\n const reader = new FileReader()\n reader.onload = event => {\n if (['tif', 'tiff', 'heif', 'pdf'].reduce((prev, next) => prev || file.type.includes(next), false)) {\n this.setState({\n mode: 'pic',\n imageSrc: event.target.result,\n analyzing: false,\n cantAnalyze: !anyFile,\n fileName: file.name\n })\n } else {\n if (anyFile) {\n this.setState({\n mode: 'pic',\n imageSrc: event.target.result,\n analyzing: false,\n cantAnalyze: false,\n fileName: file.name\n })\n } else {\n this.setState({ analyzing: true, error: false, errorMessage: '', fileSrc: event.target.result })\n this.getOrientation(file, orientation => {\n this.resetOrientation(event.target.result, orientation, _file => {\n if (this.state.analyzing)\n this.setState({ mode: 'pic', imageSrc: _file, analyzing: false, cantAnalyze: false })\n setTimeout(() => {\n if ('function' === typeof actionResize) this.props.actionResize()\n setTimeout(() => {\n if ('function' === typeof actionResize) this.props.actionResize()\n }, 1000)\n }, 300)\n })\n })\n }\n }\n }\n reader.readAsDataURL(file)\n }\n this.updateAnswer(Map({ uid: null, c: '', mode: 'pic' }))\n }\n\n @autobind\n getQRShot(/*e, f*/) {\n // this.upload()\n this.updateAnswer(this.state.answer.set('mode', 'pic'))\n this.setState({ imageSrc: true, eg: '' })\n setTimeout(() => {\n this.setState({ mode: 'pic' })\n }, 200)\n }\n\n dataURLtoFile(dataURL, filename) {\n const arr = dataURL.split(',')\n const mime = arr[0].match(/:(.*?);/)[1]\n const bstr = atob(arr[1])\n let n = bstr.length\n const u8arr = new Uint8Array(n)\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n)\n }\n try {\n return new File([u8arr], filename, { type: mime })\n } catch (error) {\n // Workaround for IE 11\n // eslint-disable-next-line no-console\n window.console && console.error && console.error(error)\n const file = new Blob([u8arr], { type: mime })\n file.name = filename\n return file\n }\n }\n\n @autobind\n upload() {\n //TODO: move asset uploader to lib function\n\n const { questionSchema, preview, data, theme, uploadUrl } = this.props\n const anyFile = questionSchema.get('any_file')\n this.setState({ loading: true, error: false, errorMessage: '' })\n this.countDown = 0\n\n if (preview) {\n this.interval = setInterval(() => {\n this.countDown += 10\n if (this.state.countDown < 100) {\n this.setState(state => {\n return { ...state, countDown: state.countDown + 10 }\n })\n } else {\n this.updateAnswer(this.state.answer.set('uid', 'src_preview').set('mode', this.state.mode))\n this.setState({ loading: false, countDown: 0 })\n clearInterval(this.interval)\n }\n }, 100)\n // this.setState({ loading: false, error: true })\n } else {\n let _data\n const dataFile =\n questionSchema.get('qr_code') &&\n !questionSchema.get('any_file') &&\n this.qrScanner.reader &&\n this.qrScanner.reader.result\n ? this.qrScanner.reader.result\n : this.state.fileSrc\n ? this.state.fileSrc\n : this.refImage\n ? this.refImage.src\n : this.state.imageSrc\n if (!dataFile) return\n const file = this.dataURLtoFile(dataFile, 'image')\n if (\n !anyFile &&\n !['jpg', 'jpeg', 'png', 'tif', 'tiff', 'heif', 'gif', 'bmp', 'pdf', 'webp'].reduce(\n (prev, next) => prev || file.type.includes(next),\n false\n )\n ) {\n this.setState({ loading: false, error: true, errorMessage: 'Unknown format' })\n exceptionReporter('Image uploading: unknown format', 'swidget')\n return\n }\n\n if ('mobile' == theme) {\n const form1El = document.querySelector('#form1')\n if (form1El) form1El.querySelector('input').name = 'file'\n const form2El = document.querySelector('#form2')\n if (form2El) form2El.querySelector('input').name = 'file'\n _data = document.forms.form1 ? new FormData(document.forms.form1) : new FormData(document.forms.form2)\n } else {\n _data = new FormData()\n }\n _data.append('filename', file.name)\n _data['filename'] = file.name\n _data.append('content_type', file.type)\n _data['content_type'] = file.type\n _data.append('filesize', file.size)\n _data['filesize'] = file.size\n\n // eslint-disable-next-line no-console\n console.log(file)\n\n for (const key in data) {\n _data[key] = JSON.stringify(data[key])\n _data.append(key, JSON.stringify(data[key]))\n }\n\n const csrfToken = getCSRFToken()\n _data[csrfToken[0]] = csrfToken[1]\n _data.append(csrfToken[0], csrfToken[1])\n const uploadURLs = {}\n const onError = error => {\n this.setState({ loading: false, error: true, errorMessage: error.message, countDown: 0 })\n exceptionReporter(error, 'swidget')\n }\n\n railsPostFetch(uploadUrl, {\n mode: 'cors',\n body: JSON.stringify(_data)\n })\n .then(response => response.json())\n .then(createAssetResponse => {\n if ('invalid' !== createAssetResponse.status) {\n Object.assign(uploadURLs, createAssetResponse.upload_urls)\n this.interval = setInterval(() => {\n this.countDown += 10\n if (this.countDown <= 100)\n this.setState(state => {\n return { ...state, countDown: state.countDown + 10 }\n })\n else {\n clearInterval(this.interval)\n }\n }, 100)\n return fetch(uploadURLs.binary_upload_url, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type,\n ...headersFromGoogleUploadUrl(uploadURLs.binary_upload_url)\n },\n body: file\n })\n } else {\n return Promise.reject(new Error(createAssetResponse.error[0]))\n }\n })\n .then(_r =>\n railsPostFetch(uploadURLs.finish_upload_url, {\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(_data)\n })\n )\n .then(finishData =>\n finishData.ok\n ? new Promise((resolve, reject) => {\n const checkStatus = () => {\n railsPostFetch(uploadURLs.status_upload_url, {\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify(_data)\n })\n .then(response => response.json())\n .then(assetStatus => {\n switch (assetStatus.status) {\n case 'source_valid': {\n resolve(assetStatus)\n break\n }\n case 'processing': {\n setTimeout(checkStatus, 1000)\n break\n }\n default: {\n reject(assetStatus)\n break\n }\n }\n })\n .catch(error => {\n console.log(error) // eslint-disable-line no-console\n setTimeout(checkStatus, 1000)\n })\n }\n checkStatus()\n })\n : Promise.reject(new Error('unable to finish upload'))\n )\n .then(assetStatus => {\n this.updateAnswer(this.state.answer.set('uid', assetStatus.image_asset_token).set('mode', this.state.mode))\n this.setState({\n loading: false,\n error: 'source_valid' !== assetStatus.status,\n countDown: 0,\n errorMessage: assetStatus.error ? assetStatus.error[0] : ''\n })\n })\n .catch(error => onError(error))\n }\n }\n\n @autobind\n uploadProgress(evt) {\n if (evt.lengthComputable) {\n const percentComplete = evt.loaded / evt.total\n this.refButton.css('border-left-width', percentComplete * (this.refButton.width() + 30) + 'px')\n }\n }\n\n shortName(str) {\n return str.replace(/\\(\\w{4}:\\w{4}\\)/g, '').replace(/\\w{4}:\\w{4}/g, '')\n }\n\n @autobind\n getVideoSources(sources) {\n if (!this.state.devices || !this.state.device) {\n const devices = sources.reduce(\n (prev, next) =>\n prev.push(\n Map({\n text: this.shortName(next.label) || this.locale.get('camera') + ' #' + (prev.size + 1),\n value: next.deviceId\n })\n ),\n List([])\n )\n this.setState({\n devices: devices,\n device: this.state.device ? this.state.device : devices.first().get('value')\n })\n }\n }\n\n @autobind\n changeVideoSource(source) {\n this.setState({ device: source.get('value') })\n }\n\n //TODO: consider breaking into subrenders\n @autobind\n renderContent() {\n const { width, questionSchema, theme } = this.props\n const anyFile = questionSchema.get('any_file')\n const isQR = questionSchema.get('qr_code') && !anyFile\n const instructionText = questionSchema.getIn(['answers', 0, 'text']) || ''\n const manualEntry = questionSchema.get('allow_manual_entry')\n const uploadOnly = questionSchema.get('upload_only') || anyFile\n const {\n mode,\n imageSrc,\n hasCamera,\n legacyMode,\n qrValue,\n loading,\n error,\n errorMessage,\n hasPicture,\n hasCaptured,\n countDown,\n devices,\n device,\n qrMode,\n analyzing,\n cantAnalyze,\n wrongFormat,\n eg,\n answer,\n fileName\n } = this.state\n const isMobile = 'mobile' == theme\n const canTakeAShot = 'cam' == mode && hasCamera && !isMobile && !uploadOnly && !anyFile\n const hideVideo = canTakeAShot && !isQR\n const isSafari = /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent) // eslint-disable-line compat/compat\n\n return (\n \n {instructionText && (\n \n )}\n {!anyFile && (\n \n {!isMobile && this.locale.get(uploadOnly ? 'uploadOnly' : 'selectWebCam')}\n \n )}\n
\n {\n this.input = el\n }}\n name=\"file\"\n className={style.input}\n onChange={this.getFile}\n data-testid=\"SW-IR-Input\"\n />\n \n {(!hasCamera || uploadOnly) &&\n (!isMobile || anyFile) &&\n (anyFile ? (\n (!isMobile || 'pic' == mode) && (\n \n )\n ) : (\n \n ))}\n {hasCamera && !uploadOnly && !isMobile && (\n \n )}\n {canTakeAShot && !isMobile && (\n \n )}\n {(mode != 'pic' || (!hasCamera && !(isQR && 'pic' == mode))) && !isMobile && (\n \n )}\n {isMobile && mode != 'pic' && (\n \n )}\n {!canTakeAShot && mode != 'pic' && !isQR && !analyzing && !isMobile && !anyFile && (\n
\n {!uploadOnly && }\n
\n
\n {!uploadOnly && this.locale.get('noWebCam')}\n
\n {this.locale.get('uploadPhoto')}{' '}\n {!uploadOnly && this.locale.get('instead') + '?'}\n
\n
\n )}\n {(('pic' == mode && hasCamera) || (isQR && !isMobile && 'pic' == mode)) && (\n \n )}\n {'pic' == mode && !isMobile && (\n
\n \n
\n )}\n\n
\n {isQR && (\n \n \n \n )}\n\n {analyzing && (\n
\n
\n
\n
\n
\n {this.locale.get('analyzing')}\n
\n )}\n {(cantAnalyze && !imageSrc) ||\n (wrongFormat && (\n
\n
\n
\n
\n
\n {this.locale.get('wrongFormat')}\n
\n ))}\n {cantAnalyze && imageSrc && (\n
\n
\n
\n
\n
\n {this.locale.get('cantAnalyze')}\n
\n )}\n {/*
*/}\n {!isMobile &&\n !uploadOnly &&\n !isSafari &&\n !(Boolean(window.MSInputMethodContext) && Boolean(document.documentMode)) && (\n \n )}\n {/*
*/}\n\n {error && !loading && !isQR && !isMobile && (\n \n {errorMessage || this.locale.get('somethingWrong')}\n \n )}\n {((isMobile && isQR && !imageSrc) || ('pic' == mode && !analyzing && (!isQR || hasPicture || hasCaptured))) &&\n !cantAnalyze &&\n !anyFile &&\n (!isQR ? (\n
\n \n
\n ) : (\n \n ))}\n\n {error && !isQR && !loading && isMobile && (\n \n {errorMessage || this.locale.get('somethingWrong')}\n \n )}\n {isQR && (\n
\n {isQR && !hasPicture && mode != 'pic' && (\n \n {'pc' == theme\n ? this.locale.get(uploadOnly ? 'uploadQR' : 'positionQR')\n : this.locale.get(uploadOnly ? 'uploadQRMobile' : 'positionQRMobile')}\n \n )}\n {isQR && !hasPicture && !error && 'pic' == mode && (\n \n {!manualEntry ? (\n
\n \n {this.locale.get('couldntRead')}\n
{this.locale.get('moveOn')}\n
\n
\n ) : (\n
\n \n {this.locale.get('couldntRead')}\n
{' '}\n {!answer.get('c') ? this.locale.get('enterManually') : answer.get('valid') ? '' : 'eg: ' + eg}\n
\n
\n )}\n
\n )}\n {error && (\n \n {this.locale.get('couldntProcess')}\n
{this.locale.get('tryAgain')}\n
\n )}\n {isQR && !error && hasPicture && 'pic' == mode && answer.get('valid') != undefined && (\n
\n \n {!answer.get('valid') ? this.locale.get('inValidCode') : this.locale.get('dataReceived')}\n \n
\n )}\n {isQR && !error && 'pic' == mode && (\n
\n \n
\n )}\n
\n )}\n
\n
\n {'pic' == mode && isMobile && (\n \n )}\n {'pic' == mode && isMobile && (\n
\n {/*{loading && (*/}\n {/*
*/}\n {/*)}*/}\n \n
\n )}\n
\n
\n
\n )\n }\n\n @autobind\n renderDesktop() {\n const { accentColor } = this.props\n return (\n <>\n \n
\n {this.renderContent()}\n
\n \n )\n }\n\n @autobind\n renderMobile() {\n return (\n
\n {this.renderContent()}\n
\n )\n }\n}\n","export default [\n {\n text: 'Email',\n mask: '{email}',\n hint: 'user@example.com'\n },\n {\n text: 'First name',\n mask: '_[1+]',\n hint: 'John'\n },\n {\n text: 'Last name',\n mask: '_[1+]',\n hint: 'Doe'\n },\n {\n text: 'Street line 1',\n mask: '_[2+]',\n hint: '123 Broadway st.'\n },\n {\n text: 'Street line 2',\n mask: '_[1+]',\n hint: 'Unit A'\n },\n {\n text: 'City',\n mask: '_[1+]',\n hint: 'San Francisco'\n },\n {\n text: 'City',\n mask: '_[1+]',\n hint: 'San Francisco'\n },\n {\n text: 'State (e.g.: CA)',\n mask: '_[1+]',\n hint: 'CA'\n },\n {\n text: 'State (e.g.: CA)',\n mask: '_{A-Z}[2]',\n hint: 'CA'\n },\n { text: 'Zip+4 code', mask: '#####-####', hint: '94120-9999' },\n { text: 'Country', mask: '_[2+]', hint: 'United States' },\n { text: 'US phone number', mask: '+1(###) ###-####', hint: '+1(555) 010-0000' },\n { text: 'US domestic phone', mask: '(###) ###-####', hint: '(555) 010-0000' },\n { text: 'US phone number flexible', mask: '+1(###) ###-####_[0+]', hint: '+1(555) 010-0000 ext. 051' },\n { text: 'Int. phone number', mask: '{int.phone}', hint: '+1 (555) 010-0000' },\n { text: 'Int. phone number flexible', mask: '+_[11+]', hint: '+1 (555) 010-0000 ext. 051' },\n { text: 'Year (e.g.: 2025)', mask: '{YYYY}', hint: '2025' },\n { text: 'US date (e.g.: 01/31/25)', mask: '{MM/DD/YY}', hint: '01/31/25' },\n { text: 'US date long (01/31/2025)', mask: '{MM/DD/YYYY}', hint: '01/31/2025' },\n { text: 'Date (31.01.25)', mask: '{DD.MM.YY}', hint: '31.01.25' },\n { text: 'Date long (31.01.2025)', mask: '{DD.MM.YYYY}', hint: '31.01.2025' },\n { text: 'Date month/year (01/2025)', mask: '{MM/YYYY}', hint: '01/2025' },\n { text: 'Date Int. (Jan. 01, 2025)', mask: '{MMM. DD, YYYY}', hint: 'Jan. 01, 2025' },\n { text: 'ID (leading zeros)', mask: '_{1-1500}[4]', hint: '0123' },\n { text: 'Percent 0-100%', mask: '_{0-100}%', hint: '57%' },\n { text: 'Number 1-10', mask: '_{1-10}', hint: '7' },\n { text: 'Number 1-100', mask: '_{1-100}', hint: '57' },\n { text: 'Single digit amount', mask: '$#.##', hint: '$1.23' },\n { text: 'Double digit amount', mask: '$##.##', hint: '$12.34' },\n { text: 'Three-digit price range', mask: '$###.##', hint: '$123.45' },\n { text: 'Price up to $999.99', mask: '$_{0-9}[1-3].##', hint: '$543.21' },\n { text: 'Price up to $9,999.99', mask: '$_{0-9}[1-4].##', hint: '$6543.21' },\n { text: 'Price up to $99,999.99', mask: '$_{0-9}[1-5].##', hint: '$76543.21' },\n { text: 'Short text (3-35 symbols)', mask: '_[3-35]', hint: '' },\n { text: 'Long text (35+ symbols)', mask: '_[35+]', hint: '' }\n]\n","const getParameterByName = (url, name) => {\n const escapedName = name.replace(/[[\\]]/g, '\\\\$&')\n const regex = new RegExp('[?&]' + escapedName + '(=([^&#]*)|&|#|$)')\n const results = regex.exec(url)\n if (!results) return null\n if (!results[2]) return ''\n return decodeURIComponent(results[2].replace(/\\+/g, ' '))\n}\n\nexport function headersFromGoogleUploadUrl(url) {\n const result = {}\n const signedHeadersStr = getParameterByName(url, 'X-Goog-SignedHeaders')\n if (signedHeadersStr) {\n const signedHeaders = signedHeadersStr.split(';')\n signedHeaders.forEach(header => {\n if ('host' != header) {\n result[header] = getParameterByName(url, header)\n }\n })\n }\n return result\n}\n"],"names":["IRTheme","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","nextProps","_nextState","accentColor","this","currentAccentColor","columns","props","React","type","dangerouslySetInnerHTML","__html","Component","ir","_ir","_Question","_this","asset_token","webcam","qrScanner","locale","getIn","state","_objectSpread","mode","legacyMode","qrValue","loading","analyzing","error","hasPicture","hasCaptured","countDown","devices","List","qrMode","eg","answer","Map","uid","c","updateAnswer","input","_get","_getPrototypeOf","prototype","call","theme","addGlobalEvents","window","flutter_webview","postMessage","JSON","stringify","name","answerMask","_this2","formatter","questionSchema","get","createFormatter","unescapeHTML","set","setState","data","imageSrc","els","canvas","toDataURL","_this3","oexError","validInputExample","text","valid","_this$state","customHint","OEX_TEMPLATE","rule","mask","empty","hint","getError","hasCamera","hasUserMedia","stream","active","qr","_this4","screenShot","getScreenshot","length","cantAnalyze","_this5","errorMessage","wrongFormat","fileSrc","answerModel","comment","response","id","_this6","openImageDialog","click","_this7","file","callback","reader","FileReader","onload","event","view","DataView","target","result","getUint16","byteLength","offset","marker","getUint32","little","tags","i","readAsArrayBuffer","srcBase64","srcOrientation","img","Image","width","height","document","createElement","ctx","getContext","transform","drawImage","src","_this8","_this$props","actionResize","anyFile","files","reduce","prev","next","includes","exceptionReporter","fileName","getOrientation","orientation","resetOrientation","_file","setTimeout","readAsDataURL","_this9","dataURL","filename","arr","split","mime","match","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","console","Blob","_this10","_this$props2","preview","uploadUrl","interval","setInterval","clearInterval","_data","dataFile","refImage","dataURLtoFile","form1El","querySelector","form2El","forms","form1","FormData","form2","append","size","log","csrfToken","getCSRFToken","uploadURLs","railsPostFetch","body","then","json","createAssetResponse","status","Object","assign","upload_urls","fetch","binary_upload_url","method","headers","headersFromGoogleUploadUrl","Promise","reject","Error","_r","finish_upload_url","finishData","ok","resolve","checkStatus","status_upload_url","assetStatus","catch","image_asset_token","message","onError","evt","lengthComputable","percentComplete","loaded","total","refButton","css","str","replace","sources","_this11","device","push","shortName","label","deviceId","first","source","_this12","_this$props3","isQR","instructionText","manualEntry","uploadOnly","_this$state2","isMobile","canTakeAShot","hideVideo","isSafari","test","navigator","userAgent","className","style","accept","ref","el","onChange","getFile","Label","placeholder","Select","options","newIcon","icon","disabled","dataTestId","onSelect","changeVideoSource","Button","onAction","getAShot","onClick","chooseFile","showCamera","background","Boolean","iconPosition","upload","display","QrReader","delay","setQRRef","undefined","safari","handleScannerError","onScan","handleScan","facingMode","onImageLoad","getQRShot","MSInputMethodContext","documentMode","Webcam","audio","videoSource","setRef","onUserMedia","enableWebcam","screenshotFormat","getVideoSources","position","top","QrCodeImage","saveRef","FormattedInput","debounce","getFormatter","changeText","readOnly","clearFile","renderContent","Question","propTypes","PropTypes","_applyDecoratedDescriptor","_class","autobind","getOwnPropertyDescriptor","getParameterByName","url","escapedName","results","RegExp","exec","decodeURIComponent","signedHeadersStr","forEach","header"],"sourceRoot":""}