UNPKG

@lanaco/lnc-react-ui

Version:

React component library

2 lines (1 loc) 3.03 kB
"use strict";const g=require("./_commonjsHelpers-DwTZ_eVU.cjs"),b=require("react"),d=require("./SearchSection-CgbZsVg2.cjs");function v(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 O=Object.create,l=Object.defineProperty,S=Object.getOwnPropertyDescriptor,j=Object.getOwnPropertyNames,w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty,D=(t,e,r)=>e in t?l(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,E=(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 j(e))!C.call(t,o)&&o!==r&&l(t,o,{get:()=>e[o],enumerable:!(s=S(e,o))||s.enumerable});return t},L=(t,e,r)=>(r=t!=null?O(w(t)):{},h(!t||!t.__esModule?l(r,"default",{value:t,enumerable:!0}):r,t)),R=t=>h(l({},"__esModule",{value:!0}),t),n=(t,e,r)=>(D(t,typeof e!="symbol"?e+"":e,r),r),f={};E(f,{default:()=>u});var _=R(f),p=L(b),c=d.utils,M=d.patterns;const T="https://w.soundcloud.com/player/api.js",N="SC";class u extends p.Component{constructor(){super(...arguments),n(this,"callPlayer",c.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,c.getSDK)(T,N).then(s=>{if(!this.iframe)return;const{PLAY:o,PLAY_PROGRESS:a,PAUSE:y,FINISH:m,ERROR:P}=s.Widget.Events;r||(this.player=s.Widget(this.iframe),this.player.bind(o,this.props.onPlay),this.player.bind(y,()=>{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 p.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",M.canPlay.soundcloud);n(u,"loopOnEnded",!0);const A=g.getDefaultExportFromCjs(_),x=v({__proto__:null,default:A},[_]);exports.SoundCloud=x;