{"version":3,"sources":["../node_modules/object-assign/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","WithMediaRecorder.js"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","module","exports","target","source","from","symbols","to","s","arguments","length","key","call","k","require","Symbol","for","p","q","r","t","u","v","w","x","y","z","A","B","C","iterator","aa","a","b","e","c","d","g","h","f","Error","l","m","replace","name","framesToPop","D","encodeURIComponent","E","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","F","G","props","context","refs","updater","H","I","isReactComponent","setState","forceUpdate","J","constructor","isPureReactComponent","K","current","currentDispatcher","L","M","ref","__self","__source","N","children","Array","defaultProps","$$typeof","type","_owner","ba","O","escape","P","Q","R","pop","result","keyPrefix","func","count","S","push","T","U","isArray","next","done","value","V","toString","ca","da","W","X","Children","toArray","only","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","render","lazy","_ctor","_status","_result","memo","compare","Fragment","StrictMode","Suspense","createElement","cloneElement","createFactory","bind","isValidElement","version","unstable_ConcurrentMode","unstable_Profiler","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","Y","default","Z","WithMediaRecorder","WrappedComponent","React","state","isRecording","recorder","mediaStream","blob","previewRef","recordedRef","onRecordStart","setRecordStartCb","onRecordStop","setRecordStopCb","setUserAcceptsCb","askPermissions","closeMedia","pauseMedia","record","stopRecord","saveMediaBlob","blobMediaType","videoType","audioType","waitTimeout","audio","video","constraints","componentDidMount","recordDelay","isMediaActive","console","error","hasUserMedia","hasAudioVideoDevices","window","navigator","mediaDevices","getUserMedia","userAcceptsCb","srcObject","getTracks","stop","enabled","MediaRecorder","mediaChunks","ondataavailable","evt","data","onstart","stopped","Promise","resolve","reject","onstop","onerror","event","wait","recordTimerMs","then","start","Blob","src","URL","createObjectURL","recordStartCb","recordStopCb","cb","active","hasAudio","hasVideo","enumerateDevices","devices","device","kind","delay","clearTimeout","setTimeout","recordDelayMs","recordedElement","mediaRecorderProps","previewElement","onUserAccepts","passedProps"],"mappings":"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","file":"WithMediaRecorder.map","sourceRoot":"../src","sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.7.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var k=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.concurrent_mode\"):60111,y=n?Symbol.for(\"react.forward_ref\"):60112,z=n?Symbol.for(\"react.suspense\"):60113,A=n?Symbol.for(\"react.memo\"):\n60115,B=n?Symbol.for(\"react.lazy\"):60116,C=\"function\"===typeof Symbol&&Symbol.iterator;function aa(a,b,e,c,d,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error(\"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\");else{var l=[e,c,d,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name=\"Invariant Violation\"}a.framesToPop=1;throw a;}}\nfunction D(a){for(var b=arguments.length-1,e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=0;c<b;c++)e+=\"&args[]=\"+encodeURIComponent(arguments[c+1]);aa(!1,\"Minified React error #\"+a+\"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \",e)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},F={};\nfunction G(a,b,e){this.props=a;this.context=b;this.refs=F;this.updater=e||E}G.prototype.isReactComponent={};G.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?D(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};G.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function H(){}H.prototype=G.prototype;function I(a,b,e){this.props=a;this.context=b;this.refs=F;this.updater=e||E}var J=I.prototype=new H;\nJ.constructor=I;k(J,G.prototype);J.isPureReactComponent=!0;var K={current:null,currentDispatcher:null},L=Object.prototype.hasOwnProperty,M={key:!0,ref:!0,__self:!0,__source:!0};\nfunction N(a,b,e){var c=void 0,d={},g=null,h=null;if(null!=b)for(c in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)L.call(b,c)&&!M.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var l=Array(f),m=0;m<f;m++)l[m]=arguments[m+2];d.children=l}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:p,type:a,key:g,ref:h,props:d,_owner:K.current}}\nfunction ba(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,e,c){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;h<a.length;h++){d=a[h];var f=b+U(d,h);g+=T(d,f,e,c)}else if(null===a||\"object\"!==typeof a?f=null:(f=C&&a[C]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),h=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,h++),g+=T(d,f,e,c);else\"object\"===d&&(e=\"\"+a,D(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function V(a,b,e){return null==a?0:T(a,\"\",b,e)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function ca(a,b){a.func.call(a.context,b,a.count++)}\nfunction da(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?W(a,c,e,function(a){return a}):null!=a&&(O(a)&&(a=ba(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+e)),c.push(a))}function W(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(P,\"$&/\")+\"/\");b=R(b,g,c,d);V(a,da,b);S(b)}\nvar X={Children:{map:function(a,b,e){if(null==a)return a;var c=[];W(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=R(null,null,b,e);V(a,ca,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];W(a,b,null,function(a){return a});return b},only:function(a){O(a)?void 0:D(\"143\");return a}},createRef:function(){return{current:null}},Component:G,PureComponent:I,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,\n_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:y,render:a}},lazy:function(a){return{$$typeof:B,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:A,type:a,compare:void 0===b?null:b}},Fragment:r,StrictMode:t,Suspense:z,createElement:N,cloneElement:function(a,b,e){null===a||void 0===a?D(\"267\",a):void 0;var c=void 0,d=k({},a.props),g=a.key,h=a.ref,f=a._owner;\nif(null!=b){void 0!==b.ref&&(h=b.ref,f=K.current);void 0!==b.key&&(g=\"\"+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)L.call(b,c)&&!M.hasOwnProperty(c)&&(d[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)d.children=e;else if(1<c){l=Array(c);for(var m=0;m<c;m++)l[m]=arguments[m+2];d.children=l}return{$$typeof:p,type:a.type,key:g,ref:h,props:d,_owner:f}},createFactory:function(a){var b=N.bind(null,a);b.type=a;return b},isValidElement:O,version:\"16.7.0\",\nunstable_ConcurrentMode:x,unstable_Profiler:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:K,assign:k}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default||Z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","// TODO: add error boundary\nimport React from 'react'\n\nfunction WithMediaRecorder (WrappedComponent, props) {\n  return class WithMediaRecorder extends React.Component {\n    constructor (props) {\n      super(props)\n      this.state = { isRecording: false }\n\n      this.recorder = null\n      this.mediaStream = null\n      this.blob = null\n\n      // Element refs\n      this.previewRef = React.createRef()\n      this.recordedRef = React.createRef()\n\n      // Callbacks\n      this.onRecordStart = this.onRecordStart.bind(this)\n      this.setRecordStartCb = this.setRecordStartCb.bind(this)\n      this.onRecordStop = this.onRecordStop.bind(this)\n      this.setRecordStopCb = this.setRecordStopCb.bind(this)\n      this.setUserAcceptsCb = this.setUserAcceptsCb.bind(this)\n\n      // Actions\n      this.askPermissions = this.askPermissions.bind(this)\n      this.closeMedia = this.closeMedia.bind(this)\n      this.pauseMedia = this.pauseMedia.bind(this)\n      this.record = this.record.bind(this)\n      this.stopRecord = this.stopRecord.bind(this)\n      this.saveMediaBlob = this.saveMediaBlob.bind(this)\n\n      // Config\n      this.blobMediaType = null\n      this.videoType = 'video/webm'\n      this.audioType = 'audio/wav'\n\n      this.waitTimeout = null\n\n      const { audio, video } = props.constraints\n      if (video) this.blobMediaType = this.videoType\n      else if (audio) this.blobMediaType = this.audioType\n      else throw new Error('No audio or video constraints found.')\n    }\n\n    componentDidMount () {\n      this.recordDelay()\n    }\n\n    // Actions {{{\n    async askPermissions () {\n      if (!this.isMediaActive()) {\n        if (!this.hasUserMedia()) throw new Error('Navigator does not support video media record.')\n        // todo: only check for what is needed\n        if (!await this.hasAudioVideoDevices()) throw new Error('Not audio/video input devices detected.')\n\n        // Ask user for permissions\n        try {\n          this.mediaStream = await window.navigator.mediaDevices.getUserMedia(this.props.constraints)\n          this.recordDelay()\n          if (typeof this.userAcceptsCb === 'function') this.userAcceptsCb(this.mediaStream)\n          if (this.previewRef.current) this.previewRef.current.srcObject = this.mediaStream\n        } catch (e) {\n          if (e === 'NotAllowedError') throw new Error('Media access not allowed, cant record.')\n          console.error('Video error: ', e)\n        }\n      } else console.error('Media active, permissions already asked.')\n    }\n    closeMedia () {\n      if (this.isMediaActive()) {\n        this.mediaStream.getTracks().map(t => t.stop())\n      } else console.error('No media to stop. Is media active?')\n    }\n    pauseMedia () {\n      if (this.isMediaActive()) {\n        this.mediaStream.getTracks().forEach(t => {\n          t.enabled = !t.enabled\n        })\n      } else console.error('No media to pause. Is media active?')\n    }\n    record () {\n      if (this.isMediaActive()) {\n        if (this.state.isRecording) return console.error('Media currently recording...')\n        const recorder = new window.MediaRecorder(this.mediaStream)\n        let mediaChunks = []\n\n        recorder.ondataavailable = evt => mediaChunks.push(evt.data)\n        recorder.onstart = this.onRecordStart\n\n        const stopped = new Promise((resolve, reject) => {\n          recorder.onstop = evt => resolve(mediaChunks)\n          recorder.onerror = event => reject(event.name)\n        })\n        // stop recording - timer\n        this.wait(this.props.recordTimerMs).then(this.stopRecord)\n\n        this.recorder = recorder\n        recorder.start()\n\n        stopped\n          .then(this.saveMediaBlob)\n          .then(this.onRecordStop)\n      } else console.error('No media to record.')\n    }\n    // TODO: add onSaved as prop to save\n    saveMediaBlob (mediaChunks) {\n      try {\n        this.blob = new window.Blob(mediaChunks, { type: this.blobMediaType })\n        if (this.recordedRef.current) this.recordedRef.current.src = URL.createObjectURL(this.blob)\n        return this.blob\n      } catch (e) {\n        console.error('Error generating file:', e)\n      }\n    }\n    stopRecord () {\n      if (this.state.isRecording) {\n        this.recorder.state === 'recording' && this.recorder.stop()\n      } else console.error('No record in progress to stop.')\n    } // --- }}}\n\n    // Events callbacks {{{\n    onRecordStart () {\n      this.setState({ isRecording: true }, () => {\n        if (typeof this.recordStartCb === 'function') this.recordStartCb(this.stopRecord)\n      })\n    }\n    onRecordStop (blob) {\n      this.setState({ isRecording: false }, () => {\n        if (typeof this.recordStopCb === 'function') this.recordStopCb(blob)\n      })\n    }\n    setRecordStartCb (cb) { this.recordStartCb = cb }\n    setRecordStopCb (cb) { this.recordStopCb = cb }\n    setUserAcceptsCb (cb) { this.userAcceptsCb = cb }\n    // --- }}}\n\n    // Helpers {{{\n    hasUserMedia () {\n      return !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)\n    }\n    isMediaActive () {\n      return !!(this.mediaStream && this.mediaStream.active)\n    }\n    hasAudioVideoDevices () {\n      // TODO: only ask for what is needed\n      let hasAudio = false\n      let hasVideo = false\n      return navigator.mediaDevices.enumerateDevices()\n        .then(devices => {\n          devices.forEach(device => {\n            if (device.kind === 'audioinput') hasAudio = true\n            if (device.kind === 'videoinput') hasVideo = true\n          })\n          return (hasAudio && hasVideo)\n        })\n    }\n    wait (delay) {\n      clearTimeout(this.waitTimeout)\n      return new Promise(resolve => {\n        this.waitTimeout = setTimeout(resolve, delay)\n      })\n    }\n    recordDelay () {\n      if (this.props.recordDelayMs && this.isMediaActive()) {\n        this.wait(this.props.recordDelayMs).then(this.record)\n      }\n    }\n    // --- }}}\n\n    render () {\n      const recordedElement = (this.blobMediaType === this.videoType)\n        ? <video ref={this.recordedRef} controls />\n        : <audio ref={this.recordedRef} controls />\n      const previewElement = (this.blobMediaType === this.videoType)\n        ? <video ref={this.previewRef} autoPlay playsInline muted />\n        : null\n\n      const mediaRecorderProps = {\n        recordedElement,\n        previewElement,\n        isRecording: this.state.isRecording,\n        askPermissions: this.askPermissions,\n        closeMedia: this.closeMedia,\n        pauseMedia: this.pauseMedia,\n        record: this.record,\n        stopRecord: this.stopRecord,\n        onRecordStart: this.setRecordStartCb,\n        onRecordStop: this.setRecordStopCb,\n        onUserAccepts: this.setUserAcceptsCb\n      }\n      const { recordDelayMs, recordTimerMs, constraints, ...passedProps } = this.props\n      return <WrappedComponent mediaRecorder={mediaRecorderProps} {...passedProps} />\n    }\n  }\n}\n\nexport default WithMediaRecorder\n"]}