{"version":3,"file":"webcam.min.js","sources":["../src/webcam.js"],"sourcesContent":["// WebcamJS v1.0.15 - http://github.com/jhuckaby/webcamjs - MIT Licensed\n(function(e){var t;function a(){var e=Error.apply(this,arguments);e.name=this.name=\"FlashError\";this.stack=e.stack;this.message=e.message}function s(){var e=Error.apply(this,arguments);e.name=this.name=\"WebcamError\";this.stack=e.stack;this.message=e.message}IntermediateInheritor=function(){};IntermediateInheritor.prototype=Error.prototype;a.prototype=new IntermediateInheritor;s.prototype=new IntermediateInheritor;var Webcam={version:\"1.0.15\",protocol:location.protocol.match(/https/i)?\"https\":\"http\",loaded:false,live:false,userMedia:true,params:{width:0,height:0,dest_width:0,dest_height:0,image_format:\"jpeg\",jpeg_quality:90,enable_flash:true,force_flash:false,flip_horiz:false,fps:30,upload_name:\"webcam\",constraints:null,swfURL:\"\",flashNotDetectedText:\"ERROR: No Adobe Flash Player detected.  Webcam.js relies on Flash for browsers that do not support getUserMedia (like yours).\",noInterfaceFoundText:\"No supported webcam interface found.\",unfreeze_snap:true},errors:{FlashError:a,WebcamError:s},hooks:{},init:function(){var t=this;this.mediaDevices=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?navigator.mediaDevices:navigator.mozGetUserMedia||navigator.webkitGetUserMedia?{getUserMedia:function(e){return new Promise(function(t,a){(navigator.mozGetUserMedia||navigator.webkitGetUserMedia).call(navigator,e,t,a)})}}:null;e.URL=e.URL||e.webkitURL||e.mozURL||e.msURL;this.userMedia=this.userMedia&&!!this.mediaDevices&&!!e.URL;if(navigator.userAgent.match(/Firefox\\D+(\\d+)/)){if(parseInt(RegExp.$1,10)<21)this.userMedia=null}if(this.userMedia){e.addEventListener(\"beforeunload\",function(e){t.reset()})}},attach:function(a){if(typeof a==\"string\"){a=document.getElementById(a)||document.querySelector(a)}if(!a){return this.dispatch(\"error\",new s(\"Could not locate DOM element to attach to.\"))}this.container=a;a.innerHTML=\"\";var i=document.createElement(\"div\");a.appendChild(i);this.peg=i;if(!this.params.width)this.params.width=a.offsetWidth;if(!this.params.height)this.params.height=a.offsetHeight;if(!this.params.width||!this.params.height){return this.dispatch(\"error\",new s(\"No width and/or height for webcam.  Please call set() first, or attach to a visible element.\"))}if(!this.params.dest_width)this.params.dest_width=this.params.width;if(!this.params.dest_height)this.params.dest_height=this.params.height;this.userMedia=t===undefined?this.userMedia:t;if(this.params.force_flash){t=this.userMedia;this.userMedia=null}if(typeof this.params.fps!==\"number\")this.params.fps=30;var r=this.params.width/this.params.dest_width;var o=this.params.height/this.params.dest_height;if(this.userMedia){var n=document.createElement(\"video\");n.setAttribute(\"autoplay\",\"autoplay\");n.style.width=\"\"+this.params.dest_width+\"px\";n.style.height=\"\"+this.params.dest_height+\"px\";if(r!=1||o!=1){a.style.overflow=\"hidden\";n.style.webkitTransformOrigin=\"0px 0px\";n.style.mozTransformOrigin=\"0px 0px\";n.style.msTransformOrigin=\"0px 0px\";n.style.oTransformOrigin=\"0px 0px\";n.style.transformOrigin=\"0px 0px\";n.style.webkitTransform=\"scaleX(\"+r+\") scaleY(\"+o+\")\";n.style.mozTransform=\"scaleX(\"+r+\") scaleY(\"+o+\")\";n.style.msTransform=\"scaleX(\"+r+\") scaleY(\"+o+\")\";n.style.oTransform=\"scaleX(\"+r+\") scaleY(\"+o+\")\";n.style.transform=\"scaleX(\"+r+\") scaleY(\"+o+\")\"}a.appendChild(n);this.video=n;var h=this;this.mediaDevices.getUserMedia({audio:false,video:this.params.constraints||{mandatory:{minWidth:this.params.dest_width,minHeight:this.params.dest_height}}}).then(function(t){n.onloadedmetadata=function(e){h.stream=t;h.loaded=true;h.live=true;h.dispatch(\"load\");h.dispatch(\"live\");h.flip()};n.srcObject=t||t}).catch(function(e){if(h.params.enable_flash&&h.detectFlash()){setTimeout(function(){h.params.force_flash=1;h.attach(a)},1)}else{h.dispatch(\"error\",e)}})}else if(this.params.enable_flash&&this.detectFlash()){e.Webcam=Webcam;var l=document.createElement(\"div\");l.innerHTML=this.getSWFHTML();a.appendChild(l)}else{this.dispatch(\"error\",new s(this.params.noInterfaceFoundText))}if(this.params.crop_width&&this.params.crop_height){var c=Math.floor(this.params.crop_width*r);var m=Math.floor(this.params.crop_height*o);a.style.width=\"\"+c+\"px\";a.style.height=\"\"+m+\"px\";a.style.overflow=\"hidden\";a.scrollLeft=Math.floor(this.params.width/2-c/2);a.scrollTop=Math.floor(this.params.height/2-m/2)}else{a.style.width=\"\"+this.params.width+\"px\";a.style.height=\"\"+this.params.height+\"px\"}},reset:function(){if(this.preview_active)this.unfreeze();this.unflip();if(this.userMedia){if(this.stream){if(this.stream.getVideoTracks){var e=this.stream.getVideoTracks();if(e&&e[0]&&e[0].stop)e[0].stop()}else if(this.stream.stop){this.stream.stop()}}delete this.stream;delete this.video}if(this.userMedia!==true){this.getMovie()._releaseCamera()}if(this.container){this.container.innerHTML=\"\";delete this.container}this.loaded=false;this.live=false},set:function(){if(arguments.length==1){for(var e in arguments[0]){this.params[e]=arguments[0][e]}}else{this.params[arguments[0]]=arguments[1]}},on:function(e,t){e=e.replace(/^on/i,\"\").toLowerCase();if(!this.hooks[e])this.hooks[e]=[];this.hooks[e].push(t)},off:function(e,t){e=e.replace(/^on/i,\"\").toLowerCase();if(this.hooks[e]){if(t){var a=this.hooks[e].indexOf(t);if(a>-1)this.hooks[e].splice(a,1)}else{this.hooks[e]=[]}}},dispatch:function(){var t=arguments[0].replace(/^on/i,\"\").toLowerCase();var i=Array.prototype.slice.call(arguments,1);if(this.hooks[t]&&this.hooks[t].length){for(var r=0,o=this.hooks[t].length;r<o;r++){var n=this.hooks[t][r];if(typeof n==\"function\"){n.apply(this,i)}else if(typeof n==\"object\"&&n.length==2){n[0][n[1]].apply(n[0],i)}else if(e[n]){e[n].apply(e,i)}}return true}else if(t==\"error\"){if(i[0]instanceof a||i[0]instanceof s){message=i[0].message}else{message=\"Could not access webcam: \"+i[0].name+\": \"+i[0].message+\" \"+i[0].toString()}alert(\"Webcam.js Error: \"+message)}return false},setSWFLocation:function(e){this.set(\"swfURL\",e)},detectFlash:function(){var t=\"Shockwave Flash\",a=\"ShockwaveFlash.ShockwaveFlash\",s=\"application/x-shockwave-flash\",i=e,r=navigator,o=false;if(typeof r.plugins!==\"undefined\"&&typeof r.plugins[t]===\"object\"){var n=r.plugins[t].description;if(n&&(typeof r.mimeTypes!==\"undefined\"&&r.mimeTypes[s]&&r.mimeTypes[s].enabledPlugin)){o=true}}else if(typeof i.ActiveXObject!==\"undefined\"){try{var h=new ActiveXObject(a);if(h){var l=h.GetVariable(\"$version\");if(l)o=true}}catch(c){}}return o},getSWFHTML:function(){var t=\"\",s=this.params.swfURL;if(location.protocol.match(/file/)){this.dispatch(\"error\",new a(\"Flash does not work from local disk.  Please run from a web server.\"));return'<h3 style=\"color:red\">ERROR: the Webcam.js Flash fallback does not work from local disk.  Please run it from a web server.</h3>'}if(!this.detectFlash()){this.dispatch(\"error\",new a(\"Adobe Flash Player not found.  Please install from get.adobe.com/flashplayer and try again.\"));return'<h3 style=\"color:red\">'+this.params.flashNotDetectedText+\"</h3>\"}if(!s){var i=\"\";var r=document.getElementsByTagName(\"script\");for(var o=0,n=r.length;o<n;o++){var h=r[o].getAttribute(\"src\");if(h&&h.match(/\\/webcam(\\.min)?\\.js/)){i=h.replace(/\\/webcam(\\.min)?\\.js.*$/,\"\");o=n}}if(i)s=i+\"/webcam.swf\";else s=\"webcam.swf\"}if(e.localStorage&&!localStorage.getItem(\"visited\")){this.params.new_user=1;localStorage.setItem(\"visited\",1)}var l=\"\";for(var c in this.params){if(l)l+=\"&\";l+=c+\"=\"+escape(this.params[c])}t+='<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" type=\"application/x-shockwave-flash\" codebase=\"'+this.protocol+'://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" width=\"'+this.params.width+'\" height=\"'+this.params.height+'\" id=\"webcam_movie_obj\" align=\"middle\"><param name=\"wmode\" value=\"opaque\" /><param name=\"allowScriptAccess\" value=\"always\" /><param name=\"allowFullScreen\" value=\"false\" /><param name=\"movie\" value=\"'+s+'\" /><param name=\"loop\" value=\"false\" /><param name=\"menu\" value=\"false\" /><param name=\"quality\" value=\"best\" /><param name=\"bgcolor\" value=\"#ffffff\" /><param name=\"flashvars\" value=\"'+l+'\"/><embed id=\"webcam_movie_embed\" src=\"'+s+'\" wmode=\"opaque\" loop=\"false\" menu=\"false\" quality=\"best\" bgcolor=\"#ffffff\" width=\"'+this.params.width+'\" height=\"'+this.params.height+'\" name=\"webcam_movie_embed\" align=\"middle\" allowScriptAccess=\"always\" allowFullScreen=\"false\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" flashvars=\"'+l+'\"></embed></object>';return t},getMovie:function(){if(!this.loaded)return this.dispatch(\"error\",new a(\"Flash Movie is not loaded yet\"));var e=document.getElementById(\"webcam_movie_obj\");if(!e||!e._snap)e=document.getElementById(\"webcam_movie_embed\");if(!e)this.dispatch(\"error\",new a(\"Cannot locate Flash movie in DOM\"));return e},freeze:function(){var e=this;var t=this.params;if(this.preview_active)this.unfreeze();var a=this.params.width/this.params.dest_width;var s=this.params.height/this.params.dest_height;this.unflip();var i=t.crop_width||t.dest_width;var r=t.crop_height||t.dest_height;var o=document.createElement(\"canvas\");o.width=i;o.height=r;var n=o.getContext(\"2d\");this.preview_canvas=o;this.preview_context=n;if(a!=1||s!=1){o.style.webkitTransformOrigin=\"0px 0px\";o.style.mozTransformOrigin=\"0px 0px\";o.style.msTransformOrigin=\"0px 0px\";o.style.oTransformOrigin=\"0px 0px\";o.style.transformOrigin=\"0px 0px\";o.style.webkitTransform=\"scaleX(\"+a+\") scaleY(\"+s+\")\";o.style.mozTransform=\"scaleX(\"+a+\") scaleY(\"+s+\")\";o.style.msTransform=\"scaleX(\"+a+\") scaleY(\"+s+\")\";o.style.oTransform=\"scaleX(\"+a+\") scaleY(\"+s+\")\";o.style.transform=\"scaleX(\"+a+\") scaleY(\"+s+\")\"}this.snap(function(){o.style.position=\"relative\";o.style.left=\"\"+e.container.scrollLeft+\"px\";o.style.top=\"\"+e.container.scrollTop+\"px\";e.container.insertBefore(o,e.peg);e.container.style.overflow=\"hidden\";e.preview_active=true},o)},unfreeze:function(){if(this.preview_active){this.container.removeChild(this.preview_canvas);delete this.preview_context;delete this.preview_canvas;this.preview_active=false;this.flip()}},flip:function(){if(this.params.flip_horiz){var e=this.container.style;e.webkitTransform=\"scaleX(-1)\";e.mozTransform=\"scaleX(-1)\";e.msTransform=\"scaleX(-1)\";e.oTransform=\"scaleX(-1)\";e.transform=\"scaleX(-1)\";e.filter=\"FlipH\";e.msFilter=\"FlipH\"}},unflip:function(){if(this.params.flip_horiz){var e=this.container.style;e.webkitTransform=\"scaleX(1)\";e.mozTransform=\"scaleX(1)\";e.msTransform=\"scaleX(1)\";e.oTransform=\"scaleX(1)\";e.transform=\"scaleX(1)\";e.filter=\"\";e.msFilter=\"\"}},savePreview:function(e,t){var a=this.params;var s=this.preview_canvas;var i=this.preview_context;if(t){var r=t.getContext(\"2d\");r.drawImage(s,0,0)}e(t?null:s.toDataURL(\"image/\"+a.image_format,a.jpeg_quality/100),s,i);if(this.params.unfreeze_snap)this.unfreeze()},snap:function(e,t){var a=this;var i=this.params;if(!this.loaded)return this.dispatch(\"error\",new s(\"Webcam is not loaded yet\"));if(!e)return this.dispatch(\"error\",new s(\"Please provide a callback function or canvas to snap()\"));if(this.preview_active){this.savePreview(e,t);return null}var r=document.createElement(\"canvas\");r.width=this.params.dest_width;r.height=this.params.dest_height;var o=r.getContext(\"2d\");if(this.params.flip_horiz){o.translate(i.dest_width,0);o.scale(-1,1)}var n=function(){if(this.src&&this.width&&this.height){o.drawImage(this,0,0,i.dest_width,i.dest_height)}if(i.crop_width&&i.crop_height){var a=document.createElement(\"canvas\");a.width=i.crop_width;a.height=i.crop_height;var s=a.getContext(\"2d\");s.drawImage(r,Math.floor(i.dest_width/2-i.crop_width/2),Math.floor(i.dest_height/2-i.crop_height/2),i.crop_width,i.crop_height,0,0,i.crop_width,i.crop_height);o=s;r=a}if(t){var n=t.getContext(\"2d\");n.drawImage(r,0,0)}e(t?null:r.toDataURL(\"image/\"+i.image_format,i.jpeg_quality/100),r,o)};if(this.userMedia){o.drawImage(this.video,0,0,this.params.dest_width,this.params.dest_height);n()}else{var h=this.getMovie()._snap();var l=new Image;l.onload=n;l.src=\"data:image/\"+this.params.image_format+\";base64,\"+h}return null},configure:function(e){if(!e)e=\"camera\";this.getMovie()._configure(e)},flashNotify:function(e,t){switch(e){case\"flashLoadComplete\":this.loaded=true;this.dispatch(\"load\");break;case\"cameraLive\":this.live=true;this.dispatch(\"live\");break;case\"error\":this.dispatch(\"error\",new a(t));break;default:break}},b64ToUint6:function(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:e===43?62:e===47?63:0},base64DecToArr:function(e,t){var a=e.replace(/[^A-Za-z0-9\\+\\/]/g,\"\"),s=a.length,i=t?Math.ceil((s*3+1>>2)/t)*t:s*3+1>>2,r=new Uint8Array(i);for(var o,n,h=0,l=0,c=0;c<s;c++){n=c&3;h|=this.b64ToUint6(a.charCodeAt(c))<<18-6*n;if(n===3||s-c===1){for(o=0;o<3&&l<i;o++,l++){r[l]=h>>>(16>>>o&24)&255}h=0}}return r},upload:function(e,t,a){var s=this.params.upload_name||\"webcam\";var i=\"\";if(e.match(/^data\\:image\\/(\\w+)/))i=RegExp.$1;else throw\"Cannot locate image format in Data URI\";var r=e.replace(/^data\\:image\\/\\w+\\;base64\\,/,\"\");var o=new XMLHttpRequest;o.open(\"POST\",t,true);if(o.upload&&o.upload.addEventListener){o.upload.addEventListener(\"progress\",function(e){if(e.lengthComputable){var t=e.loaded/e.total;Webcam.dispatch(\"uploadProgress\",t,e)}},false)}var n=this;o.onload=function(){if(a)a.apply(n,[o.status,o.responseText,o.statusText]);Webcam.dispatch(\"uploadComplete\",o.status,o.responseText,o.statusText)};var h=new Blob([this.base64DecToArr(r)],{type:\"image/\"+i});var l=new FormData;l.append(s,h,s+\".\"+i.replace(/e/,\"\"));o.send(l)}};Webcam.init();if(typeof define===\"function\"&&define.amd){define(function(){return Webcam})}else if(typeof module===\"object\"&&module.exports){module.exports=Webcam}else{e.Webcam=Webcam}})(window);"],"names":["e","t","a","Error","apply","this","arguments","name","stack","message","s","IntermediateInheritor","prototype","Webcam","version","protocol","location","match","loaded","live","userMedia","params","width","height","dest_width","dest_height","image_format","jpeg_quality","enable_flash","force_flash","flip_horiz","fps","upload_name","constraints","swfURL","flashNotDetectedText","noInterfaceFoundText","unfreeze_snap","errors","FlashError","WebcamError","hooks","init","mediaDevices","navigator","getUserMedia","mozGetUserMedia","webkitGetUserMedia","Promise","call","URL","webkitURL","mozURL","msURL","userAgent","parseInt","RegExp","$1","addEventListener","reset","attach","document","getElementById","querySelector","dispatch","container","innerHTML","i","createElement","appendChild","peg","offsetWidth","offsetHeight","undefined","r","o","n","setAttribute","style","overflow","webkitTransformOrigin","mozTransformOrigin","msTransformOrigin","oTransformOrigin","transformOrigin","webkitTransform","mozTransform","msTransform","oTransform","transform","video","h","audio","mandatory","minWidth","minHeight","then","onloadedmetadata","stream","flip","srcObject","catch","detectFlash","setTimeout","l","getSWFHTML","crop_width","crop_height","c","Math","floor","m","scrollLeft","scrollTop","preview_active","unfreeze","unflip","getVideoTracks","stop","getMovie","_releaseCamera","set","length","on","replace","toLowerCase","push","off","indexOf","splice","Array","slice","toString","alert","setSWFLocation","plugins","description","mimeTypes","enabledPlugin","ActiveXObject","GetVariable","getElementsByTagName","getAttribute","localStorage","getItem","new_user","setItem","escape","_snap","freeze","getContext","preview_canvas","preview_context","snap","position","left","top","insertBefore","removeChild","filter","msFilter","savePreview","drawImage","toDataURL","translate","scale","src","Image","onload","configure","_configure","flashNotify","b64ToUint6","base64DecToArr","ceil","Uint8Array","charCodeAt","upload","XMLHttpRequest","open","lengthComputable","total","status","responseText","statusText","Blob","type","FormData","append","send","define","amd","module","exports","window"],"mappings":"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"}