Files
vue-audio-recorder/dist/vue-audio-recorder.min.js
Gennady Grishkovtsov 7e89d8a33a Update version to 2.2.0
2018-10-05 22:52:39 +03:00

1 line
30 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("VueAudioRecorder",[],e):"object"==typeof exports?exports.VueAudioRecorder=e():t.VueAudioRecorder=e()}(window,function(){return function(n){var r={};function o(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}return o.m=n,o.c=r,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=12)}([function(t,e){t.exports=function(n){var a=[];return a.toString=function(){return this.map(function(t){var e=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(t,n);return t[2]?"@media "+t[2]+"{"+e+"}":e}).join("")},a.i=function(t,e){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},r=0;r<this.length;r++){var o=this[r][0];"number"==typeof o&&(n[o]=!0)}for(r=0;r<t.length;r++){var i=t[r];"number"==typeof i[0]&&n[i[0]]||(e&&!i[2]?i[2]=e:e&&(i[2]="("+i[2]+") and ("+e+")"),a.push(i))}},a}},function(t,e,n){"use strict";function c(t,e){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=i[0],s={id:t+":"+o,css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}n.r(e),n.d(e,"default",function(){return f});var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var l={},o=r&&(document.head||document.getElementsByTagName("head")[0]),i=null,a=0,p=!1,s=function(){},d=null,u="data-vue-ssr-id",h="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function f(a,t,e,n){p=e,d=n||{};var s=c(a,t);return m(s),function(t){for(var e=[],n=0;n<s.length;n++){var r=s[n];(o=l[r.id]).refs--,e.push(o)}t?m(s=c(a,t)):s=[];for(n=0;n<e.length;n++){var o;if(0===(o=e[n]).refs){for(var i=0;i<o.parts.length;i++)o.parts[i]();delete l[o.id]}}}}function m(t){for(var e=0;e<t.length;e++){var n=t[e],r=l[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(g(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var i=[];for(o=0;o<n.parts.length;o++)i.push(g(n.parts[o]));l[n.id]={id:n.id,refs:1,parts:i}}}}function v(){var t=document.createElement("style");return t.type="text/css",o.appendChild(t),t}function g(e){var n,r,t=document.querySelector("style["+u+'~="'+e.id+'"]');if(t){if(p)return s;t.parentNode.removeChild(t)}if(h){var o=a++;t=i||(i=v()),n=x.bind(null,t,o,!1),r=x.bind(null,t,o,!0)}else t=v(),n=function(t,e){var n=e.css,r=e.media,o=e.sourceMap;r&&t.setAttribute("media",r);d.ssrId&&t.setAttribute(u,e.id);o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,t),r=function(){t.parentNode.removeChild(t)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}var _,y=(_=[],function(t,e){return _[t]=e,_.filter(Boolean).join("\n")});function x(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}},function(t,e,n){var r=n(3);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(1).default)("9d62102e",r,!1,{})},function(t,e,n){(t.exports=n(0)(!1)).push([t.i,"\n.ar-player {\n width: 380px;\n height: 120px;\n border: 1px solid #E8E8E8;\n border-radius: 24px;\n display: flex;\n flex-direction: column-reverse;\n align-items: center;\n justify-content: center;\n background-color: #FAFAFA;\n font-family: 'Roboto', sans-serif;\n}\n.ar-player-bar {\n display: flex;\n align-items: center;\n height: 38px;\n padding: 0 12px;\n margin: 0 5px;\n}\n.ar-player-actions {\n width: 55%;\n display: flex;\n align-items: center;\n justify-content: space-around;\n}\n.ar-player--compact {\n height: unset;\n flex-direction: row;\n border: 0;\n border-radius: 0;\n background-color: unset;\n}\n.ar-player--compact > .ar-player-actions {\n width: unset;\n}\n.ar-player--compact > .ar-player-actions > #download,\n .ar-player--compact > .ar-player-actions > #upload {\n display: none;\n}\n.ar-player--compact > .ar-player-bar {\n border: 1px solid #E8E8E8;\n border-radius: 24px;\n margin: 0 0 0 5px;\n}\n.ar-player--compact > .ar-player-bar > .ar-player__progress {\n width: 125px;\n}\n.ar-player__progress {\n width: 160px;\n margin: 0 8px;\n}\n.ar-player__time {\n color: rgba(84, 84, 84, 0.5);\n font-size: 16px;\n width: 41px;\n}\n.ar-player__play {\n width: 45px;\n height: 45px;\n background-color: #FFFFFF;\n box-shadow: 0 2px 11px 11px rgba(0, 0, 0, 0.07);\n}\n.ar-player__play--active {\n fill: white !important;\n background-color: #05CBCD !important;\n}\n.ar-icon {\n fill: #747474;\n border-radius: 50%;\n border: 1px solid #05CBCD;\n background-color: #FFFFFF;\n padding: 5px;\n cursor: pointer;\n transition: .2s;\n}\n.ar-icon--rec {\n fill: white;\n background-color: #FF6B64;\n border-color: transparent;\n}\n.ar-icon--pulse {\n animation: ripple .5s linear infinite;\n}\n@keyframes ripple {\n0% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 1px rgba(255, 0, 0, 0.1), 0 0 0 5px rgba(255, 0, 0, 0.1);\n}\n100% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 10px rgba(255, 0, 0, 0.1), 0 0 0 20px rgba(255, 0, 0, 0);\n}\n}\n.ar-icon__sm {\n width: 30px;\n height: 30px;\n}\n.ar-icon__lg {\n width: 45px;\n height: 45px;\n box-shadow: 0 2px 5px 1px rgba(158, 158, 158, 0.5);\n}\n",""])},function(t,e,n){var r=n(5);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(1).default)("722c44a2",r,!1,{})},function(t,e,n){(t.exports=n(0)(!1)).push([t.i,"\n.ar-line-control {\n position: relative;\n height: 8px;\n border-radius: 5px;\n background-color: #E6E6E6;\n}\n.ar-line-control__head {\n position: absolute;\n height: inherit;\n background-color: #616161;\n border-radius: inherit;\n}\n",""])},function(t,e,n){var r=n(7);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(1).default)("5b0bec03",r,!1,{})},function(t,e,n){(t.exports=n(0)(!1)).push([t.i,"\n.ar-icon {\n fill: #747474;\n border-radius: 50%;\n border: 1px solid #05CBCD;\n background-color: #FFFFFF;\n padding: 5px;\n cursor: pointer;\n transition: .2s;\n}\n.ar-icon--rec {\n fill: white;\n background-color: #FF6B64;\n border-color: transparent;\n}\n.ar-icon--pulse {\n animation: ripple .5s linear infinite;\n}\n@keyframes ripple {\n0% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 1px rgba(255, 0, 0, 0.1), 0 0 0 5px rgba(255, 0, 0, 0.1);\n}\n100% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 10px rgba(255, 0, 0, 0.1), 0 0 0 20px rgba(255, 0, 0, 0);\n}\n}\n.ar-icon__sm {\n width: 30px;\n height: 30px;\n}\n.ar-icon__lg {\n width: 45px;\n height: 45px;\n box-shadow: 0 2px 5px 1px rgba(158, 158, 158, 0.5);\n}\n",""])},function(t,e,n){var r=n(9);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(1).default)("7e43270a",r,!1,{})},function(t,e,n){(t.exports=n(0)(!1)).push([t.i,"\n.ar-volume {\n display: flex;\n align-items: center;\n line-height: 10px;\n}\n.ar-volume-bar {\n width: 50px;\n height: 6px;\n background: #E6E6E6;\n border-radius: 4px;\n position: relative;\n}\n.ar-volume__icon {\n fill: #747474;\n width: 24px;\n height: 24px;\n border: 0;\n border-radius: 0;\n padding: 0;\n background-color: unset;\n margin-right: 3px;\n}\n",""])},function(t,e,n){var r=n(11);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,n(1).default)("00c7c6ba",r,!1,{})},function(t,e,n){(t.exports=n(0)(!1)).push([t.i,"\n.ar {\n width: 420px;\n font-family: 'Roboto', sans-serif;\n border-radius: 16px;\n background-color: #FAFAFA;\n box-shadow: 0 4px 18px 0 rgba(0, 0, 0, 0.17);\n position: relative;\n box-sizing: content-box;\n}\n.ar-content {\n padding: 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.ar-records {\n height: 138px;\n padding-top: 1px;\n overflow-y: auto;\n margin-bottom: 20px;\n}\n.ar-records__record {\n width: 320px;\n height: 45px;\n padding: 0 10px;\n margin: 0 auto;\n line-height: 45px;\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid #E8E8E8;\n position: relative;\n}\n.ar-records__record--selected {\n border: 1px solid #E8E8E8;\n border-radius: 24px;\n background-color: #FFFFFF;\n margin-top: -1px;\n padding: 0 34px;\n}\n.ar-recorder {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.ar-recorder__duration {\n color: #AEAEAE;\n font-size: 32px;\n font-weight: 500;\n margin-top: 20px;\n margin-bottom: 16px;\n}\n.ar-recorder__stop {\n position: absolute;\n top: 10px;\n right: -52px;\n}\n.ar-recorder__time-limit {\n position: absolute;\n color: #AEAEAE;\n font-size: 12px;\n top: 128px;\n}\n.ar-recorder__records-limit {\n position: absolute;\n color: #AEAEAE;\n font-size: 12px;\n top: 78px;\n}\n.ar-spinner {\n display: flex;\n height: 30px;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n width: 144px;\n z-index: 10;\n}\n.ar-spinner__dot {\n display: block;\n margin: 0 8px;\n border-radius: 50%;\n width: 30px;\n height: 30px;\n background: #05CBCD;\n animation-name: blink;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n}\n.ar-spinner__dot:nth-child(2) {\n animation-delay: .2s;\n}\n.ar-spinner__dot:nth-child(3) {\n animation-delay: .4s;\n}\n@keyframes blink {\n0% {\n opacity: .2;\n}\n20% {\n opacity: 1;\n}\n100% {\n opacity: .2;\n}\n}\n.ar__text {\n color: rgba(84, 84, 84, 0.5);\n font-size: 16px;\n}\n.ar__blur {\n filter: blur(2px);\n opacity: 0.7;\n}\n.ar__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: 10;\n}\n.ar__upload-status {\n text-align: center;\n font-size: 10px;\n padding: 2px;\n letter-spacing: 1px;\n position: absolute;\n bottom: 0;\n}\n.ar__upload-status--success {\n color: green;\n}\n.ar__upload-status--fail {\n color: red;\n}\n.ar__rm {\n cursor: pointer;\n position: absolute;\n width: 6px;\n height: 6px;\n padding: 6px;\n line-height: 6px;\n margin: auto;\n left: 10px;\n bottom: 0;\n top: 0;\n color: #f4785a;\n}\n.ar-icon {\n fill: #747474;\n border-radius: 50%;\n border: 1px solid #05CBCD;\n background-color: #FFFFFF;\n padding: 5px;\n cursor: pointer;\n transition: .2s;\n}\n.ar-icon--rec {\n fill: white;\n background-color: #FF6B64;\n border-color: transparent;\n}\n.ar-icon--pulse {\n animation: ripple .5s linear infinite;\n}\n@keyframes ripple {\n0% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 1px rgba(255, 0, 0, 0.1), 0 0 0 5px rgba(255, 0, 0, 0.1);\n}\n100% {\n box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.1), 0 0 0 10px rgba(255, 0, 0, 0.1), 0 0 0 20px rgba(255, 0, 0, 0);\n}\n}\n.ar-icon__sm {\n width: 30px;\n height: 30px;\n}\n.ar-icon__lg {\n width: 45px;\n height: 45px;\n box-shadow: 0 2px 5px 1px rgba(158, 158, 158, 0.5);\n}\n",""])},function(t,e,n){"use strict";n.r(e);var r={props:{name:{type:String}},data:function(){return{icons:{download:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"/><path fill="none" d="M0 0h24v24H0z"/></svg>',mic:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/><path d="M0 0h24v24H0z" fill="none"/></svg>',pause:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/><path d="M0 0h24v24H0z" fill="none"/></svg>',play:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/><path d="M0 0h24v24H0z" fill="none"/></svg>',save:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/></svg>',stop:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M6 6h12v12H6z"/></svg>',volume:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/><path d="M0 0h24v24H0z" fill="none"/></svg>'}}}},o=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",{domProps:{innerHTML:t._s(t.icons[t.name])}})};function i(t,e,n,r,o,i,a,s){var c=typeof(t=t||{}).default;"object"!==c&&"function"!==c||(t=t.default);var l,p="function"==typeof t?t.options:t;if(e&&(p.render=e,p.staticRenderFns=n,p._compiled=!0),r&&(p.functional=!0),i&&(p._scopeId=i),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},p._ssrRegister=l):o&&(l=s?function(){o.call(this,this.$root.$options.shadowRoot)}:o),l)if(p.functional){p._injectStyles=l;var d=p.render;p.render=function(t,e){return l.call(e),d(t,e)}}else{var u=p.beforeCreate;p.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:p}}o._withStripped=!0;var a=i(r,o,[],!1,null,null,null);a.options.__file="src/components/icon-button.vue";var s=a.exports;function c(t,e){var n=e.getBoundingClientRect().width,r=t.target.getBoundingClientRect().left,o=(t.clientX-r)/n;try{if(!t.target.className.match(/^ar\-line\-control/))return}catch(t){return}return o=1<(o=o<0?0:o)?1:o}function l(t){return new Date(1e3*t).toISOString().substr(14,5)}var p={props:{refId:{type:String},eventName:{type:String},percentage:{type:Number,default:0},rowDirection:{type:Boolean,default:!0}},methods:{onMouseDown:function(t){var e=c(t,this.$refs[this.refId]);this.$emit("change-linehead",e),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("mouseup",this.onMouseUp)},onMouseUp:function(t){document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove);var e=c(t,this.$refs[this.refId]);this.$emit("change-linehead",e)},onMouseMove:function(t){var e=c(t,this.$refs[this.refId]);this.$emit("change-linehead",e)}},computed:{calculateSize:function(){var t=this.percentage<1?100*this.percentage:this.percentage;return(this.rowDirection?"width":"height")+": "+t+"%"}}},d=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:t.refId,staticClass:"ar-line-control",on:{mousedown:t.onMouseDown}},[n("div",{staticClass:"ar-line-control__head",style:t.calculateSize})])};d._withStripped=!0;var u=i(p,d,[],!1,function(t){n(4)},null,null);u.options.__file="src/components/line-control.vue";var h=u.exports,f={props:{options:{type:Object},record:{type:Object}},components:{IconButton:s},methods:{upload:function(){var e=this;if(this.record.url){this.$eventBus.$emit("start-upload"),this.options.startUpload&&this.options.startUpload();var t=new FormData;t.append("audio",this.record.blob,"my-record");var n=Object.assign(this.options.headers,{});n["Content-Type"]="multipart/form-data; boundary="+t._boundary,this.$http.post(this.options.uploadUrl,t,{headers:n}).then(function(t){e.$eventBus.$emit("end-upload","success"),e.options.successfulUpload&&e.options.successfulUpload(t)}).catch(function(t){e.$eventBus.$emit("end-upload","fail"),e.options.failedUpload&&e.options.failedUpload(t)})}}}},m=function(){var e=this,t=e.$createElement;return(e._self._c||t)("icon-button",{attrs:{name:"save"},nativeOn:{click:function(t){return e.upload(t)}}})};m._withStripped=!0;var v=i(f,m,[],!1,function(t){n(6)},null,null);v.options.__file="src/components/uploader.vue";var g=v.exports,_={data:function(){return{volume:.8}},components:{IconButton:s,LineControl:h},methods:{onChangeLinehead:function(t){this.$emit("change-volume",t),this.volume=t}}},y=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"ar-volume"},[n("icon-button",{staticClass:"ar-volume__icon",attrs:{name:"volume"}}),t._v(" "),n("line-control",{staticClass:"ar-volume-bar",attrs:{"ref-id":"volume",percentage:t.volume},on:{"change-linehead":t.onChangeLinehead}})],1)};y._withStripped=!0;var x=i(_,y,[],!1,function(t){n(8)},null,null);x.options.__file="src/components/volume-control.vue";var b=x.exports,w={props:{src:{type:String},record:{type:Object},compact:{type:Boolean,default:!0},uploaderOptions:{type:Object,default:function(){return new Object}}},data:function(){return{isPlaying:!1,duration:l(0),playedTime:l(0),progress:0}},components:{IconButton:s,LineControl:h,Uploader:g,VolumeControl:b},mounted:function(){var e=this;this.player=document.getElementById(this.playerUniqId),this.player.addEventListener("ended",function(){e.isPlaying=!1}),this.player.addEventListener("loadeddata",function(t){e._resetProgress(),e.duration=l(e.player.duration)}),this.player.addEventListener("timeupdate",this._onTimeUpdate),this.$eventBus.$on("remove-record",function(){e._resetProgress()})},computed:{audioSource:function(){var t=this.src||this.record.url;if(t)return t;this._resetProgress()},playBtnIcon:function(){return this.isPlaying?"pause":"play"},playerUniqId:function(){return"audio-player"+this._uid}},methods:{playback:function(){var t=this;this.isPlaying?this.player.pause():setTimeout(function(){t.player.play()},0),this.isPlaying=!this.isPlaying},download:function(){var t=document.createElement("a");t.href=this.record.url,t.download="record.wav",t.click()},decorator:function(t){this.audioSource&&t()},_resetProgress:function(){this.isPlaying&&this.player.pause(),this.duration=l(0),this.playedTime=l(0),this.progress=0,this.isPlaying=!1},_onTimeUpdate:function(){this.playedTime=l(this.player.currentTime),this.progress=this.player.currentTime/this.player.duration*100},_onUpdateProgress:function(t){t&&(this.player.currentTime=t*this.player.duration)},_onChangeVolume:function(t){t&&(this.player.volume=t)}}},C=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ar-player",class:{"ar-player--compact":e.compact}},[n("div",{staticClass:"ar-player-actions"},[n("icon-button",{staticClass:"ar-icon ar-icon__sm",attrs:{id:"download",name:"download"},nativeOn:{click:function(t){e.decorator(e.download)}}}),e._v(" "),n("icon-button",{staticClass:"ar-icon ar-icon__lg ar-player__play",class:{"ar-player__play--active":e.isPlaying},attrs:{id:"play",name:e.playBtnIcon},nativeOn:{click:function(t){e.decorator(e.playback)}}}),e._v(" "),n("uploader",{staticClass:"ar-icon ar-icon__sm",attrs:{id:"upload",record:e.record,options:e.uploaderOptions}})],1),e._v(" "),n("div",{staticClass:"ar-player-bar"},[n("div",{staticClass:"ar-player__time"},[e._v(e._s(e.playedTime))]),e._v(" "),n("line-control",{staticClass:"ar-player__progress",attrs:{"ref-id":"progress",percentage:e.progress},on:{"change-linehead":e._onUpdateProgress}}),e._v(" "),n("div",{staticClass:"ar-player__time"},[e._v(e._s(e.duration))]),e._v(" "),n("volume-control",{on:{"change-volume":e._onChangeVolume}})],1),e._v(" "),n("audio",{attrs:{id:e.playerUniqId,src:e.audioSource}})])};C._withStripped=!0;var S=i(w,C,[],!1,function(t){n(2)},null,null);S.options.__file="src/components/player.vue";var U=S.exports,F=function(){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}}();var R=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.bufferSize=t.bufferSize||4096,this.sampleRate=t.sampleRate,this.samples=t.samples}return F(e,[{key:"getData",value:function(){this._joinSamples();var t=new ArrayBuffer(44+2*this.samples.length),e=new DataView(t);return this._writeString(e,0,"RIFF"),e.setUint32(4,36+2*this.samples.length,!0),this._writeString(e,8,"WAVE"),this._writeString(e,12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,this.sampleRate,!0),e.setUint32(28,4*this.sampleRate,!0),e.setUint16(32,4,!0),e.setUint16(34,16,!0),this._writeString(e,36,"data"),e.setUint32(40,2*this.samples.length,!0),this._floatTo16BitPCM(e,44,this.samples),new Blob([e],{type:"audio/wav"})}},{key:"_floatTo16BitPCM",value:function(t,e,n){for(var r=0;r<n.length;r++,e+=2){var o=Math.max(-1,Math.min(1,n[r]));t.setInt16(e,o<0?32768*o:32767*o,!0)}}},{key:"_joinSamples",value:function(){for(var t=this.samples.length*this.bufferSize,e=new Float64Array(t),n=0,r=0;r<this.samples.length;r++){var o=this.samples[r];e.set(o,n),n+=o.length}this.samples=e}},{key:"_writeString",value:function(t,e,n){for(var r=0;r<n.length;r++)t.setUint8(e+r,n.charCodeAt(r))}}]),e}(),E=function(){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}}();var k=function(){function e(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.afterStop=t.afterStop,this.micFailed=t.micFailed,this.bufferSize=4096,this.records=[],this.samples=[],this.isPause=!1,this.isRecording=!1,this.duration=0,this.volume=0,this._duration=0}return E(e,[{key:"start",value:function(){navigator.mediaDevices.getUserMedia({audio:!0}).then(this._micCaptured.bind(this)).catch(this._micError.bind(this)),this.isPause=!1,this.isRecording=!0}},{key:"stop",value:function(){this.stream.getTracks().forEach(function(t){return t.stop()}),this.input.disconnect(),this.processor.disconnect(),this.context.close();var t=new R({bufferSize:this.bufferSize,sampleRate:this.context.sampleRate,samples:this.samples}).getData(),e=URL.createObjectURL(t);this.samples=[],this.records.push({id:Date.now(),blob:t,duration:l(this.duration),url:e}),this._duration=0,this.duration=0,this.isPause=!1,this.isRecording=!1,this.afterStop&&this.afterStop()}},{key:"pause",value:function(){this.stream.getTracks().forEach(function(t){return t.stop()}),this.input.disconnect(),this.processor.disconnect(),this.context.close(),this._duration=this.duration,this.isPause=!0}},{key:"recordList",value:function(){return this.records}},{key:"lastRecord",value:function(){return this.records.slice(-1)}},{key:"_micCaptured",value:function(t){var o=this;this.context=new(window.AudioContext||window.webkitAudioContext),this.duration=this._duration,this.input=this.context.createMediaStreamSource(t),this.processor=this.context.createScriptProcessor(this.bufferSize,1,1),this.stream=t,this.processor.onaudioprocess=function(t){for(var e=t.inputBuffer.getChannelData(0),n=0,r=0;r<e.length;++r)n+=e[r]*e[r];o.duration=parseFloat(o._duration)+parseFloat(o.context.currentTime.toFixed(2)),o.volume=Math.sqrt(n/e.length).toFixed(2),o.samples.push(new Float32Array(e))},this.input.connect(this.processor),this.processor.connect(this.context.destination)}},{key:"_micError",value:function(t){this.micFailed&&this.micFailed(t)}}]),e}(),B={props:{attempts:{type:Number},compact:{type:Boolean,default:!1},time:{type:Number},attemptsLimit:{type:Function},micFailed:{type:Function},startRecord:{type:Function},stopRecord:{type:Function},failedUpload:{type:Function},headers:{type:Object},startUpload:{type:Function},successfulUpload:{type:Function},uploadUrl:{type:String},successfulUploadMsg:{type:String,default:"Upload successful"},failedUploadMsg:{type:String,default:"Upload fail"}},data:function(){var t=this;return{isUploading:!1,recorder:new k({afterStop:function(){t.recordList=t.recorder.recordList(),t.stopRecord&&t.stopRecord("stop record")},attempts:this.attempts,time:this.time}),recordList:[],selected:{},uploadStatus:null,uploaderOptions:{}}},components:{AudioPlayer:U,IconButton:s},created:function(){var e=this;this.uploaderOptions={failedUpload:this.failedUpload,headers:this.headers,startUpload:this.startUpload,successfulUpload:this.successfulUpload,uploadUrl:this.uploadUrl},this.$eventBus.$on("start-upload",function(){e.isUploading=!0}),this.$eventBus.$on("end-upload",function(t){e.isUploading=!1,e.uploadStatus=status,setTimeout(function(){e.uploadStatus=null},1500)})},beforeDestroy:function(){this.stopRecorder()},methods:{toggleRecorder:function(){this.attempts&&this.recorder.records.length>=this.attempts||(!this.isRecording||this.isRecording&&this.isPause?(this.recorder.start(),this.startRecord&&this.startRecord("start record")):(this.recorder.pause(),this.startRecord&&this.startRecord("pause record")))},stopRecorder:function(){this.isRecording&&this.recorder.stop()},removeRecord:function(t){this.recordList.splice(t,1),this.$set(this.selected,"url",null),this.$eventBus.$emit("remove-record")}},computed:{attemptsLeft:function(){return this.attempts-this.recorder.records.length},iconButtonType:function(){return this.isRecording&&this.isPause?"mic":this.isRecording?"pause":"mic"},isPause:function(){return this.recorder.isPause},isRecording:function(){return this.recorder.isRecording},message:function(){return"success"===this.uploadStatus?this.successfulUploadMsg:this.failedUploadMsg},recordedTime:function(){return this.time&&this.recorder.duration>=60*this.time&&this.stopRecorder(),l(this.recorder.duration)},uploadStatusClasses:function(){var t=["ar__upload-status"];return t.push("success"===this.uploadStatus?"ar__upload-status--success":"ar__upload-status--fail"),t.join(" ")},volume:function(){return parseFloat(this.recorder.volume)}}},M=function(){var r=this,t=r.$createElement,o=r._self._c||t;return o("div",{staticClass:"ar"},[r.isUploading?o("div",{staticClass:"ar__overlay"}):r._e(),r._v(" "),r.isUploading?o("div",{staticClass:"ar-spinner"},[o("div",{staticClass:"ar-spinner__dot"}),r._v(" "),o("div",{staticClass:"ar-spinner__dot"}),r._v(" "),o("div",{staticClass:"ar-spinner__dot"})]):r._e(),r._v(" "),o("div",{staticClass:"ar-content",class:{ar__blur:r.isUploading}},[o("div",{staticClass:"ar-recorder"},[o("icon-button",{staticClass:"ar-icon ar-icon__lg",class:{"ar-icon--rec":r.isRecording,"ar-icon--pulse":r.isRecording&&.02<r.volume},attrs:{name:r.iconButtonType},nativeOn:{click:function(t){return r.toggleRecorder(t)}}}),r._v(" "),o("icon-button",{staticClass:"ar-icon ar-icon__sm ar-recorder__stop",attrs:{name:"stop"},nativeOn:{click:function(t){return r.stopRecorder(t)}}})],1),r._v(" "),r.attempts?o("div",{staticClass:"ar-recorder__records-limit"},[r._v("Attempts: "+r._s(r.attemptsLeft)+"/"+r._s(r.attempts))]):r._e(),r._v(" "),o("div",{staticClass:"ar-recorder__duration"},[r._v(r._s(r.recordedTime))]),r._v(" "),r.time?o("div",{staticClass:"ar-recorder__time-limit"},[r._v("Record duration is limited: "+r._s(r.time)+"m")]):r._e(),r._v(" "),o("div",{staticClass:"ar-records"},r._l(r.recordList,function(e,n){return o("div",{key:e.id,staticClass:"ar-records__record",class:{"ar-records__record--selected":e.id===r.selected.id},on:{click:function(t){r.selected=e}}},[e.id===r.selected.id?o("div",{staticClass:"ar__rm",on:{click:function(t){r.removeRecord(n)}}},[r._v("×")]):r._e(),r._v(" "),o("div",{staticClass:"ar__text"},[r._v("Record "+r._s(n+1))]),r._v(" "),o("div",{staticClass:"ar__text"},[r._v(r._s(e.duration))])])})),r._v(" "),o("audio-player",{attrs:{compact:r.compact,record:r.selected,"uploader-options":r.uploaderOptions}}),r._v(" "),r.uploadStatus?o("div",{class:r.uploadStatusClasses},[r._v(r._s(r.message))]):r._e()],1)])};M._withStripped=!0;var z=i(B,M,[],!1,function(t){n(10)},null,null);z.options.__file="src/components/recorder.vue";var P=z.exports;n.d(e,"AudioPlayer",function(){return U}),n.d(e,"AudioRecorder",function(){return P});var $={AudioPlayer:U,AudioRecorder:P,install:function(t){this.installed||(this.installed=!0,t.prototype.$eventBus=t.prototype.$eventBus||new t,t.component("audio-player",U),t.component("audio-recorder",P))}};e.default=$}]).default});