deku-soundplayer
Advanced tools
Comparing version 0.1.0-rc to 0.1.1-rc
@@ -1,2 +0,2 @@ | ||
/** @jsx deku.dom */ | ||
/** @jsx dom */ | ||
'use strict'; | ||
@@ -8,8 +8,4 @@ | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
var _deku = require('deku'); | ||
var _deku2 = _interopRequireDefault(_deku); | ||
var iconPropTypes = { | ||
@@ -33,3 +29,3 @@ onClick: { | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
'svg', | ||
@@ -42,3 +38,3 @@ { | ||
}, | ||
_deku2['default'].dom('path', { d: 'M10.517 3.742c-.323 0-.49.363-.49.582 0 0-.244 3.591-.244 4.641 0 1.602.15 2.621.15 2.621 0 .222.261.401.584.401.321 0 .519-.179.519-.401 0 0 .398-1.038.398-2.639 0-1.837-.153-4.127-.284-4.592-.112-.395-.313-.613-.633-.613zm-1.996.268c-.323 0-.49.363-.49.582 0 0-.244 3.322-.244 4.372 0 1.602.119 2.621.119 2.621 0 .222.26.401.584.401.321 0 .581-.179.581-.401 0 0 .081-1.007.081-2.608 0-1.837-.206-4.386-.206-4.386 0-.218-.104-.581-.425-.581zm-2.021 1.729c-.324 0-.49.362-.49.582 0 0-.272 1.594-.272 2.644 0 1.602.179 2.559.179 2.559 0 .222.229.463.552.463.321 0 .519-.241.519-.463 0 0 .19-.944.19-2.546 0-1.837-.253-2.657-.253-2.657 0-.22-.104-.582-.425-.582zm-2.046-.358c-.323 0-.49.363-.49.582 0 0-.162 1.92-.162 2.97 0 1.602.069 2.496.069 2.496 0 .222.26.557.584.557.321 0 .581-.304.581-.526 0 0 .143-.936.143-2.538 0-1.837-.206-2.96-.206-2.96 0-.218-.198-.581-.519-.581zm-2.169 1.482c-.272 0-.232.218-.232.218v3.982s-.04.335.232.335c.351 0 .716-.832.716-2.348 0-1.245-.436-2.187-.716-2.187zm18.715-.976c-.289 0-.567.042-.832.116-.417-2.266-2.806-3.989-5.263-3.989-1.127 0-2.095.705-2.931 1.316v8.16s0 .484.5.484h8.526c1.655 0 3-1.55 3-3.155 0-1.607-1.346-2.932-3-2.932zm10.17.857c-1.077-.253-1.368-.389-1.368-.815 0-.3.242-.611.97-.611.621 0 1.106.253 1.542.699l.981-.951c-.641-.669-1.417-1.067-2.474-1.067-1.339 0-2.425.757-2.425 1.99 0 1.338.873 1.736 2.124 2.026 1.281.291 1.513.486 1.513.923 0 .514-.379.738-1.184.738-.65 0-1.26-.223-1.736-.777l-.98.873c.514.757 1.504 1.232 2.639 1.232 1.853 0 2.668-.873 2.668-2.163 0-1.477-1.193-1.845-2.27-2.097zm6.803-2.745c-1.853 0-2.949 1.435-2.949 3.502s1.096 3.501 2.949 3.501c1.852 0 2.949-1.434 2.949-3.501s-1.096-3.502-2.949-3.502zm0 5.655c-1.097 0-1.553-.941-1.553-2.153 0-1.213.456-2.153 1.553-2.153 1.096 0 1.551.94 1.551 2.153.001 1.213-.454 2.153-1.551 2.153zm8.939-1.736c0 1.086-.533 1.756-1.396 1.756-.864 0-1.388-.689-1.388-1.775v-3.897h-1.358v3.916c0 1.978 1.106 3.084 2.746 3.084 1.726 0 2.754-1.136 2.754-3.103v-3.897h-1.358v3.916zm8.142-.89l.019 1.485c-.087-.174-.31-.515-.475-.768l-2.703-3.692h-1.362v6.894h1.401v-2.988l-.02-1.484c.088.175.311.514.475.767l2.79 3.705h1.213v-6.894h-1.339v2.975zm5.895-2.923h-2.124v6.791h2.027c1.746 0 3.474-1.01 3.474-3.395 0-2.484-1.437-3.396-3.377-3.396zm-.097 5.472h-.67v-4.152h.719c1.436 0 2.028.688 2.028 2.076 0 1.242-.651 2.076-2.077 2.076zm7.909-4.229c.611 0 1 .271 1.242.737l1.26-.582c-.426-.883-1.202-1.503-2.483-1.503-1.775 0-3.016 1.435-3.016 3.502 0 2.143 1.191 3.501 2.968 3.501 1.232 0 2.047-.572 2.513-1.533l-1.145-.68c-.358.602-.718.864-1.329.864-1.019 0-1.611-.932-1.611-2.153-.001-1.261.583-2.153 1.601-2.153zm5.17-1.192h-1.359v6.791h4.083v-1.338h-2.724v-5.453zm6.396-.157c-1.854 0-2.949 1.435-2.949 3.502s1.095 3.501 2.949 3.501c1.853 0 2.95-1.434 2.95-3.501s-1.097-3.502-2.95-3.502zm0 5.655c-1.097 0-1.553-.941-1.553-2.153 0-1.213.456-2.153 1.553-2.153 1.095 0 1.55.94 1.55 2.153.001 1.213-.454 2.153-1.55 2.153zm8.557-1.736c0 1.086-.532 1.756-1.396 1.756-.864 0-1.388-.689-1.388-1.775v-3.794h-1.358v3.813c0 1.978 1.106 3.084 2.746 3.084 1.726 0 2.755-1.136 2.755-3.103v-3.794h-1.36v3.813zm5.449-3.907h-2.318v6.978h2.211c1.908 0 3.789-1.037 3.789-3.489 0-2.552-1.565-3.489-3.682-3.489zm-.108 5.623h-.729v-4.266h.783c1.565 0 2.21.706 2.21 2.133.001 1.276-.707 2.133-2.264 2.133z' }) | ||
(0, _deku.dom)('path', { d: 'M10.517 3.742c-.323 0-.49.363-.49.582 0 0-.244 3.591-.244 4.641 0 1.602.15 2.621.15 2.621 0 .222.261.401.584.401.321 0 .519-.179.519-.401 0 0 .398-1.038.398-2.639 0-1.837-.153-4.127-.284-4.592-.112-.395-.313-.613-.633-.613zm-1.996.268c-.323 0-.49.363-.49.582 0 0-.244 3.322-.244 4.372 0 1.602.119 2.621.119 2.621 0 .222.26.401.584.401.321 0 .581-.179.581-.401 0 0 .081-1.007.081-2.608 0-1.837-.206-4.386-.206-4.386 0-.218-.104-.581-.425-.581zm-2.021 1.729c-.324 0-.49.362-.49.582 0 0-.272 1.594-.272 2.644 0 1.602.179 2.559.179 2.559 0 .222.229.463.552.463.321 0 .519-.241.519-.463 0 0 .19-.944.19-2.546 0-1.837-.253-2.657-.253-2.657 0-.22-.104-.582-.425-.582zm-2.046-.358c-.323 0-.49.363-.49.582 0 0-.162 1.92-.162 2.97 0 1.602.069 2.496.069 2.496 0 .222.26.557.584.557.321 0 .581-.304.581-.526 0 0 .143-.936.143-2.538 0-1.837-.206-2.96-.206-2.96 0-.218-.198-.581-.519-.581zm-2.169 1.482c-.272 0-.232.218-.232.218v3.982s-.04.335.232.335c.351 0 .716-.832.716-2.348 0-1.245-.436-2.187-.716-2.187zm18.715-.976c-.289 0-.567.042-.832.116-.417-2.266-2.806-3.989-5.263-3.989-1.127 0-2.095.705-2.931 1.316v8.16s0 .484.5.484h8.526c1.655 0 3-1.55 3-3.155 0-1.607-1.346-2.932-3-2.932zm10.17.857c-1.077-.253-1.368-.389-1.368-.815 0-.3.242-.611.97-.611.621 0 1.106.253 1.542.699l.981-.951c-.641-.669-1.417-1.067-2.474-1.067-1.339 0-2.425.757-2.425 1.99 0 1.338.873 1.736 2.124 2.026 1.281.291 1.513.486 1.513.923 0 .514-.379.738-1.184.738-.65 0-1.26-.223-1.736-.777l-.98.873c.514.757 1.504 1.232 2.639 1.232 1.853 0 2.668-.873 2.668-2.163 0-1.477-1.193-1.845-2.27-2.097zm6.803-2.745c-1.853 0-2.949 1.435-2.949 3.502s1.096 3.501 2.949 3.501c1.852 0 2.949-1.434 2.949-3.501s-1.096-3.502-2.949-3.502zm0 5.655c-1.097 0-1.553-.941-1.553-2.153 0-1.213.456-2.153 1.553-2.153 1.096 0 1.551.94 1.551 2.153.001 1.213-.454 2.153-1.551 2.153zm8.939-1.736c0 1.086-.533 1.756-1.396 1.756-.864 0-1.388-.689-1.388-1.775v-3.897h-1.358v3.916c0 1.978 1.106 3.084 2.746 3.084 1.726 0 2.754-1.136 2.754-3.103v-3.897h-1.358v3.916zm8.142-.89l.019 1.485c-.087-.174-.31-.515-.475-.768l-2.703-3.692h-1.362v6.894h1.401v-2.988l-.02-1.484c.088.175.311.514.475.767l2.79 3.705h1.213v-6.894h-1.339v2.975zm5.895-2.923h-2.124v6.791h2.027c1.746 0 3.474-1.01 3.474-3.395 0-2.484-1.437-3.396-3.377-3.396zm-.097 5.472h-.67v-4.152h.719c1.436 0 2.028.688 2.028 2.076 0 1.242-.651 2.076-2.077 2.076zm7.909-4.229c.611 0 1 .271 1.242.737l1.26-.582c-.426-.883-1.202-1.503-2.483-1.503-1.775 0-3.016 1.435-3.016 3.502 0 2.143 1.191 3.501 2.968 3.501 1.232 0 2.047-.572 2.513-1.533l-1.145-.68c-.358.602-.718.864-1.329.864-1.019 0-1.611-.932-1.611-2.153-.001-1.261.583-2.153 1.601-2.153zm5.17-1.192h-1.359v6.791h4.083v-1.338h-2.724v-5.453zm6.396-.157c-1.854 0-2.949 1.435-2.949 3.502s1.095 3.501 2.949 3.501c1.853 0 2.95-1.434 2.95-3.501s-1.097-3.502-2.95-3.502zm0 5.655c-1.097 0-1.553-.941-1.553-2.153 0-1.213.456-2.153 1.553-2.153 1.095 0 1.55.94 1.55 2.153.001 1.213-.454 2.153-1.55 2.153zm8.557-1.736c0 1.086-.532 1.756-1.396 1.756-.864 0-1.388-.689-1.388-1.775v-3.794h-1.358v3.813c0 1.978 1.106 3.084 2.746 3.084 1.726 0 2.755-1.136 2.755-3.103v-3.794h-1.36v3.813zm5.449-3.907h-2.318v6.978h2.211c1.908 0 3.789-1.037 3.789-3.489 0-2.552-1.565-3.489-3.682-3.489zm-.108 5.623h-.729v-4.266h.783c1.565 0 2.21.706 2.21 2.133.001 1.276-.707 2.133-2.264 2.133z' }) | ||
); | ||
@@ -55,3 +51,3 @@ } | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
'svg', | ||
@@ -81,6 +77,6 @@ { | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
ButtonIconSVG, | ||
props, | ||
_deku2['default'].dom('path', { d: 'M0 0 L32 16 L0 32 z' }) | ||
(0, _deku.dom)('path', { d: 'M0 0 L32 16 L0 32 z' }) | ||
); | ||
@@ -101,6 +97,6 @@ } | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
ButtonIconSVG, | ||
props, | ||
_deku2['default'].dom('path', { d: 'M0 0 H12 V32 H0 z M20 0 H32 V32 H20 z' }) | ||
(0, _deku.dom)('path', { d: 'M0 0 H12 V32 H0 z M20 0 H32 V32 H20 z' }) | ||
); | ||
@@ -126,6 +122,6 @@ } | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
ButtonIconSVG, | ||
props, | ||
_deku2['default'].dom('path', { d: 'M4 4 L24 14 V4 H28 V28 H24 V18 L4 28 z ' }) | ||
(0, _deku.dom)('path', { d: 'M4 4 L24 14 V4 H28 V28 H24 V18 L4 28 z ' }) | ||
); | ||
@@ -151,6 +147,6 @@ } | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
ButtonIconSVG, | ||
props, | ||
_deku2['default'].dom('path', { d: 'M4 4 H8 V14 L28 4 V28 L8 18 V28 H4 z ' }) | ||
(0, _deku.dom)('path', { d: 'M4 4 H8 V14 L28 4 V28 L8 18 V28 H4 z ' }) | ||
); | ||
@@ -157,0 +153,0 @@ } |
@@ -27,2 +27,8 @@ 'use strict'; | ||
var _Cover2 = require('./Cover'); | ||
var _Cover3 = _interopRequireDefault(_Cover2); | ||
exports.Cover = _Cover3['default']; | ||
var _Icons2 = require('./Icons'); | ||
@@ -29,0 +35,0 @@ |
@@ -1,2 +0,2 @@ | ||
/** @jsx deku.dom */ | ||
/** @jsx dom */ | ||
'use strict'; | ||
@@ -12,4 +12,2 @@ | ||
var _deku2 = _interopRequireDefault(_deku); | ||
var _soundcloudAudio = require('soundcloud-audio'); | ||
@@ -57,6 +55,6 @@ | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
'button', | ||
{ 'class': 'sb-soundplayer-widget-play', onClick: handleClick }, | ||
!props.playing ? _deku2['default'].dom(_Icons.PlayIconSVG, { onClick: handleClick }) : _deku2['default'].dom(_Icons.PauseIconSVG, { onClick: handleClick }) | ||
!props.playing ? (0, _deku.dom)(_Icons.PlayIconSVG, { onClick: handleClick }) : (0, _deku.dom)(_Icons.PauseIconSVG, { onClick: handleClick }) | ||
); | ||
@@ -63,0 +61,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/** @jsx deku.dom */ | ||
/** @jsx dom */ | ||
'use strict'; | ||
@@ -12,4 +12,2 @@ | ||
var _deku2 = _interopRequireDefault(_deku); | ||
var _soundcloudAudio = require('soundcloud-audio'); | ||
@@ -57,6 +55,6 @@ | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
'div', | ||
{ 'class': 'sb-soundplayer-widget-progress-container', onClick: handleSeekTrack }, | ||
_deku2['default'].dom('div', { 'class': 'sb-soundplayer-widget-progress-inner', style: style }) | ||
(0, _deku.dom)('div', { 'class': 'sb-soundplayer-widget-progress-inner', style: style }) | ||
); | ||
@@ -63,0 +61,0 @@ } |
@@ -1,2 +0,2 @@ | ||
/** @jsx deku.dom */ | ||
/** @jsx dom */ | ||
'use strict'; | ||
@@ -8,8 +8,4 @@ | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
var _deku = require('deku'); | ||
var _deku2 = _interopRequireDefault(_deku); | ||
function prettyTime(time) { | ||
@@ -52,3 +48,3 @@ var hours = Math.floor(time / 3600); | ||
return _deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
'div', | ||
@@ -55,0 +51,0 @@ { 'class': 'sb-soundplayer-widget-timer' }, |
@@ -1,2 +0,2 @@ | ||
/** @jsx deku.dom */ | ||
/** @jsx dom */ | ||
'use strict'; | ||
@@ -12,4 +12,2 @@ | ||
var _deku2 = _interopRequireDefault(_deku); | ||
var _soundcloudAudio = require('soundcloud-audio'); | ||
@@ -19,10 +17,6 @@ | ||
var _componentsPlayButton = require('./components/PlayButton'); | ||
var _componentsCover = require('./components/Cover'); | ||
var _componentsPlayButton2 = _interopRequireDefault(_componentsPlayButton); | ||
var _componentsCover2 = _interopRequireDefault(_componentsCover); | ||
var _componentsProgress = require('./components/Progress'); | ||
var _componentsProgress2 = _interopRequireDefault(_componentsProgress); | ||
var _componentsTimer = require('./components/Timer'); | ||
@@ -32,94 +26,32 @@ | ||
var _componentsIcons = require('./components/Icons'); | ||
var _componentsProgress = require('./components/Progress'); | ||
var _utilsAudioStore = require('./utils/audioStore'); | ||
var _componentsProgress2 = _interopRequireDefault(_componentsProgress); | ||
exports['default'] = { | ||
propTypes: { | ||
url: { | ||
type: 'string' | ||
}, | ||
soundCloudAudio: function soundCloudAudio(prop) { | ||
return prop instanceof _soundcloudAudio2['default']; | ||
} | ||
}, | ||
var _componentsPlayButton = require('./components/PlayButton'); | ||
initialState: function initialState() { | ||
return { | ||
duration: 0, | ||
currentTime: 0, | ||
seeking: false, | ||
playing: false | ||
}; | ||
}, | ||
var _componentsPlayButton2 = _interopRequireDefault(_componentsPlayButton); | ||
afterMount: function afterMount(component, el, setState) { | ||
var props = component.props; | ||
var soundCloudAudio = props.soundCloudAudio; | ||
var _addonsSoundPlayerContainer = require('./addons/SoundPlayerContainer'); | ||
soundCloudAudio.resolve(props.url, function (data) { | ||
// TBD: support for playlists | ||
var track = data.tracks ? data.tracks[0] : data; | ||
setState({ track: track }); | ||
}); | ||
var _addonsSoundPlayerContainer2 = _interopRequireDefault(_addonsSoundPlayerContainer); | ||
function onAudioStarted() { | ||
setState({ playing: true }); | ||
var _componentsIcons = require('./components/Icons'); | ||
(0, _utilsAudioStore.stopAllOther)(soundCloudAudio.playing); | ||
(0, _utilsAudioStore.addToStore)(soundCloudAudio); | ||
} | ||
function getCurrentTime() { | ||
setState({ currentTime: soundCloudAudio.audio.currentTime }); | ||
} | ||
function getDuration() { | ||
setState({ duration: soundCloudAudio.audio.duration }); | ||
} | ||
function onSeekingTrack() { | ||
setState({ seeking: true }); | ||
} | ||
function onSeekedTrack() { | ||
setState({ seeking: false }); | ||
} | ||
function onAudioEnded() { | ||
setState({ playing: false }); | ||
} | ||
// https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events | ||
soundCloudAudio.on('playing', onAudioStarted); | ||
soundCloudAudio.on('timeupdate', getCurrentTime); | ||
soundCloudAudio.on('loadedmetadata', getDuration); | ||
soundCloudAudio.on('seeking', onSeekingTrack); | ||
soundCloudAudio.on('seeked', onSeekedTrack); | ||
soundCloudAudio.on('pause', onAudioEnded); | ||
soundCloudAudio.on('ended', onAudioEnded); | ||
}, | ||
beforeMount: function beforeMount(component) { | ||
var props = component.props; | ||
props.soundCloudAudio.unbindAll(); | ||
}, | ||
var Player = { | ||
render: function render(component) { | ||
var state = component.state; | ||
var props = component.props; | ||
if (!state.track) { | ||
return _deku2['default'].dom('span', null); | ||
if (!props.track) { | ||
return (0, _deku.dom)('span', null); | ||
} | ||
if (state.track && !state.track.streamable) { | ||
return _deku2['default'].dom( | ||
if (props.track && !props.track.streamable) { | ||
return (0, _deku.dom)( | ||
'div', | ||
{ 'class': 'sb-soundplayer-widget-message' }, | ||
_deku2['default'].dom( | ||
(0, _deku.dom)( | ||
'a', | ||
{ href: state.track.permalink_url, target: '_blank' }, | ||
state.track.title | ||
{ href: props.track.permalink_url, target: '_blank' }, | ||
props.track.title | ||
), | ||
@@ -130,41 +62,39 @@ ' is not streamable!' | ||
return _deku2['default'].dom( | ||
'div', | ||
{ 'class': 'sb-soundplayer-widget-cover', style: { | ||
'background-image': 'url(' + state.track.artwork_url.replace('large', 't500x500') + ')' | ||
} }, | ||
_deku2['default'].dom('div', { 'class': 'sb-soundplayer-widget-overlay' }), | ||
_deku2['default'].dom( | ||
return (0, _deku.dom)( | ||
_componentsCover2['default'], | ||
{ artworkUrl: props.track.artwork_url.replace('large', 't500x500') }, | ||
(0, _deku.dom)('div', { 'class': 'sb-soundplayer-widget-overlay' }), | ||
(0, _deku.dom)( | ||
'div', | ||
{ 'class': 'sb-soundplayer-widget-track-info' }, | ||
_deku2['default'].dom( | ||
(0, _deku.dom)( | ||
'h3', | ||
{ 'class': 'sb-soundplayer-widget-user' }, | ||
state.track.user.username | ||
props.track.user.username | ||
), | ||
_deku2['default'].dom( | ||
(0, _deku.dom)( | ||
'h2', | ||
{ 'class': 'sb-soundplayer-widget-title' }, | ||
state.track.title | ||
props.track.title | ||
) | ||
), | ||
_deku2['default'].dom( | ||
(0, _deku.dom)( | ||
'a', | ||
{ href: state.track.permalink_url, target: '_blank' }, | ||
_deku2['default'].dom(_componentsIcons.SoundCloudLogoSVG, null) | ||
{ href: props.track.permalink_url, target: '_blank' }, | ||
(0, _deku.dom)(_componentsIcons.SoundCloudLogoSVG, null) | ||
), | ||
_deku2['default'].dom( | ||
(0, _deku.dom)( | ||
'div', | ||
{ 'class': 'sb-soundplayer-widget-controls' }, | ||
_deku2['default'].dom(_componentsPlayButton2['default'], { | ||
playing: state.playing, | ||
(0, _deku.dom)(_componentsPlayButton2['default'], { | ||
playing: props.playing, | ||
soundCloudAudio: props.soundCloudAudio | ||
}), | ||
_deku2['default'].dom(_componentsProgress2['default'], { | ||
value: state.currentTime / state.duration * 100 || 0, | ||
(0, _deku.dom)(_componentsProgress2['default'], { | ||
value: props.currentTime / props.duration * 100 || 0, | ||
soundCloudAudio: props.soundCloudAudio | ||
}), | ||
_deku2['default'].dom(_componentsTimer2['default'], { | ||
duration: state.track.duration / 1000, | ||
currentTime: state.currentTime | ||
(0, _deku.dom)(_componentsTimer2['default'], { | ||
duration: props.track.duration / 1000, | ||
currentTime: props.currentTime | ||
}) | ||
@@ -175,2 +105,23 @@ ) | ||
}; | ||
exports['default'] = { | ||
propTypes: { | ||
url: { | ||
type: 'string' | ||
}, | ||
soundCloudAudio: function soundCloudAudio(prop) { | ||
return prop instanceof _soundcloudAudio2['default']; | ||
} | ||
}, | ||
render: function render(component) { | ||
var props = component.props; | ||
return (0, _deku.dom)( | ||
_addonsSoundPlayerContainer2['default'], | ||
props, | ||
(0, _deku.dom)(Player, null) | ||
); | ||
} | ||
}; | ||
module.exports = exports['default']; |
{ | ||
"name": "deku-soundplayer", | ||
"version": "0.1.0-rc", | ||
"version": "0.1.1-rc", | ||
"description": "Create custom SoundCloud players with Deku", | ||
@@ -30,3 +30,5 @@ "main": "index.js", | ||
"dependencies": { | ||
"classnames": "^2.1.2", | ||
"deku": "^0.4.5", | ||
"object-assign": "^3.0.0", | ||
"soundcloud-audio": "^0.1.4" | ||
@@ -33,0 +35,0 @@ }, |
@@ -10,1 +10,9 @@ # <img src="http://www.officialpsds.com/images/thumbs/Soundcloud-Logo-psd47614.png" width="75" align="left"> deku-soundplayer | ||
_Note:_ For now it's VERY lightweight port (e.g. there's no container components) of original [ReactSoundPlayer](https://github.com/soundblogs/react-soundplayer) and used inside [embeddable SoundCloud player](https://github.com/soundblogs/soundplayer-widget). | ||
```bash | ||
npm install deku-soundplayer --save | ||
``` | ||
--- | ||
**MIT Licensed** |
23477
17
543
18
4
+ Addedclassnames@^2.1.2
+ Addedobject-assign@^3.0.0
+ Addedclassnames@2.5.1(transitive)
+ Addedobject-assign@3.0.0(transitive)