UNPKG

@hirebus/academy

Version:

React component library for academy and learning platforms

2 lines (1 loc) 2.98 kB
"use strict";const p=require("./index-BH5PkfxW.cjs"),g=require("react");function b(t,e){for(var r=0;r<e.length;r++){const s=e[r];if(typeof s!="string"&&!Array.isArray(s)){for(const o in s)if(o!=="default"&&!(o in t)){const a=Object.getOwnPropertyDescriptor(s,o);a&&Object.defineProperty(t,o,a.get?a:{enumerable:!0,get:()=>s[o]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var v=Object.create,l=Object.defineProperty,O=Object.getOwnPropertyDescriptor,S=Object.getOwnPropertyNames,w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty,j=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,D=(t,e)=>{for(var r in e)l(t,r,{get:e[r],enumerable:!0})},h=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S(e))!C.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(s=O(e,o))||s.enumerable});return t},E=(t,e,r)=>(r=t!=null?v(w(t)):{},h(!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),L=t=>h(l({},"__esModule",{value:!0}),t),n=(t,e,r)=>(j(t,typeof e!="symbol"?e+"":e,r),r),f={};D(f,{default:()=>u});var y=L(f),c=E(g),d=p.utils,R=p.patterns;const M="https://w.soundcloud.com/player/api.js",T="SC";class u extends c.Component{constructor(){super(...arguments),n(this,"callPlayer",d.callPlayer),n(this,"duration",null),n(this,"currentTime",null),n(this,"fractionLoaded",null),n(this,"mute",()=>{this.setVolume(0)}),n(this,"unmute",()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),n(this,"ref",e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,r){(0,d.getSDK)(M,T).then(s=>{if(!this.iframe)return;const{PLAY:o,PLAY_PROGRESS:a,PAUSE:_,FINISH:m,ERROR:P}=s.Widget.Events;r||(this.player=s.Widget(this.iframe),this.player.bind(o,this.props.onPlay),this.player.bind(_,()=>{this.duration-this.currentTime<.05||this.props.onPause()}),this.player.bind(a,i=>{this.currentTime=i.currentPosition/1e3,this.fractionLoaded=i.loadedProgress}),this.player.bind(m,()=>this.props.onEnded()),this.player.bind(P,i=>this.props.onError(i))),this.player.load(e,{...this.props.config.options,callback:()=>{this.player.getDuration(i=>{this.duration=i/1e3,this.props.onReady()})}})})}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,r=!0){this.callPlayer("seekTo",e*1e3),r||this.pause()}setVolume(e){this.callPlayer("setVolume",e*100)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.fractionLoaded*this.duration}render(){const{display:e}=this.props,r={width:"100%",height:"100%",display:e};return c.default.createElement("iframe",{ref:this.ref,src:`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`,style:r,frameBorder:0,allow:"autoplay"})}}n(u,"displayName","SoundCloud");n(u,"canPlay",R.canPlay.soundcloud);n(u,"loopOnEnded",!0);const N=p.getDefaultExportFromCjs(y),A=b({__proto__:null,default:N},[y]);exports.SoundCloud=A;