{"version":3,"file":"js/vendors-25c6aac1-7100828acc14d99a4027.js","mappings":"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","sources":["webpack://matchboards/./node_modules/@uppy/webcam/lib/formatSeconds.js","webpack://matchboards/./node_modules/@uppy/webcam/lib/index.js","webpack://matchboards/./node_modules/@uppy/webcam/lib/supportsMediaRecorder.js"],"sourcesContent":["/**\n * Takes an Integer value of seconds (e.g. 83) and converts it into a human-readable formatted string (e.g. '1:23').\n *\n * @param {Integer} seconds\n * @returns {string} the formatted seconds (e.g. '1:23' for 1 minute and 23 seconds)\n *\n */\nmodule.exports = function formatSeconds(seconds) {\n return Math.floor(seconds / 60) + \":\" + String(seconds % 60).padStart(2, 0);\n};","var _class, _temp;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar _require = require('preact'),\n h = _require.h;\n\nvar _require2 = require('@uppy/core'),\n Plugin = _require2.Plugin;\n\nvar Translator = require('@uppy/utils/lib/Translator');\n\nvar getFileTypeExtension = require('@uppy/utils/lib/getFileTypeExtension');\n\nvar mimeTypes = require('@uppy/utils/lib/mimeTypes');\n\nvar canvasToBlob = require('@uppy/utils/lib/canvasToBlob');\n\nvar supportsMediaRecorder = require('./supportsMediaRecorder');\n\nvar CameraIcon = require('./CameraIcon');\n\nvar CameraScreen = require('./CameraScreen');\n\nvar PermissionsScreen = require('./PermissionsScreen');\n/**\n * Normalize a MIME type or file extension into a MIME type.\n *\n * @param {string} fileType - MIME type or a file extension prefixed with `.`.\n * @returns {string|undefined} The MIME type or `undefined` if the fileType is an extension and is not known.\n */\n\n\nfunction toMimeType(fileType) {\n if (fileType[0] === '.') {\n return mimeTypes[fileType.slice(1)];\n }\n\n return fileType;\n}\n/**\n * Is this MIME type a video?\n *\n * @param {string} mimeType - MIME type.\n * @returns {boolean}\n */\n\n\nfunction isVideoMimeType(mimeType) {\n return /^video\\/[^*]+$/.test(mimeType);\n}\n/**\n * Is this MIME type an image?\n *\n * @param {string} mimeType - MIME type.\n * @returns {boolean}\n */\n\n\nfunction isImageMimeType(mimeType) {\n return /^image\\/[^*]+$/.test(mimeType);\n}\n/**\n * Setup getUserMedia, with polyfill for older browsers\n * Adapted from: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n */\n\n\nfunction getMediaDevices() {\n // eslint-disable-next-line compat/compat\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // eslint-disable-next-line compat/compat\n return navigator.mediaDevices;\n }\n\n var _getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia;\n\n if (!_getUserMedia) {\n return null;\n }\n\n return {\n getUserMedia: function getUserMedia(opts) {\n return new Promise(function (resolve, reject) {\n _getUserMedia.call(navigator, opts, resolve, reject);\n });\n }\n };\n}\n/**\n * Webcam\n */\n\n\nmodule.exports = (_temp = _class = /*#__PURE__*/function (_Plugin) {\n _inheritsLoose(Webcam, _Plugin);\n\n // eslint-disable-next-line global-require\n function Webcam(uppy, opts) {\n var _this;\n\n _this = _Plugin.call(this, uppy, opts) || this;\n _this.mediaDevices = getMediaDevices();\n _this.supportsUserMedia = !!_this.mediaDevices; // eslint-disable-next-line no-restricted-globals\n\n _this.protocol = location.protocol.match(/https/i) ? 'https' : 'http';\n _this.id = _this.opts.id || 'Webcam';\n _this.title = _this.opts.title || 'Camera';\n _this.type = 'acquirer';\n _this.capturedMediaFile = null;\n\n _this.icon = function () {\n return h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n width: \"32\",\n height: \"32\",\n viewBox: \"0 0 32 32\"\n }, h(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, h(\"rect\", {\n className: \"uppy-ProviderIconBg\",\n fill: \"#03BFEF\",\n width: \"32\",\n height: \"32\",\n rx: \"16\"\n }), h(\"path\", {\n d: \"M22 11c1.133 0 2 .867 2 2v7.333c0 1.134-.867 2-2 2H10c-1.133 0-2-.866-2-2V13c0-1.133.867-2 2-2h2.333l1.134-1.733C13.6 9.133 13.8 9 14 9h4c.2 0 .4.133.533.267L19.667 11H22zm-6 1.533a3.764 3.764 0 0 0-3.8 3.8c0 2.129 1.672 3.801 3.8 3.801s3.8-1.672 3.8-3.8c0-2.13-1.672-3.801-3.8-3.801zm0 6.261c-1.395 0-2.46-1.066-2.46-2.46 0-1.395 1.065-2.461 2.46-2.461s2.46 1.066 2.46 2.46c0 1.395-1.065 2.461-2.46 2.461z\",\n fill: \"#FFF\",\n fillRule: \"nonzero\"\n })));\n };\n\n _this.defaultLocale = {\n strings: {\n smile: 'Smile!',\n takePicture: 'Take a picture',\n startRecording: 'Begin video recording',\n stopRecording: 'Stop video recording',\n allowAccessTitle: 'Please allow access to your camera',\n allowAccessDescription: 'In order to take pictures or record video with your camera, please allow camera access for this site.',\n noCameraTitle: 'Camera Not Available',\n noCameraDescription: 'In order to take pictures or record video, please connect a camera device',\n recordingStoppedMaxSize: 'Recording stopped because the file size is about to exceed the limit',\n recordingLength: 'Recording length %{recording_length}',\n submitRecordedFile: 'Submit recorded file',\n discardRecordedFile: 'Discard recorded file'\n }\n }; // set default options\n\n var defaultOptions = {\n onBeforeSnapshot: function onBeforeSnapshot() {\n return Promise.resolve();\n },\n countdown: false,\n modes: ['video-audio', 'video-only', 'audio-only', 'picture'],\n mirror: true,\n showVideoSourceDropdown: false,\n facingMode: 'user',\n preferredImageMimeType: null,\n preferredVideoMimeType: null,\n showRecordingLength: false\n };\n _this.opts = _extends({}, defaultOptions, opts);\n\n _this.i18nInit();\n\n _this.install = _this.install.bind(_assertThisInitialized(_this));\n _this.setPluginState = _this.setPluginState.bind(_assertThisInitialized(_this));\n _this.render = _this.render.bind(_assertThisInitialized(_this)); // Camera controls\n\n _this.start = _this.start.bind(_assertThisInitialized(_this));\n _this.stop = _this.stop.bind(_assertThisInitialized(_this));\n _this.takeSnapshot = _this.takeSnapshot.bind(_assertThisInitialized(_this));\n _this.startRecording = _this.startRecording.bind(_assertThisInitialized(_this));\n _this.stopRecording = _this.stopRecording.bind(_assertThisInitialized(_this));\n _this.discardRecordedVideo = _this.discardRecordedVideo.bind(_assertThisInitialized(_this));\n _this.submit = _this.submit.bind(_assertThisInitialized(_this));\n _this.oneTwoThreeSmile = _this.oneTwoThreeSmile.bind(_assertThisInitialized(_this));\n _this.focus = _this.focus.bind(_assertThisInitialized(_this));\n _this.changeVideoSource = _this.changeVideoSource.bind(_assertThisInitialized(_this));\n _this.webcamActive = false;\n\n if (_this.opts.countdown) {\n _this.opts.onBeforeSnapshot = _this.oneTwoThreeSmile;\n }\n\n _this.setPluginState({\n hasCamera: false,\n cameraReady: false,\n cameraError: null,\n recordingLengthSeconds: 0,\n videoSources: [],\n currentDeviceId: null\n });\n\n return _this;\n }\n\n var _proto = Webcam.prototype;\n\n _proto.setOptions = function setOptions(newOpts) {\n _Plugin.prototype.setOptions.call(this, _extends({}, newOpts, {\n videoConstraints: _extends({}, this.opts.videoConstraints, newOpts == null ? void 0 : newOpts.videoConstraints)\n }));\n\n this.i18nInit();\n };\n\n _proto.i18nInit = function i18nInit() {\n this.translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale]);\n this.i18n = this.translator.translate.bind(this.translator);\n this.i18nArray = this.translator.translateArray.bind(this.translator);\n this.setPluginState(); // so that UI re-renders and we see the updated locale\n };\n\n _proto.hasCameraCheck = function hasCameraCheck() {\n if (!this.mediaDevices) {\n return Promise.resolve(false);\n }\n\n return this.mediaDevices.enumerateDevices().then(function (devices) {\n return devices.some(function (device) {\n return device.kind === 'videoinput';\n });\n });\n };\n\n _proto.isAudioOnly = function isAudioOnly() {\n return this.opts.modes.length === 1 && this.opts.modes[0] === 'audio-only';\n };\n\n _proto.getConstraints = function getConstraints(deviceId) {\n var _this$opts$videoConst;\n\n if (deviceId === void 0) {\n deviceId = null;\n }\n\n var acceptsAudio = this.opts.modes.indexOf('video-audio') !== -1 || this.opts.modes.indexOf('audio-only') !== -1;\n var acceptsVideo = !this.isAudioOnly() && (this.opts.modes.indexOf('video-audio') !== -1 || this.opts.modes.indexOf('video-only') !== -1 || this.opts.modes.indexOf('picture') !== -1);\n\n var videoConstraints = _extends({}, (_this$opts$videoConst = this.opts.videoConstraints) != null ? _this$opts$videoConst : {\n facingMode: this.opts.facingMode\n }, deviceId ? {\n deviceId: deviceId,\n facingMode: null\n } : {});\n\n return {\n audio: acceptsAudio,\n video: acceptsVideo ? videoConstraints : false\n };\n } // eslint-disable-next-line consistent-return\n ;\n\n _proto.start = function start(options) {\n var _this2 = this;\n\n if (options === void 0) {\n options = null;\n }\n\n if (!this.supportsUserMedia) {\n return Promise.reject(new Error('Webcam access not supported'));\n }\n\n this.webcamActive = true;\n this.opts.mirror = true;\n var constraints = this.getConstraints(options && options.deviceId ? options.deviceId : null);\n this.hasCameraCheck().then(function (hasCamera) {\n _this2.setPluginState({\n hasCamera: hasCamera\n }); // ask user for access to their camera\n\n\n return _this2.mediaDevices.getUserMedia(constraints).then(function (stream) {\n _this2.stream = stream;\n var currentDeviceId = null;\n var tracks = _this2.isAudioOnly() ? stream.getAudioTracks() : stream.getVideoTracks();\n\n if (!options || !options.deviceId) {\n currentDeviceId = tracks[0].getSettings().deviceId;\n } else {\n tracks.forEach(function (track) {\n if (track.getSettings().deviceId === options.deviceId) {\n currentDeviceId = track.getSettings().deviceId;\n }\n });\n } // Update the sources now, so we can access the names.\n\n\n _this2.updateVideoSources();\n\n _this2.setPluginState({\n currentDeviceId: currentDeviceId,\n cameraReady: true\n });\n }).catch(function (err) {\n _this2.setPluginState({\n cameraReady: false,\n cameraError: err\n });\n\n _this2.uppy.info(err.message, 'error');\n });\n });\n }\n /**\n * @returns {object}\n */\n ;\n\n _proto.getMediaRecorderOptions = function getMediaRecorderOptions() {\n var options = {}; // Try to use the `opts.preferredVideoMimeType` or one of the `allowedFileTypes` for the recording.\n // If the browser doesn't support it, we'll fall back to the browser default instead.\n // Safari doesn't have the `isTypeSupported` API.\n\n if (MediaRecorder.isTypeSupported) {\n var restrictions = this.uppy.opts.restrictions;\n var preferredVideoMimeTypes = [];\n\n if (this.opts.preferredVideoMimeType) {\n preferredVideoMimeTypes = [this.opts.preferredVideoMimeType];\n } else if (restrictions.allowedFileTypes) {\n preferredVideoMimeTypes = restrictions.allowedFileTypes.map(toMimeType).filter(isVideoMimeType);\n }\n\n var filterSupportedTypes = function filterSupportedTypes(candidateType) {\n return MediaRecorder.isTypeSupported(candidateType) && getFileTypeExtension(candidateType);\n };\n\n var acceptableMimeTypes = preferredVideoMimeTypes.filter(filterSupportedTypes);\n\n if (acceptableMimeTypes.length > 0) {\n // eslint-disable-next-line prefer-destructuring\n options.mimeType = acceptableMimeTypes[0];\n }\n }\n\n return options;\n };\n\n _proto.startRecording = function startRecording() {\n var _this3 = this;\n\n // only used if supportsMediaRecorder() returned true\n // eslint-disable-next-line compat/compat\n this.recorder = new MediaRecorder(this.stream, this.getMediaRecorderOptions());\n this.recordingChunks = [];\n var stoppingBecauseOfMaxSize = false;\n this.recorder.addEventListener('dataavailable', function (event) {\n _this3.recordingChunks.push(event.data);\n\n var restrictions = _this3.uppy.opts.restrictions;\n\n if (_this3.recordingChunks.length > 1 && restrictions.maxFileSize != null && !stoppingBecauseOfMaxSize) {\n var totalSize = _this3.recordingChunks.reduce(function (acc, chunk) {\n return acc + chunk.size;\n }, 0); // Exclude the initial chunk from the average size calculation because it is likely to be a very small outlier\n\n\n var averageChunkSize = (totalSize - _this3.recordingChunks[0].size) / (_this3.recordingChunks.length - 1);\n var expectedEndChunkSize = averageChunkSize * 3;\n var maxSize = Math.max(0, restrictions.maxFileSize - expectedEndChunkSize);\n\n if (totalSize > maxSize) {\n stoppingBecauseOfMaxSize = true;\n\n _this3.uppy.info(_this3.i18n('recordingStoppedMaxSize'), 'warning', 4000);\n\n _this3.stopRecording();\n }\n }\n }); // use a \"time slice\" of 500ms: ondataavailable will be called each 500ms\n // smaller time slices mean we can more accurately check the max file size restriction\n\n this.recorder.start(500);\n\n if (this.opts.showRecordingLength) {\n // Start the recordingLengthTimer if we are showing the recording length.\n this.recordingLengthTimer = setInterval(function () {\n var currentRecordingLength = _this3.getPluginState().recordingLengthSeconds;\n\n _this3.setPluginState({\n recordingLengthSeconds: currentRecordingLength + 1\n });\n }, 1000);\n }\n\n this.setPluginState({\n isRecording: true\n });\n };\n\n _proto.stopRecording = function stopRecording() {\n var _this4 = this;\n\n var stopped = new Promise(function (resolve) {\n _this4.recorder.addEventListener('stop', function () {\n resolve();\n });\n\n _this4.recorder.stop();\n\n if (_this4.opts.showRecordingLength) {\n // Stop the recordingLengthTimer if we are showing the recording length.\n clearInterval(_this4.recordingLengthTimer);\n\n _this4.setPluginState({\n recordingLengthSeconds: 0\n });\n }\n });\n return stopped.then(function () {\n _this4.setPluginState({\n isRecording: false\n });\n\n return _this4.getVideo();\n }).then(function (file) {\n try {\n _this4.capturedMediaFile = file; // create object url for capture result preview\n\n _this4.setPluginState({\n // eslint-disable-next-line compat/compat\n recordedVideo: URL.createObjectURL(file.data)\n });\n\n _this4.opts.mirror = false;\n } catch (err) {\n // Logging the error, exept restrictions, which is handled in Core\n if (!err.isRestriction) {\n _this4.uppy.log(err);\n }\n }\n }).then(function () {\n _this4.recordingChunks = null;\n _this4.recorder = null;\n }, function (error) {\n _this4.recordingChunks = null;\n _this4.recorder = null;\n throw error;\n });\n };\n\n _proto.discardRecordedVideo = function discardRecordedVideo() {\n this.setPluginState({\n recordedVideo: null\n });\n this.opts.mirror = true;\n this.capturedMediaFile = null;\n };\n\n _proto.submit = function submit() {\n try {\n if (this.capturedMediaFile) {\n this.uppy.addFile(this.capturedMediaFile);\n }\n } catch (err) {\n // Logging the error, exept restrictions, which is handled in Core\n if (!err.isRestriction) {\n this.uppy.log(err, 'error');\n }\n }\n };\n\n _proto.stop = function stop() {\n if (this.stream) {\n this.stream.getAudioTracks().forEach(function (track) {\n track.stop();\n });\n this.stream.getVideoTracks().forEach(function (track) {\n track.stop();\n });\n }\n\n this.webcamActive = false;\n this.stream = null;\n this.setPluginState({\n recordedVideo: null\n });\n };\n\n _proto.getVideoElement = function getVideoElement() {\n return this.el.querySelector('.uppy-Webcam-video');\n };\n\n _proto.oneTwoThreeSmile = function oneTwoThreeSmile() {\n var _this5 = this;\n\n return new Promise(function (resolve, reject) {\n var count = _this5.opts.countdown; // eslint-disable-next-line consistent-return\n\n var countDown = setInterval(function () {\n if (!_this5.webcamActive) {\n clearInterval(countDown);\n _this5.captureInProgress = false;\n return reject(new Error('Webcam is not active'));\n }\n\n if (count > 0) {\n _this5.uppy.info(count + \"...\", 'warning', 800);\n\n count--;\n } else {\n clearInterval(countDown);\n\n _this5.uppy.info(_this5.i18n('smile'), 'success', 1500);\n\n setTimeout(function () {\n return resolve();\n }, 1500);\n }\n }, 1000);\n });\n };\n\n _proto.takeSnapshot = function takeSnapshot() {\n var _this6 = this;\n\n if (this.captureInProgress) return;\n this.captureInProgress = true;\n this.opts.onBeforeSnapshot().catch(function (err) {\n var message = typeof err === 'object' ? err.message : err;\n\n _this6.uppy.info(message, 'error', 5000);\n\n return Promise.reject(new Error(\"onBeforeSnapshot: \" + message));\n }).then(function () {\n return _this6.getImage();\n }).then(function (tagFile) {\n _this6.captureInProgress = false;\n\n try {\n _this6.uppy.addFile(tagFile);\n } catch (err) {\n // Logging the error, except restrictions, which is handled in Core\n if (!err.isRestriction) {\n _this6.uppy.log(err);\n }\n }\n }, function (error) {\n _this6.captureInProgress = false;\n throw error;\n });\n };\n\n _proto.getImage = function getImage() {\n var _this7 = this;\n\n var video = this.getVideoElement();\n\n if (!video) {\n return Promise.reject(new Error('No video element found, likely due to the Webcam tab being closed.'));\n }\n\n var width = video.videoWidth;\n var height = video.videoHeight;\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(video, 0, 0);\n var restrictions = this.uppy.opts.restrictions;\n var preferredImageMimeTypes = [];\n\n if (this.opts.preferredImageMimeType) {\n preferredImageMimeTypes = [this.opts.preferredImageMimeType];\n } else if (restrictions.allowedFileTypes) {\n preferredImageMimeTypes = restrictions.allowedFileTypes.map(toMimeType).filter(isImageMimeType);\n }\n\n var mimeType = preferredImageMimeTypes[0] || 'image/jpeg';\n var ext = getFileTypeExtension(mimeType) || 'jpg';\n var name = \"cam-\" + Date.now() + \".\" + ext;\n return canvasToBlob(canvas, mimeType).then(function (blob) {\n return {\n source: _this7.id,\n name: name,\n data: new Blob([blob], {\n type: mimeType\n }),\n type: mimeType\n };\n });\n };\n\n _proto.getVideo = function getVideo() {\n // Sometimes in iOS Safari, Blobs (especially the first Blob in the recordingChunks Array)\n // have empty 'type' attributes (e.g. '') so we need to find a Blob that has a defined 'type'\n // attribute in order to determine the correct MIME type.\n var mimeType = this.recordingChunks.find(function (blob) {\n var _blob$type;\n\n return ((_blob$type = blob.type) == null ? void 0 : _blob$type.length) > 0;\n }).type;\n var fileExtension = getFileTypeExtension(mimeType);\n\n if (!fileExtension) {\n return Promise.reject(new Error(\"Could not retrieve recording: Unsupported media type \\\"\" + mimeType + \"\\\"\"));\n }\n\n var name = \"webcam-\" + Date.now() + \".\" + fileExtension;\n var blob = new Blob(this.recordingChunks, {\n type: mimeType\n });\n var file = {\n source: this.id,\n name: name,\n data: new Blob([blob], {\n type: mimeType\n }),\n type: mimeType\n };\n return Promise.resolve(file);\n };\n\n _proto.focus = function focus() {\n var _this8 = this;\n\n if (!this.opts.countdown) return;\n setTimeout(function () {\n _this8.uppy.info(_this8.i18n('smile'), 'success', 1500);\n }, 1000);\n };\n\n _proto.changeVideoSource = function changeVideoSource(deviceId) {\n this.stop();\n this.start({\n deviceId: deviceId\n });\n };\n\n _proto.updateVideoSources = function updateVideoSources() {\n var _this9 = this;\n\n this.mediaDevices.enumerateDevices().then(function (devices) {\n _this9.setPluginState({\n videoSources: devices.filter(function (device) {\n return device.kind === 'videoinput';\n })\n });\n });\n };\n\n _proto.render = function render() {\n if (!this.webcamActive) {\n this.start();\n }\n\n var webcamState = this.getPluginState();\n\n if (!webcamState.cameraReady || !webcamState.hasCamera) {\n return h(PermissionsScreen, {\n icon: CameraIcon,\n i18n: this.i18n,\n hasCamera: webcamState.hasCamera\n });\n }\n\n return h(CameraScreen // eslint-disable-next-line react/jsx-props-no-spreading\n , _extends({}, webcamState, {\n onChangeVideoSource: this.changeVideoSource,\n onSnapshot: this.takeSnapshot,\n onStartRecording: this.startRecording,\n onStopRecording: this.stopRecording,\n onDiscardRecordedVideo: this.discardRecordedVideo,\n onSubmit: this.submit,\n onFocus: this.focus,\n onStop: this.stop,\n i18n: this.i18n,\n modes: this.opts.modes,\n showRecordingLength: this.opts.showRecordingLength,\n showVideoSourceDropdown: this.opts.showVideoSourceDropdown,\n supportsRecording: supportsMediaRecorder(),\n recording: webcamState.isRecording,\n mirror: this.opts.mirror,\n src: this.stream\n }));\n };\n\n _proto.install = function install() {\n var _this10 = this;\n\n this.setPluginState({\n cameraReady: false,\n recordingLengthSeconds: 0\n });\n var target = this.opts.target;\n\n if (target) {\n this.mount(target, this);\n }\n\n if (this.mediaDevices) {\n this.updateVideoSources();\n\n this.mediaDevices.ondevicechange = function () {\n _this10.updateVideoSources();\n\n if (_this10.stream) {\n var restartStream = true;\n\n var _this10$getPluginStat = _this10.getPluginState(),\n videoSources = _this10$getPluginStat.videoSources,\n currentDeviceId = _this10$getPluginStat.currentDeviceId;\n\n videoSources.forEach(function (videoSource) {\n if (currentDeviceId === videoSource.deviceId) {\n restartStream = false;\n }\n });\n\n if (restartStream) {\n _this10.stop();\n\n _this10.start();\n }\n }\n };\n }\n };\n\n _proto.uninstall = function uninstall() {\n if (this.stream) {\n this.stop();\n }\n\n this.unmount();\n };\n\n return Webcam;\n}(Plugin), _class.VERSION = \"1.8.13\", _temp);","module.exports = function supportsMediaRecorder() {\n /* eslint-disable compat/compat */\n return typeof MediaRecorder === 'function' && !!MediaRecorder.prototype && typeof MediaRecorder.prototype.start === 'function';\n /* eslint-enable compat/compat */\n};"],"names":["module","exports","seconds","Math","floor","String","padStart","_class","_temp","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","h","Plugin","Translator","getFileTypeExtension","mimeTypes","canvasToBlob","supportsMediaRecorder","CameraIcon","CameraScreen","PermissionsScreen","toMimeType","fileType","slice","isVideoMimeType","mimeType","test","isImageMimeType","_Plugin","subClass","superClass","Webcam","uppy","opts","_this","mediaDevices","navigator","getUserMedia","_getUserMedia","mozGetUserMedia","webkitGetUserMedia","Promise","resolve","reject","getMediaDevices","supportsUserMedia","protocol","location","match","id","title","type","capturedMediaFile","icon","focusable","width","height","viewBox","fill","fillRule","className","rx","d","defaultLocale","strings","smile","takePicture","startRecording","stopRecording","allowAccessTitle","allowAccessDescription","noCameraTitle","noCameraDescription","recordingStoppedMaxSize","recordingLength","submitRecordedFile","discardRecordedFile","defaultOptions","onBeforeSnapshot","countdown","modes","mirror","showVideoSourceDropdown","facingMode","preferredImageMimeType","preferredVideoMimeType","showRecordingLength","i18nInit","install","bind","setPluginState","render","start","stop","takeSnapshot","discardRecordedVideo","submit","oneTwoThreeSmile","focus","changeVideoSource","webcamActive","hasCamera","cameraReady","cameraError","recordingLengthSeconds","videoSources","currentDeviceId","create","constructor","_proto","setOptions","newOpts","videoConstraints","translator","locale","i18n","translate","i18nArray","translateArray","hasCameraCheck","enumerateDevices","then","devices","some","device","kind","isAudioOnly","getConstraints","deviceId","_this$opts$videoConst","acceptsAudio","indexOf","acceptsVideo","audio","video","options","_this2","Error","constraints","stream","tracks","getAudioTracks","getVideoTracks","forEach","track","getSettings","updateVideoSources","catch","err","info","message","getMediaRecorderOptions","MediaRecorder","isTypeSupported","restrictions","preferredVideoMimeTypes","allowedFileTypes","map","filter","acceptableMimeTypes","candidateType","_this3","recorder","recordingChunks","stoppingBecauseOfMaxSize","addEventListener","event","push","data","maxFileSize","totalSize","reduce","acc","chunk","size","expectedEndChunkSize","max","recordingLengthTimer","setInterval","currentRecordingLength","getPluginState","isRecording","_this4","clearInterval","getVideo","file","recordedVideo","URL","createObjectURL","isRestriction","log","error","addFile","getVideoElement","el","querySelector","_this5","count","countDown","captureInProgress","setTimeout","_this6","getImage","tagFile","_this7","videoWidth","videoHeight","canvas","document","createElement","getContext","drawImage","preferredImageMimeTypes","ext","name","Date","now","blob","Blob","find","_blob$type","fileExtension","_this8","_this9","webcamState","onChangeVideoSource","onSnapshot","onStartRecording","onStopRecording","onDiscardRecordedVideo","onSubmit","onFocus","onStop","supportsRecording","recording","src","_this10","mount","ondevicechange","restartStream","_this10$getPluginStat","videoSource","uninstall","unmount","VERSION"],"sourceRoot":""}