PageSourceSearch

https://epoxyflooringco.com.au/wp-content/plugins/ws-form-pro/publ…/js/external/media-capture.min.js?ver=1.0.0

js epoxyflooringco.com.au collected 2026-10-04 08:36:58 UTC 109,329 bytes, 1 lines download raw bytes

1!function(e){"use strict";function t(){return Object.assign({},{mode:"video",facing_mode:"user",max_duration:30,video_format:"mp4",resolution:"",audio_format:"webm",photo_format:"jpeg",photo_quality:.9,photo_sound_enabled:!1,photo_sound_url:"",countdown_enabled:!1,countdown_duration:3,countdown_sound_enabled:!1,countdown_sound_url:"",auto_start:!1,controls_auto_hide:!1,controls_auto_hide_duration:3e3,max_width:"",settings_download_enabled:!1,log:!1,log_to_console:!0,qr_scan_enabled:!1,qr_scan_interval:200,qr_scan_pause_on_detect:!0,qr_scan_beep:!1,qr_scan_auto:!1,qr_scan_overlay_enabled:!0},{icon_camera:'<svg viewBox="0 0 20 20"><path d="M17,4.3h-2.3l-1.8-2.2c-.2-.3-.5-.4-.8-.4h-4.3c-.3,0-.6.2-.8.4l-1.7,2.2h-2.3c-1.7,0-3,1.3-3,3v8c0,1.7,1.3,3,3,3h14c1.7,0,3-1.3,3-3V7.3c0-1.7-1.3-3-3-3ZM10,14.8c-2.8,0-5-2.2-5-5s2.2-5,5-5,5,2.2,5,5-2.2,5-5,5ZM10,6.8c-1.7,0-3,1.3-3,3s1.3,3,3,3,3-1.3,3-3-1.3-3-3-3Z"/></svg>',icon_checkmark:'<svg viewBox="0 0 20 20"><path d="M7.3,14.2l-4.8-4.8c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.5,5.5c0.4,0.4,1,0.4,1.4,0l11-11c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0 L7.3,14.2z"/></svg>',icon_chevron_right:'<svg viewBox="0 0 20 20"><path d="M7.5,2.5c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4L13.4,10l-7.3,6.1c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3 l8-7c0.4-0.4,0.4-1,0-1.4L7.5,2.5z"/></svg>',icon_close:'<svg viewBox="0 0 20 20"><path d="M20,2l-2-2-8,8L2,0,0,2l8,8L0,18l2,2,8-8,8,8,2-2-8-8,8-8Z"/></svg>',icon_download:'<svg viewBox="0 0 20 20"><path d="M11.4 0c.2 0 .5.3.5.5v8.3h2.6s.2 0 .3.1c.3.2.3.6.1.9-1.5 1.6-2.8 3.4-4.3 4.9s-.7.5-1.2 0c-1.5-1.5-2.8-3.4-4.3-4.9-.2-.3-.1-.6.1-.9s.2-.1.3-.1h2.6V.5c0-.2.3-.4.5-.5h2.8Z"/><path d="M.6 13.8h2.5v3.8h13.8v-3.8h2.5V19c-.1.5-.5.9-1 1H1.6c-.5-.1-.9-.5-1-1v-5.2Z"/></svg>',icon_error:'<svg viewBox="0 0 20 20"><path d="M10,0C4.5,0,0,4.5,0,10s4.5,10,10,10,10-4.5,10-10S15.5,0,10,0ZM11,15H9v-2h2v2ZM11,11H9V5h2v6Z"/></svg>',icon_flip_camera:'<svg viewBox="0 0 20 20"><path d="M14.1 6.6h-1.4l-1.1-1.3c-.1-.2-.3-.2-.5-.2H8.6c-.2 0-.4.1-.5.2l-1 1.3H5.7c-1 0-1.8.8-1.8 1.8v4.7c0 1 .8 1.8 1.8 1.8H14c1 0 1.8-.8 1.8-1.8V8.4c0-1-.8-1.8-1.8-1.8ZM10 12.8c-1.7 0-2.9-1.3-2.9-2.9S8.4 7 10 7s2.9 1.3 2.9 2.9-1.3 2.9-2.9 2.9Zm0-4.7c-1 0-1.8.8-1.8 1.8s.8 1.8 1.8 1.8 1.8-.8 1.8-1.8S11 8.1 10 8.1Z"/><path d="M7.5.5c-.4.4-1.3 1.2-1.6 1.7s-.2.4.1.6c.7.2 1.4.5 2.1.8s.7.3.8.2c.5 0 0-1.2 0-1.5 3-.6 5.9.9 7.6 3.3s2 6 .4 8.5-.9 1-.3 1.4 1-.7 1.2-1c3.3-6-1.2-13.4-8-13.2s-.8 0-1.2.1c-.1 0-.3-1.2-.5-1.3s-.5.3-.6.5ZM4.5 15.9C1.9 13.5 1.1 9.3 3 6.2s.9-.9.5-1.4-1 .3-1.2.6c-3.2 5.4 0 12.3 6 13.4s2.1.2 3.1 0c.1 0 .2 1.1.5 1.2s.6-.4.7-.5c.5-.5.9-1.1 1.5-1.6.1-.2.2-.4 0-.5s-1.4-.6-1.8-.7-1-.4-1.2-.4-.2 0-.2.1c-.2.3.2 1.1.2 1.4-.7.2-1.6.2-2.4 0-1.6-.2-3.1-1-4.3-2.1Z"/></svg>',icon_mic:'<svg viewBox="0 0 14.7 20"><path d="M7.4,12.6c1.7,0,3.2-1.4,3.2-3.2V3.2c0-1.7-1.4-3.2-3.2-3.2s-3.2,1.4-3.2,3.2v6.3c0,1.7,1.4,3.2,3.2,3.2ZM12.6,9.5c0,2.9-2.4,5.3-5.3,5.3s-5.3-2.4-5.3-5.3H0c0,3.7,2.7,6.8,6.3,7.3v3.2h2.1v-3.2c3.6-.5,6.3-3.6,6.3-7.3h-2.1Z"/></svg>',icon_mic_muted:'<svg viewBox="0 0 14.7 20"><path d="M14.7,9.5h-1.8c0,.8-.2,1.5-.5,2.2l1.3,1.3c.6-1,.9-2.2,.9-3.5ZM10.5,9.7c0,0,0-.1,0-.2V3.2C10.5,1.4,9.1,0,7.4,0s-3.2,1.4-3.2,3.2v.2l6.3,6.3ZM-.8,1.1l-1.3,1.3,6.3,6.3v.8c0,1.7,1.4,3.2,3.1,3.2s.5,0,.7,0l1.7,1.7c-.7.3-1.6.5-2.4.5-2.9,0-5.6-2.2-5.6-5.4H0C0,13.1,2.9,16,6.3,16.5v3.5h2.1v-3.5c1-.1,1.9-.5,2.7-.9l4.4,4.4,1.3-1.3L-.8,1.1Z"/></svg>',icon_pause:'<svg viewBox="0 0 20 20"><path d="M2.5,0h5v20H2.5V0ZM12.5,0h5v20h-5V0Z"/></svg>',icon_play:'<svg viewBox="0 0 20 20"><path d="M4.1,0v20l15.7-10L2.1,0Z"/></svg>',icon_record:'<svg viewBox="0 0 20 20"><circle cx="10" cy="10" r="10"/></svg>',icon_retake:'<svg viewBox="0 0 20 20"><path d="M20,10.4h-2.1c-.2,6.3-7.9,9.9-12.8,5.9l1.7-2.2h.1c3.2,2.5,7.9.3,8.2-3.7h-2.1l3.5-4.4,3.5,4.4Z"/><path d="M4.9,9.6h2.1l-3.5,4.5L0,9.6h2.1c0-2.7,1.7-5.3,4.1-6.6s5.5-1.3,8,.2.6.3.7.5,0,0,0,0l-1.8,2.2s-.6-.3-.7-.4c-3.3-1.8-7.2.4-7.6,4.1Z"/></svg>',icon_source_audio:'<svg viewBox="0 0 20 20"><path d="M10,12.6c1.7,0,3.2-1.4,3.2-3.2V3.2c0-1.7-1.4-3.2-3.2-3.2s-3.2,1.4-3.2,3.2v6.3c0,1.7,1.4,3.2,3.2,3.2ZM16.2,9.5c-.5,0-.9.4-1,.9-.4,2.5-2.6,4.4-5.2,4.4s-4.8-1.9-5.2-4.4c0-.5-.5-.9-1-.9s-1.1.6-1.1,1.2c.5,3.2,3,5.
16,6.2,6.1v2.2c0,.6.5,1.1,1.1,1.1s1.1-.5,1.1-1.1v-2.2c3.2-.5,5.7-2.9,6.2-6.1.1-.6-.4-1.2-1.1-1.2Z"/></svg>',icon_source_video:'<svg viewBox="0 0 20 20"><path d="M15.6,8.3v-3.9c0-.6-.5-1.1-1.1-1.1H1.1c-.6,0-1.1.5-1.1,1.1v11.1c0,.6.5,1.1,1.1,1.1h13.3c.6,0,1.1-.5,1.1-1.1v-3.9l4.4,4.4V3.9l-4.4,4.4Z"/></svg>',icon_settings:'<svg viewBox="0 0 20 20"><path d="M17.43,10.98c0.04-0.32,0.07-0.64,0.07-0.98s-0.03-0.66-0.07-0.98l2.11-1.65c0.19-0.15,0.24-0.42,0.12-0.64l-2-3.46 c-0.12-0.22-0.39-0.3-0.61-0.22l-2.49,1c-0.52-0.4-1.08-0.73-1.69-0.98l-0.38-2.65C12.46,0.18,12.25,0,12,0h-4 c-0.25,0-0.46,0.18-0.49,0.42L7.13,3.07c-0.61,0.25-1.17,0.59-1.69,0.98l-2.49-1c-0.23-0.09-0.49,0-0.61,0.22l-2,3.46 c-0.13,0.22-0.07,0.49,0.12,0.64l2.11,1.65c-0.04,0.32-0.07,0.65-0.07,0.98s0.03,0.66,0.07,0.98l-2.11,1.65 c-0.19,0.15-0.24,0.42-0.12,0.64l2,3.46c0.12,0.22,0.39,0.3,0.61,0.22l2.49-1c0.52,0.4,1.08,0.73,1.69,0.98l0.38,2.65 C7.54,19.82,7.75,20,8,20h4c0.25,0,0.46-0.18,0.49-0.42l0.38-2.65c0.61-0.25,1.17-0.59,1.69-0.98l2.49,1 c0.23,0.09,0.49,0,0.61-0.22l2-3.46c0.12-0.22,0.07-0.49-0.12-0.64L17.43,10.98z M10,13c-1.65,0-3-1.35-3-3s1.35-3,3-3s3,1.35,3,3 S11.65,13,10,13z"/></svg>',icon_stop:'<svg viewBox="0 0 20 20"><rect x="2" y="2" width="16" height="16"/></svg>',icon_volume:'<svg viewBox="0 0 20 20"><path d="M0,6.7v6.6h4.4l5.5,5.5V1.1l-5.5,5.5H0ZM14.9,10c0-2-1.1-3.6-2.8-4.5v8.9c1.6-.8,2.8-2.5,2.8-4.4ZM12.2.3v2.3c3.2,1,5.5,3.9,5.5,7.4s-2.3,6.5-5.5,7.4v2.3c4.4-1,7.7-5,7.7-9.7S16.6,1.3,12.2.3h0Z"/></svg>',icon_volume_low:'<svg viewBox="0 0 20 20"><path d="M0,6.7v6.7h4.4l5.6,5.6V1.1l-5.6,5.6H0ZM15,10c0-2-1.1-3.7-2.8-4.5v8.9c1.6-.8,2.8-2.5,2.8-4.5Z"/></svg>',icon_volume_muted:'<svg viewBox="0 0 20 20"><path d="M15,10c0-2-1.1-3.7-2.8-4.5v2.5l2.7,2.7c0-.2,0-.5,0-.7ZM17.8,10c0,1-.2,2-.6,2.9l1.7,1.7c.7-1.4,1.1-2.9,1.1-4.6,0-4.8-3.3-8.7-7.8-9.7v2.3c3.2,1,5.6,3.9,5.6,7.5ZM1.4,0L0,1.4l5.3,5.3H0v6.7h4.4l5.6,5.6v-7.5l4.7,4.7c-.7.6-1.6,1-2.5,1.3v2.3c1.5-.3,2.9-1.1,4.1-2l2.3,2.3,1.4-1.4-10-10L1.4,0ZM10,1.1l-2.3,2.3,2.3,2.3V1.1Z"/></svg>'},{label_cancel_retake:"Cancel",label_capture_photo:"Take Photo",label_close_settings:"Close Settings",label_error_camera:"Unable to access camera. Please check permissions.",label_error_camera_microphone:"Unable to access camera and microphone. Please check permissions.",label_error_microphone:"Unable to access microphone. Please check permissions.",label_flip_camera:"Flip Camera",label_mic_active:"Microphone Active",label_mic_muted:"Microphone Muted",label_pause:"Pause",label_play:"Play",label_progress:"Progress",label_resume:"Resume",label_retake:"Retake Photo",label_settings:"Settings",label_settings_audio_input:"Audio Input",label_settings_back:"Back",label_settings_download:"Download",label_settings_video_input:"Video Input",label_start_camera:"Click to Start Camera",label_start_microphone:"Click to Start Microphone",label_start_recording:"Start Recording",label_stop:"Stop",label_volume:"Volume",label_volume_muted:"Volume Muted",label_qr_scanning:"Scanning for QR code"},{on_photo_captured:null,on_photo_retake:null,on_photo_cancel:null,on_video_captured:null,on_video_started:null,on_video_stopped:null,on_video_paused:null,on_video_resumed:null,on_video_retake:null,on_video_cancel:null,on_audio_captured:null,on_audio_started:null,on_audio_stopped:null,on_audio_paused:null,on_audio_resumed:null,on_audio_retake:null,on_audio_cancel:null,on_error:null,on_log:null,on_stream_started:null,on_stream_stopped:null,on_stream_flipped:null,on_settings_opened:null,on_settings_closed:null,on_result_show:null,on_result_hide:null,on_cameras_detected:null,on_ui_flip_on:null,on_ui_flip_off:null,on_ui_capture_on:null,on_ui_capture_off:null,on_ui_retake_on:null,on_ui_retake_off:null,on_ui_cancel_on:null,on_ui_cancel_off:null,on_ui_settings_on:null,on_ui_settings_off:null,on_ui_download_on:null,on_ui_download_off:null,on_ui_playback_play_on:null,on_ui_playback_play_off:null,on_ui_playback_pause_on:null,on_ui_playback_pause_off:null,on_ui_playback_toggle_on:null,on_ui_playback_toggle_off:null,on_ui_playback_stop_on:null,on_ui_playback_stop_off:null,on_qr_detected:null,on_qr_scan_start:null,on_qr_scan_stop:null})}function i(e,i){if(!e||"function"!=typeof e.appendChild)throw new Error("MediaCapture requires a valid DOM element");this.element=e,this.config=t(),this.config=Object.assign({},this.config,i||{}),this.sanitize_config(),this.stream=null,this.video_element=null,this.audio_element=null,this.canvas_element=null,this.media_recorder=null,this.recorded_chunks=[],this.timer_interval=null,this.is_recording=!1,this.is_initialized=!1,this.blob=null,this.filename=null,this.selected_video_device=null,this.selected_audio_device=null,this.is_mobile=!1,this.has_multiple_cameras=!1,this.has_checked_cameras=!1,this.has_multiple_microphones=!1,this.has_checked_microphones=!1,this.video_width=null,this.video_height=null,this.qr_scan_
1interval_id=null,this.qr_scan_active=!1,this.qr_barcode_detector=null,this.init=this.init.bind(this),this.destroy=this.destroy.bind(this),this.stream_start=this.stream_start.bind(this),this.stream_stop=this.stream_stop.bind(this),this.stream_flip=this.stream_flip.bind(this),this.photo_capture=this.photo_capture.bind(this),this.photo_retake=this.photo_retake.bind(this),this.photo_cancel=this.photo_cancel.bind(this),this.video_start=this.video_start.bind(this),this.video_stop=this.video_stop.bind(this),this.video_pause=this.video_pause.bind(this),this.video_resume=this.video_resume.bind(this),this.video_retake=this.video_retake.bind(this),this.video_cancel=this.video_cancel.bind(this),this.audio_start=this.audio_start.bind(this),this.audio_stop=this.audio_stop.bind(this),this.audio_pause=this.audio_pause.bind(this),this.audio_resume=this.audio_resume.bind(this),this.audio_retake=this.audio_retake.bind(this),this.audio_cancel=this.audio_cancel.bind(this),this.settings_open=this.settings_open.bind(this),this.settings_close=this.settings_close.bind(this),this.show_controls=this.show_controls.bind(this),this.hide_controls=this.hide_controls.bind(this),this.get_stream=this.get_stream.bind(this),this.is_stream_active=this.is_stream_active.bind(this),this.set_config=this.set_config.bind(this),this.get_config=this.get_config.bind(this),this.init()}i.prototype.init=function(){if(this.is_initialized)this.log("Init already called - skipping re-initialization");else{if(this.log("Initializing MediaCapture with mode: "+this.config.mode),this.config.resolution){var e=this.config.resolution.split(",");this.video_width=parseInt(e[0],10)||null,this.video_height=parseInt(e[1],10)||null,this.log("Resolution parsed: "+this.video_width+"x"+this.video_height)}this.log("Building interface"),this.build_interface(),this.video_element=this.element.querySelector(".mc-video"),this.audio_element=this.element.querySelector(".mc-audio"),this.canvas_element=this.element.querySelector(".mc-canvas"),this.is_initialized=!0,this.log("Initializing functionality and event handlers"),this.init_functionality(),this.log("MediaCapture initialization complete")}},i.prototype.log=function(e){if(this.config.log){var t="log",i=Array.prototype.slice.call(arguments,1);if(i.length>0){var o=i[i.length-1];"warn"!==o&&"error"!==o&&"log"!==o||(t=o,i=i.slice(0,-1))}if("function"==typeof this.config.on_log&&this.config.on_log(e,i,t),this.config.log_to_console&&console&&console[t]){var a=["[MediaCapture]",e].concat(i);console[t].apply(console,a)}}},i.prototype.sanitize_config=function(){var e=t(),i=function(e){return null==e||"string"==typeof e&&""===e.trim()};for(var o in e)if(e.hasOwnProperty(o)){var a=e[o],n=this.config[o];if("function"==typeof a||"object"==typeof a&&null===a)continue;"string"==typeof a?i(n)&&(this.config[o]=a):"number"==typeof a?(i(n)||isNaN(n))&&(this.config[o]=a):"boolean"==typeof a&&"boolean"!=typeof n&&(this.config[o]=a)}-1===["photo","video","audio"].indexOf(this.config.mode)&&(this.config.mode=e.mode);-1===["user","environment"].indexOf(this.config.facing_mode)&&(this.config.facing_mode=e.facing_mode);-1===["jpeg","png","webp"].indexOf(this.config.photo_format)&&(this.config.photo_format=e.photo_format);-1===["webm","mp4"].indexOf(this.config.video_format)&&(this.config.video_format=e.video_format);-1===["webm","mp4","ogg","wav"].indexOf(this.config.audio_format)&&(this.config.audio_format=e.audio_format),this.config.photo_quality=Math.max(.1,Math.min(1,this.config.photo_quality)),this.config.countdown_duration=Math.max(1,Math.min(10,this.config.countdown_duration)),this.config.max_duration=Math.max(1,this.config.max_duration),this.config.controls_auto_hide_duration=Math.max(0,this.config.controls_auto_hide_duration)},i.prototype.build_interface=function(){var e="",t=this.config.mode,i=this.config.auto_start,o=this.config.countdown_enabled;this.config.controls_auto_hide,this.config.controls_auto_hide_duration;if(e+='<div class="mc-wrapper mc-mode-'+t+'" role="region" aria-label="Media capture interface">
1',e+='<div class="mc-sr-announcer" role="status" aria-live="polite" aria-atomic="true" style="position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden;"></div>',!i){e+='<div class="mc-start">',e+='<div class="mc-start-inner">',e+='<div class="mc-start-icon">',e+="audio"===t?this.config.icon_mic:this.config.icon_camera,e+="</div>",e+="audio"===t?'<p class="mc-start-text">'+this.esc_html(this.config.label_start_microphone)+"</p>":'<p class="mc-start-text">'+this.esc_html(this.config.label_start_camera)+"</p>",e+="</div>",e+="</div>"}e+='<div class="mc-error" role="alert" aria-live="assertive" style="display: none;">',e+='<div class="mc-error-inner">',e+='<div class="mc-error-icon">',e+=this.config.icon_error,e+="</div>",e+="video"===t?'<p class="mc-error-text">'+this.esc_html(this.config.label_error_camera_microphone)+"</p>":"audio"===t?'<p class="mc-error-text">'+this.esc_html(this.config.label_error_microphone)+"</p>":'<p class="mc-error-text">'+this.esc_html(this.config.label_error_camera)+"</p>",e+="</div>",e+="</div>";if(e+='<div class="mc-capture"'+(i?"":' style="display: none;"')+">",e+="audio"===t?'<audio class="mc-audio" style="display: none;" aria-label="Audio recording"></audio>':'<video class="mc-video" autoplay playsinline muted aria-label="Camera preview"></video>',"photo"===t&&(e+='<canvas class="mc-canvas"></canvas>'),"photo"===t&&this.config.qr_scan_enabled&&this.config.qr_scan_overlay_enabled&&(e+='<div class="mc-qr-overlay" aria-hidden="true">',e+='<div class="mc-qr-finder">',e+='<span class="mc-qr-corner mc-qr-corner-tl"></span>',e+='<span class="mc-qr-corner mc-qr-corner-tr"></span>',e+='<span class="mc-qr-corner mc-qr-corner-bl"></span>',e+='<span class="mc-qr-corner mc-qr-corner-br"></span>',e+="</div>",e+="</div>"),"photo"===t&&this.config.qr_scan_enabled&&(e+='<div class="mc-qr-sr" role="status" aria-live="polite" aria-atomic="true" style="position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden;"></div>'),o&&(e+='<div class="mc-countdown" style="display: none;">',e+='<span class="mc-countdown-number"></span>',e+='<span class="mc-countdown-sr" role="status" aria-live="assertive" aria-atomic="true"></span>',e+="</div>"),e+='<div class="mc-capture-controls">',e+='<div class="mc-capture-controls-left">',"photo"===t)e+='<button type="button" class="mc-btn mc-capture-btn" aria-label="'+this.esc_attr(this.config.label_capture_photo)+'" title="'+this.esc_attr(this.config.label_capture_photo)+'">',e+=this.config.icon_camera,e+="</button>";else if("video"===t){if(e+='<button type="button" class="mc-btn mc-record-btn" aria-label="'+this.esc_attr(this.config.label_start_recording)+'" title="'+this.esc_attr(this.config.label_start_recording)+'">',e+=this.config.icon_record,e+="</button>",e+='<button type="button" class="mc-btn mc-pause-btn" style="display: none;" aria-label="'+this.esc_attr(this.config.label_pause)+'" title="'+this.esc_attr(this.config.label_pause)+'">',e+=this.config.icon_pause,e+="</button>",e+='<div class="mc-mic-indicator" tabindex="0" role="button" aria-label="'+this.esc_attr(this.config.label_mic_active)+'" title="'+this.esc_attr(this.config.label_mic_active)+'">',e+='<div class="mc-mic-icon">',e+=this.config.icon_mic,e+="</div>",e+='<div class="mc-mic-bar">',e+='<div class="mc-mic-bar-track">',e+='<div class="mc-mic-bar-fill"></div>',e+="</div>",e+="</div>",e+="</div>",e+='<div class="mc-timer" role="timer" aria-live="off" style="display: none;">',e+='<span class="mc-timer-elapsed">00:00</span>',(s=this.config.max_duration)&&s<1/0){var a=Math.floor(s/60),n=s%60;e+='<span class="mc-timer-separator"> / </span>',e+='<span class="mc-timer-remaining">'+(this.pad_zero(a)+":"+this.pad_zero(n))+"</span>"}e+="</div>"}else if("audio"===t){var s;if(e+='<button type="button" class="mc-btn mc-record-btn" aria-label="'+this.esc_attr(this.config.label_start_recording)+'" title="'+this.esc_attr(this.config.label_start_recording)+'">',e+=this.config.icon_record,e+="</button>",e+='<button type="button" class="mc-btn mc-pause-btn" style="display: none;" aria-label="'+this.esc_attr(this.config.label_pause)+'" title="'+this.esc_attr(this.config.label_pause)+'">',e+=this.config.icon_pause,e+="</button>",e+='<div class="mc-mic-indicator" tabindex="0" role="button" aria-label="'+this.esc_attr(this.config.label_mic_active)+'" title="'+this.esc_attr(this.config.label_mic_active)+'">',e+='<div class="mc-mic-icon">',e+=this.config.icon_mic,e+="</div>",e+='<div class="mc-mic-bar">',e+='<div class="mc-mic-bar-track">',e+='<div class="mc-mic-bar-fill"></div>',e+="</div>",e+="</div>",e+="</div>",e+='<div class="mc-timer" role="timer" aria-live="off" style="display: none;">',e+='<span class="mc-timer-elapsed">00:00</span>',(s=this.config.max_duration)&&s<1/0){var r=Math.floor(s/60),c=s%60;e+='<span class="mc-timer-separator"> / </span>',e+='<span class="mc-timer-remaining">'+(this.pad_zero(r)+":"+this.pad_zero(c))+"</span>"}e+="</div>"}if(e+="</div>
1",e+='<div class="mc-capture-controls-right">',"audio"!==t&&(e+='<button type="button" class="mc-btn mc-flip-btn" style="display: none;" aria-label="'+this.esc_attr(this.config.label_flip_camera)+'" title="'+this.esc_attr(this.config.label_flip_camera)+'">',e+=this.config.icon_flip_camera,e+="</button>"),e+='<button type="button" class="mc-btn mc-cancel-btn" style="display: none;" aria-label="'+this.esc_attr(this.config.label_cancel_retake)+'" title="'+this.esc_attr(this.config.label_cancel_retake)+'">',e+=this.config.icon_close,e+="</button>",e+='<button type="button" class="mc-btn mc-settings-btn" aria-label="'+this.esc_attr(this.config.label_settings)+'" title="'+this.esc_attr(this.config.label_settings)+'" aria-expanded="false">',e+=this.config.icon_settings,e+="</button>",e+="</div>",e+="</div>","video"===t||"audio"===t){e+='<div class="mc-result-controls" style="display: none;">',e+='<div class="mc-result-controls-left">',e+='<button type="button" class="mc-btn mc-play-btn" aria-label="'+this.esc_attr(this.config.label_play)+'" title="'+this.esc_attr(this.config.label_play)+'">',e+=this.config.icon_play,e+="</button>",e+='<div class="mc-volume-indicator" tabindex="0" role="slider" aria-label="'+this.esc_attr(this.config.label_volume)+'" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" title="'+this.esc_attr(this.config.label_volume)+'">',e+='<div class="mc-volume-icon">',e+=this.config.icon_volume,e+="</div>",e+='<div class="mc-volume-bar">',e+='<div class="mc-volume-fill"></div>',e+='<input type="range" class="mc-volume-slider" min="0" max="100" value="100" tabindex="-1">',e+="</div>",e+="</div>",e+='<div class="mc-time" role="status" aria-live="polite"><span class="mc-time-current">0:00</span> / <span class="mc-time-duration">0:00</span></div>',e+="</div>",e+='<div class="mc-result-controls-center">';var l=this.config.label_progress;e+='<div class="mc-progress" tabindex="0" role="slider" aria-label="'+this.esc_attr(l)+'" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" title="'+this.esc_attr(l)+'"><div class="mc-progress-track"><div class="mc-progress-fill"></div></div></div>',e+="</div>",e+='<div class="mc-result-controls-right">';var d=this.config.label_retake;e+='<button type="button" class="mc-btn mc-retake-btn" aria-label="'+this.esc_attr(d)+'" title="'+this.esc_attr(d)+'">',e+=this.config.icon_retake,e+="</button>",e+='<button type="button" class="mc-btn mc-settings-btn" aria-label="'+this.esc_attr(this.config.label_settings)+'" title="'+this.esc_attr(this.config.label_settings)+'" aria-expanded="false">',e+=this.config.icon_settings,e+="</button>",e+="</div>",e+="</div>"}"photo"===t&&(e+='<div class="mc-result" style="display: none;">',e+='<img class="mc-photo" src="" alt="Captured Photo">',e+='<div class="mc-flash"></div>',e+='<div class="mc-result-controls">',e+='<div class="mc-result-controls-left">',e+='<button type="button" class="mc-btn mc-retake-btn" aria-label="'+this.esc_attr(this.config.label_retake)+'" title="'+this.esc_attr(this.config.label_retake)+'">',e+=this.config.icon_retake,e+="</button>",e+="</div>",e+='<div class="mc-result-controls-center">',e+="</div>",e+='<div class="mc-result-controls-right">',e+='<button type="button" class="mc-btn mc-settings-btn" aria-label="'+this.esc_attr(this.config.label_settings)+'" title="'+this.esc_attr(this.config.label_settings)+'" aria-expanded="false">',e+=this.config.icon_settings,e+="</button>",e+="</div>",e+="</div>",e+="</div>"),e+="</div>";Date.now();e+='<div class="mc-settings" role="menu" style="display: none;">',e+='<div class="mc-settings-menu mc-settings-menu-main" data-menu="main">',"photo"!==t&&"video"!==t||(e+='<button type="button" class="mc-settings-menu-item" role="menuitem" data-action="video-input">',e+='<span class="mc-settings-menu-icon">'+this.config.icon_source_video+"</span>",e+='<span class="mc-settings-menu-label">'+this.esc_html(this.config.label_settings_video_input)+"</span>",e+='<span class="mc-settings-menu-arrow">'+this.config.icon_chevron_right+"</span>",e+="</button>"),"video"!==t&&"audio"!==t||(e+='<button type="button" class="mc-settings-menu-item" role="menuitem" data-action="audio-input">',e+='<span class="mc-settings-menu-icon">'+this.config.icon_source_audio+"</span>",e+='<span class="mc-settings-menu-label">'+this.esc_html(this.config.label_settings_audio_input)+"</span>",e+='<span class="mc-settings-menu-arrow">'+this.config.icon_chevron_right+"</span>",e+="</button>"),this.config.settings_download_enabled&&(e+='<button type="button" class="mc-settings-menu-item mc-download-item" role="menuitem" data-action="download" disabled>',e+='<span class="mc-settings-menu-icon">'+this.config.icon_download+"</span>",e+='<span class="mc-settings-menu-label">'+this.esc_html(this.config.label_settings_download)+"</span>",e+="</button>"),e+="</div>","photo"!==t&&"video"!==t||(e+='<div class="mc-settings-menu mc-settings-menu-sub" data-menu="video-input" style="display: none;">',e+='<button type="button" class="mc-settings-menu-item mc-settings-back-btn" role="menuitem" data-action="back">',e+='<span class="mc-settings-menu-label">'+this.esc_html(this.config.label_settings_back)+"</span>",e+="</button>",e+='<div class="mc-settings-menu-devices mc-video-devices">',e+="\x3c!-- Video devices will be populated dynamically --\x3e",e+="</div>",e+="</div>"),"video"!==t&&"audio"!==t||(e+='<div class="mc-settings-menu mc-settings-menu-sub" data-menu="audio-input" style="display: none;">',e+='<button type="button" class="mc-settings-menu-item mc-settings-back-btn" role="menuitem" data-action="back">',e+='<span class="mc-settings-menu-label">'+this.esc_html(this.config.label_settings_back)+"</span>",e+="</button>",e+='<div class="mc-settings-menu-devices mc-audio-devices">',e+="\x3c!-- Audio devices will be populated dynamically --\x3e",e+="</div>",e+="</div>"),e+="</div>",e+="</div>",this.element.innerHTML=e},i.prototype.esc_html=function(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML},i.prototype.esc_attr=function(e){return e.replace(/"/g,"&quot;").replace(/'/g,"&#39;")},i.prototype.pad_zero=function(e){return e<10?"0"+e:e},i.prototype.format_time=function(e){if(isNaN(e))return"0:00";var t=Math.floor(e/60),i=Math.floor(e%60);return t+":"+this.pad_zero(i)},i.prototype.announce_to_screen_reader=function(e){var t=this.element.querySelector(".mc-sr-announcer");t&&(t.textContent=e)},i.prototype.get_supported_audio_mime_type=function(e){var t={webm:["audio/webm;codecs=opus","audio/webm"],mp4:["audio/mp4","audio/mp4;codecs=mp4a.40.2"],ogg:["audio/ogg;
1codecs=opus","audio/ogg"],wav:["audio/wav"]};if(e&&t[e])for(var i=0;i<t[e].length;i++)if(MediaRecorder.isTypeSupported(t[e][i]))return t[e][i];for(var o=["webm","mp4","ogg","wav"],a=0;a<o.length;a++){var n=o[a];if(n!==e&&t[n])for(var s=0;s<t[n].length;s++)if(MediaRecorder.isTypeSupported(t[n][s]))return t[n][s]}return"audio/webm"},i.prototype.get_supported_video_mime_type=function(e){var t={webm:["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm"],mp4:["video/mp4;codecs=h264,aac","video/mp4"]};if(e&&t[e])for(var i=0;i<t[e].length;i++)if(MediaRecorder.isTypeSupported(t[e][i]))return t[e][i];for(var o=["webm","mp4"],a=0;a<o.length;a++){var n=o[a];if(n!==e&&t[n])for(var s=0;s<t[n].length;s++)if(MediaRecorder.isTypeSupported(t[n][s]))return t[n][s]}return"video/webm;codecs=vp8,opus"},i.prototype.get_supported_photo_mime_type=function(e){return e&&-1!==["jpeg","png","webp"].indexOf(e)?"image/"+e:"image/jpeg"},i.prototype.init_functionality=function(){var t=this;t.log("[init_functionality] Starting...");var i=this.element,o=this.config.mode,a=this.config.auto_start;t.log("[init_functionality] mode:",o),t.log("[init_functionality] auto_start:",a);var n=this.config.max_duration,s=this.config.countdown_enabled,r=this.config.countdown_duration,c=this.config.countdown_sound_enabled,l=this.config.facing_mode,d=this.video_width,u=this.video_height,_=(this.config.photo_quality,this.config.photo_format,this.config.controls_auto_hide),p=this.config.controls_auto_hide_duration,m=i.querySelector(".mc-wrapper"),f=function(){if(m){var e=m.offsetWidth;m.style.setProperty("--mc-wrapper-width",e+"px")}};if(f(),"undefined"!=typeof ResizeObserver&&m){var h=new ResizeObserver(function(){f()});h.observe(m),t.resize_observer=h}var v=".mc-video",g=".mc-canvas",b=".mc-photo",y=".mc-countdown",k=".mc-start",w=".mc-capture",q=".mc-error",S=".mc-settings",L=".mc-settings-btn",M=".mc-capture-controls",A=".mc-result-controls",x=".mc-result-controls",E=".mc-progress",z=".mc-timer",C=".mc-time-current",T=".mc-time-duration",R=".mc-record-btn",D=".mc-pause-btn",H=".mc-cancel-btn",I=null,O=[],B=!1,P=null,V=null,U=null,Z=0,j=0,N=0,F=0,W=0,Q=i.querySelector(v),G=(i.querySelector(g),i.querySelector(b),i.querySelector(y)),X=i.querySelector(k),J=i.querySelector(w),K=(i.querySelector(q),i.querySelector(S)),Y=i.querySelector(L),$=i.querySelector(M),ee=i.querySelector(A),te=i.querySelector(x),ie=null;if(c)try{ie=new(e.AudioContext||e.webkitAudioContext)}catch(e){}this.is_mobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var oe=document.createElement("video"),ae=!0;try{oe.volume=.5,1===oe.volume&&(ae=!1)}catch(e){ae=!1}if(!ae){var ne=i.querySelector(".mc-volume-indicator");ne&&(ne.style.display="none")}this.enumerate_devices(i,o);var se=function(){if(ie&&"suspended"===ie.state&&ie.resume(),t.config.photo_sound_enabled&&t.config.photo_sound_url&&!t.photo_sound_preloaded)try{var e=new Audio(t.config.photo_sound_url);e.volume=.01,e.play().then(function(){e.pause(),t.photo_sound_preloaded=!0}).catch(function(){})}catch(e){}if(t.config.countdown_sound_enabled&&t.config.countdown_sound_url&&!t.countdown_sound_preloaded)try{var a=new Audio(t.config.countdown_sound_url);a.volume=.01,a.play().then(function(){a.pause(),t.countdown_sound_preloaded=!0}).catch(function(){})}catch(e){}t.stream_start().then(function(e){"video"!==o&&"audio"!==o||t.start_mic_monitoring(i,e,function(e,t){P=e,V=t}),_&&"audio"!==o&&"function"==typeof me&&me()}).catch(function(e){})};if(X){X.addEventListener("click",function(){se()}),X.addEventListener("keydown",function(e){" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),se())}),X.setAttribute("tabindex","0"),X.setAttribute("role","button");var re="audio"===o?t.config.label_start_microphone:t.config.label_start_camera;X.setAttribute("aria-label",re)}a&&se(),i.addEventListener("click",function(e){var o=e.target.closest(".mc-settings-btn");if(o){if(t.log("[settings click] Button clicked:",o),t.log("[settings click] Button disabled:",o.disabled),t.log("[settings click] is_recording:",t.is_recording),e.preventDefault(),t.is_recording)return void t.log("[settings click] Blocked: is_recording = true");var a=Date.now();if(a-W<300&&W>0)return void t.log("[settings click] Blocked: double-click prevention");W=a;var n="none"!==K.style.display&&""!==K.style.display;t.log("[settings click] Settings panel is_visible:",n),n?(t.log("[settings click] Closing settings"),t.settings_close_internal(i,K,o)):(t.log("[settings click] Opening settings"),t.settings_open_internal(i,K,o))}}),i.addEventListener("keydown",function(e){var t=e.target.closest(".mc-settings-btn");!t||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),t.click())}),i.addEventListener("keydown",function(e){"Escape"===e.key&&("none"!==K.style.display&&""!==K.style.display&&(K.querySelector('.mc-settings-menu-sub[style*="display: block"]')?t.hide_settings_submenu(K):t.settings_close_internal(i,K,Y)))});document.addEventListener("click",function(e){"none"!==K.style.display&&""!==K.style.display&&(e.target.closest(".mc-settings")||e.target.closest(".mc-settings-btn")||t.close_settings(i))});var ce=function(){"none"!==K.style.display&&""!==K.style.display&&t.position_settings_panel(K,Y)};function le(o,a){var n=Q||t.audio_element;if(n){var s=!n.paused;a.focus(),s&&n.pause(),r(o),document.addEventListener("mousemove",c),document.addEventListener("touchmove",c),document.addEventListener("mouseup",l,{once:!0}),document.addEventListener("touchend",l,{once:!0}),o.preventDefault()}function r(o){var s,r=a.getBoundingClientRect(),c=e.getComputedStyle(a),l=parseFloat(c.paddingLeft);0===o.type.indexOf("touch")?s=(o.touches[0]||o.changedTouches[0]).clientX:s=o.clientX;var d,u=s-r.left,_=r.width-2*l,p=u-l,m=Math.max(0,Math.min(1,p/_)),f=(d=parseFloat(n.getAttribute("data-actual-duration")))&&d>0?d:isFinite(n.duration)&&n.duration>0?n.duration:n.buffered.length>0?n.buffered.end(n.buffered.length-1):0;f>0&&(n.currentTime=m*f),a.style.setProperty("--mc-progress-percent",100*m+"%");var h=t.format_time(n.currentTime),v=i.querySelector(".mc-time-current");v&&(v.textContent=h)}function c(e){r(e)}function l(){document.removeEventListener("mousemove",c),document.removeEventListener("touchmove",c),document.removeEventListener("mouseup",l),document.removeEventListener("touchend",l),s&&n.play()}}if(e.addEventListener("scroll",ce,!0),e.addEventListener("resize",ce),K.addEventListener("click",function(e){var a=e.target.closest(".mc-settings-menu-item");if(a){e.preventDefault(),e.stopPropagation();var n=a.getAttribute("data-action"),s=a.getAttribute("data-device-id"),r=a.getAttribute("data-device-type");if("back"===n){t.hide_settings_submenu(K);var c=K.querySelector('[data-menu="main"] .mc-settings-menu-item');c&&c.focus()}else if("video-input"===n||"audio-input"===n){t.show_settings_submenu(K,n);var _=K.querySelector('[data-menu="'+n+'"] .mc-settings-menu-item');_&&_.focus()}else"download"===n?(t.download(),t.settings_close_internal(i,K,Y)):s&&r&&(t.select_device(i,Q,l,d,u,o,r,s,P,V),t.settings_close_internal(i,K,Y))}}),K.addEventListener("keydown",function(e){var i=e.target.closest(".mc-settings-menu-item");if(i){var o=K.querySelector('.mc-settings-menu[style*="display: block"], .mc-settings-menu:not([style*="display: none"])');if(o){var a=Array.from(o.querySelectorAll(".mc-settings-menu-item:not([disabled])")),n=a.indexOf(i);if("ArrowDown"===e.key)e.preventDefault(),a[(n+1)%a.length].focus();else if("ArrowUp"===e.key){e.preventDefault(),a[(n-1+a.length)%a.length].focus()}else if(" "===e.key||"Enter"===e.key||"ArrowRight"===e.key)e.preventDefault(),i.click();else if("ArrowLeft"===e.key){e.preventDefault(),K.querySelector('.mc-settings-menu-sub[style*="display: block"]')&&t.hide_settings_submenu(K)}}}}),i.addEventListener("click",function(e){if(e.target.closest(".mc-capture-btn")){var i=Date.now();if(i-F<300&&F>0)return;F=i,s?t.countdown(G,r,c,800,ie,t.config.countdown_sound_url,function(){t.photo_capture().catch(function(e){})}):t.photo_capture().catch(function(e){})}}),e._mc_record_listener_count||(e._mc_record_listener_count=0),e._mc_record_listener_count++,t.log("[INIT] Adding record button listener #"+e._mc_record_listener_count),i.addEventListener("click",function(a){var l=a.target.closest(".mc-record-btn");if(l){if(t.log("[record_btn click] Button clicked (listener #"+e._mc_record_listener_count+")"),t.log("[record_btn click] self.stream:",t.stream),t.log("[record_btn click] self.is_recording:",t.is_recording),!t.stream)return void t.log("[record_btn click] No stream available, returning");if(t.is_recording){if(Date.now()-Z<300)return;if(!t.media_recorder||"inactive"===t.media_recorder.state)return;if("audio"===o){var d=i.querySelector(".mc-audio");t.audio_stop_internal(i,d,function(){t.timer_interval=null;var e=i.querySelector(".mc-pause-btn");e&&(e.style.display="none",e.classList.remove("mc-paused"),e.innerHTML=t.config.icon_pause,e.setAttribute("aria-label",t.config.label_pause),e.setAttribute("title",t.config.label_pause));var o=i.querySelector(".mc-timer");o&&o.classList.remove("mc-paused");var a=i.querySelector(".mc-cancel-btn");a&&(a.style.display="none"),t.blob_backup=null,t.filename_backup=null})}else"video"===o&&t.video_stop_internal(i,Q,function(){t.timer_interval=null;var e=i.querySelector(".mc-pause-btn");e&&(e.style.display="none",e.classList.remove("mc-paused"),e.innerHTML=t.config.icon_pause,e.setAttribute("aria-label",t.config.label_pause),e.setAttribute("title",t.config.label_pause));var o=i.querySelector(".mc-timer");o&&o.classList.remove("mc-paused");var a=i.querySelector(".mc-cancel-btn");a&&(a.style.display="none"),t.blob_backup=null,t.filename_backup=null,t.video_url_backup=null,U&&(cancelAnimationFrame(U),U=null),P&&"closed"!==P.state&&P.close(),P=null,V=null})}else if(t.log("[record_btn click] Starting recording"),Z=Date.now(),"audio"===o)s?t.countdown(G,r,c,800,ie,t.config.countdown_sound_url,function(){t.audio_start_internal(i,t.stream,n)}):t.audio_start_internal(i,t.stream,n);else if("video"===o)if(s)t.countdown(G,r,c,800,ie,t.config.countdown_sound_url,function(){O=[],B=!0,t.recorded_chunks=O,t.is_recording=B,t.start_recording(t.stream,i,n,function(e,i){I=e,t.media_recorder=e,t.timer_interval=i},function(e){O.push(e)},"video",t.config.video_format),l.innerHTML=t.config.icon_stop,l.setAttribute("aria-label",t.config.label_stop),l.setAttribute("title",t.config.label_stop),l.classList.add("mc-recording");var e=i.querySelector(".mc-pause-btn");e&&(e.style.display="");var o=i.querySelector(".mc-flip-btn");o&&(o.style.display="none"),i.querySelectorAll(".mc-settings-btn").forEach(function(e){e.disabled=!0}
1),t.dispatch_ui_state("flip","off"),t.dispatch_ui_state("start","off"),t.dispatch_ui_state("stop","on"),t.dispatch_ui_state("pause","on"),t.dispatch_ui_state("settings-open","off"),t.dispatch_ui_state("settings-close","off"),t.dispatch_event("video-start"),t.config.on_video_started&&t.config.on_video_started()});else{O=[],B=!0,t.recorded_chunks=O,t.is_recording=B,t.start_recording(t.stream,i,n,function(e,i){I=e,t.media_recorder=e,t.timer_interval=i},function(e){O.push(e)},"video",t.config.video_format),l.innerHTML=t.config.icon_stop,l.setAttribute("aria-label",t.config.label_stop),l.setAttribute("title",t.config.label_stop),l.classList.add("mc-recording");var u=i.querySelector(".mc-pause-btn");u&&(u.style.display="");var _=i.querySelector(".mc-flip-btn");_&&(_.style.display="none"),i.querySelectorAll(".mc-settings-btn").forEach(function(e){e.disabled=!0}),t.dispatch_ui_state("flip","off"),t.dispatch_ui_state("start","off"),t.dispatch_ui_state("stop","on"),t.dispatch_ui_state("pause","on"),t.dispatch_ui_state("settings-open","off"),t.dispatch_ui_state("settings-close","off"),t.dispatch_event("video-start"),t.config.on_video_started&&t.config.on_video_started()}}}),i.addEventListener("click",function(e){if(e.target.closest(".mc-pause-btn")){if(!t.media_recorder)return;var a=Date.now();if(a-N<300)return;N=a,"recording"===t.media_recorder.state?"audio"===o?t.audio_pause_internal(i):"video"===o&&t.video_pause_internal(i):"paused"===t.media_recorder.state&&("audio"===o?t.audio_resume_internal(i):"video"===o&&t.video_resume_internal(i))}}),i.addEventListener("click",function(e){var i=e.target.closest(".mc-mic-indicator");if(i){if(!t.stream)return;var o=i.querySelector(".mc-mic-icon"),a=t.stream.getAudioTracks();if(a.length>0){var n=!a[0].enabled;a.forEach(function(e){e.enabled=n}),n?(o.innerHTML=t.config.icon_mic,i.setAttribute("aria-label",t.config.label_mic_active),i.setAttribute("title",t.config.label_mic_active),i.classList.remove("mc-mic-muted")):(o.innerHTML=t.config.icon_mic_muted,i.setAttribute("aria-label",t.config.label_mic_muted),i.setAttribute("title",t.config.label_mic_muted),i.classList.add("mc-mic-muted"))}}}),i.addEventListener("keydown",function(e){var t=e.target.closest(".mc-mic-indicator");!t||"M"!==e.key&&"m"!==e.key&&" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),t.click())}),i.addEventListener("keydown",function(e){var t=e.target.closest(".mc-capture-btn, .mc-record-btn, .mc-pause-btn, .mc-play-btn, .mc-retake-btn, .mc-cancel-btn, .mc-flip-btn");!t||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),t.click())}),i.addEventListener("click",function(e){var i=e.target.closest(".mc-play-btn");if(i){var o=Date.now();if(o-j<300)return;j=o;var a=Q||t.audio_element;a&&a.paused?(a.play(),i.innerHTML=t.config.icon_pause,i.setAttribute("aria-label",t.config.label_pause)):a&&(a.pause(),i.innerHTML=t.config.icon_play,i.setAttribute("aria-label",t.config.label_play))}}),Q&&(Q.addEventListener("timeupdate",function(){var e=parseFloat(Q.getAttribute("data-actual-duration")),o=0;if(e&&e>0?o=e:!isNaN(Q.duration)&&isFinite(Q.duration)?o=Q.duration:Q.buffered.length>0&&(o=Q.buffered.end(Q.buffered.length-1)),o>0){var a=t.format_time(Q.currentTime),n=t.format_time(o),s=i.querySelector(C),r=i.querySelector(T);s&&(s.textContent=a),r&&(r.textContent=n);var c=Math.min(100,Q.currentTime/o*100),l=i.querySelector(E);l&&(l.style.setProperty("--mc-progress-percent",c+"%"),l.setAttribute("aria-valuenow",Math.round(c).toString()))}}),Q.addEventListener("durationchange",function(){if(!isNaN(Q.duration)&&isFinite(Q.duration)){var e=t.format_time(Q.duration),o=i.querySelector(".mc-time-duration");o&&(o.textContent=e)}}),Q.addEventListener("loadedmetadata",function(){if(!isNaN(Q.duration)&&isFinite(Q.duration)){var e=t.format_time(Q.duration),o=i.querySelector(".mc-time-duration");o&&(o.textContent=e)}}),Q.addEventListener("ended",function(){var e=i.querySelector(".mc-play-btn");e&&(e.innerHTML=t.config.icon_play,e.setAttribute("aria-label",t.config.label_play)),t.dispatch_ui_state("playback-play","on"),t.dispatch_ui_state("playback-pause","off"),t.dispatch_ui_state("playback-stop","off")}),Q.addEventListener("play",function(){"video"===t.config.mode&&!t.is_recording&&t.blob&&(t.dispatch_ui_state("playback-play","off"),t.dispatch_ui_state("playback-pause","on"))}),Q.addEventListener("pause",function(){"video"!==t.config.mode||t.is_recording||(t.dispatch_ui_state("playback-play","on"),t.dispatch_ui_state("playback-pause","off"))})),t.audio_element&&(t.audio_element.addEventListener("timeupdate",function(){var e=parseFloat(t.audio_element.getAttribute("data-actual-duration")),o=0;if(e&&e>0?o=e:!isNaN(t.audio_element.duration)&&isFinite(t.audio_element.duration)?o=t.audio_element.duration:t.audio_element.buffered.length>0&&(o=t.audio_element.buffered.end(t.audio_element.buffered.length-1)),o>0){var a=t.format_time(t.audio_element.currentTime),n=t.format_time(o),s=i.querySelector(C),r=i.querySelector(T);s&&(s.textContent=a),r&&(r.textContent=n);var c=Math.min(100,t.audio_element.currentTime/o*100),l=i.querySelector(E);l&&(l.style.setProperty("--mc-progress-percent",c+"%"),l.setAttribute("aria-valuenow",Math.round(c).toString()))}}),t.audio_element.addEventListener("durationchange",function(){if(!isNaN(t.audio_element.duration)&&isFinite(t.audio_element.duration)){var e=t.format_time(t.audio_element.duration),o=i.querySelector(".mc-time-duration");o&&(o.textContent=e)}}),t.audio_element.addEventListener("loadedmetadata",function(){if(!isNaN(t.audio_element.duration)&&isFinite(t.audio_element.duration)){var e=t.format_time(t.audio_element.duration),o=i.querySelector(".mc-time-duration");o&&(o.textContent=e)}}),t.audio_element.addEventListener("ended",function(){var e=i.querySelector(".mc-play-btn");e&&(e.innerHTML=t.config.icon_play,e.setAttribute("aria-label",t.config.label_play)),t.dis
1patch_ui_state("playback-play","on"),t.dispatch_ui_state("playback-pause","off"),t.dispatch_ui_state("playback-stop","off")}),t.audio_element.addEventListener("play",function(){"audio"===t.config.mode&&!t.is_recording&&t.blob&&(t.dispatch_ui_state("playback-play","off"),t.dispatch_ui_state("playback-pause","on"))}),t.audio_element.addEventListener("pause",function(){"audio"!==t.config.mode||t.is_recording||(t.dispatch_ui_state("playback-play","on"),t.dispatch_ui_state("playback-pause","off"))})),i.addEventListener("mousedown",function(e){var t=e.target.closest(".mc-progress");t&&le(e,t)}),i.addEventListener("touchstart",function(e){var t=e.target.closest(".mc-progress");t&&le(e,t)}),i.addEventListener("keydown",function(e){var o=e.target.closest(".mc-progress");if(o){var a=Q||t.audio_element;if(!a)return;var n=parseFloat(a.getAttribute("data-actual-duration")),s=0;if(n&&n>0?s=n:isFinite(a.duration)&&a.duration>0?s=a.duration:a.buffered.length>0&&(s=a.buffered.end(a.buffered.length-1)),0===s)return;var r=!1;if(" "===e.key||"Enter"===e.key){e.preventDefault();var c=i.querySelector(".mc-play-btn");return void(c&&c.click())}if("ArrowLeft"===e.key||"ArrowDown"===e.key){var l=.05*s;a.currentTime=Math.max(0,a.currentTime-l),r=!0}else if("ArrowRight"===e.key||"ArrowUp"===e.key){l=.05*s;a.currentTime=Math.min(s,a.currentTime+l),r=!0}else"Home"===e.key?(a.currentTime=0,r=!0):"End"===e.key&&(a.currentTime=s,r=!0);if(r){e.preventDefault();var d=Math.min(100,a.currentTime/s*100);o&&(o.style.setProperty("--mc-progress-percent",d+"%"),o.setAttribute("aria-valuenow",Math.round(d).toString()));var u=t.format_time(a.currentTime),_=i.querySelector(".mc-time-current");_&&(_.textContent=u)}}}),i.addEventListener("click",function(e){var o=e.target.closest(".mc-volume-icon");if(o){var a=Q||t.audio_element;if(!a)return;var n=o.closest(".mc-volume-indicator"),s=i.querySelector(".mc-volume-slider"),r=i.querySelector(".mc-volume-fill");if(n&&n.focus(),a.muted||0===a.volume){a.muted=!1;var c=s.getAttribute("data-last-volume")||100;c=parseInt(c,10),a.volume=c/100,s.value=c,r&&(r.style.width=c+"%"),n&&n.setAttribute("aria-valuenow",c.toString()),o.innerHTML=c<50?t.config.icon_volume_low:t.config.icon_volume,n&&(n.setAttribute("aria-label",t.config.label_volume),n.setAttribute("title",t.config.label_volume))}else s.setAttribute("data-last-volume",s.value),a.muted=!0,a.volume=0,s.value=0,r&&(r.style.width="0%"),n&&n.setAttribute("aria-valuenow","0"),o.innerHTML=t.config.icon_volume_muted,n&&(n.setAttribute("aria-label",t.config.label_volume_muted),n.setAttribute("title",t.config.label_volume_muted));n&&(a.muted?n.classList.add("mc-volume-muted"):n.classList.remove("mc-volume-muted")),e.stopPropagation()}}),i.addEventListener("mousedown",function(e){var t=e.target.closest(".mc-volume-bar");if(t){var i=t.closest(".mc-volume-indicator");i&&i.focus()}}),i.addEventListener("focus",function(e){var t=e.target.closest(".mc-volume-slider");if(t){var i=t.closest(".mc-volume-indicator");i&&i.focus()}},!0),i.addEventListener("click",function(e){var t=e.target.closest(".mc-volume-bar");if(t){var i=t.closest(".mc-volume-indicator");i&&(i.focus(),e.stopPropagation())}}),i.addEventListener("input",function(e){var o=e.target.closest(".mc-volume-slider");if(o){var a=Q||t.audio_element;if(!a)return;var n=parseInt(o.value,10),s=o.closest(".mc-volume-indicator"),r=i.querySelector(".mc-volume-fill"),c=i.querySelector(".mc-volume-icon");s&&s.focus(),r&&(r.style.width=n+"%"),a.volume=n/100,a.muted=0===n,s&&s.setAttribute("aria-valuenow",n.toString()),c&&(0===n?(c.innerHTML=t.config.icon_volume_muted,s&&(s.setAttribute("aria-label",t.config.label_volume_muted),s.setAttribute("title",t.config.label_volume_muted))):n<50?(c.innerHTML=t.config.icon_volume_low,s&&(s.setAttribute("aria-label",t.config.label_volume),s.setAttribute("title",t.config.label_volume))):(c.innerHTML=t.config.icon_volume,s&&(s.setAttribute("aria-label",t.config.label_volume),s.setAttribute("title",t.config.label_volume)))),s&&(a.muted?s.classList.add("mc-volume-muted"):s.classList.remove("mc-volume-muted"))}}),i.addEventListener("keydown",function(e){var t=e.target.closest(".mc-volume-indicator");if(t){var i=t.querySelector(".mc-volume-slider"),o=t.querySelector(".mc-volume-icon");if(!i)return;var a=parseInt(i.value,10),n=!1;if("M"===e.key||"m"===e.key)o&&o.click(),n=!0;else if("ArrowUp"===e.key||"ArrowRight"===e.key){var s=Math.min(100,a+5);i.value=s,i.dispatchEvent(new Event("input",{bubbles:!0})),n=!0}else if("ArrowDown"===e.key||"ArrowLeft"===e.key){s=Math.max(0,a-5);i.value=s,i.dispatchEvent(new Event("input",{bubbles:!0})),n=!0}n&&e.preventDefault()}}),i.addEventListener("click",function(e){if(e.target.closest(".mc-retake-btn")){var a=Date.now();if(a-F<300&&F>0)return;
1if(F=a,"photo"===o)t.photo_retake_internal(i);else if("audio"===o)t.audio_retake_internal(i);else{t.blob_backup=t.blob,t.filename_backup=t.filename,t.blob=null,t.filename=null,t.hide_download_option(i),t.video_url_backup=Q.src,B=!1,I=null,O=[],t.timer_interval&&(clearInterval(t.timer_interval),t.timer_interval=null),Q.pause(),Q.currentTime=0,Q.src="",Q.removeAttribute("data-actual-duration"),Q.muted=!0,Q.autoplay=!0;var s=i.querySelector(E);s&&s.style.setProperty("--mc-progress-percent","0%");var r=i.querySelector(C),c=i.querySelector(T);r&&(r.textContent="0:00"),c&&(c.textContent="0:00");var _=i.querySelector(".mc-play-btn");_&&(_.innerHTML=t.config.icon_play,_.setAttribute("aria-label",t.config.label_play)),ee&&(ee.style.display="none"),$&&($.style.display="");var p=i.querySelector(H),m=i.querySelector(D);p&&(p.style.display=""),m&&(m.style.display="none");var f=i.querySelector(z);f&&f.classList.remove("mc-paused");var h=i.querySelector(".mc-timer-elapsed");h&&(h.textContent="00:00");var v=i.querySelector(".mc-timer-remaining");if(v){var g=Math.floor(n/60),b=n%60;v.textContent=t.pad_zero(g)+":"+t.pad_zero(b)}K&&(K.style.display="none"),t.stream_start_internal(i,Q,l,d,u,o,t.selected_video_device,t.selected_audio_device,function(e){t.stream=e,"video"===o&&t.start_mic_monitoring(i,e,function(e,t){P=e,V=t})});var y=i.querySelector(R);if(y&&(y.innerHTML=t.config.icon_record,y.setAttribute("aria-label",t.config.label_start_recording),y.setAttribute("title",t.config.label_start_recording),y.classList.remove("mc-recording"),y.classList.remove("mc-paused")),t.has_multiple_cameras){var k=i.querySelector(".mc-flip-btn");k&&(k.style.display="")}y&&y.focus()}if("photo"===o){var w=i.querySelector(".mc-capture-btn");w&&w.focus()}}}),i.addEventListener("click",function(e){e.target.closest(".mc-cancel-btn")&&("photo"===o?t.photo_cancel_internal(i):"audio"===o?t.audio_cancel_internal(i):t.video_cancel_internal(i))}),i.addEventListener("click",function(e){if(e.target.closest(".mc-flip-btn")){if(!t.stream||!t.has_multiple_cameras)return;if("video"===o&&B&&I&&"recording"===I.state)return;t.stream_flip_internal(i,Q,o,function(e){t.stream=e,"video"===o&&t.start_mic_monitoring(i,e,function(e,t){P=e,V=t})})}}),_&&"audio"!==o){var de,ue=!1;function _e(){t.show_controls(),clearTimeout(de)}function pe(){ue&&(t.hide_controls(),clearTimeout(de))}J&&J.classList.add("mc-controls-autohide"),J&&J.classList.add("mc-controls-autohide");var me=function(){_e(),setTimeout(function(){ue=!0,J.matches(":hover")||pe()},p)};function fe(e){return!!e&&e.matches(":hover")}J&&J.addEventListener("mouseenter",function(){_e()}),J&&J.addEventListener("mouseenter",function(){_e()}),J&&J.addEventListener("mouseleave",function(){pe()}),$&&$.addEventListener("focusin",function(){_e()}),ee&&ee.addEventListener("focusin",function(){_e()}),te&&te.addEventListener("focusin",function(){_e()}),$&&$.addEventListener("focusout",function(){fe(J)||pe()}),ee&&ee.addEventListener("focusout",function(){fe(J)||pe()}),te&&te.addEventListener("focusout",function(){fe(result_container)||pe()}),a&&me()}},i.prototype.destroy=function(){this.resize_observer&&(this.resize_observer.disconnect(),this.resize_observer=null)},i.prototype.dispatch_event=function(e,t){var i=Object.assign({},t||{},{instance:this});this.log("Dispatching event: mc-"+e,t||"");var o=new CustomEvent("mc-"+e,{detail:i,bubbles:!0,cancelable:!0});this.element.dispatchEvent(o)},i.prototype.dispatch_ui_state=function(e,t){var i="ui-"+e+"-"+t,o="on_"+i.replace(/-/g,"_");this.log("Dispatching UI state: "+i),this.dispatch_event(i),this.config[o]&&(this.log("Executing callback: "+o),this.config[o]())},i.prototype.enumerate_devices=function(e,t){var i=this;i.log("Enumerating media devices for mode: "+t),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then(function(o){i.log("Found "+o.length+" total media devices");var a=e.querySelector(".mc-video-devices"),n=e.querySelector(".mc-audio-devices");if(a){a.innerHTML="";var s=1,r=o.filter(function(e){return"videoinput"===e.kind});i.log("Found "+r.length+" video input devices"),r.forEach(function(e){var t=e.label||"Camera "+s++,o=i.selected_video_device===e.deviceId||!i.selected_video_device&&2===s,n='<button type="button" class="mc-settings-menu-item'+(o?" mc-active":"")+'" role="menuitemradio" aria-checked="'+(o?"true":"false")+'" data-device-id="'+i.esc_attr(e.deviceId)+'" data-device-type="video">';n+='<span class="mc-settings-menu-label">'+i.esc_html(t)+"</span>",n+='<span class="mc-settings-menu-check">'+i.config.icon_checkmark+"</span>",n+="</button>",a.insertAdjacentHTML("beforeend",n)})}if(n&&("video"===t||"audio"===t)){n.innerHTML="";var c=1,l=o.filter(function(e){return"audioinput"===e.kind});i.log("Found "+l.length+" audio input devices"),l.forEach(function(e){var t=e.label||"Microphone "+c++,o=i.selected_audio_device===e.deviceId||!i.selected_audio_device&&2===c,a='<button type="button" class="mc-settings-menu-item'+(o?" mc-active":"")+'" role="menuitemradio" aria-checked="'+(o?"true":"false")+'" data-device-id="'+i.esc_attr(e.deviceId)+'" data-device-type="audio">';a+='<span class="mc-settings-menu-label">'+i.esc_html(t)+"</span>",a+='<span class="mc-settings-menu-check">'+i.config.icon_checkmark+"</span>",a+="</button>",n.insertAdjacentHTML("beforeend",a)})}}).catch(function(e){i.log("Error enumerating devices: "+e.message,"error")}):i.log("enumerateDevices not available","warn")},i.prototype.check_camera_flip_availability=function(e){var t=this;t.log("Checking camera flip availability"),navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then(function(i){var o=i.filter(function(e){return"videoinput"===e.kind});if(t.log("Camera flip check found "+o.length+" video devices"),o.length>=2){t.has_multiple_cameras=!0,t.log("Multiple cameras detected, showing flip button");var a=e.querySelector(".mc-flip-btn");a&&(a.style.display=""),t.dispatch_ui_state("flip","on"),t.log("Firing cameras-detected event with count: "+o.length),t.dispatch_event
1("cameras-detected",{count:o.length}),t.config.on_cameras_detected&&t.config.on_cameras_detected(o.length)}}).catch(function(e){}):t.log("enumerateDevices not available for camera flip check","warn")},i.prototype.start_mic_monitoring=function(t,i,o){var a=100;try{var n=new(e.AudioContext||e.webkitAudioContext),s=n.createAnalyser(),r=n.createMediaStreamSource(i);s.smoothingTimeConstant=.3,s.fftSize=256,r.connect(s);var c=new Uint8Array(s.frequencyBinCount),l=t.querySelector(".mc-mic-bar-fill");!function e(){s.getByteTimeDomainData(c);for(var t=0,i=0;i<c.length;i++){var o=(c[i]-128)/128;t+=o*o}var n=Math.sqrt(t/c.length),r=Math.min(300*n,a);l&&(l.style.width=r+"%"),requestAnimationFrame(e)}(),o&&o(n,s)}catch(e){}},i.prototype.slide_up=function(e,t){e&&(e.classList.contains("mc-position-above")||e.classList.contains("mc-position-below")?(e.style.transition="opacity "+t+"ms ease, transform "+t+"ms ease",e.style.opacity="0",e.style.transform="scale(0.95)",setTimeout(function(){e.style.display="none",e.style.opacity="",e.style.transform="",e.style.transition=""},t)):(e.style.overflow="hidden",e.style.transition="height "+t+"ms ease",e.style.height=e.scrollHeight+"px",e.offsetHeight,e.style.height="0",setTimeout(function(){e.style.display="none",e.style.height="",e.style.overflow="",e.style.transition=""},t)))},i.prototype.slide_down=function(e,t,i){if(e)if(e.classList.contains("mc-position-above")||e.classList.contains("mc-position-below"))e.style.display="block",e.style.opacity="0",e.style.transform="scale(0.95)",e.offsetHeight,e.style.transition="opacity "+t+"ms ease, transform "+t+"ms ease",e.style.opacity="1",e.style.transform="scale(1)",setTimeout(function(){e.style.opacity="",e.style.transform="",e.style.transition="",i&&i()},t);else{e.style.display="block",e.style.overflow="hidden",e.style.height="0";var o=e.scrollHeight;e.style.transition="height "+t+"ms ease",e.offsetHeight,e.style.height=o+"px",setTimeout(function(){e.style.height="",e.style.overflow="",e.style.transition="",i&&i()},t)}},i.prototype.close_settings=function(e){var t=e.querySelector(".mc-settings"),i=e.querySelector(".mc-settings-btn");t&&("none"!==t.style.display&&""!==t.style.display&&this.settings_close_internal(e,t,i))},i.prototype.start_recording=function(e,t,i,o,a,n,s){var r,c=this;r="audio"===n?this.get_supported_audio_mime_type(s):this.get_supported_video_mime_type(s);try{var l=new MediaRecorder(e,{mimeType:r});l.ondataavailable=function(e){e.data&&e.data.size>0&&a(e.data)},l.onerror=null,l.onstop=null,l.start(100);var d=t.querySelector(".mc-timer");d&&(d.style.display="");var u=0,_=Date.now(),p=t.querySelector(".mc-timer-remaining"),m=null!==p,f=setInterval(function(){u++;var e=Math.floor(u/60),o=u%60,a=t.querySelector(".mc-timer-elapsed");if(a&&(a.textContent=c.pad_zero(e)+":"+c.pad_zero(o)),m){var n=i-u;if(n>0){var s=Math.floor(n/60),r=n%60;p.textContent=c.pad_zero(s)+":"+c.pad_zero(r)}else p.textContent="00:00"}if(u>=i){var l=t.querySelector(".mc-record-btn");l&&l.click()}},1e3);l.recorded_duration=0,l.start_time=_,l.duration_interval=setInterval(function(){var e=Date.now()-_;l.recorded_duration=e/1e3},100),o&&o(l,f)}catch(e){this.config.on_error&&this.config.on_error(e)}},i.prototype.stop_recording=function(e,t,i,o,a,n){var s=this;if(e&&"inactive"!==e.state){e.onstop=function(){var t=e.mimeType||"video/webm",r=new Blob(i,{type:t}),c=e.recorded_duration||0;if(e.duration_interval&&(clearInterval(e.duration_interval),e.duration_interval=null),a){a.src&&a.src.startsWith("blob:")&&URL.revokeObjectURL(a.src);var l=URL.createObjectURL(r);a.srcObject=null,a.src=l,a.muted=!1,a.autoplay=!1,a.controls=!1}if(!a&&s.audio_element){s.audio_element.src&&s.audio_element.src.startsWith("blob:")&&URL.revokeObjectURL(s.audio_element.src);var d=URL.createObjectURL(r);s.audio_element.srcObject=null,s.audio_element.src=d,s.audio_element.autoplay=!1,s.audio_element.controls=!1}if(c>0){var u=s.format_time(c),_=o.querySelector(".mc-time-duration");_&&(_.textContent=u),a?a.setAttribute("data-actual-duration",c.toString()):s.audio_element&&s.audio_element.setAttribute("data-actual-duration",c.toString())}a?a.load():s.audio_element&&s.audio_element.load();var p="video-"+Date.now()+".webm";s.blob=r,s.filename=p;var m=function(){var e=null,t=null;a&&(e=a.videoWidth||null,t=a.videoHeight||null),!e&&s.video_width&&(e=s.video_width),!t&&s.video_height&&(t=s.video_height);var i={type:"video",width:e,height:t,duration:c,size:r.size,format:"webm",timestamp:Date.now()};s.config.on_video_captured&&s.config.on_video_captured(r,p,i),s.show_download_option(o)};a&&a.videoWidth&&a.videoHeight?m():a?a.addEventListener("loadedmetadata",m,{once:!0}):m();
1var f=o.querySelector(".mc-capture-controls"),h=o.querySelector(".mc-result-controls"),v=o.querySelector(".mc-settings");f&&(f.style.display="none"),h&&(h.style.display=""),v&&(v.style.display="none");var g=o.querySelector(".mc-play-btn");g&&g.focus(),e.ondataavailable=null,e.onstop=null,e.onerror=null,n&&n()},e.stop(),clearInterval(t);var r=o.querySelector(".mc-timer");r&&(r.style.display="none");var c=o.querySelector(".mc-timer-elapsed");c&&(c.textContent="00:00");var l=o.querySelector(".mc-timer-remaining");if(l){var d=Math.floor(s.config.max_duration/60),u=s.config.max_duration%60;l.textContent=s.pad_zero(d)+":"+s.pad_zero(u)}s.stream_stop_internal(a)}},i.prototype.stream_start_internal=function(t,i,o,a,n,s,r,c,l,d){var u=this;e._mc_get_user_media_count||(e._mc_get_user_media_count=0),e._mc_get_user_media_count++,u.log("[stream_start_internal] getUserMedia call #"+e._mc_get_user_media_count),u.log("[stream_start_internal] Called with mode:",s);var _={};a&&n&&(_.width={ideal:parseInt(a,10)},_.height={ideal:parseInt(n,10)}),r?_.deviceId={exact:r}:o&&(_.facingMode=o);var p={video:"audio"!==s&&_,audio:"video"===s||"audio"===s};"video"!==s&&"audio"!==s||!c||(p.audio={deviceId:{exact:c}}),u.log("[stream_start_internal] About to call getUserMedia with constraints:",JSON.stringify(p)),navigator.mediaDevices.getUserMedia(p).then(function(e){u.log("[stream_start_internal] getUserMedia SUCCESS, stream:",e),u.log("[stream_start_internal] Stream tracks:",e.getTracks().length),"video"!==s&&"audio"!==s||(u.dispatch_ui_state("pause","off"),u.dispatch_ui_state("resume","off")),i&&(i.srcObject=e,i.muted=!0);var o=t.querySelector(".mc-capture");o&&(o.style.display=""),u.config.on_stream_started&&u.config.on_stream_started(e),"photo"===s&&u.config.qr_scan_enabled&&u.qr_scan_start(),l&&l(e)}).catch(function(e){u.log("[stream_start_internal] getUserMedia FAILED:",e,"error"),u.log("[stream_start_internal] Error name:",e.name,"error"),u.log("[stream_start_internal] Error message:",e.message,"error"),u.config.on_error&&u.config.on_error(e),d&&d(e)})},i.prototype.stream_stop_internal=function(e){var t=this;if(t.log("[stream_stop_internal] Called"),t.log("[stream_stop_internal] video_element:",e),t.log("[stream_stop_internal] video_element.srcObject:",e?e.srcObject:"N/A"),e&&e.srcObject){var i=e.srcObject.getTracks();t.log("[stream_stop_internal] Stopping "+i.length+" tracks"),i.forEach(function(e){t.log("[stream_stop_internal] Stopping track:",e.kind,e.label,"state:",e.readyState),e.stop()}),e.srcObject=null,t.log("[stream_stop_internal] Tracks stopped and srcObject cleared"),t.qr_scan_active&&t.qr_scan_stop(),t.config.on_stream_stopped&&t.config.on_stream_stopped()}else t.log("[stream_stop_internal] No video element or srcObject to stop")},i.prototype.countdown=function(e,t,i,o,a,n,s){var r=t,c=e.querySelector(".mc-countdown-number"),l=e.querySelector(".mc-countdown-sr"),d={1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine",10:"ten"},u=function(){if(i)if(n)try{var e=new Audio(n);e.volume=.5,e.play().catch(function(e){})}catch(e){}else if(a)try{var t=a.createOscillator(),s=a.createGain();t.connect(s),s.connect(a.destination),t.frequency.value=o,t.type="sine",s.gain.setValueAtTime(.3,a.currentTime),s.gain.exponentialRampToValueAtTime(.01,a.currentTime+.2),t.start(a.currentTime),t.stop(a.currentTime+.2)}catch(e){}};c&&(c.textContent=r),l&&(l.textContent=d[r]||r),e&&(e.style.display=""),r>0&&u();var _=setInterval(function(){--r>0?(c&&(c.textContent=r),l&&(l.textContent=d[r]||r),r>0&&u()):(c&&(c.textContent=""),l&&(l.textContent="Capturing now"),setTimeout(function(){l&&(l.textContent=""),clearInterval(_),e&&(e.style.display="none"),s&&s()},100))},1e3)},i.prototype.play_photo_sound=function(t){if(t)try{var i=this.config.photo_sound_url||"";if(i){var o=new Audio(i);o.volume=.5,o.play().catch(function(e){})}else{var a=new(e.AudioContext||e.webkitAudioContext),n=a.createOscillator(),s=a.createGain();n.connect(s),s.connect(a.destination),n.frequency.value=1200,n.type="sine";var r=a.currentTime;s.gain.setValueAtTime(.3,r),s.gain.exponentialRampToValueAtTime(.01,r+.05),n.start(r),n.stop(r+.05)}}catch(e){}},i.prototype.photo_capture_internal=function(e,t,i,o,a,n,s){var r=this;this.play_photo_sound(this.config.photo_sound_enabled),this.qr_scan_active&&this.qr_scan_stop(),t.width=e.videoWidth,t.height=e.videoHeight,t.getContext("2d").drawImage(e,0,0);var c=this.get_supported_photo_mime_type(s);t.toBlob(function(e){var a=URL.createObjectURL(e);i.src=a;var c="photo-"+Date.now()+"."+s;r.blob=e,r.filename=c;var l={type:"photo",width:t.width,height:t.height,size:e.size,format:s,quality:n,timestamp:Date.now()};r.config.on_photo_captured&&r.config.on_photo_captured(e,c,l),r.show_download_option(o);var d=o.querySelector(".mc-capture"),u=o.querySelector(".mc-settings"),_=o.querySelector(".mc-video"),p=o.querySelector(".mc-result"),m=o.querySelector(".mc-capture-control
1s");d&&(d.style.display=""),u&&(u.style.display="none"),_&&(_.style.display="none"),p&&(p.style.display=""),m&&(m.style.display="none");var f=o.querySelector(".mc-flip-btn");f&&(f.style.display="none"),r.dispatch_ui_state("flip","off"),r.dispatch_ui_state("capture","off"),r.dispatch_ui_state("retake","on"),r.dispatch_ui_state("cancel","off"),r.dispatch_event("result-show"),r.config.on_result_show&&r.config.on_result_show();var h=d.querySelector(".mc-flash");h&&(h.classList.add("mc-flash-active"),setTimeout(function(){h.classList.remove("mc-flash-active")},50));var v=o.querySelector(".mc-retake-btn");v&&v.focus(),r.announce_to_screen_reader("Photo captured")},c,n)},i.prototype.photo_retake_internal=function(e){this.blob_backup=this.blob,this.filename_backup=this.filename,this.blob=null,this.filename=null,this.hide_download_option(e);var t=e.querySelector(".mc-video"),i=e.querySelector(".mc-result"),o=e.querySelector(".mc-capture-controls");t&&(t.style.display=""),i&&(i.style.display="none"),o&&(o.style.display=""),this.dispatch_event("result-hide"),this.config.on_result_hide&&this.config.on_result_hide();var a=e.querySelector(".mc-cancel-btn");if(a&&(a.style.display=""),this.has_multiple_cameras){var n=e.querySelector(".mc-flip-btn");n&&(n.style.display=""),this.dispatch_ui_state("flip","on")}this.dispatch_ui_state("capture","on"),this.dispatch_ui_state("retake","off"),this.dispatch_ui_state("cancel","on");var s=e.querySelector(".mc-settings");s&&(s.style.display="none"),this.dispatch_event("photo-retake"),this.config.on_photo_retake&&this.config.on_photo_retake(),this.config.qr_scan_enabled&&!this.qr_scan_active&&this.stream&&this.stream.active&&this.qr_scan_start()},i.prototype.photo_cancel_internal=function(e){this.blob=this.blob_backup,this.filename=this.filename_backup;var t=e.querySelector(".mc-photo");if(t&&this.blob){var i=URL.createObjectURL(this.blob);t.src=i}var o=e.querySelector(".mc-preview");o&&(o.style.display="none"),this.dispatch_event("result-show"),this.config.on_result_show&&this.config.on_result_show();var a=e.querySelector(".mc-cancel-btn");a&&(a.style.display="none");var n=e.querySelector(".mc-flip-btn");n&&(n.style.display="none"),this.dispatch_ui_state("flip","off"),this.dispatch_ui_state("capture","off"),this.dispatch_ui_state("retake","on"),this.dispatch_ui_state("cancel","off"),this.blob_backup=null,this.filename_backup=null,this.dispatch_event("photo-cancel"),this.config.on_photo_cancel&&this.config.on_photo_cancel();var s=e.querySelector(".mc-retake-btn");s&&s.focus()},i.prototype.video_start_internal=function(e,t,i){var o=this;o.is_recording=!0,o.recorded_chunks=[],o.start_recording(t,e,i,function(e,t){o.media_recorder=e,o.timer_interval=t},function(e){o.recorded_chunks.push(e)},"video",o.config.video_format);var a=e.querySelector(".mc-record-btn");a&&(a.innerHTML=o.config.icon_stop,a.setAttribute("aria-label",o.config.label_stop),a.setAttribute("title",o.config.label_stop),a.classList.add("mc-recording"));var n=e.querySelector(".mc-pause-btn");n&&(n.style.display="");var s=e.querySelector(".mc-flip-btn");s&&(s.style.display="none"),o.dispatch_ui_state("flip","off"),o.dispatch_ui_state("start","off"),o.dispatch_ui_state("stop","on"),o.dispatch_ui_state("pause","on"),o.dispatch_event("video-start"),o.config.on_video_started&&o.config.on_video_started(),o.announce_to_screen_reader("Recording started")},i.prototype.video_stop_internal=function(e,t,i){var o=this;o.stop_recording(o.media_recorder,o.timer_interval,o.recorded_chunks,e,t,function(){o.media_recorder=null,o.timer_interval=null,o.is_recording=!1,o.stream=null;var t=e.querySelector(".mc-pause-btn");t&&(t.style.display="none",t.classList.remove("mc-paused"),t.innerHTML=o.config.icon_pause,t.setAttribute("aria-label",o.config.label_pause),t.setAttribute("title",o.config.label_pause));var a=e.querySelector(".mc-timer");a&&a.classList.remove("mc-paused"),e.querySelectorAll(".mc-settings-btn").forEach(function(e){e.disabled=!1}),o.dispatch_ui_state("start","off"),o.dispatch_ui_state("stop","off"),o.dispatch_ui_state("pause","off"),o.dispatch_ui_state("resume","off"),o.dispatch_ui_state("retake","on"),o.dispatch_ui_state("cancel","off"),o.dispatch_ui_state("playback-play","on"),o.dispatch_ui_state("playback-pause","off"),o.dispatch_ui_state("playback-toggle","on"),o.dispatch_ui_state("playback-stop","off"),o.dispatch_ui_state("settings-open","on"),o.dispatch_ui_state("settings-close","off"),o.dispatch_event
1("video-stop",{blob:o.blob,filename:o.filename,duration:o.media_recorder?o.media_recorder.recorded_duration:0}),o.config.on_video_stopped&&o.config.on_video_stopped(o.blob,o.filename),o.announce_to_screen_reader("Recording stopped"),i&&i()})},i.prototype.video_pause_internal=function(e){var t=e.querySelector(".mc-pause-btn"),i=e.querySelector(".mc-timer");this.media_recorder.pause(),this.timer_interval&&(clearInterval(this.timer_interval),this.timer_interval=null),this.media_recorder.duration_interval&&(clearInterval(this.media_recorder.duration_interval),this.media_recorder.duration_interval=null),this.media_recorder.paused_time=Date.now(),t&&(t.innerHTML=this.config.icon_play,t.setAttribute("aria-label",this.config.label_resume),t.setAttribute("title",this.config.label_resume),t.classList.add("mc-paused")),i&&i.classList.add("mc-paused"),this.dispatch_ui_state("pause","off"),this.dispatch_ui_state("resume","on"),this.dispatch_event("video-pause"),this.config.on_video_paused&&this.config.on_video_paused(),this.announce_to_screen_reader("Recording paused")},i.prototype.video_resume_internal=function(e){var t=this,i=e.querySelector(".mc-pause-btn"),o=e.querySelector(".mc-timer"),a=".mc-record-btn";t.media_recorder.resume();var n=Date.now()-t.media_recorder.paused_time;t.media_recorder.start_time+=n;var s=Math.floor((Date.now()-t.media_recorder.start_time)/1e3),r=e.querySelector(".mc-timer-remaining"),c=null!==r,l=t.config.max_duration;t.timer_interval=setInterval(function(){if(t.media_recorder){s++;var i=Math.floor(s/60),o=s%60,n=e.querySelector(".mc-timer-elapsed");if(n&&(n.textContent=t.pad_zero(i)+":"+t.pad_zero(o)),c){var d=l-s;if(d>0){var u=Math.floor(d/60),_=d%60;r.textContent=t.pad_zero(u)+":"+t.pad_zero(_)}else r.textContent="00:00"}if(s>=l){var p=e.querySelector(a);p&&p.click()}}else clearInterval(t.timer_interval)},1e3);var d=setInterval(function(){if(t.media_recorder){var e=Date.now()-t.media_recorder.start_time;t.media_recorder.recorded_duration=e/1e3}else clearInterval(d)},100);t.media_recorder.duration_interval=d,i&&(i.innerHTML=t.config.icon_pause,i.setAttribute("aria-label",t.config.label_pause),i.setAttribute("title",t.config.label_pause),i.classList.remove("mc-paused")),o&&o.classList.remove("mc-paused"),t.dispatch_ui_state("pause","on"),t.dispatch_ui_state("resume","off"),t.dispatch_event("video-resume"),t.config.on_video_resumed&&t.config.on_video_resumed(),t.announce_to_screen_reader("Recording resumed")},i.prototype.video_retake_internal=function(e,t,i){var o=this;o.log("[video_retake_internal] Starting retake"),o.log("[video_retake_internal] Current stream:",o.stream),o.log("[video_retake_internal] Current media_recorder:",o.media_recorder),o.log("[video_retake_internal] is_recording:",o.is_recording),o.blob_backup=o.blob,o.filename_backup=o.filename;var a=o.video_element;o.video_url_backup=a.src,o.blob=null,o.filename=null,i&&(i.style.display="none"),i&&(i.style.display=""),o.dispatch_event("result-hide"),o.config.on_result_hide&&o.config.on_result_hide();var n=e.querySelector(".mc-cancel-btn");n&&(n.style.display=""),a.src="",a.srcObject=null,a.muted=!0,a.autoplay=!0,a.controls=!1;var s=e.querySelector(".mc-result-controls");s&&(s.style.display="none",s.classList.remove("mc-controls-visible"));var r=e.querySelector(".mc-capture-controls");r&&(r.style.display="");var c=e.querySelector(".mc-record-btn");c&&(c.innerHTML=o.config.icon_record,c.setAttribute("aria-label",o.config.label_start_recording),c.setAttribute("title",o.config.label_start_recording),c.classList.remove("mc-recording"),c.style.display=""),o.log("[video_retake_internal] Calling stream_start_internal"),o.stream_start_internal(e,a,o.config.facing_mode,o.video_width,o.video_height,o.config.mode,o.selected_video_device,o.selected_audio_device,function(t){o.log("[video_retake_internal] stream_start_internal SUCCESS, stream:",t),o.stream=t,o.start_mic_monitoring(e,t,function(e,t){}),o.show_controls();var i=e.querySelector(".mc-result-controls");if(i&&(i.style.display="none",i.classList.remove("mc-controls-visible")),o.has_multiple_cameras){var a=e.querySelector(".mc-flip-btn");a&&(a.style.display=""),o.dispatch_ui_state("flip","on")}o.dispatch_ui_state("start","on"),o.dispatch_ui_state("stop","off"),o.dispatch_ui_state("pause","off"),o.dispatch_ui_state("resume","off"),o.dispatch_ui_state("retake","off"),o.dispatch_ui_state("cancel","on"),o.dispatch_ui_state("playback-play","off"),o.dispatch_ui_state("playback-pause","off"),o.dispatch_ui_state("playback-toggle","off"),o.dispatch_ui_state("playback-stop","off"),o.log("[video_retake_internal] Retake complete, ready to record")},function(e){o.log("[video_retake_internal] stream_start_internal FAILED:",e,"error")});var l=e.querySelector(".mc-settings");
1l&&(l.style.display="none"),o.dispatch_event("video-retake"),o.config.on_video_retake&&o.config.on_video_retake()},i.prototype.video_cancel_internal=function(e){this.log("[video_cancel_internal] Starting cancel"),this.log("[video_cancel_internal] Current stream:",this.stream),this.log("[video_cancel_internal] Current media_recorder:",this.media_recorder),this.log("[video_cancel_internal] is_recording:",this.is_recording),this.log("[video_cancel_internal] Stopping stream"),this.stream_stop_internal(this.video_element),this.stream=null,this.is_recording=!1,this.media_recorder=null,this.timer_interval=null,this.blob=this.blob_backup,this.filename=this.filename_backup,this.log("[video_cancel_internal] Restored blob:",this.blob),this.log("[video_cancel_internal] Restored video URL:",this.video_url_backup),this.log("[video_cancel_internal] Reset is_recording to:",this.is_recording);var t=this.video_element;t&&this.video_url_backup&&(t.autoplay=!1,t.src=this.video_url_backup,t.load());var i=e.querySelector(".mc-capture-controls"),o=e.querySelector(".mc-result-controls");i&&(i.style.display="none"),o&&(o.style.display="");var a=e.querySelector(".mc-preview");a&&(a.style.display=""),this.dispatch_event("result-show"),this.config.on_result_show&&this.config.on_result_show();var n=e.querySelector(".mc-cancel-btn");n&&(n.style.display="none");var s=e.querySelector(".mc-flip-btn");s&&(s.style.display="none"),this.dispatch_ui_state("flip","off"),this.dispatch_ui_state("start","off"),this.dispatch_ui_state("stop","off"),this.dispatch_ui_state("pause","off"),this.dispatch_ui_state("resume","off"),this.dispatch_ui_state("retake","on"),this.dispatch_ui_state("cancel","off"),this.dispatch_ui_state("playback-play","on"),this.dispatch_ui_state("playback-pause","off"),this.dispatch_ui_state("playback-toggle","on"),this.dispatch_ui_state("playback-stop","on"),this.blob_backup=null,this.filename_backup=null,this.video_url_backup=null,this.dispatch_event("video-cancel"),this.config.on_video_cancel&&this.config.on_video_cancel();var r=e.querySelector(".mc-retake-btn");r&&r.focus(),this.log("[video_cancel_internal] Cancel complete")},i.prototype.audio_start_internal=function(e,t,i){var o=this;o.is_recording=!0,o.recorded_chunks=[],o.start_recording(t,e,i,function(e,t){o.media_recorder=e,o.timer_interval=t},function(e){o.recorded_chunks.push(e)},"audio",o.config.audio_format);var a=e.querySelector(".mc-record-btn");a&&(a.innerHTML=o.config.icon_stop,a.setAttribute("aria-label",o.config.label_stop),a.setAttribute("title",o.config.label_stop),a.classList.add("mc-recording"));var n=e.querySelector(".mc-pause-btn");n&&(n.style.display=""),o.log("[audio_start_internal] Disabling settings buttons");var s=e.querySelectorAll(".mc-settings-btn");o.log("[audio_start_internal] Found",s.length,"settings buttons"),s.forEach(function(e,t){o.log("[audio_start_internal] Button",t,"- before:",e.disabled,"parent:",e.parentElement.className),e.disabled=!0,o.log("[audio_start_internal] Button",t,"- after:",e.disabled)}),o.dispatch_ui_state("start","off"),o.dispatch_ui_state("stop","on"),o.dispatch_ui_state("pause","on"),o.dispatch_ui_state("settings-open","off"),o.dispatch_ui_state("settings-close","off"),o.dispatch_event("audio-start"),o.config.on_audio_started&&o.config.on_audio_started(),o.announce_to_screen_reader("Recording started")},i.prototype.audio_stop_internal=function(e,t,i){var o=this;o.stop_recording(o.media_recorder,o.timer_interval,o.recorded_chunks,e,null,function(){o.media_recorder=null,o.timer_interval=null,o.is_recording=!1,o.stream=null;var t=e.querySelector(".mc-pause-btn");t&&(t.style.display="none",t.classList.remove("mc-paused"),t.innerHTML=o.config.icon_pause,t.setAttribute("aria-label",o.config.label_pause),t.setAttribute("title",o.config.label_pause));var a=e.querySelector(".mc-timer");a&&a.classList.remove("mc-paused"),o.log("[audio_stop_internal] Re-enabling settings buttons");var n=e.querySelectorAll(".mc-settings-btn");o.log("[audio_stop_internal] Found",n.length,"settings buttons"),n.forEach(function(e,t){o.log("[audio_stop_internal] Button",t,"- before:",e.disabled,"parent:",e.parentElement.className),e.disabled=!1,o.log("[audio_stop_internal] Button",t,"- after:",e.disabled)}),o.dispatch_ui_state("start","off"),o.dispatch_ui_state("stop","off"),o.dispatch_ui_state("pause","off"),o.dispatch_ui_state("resume","off"),o.dispatch_ui_state("retake","on"),o.dispatch_ui_state("cancel","off"),o.dispatch_ui_state("playback-play","on"),o.dispatch_ui_state("playback-pause","off"),o.dispatch_ui_state("playback-toggle","on"),o.dispatch_ui_state("playback-stop","off"),o.dispatch_ui_state("settings-open","on"),o.dispatch_ui_state("settings-close","off"),o.dispatch_event
1("audio-stop",{blob:o.blob,filename:o.filename,duration:o.media_recorder?o.media_recorder.recorded_duration:0}),o.config.on_audio_stopped&&o.config.on_audio_stopped(o.blob,o.filename),o.announce_to_screen_reader("Recording stopped"),i&&i()})},i.prototype.audio_pause_internal=function(e){var t=e.querySelector(".mc-pause-btn"),i=e.querySelector(".mc-timer");this.media_recorder.pause(),this.timer_interval&&(clearInterval(this.timer_interval),this.timer_interval=null),this.media_recorder.duration_interval&&(clearInterval(this.media_recorder.duration_interval),this.media_recorder.duration_interval=null),this.media_recorder.paused_time=Date.now(),t&&(t.innerHTML=this.config.icon_play,t.setAttribute("aria-label",this.config.label_resume),t.setAttribute("title",this.config.label_resume),t.classList.add("mc-paused")),i&&i.classList.add("mc-paused"),this.dispatch_ui_state("pause","off"),this.dispatch_ui_state("resume","on"),this.dispatch_event("audio-pause"),this.config.on_audio_paused&&this.config.on_audio_paused()},i.prototype.audio_resume_internal=function(e){var t=this,i=e.querySelector(".mc-pause-btn"),o=e.querySelector(".mc-timer"),a=".mc-record-btn";t.media_recorder.resume();var n=Date.now()-t.media_recorder.paused_time;t.media_recorder.start_time+=n;var s=Math.floor((Date.now()-t.media_recorder.start_time)/1e3),r=e.querySelector(".mc-timer-remaining"),c=null!==r,l=t.config.max_duration;t.timer_interval=setInterval(function(){if(t.media_recorder){s++;var i=Math.floor(s/60),o=s%60,n=e.querySelector(".mc-timer-elapsed");if(n&&(n.textContent=t.pad_zero(i)+":"+t.pad_zero(o)),c){var d=l-s;if(d>0){var u=Math.floor(d/60),_=d%60;r.textContent=t.pad_zero(u)+":"+t.pad_zero(_)}else r.textContent="00:00"}if(s>=l){var p=e.querySelector(a);p&&p.click()}}else clearInterval(t.timer_interval)},1e3);var d=setInterval(function(){if(t.media_recorder){var e=Date.now()-t.media_recorder.start_time;t.media_recorder.recorded_duration=e/1e3}else clearInterval(d)},100);t.media_recorder.duration_interval=d,i&&(i.innerHTML=t.config.icon_pause,i.setAttribute("aria-label",t.config.label_pause),i.setAttribute("title",t.config.label_pause),i.classList.remove("mc-paused")),o&&o.classList.remove("mc-paused"),t.dispatch_ui_state("pause","on"),t.dispatch_ui_state("resume","off"),t.dispatch_event("audio-resume"),t.config.on_audio_resumed&&t.config.on_audio_resumed()},i.prototype.audio_retake_internal=function(e){var t=this;t.blob_backup=t.blob,t.filename_backup=t.filename;var i=t.audio_element;i&&i.src&&(t.audio_url_backup=i.src),t.blob=null,t.filename=null,t.hide_download_option(e);var o=e.querySelector(".mc-capture");o&&(o.style.display="none"),o&&(o.style.display=""),t.dispatch_event("result-hide"),t.config.on_result_hide&&t.config.on_result_hide();var a=e.querySelector(".mc-cancel-btn");a&&(a.style.display="");var n=e.querySelector(".mc-result-controls");n&&(n.style.display="none",n.classList.remove("mc-controls-visible"));var s=e.querySelector(".mc-capture-controls");s&&(s.style.display="");var r=e.querySelector(".mc-record-btn");r&&(r.innerHTML=t.config.icon_record,r.setAttribute("aria-label",t.config.label_start_recording),r.setAttribute("title",t.config.label_start_recording),r.classList.remove("mc-recording"),r.style.display="",r.focus()),t.stream_start_internal(e,null,null,null,null,t.config.mode,null,t.selected_audio_device,function(i){t.stream=i,t.start_mic_monitoring(e,i,function(e,t){}),t.show_controls();var o=e.querySelector(".mc-result-controls");o&&(o.style.display="none",o.classList.remove("mc-controls-visible")),t.dispatch_ui_state("start","on"),t.dispatch_ui_state("stop","off"),t.dispatch_ui_state("pause","off"),t.dispatch_ui_state("resume","off"),t.dispatch_ui_state("retake","off"),t.dispatch_ui_state("cancel","on"),t.dispatch_ui_state("playback-play","off"),t.dispatch_ui_state("playback-pause","off"),t.dispatch_ui_state("playback-toggle","off"),t.dispatch_ui_state("playback-stop","off")});var c=e.querySelector(".mc-settings");c&&(c.style.display="none"),t.dispatch_event("audio-retake"),t.config.on_audio_retake&&t.config.on_audio_retake()},i.prototype.audio_cancel_internal=function(e){this.stream&&(this.stream.getTracks().forEac
1h(function(e){e.stop()}),this.stream=null);this.is_recording=!1,this.media_recorder=null,this.timer_interval=null,this.blob=this.blob_backup,this.filename=this.filename_backup;var t=this.audio_element;t&&this.audio_url_backup&&(t.src=this.audio_url_backup,t.load());var i=e.querySelector(".mc-capture-controls"),o=e.querySelector(".mc-result-controls");i&&(i.style.display="none"),o&&(o.style.display="");var a=e.querySelector(".mc-preview");a&&(a.style.display=""),this.dispatch_event("result-show"),this.config.on_result_show&&this.config.on_result_show();var n=e.querySelector(".mc-cancel-btn");n&&(n.style.display="none"),this.dispatch_ui_state("start","off"),this.dispatch_ui_state("stop","off"),this.dispatch_ui_state("pause","off"),this.dispatch_ui_state("resume","off"),this.dispatch_ui_state("retake","on"),this.dispatch_ui_state("cancel","off"),this.dispatch_ui_state("playback-play","on"),this.dispatch_ui_state("playback-pause","off"),this.dispatch_ui_state("playback-toggle","on"),this.dispatch_ui_state("playback-stop","on"),this.blob_backup=null,this.filename_backup=null,this.audio_url_backup=null,this.dispatch_event("audio-cancel"),this.config.on_audio_cancel&&this.config.on_audio_cancel();var s=e.querySelector(".mc-retake-btn");s&&s.focus()},i.prototype.settings_open_internal=function(e,t,i){this.position_settings_panel(t,i),this.slide_down(t,300,function(){var e=t.querySelector('[data-menu="main"] .mc-settings-menu-item:not([disabled])');e&&e.focus()}),i&&i.setAttribute("aria-expanded","true"),this.dispatch_ui_state("settings-open","off"),this.dispatch_ui_state("settings-close","on"),this.dispatch_event("settings-open"),this.config.on_settings_opened&&this.config.on_settings_opened()},i.prototype.position_settings_panel=function(t,i){if(t&&i){var o=i.getBoundingClientRect(),a=o.top,n=e.innerHeight-o.bottom;
1t.classList.remove("mc-position-above","mc-position-below");var s=e.innerWidth-o.right;t.style.right=s+"px",a>=220?(t.classList.add("mc-position-above"),t.style.bottom=e.innerHeight-o.top+8+"px",t.style.top="auto"):n>=220?(t.classList.add("mc-position-below"),t.style.top=o.bottom+8+"px",t.style.bottom="auto"):a>n?(t.classList.add("mc-position-above"),t.style.bottom=e.innerHeight-o.top+8+"px",t.style.top="auto"):(t.classList.add("mc-position-below"),t.style.top=o.bottom+8+"px",t.style.bottom="auto")}},i.prototype.show_settings_submenu=function(e,t){var i=e.querySelector('[data-menu="main"]');i&&(i.style.display="none");var o=e.querySelector('[data-menu="'+t+'"]');o&&(o.style.display="block",setTimeout(function(){var e=o.querySelector(".mc-settings-menu-item");e&&e.focus()},0))},i.prototype.hide_settings_submenu=function(e){e.querySelectorAll(".mc-settings-menu-sub").forEach(function(e){e.style.display="none"});var t=e.querySelector('[data-menu="main"]');t&&(t.style.display="block",setTimeout(function(){var e=t.querySelector(".mc-settings-menu-item");e&&e.focus()},0))},i.prototype.select_device=function(e,t,i,o,a,n,s,r,c,l){var d=this;d.is_recording||("video"===s?d.selected_video_device=r||null:"audio"===s&&(d.selected_audio_device=r||null),d.blob?d.enumerate_devices(e,n):(d.stream_stop_internal(t),d.stream_start_internal(e,t,i,o,a,n,d.selected_video_device,d.selected_audio_device,function(t){d.stream=t,"video"===n&&"audio"===s&&d.start_mic_monitoring(e,t,function(e,t){e,t}),d.enumerate_devices(e,n)})))},i.prototype.show_download_option=function(e){if(this.config.settings_download_enabled){var t=e.querySelector(".mc-download-item");t&&(t.disabled=!1),this.dispatch_ui_state("download","on")}},i.prototype.hide_download_option=function(e){if(this.config.settings_download_enabled){var t=e.querySelector(".mc-download-item");t&&(t.disabled=!0),this.dispatch_ui_state("download","off")}},i.prototype.settings_close_internal=function(e,t,i){if(this.hide_settings_submenu(t),this.slide_up(t,300),!i||"none"===i.style.display)for(var o=e.querySelectorAll(".mc-settings-btn"),a=0;a<o.length;a++)if("none"!==o[a].style.display&&null!==o[a].offsetParent){i=o[a];break}i&&(i.setAttribute("aria-expanded","false"),setTimeout(function(){i.focus()},300)),this.dispatch_ui_state("settings-open","on"),this.dispatch_ui_state("settings-close","off"),this.dispatch_event("settings-close"),this.config.on_settings_closed&&this.config.on_settings_closed()},i.prototype.stream_flip_internal=function(e,t,i,o){var a=this,n="user"===a.config.facing_mode?"environment":"user";if(a.config.facing_mode=n,"photo"===i){var s=e.querySelector(".mc-capture");s&&(s.style.display="none"),s&&(s.style.display="")}a.stream_stop_internal(t),a.stream_start_internal(e,t,n,a.video_width,a.video_height,i,null,a.selected_audio_device,function(e){a.stream=e,a.dispatch_event("stream-flip",{facing_mode:n,stream:e}),a.config.on_stream_flipped&&a.config.on_stream_flipped(n),o&&o(e)})},i.prototype.stream_start=function(){var e=this;return e.log("[stream_start] Called"),new Promise(function(t,i){if(e.log("[stream_start] Inside promise, is_initialized:",e.is_initialized),!e.is_initialized)return e.log("[stream_start] NOT initialized, rejecting"),void i(new Error("MediaCapture must be initialized before starting stream"));e.log("[stream_start] Initialized, proceeding...");var o=e.element,a=e.video_element;e.log("[stream_start] video_element:",a),e.log("[stream_start] mode:",e.config.mode);var n=o.querySelector(".mc-start"),s=o.querySelector(".mc-capture");n&&(n.style.display="none"),s&&(s.style.display=""),e.log("[stream_start] About to call stream_start_internal"),e.log("[stream_start] Params:",{mode:e.config.mode,facing_mode:e.config.facing_mode,video_device:e.selected_video_device,audio_device:e.selected_audio_device}),e.stream_start_internal(o,a,e.config.facing_mode,e.video_width,e.video_height,e.config.mode,e.selected_video_device,e.selected_audio_device,function(i){if(e.stream=i,"video"!==e.config.mode&&"audio"!==e.config.mode||e.start_mic_monitoring(o,i,function(e,t){}),e.is_mobile&&!e.has_checked_cameras&&(e.has_checked_cameras=!0,e.check_camera_flip_availability(o)),e.show_controls(),"photo"===e.config.mode){var a=o.querySelector(".mc-capture-btn");a&&a.focus()}else if("video"===e.config.mode||"audio"===e.config.mode){var n=o.querySelector(".mc-record-btn");n&&n.focus()}"photo"===e.config.mode?(e.dispatch_ui_state("capture","on"),e.dispatch_ui_state("retake","off"),e.dispatch_ui_state("cancel","off")):"video"===e.config.mode?(e.dispatch_ui_state("start","on"),e.dispatch_ui_state("stop","off"),e.dispatch_ui_state("pause","off"),e.dispatch_ui_state("resume","off"),e.dispatch_ui_state("retake","off"),e.dispatch_ui_state("cancel","off"),e.dispatch_ui_state("playback-play","off"),e.dispatch_ui_state("playback-pause","off"),e.dispatch_ui_state("playback-toggle","off"),e.dispatch_ui_state("playback-stop","off")):"audio"===e.config.mode&&(e.dis
1patch_ui_state("start","on"),e.dispatch_ui_state("stop","off"),e.dispatch_ui_state("pause","off"),e.dispatch_ui_state("resume","off"),e.dispatch_ui_state("retake","off"),e.dispatch_ui_state("cancel","off"),e.dispatch_ui_state("playback-play","off"),e.dispatch_ui_state("playback-pause","off"),e.dispatch_ui_state("playback-toggle","off"),e.dispatch_ui_state("playback-stop","off")),e.dispatch_ui_state("settings-open","on"),e.dispatch_ui_state("settings-close","off"),e.dispatch_ui_state("stream-start","off"),e.dispatch_ui_state("stream-stop","on"),e.dispatch_event("stream-start",{stream:i}),t(i)},function(e){s&&(s.style.display="none");var t=o.querySelector(".mc-error");t&&(t.style.display=""),i(e)})})},i.prototype.photo_capture=function(){var e=this;return e.log("Photo capture initiated"),new Promise(function(t,i){if(!e.is_initialized)return e.log("Photo capture failed: not initialized","error"),void i(new Error("MediaCapture must be initialized before capturing photo"));if("photo"!==e.config.mode)return e.log("Photo capture failed: not in photo mode","error"),void i(new Error("MediaCapture must be in photo mode to capture photos"));if(!e.is_stream_active())return e.log("Photo capture failed: stream not active","error"),void i(new Error("Camera stream must be active before capturing photo"));e.log("Photo capture: capturing image from canvas");var o=e.element,a=e.video_element,n=e.canvas_element,s=o.querySelector(".mc-photo");e.play_photo_sound(e.config.photo_sound_enabled),n.width=a.videoWidth,n.height=a.videoHeight,n.getContext("2d").drawImage(a,0,0);var r=e.get_supported_photo_mime_type(e.config.photo_format);n.toBlob(function(a){if(!a)return e.log("Photo capture failed: unable to create blob","error"),void i(new Error("Failed to capture photo"));e.log("Photo captured successfully: "+a.size+" bytes");var r=URL.createObjectURL(a);s.src=r;var c="photo-"+Date.now()+"."+e.config.photo_format;e.blob=a,e.filename=c;var l={type:"photo",width:n.width,height:n.height,size:a.size,format:e.config.photo_format,quality:e.config.photo_quality,timestamp:Date.now()},d=o.querySelector(".mc-capture"),u=o.querySelector(".mc-settings"),_=o.querySelector(".mc-video"),p=o.querySelector(".mc-result"),m=o.querySelector(".mc-capture-controls");d&&(d.style.display=""),u&&(u.style.display="none"),_&&(_.style.display="none"),p&&(p.style.display=""),m&&(m.style.display="none");var f=o.querySelector(".mc-flip-btn");f&&(f.style.display="none"),e.dispatch_ui_state("flip","off"),e.dispatch_ui_state("capture","off"),e.dispatch_ui_state("retake","on"),e.dispatch_ui_state("cancel","off"),e.dispatch_event("result-show"),e.config.on_result_show&&e.config.on_result_show();var h=d.querySelector(".mc-flash");h&&(h.classList.add("mc-flash-active"),setTimeout(function(){h.classList.remove("mc-flash-active")},50));var v=o.querySelector(".mc-retake-btn");v&&v.focus(),e.config.on_photo_captured&&e.config.on_photo_captured(a,c,l),e.dispatch_event("photo-capture",{blob:a,filename:c,metadata:l}),t({blob:a,filename:c,metadata:l})},r,e.config.photo_quality)})},i.prototype.stream_stop=function(){if(this.log("Stream stop initiated"),this.is_initialized){var e=this.element,t=this.video_element,i=e.querySelector(".mc-capture"),o=e.querySelector(".mc-start");this.log("Stopping media stream"),this.stream_stop_internal(t),this.stream=null,i&&(i.style.display="none"),i&&(i.style.display="none"),o&&(o.style.display=""),this.log("Resetting all UI states"),this.dispatch_ui_state("flip","off"),this.dispatch_ui_state("capture","off"),this.dispatch_ui_state("start","off"),this.dispatch_ui_state("stop","off"),this.dispatch_ui_state("retake","off"),this.dispatch_ui_state("cancel","off"),this.dispatch_ui_state("settings-open","off"),this.dispatch_ui_state("settings-close","off"),this.dispatch_ui_state("stream-start","on"),this.dispatch_ui_state("stream-stop","off"),this.dispatch_event("stream-stop"),this.log("Stream stopped successfully")}else this.log("Stream stop failed: not initialized","error")},i.prototype.stream_flip=function(){if(this.log("Camera flip initiated"),this.is_initialized)if(this.stream&&this.stream.active)if(this.has_multiple_cameras){var e=this.element,t=e.querySelector(".mc-capture");
1if(t&&"none"!==t.style.display)this.log("stream_flip() cannot be called while result is showing","warn");else if("video"===this.config.mode&&this.is_recording)this.log("stream_flip() cannot be called during recording","warn");else{var i=this.video_element,o=this;this.log("Flipping camera"),this.stream_flip_internal(e,i,this.config.mode,function(t){o.log("Camera flipped successfully"),o.dispatch_event("stream-flipped"),o.dispatch_ui_state("flip","on"),"video"===o.config.mode&&o.start_mic_monitoring(e,t,function(e,t){})})}}else this.log("stream_flip() requires multiple cameras","warn");else this.log("stream_flip() can only be called when stream is active","warn");else this.log("Stream flip failed: not initialized","error")},i.prototype.photo_retake=function(){if(this.is_initialized)if("photo"===this.config.mode){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.photo_retake_internal(e,t,i);var o=e.querySelector(".mc-capture-btn");o&&o.focus()}else self.log("photo_retake() can only be called in photo mode")},i.prototype.photo_cancel=function(){if(this.is_initialized)if("photo"===this.config.mode)if(this.blob_backup){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.photo_cancel_internal(e,t,i)}else self.log("photo_cancel() can only be called after photo_retake()");else self.log("photo_cancel() can only be called in photo mode")},i.prototype.video_start=function(){var e=this;return e.log("Video recording start initiated"),new Promise(function(t,i){if(!e.is_initialized)return e.log("Video start failed: not initialized","error"),void i(new Error("MediaCapture must be initialized before starting video"));if("video"!==e.config.mode)return e.log("Video start failed: not in video mode","error"),void i(new Error("video_start() can only be called in video mode"));if(!e.stream||!e.stream.active)return e.log("Video start failed: stream not active","error"),void i(new Error("Stream must be active before starting video recording"));if(e.is_recording)return e.log("Video start failed: already recording","error"),void i(new Error("Video recording is already in progress"));e.log("Video recording: starting MediaRecorder");var o=e.element;e.video_start_internal(o,e.stream,e.config.max_duration),e.log("Video recording: started successfully"),t()})},i.prototype.video_stop=function(){var e=this;return e.log("Video recording stop initiated"),new Promise(function(t,i){if(!e.is_initialized)return e.log("Video stop failed: not initialized","error"),void i(new Error("MediaCapture must be initialized before stopping video"));if("video"!==e.config.mode)return e.log("Video stop failed: not in video mode","error"),void i(new Error("video_stop() can only be called in video mode"));if(!e.is_recording)return e.log("Video stop failed: not recording","error"),void i(new Error("No video recording in progress"));if(!e.media_recorder||"inactive"===e.media_recorder.state)return e.log("Video stop failed: MediaRecorder not active","error"),void i(new Error("MediaRecorder is not active"));e.log("Video recording: stopping MediaRecorder");var o=e.element,a=e.video_element;e.video_stop_internal(o,a,function(){e.log("Video recording: stopped successfully"),t({blob:e.blob,filename:e.filename})})})},i.prototype.video_pause=function(){if(this.is_initialized)if("video"===this.config.mode)if(this.is_recording)if(this.media_recorder&&"recording"===this.media_recorder.state){var e=this.element;this.video_pause_internal(e)}else this.log("MediaRecorder is not in recording state");else this.log("No video recording in progress to pause");else this.log("video_pause() can only be called in video mode");else this.log("MediaCapture must be initialized before pausing video")},i.prototype.video_resume=function(){if(this.is_initialized)if("video"===this.config.mode)if(this.is_recording)if(this.media_recorder&&"paused"===this.media_recorder.state){var e=this.element;this.video_resume_internal(e)}else this.log("MediaRecorder is not in paused state");else this.log("No video recording in progress to resume");else this.log("video_resume() can only be called in video mode");else this.log("MediaCapture must be initialized before resuming video")},i.prototype.video_retake=function(){if(this.is_initialized)if("video"===this.config.mode){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.video_retake_internal(e,t,i);var o=e.querySelector(".mc-record-btn");o&&o.focus()}else self.log("video_retake() can only be called in video mode")},i.prototype.video_cancel=function(){if(this.is_initialized)if("video"===this.config.mode)if(this.blob_backup){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.video_cancel_internal(e,t,i)}else self.log("video_cancel() can only be called after video_retake()");else self.log("video_cancel() can only be called in video mode")},i.prototype.audio_start=function(){var e=this;return e.log("Audio recording start initiated"),new Promise(function(t,i){if(!e.is_initialized)return e.log("Audio start failed: not initialized","error"),void i(new Error("MediaCapture must be initialized before starting audio"));if("audio"!==e.config.mode)return e.log("Audio start failed: not in audio mode","error"),void i(new Error("audio_start() can only be called in audio mode"));if(!e.stream||!e.stream.active)return e.log("Audio start failed: stream not active","error"),void i(new Error("Stream must be active before starting audio recording"));if(e.is_recording)return e.log("Audio start failed: already recording","error"),void i(new Error("Audio recording is already in progress"));e.log("Audio recording: starting MediaRecorder");var o=e.element;e.audio_start_internal(o,e.stream,e.config.max_duration),e.log("Audio recording: started successfully"),t()})},i.prototype.audio_stop=function(){var e=this;return e.log("Audio recording stop initiated"),new Promise(function(t,i){if(!e.is_initialized)return e.log("Audio stop failed: not initialized","error"),void i(new Error("MediaCapture must be initialized before stopping audio"));if("audio"!==e.config.mode)return e.log("Audio stop failed: not in audio mode","error"),void i(new Error("audio_stop() can only be called in audio mode"));if(!e.is_recording)return e.log("Audio stop failed: not recording","error"),void i(new Error("No audio recording in progress"));if(!e.media_recorder||"inactive"===e.media_recorder.state)return e.log("Audio stop failed: MediaRecorder not active","error"),void i(new Error("MediaRecorder is not active"));e.log("Audio recording: stopping MediaRecorder");var o=e.element,a=e.audio_element;e.audio_stop_internal(o,a,function(){e.log("Audio recording: stopped successfully"),t({blob:e.blob,filename:e.filename})})})},i.prototype.audio_pause=function(){if(this.is_initialized)if("audio"===this.config.mode)if(this.is_recording)if(this.media_recorder&&"recording"===this.media_recorder.state){var e=this.element;this.audio_pause_internal(e)}else this.log("MediaRecorder is not in recording state");else this.log("No audio recording in progress to pause");else this.log("audio_pause() can only be called in audio mode");else this.log("MediaCapture must be initialized before pausing audio")},i.prototype.audio_resume=function(){if(this.is_initialized)if("audio"===this.config.mode)if(this.is_recording)if(this.media_recorder&&"paused"===this.media_recorder.state){var e=this.element;this.audio_resume_internal(e)}else this.log("MediaRecorder is not in paused state");else this.log("No audio recording in progress to resume");else this.log("audio_resume() can only be called in audio mode");else this.log("MediaCapture must be initialized before resuming audio")},i.prototype.audio_retake=function(){if(this.is_initialized)if("audio"===this.config.mode){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.audio_retake_internal(e,t,i);var o=e.querySelector(".mc-record-btn");o&&o.focus()}else self.log("audio_retake() can only be called in audio mode")},i.prototype.audio_cancel=function(){if(this.is_initialized)if("audio"===this.config.mode)if(this.blob_backup){var e=this.element,t=i,i=e.querySelector(".mc-capture");this.audio_cancel_internal(e,t,i)}else self.log("audio_cancel() can only be called after audio_retake()");else self.log("audio_cancel() can only be called in audio mode")},i.prototype.playback_play=function(){if(this.is_initialized)if("video"===this.config.mode||"audio"===this.config.mode){var e=this.element,t="video"===this.config.mode?e.querySelector(".mc-video"):e.querySelector(".mc-audio"),i=e.querySelector(".mc-play-btn");t&&t.paused&&t.src&&(t.play(),i&&(i.innerHTML=this.config.icon_pause,i.setAttribute("aria-label",this.config.label_pause)),this.dispatch_ui_state("playback-play","off"),this.dispatch_ui_state("playback-pause","on"),this.dispatch_ui_state("playback-stop","on"))}else self.log("playback_play() can only be called in video or audio mode")},i.prototype.playback_pause=function(){if(this.is_initialized)if("video"===this.config.mode||"audio"===this.config.mode){var e=this.element,t="video"===this.config.mode?e.querySelector(".mc-video"):e.querySelector(".mc-audio"),i=e.querySelector(".mc-play-btn");t&&(t.paused||(t.pause(),i&&(i.innerHTML=this.config.icon_play,i.setAttribute("aria-label",this.config.label_play)),this.dispatch_ui_state("playback-play","on"),this.dispatch_ui_state("playback-pause","off"),this.dispatch_ui_state("playback-stop","off")))}else self.log("playback_pause() can only be called in video or audio mode")},i.prototype.playback_toggle=function(){if(this.is_initialized)if("video"===this.config.mode||"audio"===this.config.mode){var e=this.element,t="video"===this.config.mode?e.querySelector(".mc-video"):e.querySelector(".mc-audio");t&&t.src&&(t.paused?this.playback_play():this.playback_pause())}
1else self.log("playback_toggle() can only be called in video or audio mode")},i.prototype.playback_stop=function(){if(this.is_initialized)if("video"===this.config.mode||"audio"===this.config.mode){var e=this.element,t="video"===this.config.mode?e.querySelector(".mc-video"):e.querySelector(".mc-audio"),i=e.querySelector(".mc-play-btn");t&&t.src&&(t.pause(),t.currentTime=0,i&&(i.innerHTML=this.config.icon_play,i.setAttribute("aria-label",this.config.label_play)),this.dispatch_ui_state("playback-play","on"),this.dispatch_ui_state("playback-pause","off"),this.dispatch_ui_state("playback-stop","off"))}else self.log("playback_stop() can only be called in video or audio mode")},i.prototype.settings_open=function(){if(this.log("Opening settings panel"),this.is_initialized){for(var e=this.element,t=e.querySelector(".mc-settings"),i=e.querySelectorAll(".mc-settings-btn"),o=null,a=0;a<i.length;a++){var n=i[a];if(null!==n.offsetParent){o=n;break}}if(t)"none"!==t.style.display&&""!==t.style.display||(this.log("Settings panel: showing"),this.settings_open_internal(e,t,o),this.dispatch_ui_state("settings-open","off"),this.dispatch_ui_state("settings-close","on"));else this.log("Settings panel element not found","error")}else this.log("Settings open failed: not initialized","error")},i.prototype.settings_close=function(){if(this.log("Closing settings panel"),this.is_initialized){for(var e=this.element,t=e.querySelector(".mc-settings"),i=e.querySelectorAll(".mc-settings-btn"),o=null,a=0;a<i.length;a++){var n=i[a];if(null!==n.offsetParent){o=n;break}}if(t)"none"!==t.style.display&&""!==t.style.display&&(this.log("Settings panel: hiding"),this.settings_close_internal(e,t,o),this.dispatch_ui_state("settings-open","on"),this.dispatch_ui_state("settings-close","off"));else this.log("Settings panel element not found","error")}else this.log("Settings close failed: not initialized","error")},i.prototype.show_controls=function(){if(this.is_initialized){var e=this.element,t=e.querySelector(".mc-capture-controls"),i=e.querySelector(".mc-result-controls"),o=e.querySelector(".mc-result-controls");t&&t.classList.add("mc-controls-visible"),i&&i.classList.add("mc-controls-visible"),o&&o.classList.add("mc-controls-visible")}},i.prototype.hide_controls=function(){if(this.is_initialized){var e=this.element,t=e.querySelector(".mc-capture-controls"),i=e.querySelector(".mc-result-controls"),o=e.querySelector(".mc-result-controls");t&&t.classList.remove("mc-controls-visible"),i&&i.classList.remove("mc-controls-visible"),o&&o.classList.remove("mc-controls-visible")}},i.prototype.get_stream=function(){return this.stream},i.prototype.is_stream_active=function(){return null!==this.stream&&this.stream.active},i.prototype.set_config=function(e){this.config=Object.assign({},this.config,e||{})},i.prototype.get_config=function(){return Object.assign({},this.config)},i.prototype.is_playing=function(){if(!this.is_initialized)return!1;if("video"===this.config.mode){var e=this.element.querySelector(".mc-video");return e&&!e.paused&&e.src&&e.currentTime>0}if("audio"===this.config.mode){var t=this.element.querySelector(".mc-audio");return t&&!t.paused&&t.src&&t.currentTime>0}return!1},i.prototype.has_video=function(){return!(!this.is_initialized||"video"!==this.config.mode)&&null!==this.blob},i.prototype.has_photo=function(){return!(!this.is_initialized||"photo"!==this.config.mode)&&null!==this.blob},i.prototype.has_audio=function(){return!(!this.is_initialized||"audio"!==this.config.mode)&&null!==this.blob},i.prototype.get_blob=function(){return this.blob||null},i.prototype.get_data_url=function(e){if(this.blob){var t=new FileReader;t.onloadend=function(){e(t.result)},t.readAsDataURL(this.blob)}else e(null)},i.prototype.get_object_url=function(){return this.blob?URL.createObjectURL(this.blob):null},i.prototype.get_mime_type=function(){return this.blob?this.blob.type:null},i.prototype.get_filename=function(){if(!this.blob)return null;var e=(new Date).toISOString().replace(/[:.]/g,"-"),t="photo"===this.config.mode?this.config.photo_format:this.config.video_format;return this.config.mode+"_"+e+"."+t},i.prototype.download=function(e){if(this.blob){var t=document.createElement("a");t.href=URL.createObjectURL(this.blob),t.download=e||this.get_filename(),t.click(),URL.revokeObjectURL(t.href)}},i.prototype.get_meta=function(){if(!this.blob)return null;var e={type:this.config.mode,size:this.blob.size,mime_type:this.blob.type,timestamp:(new Date).toISOString(),filename:this.get_filename()};if("photo"===this.config.mode)e.format=this.config.photo_format,e.quality=this.config.photo_quality;else if("video"===this.config.mode){e.format=this.config.video_format;var t=this.element.querySelector(".mc-video");t&&t.duration&&(e.duration=t.duration)}else if("audio"===this.config.mode){e.format=this.config.audio_format;var i=this.element.querySelector(".mc-audio");i&&i.duration&&(e.duration=i.duration)}return this.config.resolution&&(e.resolution=this.config.resolution),e.facing_mode=this.config.facing_mode,e}
1,i.prototype.get_supported_formats=function(){var e={webm:!1,mp4:!1,ogg:!1,wav:!1},t={webm:!1,mp4:!1},i={webm:["audio/webm;codecs=opus","audio/webm"],mp4:["audio/mp4","audio/mp4;codecs=mp4a.40.2"],ogg:["audio/ogg;codecs=opus","audio/ogg"],wav:["audio/wav"]};for(var o in i)for(var a=0;a<i[o].length;a++)if(MediaRecorder.isTypeSupported(i[o][a])){e[o]=!0;break}var n={webm:["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm"],mp4:["video/mp4;codecs=h264,aac","video/mp4"]};for(var s in n)for(var r=0;r<n[s].length;r++)if(MediaRecorder.isTypeSupported(n[s][r])){t[s]=!0;break}return{audio:e,video:t}},i.prototype.is_qr_supported=function(){return"BarcodeDetector"in e?BarcodeDetector.getSupportedFormats().then(function(e){return-1!==e.indexOf("qr_code")}).catch(function(){return!1}):Promise.resolve(!1)},i.prototype.qr_scan_start=function(){var t=this;if(this.is_initialized)if("photo"===this.config.mode)if(this.qr_scan_active)this.log("qr_scan_start() already scanning","warn");else if("BarcodeDetector"in e)if(this.video_element){try{this.qr_barcode_detector=new BarcodeDetector({formats:["qr_code"]})}catch(e){return void this.log("qr_scan_start() BarcodeDetector instantiation failed: "+e.message,"error")}this.qr_scan_active=!0,this.log("QR scanning started");var i=this.element,o=i.querySelector(".mc-qr-overlay");o&&(o.style.display=""),"function"==typeof this.config.on_qr_scan_start&&this.config.on_qr_scan_start(),this.dispatch_event("qr-scan-start");var a=i.querySelector(".mc-qr-sr");a&&(a.textContent=this.config.label_qr_scanning);var n=this.config.qr_scan_interval,s=this.video_element;this.qr_scan_interval_id=setInterval(function(){t.qr_scan_frame(s)},n)}else this.log("qr_scan_start() no video element found","warn");else this.log("qr_scan_start() BarcodeDetector API not available in this browser","warn");else this.log("qr_scan_start() is only available in photo mode","warn");else this.log("qr_scan_start() failed: not initialized","warn")},i.prototype.qr_scan_stop=function(){if(this.qr_scan_active){this.qr_scan_interval_id&&(clearInterval(this.qr_scan_interval_id),this.qr_scan_interval_id=null),this.qr_scan_active=!1,this.qr_barcode_detector=null;var e=this.element,t=e.querySelector(".mc-qr-overlay");t&&(t.style.display="none");var i=e.querySelector(".mc-qr-sr");i&&(i.textContent=""),this.log("QR scanning stopped"),"function"==typeof this.config.on_qr_scan_stop&&this.config.on_qr_scan_stop(),this.dispatch_event("qr-scan-stop")}},i.prototype.qr_scan_frame=function(e){var t=this;!e||e.readyState<2||!this.qr_barcode_detector||this.stream&&this.stream.active&&this.qr_barcode_detector.detect(e).then(function(e){if(e&&0!==e.length){var i=e[0],o=i.rawValue;t.log("QR code detected: "+o),t.config.qr_scan_beep&&t.play_qr_beep();var a=t.element.querySelector(".mc-qr-sr");a&&(a.textContent=o),t.config.qr_scan_pause_on_detect&&t.qr_scan_stop(),t.config.qr_scan_auto&&t.photo_capture(),"function"==typeof t.config.on_qr_detected&&t.config.on_qr_detected({raw_value:o,bounding_box:i.boundingBox,corner_points:i.cornerPoints,format:i.format}),t.dispatch_event("qr-detected",{raw_value:o,bounding_box:i.boundingBox,corner_points:i.cornerPoints,format:i.format})}}).catch(function(e){t.log("QR detect error: "+e.message)})},i.prototype.play_qr_beep=function(){try{var t=new(e.AudioContext||e.webkitAudioContext),i=t.createOscillator(),o=t.createGain();i.connect(o),o.connect(t.destination),i.frequency.value=1800,i.type="sine";var a=t.currentTime;o.gain.setValueAtTime(.2,a),o.gain.exponentialRampToValueAtTime(.01,a+.1),i.start(a),i.stop(a+.1)}catch(e){}},e.MediaCapture=i}(window);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.