react-wavesurfer
Version:
React component wrapper for wavesurfer.js
2 lines • 4.13 kB
JavaScript
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["react","prop-types"],r):"object"==typeof exports?exports["plugins/regions"]=r(require("react"),require("prop-types")):(e.Wavesurfer=e.Wavesurfer||{},e.Wavesurfer["plugins/regions"]=r(e.React,e["prop-types"]))}(this,function(e,r){return function(e){function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n={};return r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s=3)}([function(r,n){r.exports=e},function(e,n){e.exports=r},,function(e,r,n){"use strict";function t(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function o(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r}function i(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}function u(e){return e.split("-").map(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}).join("")}Object.defineProperty(r,"__esModule",{value:!0});var s=function(){function e(e,r){for(var n=0;n<r.length;n++){var t=r[n];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(r,n,t){return n&&e(r.prototype,n),t&&e(r,t),r}}(),a=n(0),f=n(1),p=function(e){return e&&e.__esModule?e:{default:e}}(f),c=["region-in","region-out","region-mouseenter","region-mouseleave","region-click","region-dblclick","region-updated","region-update-end","region-removed","region-play"],l=["in","out","remove","update","click","dbclick","over","leave"],v=function(e){function r(e){t(this,r);var n=o(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e));return n.state={},n}return i(r,e),s(r,[{key:"componentDidMount",value:function(){this.props.isReady&&this._init.call(this),this.props.wavesurfer.on("ready",this._init.bind(this))}},{key:"componentWillReceiveProps",value:function(e){if(this.props.isReady){var r=Object.create(this.props.wavesurfer.regions.list),n=void 0,t=void 0;for(n in e.regions)if({}.hasOwnProperty.call(e.regions,n)){var o=e.regions[n];delete r[n],this.props.wavesurfer.regions.list[n]?!r[n]||r[n].start===o.start&&r[n].end===o.end||e.wavesurfer.regions.list[n].update({start:o.start,end:o.end}):this._hookUpRegionEvents(e.wavesurfer.addRegion(o))}for(t in r)({}).hasOwnProperty.call(r,t)&&e.wavesurfer.regions.list[t].remove()}}},{key:"shouldComponentUpdate",value:function(){return!1}},{key:"componentWillUnmount",value:function(){var e=this;l.forEach(function(r){e.props.wavesurfer.un(r)})}},{key:"_init",value:function(){var e=this,r=this.props,n=r.wavesurfer,t=r.regions,o=void 0;c.forEach(function(r){var t=e.props["on"+u(r)];t&&n.on(r,function(){for(var e=arguments.length,r=Array(e),o=0;o<e;o++)r[o]=arguments[o];t({wavesurfer:n,originalArgs:r})})});for(o in t)({}).hasOwnProperty.call(t,o)&&this._hookUpRegionEvents(n.addRegion(t[o]))}},{key:"_hookUpRegionEvents",value:function(e){var r=this;l.forEach(function(n){var t=r.props["onSingleRegion"+u(n)],o=r.props.wavesurfer;t&&e.on(n,function(){for(var r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];t({wavesurfer:o,originalArgs:n,region:e})})}),e.on("remove",function(){l.forEach(function(r){e.un(r)})})}},{key:"render",value:function(){return!1}}]),r}(a.Component);v.propTypes={isReady:p.default.bool,regions:p.default.object,wavesurfer:p.default.object},v.defaultProps={regions:[]},r.default=v}])});
//# sourceMappingURL=regions.min.js.map